Szerző Téma: Fegyvermentés enum  (Megtekintve 848 alkalommal)

Nem elérhető Mokus

  • 608
    • Profil megtekintése
Fegyvermentés enum
« Dátum: 2013. augusztus 02. - 10:32:45 »
0 Show voters
Sziasztok valaki leírná nekem hogyan tudok fegyvereket is menteni enumba?Arról lenne szó hogy kilépéskor menti a fájlba külön-külön a lõszereket.
PL:
 

AK=1000
M4=500

 
és belépéskor innen tölti vissza és oda adja fegyvereket az elmentett lõszerrel.
Köszönöm elõre is :)

Fegyvermentés enum
« Válasz #1 Dátum: 2013. augusztus 02. - 12:19:53 »
0 Show voters
Szia!
Van egy ilyen függvény:
 
GetPlayerWeaponData(playerid, slot, &weapons, &ammo)

 
Létrehozol változókat(vagy egy tömböt) a fegyver mentéséhez.
 
new fegyverek[13][2]

 
A 13 a slotokat jelöli, a 2 pedig a fegyver típusát.
 
for(new i=0;i<13;i++)
{
GetPlayerWeaponData(playerid, i, fegyverek[0], fegyverek[1]);
}

 
Itt lekérted egy for ciklussal a játékos fegyvereit a tömbbe. Egy példa:
fegyverek[5][0] = Itt a 0. cella egyenlõ vagy 30-al vagy 31-el, mivel az 5. slot az AK vagy az M4-nek van.
fegyverek[5][1] = Itt az 1. cellában van a lõszer eltárolva.
Ezt a tömböt lemented ahogyan menteni szeretsz(ha szeretnéd tudok írni MySQL példát).
Betöltés:
Nagyon egyszerû. Lekéred a lementett értékeket adatbetöltésnél változókba vagy tömbbe. Ezután mikor a játékos lespawnolt:
 
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, fegyverid, loszer);

 
Értelemszerûen a fegyerid-t és a lõszert a saját változóiddal helyettesítsd. A ResetPlayerWeapons lehet, hogy elhagyható, én beleraktam az enyémbe, mivel random kapott néha a játékos lõszereket(máig nem tudom miért, de ez megoldotta)

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Fegyvermentés enum
« Válasz #2 Dátum: 2013. augusztus 02. - 18:20:07 »
0 Show voters
#include <a_samp>
#include <zcmd>
#include <dini>
public OnFilterScriptInit()
{
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
CMD:elment(playerid)
{
new name[MAX_PLAYER_NAME],string[128],string2[128];
new weapon[13][2];
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),\"%s.ini\",name);
if(!dini_Exists(string))
{
    dini_Create(string);
for(new i;i<13;i++)
{
   GetPlayerWeaponData(playerid, i, weapon[0], weapon[1]);
    format(string2,sizeof(string2),\"%d\",weapon[0]);
   dini_IntSet(string,string2,weapon[1]);
}
}
else
{
for(new i;i<13;i++)
{
   GetPlayerWeaponData(playerid, i, weapon[0], weapon[1]);
    format(string2,sizeof(string2),\"%d\",weapon[0]);
   dini_IntSet(string,string2,weapon[1]);
}
}
}
CMD:betolt(playerid)
{
new name[MAX_PLAYER_NAME],string[128],string2[12];
new Loszer[100];
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),\"%s.ini\",name);
if(dini_Exists(string))
{
for(new i;i<100;i++)
{
    format(string2,sizeof(string2),\"%d\",i);
   Loszer = dini_Int(string,string2);
   if(Loszer == 0) continue;
   GivePlayerWeapon(playerid,i,Loszer);
}
}
}

 
Úgy lesz a fájba hogy ID=Loszer vagyis pl.:
12=4543
« Utoljára szerkesztve: 2013. augusztus 02. - 19:03:15 írta BoOy »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal