Oggi è 15/06/2024, 23:33

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 [ 19 messaggi ] 

  Apri un nuovo argomento Questo argomento è bloccato, non puoi modificare o inviare ulteriori messaggi.

  Stampa pagina

Autore Messaggio
 Oggetto del messaggio: [RISOLTO] Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 30/12/2010, 23:09 
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, come ho già precisato in precedenti topic, ho imparato a scriptare da poco. Con oggi sono 1 settimana circa. Molte volte però vedo in dei script dei codici strani di cui me ne sono sempre chiesto le loro funzionalità.

1) Cosa sono questi strtok - strtval - strcmd? Quali sono le loro funzioni e quando vengono utilizzate?

2) Come faccio a creare un comando di "testo"? Ovvero: TESTO = Ciò che scriviamo. C'è un codice che rigetta quel che scriviamo? (Tipo GetPlayerPos oppure GetPlayerInterior)

3) Come faccio a creare un comando con lo stesso testo, ma che esegua azioni diverse? Nel senso se io digito /aduty per entrare in servizio admin, vorrei che quando riscrivo /aduty lui mi faccia uscire dal servizio admin. Cioè un codice che riconosca se sono in servizio, non so se mi sono spiegato bene...

Queste sono le 3 principali domande che mi propongo da giorni. Spero possiate essermi di aiuto ;).

_________________
Immagine


Top
 E-mail  
 

 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 31/12/2010, 3:43 
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
strtok serve per trovare una variabile dopo uno spazio esempio /kick id
http://wiki.sa-mp.com/wiki/Strtok

strval serve per convertire una stringa in un numero intero
http://wiki.sa-mp.com/wiki/Strval

strcmd controlla se due stringhe sono uguali
http://wiki.sa-mp.com/wiki/Strcmp

_________________
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 31/12/2010, 4:07 
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, e per le altre 2 domande?

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 31/12/2010, 11:10 
Banned

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

Karma
-10


Non connesso
2.Non ho capito cosa vuoi dire :grat:.

3.
Codice:
// In cima
new bool:isInADuty[MAX_PLAYERS];

// Sotto OnPlayerConnect
isInADuty[playerid] = false;

// Nel comando
if(isInADuty[playerid] == false)
{
    isInADuty[playerid] = true;
    // Altre funzioni che vuoi far avvenire se il player NON era ancora in ADuty
}
else
{
    isInADuty[playerid] = false;
    // Altre funzioni che vuoi far avvenire se il player ERA già in Aduty
}


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 31/12/2010, 14:31 
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 mille ;). Comunque per la seconda dicevo le "chat". Nel senso una chat /t che puo sentire solo il Team. Capisci????

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 31/12/2010, 15:44 
Banned

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

Karma
-10


Non connesso
Ah sì ho capito se ho tempo te lo faccio...


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 31/12/2010, 16:50 
Avatar utente
Utente

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

Karma
0


Non connesso
mitosking ha scritto:
ok grazie mille ;). Comunque per la seconda dicevo le "chat". Nel senso una chat /t che puo sentire solo il Team. Capisci????

Visto che non conosci lo strtok e altre stringhe essenziali per i cmds ti consiglio di usare i dcmd che sono più semplici da usare, comunque ti faccio un comando per l'admin chat, poi modificalo come ti pare mettendo al posto di IsPlayerAdmin la variabile per il team
Codice:
//In Alto
forward MessaggioPrivato(color, string[]);
//CallBack
public MessaggioPrivato(color, string[]){
for(new i=0;i<MAX_PLAYERS;i++){
if(IsPlayerAdmin(playerid))
{
SendClientMessage(i, color, string);
}
}
return 1;
}
//OnPlayerCommandText
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(chat,4,cmdtext);
return 0;
}
dcmd_chat(playerid,params[])
{
if(IsPlayerAdmin(playerid))
{
new plName[24],
string[256];
GetPlayerName(playerid, plName, 24);
format(string, sizeof(string), "[CHAT PRIVATA] %s: %s", plName, params);
MessaggioPrivato(0xFF000000, string);
}
return 1;
}

_________________
Firma cancellata. Ripassa il regolamento.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 31/12/2010, 17:10 
Banned

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

Karma
-10


Non connesso
Alby è inutile fare tutto quello che hai detto tu. Sicuramente usare il dcmd è più veloce del classico OnPlayerCommandText ma è anche vero che se si è alle prime armi è meglio imparare prima i metodi tradizionali o si finirà col non capire più niente. Inoltre creare la funzione MessaggioPrivato è alquanto inutile se questa viene usata una sola volta. Comunque se vuoi una TeamChat tramite comando /t specifica come hai creato i team. Usi il metodo AddPlayerClassEx/SetPlayerTeam oppure setti il team tramite variabile per esempio gTeam?


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 31/12/2010, 17:50 
Avatar utente
Utente

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

Karma
0


Non connesso
Peppinux AKA Peppe_Stasu ha scritto:
Alby è inutile fare tutto quello che hai detto tu. Sicuramente usare il dcmd è più veloce del classico OnPlayerCommandText ma è anche vero che se si è alle prime armi è meglio imparare prima i metodi tradizionali o si finirà col non capire più niente. Inoltre creare la funzione MessaggioPrivato è alquanto inutile se questa viene usata una sola volta. Comunque se vuoi una TeamChat tramite comando /t specifica come hai creato i team. Usi il metodo AddPlayerClassEx/SetPlayerTeam oppure setti il team tramite variabile per esempio gTeam?

Secondo me appunto perchè è alle prime armi dovrebbe usare comandi più semplici come il dcmd che ha già definito lo strtok, nel "params", comunque hai ragione anche tu, prima impara ad usarlo, meglio è :asd:

_________________
Firma cancellata. Ripassa il regolamento.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 01/01/2011, 23:44 
Avatar utente
Utente

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

Karma
0


Non connesso
Scusate se in questi giorni non ci sono stato, ma ero dai parenti O.o... Comunque uso il sistema gTeam.

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 02/01/2011, 12:27 
Banned

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

Karma
-10


Non connesso
Codice:
// Sotto OnPlayerCommandText
if(!strcmp(cmd, "/teamchat", true) || !strcmp(cmd, "/tc", true) || !strcmp(cmd, "/t", true))
{
   new
       tmp[256],
       pName[24],
       string[128];
   tmp = strrest(cmdtext, idx);
   if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_YELLOW, "[USO:] (/t)eamchat [Testo]");
   GetPlayerName(playerid, pName, 24);
   format(string, 128, "[TeamChat:] %s: %s", pName, tmp);
   for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && gTeam[playerid] == gTeam[i]) SendClientMessage(i, COLOR_BLUE, string);
   return 1;
}

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

E ricorda che comunque devi avere
Codice:
// Sotto OnPlayerCommandText
new
   cmd[256],
   idx;
cmd = strtok(cmdtext, idx);

// Fuori da tutto
strtok(const string[], &index)
{
   new length = strlen(string);
   while((index < length) && (string[index] <= ' ')) index++;
   new
      offset = index,
      result[20];
   while((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
   {
      result[index - offset] = string[index];
      index++;
   }
   result[index - offset] = EOS;
   return result;
}

Non testato dovrebbe funzionare.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 03/01/2011, 3:12 
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 Peppinux ;)... Comunque scusate l'eccesso di domande e il rompimento continuo di scatole (O.o), ma mi spiegate cosa farebbe questa riga?

Codice:
for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && gTeam[playerid] == gTeam[i])

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 03/01/2011, 3:40 
Avatar utente
Utente

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

Karma
0


Non connesso
mitosking ha scritto:
Ok Grazie Peppinux ;)... Comunque scusate l'eccesso di domande e il rompimento continuo di scatole (O.o), ma mi spiegate cosa farebbe questa riga?

Codice:
for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && gTeam[playerid] == gTeam[i])

Definisce la variabile " i " per tutti i players che sono nel team, e fa agire la funzione solo su di loro.

_________________
Firma cancellata. Ripassa il regolamento.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 03/01/2011, 17:17 
Utente

Iscritto il: 06/11/2010
Messaggi: 114
Xfire: revolution96

Karma
0


Non connesso
Alby Fire ha scritto:
mitosking ha scritto:
Ok Grazie Peppinux ;)... Comunque scusate l'eccesso di domande e il rompimento continuo di scatole (O.o), ma mi spiegate cosa farebbe questa riga?

Codice:
for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && gTeam[playerid] == gTeam[i])

Definisce la variabile " i " per tutti i players che sono nel team, e fa agire la funzione solo su di loro.

Non è vero, la variabile i contiene l'id del giocatore (il for fa aumentare il suo valore finche non arriva a 500) se il valore di i è 0, viene controllato se il giocatore con id 0 è connesso e ha il team uguale a quello del playerid e cosi via per il valore 1,2,3,4,5,6..


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 03/01/2011, 17:48 
Avatar utente
Utente

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

Karma
0


Non connesso
ReVo_ ha scritto:
Non è vero, la variabile i contiene l'id del giocatore (il for fa aumentare il suo valore finche non arriva a 500) se il valore di i è 0, viene controllato se il giocatore con id 0 è connesso e ha il team uguale a quello del playerid e cosi via per il valore 1,2,3,4,5,6..

Si, ma " i " alla fine comprende tutti i players che sono nel team giusto?

_________________
Firma cancellata. Ripassa il regolamento.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 03/01/2011, 18:46 
Avatar utente
Moderatore

Iscritto il: 28/10/2010
Messaggi: 919
Località: Veduggio con Colzano (Milano-Monza)
Favourite GTA: San Andreas
PlayStation Network: Nessuno
Xbox Live: Nessuno
Xfire: barle97

Karma
1


Non connesso
No. Forse non hai capito che for è un ciclo. Alla fine del ciclo la variabile aumenta per proseguire col successivo ID. MAX_PLAYERS = 500. Partendo dallo 0 fino a 499

_________________
disasm 0xFFFF00 1: LE HANTENNE DEL RUTER SI MVONO DA SL!11!1!!1
[EPD]Giovanni94m: AHSUAHSAUSHAUSAHSAU
disasm 0xFFFF00 1: bella questa asd

[EPD]Giovanni94m: io non riesco a trovare un gioco che ci giocavo su ps1
[EPD]Giovanni94m: non ricordo il nome
[EPD]Giovanni94m: era un omino rosa
[EPD]Giovanni94m: ...
[BCD]barle_the_king: forse cercavi omino bianco [cit. google]
[BCD]barle_the_king: auhsahusuha
[EPD]Giovanni94m: no ahsau
[BCD]barle_the_king: firma duhahudshue

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 03/01/2011, 19:43 
Avatar utente
Utente

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

Karma
0


Non connesso
barletheking ha scritto:
No. Forse non hai capito che for è un ciclo. Alla fine del ciclo la variabile aumenta per proseguire col successivo ID. MAX_PLAYERS = 500. Partendo dallo 0 fino a 499

Ah, mi mancava questa :asd:

_________________
Firma cancellata. Ripassa il regolamento.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 03/01/2011, 23: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
Ok grazie mille potete chiudere ;)

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [DOMANDE]Ecco varie domande che mi sono sempre chiesto
MessaggioInviato: 04/01/2011, 0:48 
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
Per altri problemi riapri un topic ;)
:lock:

_________________
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine


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

  Apri un nuovo argomento Questo argomento è bloccato, non puoi modificare o inviare ulteriori messaggi.

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



Chi c’è in linea

Visitano il forum: Nessuno e 115 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