Sziasztok!
Igen, elkezdett érdekelni a dini, ezért mostantól ebbõl lesz 200 kérdésem >:D
Régebben akartam egy bool mentést, amit nem nagyon értetter, úgyhogy otthagytam. Kértem a fórumon, hogy hogyan is lehet, de hiába, ha nem értem. Most elkészítettem, és minden okés. Ha a bool megváltozik, akkor az érték a \'0\' helyett \'1\'-re ugrik. Ez idáig okés, viszont ha \'1\'-en van a bool a .ini fileban (true), azt nagy ívben lesz*rja, és csinálná úgy a következõ belépéskor, ahogy falsen van az érték.
Szóval nem fogja fel, hogy az érték \'1\'-en, azaz truen van, és következõ belépéskor ugyanazt csinálja, mintha \'0\' lenne.
Itt van pár részlet (Igen, a szerveremhez kéne, amit már megnyitottam a \'Hamarosan nyíló szerverek\'-hez.):
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 300 && response)
{
switch(listitem)
{
case 0:
{
csonak = true;//Ez az a dialog, ahol a \'false\' true lesz.
}
}
}
return 1;
}
Ez lesz a mentés:
public OnPlayerDisconnect(playerid, reason)
{
GetPlayerName(playerid,utazas,24);
new name[25];
GetPlayerName(playerid,name,sizeof(name));
format(utazas,sizeof(utazas),\"%s.ini\",name);//Itt kilépéskor elmenti a játékos nevét a scriptfilesben
dini_Create(utazas);
dini_IntSet(utazas, \"változó\", csonak);//Itt teszi bele a cuccot
return 1;
}
Ez lesz a betöltés:
public OnPlayerConnect(playerid)
{
csonak = !!dini_Int(utazas, \"változó\");
return 1;
}
Ez pedig az, hogy leenõrzi, hogy a bool milyen értéken van
public OnPlayerSpawn(playerid)
{
if(csonak == true)
{
SendClientMessage(playerid,-1,\"Az érték truen van\");
}
else
{
SendClientMessage(playerid,-1,\"Jelenleg falsen\");
}
return 1;
Meg persze a new dolgok, a define, stb. Valami ötlet? Vagy, hogy mit kéne még beletenni?
}
Ha integerként mented,soha a büdös életbe nem fog igazként,vagy hamisként visszatérni (szerintem).
Én a helyedben a dini_BoolSet-et alkalmaznám
dini_BoolSet(file,\"bool\",true/false);
dini_Bool(file,\"bool\");
D:\\Játékok\\GTA\\Genesis Survival\\filterscripts\\csonak.pwn(18) : error 029: invalid expression, assumed zero
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Átírtam a cuccokat pedig. Erroros sor: dini_BoolSet(utazas,\"csonak\",true/false);
Azért írtam true/false-t,hogy ezek a lehetõségek vannak.
Azthiszem így lesz a helyes:
dini_BoolSet(utazas,\"csonak\",csonak);
Egyébként nállad az onplayerdisconnect-nél mindenféleképpen létrehozza az \"utazas\" fájlt.
Ha lekérdezed,hogy létezik-e,akkor rögtön tudsz bele írni.
valahogy így:
public OnPlayerDisconnect(playerid, reason)
{
GetPlayerName(playerid,utazas,24);
new name[25];
GetPlayerName(playerid,name,sizeof(name));
format(utazas,sizeof(utazas),\"%s.ini\",name);//Itt kilépéskor elmenti a játékos nevét a scriptfilesben
if(!dini_Exists(utazas))
{
dini_Create(utazas);
dini_IntSet(utazas, \"változó\", csonak);//Itt teszi bele a cuccot
}
else
{
dini_IntSet(utazas, \"változó\", csonak);//Itt teszi bele a cuccot
}
return 1;
}
Nagyon köszi!