Oggi è 28/03/2024, 11:06

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 2 [ 40 messaggi ] 

Vai alla pagina :: 1, 2  Prossima »
  Apri un nuovo argomento Rispondi all’argomento

  Stampa pagina

Autore Messaggio
 Oggetto del messaggio: [ARG] Funzioni utili
MessaggioInviato: 04/11/2010, 20: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
Raga qua potrete postare delle funzioni create da voi o da altri (Mettendo i crediti) inizio con alcune mie funzioni

IsPlayerInWater By me and Peppe951

Il IsPlayerInWater serve per gettare se un player è in acqua

Codice:
stock IsPlayerInWater(playerid)
{   
    new index = GetPlayerAnimationIndex(playerid);   
    return ((index >=  1538 && index <= 1541) || index == 1544);
}


uso

Codice:
if(IsPlayerInWater(playerid))
{
    // Funzione
}


GetPlayerIPFromID

Il GetPlayerIPFromID serve per gettare l'id di un player avendo il suo IP

Codice:
stock GetPlayerIPFromID(ip[])
{
    new IP[16];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            GetPlayerIP(i, IP, sizeof(IP));
            if(strcmp(ip, IP, true)==0) return i;
        }
    }
    return INVALID_PLAYER_ID;
}


Uso

Codice:
public OnRconLoginAttempt(ip[], password[], success)
{
    new playerid = GetPlayerIPFromID(ip);
    if(!success)
    {
        new string[128], nome[24];
        GetPlayerName(playerid, nome, 24);
        format(string, 128, "Il Player %s ha sbagliato il Rcon Login", nome);
        SendClientMessageToAll(COLOR_RED, string);
    }
    return 1;
}


BanTag(tag[])

Il BanTag serve per bannare tutti coloro che hanno quella Tag

Codice:
BanTag(tag[])
{       
    new nome[24], str[10];       
    format(str, sizeof(str), "[%s]" , tag);       
    for(new i = 0; i < MAX_PLAYERS; i++)       
    {               
        if(IsPlayerConnected(i))               
        {                       
            GetPlayerName(i, nome, 24);                       
            if(strfind(nome, str, true)==0)                       
            {                               
                Ban(i);                       
            }               
        }       
    }       
    return 1;
}


Uso

Codice:
BanTag("TLK");


Bannerà tutti coloro che avranno la Tag TLK

E infine posto il mio GetVehicleSpeed(vehicleid, type)

Il GetVehicleSpeed server per gettare la velocità di un veicolo in Kmh o Mph

Codice:
GetVehicleSpeed(vehicleid, type)
{       
    new Float: Vel[3];       
    GetVehicleVelocity(vehicleid, Vel[0], Vel[1], Vel[2]);       
    if(type == 1 || type > 2 || type < 1) type = floatround(floatsqroot(Vel[0]*Vel[0] + Vel[1]*Vel[1] + Vel[2]*Vel[2])*200, floatround_floor);       
    else if(type == 2) type = floatround(floatsqroot(Vel[0]*Vel[0] + Vel[1]*Vel[1] + Vel[2]*Vel[2])*200 / 1.609344, floatround_floor);       
    return type;
}


Uso

Codice:
new Kmh = GetVehicleSpeed(vehicleid, 1);


Con 1 gettate la velocità in Kmh mentre con 2 quella in Mph, se invece mettete un numero diverso la velocità sarà sempre in Kmh

Io finisco con queste 4 funzioni, ora postate voi le vostre :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


Ultima modifica di Angelo il 08/11/2010, 18:46, modificato 1 volta in totale.

Top
 E-mail  
 

 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 04/11/2010, 20:54 
Avatar utente
Moderatore

Iscritto il: 28/10/2010
Messaggi: 919
Località: Veduggio con Colzano (Milano-Monza)
Favourite GTA: San Andreas
PlayStation Network: Nessuno
Xbox Live: Nessuno
Xfire: barle97

Karma
1


Non connesso
bravo angelo, anche io ho fatto appena quando è uscita la 0.3b PlayerInAcqua(playerid), così tramite GetPlayerAnimationIndex che è stato aggiunto in 0.3b puoi vedere se nel player è applicata un animazione, in questo caso quella del nuoto =D.

_________________
disasm 0xFFFF00 1: LE HANTENNE DEL RUTER SI MVONO DA SL!11!1!!1
[EPD]Giovanni94m: AHSUAHSAUSHAUSAHSAU
disasm 0xFFFF00 1: bella questa asd

[EPD]Giovanni94m: io non riesco a trovare un gioco che ci giocavo su ps1
[EPD]Giovanni94m: non ricordo il nome
[EPD]Giovanni94m: era un omino rosa
[EPD]Giovanni94m: ...
[BCD]barle_the_king: forse cercavi omino bianco [cit. google]
[BCD]barle_the_king: auhsahusuha
[EPD]Giovanni94m: no ahsau
[BCD]barle_the_king: firma duhahudshue

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 04/11/2010, 23:55 
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
eh si è utilissimo, pensa che l'ho voluto creare x sistemare il fatto che quando cadi in acqua c'è sempre il anti fall off bike, all'inizio era semplicemente uno script che diceva che se la coordinata Z era minore 0 allora era in acqua, però alcuni interior sono sotto terra e così Peppe951 mi spiegò il funzionamento di GetPlayerAnimationIndex 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: 05/11/2010, 21:05 
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
Posto la funzione "GetPlayerID(nome[])" la quale prende l'id del player attraverso il suo nome

Codice:
GetPlayerID(nome[])
{
    new name[24];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
         if(IsPlayerConnected(i))
         {
             GetPlayerName(i, name, 24);
             if(strcmp(nome, name, true)==0) return i;
         }
    }
    return INVALID_PLAYER_ID;
}


Uso:

Codice:
new playerid = GetPlayerID("Angelo");

_________________
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 07/11/2010, 1:31, modificato 1 volta in totale.

Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 05/11/2010, 21:26 
Avatar utente
Utente

Iscritto il: 05/11/2010
Messaggi: 23
Località: Siciliano fiero di esserlo
Favourite GTA: Vice City
PlayStation Network: LeeZarock
Xfire: leezarock10

Karma
0


Non connesso
il GetPlayerAnimationIndex è utilissimo, bisogna solo saperlo sfruttare

_________________
Scusate se a volte sarò un pò duro, ma ho scambiato il viagra per dei confetti azzurri
Immagine
Immagine
ImmagineImmagine
ImmagineImmagine
ImmagineImmagine
ImmagineImmagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 05/11/2010, 21:32 
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
eh si, io ci ho fatto il IsPlayerShooting:

Codice:
stock IsPlayerShooting(playerid)
{
    new index = GetPlayerAnimationIndex(playerid);
    return(index == 1167 || index == 363);
}


getta solo se sta sparando con un'arma da fuoco

_________________
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: 07/11/2010, 23:23 
Avatar utente
Moderatore

Iscritto il: 28/10/2010
Messaggi: 919
Località: Veduggio con Colzano (Milano-Monza)
Favourite GTA: San Andreas
PlayStation Network: Nessuno
Xbox Live: Nessuno
Xfire: barle97

Karma
1


Non connesso
ottimo, per me è bene continuare questo topic mettendo le funzioni utili e renderlo importante ;)

_________________
disasm 0xFFFF00 1: LE HANTENNE DEL RUTER SI MVONO DA SL!11!1!!1
[EPD]Giovanni94m: AHSUAHSAUSHAUSAHSAU
disasm 0xFFFF00 1: bella questa asd

[EPD]Giovanni94m: io non riesco a trovare un gioco che ci giocavo su ps1
[EPD]Giovanni94m: non ricordo il nome
[EPD]Giovanni94m: era un omino rosa
[EPD]Giovanni94m: ...
[BCD]barle_the_king: forse cercavi omino bianco [cit. google]
[BCD]barle_the_king: auhsahusuha
[EPD]Giovanni94m: no ahsau
[BCD]barle_the_king: firma duhahudshue

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 08/11/2010, 16:53 
Avatar utente
Utente

Iscritto il: 29/10/2010
Messaggi: 149
Favourite GTA: San Andreas
Xfire: pcnumbertwo

Karma
0


Non connesso
Codice:
stock IsPlayerInCube(playerid, Float:xmin, Float:ymin, Float:zmin, Float:xmax, Float:ymax, Float:zmax)
{
new Float:cx, Float:cy, Float:cz;
GetPlayerPos(playerid, cx, cy, cz);
if(cx > xmin && cy > ymin && cz > zmin && cx < xmax && cy < ymax && cz < zmax)return 1;
return 1;
}


L'ho trovato in una mia vecchia gamemode. Questo script forma un cubo dove SOLO in quel cubo si possono fare determinate funzioni.

_________________
My clan on Sa:Mp: TDk click :)
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 08/11/2010, 17:02 
Utente

Iscritto il: 06/11/2010
Messaggi: 198
Favourite GTA: San Andreas

Karma
1


Non connesso
GivePlayerWeapons(playerid, params)
Codice:
GivePlayerWeapons(playerid, ...)
{
   new
      start = 1,
      num = numargs();
   for(new i = start; i < num; i++)
   {
      GivePlayerWeapon(playerid, getarg(i), getarg(i++));
   }
   return 1;
}

Questa funzione da delle armi al player ma a differenza del normale GivePlayerWeapon si possono dare più armi con la stessa funzione.
Esempio:
Codice:
GivePlayerWeapons(playerid, 24, 250, 30, 250, 34, 250);

In questo caso la struttura dei params è questa: weapon (deagle), ammo (250), weapon (AK-47), ammo (250), weapon (Sniper), ammo (250),


IsPlayerInWater>(playerid)
Codice:
stock IsPlayerInWater(playerid)
{
    new index = GetPlayerAnimationIndex(playerid);
    return (1538 <= index <= 1541 || index == 1544);
}

Funzione creata su idea di Angelo95 che mi ha dato gli id delle animazioni, returna 1 se un player è in acqua altrimenti returna 0.


Funzioni/Macro binarie

Nel pawn ogni cella è costituita di default da 32 bit, ovvero delle cifre che possono assumere il valore di 1 o 0.
Utilizzando gli operatori bitwise sono riuscito a creare delle funzioni che modificano il valore del bit di una cella di una variabile o agiscono su questi.
In poche parole utilizzando una sola variabile con queste funzioni potete inserire fino a 32 valori che possono essere true o false (booleani).

Codice:
#define bit(%1)  (1 << %1)

#define setBit(%1,%2)  %1 |= bit(%2)

#define unsetBit(%1,%2)  %1 &= ~bit(%2)

#define getBit(%1,%2)  ((%1 & bit(%2)) != 0)

#define setAllBits(%1)  %1 = cellmax

#define unsetAllBits(%1)  %1 = 0

stock encodeBits({bool}:...)
{
   new
      result = getarg(0),
      num = numargs(),
      arg;
   while(++arg < num)
   {
      if(getarg(arg))
      {
         setBit(result, arg);
      }
   }
   return result;
}


La macro "bit" è utilizzata privatamente nelle altre funzioni, quindi non vi serve.

Ecco a cosa servono le altre funzioni:

setBit(var, slot)
Setta il valore di un bit della variabile a true.
La variabile var è la variabile in cui memorizzare i bit mentre slot è il numero del bit, che va da 0 a 31.

unsetBit(var, slot)
Setta il valore di un bit della variabile a false.
La variabile var è la variabile in cui memorizzare i bit mentre slot è il numero del bit, che va da 0 a 31.

getBit(var, slot)
Returna true o false a seconda di ciò che è stato settato nella variabile di bit.

setAllBits(var)
Setta il valore di tutti i bit della variabile var a true.

unsetAllBits(var)
Setta il valore di tutti i bit della variabile var a false.

Esempi:
Codice:
enum
{
    Connected,
    Logged,
    Spawned,
    Dead     
}

new
    pBools[MAX_PLAYERS];

OnPlayerDeath(playerid, killerid, reason)
{
    unsetBit(pBools[playerid], Spawned);
    setBit(pBools[playerid], Dead);
    return 1;
}

OnPlayerRequestSpawn(playerid)
{
    if(!getBit(pBools[playerid], Logged)) return 0;
    return 1;
}

OnPlayerSpawn(playerid)
{
    if(getBit(pBools[playerid], Dead))
    {
   SendClientMessage(playerid, COLOR_WHITE, "Eri morto");
   unsetBit(pBools[playerid], Dead); 
    }
    setBit(pBools[playerid], Spawned);
    return 1;
}

OnPlayerConnect(playerid)
{
    setBit(pBools[playerid], Connected);
    return 1;
}

OnPlayerDisconnect(playerid, reason)
{
    unsetAllBits(pBools[playerid]);
    return 1;
}

// Cosi abbiamo memorizzato quattro valori booleani in un unica variabile, risparmiando memoria



encodeBits({Bool:}...)
Returna un set di bit secondo i valori dati tra le parentesi (infiniti), che possono essere true o false. Questa funzione ad esempio può essere utilizzata al posto di quelle dell'UpdateVehicleDamageStatus, come encode_tires, encode_panels o altre, ed è anche "universale", ovvero non dovete usare più funzioni.
PS: Necessita delle mie macro binarie precedentemente elencate.

Esempio:
Codice:
new panels, doors, lights, tires;   
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, encodeBits(true, true, false, true));



SendClientMessage(playerid, color, message[, params])
SendClientToAll(color, message[, params])
Codice:
new
    SFM_tmpString[128];

#define SendClientMessage(%1,%2,%­3,%­4) \
format(SFM_tmpString, 128, %­3, %­4); \
SendClientMessage(%1, %2, SFM_tmpString)

#define SendClientMessageToAll(%1,%2,%­3) \
format(SFM_tmpString, 128, %2, %­3); \
SendClientMessageToAll(%1, SFM_tmpString)

Modifica del SendClientMessage(ToAll), con la quale se si inseriscono dei parametri dopo il messaggio ci sarà un format automatico.
Attenzione: lo script non spreca memoria/velocità se non si inseriscono parametri dopo il messaggio, perché interviene solo se i parametri sono più di 3 nel SendClientMessage o più di 2 nel SendClientMessageToAll.


ForeachPVar(playerid, varName[], varType);
Codice:
#define ForeachPVar(%1,%2,%­3) \
    for(new _index = 0, _numVars = GetPVarsUpperIndex(playerid); _index < _numVars; _index++) \
    { \
   GetPVarNameAtIndex(%1, _index, %2, sizeof(%2)); \
   %­3 = GetPVarType(%1, %2); \
    }


Esegue un ciclo con tutte le PVar di un player, dando alla stringa varName il nome della PVar e all'intero varType l'id corrispondente al tipo della PVar (1 = intero, 2 = stringa, 3 = float).
Utile ad esempio per agire su tutte le PVar di un player senza fare una o più righe di codice per ogni PVar...
Esempio:
Codice:
public OnPlayerSpawn(playerid)
{
    //Porta a dei valori prestabiliti tutte le PVar di un player
    new
   varName[128],
   varType;
    ForeachPVar(playerid, varName, varType)
    {
   switch(varType)
   {
       case 1:
       {
      SetPVarInt(playerid, varName, 2);
       }
       case 2:
       {
      SetPVarString(playerid, varName, "LoL");
       }
       case 3:
       {
      SetPVarFloat(playerid, varName, 0.255);
       }
   }
    }
    return 1;
}


Un altro esempio pratico sarebbe quello di usare questa macro per salvare tutte le PVar di un player in un file...
Naturalmente potrete escludere delle particolari PVar dal ciclo in vari modi, ad esempio usando lo strcmp per vedere se il varName corrisponde a quello della PVar da escludere.


_sleep(interval, bool:seconds = false)
Codice:
_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ì:
Codice:
_sleep(intervallo);

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

Quindi l'intervallo è definito in secondi.

Esempio pratico:
Codice:
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...
PPS: utilizzando questa funzione tutto lo script generale si fermerà fino a quando questa non è stata completata. Quindi non serve a molto xD.

_________________
https://t.me/pump_upp


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 08/11/2010, 17:59 
Avatar utente
Moderatore

Iscritto il: 28/10/2010
Messaggi: 919
Località: Veduggio con Colzano (Milano-Monza)
Favourite GTA: San Andreas
PlayStation Network: Nessuno
Xbox Live: Nessuno
Xfire: barle97

Karma
1


Non connesso
Ottimo

_________________
disasm 0xFFFF00 1: LE HANTENNE DEL RUTER SI MVONO DA SL!11!1!!1
[EPD]Giovanni94m: AHSUAHSAUSHAUSAHSAU
disasm 0xFFFF00 1: bella questa asd

[EPD]Giovanni94m: io non riesco a trovare un gioco che ci giocavo su ps1
[EPD]Giovanni94m: non ricordo il nome
[EPD]Giovanni94m: era un omino rosa
[EPD]Giovanni94m: ...
[BCD]barle_the_king: forse cercavi omino bianco [cit. google]
[BCD]barle_the_king: auhsahusuha
[EPD]Giovanni94m: no ahsau
[BCD]barle_the_king: firma duhahudshue

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 08/11/2010, 20:32 
Banned

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

Karma
-10


Non connesso
Codice:
pName(playerid)
{
    new playerName[24];
    GetPlayerName(playerid, playerName 24);
    return playerName;
}


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 08/11/2010, 20:41 
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 SetPlayerPosWithVehicle(playerid, Float:x, Float:y, Float:z, Float:Angle, interior, virtualworld)
{
    if(IsPlayerInAnyVehicle(playerid))
    {
        new vehicleid = GetPlayerVehicleID(playerid);
        SetVehiclePos(vehicleid, x, y, z);
        SetVehicleZAngle(vehicleid, Angle);
        LinkVehicleToInterior(vehicleid, interior);
        SetVehicleVirtualWorld(vehicleid, virtualworld);
        SetPlayerPos(playerid, x, y, z);
        PutPlayerInVehicle(playerid, vehicleid, 1);
    }
}


Utile funzione che teletrasporta il player con tutto il veicolo (Non c'è bisogno di vedere se il player è nel veicolo);

_________________
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: 08/11/2010, 21:02 
Banned

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

Karma
-10


Non connesso
Angelo ha scritto:
Codice:
stock SetPlayerPosWithVehicle(playerid, Float:x, Float:y, Float:z, Float:Angle, interior, virtualworld)
{
    if(IsPlayerInAnyVehicle(playerid))
    {
        new vehicleid = GetPlayerVehicleID(playerid);
        SetVehiclePos(vehicleid, x, y, z);
        SetVehicleZAngle(vehicleid, Angle);
        LinkVehicleToInterior(vehicleid, interior);
        SetVehicleVirtualWorld(vehicleid, virtualworld);
        SetPlayerPos(playerid, x, y, z);
        PutPlayerInVehicle(playerid, vehicleid, 1);
    }
}


Utile funzione che teletrasporta il player con tutto il veicolo (Non c'è bisogno di vedere se il player è nel veicolo);

Migliorato:
Codice:
stock SetPlayerPosWithVehicle(playerid, Float:x, Float:y, Float:z, Float:angle = 90.0, interior = 0, virtualworld = 0)
{
    if(IsPlayerInAnyVehicle(playerid))
   {
      if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
       {
           new vehicleid = GetPlayerVehicleID(playerid);
           SetVehiclePos(vehicleid, x, y, z);
           if(angle != 90) SetVehicleZAngle(vehicleid, angle);
           if(interior != 0) LinkVehicleToInterior(vehicleid, interior);
           if(virtualworld != 0) SetVehicleVirtualWorld(vehicleid, virtualworld);
           PutPlayerInVehicle(playerid, vehicleid, 0);
      }
    }
}


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 08/11/2010, 21: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
hai ragione ho dimenticato il PLAYER_STATE_DRIVER

_________________
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: 08/11/2010, 21:51 
Banned

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

Karma
-10


Non connesso
Dimenticavo. Sarebbe meglio che se il player non è in nessun veicolo viene richiamata la funzione normale SetPlayerPos. Correggi tu :asd:


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 09/11/2010, 10: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:
SetPlayerPosEx(playerid, Float:x, Float:y, Float:angle, interior, world)
{
    SetPlayerInterior(playerid, interior);
    SetPlayerVirtualWorld(playerid, world);
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        new vehicleid = GetPlayerVehicleID(playerid);
        SetVehiclePos(vehicleid, x, y, z);
        SetPlayerPos(playerid, x, y, z);
        SetVehicleZAngle(vehicleid, angle);
        LinkVehicleToInterior(vehicleid, interior);
        SetVehicleVirtualWorld(vehicleid, world);
    }
    else
    {
        SetPlayerPos(playerid, x, y, z);
        SetPlayerFacingAngle(playerid, angle);
    }
}


Credo che così vada meglio basta mettere SetPlayerPosEx(playerid, x, y, z, angle, interior, world); e fa tutto da solo

_________________
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 09/11/2010, 15:49, modificato 2 volte in totale.

Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 09/11/2010, 15:44 
Utente

Iscritto il: 06/11/2010
Messaggi: 198
Favourite GTA: San Andreas

Karma
1


Non connesso
Angelo ha scritto:
Codice:
SetPlayerPosEx(playerid, Float:x, Float:y, Float:angle, interior, world)
{
    SetPlayerInterior(playerid, interior);
    SetPlayerVirtualWorld(playerid, world);
    if(GetPlayerState(playerid) &PLAYER_STATE_DRIVER)
    {
        new vehicleid = GetPlayerVehicleID(playerid);
        SetVehiclePos(vehicleid, x, y, z);
        SetPlayerPos(playerid, x, y, z);
        SetVehicleZAngle(vehicleid, angle);
        LinkVehicleToInterior(vehicleid, interior);
        SetVehicleVirtualWorld(vehicleid, world);
    }
    else if(GetPlayerState(playerid) &PLAYER_STATE_ONFOOT)
    {
        SetPlayerPos(playerid, x, y, z);
        SetPlayerFacingAngle(playerid, angle);
    }
}


Credo che così vada meglio basta mettere SetPlayerPosEx(playerid, x, y, z, angle, interior, world); e fa tutto da solo


L'operatore & non centra niente qui, usa ==, inoltre mettere l'if che controlla se un player a piedi è inutile, anzi, non setterebbe la pos dei player passeggeri.

_________________
https://t.me/pump_upp


Top
 E-mail  
 
 Oggetto del messaggio: Re: [ARG] Funzioni utili
MessaggioInviato: 09/11/2010, 15:50 
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
modificato

_________________
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: 30/01/2011, 14: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
Codice:
forward Float:GetDistance(Float:x1, Float:x2, Float:y1, Float:y2);
Float:GetDistance(Float:x1, Float:x2, Float:y1, Float:y2)
{
   return floatsqroot(floatpower(floatsub(x1, x2), 2) + floatpower(floatsub(y1, y2), 2));
}


Semplice funzione che returna la distanza tra due punti, basterà prendere le coordinate di questi due punti e sistemare la coordinata x del primo e quella del secondo al posto di x1, x2 (se le metterte al contrario non cambia niente) la stessa cosa fatela con le coordinate y.

Codice:
forward Float:GetPlayersDistance(playerid, pid);
Float:GetDistance(playerid, pid)
{
    if(IsPlayerConnected(playerid) && IsPlayerConnected(pid))
    {
        if(playerid != INVALID_PLAYER_ID && pid != INVALID_PLAYER_ID)
        {
       new Float:Pos[6];
       GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
       GetPlayerPos(pid, Pos[3], Pos[4], Pos[5]);
       return floatsqroot(floatpower(floatsub(Pos[0], Pos[3]), 2) + floatpower(floatsub(Pos[1], Pos[4]), 2));
        }
    }
}


Il GetPlayersDistance returna la distanza tra due players

Codice:
forward Float:GetVehiclesDistance(vehicleid, vehicleid2);
Float:GetDistance(vehicleid, vehicleid2)
{
    if(vehicleid != INVALID_VEHICLE_ID && vehicleid2 != INVALID_VEHICLE_ID)
    {
   new Float:Pos[6];
   GetVehiclePos(vehicleid, Pos[0], Pos[1], Pos[2]);
   GetVehiclePos(vehicleid2, Pos[3], Pos[4], Pos[5]);
   return floatsqroot(floatpower(floatsub(Pos[0], Pos[3]), 2) + floatpower(floatsub(Pos[1], Pos[4]), 2));
    }
}


Il GetVehiclesDistance returna la distanza tra due veicoli.

Codice:
forward Float:GetObjectsDistance(obj1, obj2);
Float:GetDistance(obj1, obj2)
{
    if(obj1 != INVALID_OBJECT_ID && obj2 != INVALID_OBJECT_ID)
    {
   new Float:Pos[6];
   GetObjectPos(obj1, Pos[0], Pos[1], Pos[2]);
   GetObjectPos(obj2, Pos[3], Pos[4], Pos[5]);
   return floatsqroot(floatpower(floatsub(Pos[0], Pos[3]), 2) + floatpower(floatsub(Pos[1], Pos[4]), 2));
    }
}


Il GetObjectsDistance returna la distanza tra due objects

_________________
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: 25/02/2011, 16:23 
Banned

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

Karma
-10


Non connesso
sendInfoMessage(playerid, bool:color, message[])
Codice:
sendInfoMessage(playerid, bool:color, message[])
{
    new string[128];
    if(color == true) format(string, 128, "{00FF00}INFO: {AFAFAF}%s", message);
    else format(string, 128, "{F60000}INFO: {AFAFAF}%s", message),
    SendClientMessage(playerid, -1, string);
}

-playerid: L'ID del Player a cui deve essere mandato il messaggio di INFO.
-bool:color: Il colore che deve avere "INFO:" nel messaggio. true = verde; false = rosso.
-message[]: Testo del messaggio di INFO.

sendErrorMessage(playerid, message[])
Codice:
sendErrorMessage(playerid, message[])
{
    new string[128];
    format(string, 128, "{F60000}ERRORE: {AFAFAF}%s", message),
    SendClientMessage(playerid, -1, string);
}

-playerid: L'ID del Player a cui deve essere mandato il messaggio di ERRORE.
-message[]: Testo del messaggio di ERRORE.


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

Vai alla pagina :: 1, 2  Prossima »
  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 18 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