05.12.2014, 20:36
Hi guys! Can somebody help me to detect the problem from this script?
Callback: OnplayerDeath:
PHP код:
[16:49:49] [debug] Run time error 4: "Array index out of bounds"
[16:49:49] [debug] Accessing element at index 65535 past array upper bound 499
[16:49:49] [debug] AMX backtrace:
[16:49:49] [debug] #0 00014f0c in public OnPlayerDeath (0, 65535, 255) from Gamemode.amx
Callback: OnplayerDeath:
PHP код:
public OnPlayerDeath(playerid, killerid, reason)
{
new pame[MAX_PLAYER_NAME],pname[MAX_PLAYER_NAME];
GetPlayerName(killerid, pame, sizeof(pame));
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
SendDeathMessage(killerid,playerid,reason);
SetPlayerWantedLevel(playerid,0);
GameTextForPlayer(killerid,Textos1[random(sizeof(Textos1))], 3000, 6);
if(reason == 50)
{
SendClientMessage(killerid, Color_Error, "{CC9900}* Fuiste Asesinado por Matar en Helicoptero");
SetPlayerHealth(killerid,0);
GivePlayerMoney(killerid, -1000);
return 1;
}
if(reason == 90)
{
SendClientMessage(killerid, Color_Error, "{CC9900}* Fuiste Asesinado por Matar en Auto");
SetPlayerHealth(killerid,0);
GivePlayerMoney(killerid, -1000);
return 1;
}
if((TEAMPOLICE[playerid] == 1 && TEAMPOLICE[killerid] == 1)||(TEAMTERROS[playerid] == 1 && TEAMTERROS[killerid] == 1))
{
format(string2, 90, "** %s ha Sido Suicidado automaticamente [Razуn: Team kill]", PlayerName2(killerid));
SendClientMessageToAll(Color_Error, string2);
SendClientMessage(killerid, COLOR_YELLOW, "* Fuiste Asesinado por Matar A tu Equipo");
SetPlayerHealth(killerid,0);
TogglePlayerControllable(killerid,false);
return 1;
}
if(fkill[playerid]<3) {fkill[playerid]++;SetTimerEx("MenosFKill",800,false,"d",playerid);}
else
{
new string23[90],nome23[MAX_PLAYER_NAME];
GetPlayerName(playerid,nome23,MAX_PLAYER_NAME);
format(string23,80, "* %s ha sido baneado | Razуn: fakekill.",nome23,playerid);
SendClientMessageToAll(Color_Error,string23);
Ban(playerid);
}
GivePlayerMoney(playerid, -1000);
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z);
PickupPlayerDeath1 = CreatePickup(1550,3,X+2,Y,Z,-1);
PlayerInfo[playerid][Deaths]++;
PlayerInfo[playerid][ScoreFreeroam]-=1;
Actualizar(playerid);
if(PlayerInfo[playerid][LoggedIn] == 1)
{
Guardar(playerid);
}
GetPlayerScore(killerid);
if(killerid != INVALID_PLAYER_ID) SetPlayerScore(killerid, GetPlayerScore(killerid) +1);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=1;
Actualizar(killerid);
if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
{
PlayerInfo[killerid][Kills]++;
Actualizar(killerid);
}
Recompensas[playerid] = 0;
new pok[80],name[24];
GetPlayerName(killerid, name, sizeof(name));
if(killerid != INVALID_PLAYER_ID)
{
Recompensas[killerid] ++;
switch(Recompensas[killerid])
{
case 2:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +2);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=2;
Actualizar(killerid);
}
case 3:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +2);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=2;
Actualizar(killerid);
format(pok,sizeof(pok),"{99FF99}* %s: Ha echo KillingSpree! 3 Asesinatos - 0 Muertes!",pame,playerid);
SendClientMessageToAll(0xFF0000FF,pok);
SetPlayerWantedLevel(playerid,1);
}
case 4:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +4);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=4;
Actualizar(killerid);
}
case 5:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +6);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=6;
Actualizar(killerid);
}
case 6:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +8);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=8;
Actualizar(killerid);
format(pok,sizeof(pok),"{00CCFF}* %s: Esta Imparable! 6 Asesinatos - 0 Muertes!",pame,playerid);
SendClientMessageToAll(0xFF0000FF,pok);
SetPlayerWantedLevel(playerid,2);
}
case 7:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +8);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=8;
Actualizar(killerid);
}
case 8:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +10);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=10;
Actualizar(killerid);
}
case 9:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +10);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=10;
Actualizar(killerid);
format(pok,sizeof(pok),"{3399FF}* %s: Es rapido y furioso! 9 Asesinatos - 0 Muertes!",pame,playerid);
SendClientMessageToAll(0xFF0000FF,pok);
SetPlayerWantedLevel(playerid,3);
}
case 10:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +12);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=12;
Actualizar(killerid);
}
case 11:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +12);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=12;
Actualizar(killerid);
}
case 12:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +14);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=14;
Actualizar(killerid);
format(pok,sizeof(pok),"{669999}* %s: Es una Matanza! 12 Asesinatos - 0 Muertes!",pame,playerid);
SendClientMessageToAll(0xFF0000FF,pok);
SetPlayerWantedLevel(playerid,4);
}
case 13:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +14);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=14;
Actualizar(killerid);
}
case 14:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +16);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=16;
Actualizar(killerid);
}
case 15:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +16);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=16;
Actualizar(killerid);
}
case 16:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +16);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=16;
Actualizar(killerid);
format(pok,sizeof(pok),"{CCCCCC}* %s: Es el dios de la muerte! 16 Asesinatos - 0 Muertes!",pame,playerid);
SendClientMessageToAll(0xFF0000FF,pok);
SetPlayerWantedLevel(playerid,5);
}
case 17:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +18);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=18;
Actualizar(killerid);
}
case 18:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +18);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=18;
Actualizar(killerid);
}
case 19:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +20);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=20;
Actualizar(killerid);
}
case 20:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +20);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=20;
Actualizar(killerid);
}
case 21:
{
PlayerInfo[killerid][Combos]+=1;
SetPlayerScore(killerid, GetPlayerScore(killerid) +20);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=20;
Actualizar(killerid);
}
case 22:
{
format(pok,sizeof(pok),"{FFFFCC}* %s: Es The Terminator! 22 Asesinatos - 0 Muertes!",pame,playerid);
SendClientMessageToAll(0xFF0000FF,pok);
SetPlayerWantedLevel(playerid,6);
}
}
}
if (EnDuelo[playerid] == 1 && EnDuelo[killerid] == 1)
{
for (new i=1; i<= ARENAS; i++)
{
if ((DuelosS[i][DesaId] == playerid || DuelosS[i][DesaId] == killerid) && (DuelosS[i][DesafiadoId] == playerid) || (DuelosS[i][DesafiadoId] == killerid))
{
new sString[128],zName[MAX_PLAYER_NAME],Float:Health,Float:Armor,ppName[MAX_PLAYER_NAME];
GetPlayerHealth(killerid, Health);
GetPlayerArmour(killerid, Armor);
EnDuelo[playerid] = 0;
EnDuelo[killerid] = 0;
UserEnJuego[killerid] = 0;
UserEnJuego[playerid] = 0;
SpawnPlayer(killerid);
DuelosS[i][DesafiadoId] = -1;
DuelosS[i][DesaId] = -1;
DuelosS[i][ArmasId] = -1;
DuelosS[i][Libre] = 0;
PlayerInfo[killerid][DuelosWin]+=1;Actualizar(killerid);
PlayerInfo[playerid][DuelosLose]+=1;Actualizar(playerid);
SetPlayerScore(killerid, GetPlayerScore(killerid) +1);
Guardar(killerid);
PlayerInfo[killerid][ScoreFreeroam]+=1;
Actualizar(killerid);
GetPlayerName(playerid, ppName, MAX_PLAYER_NAME);
GetPlayerName(killerid, zName, MAX_PLAYER_NAME);
if(Health > 90.0 && Armor > 90.0)
{
format(sString, sizeof(sString),"{FFFFCC}* %s Gano el duelo contra %s! Termino con %.2f de vida y %.2f de armadura!", zName,ppName,Health,Armor);
SendClientMessageToAll(0x770CC9FF, sString);
return 1;
}
else
{
format(sString, sizeof(sString),"* %s Gano el duelo contra %s! Termino con %.2f de vida y %.2f de armadura!", zName,ppName,Health,Armor);
SendClientMessageToAll(0x770CC9FF, sString);
return 1;
}
}
switch (i)
{
case 1: {SetPlayerPos(killerid,2626.5664,1206.4237,28.0004); SetPlayerFacingAngle(killerid,274.9405);}
}
}
}
for(new s=0; s<MAX_PLAYERS; s++)
if(GetPlayerState(s) == PLAYER_STATE_SPECTATING && PlayerInfo[s][SpecID] == playerid)
AdvanceSpectate(s);
if(Joined[playerid] == true)
{
JoinCount--;
Joined[playerid] = false;
DestroyVehicle(CreatedRaceVeh[playerid]);
DisablePlayerRaceCheckpoint(playerid);
CPProgess[playerid] = 0;
KillTimer(InfoTimer[playerid]);
#if defined RACE_IN_OTHER_WORLD
SetPlayerVirtualWorld(playerid, 0);
SetVehicleVirtualWorld(RaceVehicle, 0);
#endif
}
if(BuildRace == playerid+1) BuildRace = 0;
return 1;
}