Участник
Пользователь
- Сообщения
- 49
- Реакции
- 9
Всем привет!
По теории вероятности понял что сервер падает из-за плагина выдачи щита.
Плагин простой, но видимо в коде где-то косяк, что-то неправильно реализовано.
Подскажите пожалуйста, что изменить/подправить, что неправильно в коде.
Всем спасибо!
По теории вероятности понял что сервер падает из-за плагина выдачи щита.
Плагин простой, но видимо в коде где-то косяк, что-то неправильно реализовано.
Подскажите пожалуйста, что изменить/подправить, что неправильно в коде.
Всем спасибо!
Код:
#include <amxmodx>
#include <reapi>
#pragma semicolon 1
#define ACCESS_FLAG ADMIN_LEVEL_H // доступ
new bool:Shieldbloc[MAX_PLAYERS+1];
public plugin_init()
{
register_plugin("Shit", "1.0", "Ready");
register_clcmd("say /shit", "ClientCommand_Shit");
register_clcmd("say_team /shit", "ClientCommand_Shit");
register_clcmd("say /stop", "ClientCommand_Shitstop");
register_clcmd("say_team /stop", "ClientCommand_Shitstop");
RegisterHookChain(RG_CBasePlayer_Spawn, "Clientdropitem", 1);
RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "fwdHasRestrictItemPre", false);
}
public client_putinserver(id)
{
Shieldbloc[id] = false;
}
public client_disconnected(id)
{
Shieldbloc[id] = false;
}
public ClientCommand_Shit(id)
{
if(~get_user_flags(id) & ACCESS_FLAG)
{
client_print_color(id, print_team_default, "^4[Щит] У вас нет доступа покупки ^3супер щита^4!");
return PLUGIN_HANDLED;
}
if(!is_user_alive(id))
{
client_print_color(id, print_team_default, "^4[Щит] Вы должны быть ^3живы^4!");
return PLUGIN_HANDLED;
}
rg_drop_items_by_slot(id, InventorySlotType: 1);
rg_give_shield(id);
rg_give_item(id, "weapon_knife");
Shieldbloc[id] = true;
client_print_color(id, print_team_default, "^4[Щит] Вам выдан ^3щит^4!");
return HC_CONTINUE;
}
public ClientCommand_Shitstop(id)
{
Shieldbloc[id] = false;
}
public Clientdropitem(id)
{
if(Shieldbloc[id])
{
rg_drop_items_by_slot(id, InventorySlotType: 1);
rg_give_shield(id);
rg_give_item(id, "weapon_knife");
return PLUGIN_HANDLED;
}
return HC_CONTINUE;
}
public fwdHasRestrictItemPre(const id, const ItemID:item, ItemRestType:type)
{
if((1 << any:item) && Shieldbloc[id])
{
if(type == ITEM_TYPE_BUYING)
client_print(id, print_center, "*** Покупка запрещена! Вы Техник ***");
rg_drop_items_by_slot(id, InventorySlotType: 1);
return HC_SUPERCEDE;
}
return HC_CONTINUE;
}
Вложения
-
2 KB Просмотры: 3