katursis / Pawn.CMD

🚀 Plugin-powered command processor for SA:MP server
MIT License
119 stars 13 forks source link

Array index out of bounds #30

Closed Fairuz-Afdhal closed 3 years ago

Fairuz-Afdhal commented 3 years ago

I don't know what is wrong with this..

{
    new targetGang, players, upto, bet, g = p_GangID[ playerid ];
    printf("checks");
    if ( ! IsPlayerGangLeader( playerid, g ) ) return SendError(playerid, "You are not the gang leader." ), printf("checks 2");
    else if ( sscanf( params, "dddD(0)", targetGang, players, upto, bet ) ) return SendUsage(playerid, "/requestwar [GANG_ID] [PLAYERS] [KILLS] [BET ( optional )]"), printf("checks 1");
    else if ( upto < 5 || upto > 20) return SendError(playerid, "Kills must not lower than 5 and not greater that 20"), printf("checks 3");
    else if ( targetGang == g) return SendError(playerid, "You can't request a gang war with your own gang!"), printf("checks 4");
    else if ( targetGang < 0 || targetGang >= MAX_GANGS) return SendError( playerid, "Invalid Gang ID." ), printf("checks 5");
    else if ( !Iter_Contains( gangs, targetGang) ) return SendError(playerid, "Invalid Gang ID."), printf("checks 6");
    else if ( GetOnlineGangMembers( targetGang ) < players) return SendError(playerid, "Gang doesn't have that players online"), printf("checks 7");
    else if ( GetOnlineGangMembers( g ) < players) return SendError(playerid, "Your gang doesn't have that players online"), printf("checks 8");
    else if ( gettime() - h_gangData[ g ][ g_gangInviteTick ] < 120) return SendError(playerid, "You're waiting an invite / someone invited you");
    else if ( gettime() - h_gangData[ targetGang ][ g_gangInviteTick] < 120 ) return SendError(playerid, "Gang is currently waiting a request");
    else if ( g_gangData[ g ][ E_BANK ] < bet) return SendError(playerid, "You don't have enough money in your Gang bank to place that bet!");
    {

        printf("if checkes");
        SendRequestToGang( g, targetGang);
        format(szNormalString, sizeof(szNormalString), "[GWINFO]: Players Needed: %d, Kills: %d, bet: %d", players, upto, bet);
        SendClientMessage(GetGangLeader( targetGang ), COLOR_GREEN, szNormalString);
        format(szNormalString, sizeof(szNormalString), "[GWINFO]: You requested a war to %s", ReturnGangName(targetGang));
        SendClientMessage(playerid, COLOR_GREEN, szNormalString);
        h_gangData[ g ][g_gangBet] = bet;
        h_gangData[ g ][g_gangUpToMem] = upto;
        h_gangData[targetGang][g_gangInviteTick] = gettime();
        h_gangData[targetGang][g_gangIdRequested] = g;
        h_gangData[targetGang][g_gangMembersRequired] = players;
        h_gangData[ g ][g_gangMembersRequired] = players;
        h_gangData[ g ][g_gangInviteTick] = gettime();
    }
    return 1;
}

server_log.txt

[17:05:32] [Pawn.CMD] HandleCommand: Call: amx_Exec(P6tagAMX:0x8c9bb20, Pi:0xffded37c, i:929): Array index out of bounds (4)

The error occurs when I enter all sscanf parameters, any ideas?

canciftci commented 3 years ago

How did you fix this, can you share the solution?

Fairuz-Afdhal commented 3 years ago

How did you fix this, can you share the solution?

No I couldn't fix this