//Todo List: Zombi Fertőzés hang!
// Menübe vissza számláló (ez egyenlőre nem akart össze jönni, a kódot eltávolítottam belőle)
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta_util>
#include <fakemeta>
#include <fun>
#include <engine>
#include <xs>
new const PLUGIN[] = "Deathrun Terrorista Menu"
new const AUTHOR[] = "Kiki33"
new const VERSION[] = "1.0"
#define TASKID_STRIPNGIVE 698
#define OFFSET_ARMOR 112
#define OFFSET_NVG 129
#define MODEL_CLASSNAME "player_model"
#define OFFSET_PRIMARYWEAPON 116
#define fm_get_user_armortype(%1) get_pdata_int(%1, OFFSET_ARMOR)
#define fm_set_user_armortype(%1,%2) set_pdata_int(%1, OFFSET_ARMOR, %2)
#define fm_reset_user_primary(%1) set_pdata_int(%1, OFFSET_PRIMARYWEAPON, 0)
#define HAS_NVG (1<<0)
#define HUDID 199999
#define HUD_HIDE_RHA (1<<3)
#define RAMBOTASK 8890
#define OFFSET_MONEY 115
#define VALASZTASID 100
#define KESZITO "By kiki33"
new g_MaxClients, g_HudText, g_iRounds = 5, g_korok = 5, g_vampirkor = 5, eszakaikor = 5, szellemkor = 6, hardkor = 8, g_Choosed, MessageSay;
new bool:elsoterror[33], bool:is_round_zombi, bool:is_round_normal, bool:is_round_alap, bool:is_round_rambo, bool:is_round_vampir, bool:is_round_ejszaka, bool:is_round_szellem, bool:is_round_respawn, bool:g_zombie[33];
new g_modelent[33], g_msg_flashlight, cvar_autonvg, jelenlegimod2, pcv_multi, tulmelegedes[33], bool:vannagypapa[33], Float:cl_pushangle[33][3], bool:nemkellmenu[33], g_Timer, gMsgMoney;
enum
{
CS_ARMOR_NONE = 0,
CS_ARMOR_KEVLAR,
CS_ARMOR_VESTHELM
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /tmenu", "deathrun_menu");
register_clcmd("menu", "deathrun_menu");
register_cvar(PLUGIN, KESZITO, FCVAR_SERVER)
MessageSay = get_user_msgid ( "SayText" );
g_msg_flashlight = get_user_msgid("Flashlight");
cvar_autonvg = register_cvar("dr_autonvg", "1");
gMsgMoney = get_user_msgid( "Money" );
pcv_multi = register_cvar("zp_vampire_multi", "1");
g_MaxClients = get_global_int(GL_maxClients);
g_HudText = CreateHudSyncObj();
jelenlegimod2 = register_cvar("dr_jelenlegi_mod", "Varakozas")
register_forward(FM_UpdateClientData, "UpdateClientData_Post", 1);
register_forward(FM_TraceLine, "forward_traceline", 1);
register_event("HLTV", "rr", "a", "1=0", "2=0");
register_event( "TextMsg", "EventRestart", "a", "2&#Game_C", "2&#Game_w" );
register_event("CurWeapon","switchweapon","be","1=1","2!29") ;
register_event("DeathMsg", "eventDeath", "a");
register_logevent( "logevent_round_start", 2, "1=Round_Start" );
RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_m249", "hook_m249" , 1 );
RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_m249", "fw_primary_attack_post", 1 );
RegisterHam(Ham_TakeDamage, "player", "HamTakeDamage");
RegisterHam(Ham_Killed,"player","Forward_PlayerKilled",1)
RegisterHam(Ham_Spawn, "player", "hamPlayerSpawn", 1);
RegisterHam(Ham_Use, "func_button", "key");
set_task(0.1, "huduzenet", HUDID, "", 0, "b");
register_dictionary("deathrun_gamedays.txt");
}
public logevent_round_start()
{
new iPlayers[ 32 ], iNum, i, id;
get_players( iPlayers, iNum, "c" );
for( i = 0; i < iNum; i++ )
{
id = iPlayers[ i ];
set_user_gravity(id, 1.0 );
set_user_maxspeed(id, 0.0 );
set_user_footsteps(id, 0 );
cs_reset_user_model(id);
}
}
public eventDeath( )
{
static victim
victim = read_data( 2 )
new penz = fm_get_user_money( victim )
if ( victim && penz >= 6000 && nemkellmenu[victim] == false && cs_get_user_team(victim) == CS_TEAM_CT && is_round_respawn == false)
{
new szMenu[38];
formatex( szMenu, charsmax(szMenu), "%L", LANG_PLAYER, "UJRAELEDES_KELL");
new Igen[38];
formatex( Igen, charsmax(Igen), "%L", LANG_PLAYER, "UJRAELEDES_IGEN");
new Nem[38];
formatex( Nem, charsmax(Nem), "%L", LANG_PLAYER, "UJRAELEDES_NEM");
new Nem2[38];
formatex( Nem2, charsmax(Nem2), "%L", LANG_PLAYER, "UJRAELEDES_NEM2");
new menum = menu_create( szMenu, "respawnhandler");
menu_additem(menum, Igen, "1");
menu_additem(menum, Nem, "2");
menu_additem(menum, Nem2, "3");
menu_display(victim, menum, 0);
}
}
public Forward_PlayerKilled(id)
{
if(is_round_respawn && is_dead_ct(id))
{
set_task(1.0, "respawnct", id)
}
}
public respawnct(id)
{
if(is_round_respawn && is_dead_ct(id))
{
ExecuteHam(Ham_CS_RoundRespawn,id);
// This is debug, respawn all dead cts!
new players[32], plNum
get_players(players, plNum, "bh") ;
for (new i = 0; i < plNum; i++)
{
if(cs_get_user_team(players[i]) == CS_TEAM_CT && !is_user_alive(players[i]))
{
ExecuteHam(Ham_CS_RoundRespawn,players[i])
}
}
}
}
public respawnhandler(id, menum, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menum);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menum, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new Key = str_to_num(data);
switch (Key)
{
case 1:
{
if(fm_get_user_money(id) >= 6000)
{
cs_set_user_money(id, fm_get_user_money(id) - 6000)
ExecuteHam(Ham_CS_RoundRespawn,id)
colored_print(id, "%L", LANG_PLAYER, "UJRAELEDES")
}
}
case 2:
{
menu_destroy(menum);
return PLUGIN_HANDLED;
}
case 3:
{
nemkellmenu[id] = true;
menu_destroy(menum);
return PLUGIN_HANDLED;
}
}
return 1;
}
public hook_m249(Weapon)
{
new Player = get_pdata_cbase(Weapon, 41, 4)
if(tulmelegedes[Player] <= 100 && is_round_rambo)
{
tulmelegedes[Player]++;
return 1;
}
return 1;
}
public fw_primary_attack_post( Weapon )
{
if(is_round_rambo)
{
new Player = get_pdata_cbase(Weapon, 41, 4)
if(vannagypapa[Player])
{
new Float:push[3]
pev(Player,pev_punchangle,push)
xs_vec_sub(push,cl_pushangle[Player],push)
xs_vec_mul_scalar(push,0.1,push)
xs_vec_add(push,cl_pushangle[Player],push)
set_pev(Player,pev_punchangle,push)
}
}
}
public UpdateClientData_Post( id, sendweapons, cd_handle ){
if ( !is_user_alive(id) ) return FMRES_IGNORED;
if(tulmelegedes[id] >= 100)
{
set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001 );
}
return FMRES_HANDLED;
}
public client_PreThink( id )
{
if( !is_user_alive(id) )
{
return PLUGIN_CONTINUE;
}
if(is_round_rambo)
{
new clip, ammo;
new weap = get_user_weapon(id, clip, ammo)
if(cs_get_user_team(id) == CS_TEAM_T && weap == CSW_M249)
{
set_hudmessage(255, 255, 255, -1.0, 0.37, 0, 0.00001, 0.00001,_,_)
show_hudmessage(id, "%L", LANG_PLAYER, "TULMELEGEDES", tulmelegedes[id])
}
if(tulmelegedes[id] >= 100)
{
set_pev( id, pev_button, pev(id,pev_button) & ~IN_ATTACK );
}
}
return PLUGIN_CONTINUE;
}
public plugin_precache()
{
precache_model("models/v_knife_zombie.mdl");
precache_model("models/player/zombie_source/zombie_source.mdl");
precache_model("models/player/vampire_terror/vampire_terror.mdl");
precache_model("models/player/ghost_eba/ghost_eba.mdl");
}
public rr()
{
server_cmd("dr_jelenlegi_mod Varakozas");
g_iRounds++;
g_korok++;
g_vampirkor++;
eszakaikor++;
szellemkor++;
hardkor++;
g_Choosed=0;
is_round_zombi = false;
is_round_normal = true;
is_round_rambo = false;
is_round_vampir = false;
is_round_ejszaka = false;
is_round_szellem = false;
is_round_respawn = false;
is_round_alap = false;
arrayset( g_zombie, false, 32 );
arrayset( elsoterror, false, 32 );
arrayset( vannagypapa, false, 32);
set_lights("#OFF")
}
public EventRestart( ) {
g_iRounds = 5;
g_korok = 5;
g_vampirkor = 5;
eszakaikor = 5;
szellemkor = 6;
hardkor = 8;
server_cmd("dr_jelenlegi_mod Varakozas");
is_round_normal = true;
is_round_alap = false;
is_round_zombi = false;
is_round_rambo = false;
is_round_vampir = false;
is_round_ejszaka = false;
is_round_szellem = false;
is_round_respawn = false;
set_lights("#OFF")
}
public client_connect(id)
{
g_zombie[id] = false;
vannagypapa[id] = false;
nemkellmenu[id] = false;
remove_user_model(g_modelent[id])
}
public client_disconnect(id)
{
remove_task(TASKID_STRIPNGIVE + id)
remove_task(RAMBOTASK + id)
remove_user_model(g_modelent[id])
nemkellmenu[id] = false;
}
public deathrun_menu(id)
{
if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T && g_Choosed<1)
{
elsoterror[id] = true;
new alapmenux[192];
formatex( alapmenux, charsmax(alapmenux), "%L", LANG_PLAYER, "TMENU_FEJLEC", g_Timer )
new menu = menu_create( alapmenux, "sub_menu")
new iWaitRounds = 5 - g_iRounds;
new szMenu[38];
formatex( szMenu, charsmax(szMenu), "%L", LANG_PLAYER, "ZOMBI_KOR", iWaitRounds );
new iVarakozas = 5 - g_korok;
new szMenu2[38];
formatex( szMenu2, charsmax(szMenu2), "%L", LANG_PLAYER, "RAMBO_KOR", iVarakozas )
new vampirvarakozas = 5 - g_vampirkor;
new szMenu3[38];
formatex( szMenu3, charsmax(szMenu3), "%L", LANG_PLAYER, "VAMPIR_KOR", vampirvarakozas )
new eszakavarakozas = 5 - eszakaikor;
new szMenu4[38];
formatex( szMenu4, charsmax(szMenu4), "%L", LANG_PLAYER, "EJSZAKA_KOR", eszakavarakozas )
new szellemvarakozas = 6 - szellemkor;
new szMenu5[38];
formatex( szMenu5, charsmax(szMenu5), "%L", LANG_PLAYER, "SZELLEM_KOR", szellemvarakozas)
new hardvarakozas = 8 - hardkor;
new szMenu6[38];
formatex( szMenu6, charsmax(szMenu6), "%L", LANG_PLAYER, "RESPAWN_KOR", hardvarakozas)
new szMenu7[38];
formatex( szMenu7, charsmax(szMenu7), "%L", LANG_PLAYER, "GOMBOK")
new szMenu8[38];
formatex( szMenu8, charsmax(szMenu8), "%L", LANG_PLAYER, "ZOMBI")
new szMenu9[38];
formatex( szMenu9, charsmax(szMenu9), "%L", LANG_PLAYER, "RAMBO")
new szMenu10[38];
formatex( szMenu10, charsmax(szMenu10), "%L", LANG_PLAYER, "VAMPIR")
new szMenu11[38];
formatex( szMenu11, charsmax(szMenu11), "%L", LANG_PLAYER, "EJSZAKA")
new szMenu12[38];
formatex( szMenu12, charsmax(szMenu12), "%L", LANG_PLAYER, "SZELLEM")
new szMenu13[38];
formatex( szMenu13, charsmax(szMenu13), "%L", LANG_PLAYER, "RESPAWN")
if( iWaitRounds > 0 )
{
menu_additem(menu, szMenu7, "1", 0);
menu_additem(menu, szMenu, "2", 0);
}
else
{
menu_additem(menu, szMenu7, "1", 0);
menu_additem(menu, szMenu8, "2", 0);
}
if( iVarakozas > 0 )
{
menu_additem(menu, szMenu2, "3", 0);
}
else
{
menu_additem(menu, szMenu9, "3", 0);
}
if( vampirvarakozas > 0 )
{
menu_additem(menu, szMenu3, "4", 0);
}
else
{
menu_additem(menu, szMenu10, "4", 0);
}
if( eszakavarakozas > 0 )
{
menu_additem(menu, szMenu4, "5", 0);
}
else
{
menu_additem(menu, szMenu11, "5", 0);
}
if( szellemvarakozas > 0 )
{
menu_additem(menu, szMenu5, "6", 0);
}
else
{
menu_additem(menu, szMenu12, "6", 0);
}
if( hardvarakozas > 0 )
{
menu_additem(menu, szMenu6, "7", 0);
}
else
{
menu_additem(menu, szMenu13, "7", 0);
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
}
public sub_menu(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new Key = str_to_num(data);
new iWaitRounds = 5 - g_iRounds;
new iVarakozas = 5 - g_korok;
new vampirvarakozas = 5 - g_vampirkor;
new eszakavarakozas = 5 - eszakaikor;
new szellemvarakozas = 6 - szellemkor;
new hardvarakozas = 8 - hardkor;
switch (Key)
{
case 1:
{
if(g_Choosed <= 0)
{
is_round_alap = true;
is_round_normal = false;
server_cmd("dr_jelenlegi_mod Gombok");
set_hudmessage(0, 255, 255, 0.01, 0.50, 2, 1.0, 20.0, 0.1, 2.0);
show_hudmessage(0, "%L", LANG_PLAYER, "ALAP_MOD")
g_Choosed++
}
}
case 2:
{
if(g_Choosed <= 0)
{
if( iWaitRounds > 0 )
{
colored_print(id, "%L", id, LANG_PLAYER, "NEMLEHET", iWaitRounds)
menu_display(id, menu, 0);
}
else
{
server_cmd("dr_jelenlegi_mod Zombi");
is_round_zombi = true;
is_round_normal = false;
g_iRounds = 0;
g_Choosed++;
//remove_task(id + VALASZTASID);
jatekosok(id);
new players[32], plNum
get_players(players, plNum, "ah") ;
for (new i = 0; i < plNum; i++)
{
if(cs_get_user_team(players[i]) == CS_TEAM_T)
{
set_zombie_attibutes(players[i]);
}
}
set_hudmessage(255, 0, 0, 0.01, 0.50, 2, 1.0, 20.0, 0.1, 2.0);
show_hudmessage(0, "%L", LANG_PLAYER, "ZOMBI_MOD")
}
}
}
case 3:
{
if(g_Choosed <= 0)
{
if( iVarakozas > 0 )
{
colored_print(id, "%L", id, LANG_PLAYER, "NEMLEHET", iVarakozas)
menu_display(id, menu, 0);
}
else
{
is_round_normal = false;
is_round_rambo = true;
server_cmd("dr_jelenlegi_mod Rambo");
new players[32], plNum
get_players(players, plNum, "ah") ;
for (new i = 0; i < plNum; i++)
{
if(cs_get_user_team(players[i]) == CS_TEAM_CT)
{
fm_strip_user_weapons(players[i])
give_item(players[i], "weapon_knife")
give_item(players[i], "weapon_shield")
give_item(players[i], "weapon_glock18")
cs_set_user_bpammo(players[i], CSW_GLOCK18, 220)
}
if(cs_get_user_team(players[i]) == CS_TEAM_T)
{
fm_strip_user_weapons(players[i])
give_item(players[i], "weapon_knife")
give_item(players[i], "weapon_m249")
cs_set_user_bpammo(players[i], CSW_M249, 250)
set_user_gravity(players[i], 0.9)
set_task(0.25, "minusz", players[i] + RAMBOTASK, "", 0, "b" );
vannagypapa[players[i]] = true;
}
}
g_korok = 0;
g_Choosed++;
jatekosok(id);
set_hudmessage(0, 0, 255, 0.01, 0.50, 2, 1.0, 20.0, 0.1, 2.0);
show_hudmessage(0, "%L", LANG_PLAYER, "RAMBO_MOD")
}
}
}
case 4:
{
if(g_Choosed <= 0)
{
if( vampirvarakozas > 0 )
{
colored_print(id, "%L", id, LANG_PLAYER, "NEMLEHET", vampirvarakozas)
menu_display(id, menu, 0);
}
else
{
is_round_vampir = true;
is_round_normal = false;
server_cmd("dr_jelenlegi_mod Vampir");
g_vampirkor = 0;
set_hudmessage(100, 0, 255, 0.01, 0.50, 2, 1.0, 20.0, 0.1, 2.0);
show_hudmessage(0, "%L", LANG_PLAYER, "VAMPIR_MOD")
g_Choosed++
new players[32], plNum
get_players(players, plNum, "ah") ;
for (new i = 0; i < plNum; i++)
{
if(cs_get_user_team(players[i]) == CS_TEAM_T)
{
cs_set_user_model(players[i], "vampire_terror")
}
}
}
}
}
case 5:
{
if(g_Choosed <= 0)
{
if( eszakavarakozas > 0 )
{
colored_print(id, "%L", id, LANG_PLAYER, "NEMLEHET", eszakavarakozas)
menu_display(id, menu, 0);
}
else
{
is_round_ejszaka = true;
is_round_normal = false;
server_cmd("dr_jelenlegi_mod Ejszaka");
eszakaikor = 0;
set_hudmessage(200, 100, 0, 0.01, 0.50, 2, 1.0, 20.0, 0.1, 2.0);
show_hudmessage(0, "%L", LANG_PLAYER, "EJSZAKA_MOD")
set_lights("a")
g_Choosed++
}
}
}
case 6:
{
if(g_Choosed <= 0)
{
if( szellemvarakozas > 0 )
{
colored_print(id, "%L", id, LANG_PLAYER, "NEMLEHET", szellemvarakozas)
menu_display(id, menu, 0);
}
else
{
is_round_szellem = true;
is_round_normal = false;
server_cmd("dr_jelenlegi_mod Szellem");
szellemkor = 0;
new players[32], plNum
get_players(players, plNum, "ah") ;
for (new i = 0; i < plNum; i++)
{
if(cs_get_user_team(players[i]) == CS_TEAM_T)
{
cs_set_user_model(players[i], "ghost_eba")
set_user_gravity(id, 0.2)
set_user_health(players[i], get_user_health(players[i]) + 300)
fm_set_rendering(players[i], kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 7)
//set_user_footsteps( players[i], 1 );
//Nemtudom miért van kikapcsolva nem emlékszem!
}
}
set_hudmessage(255, 255, 255, 0.01, 0.50, 2, 1.0, 20.0, 0.1, 2.0);
show_hudmessage(0, "%L", LANG_PLAYER, "SZELLEM_MOD")
g_Choosed++
}
}
}
case 7:
{
if(g_Choosed <= 0)
{
if( hardvarakozas > 0 )
{
colored_print(id, "%L", id, LANG_PLAYER, "NEMLEHET", hardvarakozas)
menu_display(id, menu, 0);
}
else
{
is_round_respawn = true;
is_round_normal = false;
hardkor = 0;
server_cmd("dr_jelenlegi_mod Nehez");
set_hudmessage(204, 255, 0, 0.01, 0.50, 2, 1.0, 20.0, 0.1, 2.0);
show_hudmessage(0, "%L", LANG_PLAYER, "RESPAWN_MOD")
g_Choosed++
}
}
}
}
return PLUGIN_HANDLED
}
public minusz(id)
{
new p = id - RAMBOTASK
new clip, ammo;
new weap = get_user_weapon(p, clip, ammo)
if(get_user_button(p) & IN_ATTACK && weap == CSW_M249)
{
return 1;
}
if(tulmelegedes[p] >= 1)
{
tulmelegedes[p]--;
}
return 0;
}
public hamPlayerSpawn(id)
{
remove_task(RAMBOTASK + id);
if(is_user_alive(id))
{
set_user_footsteps(id, 0);
reset_user_model(id)
if(is_round_zombi && cs_get_user_team(id) == CS_TEAM_T)
{
set_zombie_attibutes(id)
}
if(is_round_rambo && cs_get_user_team(id) == CS_TEAM_T)
{
fm_strip_user_weapons(id)
give_item(id, "weapon_knife")
give_item(id, "weapon_m249")
cs_set_user_bpammo(id, CSW_M249, 250)
set_user_gravity(id, 0.9)
set_user_maxspeed(id, 500.0)
vannagypapa[id] = true;
set_task(0.25, "minusz", id + RAMBOTASK, "", 0, "b" );
}
if(is_round_rambo && cs_get_user_team(id) == CS_TEAM_CT)
{
fm_strip_user_weapons(id)
give_item(id, "weapon_knife")
give_item(id, "weapon_shield")
give_item(id, "weapon_glock18")
cs_set_user_bpammo(id, CSW_GLOCK18, 7)
set_user_gravity(id, 0.9)
}
if(is_round_vampir)
{
fm_strip_user_weapons(id)
give_item(id, "weapon_knife")
if(cs_get_user_team(id) == CS_TEAM_T)
{
cs_set_user_model(id, "vampire_terror")
}
}
if(is_round_szellem && cs_get_user_team(id) == CS_TEAM_T)
{
set_user_health(id, get_user_health(id) + 200)
cs_set_user_model(id, "ghost_eba")
set_user_gravity(id, 0.2)
fm_set_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 7)
set_user_footsteps( id, 1 )
}
}
}
public switchweapon(id)
{
if(cs_get_user_team(id)==CS_TEAM_T && is_round_zombi)
{
engclient_cmd(id,"weapon_knife")
set_pev(id, pev_viewmodel2, "models/v_knife_zombie.mdl")
}
if(cs_get_user_team(id)==CS_TEAM_T && is_round_rambo)
{
set_user_maxspeed(id, 500.0)
new clip, ammo;
new weap = get_user_weapon(id, clip, ammo)
if(weap == CSW_M249)
{
new weapon_id = find_ent_by_owner(-1, "weapon_m249", id);
if(weapon_id)
{
cs_set_weapon_ammo(weapon_id, 101);
}
}
}
if(is_round_vampir)
{
engclient_cmd(id,"weapon_knife")
}
return PLUGIN_CONTINUE
}
public jatekosok(id)
{
if (get_ctsnum() >= 6)
{
new jatekosmenu[192];
formatex( jatekosmenu, charsmax(jatekosmenu), "\y%D:", LANG_PLAYER, "PARVALASZTAS")
new menu2 = menu_create( jatekosmenu, "menu_handler")
new players[32], pnum, tempid;
new szName[32], szTempid[10];
get_players(players, pnum, "ae", "CT");
if(elsoterror[id] == true)
{
elsoterror[id] = false;
if (pnum == 0) {
colored_print(id, "%L", LANG_PLAYER, "NINCSPAR")
return PLUGIN_HANDLED;
}
for( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name(tempid, szName, charsmax(szName));
num_to_str(tempid, szTempid, charsmax(szTempid));
menu_additem(menu2, szName, szTempid, 0);
}
menu_display(id, menu2, 0);
return PLUGIN_HANDLED;
}
else
{
colored_print(id, "!g%L", LANG_PLAYER, "CSAKELSOTERR")
}
}
return PLUGIN_HANDLED;
}
public menu_handler(id, menu2, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu2)
}
new data[6]
new szName[64];
new access, callback;
menu_item_getinfo(menu2, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new tempid = str_to_num(data);
if( is_user_alive(tempid) )
{
cs_set_user_team(tempid,CS_TEAM_T)
ExecuteHam(Ham_CS_RoundRespawn,tempid)
}
return PLUGIN_HANDLED;
}
stock set_zombie_attibutes(index)
{
if(!is_user_alive(index))
return
g_zombie[index] = true
cs_set_user_model(index, "zombie_source");
set_task(0.1, "task_stripngive", TASKID_STRIPNGIVE + index)
static Float:health
health = 1000.0
static Float:gravity
gravity = 1.0
set_pev(index, pev_health, health)
set_pev(index, pev_gravity, gravity)
set_pev(index, pev_body, 0)
set_pev(index, pev_armorvalue, 0.0)
set_pev(index, pev_renderamt, 0.0)
fm_set_user_armortype(index, CS_ARMOR_NONE)
fm_set_user_nvg(index)
if(get_pcvar_num(cvar_autonvg))
engclient_cmd(index, "nightvision")
if(!pev_valid(g_modelent[index]))
{
static ent
ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
if(pev_valid(ent))
{
set_pev(ent, pev_classname, MODEL_CLASSNAME)
set_pev(ent, pev_movetype, MOVETYPE_FOLLOW)
set_pev(ent, pev_aiment, index)
set_pev(ent, pev_owner, index)
g_modelent[index] = ent
}
}
else
{
fm_set_entity_visibility(g_modelent[index], 1)
}
static effects
effects = pev(index, pev_effects)
if(effects & EF_DIMLIGHT)
{
message_begin(MSG_ONE, g_msg_flashlight, _, index)
write_byte(0)
write_byte(100)
message_end()
set_pev(index, pev_effects, effects & ~EF_DIMLIGHT)
}
}
stock reset_user_model(index)
{
set_pev(index, pev_rendermode, kRenderNormal)
set_pev(index, pev_renderamt, 0.0)
if(pev_valid(g_modelent[index]))
fm_set_entity_visibility(g_modelent[index], 0)
}
stock remove_user_model(ent)
{
static id
id = pev(ent, pev_owner)
if(pev_valid(ent))
engfunc(EngFunc_RemoveEntity, ent)
g_modelent[id] = 0
}
public task_stripngive(taskid)
{
static id
id = taskid - TASKID_STRIPNGIVE
if(is_user_alive(id))
{
fm_strip_user_weapons(id)
fm_reset_user_primary(id)
bacon_give_weapon(id, "weapon_knife")
set_pev(id, pev_weaponmodel2, "")
set_pev(id, pev_viewmodel2, "models/v_knife_zombie.mdl")
set_pev(id, pev_maxspeed, 270.0)
}
}
public HamTakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
if(is_round_zombi == true && get_ctsnum() >= 2 && cs_get_user_team(attacker)==CS_TEAM_T && is_user_alive(attacker) && cs_get_user_team(victim)!=CS_TEAM_T)
{
make_deathmsg(attacker, victim, random_num(0,1), "knife")
set_user_frags(attacker, get_user_frags(attacker) + 1)
cs_set_user_deaths(victim, cs_get_user_deaths(victim) + 1)
cs_set_user_team( victim, CS_TEAM_T )
set_zombie_attibutes(victim)
}
if(is_round_rambo && vannagypapa[attacker] && is_user_alive(attacker) && cs_get_user_team(attacker)==CS_TEAM_T)
{
damage = damage*5.25
SetHamParamFloat(4, damage)
}
if (is_round_vampir && is_user_alive(attacker) && cs_get_user_team(attacker)==CS_TEAM_T && cs_get_user_team(victim)==CS_TEAM_CT)
{
new ExtraHealth;
ExtraHealth = floatround(damage * get_pcvar_num(pcv_multi))
set_user_health(attacker, get_user_health(attacker) + ExtraHealth)
}
}
public huduzenet()
{
new index, eloct, osszesct, mindeki, jelenlegiido[32], kovetkezopalya[32], terroristak[32][32], uzenet[512], ts;
for(index = 1; index <= g_MaxClients; index++)
{
if(!is_user_connected(index))
{
continue
}
else if(is_user_alive(index) && cs_get_user_team(index) == CS_TEAM_CT)
{
eloct++
osszesct++
mindeki++
}
else if(!is_user_alive(index) && cs_get_user_team(index) == CS_TEAM_CT)
{
osszesct++
mindeki++
}
else if(cs_get_user_team(index) == CS_TEAM_T && !is_user_bot(index))
{
ts++
get_user_name(index, terroristak[ts], 63)
mindeki++
}
else
{
mindeki++
}
}
for(index = 1; index <= g_MaxClients; index++)
{
new jelenlegimod3[192]
new hossz
get_pcvar_string(jelenlegimod2, jelenlegimod3, 191)
get_time("%H:%M:%S", jelenlegiido, 31)
hossz += format(uzenet[hossz], 511 - hossz, "^n%L: %s", LANG_PLAYER, "JATEKMOD", jelenlegimod3)
hossz += format(uzenet[hossz], 511 - hossz, "^n%L: %s", LANG_PLAYER, "IDO", jelenlegiido)
if(get_cvar_float("mp_timelimit"))
{
new a = get_timeleft()
hossz += format(uzenet[hossz], 511 - hossz, "^n%L: %d:%02d", LANG_PLAYER, "HATRALEVOIDO", (a / 60), (a % 60))
}
else
{
hossz += format(uzenet[hossz], 511 - hossz, "^n%L: %L", LANG_PLAYER, "HATRALEVOIDO", LANG_PLAYER, "UTOLSO")
}
get_cvar_string("amx_nextmap", kovetkezopalya, 31)
hossz += format(uzenet[hossz], 511 - hossz, "^n%L: %s", LANG_PLAYER, "KOVETKEZOPALYA", kovetkezopalya)
hossz += format(uzenet[hossz], 511 - hossz, "^n%L: %s , %s, %s", LANG_PLAYER, "TERRORISTAK", terroristak[1], terroristak[2], terroristak[3] )
hossz += format(uzenet[hossz], 511 - hossz, "^n%L: %d/%d", LANG_PLAYER, "ZSARUK", eloct,osszesct)
hossz += format(uzenet[hossz], 511 - hossz, "^n%L: %d/%d", LANG_PLAYER, "JATEKOSOK", mindeki, g_MaxClients)
set_hudmessage(0, 255, 0, 0.01, 0.14, 0, 1.0, 1.0)
set_hudmessage(0, 255, 0, 1.0, 1.0, 0, 1.0, 1.0, 0.1, 0.1)
if(is_round_normal) set_hudmessage(0, 255, 0, 0.01, 0.14, 0, 1.0, 1.0, _, _, 3)
if(is_round_zombi) set_hudmessage(255, 0, 0, 0.01, 0.14, 0, 1.0, 1.0, _, _, 3)
if(is_round_rambo) set_hudmessage(0, 0, 255, 0.01, 0.14, 0, 1.0, 1.0, _, _, 3)
if(is_round_alap) set_hudmessage(0, 255, 255, 0.01, 0.14, 0, 1.0, 1.0, _, _, 3)
if(is_round_vampir) set_hudmessage(100, 0, 255, 0.01, 0.14, 0, 1.0, 1.0, _, _, 3)
if(is_round_ejszaka) set_hudmessage(200, 100, 0, 0.01, 0.14, 0, 1.0, 1.0, _, _, 3)
if(is_round_szellem) set_hudmessage(255, 255, 255, 0.01, 0.14, 0, 1.0, 1.0, _, _, 3)
if(is_round_respawn) set_hudmessage(204, 255, 0, 0.01, 0.14, 0, 1.0, 1.0, _, _, 3)
ShowSyncHudMsg(index, g_HudText, "%s", uzenet)
}
return PLUGIN_CONTINUE
}
public key(ent, idcaller, idactivator, use_type, Float:value)
{
if (is_user_alive(idactivator) && get_user_team(idactivator) == 1)
{
if(is_round_rambo || is_round_vampir || is_round_zombi || is_round_szellem || is_round_normal)
{
colored_print(idactivator, "!g%L", LANG_PLAYER, "NINCSGOMB")
return HAM_SUPERCEDE
}
}
return HAM_IGNORED
}
// Stocks
stock colored_print ( const index, const input [ ], any:... )
{
new sz_Message [ 191 ]
vformat ( sz_Message, charsmax ( sz_Message ), input, 3 )
replace_all ( sz_Message, charsmax ( sz_Message ), "!g", "^4" )
replace_all ( sz_Message, charsmax ( sz_Message ), "!t", "^3" )
replace_all ( sz_Message, charsmax ( sz_Message ), "!y", "^1" )
new i_Players [ 32 ]
new i_Count
i_Count = 1
if ( index )
{
i_Players [ 0 ] = index
}
else
{
get_players ( i_Players, i_Count, "ch" )
}
new i_Number
for ( i_Number = 0; i_Number < i_Count; i_Number ++ )
{
if ( is_user_connected ( i_Players [ i_Number ] ) )
{
message_begin ( MSG_ONE_UNRELIABLE, MessageSay, _, i_Players [ i_Number ] )
write_byte ( i_Players [ i_Number ] )
write_string ( sz_Message )
message_end ( )
}
}
}
stock fm_set_user_nvg(index, onoff = 1)
{
static nvg
nvg = get_pdata_int(index, OFFSET_NVG)
set_pdata_int(index, OFFSET_NVG, onoff == 1 ? nvg | HAS_NVG : nvg & ~HAS_NVG)
return 1
}
//by Exolent
stock get_ctsnum()
{
new players[32], szamlalo;
get_players(players, szamlalo, "ae", "CT");
return szamlalo;
}
stock fm_get_user_money( index )
{
new money = get_pdata_int( index, OFFSET_MONEY );
return money;
}
stock fm_set_user_money( index, money, flash = 1 )
{
set_pdata_int( index, OFFSET_MONEY, money );
fm_set_money( index, money, flash );
return 1;
}
stock fm_set_money( index, money, flash )
{
message_begin( MSG_ONE_UNRELIABLE, gMsgMoney, {0, 0, 0}, index );
write_long( money );
write_byte( flash ? 1 : 0 );
message_end();
}
stock bacon_give_weapon(index, weapon[])
{
if(!equal(weapon,"weapon_", 7))
return 0
static ent
ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, weapon))
if(!pev_valid(ent))
return 0
set_pev(ent, pev_spawnflags, SF_NORESPAWN)
dllfunc(DLLFunc_Spawn, ent)
if(!ExecuteHamB(Ham_AddPlayerItem, index, ent))
{
if(pev_valid(ent)) set_pev(ent, pev_flags, pev(ent, pev_flags) | FL_KILLME)
return 0
}
ExecuteHamB(Ham_Item_AttachToPlayer, ent, index)
return 1
}
stock bool:is_dead_ct(id)
{
new CsTeams:team = cs_get_user_team(id);
if(!is_user_alive(id) && team == CS_TEAM_CT) return true;
return false;
}
/*================================================================================
=================================================================================*/