27.11.2014, 14:37
I have this eror in server log and i don't know how to fix him
Код:
Run time error 4: "Array index out of bounds" [03:15:38] [debug] Accessing element at index 65535 past array upper bound 499 [03:15:38] [debug] AMX backtrace: [03:15:38] [debug] #0 00058bc4 in public OnPlayerDeath (0, 65535, 255) from UERX2.amx
Код:
public OnPlayerDeath(playerid, killerid, reason) { RemovePlayerAttachedObject(playerid, 2); Deaths1[playerid]+=1; if(Deaths1[playerid] == 100) { PlayerInfo[playerid][pKnjizica] = 0; SCM(playerid,COLOR_WHITE, "Vasa knjizica je istekla,produzite je"); } new string[128]; new name[MAX_PLAYER_NAME]; new name2[MAX_PLAYER_NAME]; new deathreason[20]; new y, m, d; new h,mi,s; getdate(y,m,d); gettime(h,mi,s); GetPlayerName(playerid, name, sizeof(name)); GetPlayerName(killerid, name2, sizeof(name2)); PlayerInfo[playerid][pHealth] = 100.0; Mrtav[playerid] = 1; RealAmmo[playerid] = 0; PlayerMaxAmmo[playerid] = 1; PreTazerAmmo[playerid] = 0; DisarmInv(playerid); SafeResetPlayerWeapons(playerid); KillTimer(stopactimer[playerid]); stopactimer[playerid] = SetTimerEx("resumeanticheat", 10000, false, "i", playerid); MedicBill[playerid] = 1; OnMission[playerid] = 0; PlayerInfo[playerid][pCuffed] = 0; PlayerCuffed[playerid] = 0; DisarmInv(playerid); if(Vucen[playerid] != 9999) { KillTimer(VuciTimer[Vucen[playerid]]); IDVucenogIgraca[Vucen[playerid]] = 9999; Vucen[playerid] = 9999; } if(IDVucenogIgraca[playerid] != 9999) { KillTimer(VuciTimer[playerid]); IDVucenogIgraca[playerid] = 9999; Vucen[IDVucenogIgraca[playerid]] = 9999; } if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER) { if(AntiDriveBy == 1) { new model = GetVehicleModel(GetPlayerVehicleID(killerid)); if(model != 520 || model != 425 || model != 432) { PlayerInfo[killerid][pWarns] ++; if(PlayerInfo[playerid][pWarns] == 3) { format(string, sizeof(string), "%s (%d), kikovan od strane AntiCheata zbog DriveBy ubistva.", name2, killerid); SendClientMessageToAll(COLOR_NICERED, string); SCM(killerid,COLOR_LIGHTBLUE, "Kikovani ste od strane AntiCheata zbog DriveBy ubistva."); format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Anticheat Has Kicked %s for: Excessive Drive By Killing",d,m,y,h,mi,s,name2); KickLog(string); Kick(killerid); } else { format(string, sizeof(string), "%s (%d), upozoren od strane AntiCheata zbog DriveBy ubistva..", name2, killerid); SendClientMessageToAll(COLOR_NICERED, string); SCM(killerid,COLOR_LIGHTBLUE, "Upozoreni ste od strane AntiCheata zbog DriveBy ubistva."); format(string, sizeof(string), "[AntiCheat]: %s je uradio DB, upozoren je od strane AntiCheata.", name2); SendAdminMessage(COLOR_LIGHTBLUE, string); format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Warned by Anticheat - Reason: Driver drive-by kill.",d,m,y,h,mi,s); AddPunishment(killerid, string); } } } } if(killerid != INVALID_PLAYER_ID) { if(reason == 0) { deathreason = "Ubijen rukama"; } else if(reason == 36 || reason == 35 || reason == 40 || reason == 16) { deathreason = "Explosion"; } else if(reason == 18 || reason == 37) { deathreason = "Ubijen od vatre"; } else if(reason == 51) { deathreason = "Explosion"; } else if(reason == 50) { deathreason = "Heli-Kill"; } else { GetWeaponName(reason, deathreason, sizeof(deathreason)); } format(string, sizeof(string),"[INFO]: %s (%d) has been killed by %s (%d) - %s", name,playerid,name2,killerid,deathreason); SendAdminMessage(COLOR_LIGHTBLUE, string); } else { new text[41]; if(reason == 51) { text = "Ubijen od Eksplozije"; } else if(reason == 53) { text = "Utopljen"; } else if(reason == 54) { text = "Pad sa visine"; } else { text = "Umro"; } format(string, sizeof(string),"[INFO]: %s (%d) ubijen od strane servera. (%s)",name,playerid, text); SendAdminMessage(COLOR_LIGHTBLUE, string); } new playercash; new victimteam = gTeam[playerid]; new Float:px,Float:py,Float:pz; new killerteam = gTeam[killerid]; gPlayerSpawned[playerid] = 0; if(Decoding[playerid] == 1) { Decoding[playerid] = 0; KillTimer(DecoderTimer); HideDecoder(playerid); SCM(playerid, COLOR_NICERED, "Izasli ste iz vozila, dekodiranje je stopirano!"); decodecode = 0; Decoder = 0; } if(IsInBus[playerid] == 1) { IsInBus[playerid] = 0; KillTimer(Timer1[playerid]); KillTimer(Timer2[playerid]); } if(PlayerInfo[playerid][pAdminDuty] >= 1) { PlayerInfo[playerid][pAdminDuty] = 0; } GetPlayerPos(playerid, px, py, pz); if(PlayerInfo[killerid][pMedalja9] == 0 && PlayerInfo[killerid][pKills] == 1) { TextDrawSetString(Textdraw64[killerid],"Cestitamo! ~n~~n~Osvojili ste novu medalju ~n~~b~Newbie Killer (9) ~n~~n~~w~osvojili ste ~g~$100"); ShowMedalja(killerid); SafeGivePlayerMoney(killerid,100); PlayerInfo[killerid][pMedalja9] = 1; } if(PlayerInfo[killerid][pMedalja10] == 0 && PlayerInfo[killerid][pKills] == 75) { TextDrawSetString(Textdraw64[killerid],"Cestitamo! ~n~~n~Osvojili ste novu medalju ~n~~b~Serial Killer (10) ~n~~n~~w~osvojili ste ~g~$250"); ShowMedalja(killerid); SafeGivePlayerMoney(killerid,250); PlayerInfo[killerid][pMedalja10] = 1; } if(PlayerInfo[killerid][pMedalja11] == 0 && PlayerInfo[killerid][pKills] == 150) { TextDrawSetString(Textdraw64[killerid],"Cestitamo! ~n~~n~Osvojili ste novu medalju ~n~~b~Assasin (11) ~n~~n~~w~osvojili ste ~g~$500"); ShowMedalja(killerid); SafeGivePlayerMoney(killerid,500); PlayerInfo[killerid][pMedalja11] = 1; } if(gPlayerUsingLoopingAnim[playerid]) { gPlayerUsingLoopingAnim[playerid] = 0; TextDrawHideForPlayer(playerid,txtAnimHelper); } if(WantedPoints[playerid] > 0) { new dstring[128]; new wanted = WantedPoints[playerid]; new diecash = 0; while(WantedPoints[playerid] > 0) { diecash += 500; WantedPoints[playerid] --; } format(dstring, sizeof(dstring), "Izgubili ste $%d zato sto ste umrli sa %d Wanted Poena.", diecash, wanted); SCM(playerid, COLOR_LIGHTBLUE, dstring); SafeGivePlayerMoney(playerid, - diecash); PlayerInfo[playerid][pWantedDeaths] += 1; } if(PlayerInfo[playerid][pRegularRank] > 0) { SafeSetPlayerHealth(playerid, 100.0); } else { SafeSetPlayerHealth(playerid, 50.0); } gPlayerSpawned[playerid] = 1; SafeTime[playerid] = 60; Checked[playerid] = 1; PlayerGotSpottedRecently[playerid] = 1; SetTimerEx("ResetAcWarn",20000,false, "i", playerid); if(killerid != 255) { if(GetPlayerState(killerid) == 2) { if(ProxDetectorS(20, killerid, playerid)) { if(!IsPlayerInAnyVehicle(playerid)) { if(PlayerInfo[killerid][pMember] == 1||PlayerInfo[killerid][pLeader] == 1||PlayerInfo[killerid][pMember] == 2||PlayerInfo[killerid][pLeader] ==2) { SCM(killerid, COLOR_LIGHTBLUE, "To je bilo drive-by ubistvo. Ne zloupotrebljavajte to."); return 1; } SetPlayerCriminalEx(killerid,255,"Manslaughter"); return 1; } } } } if(reason == 22) { if(PlayerInfo[killerid][pPistSkill] >= 0 && PlayerInfo[killerid][pPistSkill] <= 1000) { PlayerInfo[killerid][pPistSkill] += 2; SetPlayerSkills(killerid); } } if(reason == 23) { if(PlayerInfo[killerid][pSilenSkill] >= 0 && PlayerInfo[killerid][pSilenSkill] <= 1000) { PlayerInfo[killerid][pSilenSkill] += 2; SetPlayerSkills(killerid); } if(PlayerInfo[killerid][pMedalja0] == 0) { TextDrawSetString(Textdraw64[killerid],"Cestitamo! ~n~~n~Osvojili ste novu medalju ~n~~b~Silent Kill (0) ~n~~n~~w~osvojili ste ~g~$200 ~w~and ~p~50+ of ~y~Silenced Pistol Skill"); ShowMedalja(killerid); PlayerInfo[killerid][pSilenSkill] += 50; SafeGivePlayerMoney(killerid,200); PlayerInfo[killerid][pMedalja0] = 1; } } if(reason == 24) { if(PlayerInfo[killerid][pDesertSkill] >= 0 && PlayerInfo[killerid][pDesertSkill] <= 1000) { PlayerInfo[killerid][pDesertSkill] += 2; SetPlayerSkills(killerid); } } if(reason == 25) { if(PlayerInfo[killerid][pShotgSkill] >= 0 && PlayerInfo[killerid][pShotgSkill] <= 1000) { PlayerInfo[killerid][pShotgSkill] += 2; SetPlayerSkills(killerid); } } if(reason == 26) { if(PlayerInfo[killerid][pSawnSkill] >= 0 && PlayerInfo[killerid][pSawnSkill] <= 800) { PlayerInfo[killerid][pSawnSkill] += 2; SetPlayerSkills(killerid); } } if(reason == 27) { if(PlayerInfo[killerid][pCombSkill] >= 0 && PlayerInfo[killerid][pCombSkill] <= 1000) { PlayerInfo[killerid][pCombSkill] += 2; SetPlayerSkills(killerid); } } if(reason == 28 || reason == 32) { if(PlayerInfo[killerid][pUziSkill] >= 0 && PlayerInfo[killerid][pUziSkill] <= 800) { PlayerInfo[killerid][pUziSkill] += 2; SetPlayerSkills(killerid); } } if(reason == 29) { if(PlayerInfo[killerid][pSmgSkill] >= 0 && PlayerInfo[killerid][pSmgSkill] <= 1000) { PlayerInfo[killerid][pSmgSkill] += 2; SetPlayerSkills(killerid); } } if(reason == 30) { if(PlayerInfo[killerid][pAkSkill] >= 0 && PlayerInfo[killerid][pAkSkill] <= 1000) { PlayerInfo[killerid][pAkSkill] += 2; SetPlayerSkills(killerid); } } if(reason == 31) { if(PlayerInfo[killerid][pM4Skill] >= 0 && PlayerInfo[killerid][pM4Skill] <= 1000) { PlayerInfo[killerid][pM4Skill] += 2; SetPlayerSkills(killerid); } } if(gPlayerCheckpointStatus[playerid] > 4 && gPlayerCheckpointStatus[playerid] < 11) { DisablePlayerCheckpoint(playerid); gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE; } new caller = Mobile[playerid]; if(caller != 255) { if(caller < 255) { SCM(caller, COLOR_GRAD2, "** Veza se prekinula...."); CellTime[caller] = 0; CellTime[playerid] = 0; Mobile[caller] = 255; } Mobile[playerid] = 255; CellTime[playerid] = 0; } ClearCrime(playerid); if(GettingCK[playerid] < 999) { if(IsPlayerConnected(killerid)) { if(OnCK[killerid] < 999) { new killer[MAX_PLAYER_NAME]; new dier[MAX_PLAYER_NAME]; GetPlayerName(playerid, dier, sizeof(dier)); GetPlayerName(killerid, killer, sizeof(killer)); format(string, sizeof(string), "* %s has performed a Character Kill on you, you aren't able to play with this Character anymore.",killer); SCM(playerid, COLOR_LIGHTRED, string); format(string, sizeof(string), "** %s has Character Killed %s **",killer,dier); CKLog(string); BroadCast(COLOR_LIGHTRED, string); PlayerInfo[playerid][pCK] = 1; if(GettingCK[playerid] < 999) { GettingCK[playerid] = 999; } else if(OnCK[playerid] < 999) { OnCK[playerid] = 999; } if(GettingCK[killerid] < 999) { GettingCK[killerid] = 999; } else if(OnCK[killerid] < 999) { OnCK[killerid] = 999; } KickPlayer[playerid] = 1; } } } if(PlayerInfo[playerid][pHeadValue] > 0) { if(IsPlayerConnected(killerid)) { if(gTeam[killerid] == 10 || PlayerInfo[killerid][pLeader] == 8) { if(GoChase[killerid] == playerid) { //ConsumingMoney[killerid] = 1; new killer[MAX_PLAYER_NAME]; GetPlayerName(killerid, killer, sizeof(killer)); SafeGivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]); format(string,128,"<< Hitman %s je ispunio ugovor i ubio %s Zarada: $%d >>",killer,name,PlayerInfo[playerid][pHeadValue]); SendFamilyMessage(8, COLOR_LIGHTBLUE, string); PlayerInfo[playerid][pHeadValue] = 0; GotHit[playerid] = 0; GetChased[playerid] = 999; GoChase[killerid] = 999; } } } } if(victimteam >= 4) { if(IsPlayerConnected(killerid)) { //new killer[MAX_PLAYER_NAME]; //GetPlayerName(killerid, killer, sizeof(killer)); new slice = 100; //$100 playercash = GetPlayerMoney(playerid); if(gTeam[killerid] != 2) { WantedPoints[killerid] += 2; } //+ 2 wanted points if(SafeTime[playerid] <= 0) { if(gTeam[killerid] != gTeam[playerid]) { if(GetPlayerState(killerid) == 1) { PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 2; } else { PlayerInfo[killerid][pKills]++; } PlayerInfo[playerid][pKills]--; } } if(((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill) || (gTeam[killerid] == gTeam[playerid] && gTeam[playerid] != 4)) { slice = 0; } if(((gTeam[killerid]) != 4) && ((gTeam[killerid]) == gTeam[playerid]))//no team kill { slice = 0; } if(playercash > 0) { SafeGivePlayerMoney(playerid, -slice); } else { slice = slice+500; } //SafeGivePlayerMoney(killerid, slice); //GameTextForPlayer(playerid, dmessage, 5000, 2); PlayerPlaySound(killerid, 1083, 0.0, 0.0, 0.0); if(((gTeam[killerid]) == 3) && reason != 49) { SetPlayerCriminalEx(killerid,255, "Prvostepeno Ubistvo"); } else if(((gTeam[killerid]) == 3) && reason == 49) { SetPlayerCriminalEx(killerid,255, "Hit And Run"); } } } else if (victimteam == 2) { if(IsPlayerConnected(killerid)) { //new killer[MAX_PLAYER_NAME]; //GetPlayerName(killerid, killer, sizeof(killer)); // Cop kill PlayerInfo[playerid][pKills]--; if (gTeam[killerid] == 2)//cops kill cop { //format(string,128,".: Officer %s murdered Officer %s (%s) and was sued for $%d :.",killer,name,deathreason,suecost); PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0); SafeGivePlayerMoney(killerid, -suecost); SafeGivePlayerMoney(playerid, suecost+100);//+100pays hospital bill } else { //format(string,128,".: %s murdered Officer %s (%s) :.",killer,name,deathreason); } if (gTeam[killerid] >= 3) { WantedPoints[killerid] += 2; //+ 2 wanted points if(reason != 49) { SetPlayerCriminal(killerid,255, "First Degree Murder"); } else if (reason == 49) { SetPlayerCriminal(killerid,255, "Hit And Run"); } } if(gTeam[killerid] >= 5 && SafeTime[playerid] <= 0) { if(GetPlayerState(killerid) == 1) { PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills]+2; } else { PlayerInfo[killerid][pKills]++; } WantedPoints[killerid]+=2; } //BroadCast(COLOR_RED, string); } } else if(victimteam == 3) { if(IsPlayerConnected(killerid)) { //new killer[MAX_PLAYER_NAME]; //GetPlayerName(killerid, killer, sizeof(killer)); // Civ kill if((gTeam[killerid]) == 2)//cops kill civ { if(WantedLevel[playerid] < 1) { //format(string,128,".: Officer %s murdered %s (%s) and was sued for $%d :.",killer,name,deathreason,suecost); PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0); SafeGivePlayerMoney(killerid, -suecost); SafeGivePlayerMoney(playerid, suecost+10);//+100pays hospital bill } } else { //format(string,128,".: %s murdered %s (%s) :.",killer,name,deathreason); WantedPoints[killerid] += 2; } if(((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason != 49) { SetPlayerCriminalEx(killerid,255, "Prvostepeno Ubistvo"); } else if(((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason == 49) { SetPlayerCriminalEx(killerid,255, "Hit And Run"); } //BroadCast(COLOR_RED, string); } } else if(victimteam == 1) { if(IsPlayerConnected(killerid)) { //new killer[MAX_PLAYER_NAME]; //GetPlayerName(killerid, killer, sizeof(killer)); // Civ kill if((gTeam[killerid]) == 2)//cops kill civ { //format(string,128,".: Officer %s murdered Paramedic %s (%s) and was sued for $%d :.",killer,name,deathreason,suecost); PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0); SafeGivePlayerMoney(killerid, -suecost); SafeGivePlayerMoney(playerid, suecost+10);//+100pays hospital bill } else if((gTeam[killerid]) == 1)//med kill civ { //format(string,128,".: Paramedic %s murdered %s (%s) and was sued for $%d :.",killer,name,deathreason,suecost); PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0); SafeGivePlayerMoney(killerid, -suecost); SafeGivePlayerMoney(playerid, suecost+10);//+100pays hospital bill } else { //format(string,128,".: %s murdered %s (%s) :.",killer,name,deathreason); } if(((gTeam[killerid]) == 4) && reason != 49) { SetPlayerCriminalEx(killerid,255, "Prvostepeno Ubistvo"); } else if(((gTeam[killerid]) == 3) && reason == 49) { SetPlayerCriminalEx(killerid,255, "Hit And Run"); } //BroadCast(COLOR_RED, string); } } if(victimteam >= 3 && WantedPoints[playerid] > 0 && killerteam == 2) { SetPlayerFree(playerid,killerid, "Got Killed"); } if(BusrouteEast[playerid][0] != 0 || BusrouteWest[playerid][0] != 0) { if(BusrouteEast[playerid][0] != 0) BusrouteEnd(playerid, BusrouteEast[playerid][1]); else if(BusrouteWest[playerid][0] != 0) BusrouteEnd(playerid, BusrouteWest[playerid][1]); else BusrouteEnd(playerid, 0); } if(FarmerVar[playerid] != 0) { FarmerVar[playerid] = 0; DisablePlayerCheckpoint(playerid); } if(DrugFarmerVar[playerid] != 0) { DrugFarmerVar[playerid] = 0; DisablePlayerCheckpoint(playerid); } if(SmugglerWork[playerid] != 0) { SmugglerWork[playerid] = 0; DisablePlayerCheckpoint(playerid); } SetRealMoney(playerid, ScriptMoney[playerid]); SetPlayerColor(playerid,0xBBBBBB00); SafeResetPlayerWeapons(playerid); if(IsBeingSpeced[playerid] == 1)//If the player being spectated, dies, then turn off the spec mode for the spectator. { TogglePlayerSpectating(spectatorid[playerid],0);// This justifies what's above, if it's not off then you'll be either spectating your connect screen, or somewhere in blueberry (I don't know why) } if(usingcarwash == playerid) { SetVehicleToRespawn(GetPlayerVehicleID(playerid)); usingcarwash = -1; UpdateDynamic3DTextLabelText(entrancetext, 0x008B00FF, "Niko trenutno ne pere kola.\nCena: $150 (/carwash)"); } if((PlayerInfo[playerid][pMember] == 0 && PlayerInfo[playerid][pLeader] == 0 || PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4 || PlayerInfo[playerid][pMember] == 9 || PlayerInfo[playerid][pMember] == 17 || PlayerInfo[playerid][pLeader] == 17 || PlayerInfo[playerid][pMember] == 10 || PlayerInfo[playerid][pLeader] == 10 || PlayerInfo[playerid][pMember] == 7) && GoChase[killerid] != playerid) { if((PlayerInfo[playerid][pWantedLevel] >= 1 || WantedPoints[playerid] >= 1 || WantedLevel[playerid] >= 1 || PlayerInfo[playerid][pWanted] >= 1) && IsACop(killerid) || PlayerInfo[killerid][Admin] >= 1338) { return 1; } TogglePlayerControllable(killerid, 0); PlayerInfo[killerid][pWeaponReset] = 1; ResetPlayerWeapons(killerid); SafeResetPlayerWeapons(killerid); if(PlayerInfo[playerid][pLevel] == 1) { PlayerInfo[killerid][pJailed] = 1; PlayerInfo[killerid][pJailTime] += 600; } DMName[killerid] = name2; SetTimerEx("kicktimer",3000,false,"i",killerid); } SendClientMessage(playerid, 0xFF0000AA, "Umrli ste ali vas wanted level ostaje.."); killerid = INVALID_PLAYER_ID; return 1; }