Oggi è 17/06/2025, 10:44

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



Regole del forum


- Dare titoli sensati, non titoli tipo "Aiuto" oppure "Problema", i topic analoghi verranno immediatamente chiusi.
- Utilizzare http://www.pastebin.com per script superiori a 20 righe.



 Pagina 1 di 1 [ 4 messaggi ] 

  Apri un nuovo argomento Rispondi all’argomento

  Stampa pagina

Autore Messaggio
 Oggetto del messaggio: [HELP] Nelle chat!
MessaggioInviato: 07/03/2011, 15:19 
Utente

Iscritto il: 13/02/2011
Messaggi: 25
Favourite GTA: San Andreas
PlayStation Network: nessuno
Xbox Live: nessuno
Xfire: nessuno

Karma
0


Non connesso
Salve,oggi vorrei sapere come si creano le chat tipo /b ed esce Tizio_Caio dice:((Testo)) non so se avete capito na specie di chat che si usano nei server RP.
Come si creano?


Top
 E-mail  
 

 Oggetto del messaggio: Re: [HELP] Nelle chat!
MessaggioInviato: 07/03/2011, 16:32 
Avatar utente
Utente

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

Karma
0


Non connesso
Prima di tutto bisogna definire strrest. Quindi, in basso a tutto:

Codice:
stock strrest(const string[], &index)
{
   new length = strlen(string);
   while ((index < length) && (string[index] <= ' '))
   {
      index++;
   }
   new offset = index;
   new result[128];
   while ((index < length) && ((index - offset) < (sizeof(result) - 1)))
   {
      result[index - offset] = string[index];
      index++;
   }
   result[index - offset] = EOS;
   return result;
}


Adesso creiamo il comando. Mettiamo caso che io voglia creare un comando per il mio team, ecco cosa farò:

Codice:
if(!strcmp("/t", cmdtext, true))
{
new testo[128]; testo = strrest(cmdtext, idx);
if(!strlen(testo)) return SendClientMessage(playerid, colore, "USA /t <testo>");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerTeam(playerid) == GetPlayerTeam(i))
{
new stringa[128], pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));
format(stringa, 128, "[TEAM CHAT:] %s (%d) dice: %s", pName, playerid, testo);
SendClientMessage(i, colore, stringa);
}
}
return 1;
}


Bene, che cosa ho fatto? Prima di tutto ho definito strrest che è una funzione che "returna" tutto ciò che viene scritto dopo il comando (al contrario di strtok che returna solo la prima parte). Poi ho creato un "for" (ovvero un ciclo) ed al suo interno ho creato un array "i" che sarà minore di MAX_PLAYERS (ovvero 500) e crescerà di continuo. Quindi "i" assumerà il valore di ogni player. Poi ho detto che, se il team del playerid (chi scrive il comando) è uguale a tutti i player (quindi, in poche parole, controlla se ogni player preso in "i" avrà lo stesso Team di playerid), si formatterà un messaggio. Il format va letto cosi: "[TEAM CHAT:] Nome (ID) dice: TESTO". Ho detto che poi, ciò che ho formattato nella variabile "stringa", viene inviato ad "i" che adesso comprenderà tutti i player dello stesso team di playerid...

All'inizio lo so, fa molta confusione. Ma imparerai anche questo ;)

EDIT: Ah dimenticavo: se non hai definito idx, sotto OnPlayerCommandText metti:

Codice:
new idx;


Deve essere proprio sotto OnPlayerCommandText, in alto a tutto.

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] Nelle chat!
MessaggioInviato: 07/03/2011, 22:05 
Utente

Iscritto il: 13/02/2011
Messaggi: 25
Favourite GTA: San Andreas
PlayStation Network: nessuno
Xbox Live: nessuno
Xfire: nessuno

Karma
0


Non connesso
:argh: cose molto difficili per me, mi pareva che era facile fare le chat!


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] Nelle chat!
MessaggioInviato: 07/03/2011, 23: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
Eh no... Dezter (Mike :argh:) non è facile all'inizio. Ma poi vedi ;)

_________________
Immagine


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

  Apri un nuovo argomento Rispondi all’argomento

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



Chi c’è in linea

Visitano il forum: Google [Bot] e 33 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:  
cron