GTA-Expert Forum: [HELP]CMD + X,Y,Z - GTA-Expert Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[HELP]CMD + X,Y,Z

#1 L'utente è offline   KevinGenoves3 

  • Tirapiedi
  • Gruppo: Utenti
  • Messaggi: 609
  • Iscritto il: 05/07/10
  • Provenienza:Zena

Inviato il 21 novembre 2010 - 04:13

Salve a tutti :)

Sto creando una gamemode, che potete leggere nella mia firma. Ho scriptato tutti i comandi, tranne uno: Il raid aereo. Perchè?
Perchè non mi ricordo come creare cmd che accettano variabili inserite dall'utente (es /spawn turismo).

A me ne servirebbe uno che genera 3 esplosioni di type 2 abbastanza grandi in fila verticale, separate di un paio di metri l'una dall'altra. Il problema non è questo, ma un'altro.
Quando il player digita /raid x y z (es: /raid 3 5 6) queste esplosioni compaiono alla sua posizione più x y e z, (quindi alla sua posizione più 3 5 e 6). Grazie in anticipo (ps: Nel mio script aggiungo che si effettua una chiamata, ma questo so farlo)
Immagine Postata


Immagine PostataRegisterMe v 2.0 Immagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine Postata




0

#2 L'utente è offline   .ReVo^ 

  • Criminale
  • Gruppo: Utenti
  • Messaggi: 1402
  • Iscritto il: 20/11/08
  • GTA Preferito:GTA: TBoGT

Inviato il 21 novembre 2010 - 09:27

Devi usare lo strtok
Immagine Postata
0

#3 L'utente è offline   Skiaffo 

  • Boss
  • Gruppo: Moderatori
  • Messaggi: 14732
  • Iscritto il: 08/12/05
  • Provenienza:Urbs Aeterna
  • GTA Preferito:GTA V

Inviato il 21 novembre 2010 - 10:11

if (!strcmp(cmd, "/raid", true)) {
  new tmp[256], Rx, Ry, Rz, Float:Px, Float:Py, Float:Pz;
  GetPlayerPos(playerid, Px, Py, Pz);
  tmp = strtok(cmdtext, idx);
  Rx = strval(tmp);
  tmp = strtok(cmdtext, idx);
  Ry = strval(tmp);
  tmp = strtok(cmdtext, idx);
  Rz = strval(tmp);
  CreateExplosion(Px + Rx, Py + Ry, Pz + Rz, type, radius);
  return 1;
}

"Audentes Fortuna iuvat"
0

#4 L'utente è offline   Peppinux aka Peppe_Stasu 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 2056
  • Iscritto il: 16/04/10
  • GTA Preferito:GTA: San Andreas

Inviato il 21 novembre 2010 - 10:23

E ricorda che devi avere lo strtok.
0

#5 L'utente è offline   KevinGenoves3 

  • Tirapiedi
  • Gruppo: Utenti
  • Messaggi: 609
  • Iscritto il: 05/07/10
  • Provenienza:Zena

Inviato il 21 novembre 2010 - 12:27

Edit:
C'è un problema.
Con il tuo codice, skiaffo, mi fa esplodere il pg anche se digito /dollars , perchè è !(diverso) da /raid. E se levo il segno ! non mi va il raid. D:

Messaggio modificato da KevinGenoves3 il 21 novembre 2010 - 13:03

Immagine Postata


Immagine PostataRegisterMe v 2.0 Immagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine Postata




0

#6 L'utente è offline   Skiaffo 

  • Boss
  • Gruppo: Moderatori
  • Messaggi: 14732
  • Iscritto il: 08/12/05
  • Provenienza:Urbs Aeterna
  • GTA Preferito:GTA V

Inviato il 21 novembre 2010 - 13:48

Visualizza MessaggiKevinGenoves3, il 21 novembre 2010 - 12:27 ha detto:

Edit:
C'è un problema.
Con il tuo codice, skiaffo, mi fa esplodere il pg anche se digito /dollars , perchè è !(diverso) da /raid. E se levo il segno ! non mi va il raid. D:


Il mio codice è corretto, il problema è nel comando /dollars o in qualche altra parentesi mal chiusa precedentemente.

strcmp returna 0 quando due stringhe sono uguali, quindi scrivere

if (!strcmp(stringa1, stringa2, true)) {


o

if (strcmp(stringa1, stringa2, true) == 0) {


e' la stessa cosa ed è giusto in entrambi i casi. Il mio codice è giusto, il problema è altrove.
"Audentes Fortuna iuvat"
0

#7 L'utente è offline   KevinGenoves3 

  • Tirapiedi
  • Gruppo: Utenti
  • Messaggi: 609
  • Iscritto il: 05/07/10
  • Provenienza:Zena

Inviato il 21 novembre 2010 - 18:06

Visualizza MessaggiSkiaffo, il 21 novembre 2010 - 13:48 ha detto:

Visualizza MessaggiKevinGenoves3, il 21 novembre 2010 - 12:27 ha detto:

Edit:
C'è un problema.
Con il tuo codice, skiaffo, mi fa esplodere il pg anche se digito /dollars , perchè è !(diverso) da /raid. E se levo il segno ! non mi va il raid. D:


Il mio codice è corretto, il problema è nel comando /dollars o in qualche altra parentesi mal chiusa precedentemente.

strcmp returna 0 quando due stringhe sono uguali, quindi scrivere

if (!strcmp(stringa1, stringa2, true)) {


o

if (strcmp(stringa1, stringa2, true) == 0) {


e' la stessa cosa ed è giusto in entrambi i casi. Il mio codice è giusto, il problema è altrove.

Adesso controllo, ma comunque mi fa saltare in aria anche se scrivo /sjcuinhaikfa :(

Edit: Avevo dimenticato
cmd = strtok(cmdtext, idx);
in cima :palm:

Messaggio modificato da KevinGenoves3 il 21 novembre 2010 - 18:16

Immagine Postata


Immagine PostataRegisterMe v 2.0 Immagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine Postata




0

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

1 utenti stanno leggendo questa discussione
0 utenti, 1 ospiti, 0 utenti anonimi