Oggi è 06/05/2025, 1:43

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

  Apri un nuovo argomento Rispondi all’argomento

  Stampa pagina

Autore Messaggio
 Oggetto del messaggio: [help]goto
MessaggioInviato: 17/01/2011, 23:05 
Avatar utente
Utente

Iscritto il: 25/11/2010
Messaggi: 64
Località: Agrigento
Favourite GTA: San Andreas

Karma
0


Non connesso
ciao,come faccio a creare un comando che appena scrivo /goto nomeplayer, mi teletrasporta dal giocatore che ho scritto dopo goto?


Top
 E-mail  
 

 Oggetto del messaggio: Re: [help]goto
MessaggioInviato: 17/01/2011, 23:19 
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
bisogna usare il strtok e gettare le coordinate del player a cui ti vuoi teletrasportare:

Codice:
if(strcmp(cmdtext, "/goto", true)==0)
{
    new Float:Pos[3];
    new tmp[256];
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_RED, "Uso: /goto [playerid]");
    GetPlayerPos(strval(tmp), Pos[0], Pos[1], Pos[2]);
    SetPlayerPos(playerid, Pos[0]+0.5, Pos[1], Pos[2]);
    return 1;
}


Se non hai il strtok eccolo qua:
Codice:
stock strtok(const string[], &index)
{
   new length = strlen(string);
   while ((index < length) && (string[index] <= ' '))
   {
      index++;
   }

   new offset = index;
   new result[20];
   while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
   {
      result[index - offset] = string[index];
      index++;
   }
   result[index - offset] = EOS;
   return result;
}

_________________
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


Ultima modifica di Angelo il 17/01/2011, 23:28, modificato 1 volta in totale.

Top
 E-mail  
 
 Oggetto del messaggio: Re: [help]goto
MessaggioInviato: 17/01/2011, 23:24 
Avatar utente
Utente

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

Karma
0


Non connesso
Codice:
if(strcmp(cmdtext, "/goto", true) == 0)
{
    new tmp[256];
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
     SendClientMessage(playerid, 0xFFFFFFFF, "Sintassi: /goto [ID PLAYER]");
     return 1;
    }
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(strval(tmp), X, Y, Z);
    SetPlayerPos(playerid, X, Y, Z);
    return 1;
}

Ho contato che hai lo strtok già definito

EDIT: LOL ho risposto appena dopo Angelo >.<

_________________
Firma cancellata. Ripassa il regolamento.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [help]goto
MessaggioInviato: 17/01/2011, 23:33 
Avatar utente
Utente

Iscritto il: 25/11/2010
Messaggi: 64
Località: Agrigento
Favourite GTA: San Andreas

Karma
0


Non connesso
scusate l' ignoranza macos' è il strtok?


Top
 E-mail  
 
 Oggetto del messaggio: Re: [help]goto
MessaggioInviato: 17/01/2011, 23:38 
Avatar utente
Utente

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

Karma
0


Non connesso
Serve a checkare cosa scrivi dopo il comando, senza di quello non potresti fare /goto ID, ma solo /goto

_________________
Firma cancellata. Ripassa il regolamento.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [help]goto
MessaggioInviato: 17/01/2011, 23:38 
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
è una funzione che rileva se ci sono spazi in una stringa, se ci sono returna la parola dopo lo spazio

_________________
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: [help]goto
MessaggioInviato: 17/01/2011, 23:40 
Avatar utente
Utente

Iscritto il: 25/11/2010
Messaggi: 64
Località: Agrigento
Favourite GTA: San Andreas

Karma
0


Non connesso
e come lo uso?


Top
 E-mail  
 
 Oggetto del messaggio: Re: [help]goto
MessaggioInviato: 18/01/2011, 0:34 
Avatar utente
Utente

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

Karma
0


Non connesso
http://wiki.sa-mp.com/wiki/Strtok

_________________
Firma cancellata. Ripassa il regolamento.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [help]goto
MessaggioInviato: 18/01/2011, 14:36 
Avatar utente
Utente

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

Karma
0


Non connesso
Se non capisci nella guida di wiki, ti spiego io in poche parole.

Allora, come hanno già detto loro, lo strtok definisce ciò che viene scritto dopo il comando. In questo caso /goto ID. Mettiamo caso che tu abbia come ID 1 e voglio gotarmi da te, quindi dovrò scrivere /goto 1. Per definire che questo "1" debba essere l'ID in cui gotarci, bisogna fare cosi:

Codice:
if(!strcmp(cmd, "/goto", true))
{
new aName[24];
new stringa[150];
new Float: Pos[3];
new altroid[256];
altroid = strtok(cmdtext, idx);
if(!strlen(altroid)) return SendClientMessage(playerid, colore, "[USO:]/goto <id>");
if(!IsPlayerConnected(strval(altroid))) return SendClientMessage(playerid, colore, "Player Offline");
GetPlayerPos(strval(altroid), Pos[0], Pos[1], Pos[2]);
SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
GetPlayerName(strval(altroid), aName, sizeof(aName));
format(stringa, sizeof(stringa), "Ti sei gotato da %s", aName);
SendClientMessage(playerid, colore, stringa);
return 1;
}


Ti spiego cosa significano:

aName, stringa ed i Float credo dovresti saperlo di tuo cosa sono. altroid è un array a cui abbiamo dato come colonne 256 (decidi tu, io uso sempre 256). Poi abbiamo detto che "altroid" è uguale ad strtok(cmdtext, idx). Questo significa che altroid sarà quel che scriviamo dopo il comando. Poi mettiamo "if(!strlen(altroid))". Questo codice dice che, se noi non scriviamo bene il comando (ovvero /goto id), returnerà un messaggio o farà accadere qualcosa. "if(!IsPlayerConnected(strval(altroid)))" ti dice che, se altroid non è connesso, accadrà qualcosa. L'strval, se non sai cos'è, serve a definire quell'array. Di solito si usa per l'strtok. Comunque, se non ti va di fare questo strval, basta aggiungere al comando:

Codice:
new altroplayer;
altroplayer = strval(altroid);


In questo modo non ce piu bisogno di scrivere "strval(altroid)", ma direttamente "altroplayer". Poi, tutte le altre funzioni, dove ho messo "strval(altroid)", si riferiranno SEMPRE a quell'ID che hai scritto. Quindi il "GetPlayerPos", che prende la posizioni dell'ID e la salva nei tre Float "Pos". Poi il "SetPlayerPos" dove ho messo il playerid, ovvero quello ad essere gotato dovrai essere tu e non l'altro player. E poi tutte le altre cose. Se non hai capito qualcosa, scrivilo ;).

Se per caso risolvi, dicci la soluzione cosi almeno potremmo usarla con altri che avranno il tuo stesso problema.

EDIT: Ah il comando l'ho fatto al volo. Fammi sapere se ti funziona, perché non l'ho testato.

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [help]goto
MessaggioInviato: 18/01/2011, 19:13 
Avatar utente
Utente

Iscritto il: 25/11/2010
Messaggi: 64
Località: Agrigento
Favourite GTA: San Andreas

Karma
0


Non connesso
ok grazie funziona


Top
 E-mail  
 
 Oggetto del messaggio: Re: [help]goto
MessaggioInviato: 19/01/2011, 1:30 
Avatar utente
Utente

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

Karma
0


Non connesso
Di niente ;)

_________________
Immagine


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

  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 7 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