Help [+rep] [crash]
#1

What is that
Код:
[16:39:54] [debug] Run time error 4: "Array index out of bounds"
[16:39:54] [debug] Accessing element at negative index -1
[16:39:54] [debug] AMX backtrace:
[16:39:54] [debug] #0 00009014 in public SSCANF_OnPlayerDisconnect (playerid=1, reason=1) at C:\Users\MaHdy\Desktop\DuelSystem.pwn:91
[16:39:54] [debug] #1 00002604 in public OnPlayerDisconnect (playerid=1, reason=1) at C:\Users\MaHdy\Desktop\SPA Orginal Build 2\pawno\include\sscanf2.inc:229
[16:39:54] [part] Mahdi has left the server (1:1)
[16:39:55] [chat] [Ry[A]n]: x8g[uo1sang
OnPlayerDisconnect
Код:
public OnPlayerDisconnect(playerid, reason)
{
	new duelid = GetPVarInt(playerid, "DuelDID");
	new dueler, dueler2;
	dueler = dInfo[duelid][Inviter];
	dueler2 = dInfo[duelid][Invitee];
	if(InDuel[dueler] == 1 && InDuel[dueler2] == 1)
	{
	    new sReason[15];
	    switch(reason)
	    {
	        case 0: format(sReason, sizeof(sReason), "Timeout");
	        case 1: format(sReason, sizeof(sReason), "Leaving");
	        case 2: format(sReason, sizeof(sReason), "Kicked");
	    }

		new gBet = dInfo[duelid][BetMoney];
		new gDuelSpot = dInfo[duelid][Location];

		new Slot[MAX_DUEL_WEPS];
		for(new i=0; i < MAX_DUEL_WEPS; i++) Slot[i] = dWeps[duelid][i];

		new winner, loser;
		if(dueler == playerid)
		{
		    winner = dueler2;
		    loser = dueler;
		}
		else if(dueler2 == playerid)
		{
		    winner = dueler;
		    loser = dueler2;
 		}
		Money_GivePlayerMoney(winner, gBet);

		new wepstr[200];
		for(new x=0; x < MAX_DUEL_WEPS; x++)
		{
		    if(IsValidWeapon(Slot[x])) format(wepstr, sizeof(wepstr), "%s%s ", wepstr, weaponNames(Slot[x]));
		}

		new str[150];
		format(str, sizeof(str), "Duel | %s has left the server during a duel with %s (Reason: %s)", pName(loser), pName(winner), sReason);
		SendClientMessageToAll(COLOR_DUEL, str);
		format(str, sizeof(str), "Duel | %s won the duel against %s (Weapons %s) (Bet: $%d) (%s [ID %d])", pName(winner), pName(loser), wepstr, gBet, ReturnDuelNameFromID(gDuelSpot), gDuelSpot);
		SendClientMessageToAll(COLOR_DUEL, str);

		SetPlayerArmour(winner, 0);
		RemoveFromDuel(loser);
		RemoveFromDuel(winner);
		ResetDuelInformation(duelid);
		RemoveDuelInvite(dueler2, dueler);
		SpawnPlayer(winner);
		SetPlayerVirtualWorld(winner, 0);
		TotalDuels--;
	}

	TextDrawDestroy(SpecTD[playerid][0]);
	TextDrawDestroy(SpecTD[playerid][1]);
	InDuel[playerid] = 0;
	KillTimer(DuelTimer[playerid]);
	return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)