Započeo Plen Ki Mun
•14. Mar. 2018.• Zaključano'OnPlayerDeath' - Array Index Out of Bounds
1,386
pregleda
9
postova
Underboss
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
526
Postovi:
101
Teme:
Pridružio se:Sep. 2015
14. Mar. 2018.
Problem(error/warning): Ma nešto zeza OnPlayerDeath callback baca nesto array index out of bounds
Dio skripte:
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Slika/video ingame problema(obavezno ako je ingame problem): //
Dio skripte:
public OnPlayerDeath(playerid, killerid, reason)
{
Killstreak(playerid, killerid);
new string;
if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
{
PlayerInfo++;
PlayerInfo++;
if(OnHit != 0)
{
GivePlayerMoneyEx(killerid, OnHit);
new result;
format(result, sizeof(result), "{FFFF00}: {FFFFFF}Ubio si %s i zaradio na njegovoj glavi $%d!", GetName(playerid), OnHit);
SCM(playerid, -1, result);
format(result, sizeof(result), "{FFFF00}: {FFFFFF}%s je ubio %d i zaradio $%d!", GetName(killerid), GetName(playerid), OnHit);
SCMToAll(-1, result);
OnHit = 0;
}
if(PlayerInfo >= 1)
{
format(string, 150, ": {FFFFFF}Ubio si %s.", GetName(playerid));
SCM(killerid, -1, string);
GivePlayerMoneyEx(killerid, 1000);
} SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
}
else
{
format(string, 150, ": {FFFFFF}ubio si %s.", GetName(playerid));
SCM(killerid, -1, string);
GivePlayerMoneyEx(killerid, 1000);
SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
}
AntiFakekill++;
SetTimerEx("AntiFakekillTimer", 1000,false,"i",playerid);
SendDeathMessage(killerid,playerid,reason);
SCM(playerid, TOMATO, ": {FFFFFF}Ubijen si nakazo, spremi kofer i pakuj prnje..");
format(string, 150, "~w~Ubijen si od ~r~%s", GetName(killerid));
GameTextForPlayer(playerid, string,2500,3);
return 1;
}
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
[18:47:35] Run time error 4: "Array index out of bounds"
[18:47:35] AMX backtrace:
[18:47:35] #0 0009ae98 in ?? (0, 65535) from CNR.amx
[18:47:35] #1 00058d90 in public OnPlayerDeath (0, 65535, 255) from CNR.amxSlika/video ingame problema(obavezno ako je ingame problem): //
Underboss
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
526
Postovi:
101
Teme:
Pridružio se:Sep. 2015
OG Legend
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
4,119
Postovi:
75
Teme:
Pridružio se:Avg. 2016
14. Mar. 2018.
Probaj sada, pozivao si funkciju Killstreak(playerid,killerid); prije provjere.
public OnPlayerDeath(playerid, killerid, reason)
{
new string;
if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
{
Killstreak(playerid, killerid);
PlayerInfo++;
PlayerInfo++;
if(OnHit != 0)
{
GivePlayerMoneyEx(killerid, OnHit);
new result;
format(result, sizeof(result), "{FFFF00}: {FFFFFF}Ubio si %s i zaradio na njegovoj glavi $%d!", GetName(playerid), OnHit);
SCM(playerid, -1, result);
format(result, sizeof(result), "{FFFF00}: {FFFFFF}%s je ubio %d i zaradio $%d!", GetName(killerid), GetName(playerid), OnHit);
SCMToAll(-1, result);
OnHit = 0;
}
if(PlayerInfo >= 1)
{
format(string, 150, ": {FFFFFF}Ubio si %s.", GetName(playerid));
SCM(killerid, -1, string);
GivePlayerMoneyEx(killerid, 1000);
} SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
}
else
{
format(string, 150, ": {FFFFFF}ubio si %s.", GetName(playerid));
SCM(killerid, -1, string);
GivePlayerMoneyEx(killerid, 1000);
SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
}
AntiFakekill++;
SetTimerEx("AntiFakekillTimer", 1000,false,"i",playerid);
SendDeathMessage(killerid,playerid,reason);
SCM(playerid, TOMATO, ": {FFFFFF}Ubijen si nakazo, spremi kofer i pakuj prnje..");
format(string, 150, "~w~Ubijen si od ~r~%s", GetName(killerid));
GameTextForPlayer(playerid, string,2500,3);
return 1;
}
Underboss
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
526
Postovi:
101
Teme:
Pridružio se:Sep. 2015
Kingpin
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
1,394
Postovi:
77
Teme:
Pridružio se:Okt. 2012
17. Mar. 2018.
public OnPlayerDeath(playerid, killerid, reason)
{
if (playerid == INVALID_PLAYER_ID || killerid == INVALID_PLAYER_ID) {
return 1;
}
Killstreak(playerid, killerid);
new string;
if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
{
PlayerInfo++;
PlayerInfo++;
if(OnHit != 0)
{
GivePlayerMoneyEx(killerid, OnHit);
new result;
format(result, sizeof(result), "{FFFF00}: {FFFFFF}Ubio si %s i zaradio na njegovoj glavi $%d!", GetName(playerid), OnHit);
SCM(playerid, -1, result);
format(result, sizeof(result), "{FFFF00}: {FFFFFF}%s je ubio %d i zaradio $%d!", GetName(killerid), GetName(playerid), OnHit);
SCMToAll(-1, result);
OnHit = 0;
}
if(PlayerInfo >= 1)
{
format(string, 150, ": {FFFFFF}Ubio si %s.", GetName(playerid));
SCM(killerid, -1, string);
GivePlayerMoneyEx(killerid, 1000);
} SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
}
else
{
format(string, 150, ": {FFFFFF}ubio si %s.", GetName(playerid));
SCM(killerid, -1, string);
GivePlayerMoneyEx(killerid, 1000);
SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
}
AntiFakekill++;
SetTimerEx("AntiFakekillTimer", 1000,false,"i",playerid);
SendDeathMessage(killerid,playerid,reason);
SCM(playerid, TOMATO, ": {FFFFFF}Ubijen si nakazo, spremi kofer i pakuj prnje..");
format(string, 150, "~w~Ubijen si od ~r~%s", GetName(killerid));
GameTextForPlayer(playerid, string,2500,3);
return 1;
}
mozda ovako?
usput, da li je crasher dao vise linija loga, trebao bi prikazati broj linije gdje se poziva ta metoda
Underboss
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
526
Postovi:
101
Teme:
Pridružio se:Sep. 2015
17. Mar. 2018.
@Ino42O
Pokusat cu sada ovo za death, ali mi isto i ovo u log izbacuje jer sam prebacio na novi ServerSided money.
Log:
Kod:
Pokusat cu sada ovo za death, ali mi isto i ovo u log izbacuje jer sam prebacio na novi ServerSided money.
Log:
[10:22:47] #0 00092ccc in public GivePlayerCash (65535, 2500) from CNR.amxKod:
// Anti-Money Hack
forward GivePlayerCash(playerid, money);
public GivePlayerCash(playerid, money)
{
CashC += money;
ResetMoneyBar(playerid);
UpdateMoneyBar(playerid,CashC);
return CashC;
}
forward SetPlayerCash(playerid, money);
SetPlayerCash(playerid, money)
{
CashC = money;
ResetMoneyBar(playerid);
UpdateMoneyBar(playerid,CashC);
return CashC;
}
forward ResetPlayerCash(playerid);
ResetPlayerCash(playerid)
{
CashC = 0;
ResetMoneyBar(playerid);
UpdateMoneyBar(playerid,CashC);
return CashC;
}
forward GetPlayerCash(playerid);
GetPlayerCash(playerid)
{
return CashC;
}
Kingpin
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
1,394
Postovi:
77
Teme:
Pridružio se:Okt. 2012
17. Mar. 2018.
dodas provjere gdje pozivas te funkcije tipa:
ili
if (IsPlayerConnected(id)) {
GivePlayerCash(id, money);
}ili
forward GivePlayerCash(playerid, money);
public GivePlayerCash(playerid, money)
{
if (!IsPlayerConnected(playerid)) {
return 1;
}
CashC += money;
ResetMoneyBar(playerid);
UpdateMoneyBar(playerid,CashC);
return CashC;
}Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava