Помогите с плагином!

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
27
Реакции
0
Неверный раздел форума
Ошибка
Как сделать так, чтобы каждый раунд, выводилось сообщение только игроку с админ флагом, а не всем.
ОС
Linux
Amx Mod X
1.9.0
Билд
ReHLDS
ReGamedll
---
Версия Metamod
Metamod-r v1.3.0.131, API (5:13)
Список метамодулей
[ 1] Reunion       RUN   -    reunion.so                v0.1.0.137   ini  Start Never
[ 2] AMX Mod X RUN - amxmodx.so v1.9.0.5294 ini Start ANY
[ 3] YaPB RUN - yapb.so v4.3.734 ini Chlvl ANY
[ 4] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[ 5] CSX RUN - csx_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[ 6] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[ 7] MySQL RUN - mysql_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[ 8] Engine RUN - engine_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[ 9] Fun RUN - fun_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[10] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
Список плагинов
[  1] Admin Loader            3.5         neygomon          admin_loader.am  running  
[ 2] FreshBans 1.4.8b kanagava fresh_bans.amxx running
[ 3] Admin Chat 1.9.0.5294 AMXX Dev Team adminchat.amxx running
[ 4] Admin Commands 1.9.0.5294 AMXX Dev Team admincmd.amxx running
[ 5] Anti Flood 1.9.0.5294 AMXX Dev Team antiflood.amxx running
[ 6] Commands Menu 1.9.0.5294 AMXX Dev Team cmdmenu.amxx running
[ 7] Info. Messages 1.9.0.5294 AMXX Dev Team imessage.amxx running
[ 8] Menus Front-End 1.9.0.5294 AMXX Dev Team menufront.amxx running
[ 9] Maps Menu 1.9.0.5294 AMXX Dev Team mapsmenu.amxx running
[ 10] NextMap 1.9.0.5294 AMXX Dev Team nextmap.amxx running
[ 11] Nextmap Chooser 1.9.0.5294 AMXX Dev Team mapchooser.amxx running
[ 12] Players Menu 1.9.0.5294 AMXX Dev Team plmenu.amxx running
[ 13] Plugin Menu 1.9.0.5294 AMXX Dev Team pluginmenu.amxx running
[ 14] Restrict Weapons 1.9.0.5294 AMXX Dev Team restmenu.amxx running

[ 15] TimeLeft 1.9.0.5294 AMXX Dev Team timeleft.amxx running
[ 16] Scrolling Message 1.9.0.5294 AMXX Dev Team scrollmsg.amxx running
[ 17] Admin Votes 1.9.0.5294 AMXX Dev Team adminvote.amxx running
[ 18] CS Misc. Stats 1.9.0.5294 AMXX Dev Team miscstats.amxx running
[ 19] CS Stats Logging 1.9.0.5294 AMXX Dev Team stats_logging.a running
[ 20] Stats Configuration 1.9.0.5294 AMXX Dev Team statscfg.amxx running
[ 21] vip_guns 1.0 Medved vip_guns.amxx running
[ 22] [ZP] Extra: Leader ak4 1.0 Crock / =) (Popr azp_weapon_ak47 running
[ 23] [ZP] Extra: AWP-Z 1.0 Crock / =) (Popr azp_weapon_awp- running
[ 24] [ZP] Extra: Dual Infin 1.0 Crock / =) (Popr azp_weapon_infi running
[ 25] [ZP] Extra: Kel-Tec KS 1.0 Crock / =) (Popr azp_weapon_ksg1 running
[ 26] [ZP] Extra: TAR-21 1.0 Crock / =) (Popr azp_weapon_tar2 running
[ 27] Advanced VoteBan 1.0.0 guipatinador advanced_voteba running
[ 28] Injector X 1.0 Deadly|Darkness dd_injectorX.am running
Автор плагина
Deadly|Darkness
Версия плагина
1.0
Исходный код
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define HEAL 50.0 //Количество здоровья, которое будет восстановлено
#define MAXHEALTH 100.0 //Порог здоровья
#define VIP_AMMO 1 //Количество шприцов для VIP'a
#define PLR_AMMO 0 //Количество шприцов для обычного игрока
#define FLAG ADMIN_LEVEL_H // Флаг VIP'a

#define ANIM_USE 0
#define OLD_KN_DRAW 3
#define TIME_ANIM_HEAL 2.0
#define TIME_DRAW_KNF 1.1

#define TASK_HEAL 25071973

#define is_valid_player(%0) (1 <= %0 <= g_maxplayers)

const m_flNextAttack = 83;

new const v_injectorX[] = "models/irkpublic18/v_injectorX.mdl"; // v_ модель шприца
new const p_injectorX[] = "models/irkpublic18/p_injectorX.mdl"; // p_ модель шприца

new const v_old_knife[] = "models/v_knife.mdl"; // v_ модель ножа, которая возвращается после использования
new const p_old_knife[] = "models/p_knife.mdl"; // p_ модель ножа, которая возвращается после использования
// Если несколько моделей ножа, то возвращайте модель через натив!
new const heal_sound[] = { "items/medshot4.wav" }; // Звук при лечении

new shpr_ammo[33];
new g_maxplayers;

public plugin_init()
{
register_plugin("Injector X", "1.0", "Deadly|Darkness");
register_clcmd("drop", "use_inj");
register_event("HLTV", "InjInfo", "a", "1=0", "2=0");

RegisterHam(Ham_Spawn, "player", "ham_spawn_post", 1);
RegisterHam(Ham_Item_Holster, "weapon_knife", "fw_Knife_Holstered", 1);

g_maxplayers = get_maxplayers();
}

public InjInfo(id)

{
if(get_user_flags(id) & FLAG)

{

client_print_color(id, print_team_default, "^3[^4IRKUTSK PUBLIC 18+^3] ^1Вам доступен один шприц");
client_print_color(id, print_team_default, "^3[^4IRKUTSK PUBLIC 18+^3] ^1Чтобы воспользоваться: ^4Возьми Нож и жми на G");

}

}

public plugin_precache()
{
precache_model(v_injectorX);
precache_model(p_injectorX);
precache_model(v_old_knife);
precache_model(p_old_knife);
precache_sound(heal_sound);

}

public ham_spawn_post(id)
{
if(get_user_flags(id) & FLAG)
shpr_ammo[id] = VIP_AMMO;

else shpr_ammo[id] = PLR_AMMO;
}

public use_inj(id)
{
if(!is_user_alive(id))
return;

if(get_user_weapon(id) != CSW_KNIFE || !shpr_ammo[id])
return;

remove_task(id+TASK_HEAL);
set_pdata_float(id, m_flNextAttack, TIME_ANIM_HEAL+0.1, 5);

set_pev(id, pev_viewmodel2, v_injectorX);
set_pev(id, pev_weaponmodel2, p_injectorX);

play_weapon_animation(id, ANIM_USE);
set_task(TIME_ANIM_HEAL, "use_inj2", id+TASK_HEAL);
}

public use_inj2(id)
{
id -= TASK_HEAL;

if(is_user_alive(id))
{
shpr_ammo[id]--;
set_pev(id, pev_viewmodel2, v_old_knife);
set_pev(id, pev_weaponmodel2, p_old_knife);
set_pdata_float(id, m_flNextAttack, TIME_DRAW_KNF, 5);
play_weapon_animation(id, OLD_KN_DRAW);
set_hp(id);
}
}

public fw_Knife_Holstered(weapon)
{
new id = get_pdata_cbase(weapon, 41, 4);

if(!pev_valid(weapon))
return HAM_IGNORED;

if(is_valid_player(id))
remove_task(id+TASK_HEAL);

return HAM_IGNORED;

}

stock set_hp(plr)
{
new hp = pev(plr, pev_health);

if(hp < MAXHEALTH)
{
if(hp + HEAL > MAXHEALTH)
set_pev(plr, pev_health, MAXHEALTH);
else set_pev(plr, pev_health, hp + HEAL);
emit_sound(plr, CHAN_BODY, heal_sound, 1.0, ATTN_NORM, 0, PITCH_NORM);
client_print_color(plr, print_team_default, "^3[^4IRKUTSK PUBLIC 18+^3] ^1Вы пополнили свое здоровье на ^430 HP. Осталось %i шприцов", shpr_ammo[plr]);
}
}

stock play_weapon_animation(const Player, const Sequence)
{
set_pev(Player, pev_weaponanim, Sequence);

message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player);
write_byte(Sequence);
write_byte(pev(Player, pev_body));
message_end();
}
Помогите, как поставить проверку. Чтобы каждый раунд, выводилось сообщение о том, что доступно такое-то количество шприцов, только администратору, а не всем игрокам. (Код начинается public InjInfo(id))
 
Сообщения
3,387
Реакции
1,485
Помог
125 раз(а)
Vmfrussian91, там уже есть проверка на флаг доступа. if(get_user_flags(id) & FLAG)
 
Сообщения
27
Реакции
0
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу