06:41:02] [debug] Run time error 4: "Array index out of bounds" [06:41:02] [debug] Accessing element at index 65535 past array upper bound 499 [06:41:02] [debug] AMX backtrace: [06:41:02] [debug] #0 00054f64 in public OnPlayerDeath () from sadmin.amx [06:41:02] [death] ]SOB[_Ricardo died 255 |
public OnPlayerDeath(playerid, killerid, reason)
{
//----------------------------- [ anti fake kill ] ---------------------------//
antifakekill[playerid] ++;
SetTimerEx("antifakekill2", 1000,false,"i",playerid);
//-------------------------- [ bomba nuclear vip ] ---------------------------//
if(BuscadoPorNuclear[playerid]==1)
{
HanDesactivadaoLaBomba[playerid]=1;
}
//---------------------------------- [ configuracion ] -----------------------//
BoCmd4[playerid] = 0;
BoCmd5[playerid] = 0;
TextDrawHideForPlayer(playerid,HAYTD[playerid]);
JoinedHay[playerid] = 0;
modoheno[playerid] = 0;
scoreheno[playerid] = 0;
tiempohen[playerid] = 0;
//--------------------------- [ evento ] -------------------------------------//
if(TaNoEvento[playerid])
{
TaNoEvento[playerid] = false;
}
if(GetVehicleModel(Cars[playerid]))
{
DestroyVehicle(Cars[playerid]);
}
//------------------------------ [ aquaman ] ---------------------------------//
new strs[128];
if(Minigamer_{playerid} == true)
{
if(inProgress > 1)
{
format(strs,sizeof(strs),"*"VERDECLARO"%s "BLAN"ha abandonado "ROJOS"aquaman"AZULES" minijuego, "ROJOS"clasificar %d",PlayerName2(playerid),Iter_Count(_Minigamer));
SendClientMessageToAll(LIME,strs);
Iter_Remove(_Minigamer,playerid);
Minigamer_{playerid} = false;
if(Iter_Count(_Minigamer) < 2)
{
foreach(_Minigamer,i)MinigameWinner(i);
}
}
else
{
SendClientMessage(playerid,LIME,""BLAN"Tu entrada para "ROJOS"aquaman"BLAN" minijuego ha sido cancelada." );
Iter_Remove(_Minigamer,playerid);
Minigamer_{playerid} = false;
}
}
//------------------------------- [ lspec ] ----------------------------------//
for(new x=0; x<MAX_PLAYERS; x++)
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid)
AdvanceSpectate(x);
//------------------------------- [ flecha ] ---------------------------------//
if(Empezado == 1)
{
if(killerid != INVALID_PLAYER_ID && playerid == Portador)
{
AttachObjectToPlayer(Flecha, killerid, 0, 0, 2, 0, 0, 0);
Portador = killerid;
GameTextForPlayer(killerid,"~g~~H~GANASTE ~w~20 DE SCORE ~g~POR MATAR~n~~w~AL PORTADOR DE LA FLECHA", 3000, 3);
SetPlayerScore(killerid,GetPlayerScore(killerid)+20);
PlayerInfo[killerid][Kills] = GetPlayerScore(killerid);
}
else if(killerid == INVALID_PLAYER_ID && playerid == Portador)
{
Suplantar();
}
}
//------------------------- [ carreras ] -------------------------------------//
if(Joined[playerid] == true)
{
JoinCount--;
Joined[playerid] = false;
DestroyVehicle(CreatedRaceVeh[playerid]);
DisablePlayerRaceCheckpoint(playerid);
TextDrawHideForPlayer(playerid, RaceInfo[playerid]);
TextDrawHideForPlayer(playerid, abandonar[playerid]);
CPProgess[playerid] = 0;
franco[playerid][tirador] = 1;
BoCmd[playerid] = 0;
KillTimer(InfoTimer[playerid]);
#if defined RACE_IN_OTHER_WORLD
SetPlayerVirtualWorld(playerid, 0);
#endif
}
if(BuildRace == playerid+1) BuildRace = 0;
//------------------------------- [ duelos ] ---------------------------------//
if (EnDuelo[playerid] == 1 && EnDuelo[killerid] == 1)
{
for (new i=1; i<= ARENAS; i++)
{
if ((Duelos[i][DesaId] == playerid || Duelos[i][DesaId] == killerid) && (Duelos[i][DesafiadoId] == playerid) || (Duelos[i][DesafiadoId] == killerid))
{
new str0[128];
format(str0,sizeof(str0),"[INFO]: Haz perdido el duelo contra %s",PlayerName2(killerid));
SendClientMessage(playerid,COLOR_DUELO,str0);
format(str0,sizeof(str0),"[INFO]: Haz ganado elduelo contra %s",PlayerName2(playerid));
SendClientMessage(killerid,COLOR_DUELO,str0);
SendClientMessage(killerid,COLOR_DUELO,"[INFO]: Ahora estas en las graderias, para volver a tener un duelo usa /duelo invitar.");
EnDuelo[playerid] = 0;
EnDuelo[killerid] = 0;
BoCmd2[playerid] = 0;
BoCmd2[killerid] = 0;
PlayerInfo[playerid][Bloqueado] = 0;
PlayerInfo[killerid][Bloqueado] = 0;
PlayerInfo[killerid][Dwin] ++;
PlayerInfo[playerid][Dlose] ++;
Duelos[i][DesafiadoId] = -1;
Duelos[i][DesaId] = -1;
Duelos[i][ArmasId] = -1;
Duelos[i][Libre] = 0;
ShowInformationTxt(killerid);
ShowInformationTxt(playerid);
switch (i)
{
case 1: {
SetPlayerPos(killerid,2626.5664,1206.4237,28.0004);
SetPlayerFacingAngle(killerid,274.9405);
SetPlayerVirtualWorld(killerid, 0);
}
case 2: {
SetPlayerPos(killerid,-1562.8058,310.9799,53.4609);
SetPlayerFacingAngle(killerid,278.5559);
SetPlayerVirtualWorld(killerid, 0);
}
case 3: {
SetPlayerPos(killerid,-2030.9362,-425.7924,71.554);
SetPlayerFacingAngle(killerid,145.0746);
SetPlayerVirtualWorld(killerid, 0);
GivePlayerWeapon(playerid,46,1);
}
case 4: {
SetPlayerPos(killerid,2792.4976,-1455.7574,40.048);
SetPlayerFacingAngle(killerid,353.4433);
SetPlayerVirtualWorld(killerid, 0);
}
}
for (new j=0; j< MAX_PLAYERS; j++)
{
if (ViendoDuelo[j] == i)
{
new str20[256];
format(str20,sizeof(str20),"~r~%s ~w~es el ganador del duelo",PlayerName2(killerid));
GameTextForPlayer(j,str20,5000,0);
ViendoDuelo[j] =-1;
SetPlayerVirtualWorld(j, 0);
}
}
return 1;
}
}
}
if (EnDuelo[playerid] == 1 && EnDuelo[killerid] == 0)
{
}
//--------------------------------- [ hitman ] -------------------------------//
new playercash;
new ajustshit[256];
new killedplayer[MAX_PLAYER_NAME];
if(killerid == INVALID_PLAYER_ID)
{
}
else
{
if(bounty[playerid] > 0)
{
GetPlayerName(playerid, killedplayer, sizeof(killedplayer));
format(ajustshit, sizeof(ajustshit), "Has recibido una recompensa de %d de score por matar a %s.", bounty[playerid], killedplayer);
SendClientMessage(killerid, COLOR_YELLOW, ajustshit);
SetPlayerScore(killerid,GetPlayerScore(killerid)+bounty[playerid]);
PlayerInfo[killerid][Kills] = GetPlayerScore(killerid);
if(PlayerInfo[killerid][LoggedIn] == 1)
{
GuardarDatos(killerid);
SetPlayerVip(killerid);
SetPlayerVip2(killerid);
}
ShowInformationTxt(killerid);
bounty[playerid] = 0;
}
if(playercash > 0)
{
SetPlayerScore(killerid,GetPlayerScore(killerid)+playercash);
PlayerInfo[killerid][Kills] = GetPlayerScore(killerid);
if(PlayerInfo[killerid][LoggedIn] == 1)
{
GuardarDatos(killerid);
SetPlayerVip(killerid);
SetPlayerVip2(killerid);
}
ShowInformationTxt(killerid);
}
}
if(playercash > 0)
{
ResetPlayerMoney(playerid);
}
//------------------------------- [ stats ] ----------------------------------//
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
PlayerInfo[killerid][Kills] = GetPlayerScore(killerid);
PlayerInfo[playerid][Deaths]++;
if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
{
if(GetPlayerWeapon(killerid) == 34){PlayerInfo[killerid][Experiencia]=PlayerInfo[killerid][Experiencia]+5;}
if(GetPlayerWeapon(killerid) == 33){PlayerInfo[killerid][Experiencia]=PlayerInfo[killerid][Experiencia]+4;}
if(GetPlayerWeapon(killerid) == 32){PlayerInfo[killerid][Experiencia]=PlayerInfo[killerid][Experiencia]+2;}
if(GetPlayerWeapon(killerid) == 30){PlayerInfo[killerid][Experiencia]=PlayerInfo[killerid][Experiencia]+3;}
if(GetPlayerWeapon(killerid) == 31){PlayerInfo[killerid][Experiencia]=PlayerInfo[killerid][Experiencia]+3;}
if(GetPlayerWeapon(killerid) == 29){PlayerInfo[killerid][Experiencia]=PlayerInfo[killerid][Experiencia]+3;}
if(GetPlayerWeapon(killerid) == 28){PlayerInfo[killerid][Experiencia]=PlayerInfo[killerid][Experiencia]+2;}
if(GetPlayerWeapon(killerid) == 27){PlayerInfo[killerid][Experiencia]=PlayerInfo[killerid][Experiencia]+4;}
if(GetPlayerWeapon(killerid) == 26){PlayerInfo[killerid][Experiencia]=PlayerInfo[killerid][Experiencia]+2;}
if(GetPlayerWeapon(killerid) == 25){PlayerInfo[killerid][Experiencia]=PlayerInfo[killerid][Experiencia]+5;}
if(GetPlayerWeapon(killerid) == 24){PlayerInfo[killerid][Experiencia]=PlayerInfo[killerid][Experiencia]+4;}
if(GetPlayerWeapon(killerid) == 23){PlayerInfo[killerid][Experiencia]=PlayerInfo[killerid][Experiencia]+3;}
if(GetPlayerWeapon(killerid) == 22){PlayerInfo[killerid][Experiencia]=PlayerInfo[killerid][Experiencia]+3;}
}
ShowInformationTxt(playerid);
ShowInformationTxt(killerid);
if(PlayerInfo[playerid][LoggedIn] == 1)
{
GuardarDatos(playerid);
SetPlayerVip(playerid);
SetPlayerVip2(playerid);
}
if(PlayerInfo[killerid][LoggedIn] == 1)
{
GuardarDatos(killerid);
SetPlayerVip(killerid);
SetPlayerVip2(killerid);
}
return 1;
}
Es demasiado codigo, y dudo mucho que te hayas tomado el trabajo de debuguearlo. Te sugiero eliminar (comentar) secciones completas del codigo hasta que deje de crashear. Luego tendras un rango de lineas entre las cuales buscar y te sera mucho mas facil ver el error.
Nota: Como declaraste "Minigamer_" ? |
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(!HoraFeliz && (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER))//HoraFeliz representa la variable/array que estara en false o 0 si el evento no esta activo.
new model = GetVehicleModel(GetPlayerVehicleID(playerid));
switch(model)
{
case 425, 432, 520:
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, -1, "Este vehiculo solo puede ser utilizado dentro de la hora feliz");
}
}
}
return 1;
}
Me referia a la declaracion de dicho array, no a lo que representa.
Y a tu segundo problema: Metodo 1: pawn Код:
|
new HoraFeliz;
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/horafeliz", true) == 0)
{
HoraFeliz = (HoraFeliz == 1)?(0):(1);
SendClientMessage(playerid, -1, (HoraFeliz == 1)?("Activaste la hora felнz"):("Desactivaste la hora felнz"));
return 1;
}
}