[09:39:27] [debug] AMX backtrace: [09:39:27] [debug] #0 00098848 in public OnPlayerTakeDamage (0, 65535, 1037805030, 37, 3) from _dark_.amx [09:39:27] [debug] Run time error 4: "Array index out of bounds" [09:39:27] [debug] Accessing element at index 65535 past array upper bound 99 [09:39:27] [debug] AMX backtrace:
public OnPlayerTakeDamage(playerid,issuerid, Float: amount, weaponid, bodypart) {
if(issuerid != INVALID_PLAYER_ID && gHelmet[playerid] == true)
{
gHelmet[playerid]=false; // << There, as simple as that
return GameTextForPlayer(issuerid,"~r~Player have helmet protection",5000,3);
}
if(gTeam[issuerid] == TEAM_USA && gTeam[playerid] == TEAM_USA && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
return GameTextForPlayer(issuerid,"~r~Don't Attack Your Team Mate",5000,3);
}
if(gTeam[issuerid] == TEAM_EURASIA && gTeam[playerid] == TEAM_EURASIA && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
return GameTextForPlayer(issuerid,"~r~Don't Attack Your Team Mate",5000,3);
}
if(gTeam[issuerid] == TEAM_ARAB && gTeam[playerid] == TEAM_ARAB && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
return GameTextForPlayer(issuerid,"~r~Don't Attack Your Team Mate",5000,3);
}
if(gTeam[issuerid] == TEAM_SOVIET && gTeam[playerid] == TEAM_SOVIET && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
return GameTextForPlayer(issuerid,"~r~Don't Attack Your Team Mate",5000,3);
}
if(gTeam[issuerid] == TEAM_AUS && gTeam[playerid] == TEAM_AUS && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
return GameTextForPlayer(issuerid,"~r~Don't Attack Your Team Mate",5000,3);
}
if(issuerid != INVALID_PLAYER_ID && AntiSK[playerid] == 1) return 0;
if((weaponid == 34/*|| weaponid == 32 || weaponid == 31 || weaponid == 30 || weaponid == 29 || weaponid == 28 || weaponid == 27 || weaponid == 26*/ || weaponid == 33) && issuerid != INVALID_PLAYER_ID && bodypart == 9)
{
SetPlayerHealth(playerid,0.0);
GameTextForPlayer(playerid,"~r~YOU GOT HEADSHOT~n~Type /buy To get Helmet",5000,3);
GameTextForPlayer(issuerid,"~r~wOw. Perfect Shot",5000,3);
PlayerPlaySound(playerid, 1050, 0.0, 0.0, 0.0);
PlayerPlaySound(issuerid, 1050, 0.0, 0.0, 0.0);
RemovePlayerAttachedObject(playerid, 1);
}
if(AntiSK[playerid] == 1)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-5);
GameTextForPlayer(issuerid,"~r~Player Have Anti Spawn Kill Protection", 3000, 3);
}
// anti-team-attack
if(gTeam[issuerid] == TEAM_USA && gTeam[playerid] == TEAM_USA && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
GameTextForPlayer(issuerid,"~r~Your teamattacking ~n~-2 health", 3000, 3);
}
if(gTeam[issuerid] == TEAM_EURASIA && gTeam[playerid] == TEAM_EURASIA && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
GameTextForPlayer(issuerid,"~r~Your teamattacking ~n~-2 health", 3000, 3);
}
if(gTeam[issuerid] == TEAM_ARAB && gTeam[playerid] == TEAM_ARAB && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
GameTextForPlayer(issuerid,"~r~Your teamattacking ~n~-2 health", 3000, 3);
}
if(gTeam[issuerid] == TEAM_SOVIET && gTeam[playerid] == TEAM_SOVIET && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
GameTextForPlayer(issuerid,"~r~Your teamattacking ~n~-2 health", 3000, 3);
}
if(gTeam[issuerid] == TEAM_AUS && gTeam[playerid] == TEAM_AUS && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
GameTextForPlayer(issuerid,"~r~Your teamattacking ~n~-2 health", 3000, 3);
}
// anti team knifing
if(gTeam[issuerid] == TEAM_USA && gTeam[playerid] == TEAM_USA && weaponid == 4)
{
GameTextForPlayer(issuerid,"~g~do not knife~n~team mates", 3000, 3);
GameTextForPlayer(playerid,"~g~you got team knifed~n~use /sync", 3000, 3);
SetPlayerHealth(issuerid, 0);
}
if(gTeam[issuerid] == TEAM_EURASIA && gTeam[playerid] == TEAM_EURASIA && weaponid == 4)
{
GameTextForPlayer(issuerid,"~g~do not knife~n~team mates", 3000, 3);
GameTextForPlayer(playerid,"~g~you got team knifed~n~use /sync", 3000, 3);
SetPlayerHealth(issuerid, 0);
}
if(gTeam[issuerid] == TEAM_ARAB && gTeam[playerid] == TEAM_ARAB && weaponid == 4)
{
GameTextForPlayer(issuerid,"~g~do not knife~n~team mates", 3000, 3);
GameTextForPlayer(playerid,"~g~you got team knifed~n~use /sync", 3000, 3);
SetPlayerHealth(issuerid, 0);
}
if(gTeam[issuerid] == TEAM_SOVIET && gTeam[playerid] == TEAM_SOVIET && weaponid == 4)
{
GameTextForPlayer(issuerid,"~g~do not knife~n~team mates", 3000, 3);
GameTextForPlayer(playerid,"~g~you got team knifed~n~use /sync", 3000, 3);
SetPlayerHealth(issuerid, 0);
}
if(gTeam[issuerid] == TEAM_AUS && gTeam[playerid] == TEAM_AUS && weaponid == 4)
{
GameTextForPlayer(issuerid,"~g~do not knife~n~team mates", 3000, 3);
GameTextForPlayer(playerid,"~g~you got team knifed~n~use /sync", 3000, 3);
SetPlayerHealth(issuerid, 0);
}
if(issuerid != INVALID_PLAYER_ID)
{
new str[26];
format(str, sizeof(str),"-%.0f", amount);
SetPlayerChatBubble(playerid, str, 0xFF0000FF, 100.0, 2000);
}
return 1;
}
if(issuerid != INVALID_PLAYER_ID)
{
if(gTeam[issuerid] == gTeam[playerid] && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
return GameTextForPlayer(issuerid,"~r~Don't Attack Your Team Mate",5000,3);
}
}
public OnPlayerTakeDamage(playerid,issuerid, Float: amount, weaponid, bodypart)
{
if(issuerid != INVALID_PLAYER_ID)
{
if(gHelmet[playerid] == true)
{
gHelmet[playerid]=false; // << There, as simple as that
return GameTextForPlayer(issuerid,"~r~Player have helmet protection",5000,3);
}
if(gTeam[issuerid] == TEAM_USA && gTeam[playerid] == TEAM_USA && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
return GameTextForPlayer(issuerid,"~r~Don't Attack Your Team Mate",5000,3);
}
if(gTeam[issuerid] == TEAM_EURASIA && gTeam[playerid] == TEAM_EURASIA && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
return GameTextForPlayer(issuerid,"~r~Don't Attack Your Team Mate",5000,3);
}
if(gTeam[issuerid] == TEAM_ARAB && gTeam[playerid] == TEAM_ARAB && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
return GameTextForPlayer(issuerid,"~r~Don't Attack Your Team Mate",5000,3);
}
if(gTeam[issuerid] == TEAM_SOVIET && gTeam[playerid] == TEAM_SOVIET && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
return GameTextForPlayer(issuerid,"~r~Don't Attack Your Team Mate",5000,3);
}
if(gTeam[issuerid] == TEAM_AUS && gTeam[playerid] == TEAM_AUS && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
return GameTextForPlayer(issuerid,"~r~Don't Attack Your Team Mate",5000,3);
}
if(AntiSK[playerid] == 1)return 0;
if((weaponid == 34/*|| weaponid == 32 || weaponid == 31 || weaponid == 30 || weaponid == 29 || weaponid == 28 || weaponid == 27 || weaponid == 26*/ || weaponid == 33) && issuerid != INVALID_PLAYER_ID && bodypart == 9)
{
SetPlayerHealth(playerid,0.0);
GameTextForPlayer(playerid,"~r~YOU GOT HEADSHOT~n~Type /buy To get Helmet",5000,3);
GameTextForPlayer(issuerid,"~r~wOw. Perfect Shot",5000,3);
PlayerPlaySound(playerid, 1050, 0.0, 0.0, 0.0);
PlayerPlaySound(issuerid, 1050, 0.0, 0.0, 0.0);
RemovePlayerAttachedObject(playerid, 1);
}
if(AntiSK[playerid] == 1)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-5);
GameTextForPlayer(issuerid,"~r~Player Have Anti Spawn Kill Protection", 3000, 3);
}
// anti-team-attack
if(gTeam[issuerid] == TEAM_USA && gTeam[playerid] == TEAM_USA && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
GameTextForPlayer(issuerid,"~r~Your teamattacking ~n~-2 health", 3000, 3);
}
if(gTeam[issuerid] == TEAM_EURASIA && gTeam[playerid] == TEAM_EURASIA && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
GameTextForPlayer(issuerid,"~r~Your teamattacking ~n~-2 health", 3000, 3);
}
if(gTeam[issuerid] == TEAM_ARAB && gTeam[playerid] == TEAM_ARAB && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
GameTextForPlayer(issuerid,"~r~Your teamattacking ~n~-2 health", 3000, 3);
}
if(gTeam[issuerid] == TEAM_SOVIET && gTeam[playerid] == TEAM_SOVIET && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
GameTextForPlayer(issuerid,"~r~Your teamattacking ~n~-2 health", 3000, 3);
}
if(gTeam[issuerid] == TEAM_AUS && gTeam[playerid] == TEAM_AUS && EDM[playerid] == 0 && weaponid != 18)
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
GameTextForPlayer(issuerid,"~r~Your teamattacking ~n~-2 health", 3000, 3);
}
// anti team knifing
if(gTeam[issuerid] == TEAM_USA && gTeam[playerid] == TEAM_USA && weaponid == 4)
{
GameTextForPlayer(issuerid,"~g~do not knife~n~team mates", 3000, 3);
GameTextForPlayer(playerid,"~g~you got team knifed~n~use /sync", 3000, 3);
SetPlayerHealth(issuerid, 0);
}
if(gTeam[issuerid] == TEAM_EURASIA && gTeam[playerid] == TEAM_EURASIA && weaponid == 4)
{
GameTextForPlayer(issuerid,"~g~do not knife~n~team mates", 3000, 3);
GameTextForPlayer(playerid,"~g~you got team knifed~n~use /sync", 3000, 3);
SetPlayerHealth(issuerid, 0);
}
if(gTeam[issuerid] == TEAM_ARAB && gTeam[playerid] == TEAM_ARAB && weaponid == 4)
{
GameTextForPlayer(issuerid,"~g~do not knife~n~team mates", 3000, 3);
GameTextForPlayer(playerid,"~g~you got team knifed~n~use /sync", 3000, 3);
SetPlayerHealth(issuerid, 0);
}
if(gTeam[issuerid] == TEAM_SOVIET && gTeam[playerid] == TEAM_SOVIET && weaponid == 4)
{
GameTextForPlayer(issuerid,"~g~do not knife~n~team mates", 3000, 3);
GameTextForPlayer(playerid,"~g~you got team knifed~n~use /sync", 3000, 3);
SetPlayerHealth(issuerid, 0);
}
if(gTeam[issuerid] == TEAM_AUS && gTeam[playerid] == TEAM_AUS && weaponid == 4)
{
GameTextForPlayer(issuerid,"~g~do not knife~n~team mates", 3000, 3);
GameTextForPlayer(playerid,"~g~you got team knifed~n~use /sync", 3000, 3);
SetPlayerHealth(issuerid, 0);
}
if(issuerid != INVALID_PLAYER_ID)
{
new str[26];
format(str, sizeof(str),"-%.0f", amount);
SetPlayerChatBubble(playerid, str, 0xFF0000FF, 100.0, 2000);
}
}
return 1;
}
public OnPlayerTakeDamage(playerid,issuerid, Float: amount, weaponid, bodypart)
{
if(issuerid != INVALID_PLAYER_ID)
{
if((weaponid == 34 || weaponid == 33) && bodypart == 9 && gTeam[issuerid] != gTeam[playerid])
{
if(gHelmet[playerid] == false)
{
SetPlayerHealth(playerid,0.0);
GameTextForPlayer(playerid,"~r~YOU GOT HEADSHOT~n~Type /buy To get Helmet",5000,3);
GameTextForPlayer(issuerid,"~r~wOw. Perfect Shot",5000,3);
PlayerPlaySound(playerid, 1050, 0.0, 0.0, 0.0);
PlayerPlaySound(issuerid, 1050, 0.0, 0.0, 0.0);
}
else
{
/*gHelmet[playerid] = false;*/
GameTextForPlayer(issuerid,"~w~Player has a ~r~helmet",5000,3);
/*RemovePlayerAttachedObject(playerid, 1);*/
}
}
// anti-team-attack
if(gTeam[issuerid] == gTeam[playerid] && EDM[playerid] == 0 && weaponid != 18)
{
if(AntiSK[playerid])
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-5);
GameTextForPlayer(issuerid,"~r~Player Have Anti Spawn Kill Protection", 3000, 3);
}
else
{
GetPlayerHealth(issuerid,amount);
SetPlayerHealth(issuerid,amount-2);
GameTextForPlayer(issuerid,"~r~Your teamattacking ~n~-2 health", 3000, 3);
}
}
// anti team knifing
if(gTeam[issuerid] == gTeam[playerid] && weaponid == 4)
{
GameTextForPlayer(issuerid,"~g~do not knife~n~team mates", 3000, 3);
GameTextForPlayer(playerid,"~g~you got team knifed~n~use /sync", 3000, 3);
SetPlayerHealth(issuerid, 0);
}
new str[26];
format(str, sizeof(str),"-%.0f", amount);
SetPlayerChatBubble(playerid, str, 0xFF0000FF, 100.0, 2000);
}
return 1;
}
[05:14:27] [debug] Run time error 4: "Array index out of bounds" [05:14:27] [debug] Accessing element at index 5 past array upper bound 4 [05:14:27] [debug] AMX backtrace: [05:14:27] [debug] #0 00156740 in public OnPlayerEnterCheckpoint (0) from _dark_.amx
public OnPlayerEnterCheckpoint(playerid)
{
new text[128];
if(IsCapturing[playerid][usapro] == 1)
{
if(IsPlayerInVehicle(playerid, usapro))
{
DisablePlayerCheckpoint(playerid);
IsCapturing[playerid][usapro] = 0;
format(text, sizeof(text), "~r~%s~w~ has Captured ~r~USA prototype ~w~for his team!", pName(playerid));
RemovePlayerFromVehicle(playerid);
SCM(playerid, C_GREEN, "Congratulations! You got +6 score and +6000 cash!");
GivePlayerMoney(playerid, 6000);
SetVehicleToRespawn(usapro);
SetPlayerScore(playerid, GetPlayerScore(playerid)+6);
TogglePlayerAllDynamicCPs(playerid, 1);
TextStats(playerid);
Savestatus(playerid);
}
else
{
DisablePlayerCheckpoint(playerid);
SCM(playerid, RED, "You're not in the USA Prototype.");
}
}
if(IsCapturing[playerid][auspro] == 1)
{
if(IsPlayerInVehicle(playerid, auspro))
{
DisablePlayerCheckpoint(playerid);
IsCapturing[playerid][auspro] = 0;
TextStats(playerid);
Savestatus(playerid);
format(text, sizeof(text), "~r~%s~w~ has Captured ~r~ Australia prototype ~w~for his team!", pName(playerid));
RemovePlayerFromVehicle(playerid);
SCM(playerid, C_GREEN, "Congratulations! You got +6 score and +6000 cash!");
GivePlayerMoney(playerid, 6000);
SetVehicleToRespawn(auspro);
SetPlayerScore(playerid, GetPlayerScore(playerid)+6);
TogglePlayerAllDynamicCPs(playerid, 1);
}
else
{
DisablePlayerCheckpoint(playerid);
SCM(playerid, RED, "You're not in the Australia Prototype.");
}
}
if(IsCapturing[playerid][arabpro] == 1)
{
if(IsPlayerInVehicle(playerid, arabpro))
{
DisablePlayerCheckpoint(playerid);
IsCapturing[playerid][arabpro] = 0;
TextStats(playerid);
Savestatus(playerid);
format(text, sizeof(text), "~r~%s~w~ has Captured ~r~Arabian prototype ~w~for his team!", pName(playerid));
RemovePlayerFromVehicle(playerid);
SCM(playerid, C_GREEN, "Congratulations! You got +6 score and +6000 cash!");
GivePlayerMoney(playerid, 6000);
SetVehicleToRespawn(arabpro);
SetPlayerScore(playerid, GetPlayerScore(playerid)+6);
TogglePlayerAllDynamicCPs(playerid, 1);
}
else
{
DisablePlayerCheckpoint(playerid);
SCM(playerid, RED, "You're not in the Arabian Prototype.");
}
}
if(IsCapturing[playerid][sovpro] == 1)
{
if(IsPlayerInVehicle(playerid, sovpro))
{
DisablePlayerCheckpoint(playerid);
RemovePlayerFromVehicle(playerid);
TextStats(playerid);
Savestatus(playerid);
format(text, sizeof(text), "~r~%s~w~ has Captured ~r~Soviet prototype ~w~for his team!", pName(playerid));
IsCapturing[playerid][sovpro] = 0;
SCM(playerid, C_GREEN, "Congratulations! You got +6 score and +6000 cash!");
GivePlayerMoney(playerid, 6000);
SetVehicleToRespawn(sovpro);
SetPlayerScore(playerid, GetPlayerScore(playerid)+6);
TogglePlayerAllDynamicCPs(playerid, 1);
}
else
{
DisablePlayerCheckpoint(playerid);
SCM(playerid, RED, "You're not in the Soviet Prototype.");
}
}
if(IsCapturing[playerid][eurapro] == 1)
{
if(IsPlayerInVehicle(playerid, eurapro))
{
DisablePlayerCheckpoint(playerid);
format(text, sizeof(text), "~r~%s~w~ has Captured ~r~Erusia prototype ~w~for his team!", pName(playerid));
IsCapturing[playerid][eurapro] = 0;
RemovePlayerFromVehicle(playerid);
TextStats(playerid);
Savestatus(playerid);
SCM(playerid, C_GREEN, "Congratulations! You got +6 score and +6000 cash!");
GivePlayerMoney(playerid, 6000);
SetVehicleToRespawn(eurapro);
SetPlayerScore(playerid, GetPlayerScore(playerid)+6);
TogglePlayerAllDynamicCPs(playerid, 1);
}
else
{
DisablePlayerCheckpoint(playerid);
SCM(playerid, RED, "You're not in the Erusia Prototype.");
}
}
return 1;
}
Learn how to shorten the code, how to use variables and if statements properly. You made the code very big, so I cleaned it up and fixed some bugs. Fix the indentation kindly, i wrote it in the browser. if you want to you can break the helmet and let player get headshot after getting their helmet broke, uncomment the lines to enable it.
PHP код:
|
Fixed.. but i got another error :v
Код:
[05:14:27] [debug] Run time error 4: "Array index out of bounds" [05:14:27] [debug] Accessing element at index 5 past array upper bound 4 [05:14:27] [debug] AMX backtrace: [05:14:27] [debug] #0 00156740 in public OnPlayerEnterCheckpoint (0) from _dark_.amx PHP код:
|