Oggi è 29/03/2024, 0: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 2 di 2 [ 40 messaggi ] 

Vai alla pagina :: « Precedente  1, 2
  Apri un nuovo argomento Rispondi all’argomento

  Stampa pagina

Autore Messaggio
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 25/02/2011, 21: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
Peppinux scusa la domanda, ma cosa dovrebbe fare? Cioè che ha di speciale?

_________________
Immagine


Top
 E-mail  
 

 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 25/02/2011, 21:23 
Banned

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

Karma
-10


Non connesso
Usando la prima funzione verrà mandato al playerid il messaggio:
[Verde o Rosso dipende dal bool del color]INFO: [Grigio]Qua il testo.
invece usando la seconda:
[Rosso]ERRORE: [Grigio]Qua il testo.

Queste due funzioni servono semplicemente per evitare di perder tempo a fare per esempio SendClientMessage(playerid, -1, "{Verde o Rosso}INFO: {Grigio}Testo");

Spero di essermi spiegato :asd:.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 25/02/2011, 21:52 
Avatar utente
Utente

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

Karma
0


Non connesso
Si adesso ho capito. Comunque sarebbe stato bello se spuntasse un Dialog come una finestra d'errore. :asd:

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 25/02/2011, 22:56 
Banned

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

Karma
-10


Non connesso
Ma anche no :asd:. Questo è un sendInfoMessage/sendErrorMessage.. se vorrò farò un showInfoMessage/showErrorMessage con dialog come dici tu :asd:.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 26/02/2011, 0:24 
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 lol

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 10/06/2011, 19:01 
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
Guardando uno script di Phanto90 su un altro forum mi è venuta un'idea ed ho deciso di creare un RandomStr, cioè una funzione che crea una stringa formata da lettere e numeri a caso.

Codice:
stock RandomStr(string[], size)
{
    new
         counter,
         Char;
    while(counter <= size)
    {
        Char = random(0x7B);
        if(0x30 <= Char <= 0x39 || 0x41 <= Char <= 0x5A || 0x61 <= Char <= 0x7A) string[counter] = Char, counter++;
    }
    return string;
}


Molto semplice da usare:

Codice:
new str[128]; //crea la stringa che dovrà contenere le lettere a caso
RandomStr(str, 10); //10 sarebbero i caratteri a caso che conterrà la stringa
printf("%s", str); //Verranno printati 10 caratteri a caso tra lettere (maiuscole e minuscole) e numeri


2° ToUppercase

Il ToUppercase trasformerà una stringa da minuscola a maiuscola

Codice:
stock ToUppercase(string[])
{
   new str[256];
   for(new i = 0; i < strlen(string); i++)
   {
       if(string[i] == ' ') str[i] = ' ';
       else if(0x41 <= string[i] <= 0x5A) str[i] = string[i];
       else if(0x61 <= string[i] <= 0x7A) str[i] = string[i]-32;
   }
   return str;
}


Uso:

Codice:
new str[128];
str = ToUppercase("We Ciao");
printf("%s", str);


Printerà: "WE CIAO"

3° ToTiny

Il ToTiny ha la funzione inversa del ToUppercase

Codice:
stock ToTiny(string[])
{
   new str[256];
   for(new i = 0; i < strlen(string); i++)
   {
       if(string[i] == ' ') str[i] = ' ';
       else if(0x61 <= string[i] <= 0x7A) str[i] = string[i];
       else if(0x41 <= string[i] <= 0x5A) str[i] = string[i]+32;
   }
   return str;
}

_________________
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: [ARG] Funzioni utili
MessaggioInviato: 10/06/2011, 21:35 
Avatar utente
Utente

Iscritto il: 03/02/2011
Messaggi: 95
Favourite GTA: San Andreas

Karma
0


Non connesso
Migliorato generatore stringhe random:
Codice:
stock StringaRandom(stringa[], size = sizeof(stringa))
{
    for(new i; i < size; ++i)
    {
        switch(random(3))
        {
            case 0: stringa[i] = random(26) + 'a';
            case 1: stringa[i] = random(26) + 'A';
            case 2: stringa[i] = random(10) + '0';
        }
    }
    return 1;
}


Oppure una versione alternativa, anche se penso sia più lenta:
Codice:
stock
    StringaRandom(stringa[], size = sizeof(stringa))
{
    static const
        caratteri[] = { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" }
    ;
    while((size--))
        stringa[size] = caratteri[random(sizeof(caratteri)-1)];
}

Potrei anche eseguire dei test ma mi pare inutile :D
Forse potrebbe essere divertente vedere qual'è quella più veloce

_________________
Immagine
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 10/06/2011, 22:16 
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
Parlavo proprio oggi con angelo sul primo e sul secondo metodo. Personalmente ho sempre usato il secondo :asd:

_________________
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 10/06/2011, 22: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
io preferisco usare le hex U.U

_________________
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: [ARG] Funzioni utili
MessaggioInviato: 10/06/2011, 22:23 
Avatar utente
Utente

Iscritto il: 03/02/2011
Messaggi: 95
Favourite GTA: San Andreas

Karma
0


Non connesso
Test random stringhe effettuato in un ciclo di 100000 ripetizioni:

Codice:
Angelo:
Test1: 3766 Test2: 3777 Test3: 3764
Phanto(n°1):
Test1: 1153 Test2: 1248 Test3: 1139
Phanto(n° 2):
Test1: 892 Test2: 1008 Test3: 916


Sorprendentemente è il 2° a essere stato più veloce
Codice:
//Codice test
#define PROVE 100000
#include a_samp
new stringb[20];
main()
{
    new count = GetTickCount();
    for(new i=0; i<PROVE; i++)
   StringaRandom(stringb, sizeof(stringb)); //Sostituire con funzione da utilizzare
   printf("Numero prove: 1000000");
    printf("Tempo Random String: %d millisec", GetTickCount() - count);
}

stock StringaRandom(stringa[], size = sizeof(stringa)) //Phanto1
{
    for(new i; i < size; ++i)
    {
        switch(random(3))
        {
            case 0: stringa[i] = random(26) + 'a';
            case 1: stringa[i] = random(26) + 'A';
            case 2: stringa[i] = random(10) + '0';
        }
    }
    return 1;
}

stock StringaRandom2(stringa[], size = sizeof(stringa)) //Phanto2
{
    static const
        caratteri[] = { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" }
    ;
    while((size--))
        stringa[size] = caratteri[random(sizeof(caratteri)-1)];
   return 1;
}

stock RandomStr(string[], size) //Angelo
{
    new
         counter,
         Char;
    while(counter <= size)
    {
        Char = random(0x7B);
        if(0x30 <= Char <= 0x39 || 0x41 <= Char <= 0x5A || 0x61 <= Char <= 0x7A) string[counter] = Char, counter++;
    }
    return 1;
}


_________________
Immagine
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 10/06/2011, 22:39 
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
Confermo però a me da diversi risultati:

Mio script: 2500 ms
1° Script di Phanto: 730 ms
2° // : 650 ms

Siamo sempre li all'incirca xD

_________________
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: [ARG] Funzioni utili
MessaggioInviato: 10/06/2011, 23:12 
Avatar utente
Utente

Iscritto il: 03/02/2011
Messaggi: 95
Favourite GTA: San Andreas

Karma
0


Non connesso
E' per via del processore, tieni conto che sono su un netbook che ha Nemmeno 2 Ghz single core, i risultati quindi variano da pc a pc ma il rapporto tra le funzioni alla fine è all'incirca costante

Comunque questa è la migliore, postata proprio da Y_Less (per quanto riguarda il convertitore maiuscole - minuscole):
Nota: Le prove sono state utilizzate con una stringa random.
Codice:
#define PROVE 100000
#include a_samp
new stringb[]="WeCaIJjOJOFcnIJoij";
main()
{
    new count = GetTickCount();
    for(new i=0; i<PROVE; i++)
   ToTiny(stringb); //Sostituire con funzione da utilizzare
   printf("Numero prove: %d",PROVE);
    printf("Tempo Random String: %d millisec", GetTickCount() - count);
}

stock Y_Less(text[]) //Y_Less
{
new i;
while (text[++i])
    {
         if ('A' <= text[i] <= 'Z') text[i] |= 0x20;
    }
return 1;
}

stock ToTiny(string[]) //Funzione Angelo
{
   new str[256];
   for(new i = 0; i < strlen(string); i++)
   {
       if(string[i] == ' ') str[i] = ' ';
       else if(0x61 <= string[i] <= 0x7A) str[i] = string[i];
       else if(0x41 <= string[i] <= 0x5A) str[i] = string[i]+32;
   }
   return 1;
}


Codice:
Y_Less:
Test1: 775 Test2: 743 Test3: 761
Angelo:
Test1: 1997 Test2: 1998 Test3: 2084

_________________
Immagine
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 02/07/2011, 14:11 
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
Codice:
stock bool:IsAPrimeNumber(numero)
{
   switch(numero)
   {
       case -1..1: return false;
       case 2, 3: return true;
   }
   if(!(numero % 2) || !(numero % 3) || !(numero % 5)) return false;
   for(new i = 5; i <= floatround(floatsqroot(numero), floatround_floor); ++i)
   {
       if(!(numero % i) && (numero != i)) return false;
   }
   return true;
}


Semplice funzione creata da me che controlla se un numero è primo, uso:

Codice:
public OnFilterScriptInit()
{
   new we;
   for(new i = 0; i < 10; i++)
   {
       we = random(5000);
       if(!IsAPrimeNumber(we)) printf("Numero Non Primo: %d", we);
       else printf("Numero Primo: %d", we);
   }
   return 1;
}

_________________
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: [ARG] Funzioni utili
MessaggioInviato: 02/07/2011, 14:29 
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
Cosa si potrebbe fare con i numeri primi su sa-mp? :rotfl:

_________________
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 02/07/2011, 14:46 
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
Non saprei :\ io l'ho creata, tocca a voi cercare le idee per usarla asd

_________________
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: [ARG] Funzioni utili
MessaggioInviato: 04/07/2011, 19:44 
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
Codice:
stock RandomBetweenNumbers(...)
{
   if(!numargs()) return -1;
   if(numargs() == 1) return getarg(0);
   new
      Num = numargs(),
      RandomNum = random(Num)
   ;
   return getarg(RandomNum);
}


Semplice funzione crea un random tra diversi numeri, esempio:

Codice:
new Random = RandomBetweenNumbers(1, 45, 66, 12, -123, 62);
printf("%d", Random);


Printerà uno dei seguenti numeri a caso: 1, 45, 66, 12, -123, 62

Codice:
stock RandomBetweenCharacters(...)
{
   if(!numargs()) return ' ';
   if(numargs() == 1)
   {
      switch(getarg(0))
      {
         case 33..126, 128..254: return getarg(0);
         default: return ' ';
      }
   }
   new
       Num = numargs(),
       RandomArgs = random(Num)
   ;
   return getarg(RandomArgs);
}


Questa crea un random tra i simboli inseriti nei parametri della funzione, esempio:

Codice:
new Char = RandomBetweenCharacters('a', ')', '!', '0');
printf("%c", Char);


Printerà uno dei seguenti caratteri a caso: a, ), !, 0,

PS. Potete usare anche gli hex e i decimali, non soltanto i caratteri tra apici

_________________
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: [ARG] Funzioni utili
MessaggioInviato: 05/07/2011, 14:21 
Avatar utente
Utente

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

Karma
0


Non connesso
Codice:
stock GetPlayerIDFromName(const nome[])
{
   new pid;
   for(new i = 0; i < MAX_PLAYERS; i++)
   {
       if(!IsNumeric(nome))
       {
          if(IsPlayerConnected(i))
          {
              new pName[MAX_PLAYER_NAME];
              GetPlayerName(i, pName, sizeof pName);
              if(!strcmp(pName, nome, true)) pid = i;
              else pid = -1;
         }
      }
      else pid = strval(nome);
   }
   return pid;
}


Questa funzione returna l'ID del nome che verrà digitato dentro la funzione. Se il nome risulta numerico, esso verrà returnato senza gettare nessun nome.

Codice:
stock SendRangedMessage(playerid, colore, const string[], Float: Raggio)
{
   new Float: pPos[3];
   GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
   for(new i = 0; i < MAX_PLAYERS; i++)
   {
      if(IsPlayerConnected(i)) && IsPlayerInRangeOfPoint(i, Raggio, pPos[0], pPos[1], pPos[2])) SendClientMessage(i, colore, string);
   }
   return 1;
}


Questa funzione (utile per le GM RP) serve ad inviare un "Range Message", ovvero basta scegliere il Raggio d'azione di tale messaggio ed esso verrà inviato ai Player vicini.

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 05/07/2011, 17:53 
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
Avevo già postato tempo fa il GetPlayerIDFromName, ma questo mi sembra decisamente migliore asd carino anche il SendRangedMessage :D

_________________
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: [ARG] Funzioni utili
MessaggioInviato: 06/07/2011, 12:39 
Utente

Iscritto il: 18/03/2011
Messaggi: 8
Favourite GTA: San Andreas

Karma
0


Non connesso
Codice:
stock randoMix(...) return getarg(random(numargs()));


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 06/07/2011, 13:10 
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
Rapgangsta ha scritto:
Codice:
stock randoMix(...) return getarg(random(numargs()));


Si pensavo anche io di farla così ma poi ho detto che se non vengono messi parametri o se ne viene messo solo uno viene attivo un random inutile che potrebbe usare più memoria di un if, almeno credo sia così, infatti se vedi ho messo

if(!numargs()) return -1;
if(numargs() == 1) return getarg(0);

proprio per non fare attivare il random

_________________
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  
 
Visualizza ultimi messaggi:  Ordina per  
 Pagina 2 di 2 [ 40 messaggi ] 

Vai alla pagina :: « Precedente  1, 2
  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 23 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