Код:
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <hamsandwich>
#include <fakemeta_util>
#include <colorchat2>
#include <grenade_key>
#pragma tabsize 0
#define NAME "[MG] Hats"
#define VERSION "0.1"
#define AUTHOR "Nickron"
const OFFSET_CSMENUCODE = 205;
#define get_bit(%1,%2) (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2) %1 |= (1 << (%2 & 31))
#define clr_bit(%1,%2) %1 &= ~(1 << (%2 & 31))
new const g_hat_models[][] = { "models/b_hats/mg_cow.mdl", "models/b_hats/mg_devil_fix.mdl", "models/b_hats/mg_slon.mdl", "models/b_hats/mg_pony.mdl", "models/b_hats/mg_pony_2.mdl","models/b_hats/mg_kot.mdl", "models/b_hats/mg_cher.mdl", "models/b_hats/mg_fish.mdl" }
new const g_mg_life[][] = { "models/MG_MODELS/mg_life_hat/mg_clock.mdl", "models/MG_MODELS/mg_life_hat/mg_panda.mdl", "models/MG_MODELS/mg_life_hat/mg_dino.mdl", "models/MG_MODELS/mg_life_hat/mg_ping.mdl", "models/MG_MODELS/mg_life_hat/mg_ghost.mdl","models/MG_MODELS/mg_life_hat/mg_titan.mdl", "models/MG_MODELS/mg_life_hat/mg_jpon.mdl" }
new const g_banan[][] = { "models/player/banan/banan.mdl" }
new const g_kulogram[][] = { "models/player/Kulogram/Kulogram.mdl" }
new const g_shadow[][] = { "models/player/Shadow/Shadow.mdl" }
new const g_batman[][] = { "models/player/Batman/Batman.mdl" }
new hats[33];
new mg_hats[33];
new has_hat[33], has_model[33]
public plugin_init()
{
register_plugin(NAME, VERSION, AUTHOR)
register_clcmd("say /hats", "menuser")
register_clcmd("say_team /hats", "menuser")
register_clcmd("hats", "menuser")
}
public plugin_precache()
{
static i
for(i = 0; i < sizeof(g_hat_models); i++)
{
precache_model(g_hat_models[i])
}
for(i = 0; i < sizeof(g_banan); i++)
{
precache_model(g_banan[i])
}
for(i = 0; i < sizeof(g_mg_life); i++)
{
precache_model(g_mg_life[i])
}
for(i = 0; i < sizeof(g_kulogram); i++)
{
precache_model(g_kulogram[i])
}
for(i = 0; i < sizeof(g_shadow); i++)
{
precache_model(g_shadow[i])
}
for(i = 0; i < sizeof(g_batman); i++)
{
precache_model(g_batman[i])
}
}
/*===============================================================================
=
Коннект
================================================================================
=*/
public client_putinserver(id)
{
if( is_valid_ent(hats[id]) )
{
remove_entity(hats[id])
hats[id] = 0;
}
if( is_valid_ent(mg_hats[id]) )
{
remove_entity(mg_hats[id])
mg_hats[id] = 0;
}
}
/*===============================================================================
=
Гл меню
================================================================================
=*/
public menuser(id)
{
new menuser_id = menu_create("\r[\yKH|HATS\r] \wМеню шапок", "menuser_handler");
new menuser_callback = menu_makecallback("menuser_callback");
menu_additem(menuser_id,"Костюм: \r[\yКоровы\r]", "1", 0,menuser_callback);
menu_additem(menuser_id,"Костюм: \r[\yДьявола\r]","2",0,menuser_callback);
menu_additem(menuser_id,"Костюм: \r[\yСлона\r]","3",0,menuser_callback);
menu_additem(menuser_id,"Костюм: \r[\yПони\r]","4",0,menuser_callback);
menu_additem(menuser_id,"Костюм: \r[\yПони Black\r]","5",0,menuser_callback);
menu_additem(menuser_id,"Костюм: \r[\yКота\r]","6",0, menuser_callback);
menu_additem(menuser_id,"Костюм: \r[\yЧебурашки\r]","7",0, menuser_callback);
menu_additem(menuser_id,"Новинка: \r[\yЖивые Костюмы\r]^n","8",0, 0-1);
menu_additem(menuser_id,"Модели: \r[\yЗа уровни \wLvl\r] \r[\wNew\r]","9",0,-1);
menu_addblank(menuser_id,1);
menu_additem(menuser_id,"Выход","0",0,-1);
menu_setprop(menuser_id,MPROP_PERPAGE,0);
set_pdata_int( id, OFFSET_CSMENUCODE, 0);
menu_display(id,menuser_id,0);
return PLUGIN_HANDLED;
}
public menuser_callback(id,menu,item)
{
new acc,data[3],szText[128],callb;
menu_item_getinfo(menu,item,acc,data,2,szText,127,callb);
new key = str_to_num(data);
new szStatus[64];
if( key != 0 && key == has_hat[id]){
format(szStatus,63,"%s \r[\wВыбрано\r]",szText);
menu_item_setname(menu,item,szStatus);
return ITEM_DISABLED;
}
return ITEM_ENABLED;
}
/*===============================================================================
=
Действие гл. меню
================================================================================
=*/
public menuser_handler(id,menu,item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[3],name[64],access,callback,menuDestroyed;
menu_item_getinfo(menu, item, access, data, charsmax(data), name, charsmax(name), callback);
new key = str_to_num(data);
switch(key)
{
case 0: menuDestroyed = menu_destroy(menu);
case 1:
{
if(has_hat[id] == 1)
return PLUGIN_HANDLED
remove_entity(hats[id])
hats[id] = 0;
new name[32]
get_user_name(id, name, 31)
ColorChat(0, RED, "^1[^4KH|HATS^1] ^3Игрок ^4%s ^3надел Костюм ^4Коровы", name)
hats[id] = create_entity( "info_target" )
if (is_valid_ent(hats[id]))
{
set_pev(hats[id], pev_movetype, MOVETYPE_FOLLOW);
set_pev(hats[id], pev_aiment, id);
set_pev(hats[id], pev_classname, "hat");
engfunc(EngFunc_SetModel, hats[id], "models/b_hats/mg_cow.mdl");
has_hat[id] = 1
}
}
case 2:
{
if(has_hat[id] == 2)
return PLUGIN_HANDLED
remove_entity(hats[id])
hats[id] = 0;
new name[32]
get_user_name(id, name, 31)
ColorChat(0, RED, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок ^4%s ^3надел Костюм ^4Дьявола", name)
hats[id] = create_entity( "info_target" )
if (is_valid_ent(hats[id]))
{
set_pev(hats[id], pev_movetype, MOVETYPE_FOLLOW);
set_pev(hats[id], pev_aiment, id);
set_pev(hats[id], pev_classname, "hat");
engfunc(EngFunc_SetModel, hats[id], "models/b_hats/mg_devil_fix.mdl");
has_hat[id] = 2
}
}
case 3:
{
if(has_hat[id] == 3)
return PLUGIN_HANDLED
remove_entity(hats[id])
hats[id] = 0;
new name[32]
get_user_name(id, name, 31)
ColorChat(0, RED, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок ^4%s ^3надел Костюм ^4Слона", name)
hats[id] = create_entity( "info_target" )
if (is_valid_ent(hats[id]))
{
set_pev(hats[id], pev_movetype, MOVETYPE_FOLLOW);
set_pev(hats[id], pev_aiment, id);
set_pev(hats[id], pev_classname, "hat");
engfunc(EngFunc_SetModel, hats[id], "models/b_hats/mg_slon.mdl");
has_hat[id] = 3
}
}
case 4:
{
if(has_hat[id] == 4)
return PLUGIN_HANDLED
remove_entity(hats[id])
hats[id] = 0;
new name[32]
get_user_name(id, name, 31)
ColorChat(0, RED, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок ^4%s ^3надел Костюм ^4Пони", name)
hats[id] = create_entity( "info_target" )
if (is_valid_ent(hats[id]))
{
set_pev(hats[id], pev_movetype, MOVETYPE_FOLLOW);
set_pev(hats[id], pev_aiment, id);
set_pev(hats[id], pev_classname, "hat");
engfunc(EngFunc_SetModel, hats[id], "models/b_hats/mg_pony.mdl");
has_hat[id] = 4
}
}
case 5:
{
if(has_hat[id] == 5)
return PLUGIN_HANDLED
remove_entity(hats[id])
hats[id] = 0;
new name[32]
get_user_name(id, name, 31)
ColorChat(0, RED, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок ^4%s ^3надел Костюм ^4Пони Чародей", name)
hats[id] = create_entity( "info_target" )
if (is_valid_ent(hats[id]))
{
set_pev(hats[id], pev_movetype, MOVETYPE_FOLLOW);
set_pev(hats[id], pev_aiment, id);
set_pev(hats[id], pev_classname, "hat");
engfunc(EngFunc_SetModel, hats[id], "models/b_hats/mg_pony_2.mdl");
has_hat[id] = 5
}
}
case 6:
{
if(has_hat[id] == 6)
return PLUGIN_HANDLED
remove_entity(hats[id])
hats[id] = 0;
new name[32]
get_user_name(id, name, 31)
ColorChat(0, RED, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок ^4%s ^3надел Костюм ^4Кота", name)
hats[id] = create_entity( "info_target" )
if (is_valid_ent(hats[id]))
{
set_pev(hats[id], pev_movetype, MOVETYPE_FOLLOW);
set_pev(hats[id], pev_aiment, id);
set_pev(hats[id], pev_classname, "hat");
engfunc(EngFunc_SetModel, hats[id], "models/b_hats/mg_kot.mdl");
has_hat[id] = 6
}
}
case 7:
{
if(has_hat[id] == 7)
return PLUGIN_HANDLED
remove_entity(hats[id])
hats[id] = 0;
new name[32]
get_user_name(id, name, 31)
ColorChat(0, RED, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок ^4%s ^3надел Костюм ^4Чебурашки", name)
hats[id] = create_entity( "info_target" )
if (is_valid_ent(hats[id]))
{
set_pev(hats[id], pev_movetype, MOVETYPE_FOLLOW);
set_pev(hats[id], pev_aiment, id);
set_pev(hats[id], pev_classname, "hat");
engfunc(EngFunc_SetModel, hats[id], "models/b_hats/mg_cher.mdl");
has_hat[id] = 7
}
}
case 8:
{
mg_life_models(id)
}
case 9:
{
My_Menu(id);
}
}
if (!menuDestroyed) menu_destroy(menu);
return PLUGIN_HANDLED;
}
/*===============================================================================
=
Гл меню
================================================================================
=*/
public My_Menu(id)
{
new i_Menu = menu_create("\r[ТОНКИЙ НАДРЕЗ]Hats:^n\yМодели за уровень", "menu_handler")
if(get_level(id) <30)
menu_additem(i_Menu, "\r[\dМодель Банана\r]\w[\d30 \yLVL\w]", "1", 0)
else
menu_additem(i_Menu, "\r[\yМодель Банана\r]\w[\r30 \yLVL\w]", "1", 0)
if(get_level(id) <80)
menu_additem(i_Menu, "\r[\dМодель Черепаха\r]\w[\d80 \yLVL\w]", "2", 0)
else
menu_additem(i_Menu, "\r[\yМодель Черепаха\r]\w[\r80 \yLVL\w]", "2", 0)
if(get_level(id) <100)
menu_additem(i_Menu, "\r[\dМодель Shadow\r]\w[\d100 \yLVL\w]", "3", 0)
else
menu_additem(i_Menu, "\r[\yМодель Shadow\r]\w[\r100 \yLVL\w]", "3", 0)
if(get_level(id) <150)
menu_additem(i_Menu, "\r[\dМодель I'm Batman\r]\w[\d150 \yLVL\w]", "4", 0)
else
menu_additem(i_Menu, "\r[\yМодель I'm Batman\r]\w[\r150 \yLVL\w]", "4", 0)
menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, i_Menu, 0)
}
public menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Key = str_to_num(s_Data)
switch(i_Key)
{
case 1:
{
if(get_level(id) <30)
{
ColorChat(id,GREEN, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3У вас маленький ^4LVL^3, Должено быть не меньше ^4 30-го")
return PLUGIN_HANDLED;
}
get_level(id) <30
cs_set_user_model(id, "banan")
ColorChat(0,BLUE, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок: ^4%s ^1[^4 30-го LVL^1] ^3Одел модель ^4Банана", s_Name)
}
case 2:
{
if(get_level(id) <80)
{
ColorChat(id,GREEN, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3У вас маленький ^4LVL^3, Должено быть не меньше ^4 80-го")
return PLUGIN_HANDLED;
}
get_level(id) <80
cs_set_user_model(id, "Kulogram")
ColorChat(0,BLUE, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок: ^4%s ^1[^4 80-го LVL^1] ^3Одел модель ^4Черепахи", s_Name)
}
case 3:
{
if(get_level(id) <100)
{
ColorChat(id,GREEN, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3У вас маленький ^4LVL^3, Должено быть не меньше ^4 100-го")
return PLUGIN_HANDLED;
}
get_level(id) <100
cs_set_user_model(id, "Shadow")
ColorChat(0,BLUE, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок: ^4%s ^1[^4 100-го LVL^1] ^3Одел модель ^4Shadow", s_Name)
}
case 4:
{
if(get_level(id) <150)
{
ColorChat(id,GREEN, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3У вас маленький ^4LVL^3, Должено быть не меньше ^4 150-го")
return PLUGIN_HANDLED;
}
get_level(id) <150
cs_set_user_model(id, "Batman")
ColorChat(0,BLUE, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок: ^4%s ^1[^4 150-го LVL^1] ^3Одел модель ^4Batman", s_Name)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public mg_life_models(id)
{
new i_Menu = menu_create("\r[ТОНКИЙ НАДРЕЗ]Life Hats:^n\yЖивые костюмы", "menu_handlerr")
menu_additem(i_Menu, "\r[\wЧасы\r]", "1", 0)
menu_additem(i_Menu, "\r[\wПанда\r]", "2", 0)
menu_additem(i_Menu, "\r[\wДино\r]", "3", 0)
menu_additem(i_Menu, "\r[\wПингвин\r]", "4", 0)
menu_additem(i_Menu, "\r[\wПризрак\r]", "5", 0)
menu_additem(i_Menu, "\r[\wТитан\r]", "6", 0)
menu_additem(i_Menu, "\r[\wЯпонский флаг\r]", "7", 0)
menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, i_Menu, 0)
}
public menu_handlerr(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Key = str_to_num(s_Data)
switch(i_Key)
{
case 1:
{
remove_entity(mg_hats[id])
mg_hats[id] = 0;
new name[32]
get_user_name(id, name, 31)
ColorChat(0, RED, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок ^4%s ^3Оживил ^4Часы ^3на спине", name)
mg_hats[id] = create_entity( "info_target" )
if (is_valid_ent(mg_hats[id])){
set_pev(mg_hats[id], pev_movetype, MOVETYPE_FOLLOW);
set_pev(mg_hats[id], pev_aiment, id);
set_pev(mg_hats[id], pev_classname, "hat");
entity_set_int(mg_hats[id], EV_INT_sequence, 1)
entity_set_float(mg_hats[id], EV_FL_framerate, 1.0)
entity_set_float(mg_hats[id], EV_FL_frame, 0.0)
engfunc(EngFunc_SetModel, mg_hats[id], "models/MG_MODELS/mg_life_hat/mg_clock.mdl");
}
}
case 2:
{
remove_entity(mg_hats[id])
mg_hats[id] = 0;
new name[32]
get_user_name(id, name, 31)
ColorChat(0, RED, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок ^4%s ^3Оживил ^4Панду ^3на спине", name)
mg_hats[id] = create_entity( "info_target" )
if (is_valid_ent(mg_hats[id])){
set_pev(mg_hats[id], pev_movetype, MOVETYPE_FOLLOW);
set_pev(mg_hats[id], pev_aiment, id);
set_pev(mg_hats[id], pev_classname, "hat");
entity_set_int(mg_hats[id], EV_INT_sequence, 1)
entity_set_float(mg_hats[id], EV_FL_framerate, 1.0)
entity_set_float(mg_hats[id], EV_FL_frame, 0.0)
engfunc(EngFunc_SetModel, mg_hats[id], "models/MG_MODELS/mg_life_hat/mg_panda.mdl");
}
}
case 3:
{
remove_entity(mg_hats[id])
mg_hats[id] = 0;
new name[32]
get_user_name(id, name, 31)
ColorChat(0, RED, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок ^4%s ^3Оживил ^4Дино ^3на спине", name)
mg_hats[id] = create_entity( "info_target" )
if (is_valid_ent(mg_hats[id])){
set_pev(mg_hats[id], pev_movetype, MOVETYPE_FOLLOW);
set_pev(mg_hats[id], pev_aiment, id);
set_pev(mg_hats[id], pev_classname, "hat");
entity_set_int(mg_hats[id], EV_INT_sequence, 1)
entity_set_float(mg_hats[id], EV_FL_framerate, 1.0)
entity_set_float(mg_hats[id], EV_FL_frame, 0.0)
engfunc(EngFunc_SetModel, mg_hats[id], "models/MG_MODELS/mg_life_hat/mg_dino.mdl");
}
}
case 4:
{
remove_entity(mg_hats[id])
mg_hats[id] = 0;
new name[32]
get_user_name(id, name, 31)
ColorChat(0, RED, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок ^4%s ^3Оживил ^4Пингвина ^3на спине", name)
mg_hats[id] = create_entity( "info_target" )
if (is_valid_ent(mg_hats[id])){
set_pev(mg_hats[id], pev_movetype, MOVETYPE_FOLLOW);
set_pev(mg_hats[id], pev_aiment, id);
set_pev(mg_hats[id], pev_classname, "hat");
entity_set_int(mg_hats[id], EV_INT_sequence, 1)
entity_set_float(mg_hats[id], EV_FL_framerate, 1.0)
entity_set_float(mg_hats[id], EV_FL_frame, 0.0)
engfunc(EngFunc_SetModel, mg_hats[id], "models/MG_MODELS/mg_life_hat/mg_ping.mdl");
}
}
case 5:
{
remove_entity(mg_hats[id])
mg_hats[id] = 0;
new name[32]
get_user_name(id, name, 31)
ColorChat(0, RED, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок ^4%s ^3Оживил ^4Призрака ^3на спине", name)
mg_hats[id] = create_entity( "info_target" )
if (is_valid_ent(mg_hats[id])){
set_pev(mg_hats[id], pev_movetype, MOVETYPE_FOLLOW);
set_pev(mg_hats[id], pev_aiment, id);
set_pev(mg_hats[id], pev_classname, "hat");
entity_set_int(mg_hats[id], EV_INT_sequence, 1)
entity_set_float(mg_hats[id], EV_FL_framerate, 1.0)
entity_set_float(mg_hats[id], EV_FL_frame, 0.0)
engfunc(EngFunc_SetModel, mg_hats[id], "models/MG_MODELS/mg_life_hat/mg_ghost.mdl");
}
}
case 6:
{
remove_entity(mg_hats[id])
mg_hats[id] = 0;
new name[32]
get_user_name(id, name, 31)
ColorChat(0, RED, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок ^4%s ^3Оживил ^4Титана ^3на спине", name)
mg_hats[id] = create_entity( "info_target" )
if (is_valid_ent(mg_hats[id])){
set_pev(mg_hats[id], pev_movetype, MOVETYPE_FOLLOW);
set_pev(mg_hats[id], pev_aiment, id);
set_pev(mg_hats[id], pev_classname, "hat");
entity_set_int(mg_hats[id], EV_INT_sequence, 1)
entity_set_float(mg_hats[id], EV_FL_framerate, 1.0)
entity_set_float(mg_hats[id], EV_FL_frame, 0.0)
engfunc(EngFunc_SetModel, mg_hats[id], "models/MG_MODELS/mg_life_hat/mg_titan.mdl");
}
}
case 7:
{
remove_entity(mg_hats[id])
mg_hats[id] = 0;
new name[32]
get_user_name(id, name, 31)
ColorChat(0, RED, "^1[^4ТОНКИЙ НАДРЕЗ^1] ^3Игрок ^4%s ^3Оживил ^4Японские флаги ^3на спине", name)
mg_hats[id] = create_entity( "info_target" )
if (is_valid_ent(mg_hats[id])){
set_pev(mg_hats[id], pev_movetype, MOVETYPE_FOLLOW);
set_pev(mg_hats[id], pev_aiment, id);
set_pev(mg_hats[id], pev_classname, "hat");
entity_set_int(mg_hats[id], EV_INT_sequence, 1)
entity_set_float(mg_hats[id], EV_FL_framerate, 1.0)
entity_set_float(mg_hats[id], EV_FL_frame, 0.0)
engfunc(EngFunc_SetModel, mg_hats[id], "models/MG_MODELS/mg_life_hat/mg_jpon.mdl");
}
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}