OnPlayerDeath Arrays
#1

I've a problem with arrays.. I know that i've to put INVALID_PLAYER_ID but i don't know where D:

Код:
[18:53:06] [debug] Run time error 4: "Array index out of bounds"
[18:53:06] [debug]  Accessing element at index 65535 past array upper bound 499
[18:53:06] [debug] AMX backtrace:
[18:53:06] [debug] #0 0000e3ec in public OnPlayerDeath (0x00000002, 0x0000ffff, 0x000000ff) from IusSilverP2.amx
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(GetPlayerWeapon(killerid) == 38 && wartime == 0 && lvl[playerid] < 10)
    {
    BanEx(killerid,"AutoBan Minigun"); //Ban if they have a minigun
    }
    if(happytime == true)
    {
      if(killerid != INVALID_PLAYER_ID) cookies[killerid] ++;
      SendClientMessage(killerid,COLOR_GREEN,"*** Cookie bonus per l'Happy Time!");
     
    }
    if(IsPlayerInRangeOfPoint(killerid, 20, 292.8081,-35.4008,1001.5156))
    {
        new str1[128],name[24];
        GetPlayerName(killerid, name, sizeof(name));
        format(str1, sizeof(str1), "*** %s и stato automaticamente kickato per aver killato al /negozio!", name);
        SendClientMessageToAll(COLOR_RED, str1);
        KickWithMessage(killerid, COLOR_RED, "*** Sei stato kickato per aver ucciso al /negozio!");
    }
    SendDeathMessage(killerid, playerid, reason);//kill list
    dinamite[playerid] = 0; //variabile dinamite
    if(dinamite[playerid] == 1)
    {
       DestroyDynamicObject(bombobj);
    }
    //CONSEGUENZE KILL
    heal[playerid] = 0;
    rock[playerid] = 0;
    if(playerid != INVALID_PLAYER_ID) morti[playerid] ++;//aumentano le morti
    if(killerid != INVALID_PLAYER_ID) kills[killerid] ++;//aumentano le kills
    if(killerid != INVALID_PLAYER_ID) SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);//aumenta di uno score
    if(killerid != INVALID_PLAYER_ID) GivePlayerMoney(killerid, 1000);// ti da soldi
    //RICAVO INFORMAZIONI
    new nome[MAX_PLAYER_NAME],killer[MAX_PLAYER_NAME];
    GetPlayerName(playerid,nome, sizeof(nome));
    GetPlayerName(killerid,killer, sizeof(killer));
    //SPREE AUMENTA
    if(killerid != INVALID_PLAYER_ID) spree[killerid] ++;
    if(spree[killerid] == 10)//se lo spree и = 10
    {
    SendClientMessage(killerid,COLOR_GREEN,"*** Hai ucciso 10 persone di fila e hai ottenuto un cookie!");
    SendClientMessage(killerid,COLOR_GREEN,"*** Uccidine altri 10 per ottenere 3 cookies!");
    cookies[killerid] ++;
    }
    if(spree[playerid] == 20)//se lo spree и = 20
    {
    SendClientMessage(killerid,COLOR_GREEN,"*** Hai ucciso 20 persone di fila e hai ottenuto 3 cookies!");
    SendClientMessage(killerid,COLOR_GREEN,"*** Hai raggiunto il massimo killing - spree e il tuo spree и stato azzerato!");
    cookies[killerid] += 3;
    spree[killerid] = 0;
    }
    if(playerid != INVALID_PLAYER_ID) spree[playerid] = 0;//spree azzerato in caso di morte
    //CASO ADMIN KILL
    if(lvl[playerid] > 0) return SendClientMessage(killerid,COLOR_YELLOW,"*** Hai ucciso un admin e hai ricevuto un cookie come ricompensa!"),cookies[killerid] ++, ak[killerid] ++;
    //fake kill
    if(fakekill[playerid] == 5) return BanEx(playerid,"Fake kill");
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    if(IsPlayerInRangeOfPoint(killerid, 50, x,y,z))
    {
    fakekill[playerid] ++;
    }
    if(reason == 50)
    {
    SendClientMessage(killerid,COLOR_RED,"*** Sei stato ucciso per helikill!");
    SetPlayerHealth(killerid,0);
    }
    if(eventoox[killerid] == 1)
    {
        new str1[128],name [24];
        GetPlayerName(killerid, name, sizeof(name));
        format(str1, sizeof(str1), "*** %s и stato automaticamente kickato per aver killato all'evento OX!", name);
        SendClientMessageToAll(COLOR_RED, str1);
        KickWithMessage(killerid, COLOR_RED, "*** Sei stato kickato per aver ucciso all'evento OX!");
    }
    if(eventoox[playerid] == 1)
    {
        eventoox[playerid] = 2;
        SendClientMessage(playerid,COLOR_RED,"*** Digita /joinox per tornare all'evento!");
    }
   
    if(wanted[playerid] == 1)
    {
    wanted[playerid] = 0;
    cookies[killerid] ++;
    new nomes[24],knome[24],stringaw[256];
    GetPlayerName(playerid,nomes,24);
    GetPlayerName(killerid, knome, 24);
    SendClientMessage(killerid,COLOR_YELLOW,"*** Complimenti, hai ucciso il ricercato vincendo un cookie!");
    format(stringaw,sizeof(stringaw),"{FFFF00}[WANTED]: {FF00FF}Il Giocatore %s ha ucciso il ricercato %s ricevendo un cookie come premio!",knome,nomes);
    SendClientMessageToAll(-1, stringaw);
    }
    return 1;
}
Reply


Messages In This Thread
OnPlayerDeath Arrays - by ReshiramZekrom - 11.09.2013, 16:54
Re: OnPlayerDeath Arrays - by Konstantinos - 11.09.2013, 17:05

Forum Jump:


Users browsing this thread: 1 Guest(s)