Oggi è 28/03/2024, 19:36

Tutti gli orari sono UTC + 1 ora [ ora legale ]





 Pagina 1 di 3 [ 60 messaggi ] 

Vai alla pagina :: 1, 2, 3  Prossima »
  Apri un nuovo argomento Rispondi all’argomento

  Stampa pagina

Autore Messaggio
 Oggetto del messaggio: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 14/02/2011, 23:14 
Avatar utente
Utente

Iscritto il: 22/12/2010
Messaggi: 1098
Località: Agrigento (Sicilia)
Favourite GTA: San Andreas
Xfire: In PM

Karma
0


Non connesso
Salve a tutti. Questa è la mia seconda guida su gta-center. La prima, da quanto vedo, credo abbia fatto successo. In questa guida parlerò su come creare gli Auto-Message. In allegato ci sarà anche una guida sul Random ed una "ripresa" dei Timer.

INTRODUZIONE


Gli Auto-Message non sono dei veri e propri messaggi automatici. In poche parole viene attivato un Timer che invia un messaggio a caso (ovviamente scritto da noi) usando il cosiddetto Random. Se non avete le idee chiare, vi consiglio di leggere la seguente Guida ;).

GUIDA


La prima cosa da fare è quella di scegliere che messaggi vorremmo inviare in automatico. Io in questo caso sceglierò 3 messaggi:

1) "Salve, benvenuti sul mio Server!";
2) "Se avete bisogno di aiuto, contattatemi";
3) "Per chattare premi T e digita un messaggio".

Bene, adesso abbiamo i nostri tre messaggi che verranno cosi:

1) SendClientMessageToAll(rosso, "Salve, benvenuti sul mio Server!");
2) SendClientMessageToAll(bianco, "Se avete bisogno di aiuto, contattatemi");
3) SendClientMessageToAll(giallo, ""Per chattare premi T e digita un messaggio");

Perché ho usato la funzione SendClientMessageToAll? Perché noi dobbiamo far visualizzare il messaggio a tutte le persone online e, come sappiamo, la sintassi del SendClientMessageToAll è la seguente:
SendClientMessageToAll(colore, "Testo");

Adesso dobbiamo creare una nuova funzione che noi chiameremo "AutoMessage". Quindi, in basso all'ultima riga (oppure fuori da tutto), scriviamo:

Codice:
forward AutoMessage();
public AutoMessage()
{
    new mess = random(3);
    if(mess == 0) return SendClientMessageToAll(rosso, "Salve, benvenuti sul mio Server!");
    if(mess == 1) return SendClientMessageToAll(bianco, "Se avete bisogno di aiuto, contattatemi");
    if(mess == 2) return SendClientMessageToAll(giallo, "Per chattare premi T e digita un messaggio");
    return 1;
}


Adesso vi spiego passo passo cosa ho scritto. La prima cosa da scrivere è il public. AutoMessage è il nome della nostra funzione che ho precedentemente citato. Le due "()", come vedete, sono vuote. Qui vengono messi i parametri che faranno parte della nostra funzione. Esempio: Se noi metteremo "playerid", esso diventerà un parametro utilizzabile all'interno della funzione. Ma, siccome questa non è una guida sulle funzioni, non mi prolungherò molto su di esse. Ritornando allo script, potete notare che ho scritto new mess = random(3). Analizziamolo piano piano:

New serve a creare una variabile, in questo caso abbiamo creato la variabile mess. Poi abbiamo detto che mess è uguale a random(3). Cosa significa questo? Random è un "sistema" incorporato nel Pawno e serve a scegliere un numero casuale da 0 a "numero scritto"-1. Nel senso, se io metto come numero "3", esso sceglierà casualmente un numero da 0 a 2, visto che 3 - 1 = 2 (spero che in questo campo non abbiate problemi di sottrazione :sisi:). A questo punto noi abbiamo detto che alla variabile mess verrà attribuito un numero da 0 a 2. Poi gli altri script credo che a questo punto si capiscano. Leggendolo "in italiano" diremo così: SE mess è uguale a 0, mostrami il messaggio "Salve, benvenuti sul mio Server!". Stessa cosa per gli altri. Adesso però qualcuno si starà chiedendo: -Ma se io voglio fare un Random compreso fra un numero e un altro numero? Senza lo 0? Come faccio?
Semplice: Basterà aggiungere un +"numero" dopo random. In questo modo:

Codice:
new mess = random(20)+15;


Con questo codice diremo che mess sarà compreso tra 15 e 19 (perché 20 -1 = 19). Bene, adesso dobbiamo "startare" questi Auto-Message per renderli, quindi, automatici. Quindi in OnGameModeInit metteremo questa stringa:

Codice:
SetTimer("AutoMessage", 60000, true);


Analizziamo anche questo codice. Se non conoscete il SetTimer, visitate la guida scritta da Alby Fire sui Timer e TimerEx.

Guida -> viewtopic.php?f=40&t=647

"AutoMessage" ricorderete che è il nome della nostra funzione appena creata. 60000 è il tempo in cui dovrebbe svolgersi questa azione espresso in MilliSecondi. In poche parole, quando lo script viene avviato, dopo 1 minuto si azionerà la nostra funzione AutoMessage. True significa che, a fine Timer, esso viene riavviato cosicché da mandare sempre messaggi.

EDIT Della guida suggerito da ~Peppinux AKA Peppe_Stasu:

Per i più esperti, il codice:

Codice:
forward AutoMessage();
public AutoMessage()
{
    new mess = random(3);
    if(mess == 0) return SendClientMessageToAll(rosso, "Salve, benvenuti sul mio Server!");
    if(mess == 1) return SendClientMessageToAll(bianco, "Se avete bisogno di aiuto, contattatemi");
    if(mess == 2) return SendClientMessageToAll(giallo, "Per chattare premi T e digita un messaggio");
    return 1;
}


Potrebbe diventare molto più semplice e veloce da scrivere in questo modo:

Codice:
forward AutoMessage();
public AutoMessage()
{
    new mess = random(3);
    switch(mess)
    {
         case 0: SendClientMessageToAll(...);
         case 1: SendClientMessageToAll(...);
         case 2: SendClientMessageToAll(...);
    }
    return 1;
}


CREDITI


Guida creata da mitosking per Gta-Center. Vietata la copia parziale o totale.

_________________
Immagine


Ultima modifica di mitosking il 15/02/2011, 18:11, modificato 5 volte in totale.

Top
 E-mail  
 

 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 14/02/2011, 23:34 
Avatar utente
Utente

Iscritto il: 31/10/2010
Messaggi: 901
Località: Universo - Via Lattea - Sistema Solare - Pianeta Terra - Europa - Italia - Sicilia - Grammichele(CT)
Favourite GTA: San Andreas
Xfire: Privato

Karma
2


Non connesso
Bella :D

_________________
Immagine


I Miei Filterscript Per Sa-Mp

Rampone System By me and Mik_Teck
Autovelox System By me and Mik_Teck
Metro System By me
pLaserPointer By me

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 14/02/2011, 23:40 
Avatar utente
Utente

Iscritto il: 22/12/2010
Messaggi: 1098
Località: Agrigento (Sicilia)
Favourite GTA: San Andreas
Xfire: In PM

Karma
0


Non connesso
Grazie, ma sono convinto che era meglio la guida precedente.

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 14/02/2011, 23:48 
Banned

Iscritto il: 31/10/2010
Messaggi: 1363
Località: Sicilia
Favourite GTA: San Andreas
Xfire: peppinux

Karma
-10


Non connesso
Questa mi sembra meglio ;) http://wiki.sa-mp.com/wiki/Random_Messages
Comunque complimenti.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 14/02/2011, 23:50 
Avatar utente
Utente

Iscritto il: 22/12/2010
Messaggi: 1098
Località: Agrigento (Sicilia)
Favourite GTA: San Andreas
Xfire: In PM

Karma
0


Non connesso
Peppinux, come ti ho già detto su MSN i Tutorial non sono fatti né per Angelo, né per te e né per altri che sono bravi. Sono fatti per chi non conoscono le cose. Mica potevo mettere Wiki :asd:

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 15/02/2011, 0:04 
Banned

Iscritto il: 31/10/2010
Messaggi: 1363
Località: Sicilia
Favourite GTA: San Andreas
Xfire: peppinux

Karma
-10


Non connesso
Comunque potevi cambiare
Codice:
    if(mess == 0) return SendClientMessageToAll(rosso, "Salve, benvenuti sul mio Server!");
    if(mess == 1) return SendClientMessageToAll(bianco, "Se avete bisogno di aiuto, contattatemi");
    if(mess == 2) return SendClientMessageToAll(giallo, "Per chattare premi T e digita un messaggio");

in
Codice:
switch(mess)
{
    case 0:
    case 1:
    case 2:
}


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 15/02/2011, 0:06 
Avatar utente
Utente

Iscritto il: 22/12/2010
Messaggi: 1098
Località: Agrigento (Sicilia)
Favourite GTA: San Andreas
Xfire: In PM

Karma
0


Non connesso
Mmmm non lo sapevo. Mi servirà... Ma se dovrò cambiare lo script, devo cambiare tutto il testo della Guida. Lo aggiungo solamente.

EDIT: Peppinux ma se io metto, ad esempio, random(25) e dico che, se "mess" è uguale a 13, succede una cosa... Posso scriverlo cosi?

switch(mess)
{
case 13: Codice...;
return 1;
}

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 15/02/2011, 0:18 
Banned

Iscritto il: 31/10/2010
Messaggi: 1363
Località: Sicilia
Favourite GTA: San Andreas
Xfire: peppinux

Karma
-10


Non connesso
switch(mess)
{
case 13: Codice
}
Ma se devi controllare solo un caso allora usa il normale if. Se ci sono più di 2 casi allora lo switch.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 15/02/2011, 0:19 
Avatar utente
Utente

Iscritto il: 22/12/2010
Messaggi: 1098
Località: Agrigento (Sicilia)
Favourite GTA: San Andreas
Xfire: In PM

Karma
0


Non connesso
Ok grazie non lo sapevo... Sinceramente stufava fare sempre if(...). Comunque ho aggiornato la guida aggiungendo i tuoi consigli ;)

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 15/02/2011, 18:11 
Banned

Iscritto il: 31/10/2010
Messaggi: 1363
Località: Sicilia
Favourite GTA: San Andreas
Xfire: peppinux

Karma
-10


Non connesso
Bene comunque non è questione di essere più esperti o meno esperti :asd: usare i case è meglio di usare gli if in quel caso ;).


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 15/02/2011, 18:13 
Avatar utente
Utente

Iscritto il: 07/11/2010
Messaggi: 250
Località: Sardegna
Favourite GTA: Vice City

Karma
0


Non connesso
Carina :uhmsese:

_________________
Immagine

Immagine

Immagine

Immagine

Immagine

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 15/02/2011, 18:19 
Avatar utente
Utente

Iscritto il: 22/12/2010
Messaggi: 1098
Località: Agrigento (Sicilia)
Favourite GTA: San Andreas
Xfire: In PM

Karma
0


Non connesso
Peppinux AKA Peppe_Stasu ha scritto:
Bene comunque non è questione di essere più esperti o meno esperti :asd: usare i case è meglio di usare gli if in quel caso ;).


Esperti intendevo che avessero un buon approccio con le variabili. Senno farebbero solo confusione leggendo switch e case. Te lo assicuro, almeno io quando non sapevo usarli appena leggevo switch cambiavo subito argomento perché causava solo confusione (almeno a me). Vabbé sono liberi di usarlo, io l'ho scritto. Se si sentono esperti, lo usano ù.ù.

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 15/02/2011, 18:22 
Avatar utente
Utente

Iscritto il: 18/11/2010
Messaggi: 352
Località: Valenza(AL)
Favourite GTA: San Andreas

Karma
0


Non connesso
Sarò sincero, la precedente guida era veramente utile, questa non mi piace molto, mi pare che non abbia nessuna spiegazione in più del wiki o di altre guide, sarebbe stato meglio aggiungere altro a mio parere :sisi:

_________________
Firma cancellata. Ripassa il regolamento.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 15/02/2011, 18:27 
Avatar utente
Utente

Iscritto il: 22/12/2010
Messaggi: 1098
Località: Agrigento (Sicilia)
Favourite GTA: San Andreas
Xfire: In PM

Karma
0


Non connesso
Si Alby anche io lo pensai... Ma non sapevo cosa scrivere. In realtà volevo fare una guida sui Random, ma poi mi venne in mente questa. Credevo che nel Random avrei scritto poco. Comunque per la Wiki credo che tu non abbia tanto ragione. Cioè è vero, nella SA-MP Wiki è spiegato tutto meglio di questo topic, ma c'è gente che di inglese ne capisce poco oppure gente che non ha professori di inglese buoni e quindi non studiano mai (a me è capitato, ma fortunatamente abbiamo cambiato e adesso sto cominciando ad apprezzare l'inglese). Vabbé poi ognuno è libero di scegliere quale guida seguire ;)

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 29/03/2011, 20:52 
Utente

Iscritto il: 29/03/2011
Messaggi: 170
Favourite GTA: San Andreas

Karma
0


Non connesso
Ma è possibile che quando provo a fare qualcosa io non mi va mai niente?...
Mi date una mano per favore?

_________________
Il mio server SA:MP.

HostName: [ITA] IronForge [0.3c]
Address: ironforge.hopto.org:7777
Mode: Sicily's City
Map: San Andreas

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 29/03/2011, 21:47 
Avatar utente
Administrator

Iscritto il: 02/09/2010
Messaggi: 1349
Località: Agrigento
Favourite GTA: Vice City
PlayStation Network: Giovanni94m
Xfire: Giovanni94m
Steam: Giovanni94m

Karma
10


Non connesso
Se ti riferisci a questa guida posta i problemi che riscontri.
Se invece parli in generale apri un topic nella sezione Aiuti Scripting ;)

_________________
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 30/03/2011, 18:14 
Utente

Iscritto il: 29/03/2011
Messaggi: 170
Favourite GTA: San Andreas

Karma
0


Non connesso
Non è in generale, non riesco proprio a inserire l'automessage.

_________________
Il mio server SA:MP.

HostName: [ITA] IronForge [0.3c]
Address: ironforge.hopto.org:7777
Mode: Sicily's City
Map: San Andreas

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 30/03/2011, 21:45 
Avatar utente
Utente

Iscritto il: 22/12/2010
Messaggi: 1098
Località: Agrigento (Sicilia)
Favourite GTA: San Andreas
Xfire: In PM

Karma
0


Non connesso
Ti do lo script direttamente, poi se funge ti spiego cosa significa.

Codice:
// In OnGameModeInit inserisci (all'interno)

SetTimer("AutoMessage", 60000, true);

// In basso a tutto quanto (intendo l'ultima riga della GM)

forward AutoMessage();
public AutoMessage()
{
new mess = random(3);
switch(mess)
{
case 0: SendClientMessageToAll(-1, "Mess 1");
case 1: SendClientMessageToAll(-1, "Mess 2");
case 2: SendClientMessageToAll(-1, "Mess 3");
}
return 1;
}


Quindi, nel public (la funzione creata sotto a tutto), inserisci i messaggi tra gli " " nei vari SendClientMessageToAll. Ho messo che, ogni 60 secondi, invia un messaggio random tra i 3 scritti. Se vuoi che siano di più, cambia il 60000 in SetTimer con i millisecondi che vuoi tu.

Come calcolare i millisecondi (spero di non spingermi più così in basso D:)

Se vuoi che siano, ad esempio, 220 secondi, basta fare 220 x 1000 = 220000. Non proseguo più sennò qui certa gente mi massacra :asd: comunque fammi sapere se ti funziona ;)

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 30/03/2011, 22:15 
Utente

Iscritto il: 29/03/2011
Messaggi: 170
Favourite GTA: San Andreas

Karma
0


Non connesso
mitosking ha scritto:
Ti do lo script direttamente, poi se funge ti spiego cosa significa.

Codice:
// In OnGameModeInit inserisci (all'interno)

SetTimer("AutoMessage", 60000, true);

// In basso a tutto quanto (intendo l'ultima riga della GM)

forward AutoMessage();
public AutoMessage()
{
new mess = random(3);
switch(mess)
{
case 0: SendClientMessageToAll(-1, "Mess 1");
case 1: SendClientMessageToAll(-1, "Mess 2");
case 2: SendClientMessageToAll(-1, "Mess 3");
}
return 1;
}


Quindi, nel public (la funzione creata sotto a tutto), inserisci i messaggi tra gli " " nei vari SendClientMessageToAll. Ho messo che, ogni 60 secondi, invia un messaggio random tra i 3 scritti. Se vuoi che siano di più, cambia il 60000 in SetTimer con i millisecondi che vuoi tu.

Come calcolare i millisecondi (spero di non spingermi più così in basso D:)

Se vuoi che siano, ad esempio, 220 secondi, basta fare 220 x 1000 = 220000. Non proseguo più sennò qui certa gente mi massacra :asd: comunque fammi sapere se ti funziona ;)

Devo metterlo nella GM giusto?
Credo di si bhe la metto e poi ti faccio sapere.

_________________
Il mio server SA:MP.

HostName: [ITA] IronForge [0.3c]
Address: ironforge.hopto.org:7777
Mode: Sicily's City
Map: San Andreas

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Creare degli Auto-Message
MessaggioInviato: 30/03/2011, 22:32 
Utente

Iscritto il: 29/03/2011
Messaggi: 170
Favourite GTA: San Andreas

Karma
0


Non connesso
Niente da fare... Ho anche modificato mettendo ogni 2 secondi ma nn compare niente... Cosa faccio?

_________________
Il mio server SA:MP.

HostName: [ITA] IronForge [0.3c]
Address: ironforge.hopto.org:7777
Mode: Sicily's City
Map: San Andreas

Immagine


Top
 E-mail  
 
Visualizza ultimi messaggi:  Ordina per  
 Pagina 1 di 3 [ 60 messaggi ] 

Vai alla pagina :: 1, 2, 3  Prossima »
  Apri un nuovo argomento Rispondi all’argomento

Tutti gli orari sono UTC + 1 ora [ ora legale ]



Chi c’è in linea

Visitano il forum: Nessuno e 29 ospiti


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a: