16.05.2015, 14:20
Hello there i have problem in my onplayerdeath script i dont know but but crashdetect said
here is the script
plss help if there is a problem
sry for my bad english
Quote:
[21:06:25] [debug] Run time error 4: "Array index out of bounds" [21:06:25] [debug] Accessing element at index 65535 past array upper bound 129 [21:06:25] [debug] AMX backtrace: [21:06:25] [debug] #0 003f93e8 in public FC_OnPlayerDeath () from HighSpeedDriversmm3rev7.amx [21:06:25] [debug] #1 native CallLocalFunction () [00473f40] from samp-server.exe [21:06:25] [debug] #2 0001223c in public OnPlayerDeath () from HighSpeedDriversmm3rev7.amx [21:06:25] [death] semara died 255 |
Код:
public OnPlayerDeath(playerid, killerid, reason) { //killerid != playerid && playerid != killerid && SendDeathMessage(killerid, playerid, reason); GameTextForPlayer(playerid, "~r~Wasted", 2000, 5); if(killerid != INVALID_PLAYER_ID) { PlayerInfo[playerid][Deaths]++; PlayerInfo[killerid][Kills]++; } if(PlayerInfo[playerid][JoinedEvent] == true) { PlayerInfo[playerid][JoinedEvent] = false; foreach(Player, i) { if(PlayerInfo[i][AdminLevel] >= 1) { new name[MAX_PLAYER_NAME], string[128]; GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "%s has died in the event", name); SendClientMessage(i, COLOR_RED, string); } } } if(PlayerInfo[killerid][World] != DMWorldID && PlayerInfo[playerid][JoinedEvent] == false && PlayerInfo[killerid][World] != TDMWorldID && PlayerInfo[killerid][World] != FreeroamID) { if(killerid != INVALID_PLAYER_ID) { if(PlayerInfo[killerid][MaxDMWarnings] == 3) { new name[MAX_PLAYER_NAME], string[160]; GetPlayerName(killerid, name, sizeof(name)); format(string, sizeof(string), "SERVER-KICK: %s (Reason: killing people outside the Deathmatch World) Warning: 3/3", name); SendClientMessageToAll(BANNEDMESSAGE, string); return Kick(killerid); } else if(PlayerInfo[killerid][MaxDMWarnings] != 3) { new name[MAX_PLAYER_NAME]; new string[160]; GetPlayerName(killerid, name, sizeof(name)); PlayerInfo[killerid][MaxDMWarnings]++; format(string, sizeof(string), "SERVER-WARN: %s (Reason: killing people outside the Deathmatch World) Warning: %d/3", name, PlayerInfo[killerid][MaxDMWarnings]); SendClientMessageToAll(BANNEDMESSAGE, string); GameTextForPlayer(killerid, "~r~HEY! you may not kill people outside the DM World!!!", 5000, 5); cmd_kill(killerid, ""); } } else return 1; } else if(PlayerInfo[killerid][World] == DMWorldID || PlayerInfo[killerid][World] == TDMWorldID || PlayerInfo[killerid][World] == FreeroamID) { if(killerid != INVALID_PLAYER_ID) { GivePlayerMoney(killerid, 2500); SetPlayerScore(killerid, GetPlayerScore(killerid) + 2); GameTextForPlayer(killerid, "~r~you earned $2500 and 2 Score for killing an opponent", 2000, 5); PlayerInfo[killerid][KillingSpree]++; if(PlayerInfo[killerid][KillingSpree] == 3) { new string[128], kname[MAX_PLAYER_NAME]; GetPlayerName(killerid, kname, sizeof(kname)); format(string, sizeof(string), "%s is starting to Own People! he has a Killing Spree of 3 and earned $5000 and 4 Score", kname); GivePlayerMoney(killerid, 5000); SetPlayerScore(killerid, GetPlayerScore(killerid)+4); foreach(Player, i) { SendClientMessage(i, PLAYERCOLOR_AQUA, string); } } else if(PlayerInfo[killerid][KillingSpree] == 6) { new string[128], kname[MAX_PLAYER_NAME]; GetPlayerName(killerid, kname, sizeof(kname)); format(string, sizeof(string), "%s is the Killer!! he has a Killing Spree of 6 and earned $10000 and 8 Score", kname); GivePlayerMoney(killerid, 10000); SetPlayerScore(killerid, GetPlayerScore(killerid)+8); foreach(Player, i) { SendClientMessage(i, PLAYERCOLOR_AQUA, string); } } else if(PlayerInfo[killerid][KillingSpree] == 10) { new string[128], kname[MAX_PLAYER_NAME]; GetPlayerName(killerid, kname, sizeof(kname)); format(string, sizeof(string), "%s is Unstoppable!!! he has a Killing Spree of 10 and earned $15000 and 10 Score", kname); GivePlayerMoney(killerid, 15000); SetPlayerScore(killerid, GetPlayerScore(killerid)+10); foreach(Player, i) { SendClientMessage(i, PLAYERCOLOR_AQUA, string); } } else if(PlayerInfo[killerid][KillingSpree] == 15) { new string[128], kname[MAX_PLAYER_NAME]; GetPlayerName(killerid, kname, sizeof(kname)); format(string, sizeof(string), "%s is the GodKiller!!!! he has a Killing Spree of 15 and earned $20000 and 15 Score", kname); GivePlayerMoney(killerid, 20000); SetPlayerScore(killerid, GetPlayerScore(killerid)+15); foreach(Player, i) { SendClientMessage(i, PLAYERCOLOR_AQUA, string); } } else if(PlayerInfo[killerid][KillingSpree] == 20) { new string[128], kname[MAX_PLAYER_NAME]; GetPlayerName(killerid, kname, sizeof(kname)); format(string, sizeof(string), "%s is the Master!!!!! he has a Killing Spree of 20 and earned $30000 and 20 Score", kname); GivePlayerMoney(killerid, 30000); SetPlayerScore(killerid, GetPlayerScore(killerid)+20); foreach(Player, i) { SendClientMessage(i, PLAYERCOLOR_AQUA, string); } } else if(PlayerInfo[killerid][KillingSpree] == 30) { new string[128], kname[MAX_PLAYER_NAME]; GetPlayerName(killerid, kname, sizeof(kname)); format(string, sizeof(string), "%s is the Ultimate Killer!!!!! he has a Killing Spree of 30 and earned $50000 and 30 Score", kname); GivePlayerMoney(killerid, 50000); SetPlayerScore(killerid, GetPlayerScore(killerid)+30); foreach(Player, i) { SendClientMessage(i, PLAYERCOLOR_AQUA, string); } } if(PlayerInfo[playerid][KillingSpree] == 3) { GivePlayerMoney(killerid, 5000); SetPlayerScore(killerid, GetPlayerScore(killerid)+4); SendClientMessage(killerid, COLOR_ORANGE, "you have killed someone with a killing spree of 3 and earned $5000 and 4 Score"); } else if(PlayerInfo[playerid][KillingSpree] == 6) { GivePlayerMoney(killerid, 10000); SetPlayerScore(killerid, GetPlayerScore(killerid)+8); SendClientMessage(killerid, PLAYERCOLOR_AQUA, "you have killed someone with a killing spree of 6 and earned $10000 and 8 Score"); } else if(PlayerInfo[playerid][KillingSpree] == 10) { GivePlayerMoney(killerid, 15000); SetPlayerScore(killerid, GetPlayerScore(killerid)+10); SendClientMessage(killerid, PLAYERCOLOR_AQUA, "you have killed someone with a killing spree of 10 and earned $15000 and 10 Score"); } else if(PlayerInfo[playerid][KillingSpree] == 15) { GivePlayerMoney(killerid, 20000); SetPlayerScore(killerid, GetPlayerScore(killerid)+15); SendClientMessage(killerid, PLAYERCOLOR_AQUA, "you have killed someone with a killing spree of 15 and earned $20000 and 15 Score"); } else if(PlayerInfo[playerid][KillingSpree] == 20) { GivePlayerMoney(killerid, 30000); SetPlayerScore(killerid, GetPlayerScore(killerid)+20); SendClientMessage(killerid, PLAYERCOLOR_AQUA, "you have killed someone with a killing spree of 20 and earned $30000 and 20 Score"); } else if(PlayerInfo[playerid][KillingSpree] == 30) { GivePlayerMoney(killerid, 50000); SetPlayerScore(killerid, GetPlayerScore(killerid)+25); SendClientMessage(killerid, PLAYERCOLOR_AQUA, "you have killed someone with a killing spree of 30 and earned $50000 and 25 Score"); } } else return 1; } return 1; }
sry for my bad english