- Регистрация
- 22 Сен 2017
- Сообщения
- 91
- Симпатии
- 6
- Пол
- Мужской
Помогите разобраться в плагине на запрет покупки авп пишет такую ошибку
[ 58] AWPoff 4.0 PAffAEJIkA :3 awp.amxx de
[AMXX] Displaying debug trace (plugin "awp.amxx")
[AMXX] Run time error 4: index out of bounds
[AMXX] [0] awp.sma::round_restart (line 76)
Заранее спасибо за помощь
[ 58] AWPoff 4.0 PAffAEJIkA :3 awp.amxx de
[AMXX] Displaying debug trace (plugin "awp.amxx")
[AMXX] Run time error 4: index out of bounds
[AMXX] [0] awp.sma::round_restart (line 76)
Код:
/*
v1.0 - При низком онлайне отбирает AWP [хоть купленное, хоть взято с VIP/Admin оружейки]
v2.0 - Добавлены проверки на: ботов, hltv, игроков сидящих в спекте.
v3.0 - Добавлена проверка на покупку AWP [Спасибо: http://c-s.net.ua/forum/topic71418.html]
v3.0 - Добавлен квар awp_players_low
v4.0 - Добавлен лимит + квары awp_limit, awp_limit_max и awp_limit_immun
*/
#include < amxmodx >
#include < cstrike >
#include < hamsandwich >
#include < engine >
#include < fakemeta_util >
#define FLAG ADMIN_KICK
new T, CT
new bool: useawp[32]
public plugin_init()
{
register_plugin("AWPoff", "4.0", "PAffAEJIkA :3");
register_logevent("round_restart", 2, "1&Restart_Round_");
register_menucmd(register_menuid("BuyRifle", true), (1<<4|1<<5), "OldMenusHook");
register_clcmd("menuselect", "ClCmdMenuSelect");
register_clcmd("awp", "cmdawp");
register_clcmd("magnum", "cmdawp");
register_clcmd("drop", "ClCmdDrop");
RegisterHam(Ham_Touch, "weapon_awp", "fwdTouch");
register_event("CurWeapon", "curwp", "b");
register_event("WeapPickup", "wp", "b");
register_event("DeathMsg", "Death", "a");
register_cvar( "awp_players_low", "8" );
register_cvar( "awp_limit", "1" );
register_cvar( "awp_limit_max", "2" );
register_cvar( "awp_limit_immun", "1" );
new mapname[32]; get_mapname(mapname, charsmax(mapname));
new maps[][] = {"awp_", "aim_"};
for(new i; i < sizeof maps; i++)
{
if(containi(mapname, maps[i]) != -1)
{
pause("ad");
return;
}
}
}
public client_connect(id)
{
useawp[id] = false
}
public client_disconnect(id)
{
if(useawp[id] == true)
{
useawp[id] = false
if(cs_get_user_team(id) == CS_TEAM_T)
T--;
else if(cs_get_user_team(id) == CS_TEAM_CT)
CT--;
}
}
public round_restart()
{
for(new id = 1; id <= get_maxplayers(); id++)
{
if(useawp[id] == true)
{
useawp[id] = false
}
}
T = 0
CT = 0
}
public Death()
deathawp(read_data(2))
deathawp(id)
{
if(get_cvar_num("awp_limit_immun") == 1 && get_user_flags(id) & FLAG) return 0;
if(is_user_hltv(id) || is_user_bot(id)) return 0;
if(useawp[id] == true)
{
useawp[id] = false
if(cs_get_user_team(id) == CS_TEAM_T)
T--;
else if(cs_get_user_team(id) == CS_TEAM_CT)
CT--;
}
return PLUGIN_CONTINUE;
}
public cmdawp(id)
{
if(is_user_hltv(id) || is_user_bot(id)) return 0;
if(get_playersnum() < get_cvar_num("awp_players_low"))
{
if(!(cs_get_user_team(id) == CS_TEAM_SPECTATOR))
{
client_print(id, print_center, "На сервере низкий онлайн, AWP отключено!")
return PLUGIN_HANDLED;
}
}
else if(get_cvar_num("awp_limit") == 1)
{
if(get_cvar_num("awp_limit_immun") == 1 && get_user_flags(id) & FLAG) return 0;
if(useawp[id] == true) return 0;
if(cs_get_user_money(id) >= 4750)
{
if(cs_get_user_team(id) == CS_TEAM_T)
{
if(T < get_cvar_num("awp_limit_max"))
{
T++;
useawp[id] = true
}
else
{
client_print(id, print_center, "Достигнут лимит AWP В команде!")
return PLUGIN_HANDLED;
}
}
else if(cs_get_user_team(id) == CS_TEAM_CT)
{
if(CT < get_cvar_num("awp_limit_max"))
{
CT++;
useawp[id] = true
}
else
{
client_print(id, print_center, "Достигнут лимит AWP В команде!")
return PLUGIN_HANDLED;
}
}
}
}
return PLUGIN_CONTINUE;
}
public OldMenusHook(id, iKey)
{
if(is_user_hltv(id) || is_user_bot(id)) return 0;
if(get_playersnum() < get_cvar_num("awp_players_low"))
{
return CheckKeys(id, iKey);
}
else if(get_cvar_num("awp_limit") == 1)
{
if(get_cvar_num("awp_limit_immun") == 1 && get_user_flags(id) & FLAG) return 0;
if(cs_get_user_team(id) == CS_TEAM_T)
{
if(T >= get_cvar_num("awp_limit_max"))
return CheckKeys(id, iKey);
}
else if(cs_get_user_team(id) == CS_TEAM_CT)
{
if(CT >= get_cvar_num("awp_limit_max"))
return CheckKeys(id, iKey);
}
}
return PLUGIN_CONTINUE;
}
public ClCmdMenuSelect(id)
{
if(!is_user_alive(id) || get_pdata_int(id, 205) != 6)
return PLUGIN_CONTINUE;
new sSlot[3];
if(read_argv(1, sSlot, charsmax(sSlot)))
return CheckKeys(id, str_to_num(sSlot));
return PLUGIN_CONTINUE;
}
CheckKeys(id, iKey)
{
new team = get_user_team(id);
if((team == 1 && iKey != 4) || (team == 2 && iKey != 5))
return PLUGIN_CONTINUE;
cmdawp(id);
return PLUGIN_HANDLED;
}
public curwp(id)
{
if(is_user_hltv(id) || is_user_bot(id)) return 0;
if(get_playersnum() < get_cvar_num("awp_players_low"))
{
if(pev(id, pev_weapons) & (1 << CSW_AWP))
{
if(!(cs_get_user_team(id) == CS_TEAM_SPECTATOR))
{
client_print(id, print_center, "На сервере низкий онлайн, AWP отключено!")
set_task(0.1, "drop", id)
}
}
}
return PLUGIN_HANDLED
}
public wp(id)
{
if(is_user_hltv(id) || is_user_bot(id)) return 0;
if(get_playersnum() < get_cvar_num("awp_players_low"))
{
if(pev(id, pev_weapons) & (1 << CSW_AWP))
{
if(!(cs_get_user_team(id) == CS_TEAM_SPECTATOR))
{
client_print(id, print_center, "На сервере низкий онлайн, AWP отключено!")
set_task(0.1, "drop", id)
}
}
}
else if(get_cvar_num("awp_limit") == 1)
{
if(get_cvar_num("awp_limit_immun") == 1 && get_user_flags(id) & FLAG) return 0;
if(useawp[id] == true) return 0;
if(pev(id, pev_weapons) & (1 << CSW_AWP))
{
if(cs_get_user_team(id) == CS_TEAM_T)
{
if(T < get_cvar_num("awp_limit_max"))
{
T++;
useawp[id] = true
}
else
{
client_print(id, print_center, "Достигнут лимит AWP В команде!")
set_task(0.1, "drop", id)
}
}
else if(cs_get_user_team(id) == CS_TEAM_CT)
{
if(CT < get_cvar_num("awp_limit_max"))
{
CT++;
useawp[id] = true
}
else
{
client_print(id, print_center, "Достигнут лимит AWP В команде!")
set_task(0.1, "drop", id)
}
}
}
}
return PLUGIN_HANDLED
}
public drop(id)
{
fm_strip_user_gun(id, CSW_AWP)
}
public fwdTouch(ent, id)
{
if(is_user_hltv(id) || is_user_bot(id)) return 0;
if(get_playersnum() < get_cvar_num("awp_players_low"))
{
if(!(cs_get_user_team(id) == CS_TEAM_SPECTATOR))
{
client_print(id, print_center, "На сервере низкий онлайн, AWP отключено!")
return HAM_SUPERCEDE;
}
}
else if(get_cvar_num("awp_limit") == 1)
{
if(get_cvar_num("awp_limit_immun") == 1 && get_user_flags(id) & FLAG) return 0;
if(cs_get_user_team(id) == CS_TEAM_T)
{
if(T >= get_cvar_num("awp_limit_max"))
{
client_print(id, print_center, "Достигнут лимит AWP В команде!")
return HAM_SUPERCEDE;
}
}
else if(cs_get_user_team(id) == CS_TEAM_CT)
{
if(CT >= get_cvar_num("awp_limit_max"))
{
client_print(id, print_center, "Достигнут лимит AWP В команде!")
return HAM_SUPERCEDE;
}
}
}
return PLUGIN_HANDLED
}
public ClCmdDrop(pPlayer)
{
if(get_cvar_num("awp_limit_immun") == 1 && get_user_flags(pPlayer) & FLAG) return 0;
if(is_user_hltv(pPlayer) || is_user_bot(pPlayer)) return 0;
if(read_argc() == 1)
{
new pEntity = get_pdata_cbase(pPlayer, 373);
if(!is_valid_ent(pEntity))
return PLUGIN_CONTINUE;
if(cs_get_weapon_id(pEntity) == CSW_AWP)
{
if(cs_get_user_team(pPlayer) == CS_TEAM_T)
T--;
else if(cs_get_user_team(pPlayer) == CS_TEAM_CT)
CT--;
useawp[pPlayer] = false
}
}
return PLUGIN_CONTINUE;
}
Заранее спасибо за помощь
Вложения
-
7,9 KB Просмотры: 7
Последнее редактирование: