GTA-Expert Forum: [ARG] Funzioni e Comandi Utili - GTA-Expert Forum

Salta al contenuto

  • (18 Pagine)
  • +
  • « Primo
  • 9
  • 10
  • 11
  • 12
  • 13
  • Ultimo »
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[ARG] Funzioni e Comandi Utili

#201 L'utente è offline   SPEDDY-96 

  • Cittadino Integerrimo
  • Gruppo: Utenti
  • Messaggi: 6
  • Iscritto il: 18/01/10

Inviato il 21 gennaio 2010 - 15:42

sono tutte belissime
0

#202 L'utente è offline   _All3Xz_ 

  • Criminale
  • Gruppo: Utenti
  • Messaggi: 1512
  • Iscritto il: 05/01/09
  • GTA Preferito:GTA: San Andreas

Inviato il 22 febbraio 2010 - 19:38

RandomEx(valoremassimo,valoreminimo)


Questa funzione svolge un random tra due valori, massimo e minimo. Cioè, per esempio, se prendiamo come valore massimo 20 e valore minimo 10 esegue un random tra 20 e 10.

Fuori da tutto
forward RandomEx(valoremassimo,valoreminimo);

public RandomEx(valoremassimo,valoreminimo)
{
new Iniziale; //Valore iniziale
new Finale; //Valore finale
Iniziale = valoremassimo - valoreminimo;
random(Iniziale);
Finale = valoreminimo + Iniziale;
return Finale;
}

My Works
[FS]_All3Xz_ Anti-Cheat 4
[FS]_All3Xz_ Anti-Cheat 7
[FS]_All3Xz_ Anti-Cheat 8
[GM] PVCM Training 0.? (MySQL)
[APP]_All3Xz_ NPC Generator
[GUIDA] Leggere da file usando dini
[GUIDA] Scripting GTA:IV - Callbacks
[GM] PVCM Training 1 (MySQL)
[GM] PVCM A/D
[GUIDA] Leggere da file usandi dini 2
0

#203 L'utente è offline   Peppe951 

  • Tirapiedi
  • Gruppo: Utenti
  • Messaggi: 899
  • Iscritto il: 14/07/09
  • GTA Preferito:Sconosciuto

Inviato il 22 febbraio 2010 - 21:24

Metti stock al posto di public così non c'è bisogno del forward ;)
0

#204 L'utente è offline   _All3Xz_ 

  • Criminale
  • Gruppo: Utenti
  • Messaggi: 1512
  • Iscritto il: 05/01/09
  • GTA Preferito:GTA: San Andreas

Inviato il 22 febbraio 2010 - 22:44

Quote

Originally posted by Peppe951@22/02/10 - 21:24
Metti stock al posto di public così non c'è bisogno del forward ;)

Vabbè, è la stessa cosa alla fine :m: non cambia niente
My Works
[FS]_All3Xz_ Anti-Cheat 4
[FS]_All3Xz_ Anti-Cheat 7
[FS]_All3Xz_ Anti-Cheat 8
[GM] PVCM Training 0.? (MySQL)
[APP]_All3Xz_ NPC Generator
[GUIDA] Leggere da file usando dini
[GUIDA] Scripting GTA:IV - Callbacks
[GM] PVCM Training 1 (MySQL)
[GM] PVCM A/D
[GUIDA] Leggere da file usandi dini 2
0

#205 L'utente è offline   Peppe951 

  • Tirapiedi
  • Gruppo: Utenti
  • Messaggi: 899
  • Iscritto il: 14/07/09
  • GTA Preferito:Sconosciuto

Inviato il 22 febbraio 2010 - 22:54

_sleep

_sleep(interval, bool:seconds = false)
{
    new
       _start = tickcount(),
       _interval = seconds ? 1000*interval : interval;
    intervalCheck:
    if(tickcount() - _start < _interval) goto intervalCheck;
}


Ho fatto questa funzione per provare delle funzioni del pawno che ho sempre ignorato...
In pratica lo scopo di questa funzione è fermare una parte di codice per determinati millisecondi/secondi per poi continuare ad eseguire il codice.

Per usare la funzione mettete nella parte di codice interessata così:
_sleep(intervallo);

in questo caso l'intervallo è in millisecondi... se volete invece mettere un intervallo in secondi fate cosi:
_sleep(intervallo, true);

Quindi l'intervallo è definito in secondi.

Esempio pratico:
public OnFilterScriptInit()
{
	print("3");
	_sleep(1, true);
	print("2");
	_sleep(1, true);
	print("1");
        _sleep(1, true);
        print("FS Caricato con successo ù.ù")
	return 1;
}

In questo caso quando viene avviato l'fs:
- Digita "1" nella console;
- C'è una pausa di un secondo;
- Digita "2" nella console;
- C'è una pausa di un secondo;
- Digita "1" nella console;
- C'è una pausa di un secondo;
- Digita "FS Caricato con successo ù.ù" nella console;
- Returna 1.

PS: nel pawno c'è già la funzione predefinita "sleep(millisecondi)" ma funziona solo nel main() a differenza della mia...










x Alle: è solo un consiglio, quando non necessitate di usare quella funzione come timer, CallLocalFunction o CallRemoteFunction non serve a niente usare public, ma andrebbe bene anche la funzione senza stock, public o altro...
0

#206 L'utente è offline   _All3Xz_ 

  • Criminale
  • Gruppo: Utenti
  • Messaggi: 1512
  • Iscritto il: 05/01/09
  • GTA Preferito:GTA: San Andreas

Inviato il 23 febbraio 2010 - 18:23

Mi ricordo una funzione identica o simile nel forum di samp
My Works
[FS]_All3Xz_ Anti-Cheat 4
[FS]_All3Xz_ Anti-Cheat 7
[FS]_All3Xz_ Anti-Cheat 8
[GM] PVCM Training 0.? (MySQL)
[APP]_All3Xz_ NPC Generator
[GUIDA] Leggere da file usando dini
[GUIDA] Scripting GTA:IV - Callbacks
[GM] PVCM Training 1 (MySQL)
[GM] PVCM A/D
[GUIDA] Leggere da file usandi dini 2
0

#207 L'utente è offline   scienziato-pazzo 

  • Cleptomane
  • Gruppo: Banned
  • Messaggi: 297
  • Iscritto il: 03/10/09
  • GTA Preferito:Sconosciuto

Inviato il 23 febbraio 2010 - 22:04

Anche io
0

#208 L'utente è offline   Peppe951 

  • Tirapiedi
  • Gruppo: Utenti
  • Messaggi: 899
  • Iscritto il: 14/07/09
  • GTA Preferito:Sconosciuto

Inviato il 23 febbraio 2010 - 22:37

Quote

Originally posted by _All3Xz_@23/02/10 - 18:23
Mi ricordo una funzione identica o simile nel forum di samp

Forse intendi l'Halt, serve alla stessa cosa, ma funziona diversamente ed ha i parametri in secondi o_O
http://wiki.sa-mp.co...e_Snippets#Halt
0

#209 L'utente è offline   Peppe951 

  • Tirapiedi
  • Gruppo: Utenti
  • Messaggi: 899
  • Iscritto il: 14/07/09
  • GTA Preferito:Sconosciuto

Inviato il 23 febbraio 2010 - 22:58

Quote

Originally posted by _All3Xz_@22/02/10 - 19:38
RandomEx(valoremassimo,valoreminimo)


Questa funzione svolge un random tra due valori, massimo e minimo. Cioè, per esempio, se prendiamo come valore massimo 20 e valore minimo 10 esegue un random tra 20 e 10.

Fuori da tutto
forward RandomEx(valoremassimo,valoreminimo);

public RandomEx(valoremassimo,valoreminimo)
{
new Iniziale; //Valore iniziale
new Finale; //Valore finale
Iniziale = valoremassimo - valoreminimo;
random(Iniziale);
Finale = valoreminimo + Iniziale;
return Finale;
}

Mi sono permesso di ottimizzare questa funzione, se non ti va bene fa niente ù.ù

#define RandomEx(%1, %2) random(%2-%1)+(%1)


Ha lo stesso funzionamento ma il codice è più corto (è solo una riga di #define) ed è leggermente più veloce perché:
- non vengono create delle variabili
- ci sono meno calcoli infatti se ad esempio si fa
RandomEx(2, 5);

diventa quando lo compila
random(5-2)+2;

inoltre quando lo compila esegue automaticamente il calcolo "valoremassimo-valoreminimo" così
random(3)+2

0

#210 L'utente è offline   _All3Xz_ 

  • Criminale
  • Gruppo: Utenti
  • Messaggi: 1512
  • Iscritto il: 05/01/09
  • GTA Preferito:GTA: San Andreas

Inviato il 24 febbraio 2010 - 19:10

Quote

Originally posted by Peppe951+23/02/10 - 22:37

Quote

(Peppe951 @ 23/02/10 - 22:37)
-_All3Xz_
@23/02/10 - 18:23
Mi ricordo una funzione identica o simile nel forum di samp

Forse intendi l'Halt, serve alla stessa cosa, ma funziona diversamente ed ha i parametri in secondi o_O
http://wiki.sa-mp.co...e_Snippets#Halt [/b]

si ecco, grazie per avermi rinfrescato la memoria
My Works
[FS]_All3Xz_ Anti-Cheat 4
[FS]_All3Xz_ Anti-Cheat 7
[FS]_All3Xz_ Anti-Cheat 8
[GM] PVCM Training 0.? (MySQL)
[APP]_All3Xz_ NPC Generator
[GUIDA] Leggere da file usando dini
[GUIDA] Scripting GTA:IV - Callbacks
[GM] PVCM Training 1 (MySQL)
[GM] PVCM A/D
[GUIDA] Leggere da file usandi dini 2
0

#211 L'utente è offline   Peppe951 

  • Tirapiedi
  • Gruppo: Utenti
  • Messaggi: 899
  • Iscritto il: 14/07/09
  • GTA Preferito:Sconosciuto

Inviato il 08 marzo 2010 - 18:32

In cima:
#define SendClientMessage(%1,%2,%3,%4);  format(string, 128, %3, %4); SendClientMessage(%1, %2, string);
#define SendClientMessageToAll(%1,%2,%3);  format(string, 128, %2, %3); SendClientMessageToAll(%1, string);


Quando scrivete
SendClientMessage(playerid, colore, "testo");
oppure
SendClientMessageToAll(colore, "testo");
non cambia niente

però con questo define potete saltare il passaggio in cui scrivete
format(string, eccetera);
per inviare messaggi che cambiano in base alle variabili e quindi potete scrivere ad esempio
new string[128];
SendClientMessage(playerid, 0xFFFFFFFF, "OMG %d %s %d", 1, "asd", 2);
Che diciamo che vi fa risparmiare tempo ed è più semplice

ATTENZIONE: prima di questa funzione bisogna creare una stringa di nome string con
new string[128];
se l'avete già creata in quel punto non ricreatela
0

#212 L'utente è offline   _All3Xz_ 

  • Criminale
  • Gruppo: Utenti
  • Messaggi: 1512
  • Iscritto il: 05/01/09
  • GTA Preferito:GTA: San Andreas

Inviato il 08 marzo 2010 - 19:55

sicuro che vada?
My Works
[FS]_All3Xz_ Anti-Cheat 4
[FS]_All3Xz_ Anti-Cheat 7
[FS]_All3Xz_ Anti-Cheat 8
[GM] PVCM Training 0.? (MySQL)
[APP]_All3Xz_ NPC Generator
[GUIDA] Leggere da file usando dini
[GUIDA] Scripting GTA:IV - Callbacks
[GM] PVCM Training 1 (MySQL)
[GM] PVCM A/D
[GUIDA] Leggere da file usandi dini 2
0

#213 L'utente è offline   Peppe951 

  • Tirapiedi
  • Gruppo: Utenti
  • Messaggi: 899
  • Iscritto il: 14/07/09
  • GTA Preferito:Sconosciuto

Inviato il 08 marzo 2010 - 20:15

A compilare compila e dovrebbe andare al 99% asd ù.ù
0

#214 L'utente è offline   _All3Xz_ 

  • Criminale
  • Gruppo: Utenti
  • Messaggi: 1512
  • Iscritto il: 05/01/09
  • GTA Preferito:GTA: San Andreas

Inviato il 09 marzo 2010 - 21:15

Quote

Originally posted by Peppe951@08/03/10 - 20:15
A compilare compila e dovrebbe andare al 99% asd ù.ù

vabbè compilare != funzionare, dico, l'hai testato in game?
My Works
[FS]_All3Xz_ Anti-Cheat 4
[FS]_All3Xz_ Anti-Cheat 7
[FS]_All3Xz_ Anti-Cheat 8
[GM] PVCM Training 0.? (MySQL)
[APP]_All3Xz_ NPC Generator
[GUIDA] Leggere da file usando dini
[GUIDA] Scripting GTA:IV - Callbacks
[GM] PVCM Training 1 (MySQL)
[GM] PVCM A/D
[GUIDA] Leggere da file usandi dini 2
0

#215 L'utente è offline   Peppe951 

  • Tirapiedi
  • Gruppo: Utenti
  • Messaggi: 899
  • Iscritto il: 14/07/09
  • GTA Preferito:Sconosciuto

Inviato il 09 marzo 2010 - 22:23

non ho detto compila quindi funziona, ma ho detto compila E dovrebbe funzionare, perché non vedo niente di errato nel codice, che è un semplice define asd

Edit: testato e funziona
0

#216 L'utente è offline   .ReVo^ 

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

Inviato il 09 marzo 2010 - 22:36

Quote

Originally posted by Peppe951@09/03/10 - 22:23
non ho detto compila quindi funziona, ma ho detto compila E dovrebbe funzionare, perché non vedo niente di errato nel codice, che è un semplice define asd

Vabbe testarlo in game almeno xD
Immagine Postata
0

#217 L'utente è offline   Peppe951 

  • Tirapiedi
  • Gruppo: Utenti
  • Messaggi: 899
  • Iscritto il: 14/07/09
  • GTA Preferito:Sconosciuto

Inviato il 09 marzo 2010 - 22:37

Quote

Originally posted by .ReVo^+09/03/10 - 22:36

Quote

(.ReVo^ @ 09/03/10 - 22:36)
-Peppe951
@09/03/10 - 22:23
non ho detto compila quindi funziona, ma ho detto compila E dovrebbe funzionare, perché non vedo niente di errato nel codice, che è un semplice define asd

Vabbe testarlo in game almeno xD [/b]

Avevo appena editato il messaggi, leggi: testato e funzionante asd
0

#218 L'utente è offline   Skiaffo 

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

Inviato il 09 marzo 2010 - 23:49

Quote

Originally posted by Peppe951@08/03/10 - 18:32
In cima:
#define SendClientMessage(%1,%2,%3,%4);   format(string, 128, %3, %4); SendClientMessage(%1, %2, string);
#define SendClientMessageToAll(%1,%2,%3);   format(string, 128, %2, %3); SendClientMessageToAll(%1, string);


Quando scrivete
SendClientMessage(playerid, colore, "testo");
oppure
SendClientMessageToAll(colore, "testo");
non cambia niente

però con questo define potete saltare il passaggio in cui scrivete
format(string, eccetera);
per inviare messaggi che cambiano in base alle variabili e quindi potete scrivere ad esempio
new string[128];
SendClientMessage(playerid, 0xFFFFFFFF, "OMG %d %s %d", 1, "asd", 2);
Che diciamo che vi fa risparmiare tempo ed è più semplice

ATTENZIONE: prima di questa funzione bisogna creare una stringa di nome string con
new string[128];
se l'avete già creata in quel punto non ricreatela

Cazzo questo è utile. Grazie :ahsisi:
"Audentes Fortuna iuvat"
0

#219 L'utente è offline   kevin 

  • Vandalo
  • Gruppo: Utenti
  • Messaggi: 102
  • Iscritto il: 23/05/09
  • Provenienza:Calolziocorte (LC)
  • GTA Preferito:GTA: San Andreas

Inviato il 12 marzo 2010 - 18:24

:lode: skiaffo come posso mettere il comando per spawnare auto? come /nomeauto
Firma cancellata perchè fuori norma, leggi il regolamento. Il codice precedente è stato inviato per Messaggio Privato.
0

#220 L'utente è offline   .ReVo^ 

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

Inviato il 22 maggio 2010 - 14:40

- Da secondi a millesecondi
In Fondo allo script:
ToMillesecondi(secondi) // ReVo_
{
	new string[256];
	format(string, 256, "%d000",secondi);
	return strval(string);
}


Esempio:

printf("10 secondi in millesecondi = %d",ToMillesecondi(10));

Immagine Postata
0

  • (18 Pagine)
  • +
  • « Primo
  • 9
  • 10
  • 11
  • 12
  • 13
  • Ultimo »
  • 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