Problem(error/warning): Problem je u tome što se score ne sprema a kada ga ucitava ucita tu nulu(0) jer se ne sprema. Ako sam nešto zaboravio, recite.
Dio skripte:
Score uvijek postavljam na ovaj nacin, kada igrac ubije nekoga itd.
SetPlayerScore(playerid, PlayerInfo[playerid][Score] + 2);
Kada se igrac uloguje
SetPlayerScore(playerid, PlayerInfo[playerid][Score]);
Ucitavanje, to jest LoadUser_data
INI_Int("Score", PlayerInfo[playerid][Score]);
Spremanje
INI_WriteInt(File,"Score", GetPlayerScore(playerid));
I dodao sam kasnije timer da ucitava igrace skor svakih 5 sekundi.
SetTimerEx("UpdateScore", 5000, true, "");
public UpdateScore()
{
foreach (new i : Player) if (IsPlayerLoggedIn[i] && IsPlayerSpawned(i))
{
SetPlayerScore(i, PlayerInfo[i][Score]);
}
return 1;
}
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Slika/video ingame problema(obavezno ako je ingame problem): //
Sorry,
@Ino42O Ali ti si mi nekako najdrazi :D
Mislim da ti taj tajmer nikako nije potreban msm cijela funkcija znaš ja koristim enum pinfo i nemam problem ucitava mi normalno
Citat: Yannick poslato Mart 17, 2018, 18:42:19 POSLE PODNE
Mislim da ti taj tajmer nikako nije potreban msm cijela funkcija znaš ja koristim enum pinfo i nemam problem ucitava mi normalno
Kako nije potreban, a koristi se samo da ucita trenutni 'score' koji je spremljen. I bez timera, sprema se '0' i isto tako ucitava nulu (0)
Jel praviÅ¡ mod od 0 ako praviÅ¡ jel imaÅ¡ neÅ¡to joÅ¡ Å¡to ti ne uÄitava
Citat: Vantage poslato Mart 17, 2018, 18:32:28 POSLE PODNE
SetPlayerScore(playerid, PlayerInfo[playerid][Score] + 2);
Zar ne ide
SetPlayerScore(playerid, PlayerInfo[playerid][Score] += 2);
imas gresaka...
SetPlayerScore(playerid, PlayerInfo[playerid][Score] + 2);
// Ovo ce ti davat onome ko umre a ne onom igracu koji ubije i ne treba ti tajmer za postavljanje scora svakih 5sec
i ne ti normalno score system, ovako ti je lakse ovako napravi....
stock DajScore(playerid,koliko)
{
PlayerInfo[playerid][Score]=PlayerInfo[playerid][Score]+koliko;
SetPlayerScore(playerid,PlayerInfo[playerid][Score]);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
DajScore(killerid,2);
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerScore(playerid,PlayerInfo[playerid][Score]);
return 1;
}
// i u funkciji kad se prijavi/registruje stavis isto
SetPlayerScore(playerid,PlayerInfo[playerid][Score]);
Citat: Belegija poslato Mart 17, 2018, 19:01:35 POSLE PODNE
Zar ne ide SetPlayerScore(playerid, PlayerInfo[playerid][Score] += 2);
Stavio sam ovako, I cini se da radi sada.
Citat: Vantage poslato Mart 17, 2018, 18:51:41 POSLE PODNE
Kako nije potreban, a koristi se samo da ucita trenutni 'score' koji je spremljen. I bez timera, sprema se '0' i isto tako ucitava nulu (0)
Tajmer ti nije potreban,Äemu svako 5 sekundi uÄitavati Score igraÄu? UÄitavaÅ¡ mu Score samo onda kada mijenjaÅ¡ vrijednost i na loginu puno bolje rijeÅ¡enje nego ovo.
Je li uopce u datoteci bude 'Score' polje posle spremanja?
Ocigledno ti je spremanje pojebano
[pawn]INI_WriteInt(File,"Score", GetPlayerScore(playerid));[/pawn]
probaj sa
[pawn]INI_WriteInt(File,"Score", PlayerInfo[playerid][Score]);[/pawn]
Radi mi na ovaj nacin sto je Belegija rekao i sada ga sprema, a ovo ostalo sam pokusao i nece.
Svejedno tu vrijednost postavljas na score (SetPlayerScore) kojom posle zapisivas (GetPlayerScore), tako da bi i 'stari' nacin trebao raditi, i ovo:
SetPlayerScore(playerid, PlayerInfo[playerid][Score] += 2);
nebi trebalo raditi
Citat: Ino42O poslato Mart 18, 2018, 21:24:23 POSLE PODNE
Svejedno tu vrijednost postavljas na score (SetPlayerScore) kojom posle zapisivas (GetPlayerScore), tako da bi i 'stari' nacin trebao raditi, i ovo:
SetPlayerScore(playerid, PlayerInfo[playerid][Score] += 2);
nebi trebalo raditi
Ali radi, sprema mu i ucitava kako treba
Citat: Vantage poslato Mart 18, 2018, 20:34:43 POSLE PODNE
Radi mi na ovaj nacin sto je Belegija rekao i sada ga sprema, a ovo ostalo sam pokusao i nece.
Drago mi je sto sam pomogao
Citat: [beNNy] poslato Mart 17, 2018, 19:15:00 POSLE PODNE
imas gresaka...
SetPlayerScore(playerid, PlayerInfo[playerid][Score] + 2);
// Ovo ce ti davat onome ko umre a ne onom igracu koji ubije i ne treba ti tajmer za postavljanje scora svakih 5sec
i ne ti normalno score system, ovako ti je lakse ovako napravi....
stock DajScore(playerid,koliko)
{
PlayerInfo[playerid][Score]=PlayerInfo[playerid][Score]+koliko;
SetPlayerScore(playerid,PlayerInfo[playerid][Score]);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
DajScore(killerid,2);
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerScore(playerid,PlayerInfo[playerid][Score]);
return 1;
}
// i u funkciji kad se prijavi/registruje stavis isto
SetPlayerScore(playerid,PlayerInfo[playerid][Score]);
a ovo drugo,ako ti bude davalo pogresnom Score,stavi umjesto playerid,killerid
SetPlayerScore(playerid, PlayerInfo[playerid][Score] + 2);
mislis
SetPlayerScore(killerid, PlayerInfo[killerid][Score] + 2);
?
Citat: Ino42O poslato Mart 18, 2018, 21:24:23 POSLE PODNE
Svejedno tu vrijednost postavljas na score (SetPlayerScore) kojom posle zapisivas (GetPlayerScore), tako da bi i 'stari' nacin trebao raditi, i ovo:
SetPlayerScore(playerid, PlayerInfo[playerid][Score] += 2);
nebi trebalo raditi
I ja sam mislio,Äudno...
public OnPlayerConnect(playerid)
{
new score = 5;
SetPlayerScore(playerid, score += 2);
printf("GetScore: %d , Score: %d " ,GetPlayerScore(playerid),score);
return 1;
}
Ispis:
Citat[12:52:48] GetScore: 7 , Score: 7
Citat: Åukmember=1996][/member] link=topic=120726.msg831552#msg831552 date=1521410394]
SetPlayerScore(playerid, PlayerInfo[playerid][Score] + 2);
mislis
SetPlayerScore(killerid, PlayerInfo[killerid][Score] + 2);
?
Mislim [pawn]SetPlayerScore(killerid, PlayerInfo[killerid][Score] += 2);[/pawn] njemu radi sve,a ja sam napravio gresku lol