04.05.2017, 16:35
here is the bug
herer is onplayerdisconnect
Quote:
[18:23:26] [debug] Run time error 4: "Array index out of bounds" [18:23:26] [debug] AMX backtrace: [18:23:26] [debug] #0 00141c68 in ?? (-1) from tetete.amx [18:23:26] [debug] #1 00141ba0 in ?? (-1, -1) from tetete.amx [18:23:26] [debug] #2 00141950 in ?? (0, 2) from tetete.amx [18:23:26] [debug] #3 0007cc28 in public _y_utils_OnPlayerDisconnect (0, 2) from tetete.amx [18:23:26] [debug] #4 0000fa44 in public SSCANF_OnPlayerDisconnect (0, 2) from tetete.amx [18:23:26] [debug] #5 0000095c in ?? (0, 2, 1, 0, 0, 8, 0, 2, 4, 0, ... <1073741813 arguments>) from tetete.amx [18:23:26] [debug] #6 00011b88 in public OnPlayerDisconnect (0, 2) from tetete.amx [18:23:26] [debug] #7 native Kick () from samp-server.exe [18:23:26] [debug] #8 0004ba6c in public KickExTimer (0) from tetete.amx [18:23:26] [part] Maldo has left the server (0:2) |
Quote:
public OnPlayerDisconnect(playerid, reason) { new string[256]; for(new i=0; i<MAX_PLAYERS; i++) { if(i != INVALID_PLAYER_ID) { if(PlayerInfo[i][BountyOnHead]) { if(PlayerInfo[i][Bounty_placed_by] == playerid) { PlayerInfo[playerid][pCash] += PlayerInfo[i][Bounty_price]; GiveCash(playerid,PlayerInfo[i][Bounty_price]); format(string,sizeof(string),"The Hit Contract On %s (%d) Has Been Cancelled (Hit Placer Disconnected).",PlayerInfo[i][pName],i); SendClientMessageToAll(COLOR_SERVER_HELP_MSG,strin g); format(string,sizeof(string),"The ~r~Hit Contract ~w~on ~b~%s (%d) ~w~For ~g~$%d ~w~Has Been ~r~Cancelled ~b~(Player Disconnected).",PlayerInfo[i][pName],i); SendClientOnScreenTextToAll(string); PlayerInfo[i][BountyOnHead] =false; PlayerInfo[i][Bounty_placed_by] =0; PlayerInfo[i][Bounty_price] =0; PlayerInfo[i][Bounty_replaced] =false; } } } } if(PlayerInfo[playerid][BountyOnHead]) { PlayerInfo[PlayerInfo[playerid][Bounty_placed_by]][pCash] += PlayerInfo[playerid][Bounty_price]; format(string,sizeof(string),"The Hit Contract On %s (%d) Has Been Cancelled (Player Disconnected).",PlayerInfo[playerid][pName],playerid); SendClientMessageToAll(COLOR_SERVER_HELP_MSG,strin g); format(string,sizeof(string),"The ~r~Hit Contract ~w~On ~b~%s (%d) ~w~For ~g~$%d ~w~Has Been ~r~Cancelled ~b~(Player Disconnected).",PlayerInfo[playerid][pName],playerid); SendClientOnScreenTextToAll(string); PlayerInfo[playerid][BountyOnHead] =false; PlayerInfo[playerid][Bounty_placed_by] =0; PlayerInfo[playerid][Bounty_price] =0; PlayerInfo[playerid][Bounty_replaced] =false; } SetPlayerColor(playerid, COLOR_DEAD); PlayersOnline2 --; PlayerInfo[playerid][Potd] = 0; PlayerInfo[playerid][Kotd] = 0; PlayerInfo[playerid][Hotd] = 0; PlayerInfo[playerid][Wpotd] = 0; PlayerInfo[playerid][Rotd] = 0; PlayerInfo[playerid][Fotd] = 0; LastAttack[playerid] = INVALID_PLAYER_ID; ResetPlayerWeapons(playerid); DeleteNeon(playerid); House_ID[playerid] = -1; House_Inside[playerid] = -1; KillTimer(Fishing_Timer1[playerid]); KillTimer(Fishing_Timer2[playerid]); Fishing[playerid]=0; CurrentlyFishing[playerid] = 0; if(InDuel[playerid] == 1) { new msg[128]; format(msg, sizeof(msg), "Duel Between %s (%d) and %s (%d) Has Ended. Reason: {ff0000}Disconnected!", PlayerInfo[DuelPlayer1][pName], DuelPlayer1, PlayerInfo[DuelPlayer2][pName], DuelPlayer2); SendClientMessageToAll(COLOR_SERVER_HELP_MSG, msg); Progress = 0; InDuel[DuelPlayer1] = 0; InDuel[DuelPlayer2] = 0; KillTimer(DUEL_TIMER); SpawnPlayer(DuelPlayer1); SetPlayerVirtualWorld(DuelPlayer1, 0); SetPlayerVirtualWorld(DuelPlayer1, 0); SpawnPlayer(DuelPlayer2); SetPlayerVirtualWorld(DuelPlayer2, 0); SetPlayerVirtualWorld(DuelPlayer2, 0); } if(Caged[playerid] == 1) { Caged[playerid] = 0; DestroyObject(Cage); UnCagePlayer(playerid); } if(flag[playerid] == 1) { new str[128]; format(str,sizeof(str),"[Capture The Flag]: %s (%d) Has Dropped The Flag! - (Quit)",PlayerInfo[playerid][pName], playerid); flag[playerid] = 0; ctpup = CreatePickup(2914,1,1340.0812,-1267.0023,372.1815,0); for(new i = 0; i < MAX_PLAYERS; i++) { if(pctp[i] == 1) { format(string, sizeof(string), "~y~%s (%d) ~w~Has Dropped The ~p~Flag ~w~- (Quit)", PlayerInfo[playerid][pName], playerid); SendClientOnScreenTextToAll(string); SendClientMessage(i,COLOR_GREEN,str); } } } if (PlayerInfo[playerid][pMission] == MISSION_TYPE_BANK_ROBBERY_1) { for (new j = 0; j < sizeof(PickupInfo); j++) { if (PickupData[j][pkp_RobberId] > -1) { PickupData[j][pkp_RobberId] = -1; } } } if (PlayerInfo[playerid][pMission] == MISSION_TYPE_BANK_ROBBERY_2) { format(string, sizeof(string), "~p~BANK ROBBER: ~y~%s (%d) ~w~Has Been Disconnected~w~.", PlayerInfo[playerid][pName], playerid); SendClientOnScreenTextToAll(string); for (new j = 0; j < sizeof(PickupInfo); j++) { if (PickupData[j][pkp_RobberId] > -1) { PickupData[j][pkp_RobberId] = -1; } } } if (!IsPlayerNPC(playerid)) { switch (reason) { case 0:format(string, sizeof(string), "* %s (%i) Has Left The Server (Timeout).",PlayerInfo[playerid][pName],playerid); case 1:format(string, sizeof(string), "* %s (%i) Has Left The Server (Quit).",PlayerInfo[playerid][pName],playerid); case 2:format(string, sizeof(string), "* %s (%i) Has Left The Server (Kicked).",PlayerInfo[playerid][pName],playerid); } } SendClientMessageToAll(COLOR_DEAD, string); if(RandomID == playerid) { RandomID = -1; RandomMoney =0; NoBonusPlayer = 1; SendClientMessage(playerid, COLOR_WHITE, "* {00B9FF}BONUS: {FF0000}Bonus Player {FFFFFF}Has Been Disconnected."); } KillTimer(DaysAliveTimer[playerid]); if(StatsSaveOnDisConnect[playerid]== 1) { if(fexist(UserPath(playerid))) { OnSavePlayerStats(playerid); StatsSaveOnDisConnect[playerid] = 0; format(string,sizeof(string),"<SAVED> Stats For Account: %s (%d) Has Been Saved Successfully.", PlayerInfo[playerid][pName], playerid); print(string); print("SAVING CALLED"); } } InDuel[playerid] = 0; LeaveGroup(playerid, 2); KillTimer(STATS_SAVE[playerid]); KillTimer(Antispam_Timer[playerid]); DirtyWeaponDetected[playerid] = 0; KillStreakCount[playerid] = 0; ON_DRUGS[playerid] = 0; DrugsTaken[playerid] = 0; AD_PILL_USED[playerid] = 0; PlayerInfo[playerid][pDrugsTime]=0; PlayerInfo[playerid][pMuted] = 0; PlayerInfo[playerid][pAdminlevel] = 0; PlayerInfo[playerid][pDonator] = 0; PlayerInfo[playerid][pCash] = 0; PlayerInfo[playerid][pKills] = 0; PlayerInfo[playerid][pDeaths] = 0; PlayerInfo[playerid][pMuted] = 0; PlayerInfo[playerid][pSkin] = -1; PlayerInfo[playerid][pSpawned] = 0; PlayerInfo[playerid][pLogged] = 0; PlayerInfo[playerid][pCustomDeath] = 0; PlayerInfo[playerid][pTextdraw] = 0; PlayerInfo[playerid][pPills] = 0; PlayerInfo[playerid][pDrugs] = 0; PlayerInfo[playerid][pHiding] = 0; PlayerInfo[playerid][pAllowChangePassTime] = 0; PlayerInfo[playerid][pDuelsWon] = 0; PlayerInfo[playerid][pDuelsLost] = 0; PlayerInfo[playerid][pAnimation] = 0; PlayerInfo[playerid][pTeleTime] = 0; PlayerInfo[playerid][pWaveTime] = 0; PlayerInfo[playerid][pFoffTime] = 0; PlayerInfo[playerid][pCryTime] = 0; PlayerInfo[playerid][pCPRTime] = 0; PlayerInfo[playerid][pDedTime] = 0; PlayerInfo[playerid][pMasterTime] = 0; PlayerInfo[playerid][pBitchSlapTime] = 0; PlayerInfo[playerid][pRapeTime] = 0; PlayerInfo[playerid][pFartTime] = 0; PlayerInfo[playerid][pFlashTime] = 0; PlayerInfo[playerid][pComplainTime] = 0; PlayerInfo[playerid][pSitTime] = 0; PlayerInfo[playerid][pMournTime] = 0; PlayerInfo[playerid][pKickTime] = 0; PlayerInfo[playerid][pPunchTime] = 0; PlayerInfo[playerid][pHideTime] = 0; PlayerInfo[playerid][pPukeTime] = 0; PlayerInfo[playerid][pPCDTime] = 0; PlayerInfo[playerid][pArmorTime] = 0; PlayerInfo[playerid][pPissTime] = 0; PlayerInfo[playerid][pYesTime] = 0; PlayerInfo[playerid][pPointTime] = 0; PlayerInfo[playerid][pNoTime] = 0; PlayerInfo[playerid][pWankTime] = 0; PlayerInfo[playerid][pStopTime] = 0; PlayerInfo[playerid][pComeTime] = 0; PlayerInfo[playerid][pKissTime] = 0; PlayerInfo[playerid][pFollowTime] = 0; PlayerInfo[playerid][pRideTime] = 0; PlayerInfo[playerid][pScratchTime] = 0; PlayerInfo[playerid][pAskTime] = 0; PlayerInfo[playerid][pTimesRaped] = 0; PlayerInfo[playerid][pBonusKills] = 0; PlayerInfo[playerid][pKillStreaks] = 0; PlayerInfo[playerid][pFlashKills] = 0; PlayerInfo[playerid][pRegular] = 0; PlayerInfo[playerid][pMoneyBags] = 0; PlayerInfo[playerid][pNoPM] = 0; PlayerInfo[playerid][pDingSound] = 0; PlayerInfo[playerid][pShowDamage] = 0; PlayerInfo[playerid][pChastityBelt] = 0; PlayerInfo[playerid][pWeaponHolder] = 0; Warns[playerid] =0; InSniper[playerid] = 0; InDMS[playerid] = 0; InMDM[playerid] = 0; InSkZone[playerid] = 0; DbZone[playerid] = 0; Chainsaw[playerid] = 0; HeadShot[playerid] = 0; BallasTeam[playerid] = 0; GroveTeam[playerid] = 0; DmFactory[playerid] = 0; GreenTeam[playerid] = 0; RedTeam[playerid] = 0; Cbug[playerid] = 0; Deagle[playerid] = 0; for(new i; i < MAX_PLAYERS; i++) { PlayerIgnoreList[playerid][i] = 0; PlayerIgnoreList[i][playerid] = 0; } for (new j = 0; j < sizeof(PickupInfo); j++) { if (PickupData[j][pkp_RobberId] > -1) { PickupData[j][pkp_RobberId] = -1; } } return 1; } |