debug problem
#1

here is the bug

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)

herer is onplayerdisconnect
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;
}

Reply
#2

[quote] for quotes, [code] for code. How hard can it be? Yes, I know the buttons are confusing. But I presume you were taught how to read.
Reply
#3

Make sure you have checked if the bounty_placed_by player has left or not.

Like
Quote:

PlayerInfo[PlayerInfo[playerid][Bounty_placed_by]][pCash] += PlayerInfo[playerid][Bounty_price];

Change it to

Quote:

if (PlayerInfo[playerid][Bounty_placed_by] != INVALID_PLAYER_ID)
PlayerInfo[PlayerInfo[playerid][Bounty_placed_by]][pCash] += PlayerInfo[playerid][Bounty_price];

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)