-
Olyan kérdésem lenne hogy van egy kodom és a lényeg ha eléri a 300 percet akkor kapjon fizut de közbe ha eléri az 1 orát akkor lépjen szintett ezt miként tudnám megoldani?
if(afkban[playerid] == 0)
{
pInfo[playerid][mpercek]++;
if(pInfo[playerid][mpercek] == 59)
{
pInfo[playerid][mpercek] = 0;
pInfo[playerid][percek]++;
if(pInfo[playerid][percek] == 59)
{
pInfo[playerid][percek] = 0;
pInfo[playerid][mpercek] = 0;
pInfo[playerid][orak]++;
SetPlayerScore(playerid, pInfo[playerid][orak]);
Malibu_Green(playerid, \"Elmúlt négy óra.\");
if(pInfo[playerid][jailtime] == 0)
{
-
A percek változót nem kéne resetelni, és tovább mehet, csak az órák számát emeled. És ha a percek száma osztható 60-al maradék nélkül ergó 1 óra eltelt akkor +olod a játékos óráját. Ha 300-al osztható maradék nélkül = 5 óra, eltelt akkor meg fizetés lefut.
-
if(afkban[playerid] == 0)
{
pInfo[playerid][mpercek]++;
if(pInfo[playerid][mpercek] == 59)
{
pInfo[playerid][mpercek] = 0;
pInfo[playerid][percek]++;
if(pInfo[playerid][percek] == 59)
{
pInfo[playerid][orak]++;
SetPlayerScore(playerid, pInfo[playerid][orak]);
Malibu_Green(playerid, \"Szint lépés!\");
if(pInfo[playerid][percek] == 300)
{
pInfo[playerid][percek] = 0;
pInfo[playerid][mpercek] = 0;
if(pInfo[playerid][jailtime] == 0)
{
-
igy?
-
Ezzel csak az a baj, hogy ha a perc = 59,el csak akkor fog lefutni, és az csak 1x lesz, ha pl. 120 percnél jár ami két óra akkor már nem.
Írtam, hogyha oszható és a maradék nulla. pInfo[playerid][percek] % 60 == 0. Ez a maradékos osztásnál lévő maradékot adja vissza. Ez minden 60-al oszható számra 0-ás értéket fog visszaadni. Ugyanezt meglehet 300-al is csinálni. A perceket fölösleges resetelni max disconnectnél.
-
nah most már kezdem érteni esetleg igy mukodik?
pInfo[playerid][mpercek]++;
if(pInfo[playerid][mpercek] == 59)
{
pInfo[playerid][mpercek] = 0;
pInfo[playerid][percek]++;
if(pInfo[playerid][percek]% 60 == 0)
{
pInfo[playerid][mpercek] = 0;
pInfo[playerid][orak]++;
SetPlayerScore(playerid, pInfo[playerid][orak]);
Malibu_Green(playerid, \"Elmúlt egy óra.\");
if(pInfo[playerid][percek]% 300 == 0)
{
if(pInfo[playerid][jailtime] == 0)
{
new Float:kamat = GetIntData(playerid, \"bankpenz\")*0.015;
SetIntData(playerid, \"bankpenz\", GetIntData(playerid, \"bankpenz\")+floatround(kamat));
format(stri, 256, \"{57b0f0}Banki kamat: {ff0000}Ft%d\", floatround(kamat));
SCM(playerid, -1, stri);
-
pInfo[playerid][mpercek]++;
if(pInfo[playerid][mpercek] == 59)
{
pInfo[playerid][mpercek] = 0;
pInfo[playerid][percek]++;
if(pInfo[playerid][percek]% 60 == 0)
{
pInfo[playerid][mpercek] = 0;
pInfo[playerid][orak]++;
SetPlayerScore(playerid, pInfo[playerid][orak]);
Malibu_Green(playerid, \"Elmúlt egy óra.\");
}
if(pInfo[playerid][percek]% 300 == 0)
{
if(pInfo[playerid][jailtime] == 0)
{
new Float:kamat = GetIntData(playerid, \"bankpenz\")*0.015;
SetIntData(playerid, \"bankpenz\", GetIntData(playerid, \"bankpenz\")+floatround(kamat));
format(stri, 256, \"{57b0f0}Banki kamat: {ff0000}Ft%d\", floatround(kamat));
SCM(playerid, -1, stri);
}
}
}