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

Salta al contenuto

  • (18 Pagine)
  • +
  • « Primo
  • 15
  • 16
  • 17
  • 18
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[ARG] Funzioni e Comandi Utili

#321 L'utente è offline   Skiaffo 

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

Inviato il 03 gennaio 2011 - 18:18

SendClientRandColMsg(playerid, string[]) & SendClientRandColMsgToAll(string[])

Manda un messaggio colorato casualmente, quindi ogni volta di colore diverso.

stock SendClientRandColMsg(playerid, string[]) {
	new str[256], randstr[6], random_set[] = "ABCDEF0123456789";
	for (new s=0; s<6; s++) randstr[s] = random_set[random(16)];
	format(str, 256, "{%s}%s", randstr, string);
	SendClientMessage(playerid, 0xFFFFFFFF, str);
}


stock SendClientRandColMsgToAll(string[]) {
	new str[256], randstr[6], random_set[] = "ABCDEF0123456789";
	for (new s=0; s<6; s++) randstr[s] = random_set[random(16)];
	format(str, 256, "{%s}%s", randstr, string);
	SendClientMessageToAll(0xFFFFFFFF, str);
}


edit:

Un tizio sul forum di SA-MP me lo ha rifatto molto più corto:

#define SendClientRandColMsg(%0,%1) \
        SendClientMessage((%0), (random(0xFFFFFF) << 8) | 0xFF), (%1))

#define SendClientRandColMsgToAll(%0) \
        SendClientMessageToAll((random(0xFFFFFF) << 8) | 0xFF), (%0))

"Audentes Fortuna iuvat"
0

#322 L'utente è offline   _All3Xz_ 

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

Inviato il 07 gennaio 2011 - 19:39

l'ho letto l'altro giorno :asd: il secondo codice non lo capisco però (random(0xFFFFFF) << 8) | 0xFF), (%1))
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

#323 L'utente è offline   Peppe951 

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

Inviato il 07 gennaio 2011 - 20:28

(random(0xFFFFFF) << 8) | 0xFF)
questo sarebbe il colore in modo random, con il metodo di skiaffo si poteva fare semplicemente random(0xFFFFFF) formattato nella stringa come hex (FFFFFF corrisponde al bianco, che contiene i valori massimi di R G B, ovvero 255 255 255, in hex: FF FF FF) ma dato che avendo bisogno di un solo colore sarebbe stato inutile utilizzare il nuovo color embedding, è meglio usare direttamente il parametro color del SendClientMessage e siccome in questo caso il colore deve contenere anche un altro parametro (che se non sbaglio corrisponde alla trasparenza, anche se non nei messaggi) che deve essere messo a parte per non influire sul random ha prima preparato il valore hex facendo uno shift di 8 a sinistra, portando quindi ad un valore hex di questo tipo: 0xRRGGBB00 (esempio: 0xFF004200) che va a "sommato" tramite l'operatore bitwise | a FF diventando quindi 0xRRGGBBFF (esempio: 0xFF0042FF).

In poche parole:
random(0xFFFFFF) -> genera hex casuale con valore massimo quello del bianco, poiché contiene i valori del rosso, del verde e del blu massimi.
Esempio: FF7121

<< 8 -> prepara l'hex per aggiungerci un quarto valore a destra facendo uno shift di 8 (in bit 1000) diventando nel caso di prima così:
FF712100

| 0xFF -> "somma" (termine non propriamente corretto) il numero ottenuto prima con FF (quarto valore dei colori hex su samp):
FF6121FF



(%1) sarebbe la stringa come definita nel #define .-.
0

#324 L'utente è offline   KevinGenoves3 

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

Inviato il 07 gennaio 2011 - 22:46

In OnPlayerText
//DEFINISCE IL COLORE DEL MESSAGGIO A SECONDA DEL TEAM
	if(GetPlayerTeam(playerid) == ALPHA) format(stringa, 128, "{c8c8c8}[GLOBALE](ID: %i){FF0000}%s:{FFFFFF} %s", playerid,name, text);
	else if(GetPlayerTeam(playerid) == BRAVO) format(stringa, 128, "{c8c8c8}[GLOBALE](ID: %i){0000FF}%s:{FFFFFF} %s", playerid,name, text);
	//TEAMCHAT
if(strfind(text, ";") == 0)
	{
		for (new i = 0; i < MAX_PLAYERS; i++)
		{
			if(GetPlayerTeam(i) == GetPlayerTeam(playerid)) {strdel(text, 0, 1); strins(text, " ", 0, strlen(text));format(stringa, 128,"{c8c8c8}[TEAM](ID: %i){00FF00}%s:{FFFFFF} %s", playerid,name, text); SendClientMessage(i, 0xFFFFFFFF, stringa);}
		}
	} else {SendClientMessageToAll(0xFFFFFFFF, stringa);}


Semplice TeamChat.
Praticamente si utilizza anteponendo ";" prima del messaggio (Non si vedrà alla fine). Se non trova il ";" all'inizio della frase manda un messaggio in chat globale.

Ricordate il return 0 e di sostituire i team!

Messaggio modificato da KevinGenoves3 il 07 gennaio 2011 - 23:35

Immagine Postata


Immagine PostataRegisterMe v 2.0 Immagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine Postata




0

#325 L'utente è offline   .ReVo^ 

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

Inviato il 07 gennaio 2011 - 23:45

@KevinGenoves3:
	if(text[0] == ';' && text[1] != '\0')
	{
	    new p_Name[24], g_String[128];
	    GetPlayerName(playerid,p_Name,24);
	    format(g_String,128,"[TEAM CHAT] %s: %s", p_Name, text[1]);
	    for(new i = 0,j = GetMaxPlayers(); i<j; i++)
	    {
	        if(IsPlayerConnected(i) && GetPlayerTeam(i) == GetPlayerTeam(playerid))
	        {
	            SendClientMessage(i,0xFFFFFFFF,g_String);
			}
		}
		return 0;
	}

Messaggio modificato da .ReVo^ il 07 gennaio 2011 - 23:47

Immagine Postata
0

#326 L'utente è offline   KevinGenoves3 

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

Inviato il 08 gennaio 2011 - 00:46

Visualizza Messaggi.ReVo^, il 07 gennaio 2011 - 23:45 ha detto:

@KevinGenoves3:
	if(text[0] == ';' && text[1] != '\0')
	{
 new p_Name[24], g_String[128];
 GetPlayerName(playerid,p_Name,24);
 format(g_String,128,"[TEAM CHAT] %s: %s", p_Name, text[1]);
 for(new i = 0,j = GetMaxPlayers(); i<j; i++)
 {
 if(IsPlayerConnected(i) && GetPlayerTeam(i) == GetPlayerTeam(playerid))
 {
 SendClientMessage(i,0xFFFFFFFF,g_String);
			}
		}
		return 0;
	}


Uh bello. Questa versione non la sapevo. Grazie :lol:
Immagine Postata


Immagine PostataRegisterMe v 2.0 Immagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine Postata




0

#327 L'utente è offline   _All3Xz_ 

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

Inviato il 08 gennaio 2011 - 13:42

Si beppe il random l'avevo capito, non avevo capito il resto cioè <<8 e | 0x... grazie
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

#328 L'utente è offline   KevinGenoves3 

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

Inviato il 14 gennaio 2011 - 16:42

Script per generare una scritta random:

forward randstr();
public randstr()	
{

		new rand;
		new lettere[52][0] =
		{
			{"a"},
			{"b"},
			{"c"},
			{"d"},
			{"e"},
			{"f"},
			{"g"},
			{"h"},
			{"i"},
			{"j"},
			{"k"},
			{"l"},
			{"m"},
			{"n"},
			{"o"},
			{"p"},
			{"q"},
			{"r"},
			{"s"},
			{"t"},
			{"u"},
			{"v"},
			{"w"},
			{"x"},
			{"y"},
			{"z"},
 	{"A"},
 	{"B"},
 	{"C"},
 	{"D"},
 	{"E"},
 	{"F"},
 	{"G"},
 	{"H"},
 	{"I"},
 	{"J"},
 	{"K"},
 	{"L"},
 	{"M"},
 	{"N"},
 	{"O"},
 	{"P"},
 	{"Q"},
 	{"R"},
 	{"S"},
 	{"T"},
 	{"U"},
 	{"V"},
 	{"W"},
 	{"X"},
 	{"Y"},
 	{"Z"}
		};
		new let = random(sizeof(lettere));
		rand = random(9);
		new stringa[24];
		new p1[24];
		new p2[24];
		new p3[24];
		new p4[24];
		format(p1, 24, "%s%d",lettere[let][0], rand);
		let = random(sizeof(lettere));
		rand = random(9);
		format(p2, 24, "%s%d",lettere[let][0], rand);
		let = random(sizeof(lettere));
		rand = random(9);
		format(p3, 24, "%s%d",lettere[let][0], rand);
		let = random(sizeof(lettere));
		rand = random(9);
		format(p4, 24, "%s%d",lettere[let][0], rand);
		format(stringa, 24, "%s%s%s%s",p1,p2,p3,p4);
		print(stringa);
		return strval(stringa);
}

Messaggio modificato da KevinGenoves3 il 14 gennaio 2011 - 17:02

Immagine Postata


Immagine PostataRegisterMe v 2.0 Immagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine Postata




0

#329 L'utente è offline   Rapgangsta 

  • Tirapiedi
  • Gruppo: Banned
  • Messaggi: 1044
  • Iscritto il: 21/10/09
  • GTA Preferito:Sconosciuto

Inviato il 14 gennaio 2011 - 18:36

Al posto di questo
                new let = random(sizeof(lettere));
                rand = random(9);
                new stringa[24];
                new p1[24];
                new p2[24];
                new p3[24];
                new p4[24];
                format(p1, 24, "%s%d",lettere[let][0], rand);
                let = random(sizeof(lettere));
                rand = random(9);
                format(p2, 24, "%s%d",lettere[let][0], rand);
                let = random(sizeof(lettere));
                rand = random(9);
                format(p3, 24, "%s%d",lettere[let][0], rand);
                let = random(sizeof(lettere));
                rand = random(9);
                format(p4, 24, "%s%d",lettere[let][0], rand);
                format(stringa, 24, "%s%s%s%s",p1,p2,p3,p4);

Puoi mettere semplicemente questo
format(stringa, 24, "%s%d%s%s%d%s%s",lettere[random(sizeof(lettere)][0],random(9),lettere[random(sizeof(lettere)][0],lettere[random(sizeof(lettere)][0],random(9),lettere[random(sizeof(lettere)][0],lettere[random(sizeof(lettere)][0]);

0

#330 L'utente è offline   KevinGenoves3 

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

Inviato il 14 gennaio 2011 - 21:20

Visualizza MessaggiRapgangsta, il 14 gennaio 2011 - 18:36 ha detto:

Al posto di questo
 new let = random(sizeof(lettere));
 rand = random(9);
 new stringa[24];
 new p1[24];
 new p2[24];
 new p3[24];
 new p4[24];
 format(p1, 24, "%s%d",lettere[let][0], rand);
 let = random(sizeof(lettere));
 rand = random(9);
 format(p2, 24, "%s%d",lettere[let][0], rand);
 let = random(sizeof(lettere));
 rand = random(9);
 format(p3, 24, "%s%d",lettere[let][0], rand);
 let = random(sizeof(lettere));
 rand = random(9);
 format(p4, 24, "%s%d",lettere[let][0], rand);
 format(stringa, 24, "%s%s%s%s",p1,p2,p3,p4);

Puoi mettere semplicemente questo
format(stringa, 24, "%s%d%s%s%d%s%s",lettere[random(sizeof(lettere)][0],random(9),lettere[random(sizeof(lettere)][0],lettere[random(sizeof(lettere)][0],random(9),lettere[random(sizeof(lettere)][0],lettere[random(sizeof(lettere)][0]);


Avevo provato ma non sapevo come fare un random da lì, quindi veniva tipo m2m2m2, ergo ho dovuto trovare il modo ri-facendo i random. Farò tesoro di questo commento :ahsisi:
Immagine Postata


Immagine PostataRegisterMe v 2.0 Immagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine Postata




0

#331 L'utente è offline   .ReVo^ 

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

Inviato il 14 gennaio 2011 - 22:15

	new i,string[128];
	new arry[50] = {'a','b','c','d','e','f','g','h','i','l','m','n','o','p','q','r','s','t','u','v','z','A','B','C','D','E','F','G','H','I','L','M','N','O','P','Q','R','S','T','U','V','Z'};
	while(i<50/*cambia 50 con il numero di caratteri da inserire*/) {
	    i++;
	    format(string,128,"%s%c",string,arry[random(sizeof(arry))]);
	}
	print(string);

Ma qual è l'utilità di questa cosa?

Messaggio modificato da .ReVo^ il 14 gennaio 2011 - 22:19

Immagine Postata
0

#332 L'utente è offline   Peppinux aka Peppe_Stasu 

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

Inviato il 14 gennaio 2011 - 22:29

Penso che possa essere utile magari per un Reaction Test... Non so...
0

#333 L'utente è offline   KevinGenoves3 

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

Inviato il 14 gennaio 2011 - 23:25

Visualizza Messaggi.ReVo^, il 14 gennaio 2011 - 22:15 ha detto:

	new i,string[128];
	new arry[50] = {'a','b','c','d','e','f','g','h','i','l','m','n','o','p','q','r','s','t','u','v','z','A','B','C','D','E','F','G','H','I','L','M','N','O','P','Q','R','S','T','U','V','Z'};
	while(i<50/*cambia 50 con il numero di caratteri da inserire*/) {
 i++;
 format(string,128,"%s%c",string,arry[random(sizeof(arry))]);
	}
	print(string);

Ma qual è l'utilità di questa cosa?

Come dice peppe, o reaction test o boh... Una sorta di cookie su samp? :asd:
Immagine Postata


Immagine PostataRegisterMe v 2.0 Immagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine Postata




0

#334 L'utente è offline   .ReVo^ 

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

Inviato il 16 gennaio 2011 - 12:35

Visualizza MessaggiKevinGenoves3, il 14 gennaio 2011 - 23:25 ha detto:

Visualizza Messaggi.ReVo^, il 14 gennaio 2011 - 22:15 ha detto:

	new i,string[128];
	new arry[50] = {'a','b','c','d','e','f','g','h','i','l','m','n','o','p','q','r','s','t','u','v','z','A','B','C','D','E','F','G','H','I','L','M','N','O','P','Q','R','S','T','U','V','Z'};
	while(i<50/*cambia 50 con il numero di caratteri da inserire*/) {
 i++;
 format(string,128,"%s%c",string,arry[random(sizeof(arry))]);
	}
	print(string);

Ma qual è l'utilità di questa cosa?

Come dice peppe, o reaction test o boh... Una sorta di cookie su samp? :asd:


Che centrano i cookie con questa cosa ._.
Immagine Postata
0

#335 L'utente è offline   KevinGenoves3 

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

Inviato il 16 gennaio 2011 - 16:00

Visualizza Messaggi.ReVo^, il 16 gennaio 2011 - 12:35 ha detto:

Visualizza MessaggiKevinGenoves3, il 14 gennaio 2011 - 23:25 ha detto:

Visualizza Messaggi.ReVo^, il 14 gennaio 2011 - 22:15 ha detto:

	new i,string[128];
	new arry[50] = {'a','b','c','d','e','f','g','h','i','l','m','n','o','p','q','r','s','t','u','v','z','A','B','C','D','E','F','G','H','I','L','M','N','O','P','Q','R','S','T','U','V','Z'};
	while(i<50/*cambia 50 con il numero di caratteri da inserire*/) {
 i++;
 format(string,128,"%s%c",string,arry[random(sizeof(arry))]);
	}
	print(string);

Ma qual è l'utilità di questa cosa?

Come dice peppe, o reaction test o boh... Una sorta di cookie su samp? :asd:


Che centrano i cookie con questa cosa ._.

Bisogna assegnarvi un valore univoco :huh:
Immagine Postata


Immagine PostataRegisterMe v 2.0 Immagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine Postata




0

#336 L'utente è offline   KevinGenoves3 

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

Inviato il 21 gennaio 2011 - 17:40

FUNZIONE CHE AGGIUNGE TUTTE LE SKIN AL SERVER:

SetClasses()
{
 	for (new i = 0; i < 300; i++)
	{
		if(i == 3|| i == 4|| i == 5|| i == 6|| i == 8|| i == 42|| i == 65|| i == 74|| i == 86|| i == 119|| i == 149|| i == 208|| i == 268|| i == 273|| i == 289)
		{
				printf("Unsuccessfully Loaded skin no. %d (Bugged)", i);
		} else {
		 	 	printf("Successfully Loaded skin no. %d)", i);
				AddPlayerClass(i, 0,0,0,0,0,0,0,0,0,0);
		}
	}
}


Al posto degli 0 potete mettere le variabili di un randomspawn, era un esempio il mio

Messaggio modificato da KevinGenoves3 il 22 gennaio 2011 - 21:26

Immagine Postata


Immagine PostataRegisterMe v 2.0 Immagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine Postata




0

#337 L'utente è offline   _All3Xz_ 

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

Inviato il 21 gennaio 2011 - 19:07

ehm su samp esistono delle skin che non vanno, e se le selezioni ti crasha il gioco. quindi così ti crasherebbe se vuoi prendere una skin maggiore di (non ricordo)
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

#338 L'utente è offline   KevinGenoves3 

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

Inviato il 21 gennaio 2011 - 19:24

Visualizza Messaggi_All3Xz_, il 21 gennaio 2011 - 19:07 ha detto:

ehm su samp esistono delle skin che non vanno, e se le selezioni ti crasha il gioco. quindi così ti crasherebbe se vuoi prendere una skin maggiore di (non ricordo)


Ho messo che se è tra 3 e 6 non te la adda.
Poi controllo ed eventualmente aggiungo quelle mancanti.

ps: Non crasha, ma ti da' la skin precedentemente selezionata se non erro.
Immagine Postata


Immagine PostataRegisterMe v 2.0 Immagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine Postata




0

#339 L'utente è offline   _All3Xz_ 

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

Inviato il 21 gennaio 2011 - 20:02

skin buggate: 3, 4, 5, 6, 8, 42, 65, 74, 86, 119, 149, 208, 268, 273, 289
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

#340 L'utente è offline   KevinGenoves3 

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

Inviato il 22 gennaio 2011 - 00:43

Visualizza Messaggi_All3Xz_, il 21 gennaio 2011 - 20:02 ha detto:

skin buggate: 3, 4, 5, 6, 8, 42, 65, 74, 86, 119, 149, 208, 268, 273, 289


Grazie, modificato.
Immagine Postata


Immagine PostataRegisterMe v 2.0 Immagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine PostataImmagine Postata




0

  • (18 Pagine)
  • +
  • « Primo
  • 15
  • 16
  • 17
  • 18
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

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