Код
#include < amxmodx >
#include < cstrike >
#include < hamsandwich >
#include < dhudmessage >
#include < fakemeta_util >
#define PLUGIN "[ JB ] Class"
#define VERSION "0.1"
#define AUTHOR "Opo4uMapy"
#define FLAG ADMIN_BAN
new g_Sux[33], g_Bur[33], g_Bes[33], g_Siz[33]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "Start", 1)
RegisterHam(Ham_TakeDamage,"player","Take_Damage")
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
register_event("CurWeapon", "WeaponChange", "be", "1=1")
register_logevent("Round_End", 2, "1=Round_End")
register_dictionary("jb_class.txt")
}
public Start(id) if(get_user_team(id) == 1) menu(id)
public Round_End()
{
for(new id = 0; id <= get_maxplayers(); id++)
{
g_Sux[id] = false
g_Bur[id] = false
g_Bes[id] = false
g_Siz[id] = false
}
}
public fw_PlayerKilled(victim, attacker, shouldgib)
{
if(g_Sux[victim])
{
g_Sux[victim] = false
return HAM_HANDLED
}
else if(g_Bur[victim])
{
g_Bur[victim] = false
return HAM_HANDLED
}
else if(g_Bes[victim])
{
g_Bes[victim] = false
return HAM_HANDLED
}
else if(g_Siz[victim])
{
g_Siz[victim] = false
return HAM_HANDLED
}
return HAM_IGNORED
}
public WeaponChange(id) if(g_Sux[id]) set_pev(id, pev_maxspeed, 400.0)
public Take_Damage(victim, inflictor, attacker, Float:damage)
{
if (victim != attacker && is_user_connected(attacker))
{
if(get_user_weapon(attacker) == CSW_KNIFE)
if(g_Bes[attacker]) SetHamParamFloat(4, 100.0)
}
}
public menu(id)
{
new Text[512]
formatex(Text, charsmax(Text), "%L", id, "MENU_NAME")
new menu = menu_create( Text, "menu_handler" )
formatex(Text, charsmax(Text), "%L", id, "CLASS_NAME_1") // Сухой - Скорость
menu_additem(menu, Text, "1", 0)
formatex(Text, charsmax(Text), "%L", id, "CLASS_NAME_2") //Бурят - Грава
menu_additem(menu, Text, "2", 0)
formatex(Text, charsmax(Text), "%L", id, "CLASS_NAME_3") //Бес - Сильный
menu_additem(menu, Text, "3", 0)
if(get_user_flags(id) & FLAG)
{
formatex(Text, charsmax(Text), "%L", id, "CLASS_NAME_4") //Сизый - Дигл
menu_additem(menu, Text, "4", 0)
}
else
{
formatex(Text, charsmax(Text), "%L", id, "CLASS_NAME_4_NOADMIN") //Сизый - Дигл
menu_additem(menu, Text, "4", 0)
}
menu_setprop(menu, MPROP_EXITNAME, "Exit")
menu_display(id,menu,0)
return PLUGIN_HANDLED
}
public menu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1:
{
color_chat(id, "%L", id, "TEXT_1")
set_pev(id, pev_maxspeed, 400.0)
fm_set_user_rendering(id, kRenderFxGlowShell, 255, 255, 0, kRenderNormal, 25)
set_dhudmessage( 255, 255, 0, 0.32, 0.43, 0, 1.00, 1.00, 0.10, 0.10, true)
show_dhudmessage(0, "%L", id, "TEXT_DHUD_1")
g_Sux[id] = true
}
case 2:
{
color_chat(id, "%L", id, "TEXT_2")
set_pev(id, pev_gravity, 0.6)
fm_set_user_rendering(id, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 25)
set_dhudmessage( 255, 255, 0, 0.32, 0.43, 0, 1.00, 1.00, 0.10, 0.10, true)
show_dhudmessage(0, "%L", id, "TEXT_DHUD_2")
g_Bur[id] = true
}
case 3:
{
color_chat(id, "%L", id, "TEXT_3")
fm_set_user_rendering(id, kRenderFxGlowShell, 255, 192, 203, kRenderNormal, 25)
set_dhudmessage( 255, 255, 0, 0.32, 0.43, 0, 1.00, 1.00, 0.10, 0.10, true)
show_dhudmessage(0, "%L", id, "TEXT_DHUD_3")
g_Bes[id] = true
}
case 4:
{
if(get_user_flags(id) & FLAG)
{
color_chat(id, "%L", id, "TEXT_4")
cs_set_weapon_ammo(give_item(id, "weapon_deagle"), 0)
cs_set_user_bpammo(id, CSW_DEAGLE, 3)
fm_set_user_rendering(id, kRenderFxGlowShell, 66, 170, 255, kRenderNormal, 25)
set_dhudmessage( 255, 255, 0, 0.32, 0.43, 0, 1.00, 1.00, 0.10, 0.10, true)
show_dhudmessage(0, "%L", id, "TEXT_DHUD_4")
g_Siz[id] = true
}
else
{
set_task(0.1, "menu", id)
color_chat(id, "%L", id, "TEXT_4_NOADMIN")
}
}
}
return PLUGIN_HANDLED
}
stock color_chat(const id, const input[], any:...)
{
new iCount = 1, iPlayers[32]
static szMsg[191]
vformat(szMsg, charsmax(szMsg), input, 3)
replace_all(szMsg, 190, "/g", "^4")
replace_all(szMsg, 190, "/y", "^1")
replace_all(szMsg, 190, "/ctr", "^3")
replace_all(szMsg, 190, "/w", "^0")
if(id) iPlayers[0] = id
else get_players(iPlayers, iCount, "ch")
for (new i = 0; i < iCount; i++)
{
if (is_user_connected(iPlayers[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, iPlayers[i])
write_byte(iPlayers[i])
write_string(szMsg)
message_end()
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\ rtf1\ ansi\ deff0{\ fonttbl{\ f0\ fnil Tahoma;}}n\ viewkind4\ uc1\ pard\ lang1049\ f0\ fs16 n\ par }
*/