Jump to content
  • 0

Problema run time error


Sealand123

Question

Problema intalnita (descriere):Pai am un gm care ruleaza mysql si imi da eroarea urmatoare
Ero(area / rile) / warning-(ul / urile):[22:20:49] [debug] Run time error 4: "Array index out of bounds"

[22:20:49] [debug]  Accessing element at index 65535 past array upper bound 499
[22:20:49] [debug] AMX backtrace:
[22:20:49] [debug] #0 0002577c in public OnPlayerDeath () from GameMode.amx

Liniile de cod / sursa / script-ul(obligatoriu):
Imagini / Video (optional):
Ati incercat sa rezolvati singur?:da

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
  • 0
  • 0

on player death

 

public OnPlayerDeath(playerid, killerid, reason)
{
    // ANTI FAKE KILL
    new time = gettime( ), stringfk[256];
    if(killerid ==  INVALID_PLAYER_ID)
    {
        switch( time - g_cleoData[ playerid ] [ E_FK_LASTDEATH ] )
        {
            case 0 .. 3:
            {
                g_cleoData[ playerid ] [ E_FK_DEATHSPAM ] ++;
                if( g_cleoData[ playerid ] [ E_FK_DEATHSPAM ] >= 3 )
                {
                    new sendersm[MAX_PLAYER_NAME];
                    GetPlayerName(playerid, sendersm, sizeof(sendersm));
                    format(stringfk, sizeof(stringfk), "Info: %s(%d) a fost dat afara de catre RBot, motiv: Fake Kill.", sendersm, playerid);
                       SendClientMessageToAll(COLOR_LIGHTRED, stringfk);
                     Kick(playerid);
                    return 1;
                }
            }
            default: g_cleoData[ playerid ] [ E_FK_DEATHSPAM ] = 0;
        }
        g_cleoData[ playerid ] [ E_FK_LASTDEATH ] = time;
    }

    Vestiar[playerid] = 0;
    if(IsPlayerConnected(playerid))
    {
        //
        new factionid[MAX_PLAYERS];
        if(PlayerInfo[killerid][pMember] != 0) factionid[killerid] = PlayerInfo[killerid][pMember];
        else if(PlayerInfo[killerid][pLeader] != 0) factionid[killerid] = PlayerInfo[killerid][pLeader];
        if(PlayerInfo[playerid][pMember] != 0) factionid[playerid] = PlayerInfo[playerid][pMember];
        else if(PlayerInfo[playerid][pLeader] != 0) factionid[playerid] = PlayerInfo[playerid][pLeader];

        if(War != 0)
        {
            new string[256];
            if(GetPlayerCash(playerid) > 300)
            {
                
                new sendername[MAX_PLAYER_NAME], sendernamen[MAX_PLAYER_NAME];
                GetPlayerName(killerid, sendername, sizeof(sendername));
                GetPlayerName(playerid, sendernamen, sizeof(sendernamen));
                GivePlayerCash(killerid, 300);
                GivePlayerCash(playerid, -300);
                GameTextForPlayer(playerid, "~r~-$300", 3000, 1);
                GameTextForPlayer(killerid, "~g~$300", 3000, 1);
                format(string, sizeof(string), "{a9c4e4}War: {FFFFFF}Ai fost omorat de {1580EA}%s{FFFFFF} si ai pierdut $300!", sendername);
                SendClientMessage(playerid, COLOR_WHITE, string);
                format(string, sizeof(string), "{a9c4e4}War: {FFFFFF}L-ai omorat pe {1580EA}%s{FFFFFF} si ai castigat $300!", sendernamen);
                SendClientMessage(killerid, COLOR_WHITE, string);
                WarStats1[killerid] ++;
                WarStats2[playerid] ++;
                if(WarStats1[killerid] > WarScore1)
                {
                    WarScore1 = WarStats1[killerid];
                    WarMan1 = killerid;
                }
                if(WarStats2[playerid] > WarScore2)
                {
                    if(WarMan1 != playerid)
                    {
                        WarScore2 = WarStats2[playerid];
                        WarMan2 = playerid;
                    }
                }
            }
            else
            {
                new sendername[MAX_PLAYER_NAME], sendernamen[MAX_PLAYER_NAME];
                GetPlayerName(killerid, sendername, sizeof(sendername));
                GetPlayerName(playerid, sendernamen, sizeof(sendernamen));
                GivePlayerCash(killerid, 300);
                GivePlayerCash(playerid, -300);
                GameTextForPlayer(playerid, "~r~-$300", 3000, 1);
                GameTextForPlayer(killerid, "~g~$300", 3000, 1);
                format(string, sizeof(string), "{a9c4e4}War: {FFFFFF}Ai fost omorat de catre {1580EA}%s{FFFFFF} si ai pierdut suma de $300!", sendername);
                SendClientMessage(playerid, COLOR_WHITE, string);
                format(string, sizeof(string), "{a9c4e4}War: {FFFFFF}L-ai omorat pe {1580EA}%s{FFFFFF} si ai primit suma de $300!", sendernamen);
                SendClientMessage(killerid, COLOR_WHITE, string);
            }
        }

        new name[MAX_PLAYER_NAME];
        new string[256];
        //new dmessage[128];
        //new deathreason[20];
        new victimteam;
        new Float:px,Float:py,Float:pz;
        new killerteam;

        victimteam = gTeam[playerid];
        killerteam = gTeam[killerid];
        gPlayerSpawned[playerid] = 0;
        GetPlayerName(playerid, name, sizeof(name));
        PlayerInfo[playerid][pLocal] = 255;
        GetPlayerPos(playerid, px, py, pz);
        if(IsACop(killerid) && PlayerInfo[playerid][pRobbingBank] == 1)
        {
            //new string[256];
            new sendernamerob[MAX_PLAYER_NAME], sendernamerob1[MAX_PLAYER_NAME];
            GetPlayerName(playerid, sendernamerob, sizeof(sendernamerob));
            GetPlayerName(killerid, sendernamerob1, sizeof(sendernamerob1));
            GivePlayerCash(killerid, 5000);
            format(string, sizeof(string), "{1580EA}Rob: {FFFFFF}Ai oprit jaful lui %s! Pentru asta, banca ti-a dat %d.", sendernamerob, 5000);
            SendClientMessage(killerid, COLOR_WHITE, string);
            format(string, sizeof(string), "{1580EA}Rob: {FFFFFF}%s a oprit jaful tau! Pentru asta, el a primit %d si tu ai pierdut %d.", sendernamerob1, 5000, 5000);
            SendClientMessage(playerid, COLOR_WHITE, string);
            GivePlayerCash(playerid, -5000);
        }
         if(WantedLevel[playerid] >= 1)
        {
            //new string[256];
            new price = WantedLevel[playerid] * 300;
            if(GetPlayerCash(playerid) > price)
            {
                format(string, sizeof(string), "~w~Suspectul a fost~r~omorat~n~Bonus~g~$%d", price);
                GameTextForPlayer(killerid, string, 5000, 1);
                ConsumingMoney[killerid] = 1;
                GivePlayerCash(killerid, price);
                PlayerPlaySound(killerid, 1058, 0.0, 0.0, 0.0);
                GivePlayerCash(playerid, - price);
            }
            PlayerInfo[playerid][pWantedDeaths] += 1;
            Update(playerid, pWantedDeathsx);
            PlayerInfo[playerid][pJailed] = 1;
            Update(playerid, pJailedx);
            PlayerInfo[playerid][pJailTime] = (WantedLevel[playerid])*(350);
            Update(playerid, pJailTimex);
            SetPlayerWantedLevel(playerid, 0);
             format(string, sizeof(string), "* Esti in inchisoare pentru %d secunde si ai pierdut $%d pentru ca te-a prins un politist.", PlayerInfo[playerid][pJailTime], price);
            SendClientMessage(playerid, COLOR_LIGHTRED, string);
            WantedPoints[playerid] = 0;
            WantedLevel[playerid] = 0;
            Update(playerid, pWantedx);
            //UndercoveredW[playerid] = 0;
            SpawnPlayer(playerid);
        }

        if(reason == 38)
        {
            new kstring[128];
            new kickname[MAX_PLAYER_NAME];
            if(IsPlayerConnected(killerid))
            {
                GetPlayerName(killerid, kickname, sizeof(kickname));
                format(string, 256, "AdmWarning: [%d]%s a omorat un jucator cu un minigun, verificati daca nu face fake kill.",killerid,kickname);
                ABroadCast(COLOR_YELLOW,string,1);
                printf("%s", kstring);
            }
        }
        
        if (gPlayerCheckpointStatus[playerid] > 4 && gPlayerCheckpointStatus[playerid] < 11)
        {
            DisablePlayerCheckpoint(playerid);
            gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
        }
        new caller = Mobile[playerid];
        if(caller != 255)
        {
            if(caller < 255)
            {
                SendClientMessage(caller,  COLOR_GRAD2, "    Apelul s-a incheiat brusc...");
                CellTime[caller] = 0;
                CellTime[playerid] = 0;
                Mobile[caller] = 255;
                TogglePlayerControllable(caller, 1);
            }
            Mobile[playerid] = 255;
            CellTime[playerid] = 0;
            TogglePlayerControllable(playerid, 1);
        }
        ClearCrime(playerid);
        if(PlayerPaintballing[playerid] != 0)
        {
            PlayerPaintballKills[killerid] ++;
            if(PlayerPaintballKills[killerid] > PaintballWinnerKills)
            {
                new killer[MAX_PLAYER_NAME];
                PaintballWinner = killerid;
                PaintballWinnerKills = PlayerPaintballKills[killerid];
                GetPlayerName(killerid, killer, sizeof(killer));
                for(new i = 0; i < MAX_PLAYERS; i++)
                {
                    if(IsPlayerConnected(i))
                    {
                        if(PlayerPaintballing != 0)
                        {
                            format(string, sizeof(string), "*    %s conduce cu %d fraguri.",killer,PaintballWinnerKills);
                            SendClientMessage(i, COLOR_WHITE, string);
                        }
                    }
                }
            }
            return 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));
                        GivePlayerCash(killerid, PlayerInfo[playerid][pHeadValue]);
                        format(string,128,"<< Hitman %s a terminat contractul pe %s si a primit $%d >>",killer,name,PlayerInfo[playerid][pHeadValue]);
                        SendFamilyMessage(8, COLOR_YELLOW, string);
                        PlayerInfo[playerid][pHeadValue] = 0;
                        Update(playerid, pHeadValuex);
                        undercover[killerid] = 0;
                         for(new i = 0; i < MAX_PLAYERS; i++)
                        {
                            ShowPlayerNameTagForPlayer(i, killerid, 1);
                        }
                        SetPlayerSkin(killerid, PlayerInfo[killerid][pModel]);
                        TogglePlayerControllable(playerid, 1);
                        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));
                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]++;
                        }
                        Update(killerid, pKillsx);
                         PlayerPlaySound(killerid, 1083, 0.0, 0.0, 0.0);
                    }
                }
            }
        }

        if (victimteam >= 3 && WantedPoints[playerid] > 0 && killerteam == 2)
        {
            SetPlayerFree(playerid,killerid, "ai fost omorat");
        }
        killerid = INVALID_PLAYER_ID;
        SetPlayerColor(playerid,COLOR_GRAD2);
        if (!IsACop(killerid))
        {
            if(factionid[killerid] == factionid[playerid]) return 1;
            if(IsAMafia(killerid) && IsAMafia(playerid)) return 1;
            if(IsACop(killerid) && IsACop(playerid)) return 1;
            //if(PlayerInfo[killerid][pMember] == 8 || PlayerInfo[killerid][pLeader] == 8) return 1;
            WantedPoints[killerid] ++;
            SetPlayerCriminal(killerid,255, "Crima de gradul intai");
        }
    }
    return 1;
}


ia baga ma ce ti-am zis inainte de publicul ongamemodeinit , si imi zici daca se mai intampla.

daca se mai intampla, ce nu cred ca e cazul posteaza server log

 

tot eroare da.

  • Upvote 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.