Senior Member
Join Date: Aug 2017
Location: Kyiv
|
09-11-2019
, 15:46
Jurassic Park [ Autom.murder T ]
|
#1
|
Noticed that when there are no players on the Server, and you go for a team of Terrorists, then you are constantly killing the game.
And for CT-all right.
Please help me see what's what.
Thanks
On my opinion-this where here?
PHP Code:
///////////////////////////////////////////////////////////////////
// Death Event 2 //
/////////////////////////////////////////////////////////////////
public event_death_msg()
{
new zrespawn = read_data(2)
set_pev(zrespawn, pev_effects, EF_NODRAW)
if(get_user_team(zrespawn) == 0)
{
if(++g_respawn_count[zrespawn] > get_pcvar_num(zombie_respawns))
{
return
}
set_task(1.0, "zombie_respawner", zrespawn)
}
}
///////////////////////////////////////////////////////////////////
// Survivor Respawn //
/////////////////////////////////////////////////////////////////
public ham_killed_respawn(id)
{
if(is_user_connected(id) && cs_get_user_team(id) == CS_TEAM_CT)
{
g_respawn_delay[id] = 10
survivor_respawner(id)
}
}
public survivor_respawner(id)
{
if(is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE
if(g_respawn_delay[id] > 0)
{
g_respawn_delay[id]--
set_task(1.0, "survivor_respawner", id)
}
else
ExecuteHamB(Ham_CS_RoundRespawn, id)
return PLUGIN_CONTINUE
}
public join_spawn()
{
new player_spawn = read_data(1)
static user_team[32]
read_data(2, user_team, 31)
if(!is_user_connected(player_spawn))
return PLUGIN_CONTINUE
switch(user_team[0])
{
case 'C': set_task(1.0, "survivor_respawner", player_spawn)
//case 'T': client_print(player_spawn, print_chat, "Zombies cant use this respawn method!")
//case 'S': client_print(player_spawn, print_chat, "Spectators cant use this respawn method!")
}
return PLUGIN_CONTINUE
}
///////////////////////////////////////////////////////////////////
// CSDM Respawn //
/////////////////////////////////////////////////////////////////
public zombie_respawner(zrespawn)
{
new cts[32], ts[32], ctsnum, tsnum
new CsTeams:team
for(new i=1; i<=g_maxplayers; i++)
{
if(!is_user_alive(i))
{
continue
}
team = cs_get_user_team(i)
if(team == CS_TEAM_T)
{
ts[tsnum++] = i
} else if(team == CS_TEAM_T) {
cts[ctsnum++] = i
}
}
if(tsnum > 1)
{
switch(get_pcvar_num(zombie_spawnpoint))
{
case 1:
{
ExecuteHamB(Ham_CS_RoundRespawn, zrespawn)
set_task(0.1, "respawn_effect", zrespawn)
strip_user_weapons(zrespawn)
give_item(zrespawn, "")
set_user_godmode(zrespawn, 1)
set_task(5.0, "remove_zombie_protection", zrespawn)
}
case 2:
{
pev(zrespawn, pev_origin, g_vec_last_origin[zrespawn])
ExecuteHamB(Ham_CS_RoundRespawn, zrespawn)
engfunc(EngFunc_SetOrigin, zrespawn, g_vec_last_origin[zrespawn])
set_task(0.1, "respawn_effect", zrespawn)
strip_user_weapons(zrespawn)
give_item(zrespawn, "")
set_user_godmode(zrespawn, 1)
set_task(5.0, "remove_zombie_protection", zrespawn)
}
}
}
}
All Park code
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <ColorChat>
#if AMXX_VERSION_NUM < 183
#include < dhudmessage >
#endif
///////////////////////////////////////////////////////////////////
// Offsets //
/////////////////////////////////////////////////////////////////
#define REMOVE_OBJECTIVES (1<<0 | 1<<2 | 1<<3 | 1<<4)
#define ZOMBIE_OBJECTIVES "zombie_objectives"
///////////////////////////////////////////////////////////////////
// Cvars //
/////////////////////////////////////////////////////////////////
new zombie_knife, zombie_maxslots, zombie_effect, zombie_level, zombie_respawns, survivor_classes,
level1_respawns, level1_health, level1_maxspeed, level1_bosshp, level1_bossmaxspeed, level2_respawns, zombie_spawnpoint,
level2_health, level2_maxspeed, level2_bosshp, level2_bossmaxspeed, level3_respawns, level3_health, level3_maxspeed,
level3_bosshp, level3_bossmaxspeed, level4_respawns, level4_health, level4_maxspeed, level4_bosshp, level4_bossmaxspeed,
level5_respawns, level5_health, level5_maxspeed, level5_bosshp, level5_bossmaxspeed, level6_respawns, survivor_weaponkit,
level6_health, level6_maxspeed, level6_bosshp, level6_bossmaxspeed, level7_respawns, level7_health, level7_maxspeed,
level7_bosshp, level7_bossmaxspeed, level8_respawns, level8_health, level8_maxspeed, level8_bosshp, level8_bossmaxspeed,
level9_respawns, level9_health, level9_maxspeed, level9_bosshp, level9_bossmaxspeed, level10_respawns,
level10_health, level10_maxspeed, level10_bosshp, level10_bossmaxspeed
new gPluginMode;
new bool: g_bChoose[33];
///////////////////////////////////////////////////////////////////
// Models //
/////////////////////////////////////////////////////////////////
new const ZOMBIE_MODEL1[] = "zmh_1"
new const ZOMBIE_MODEL2[] = "zmh_2"
new const ZOMBIE_MODEL3[] = "zmh_3"
///////////////////////////////////////////////////////////////////
// Global Variables //
/////////////////////////////////////////////////////////////////
new g_has_custom_model[33], g_player_model[33][32], g_zombie[33], g_respawn_count[33], g_player_class[33], g_zombie_class[33],
g_boss_class[33], g_maxplayers, g_boss_sprite, g_screen_shake, g_hide_weapon, g_pcvar_no_objectives, g_respawn_delay[33]
new g_iMaxPlayers;
new Float:g_models_target_time
new Float:g_roundstart_time
new Float:g_spawn_vec[60][3]
new Float:g_spawn_angle[60][3]
new Float:g_spawn_v_angle[60][3]
new Float:g_vec_last_origin[33][3]
new bool:g_first_spawn[33]
new const g_objective_ents[][] = { "func_bomb_target", "info_bomb_target", "hostage_entity", "monster_scientist",
"func_hostage_rescue", "info_hostage_rescue", "info_vip_start", "func_vip_safetyzone", "func_escapezone" }
new const g_objective_type[] = { (1<<3), (1<<3), (1<<2), (1<<2), (1<<2), (1<<2), (1<<0), (1<<0), (1<<4) }
new const bool:g_objective_prim[] = { true, true, true, false, false, false, false, true, true }
new g_no_objectives = REMOVE_OBJECTIVES
new g_total_spawn = 0
///////////////////////////////////////////////////////////////////
// Downloads //
/////////////////////////////////////////////////////////////////
new const skies[][] =
{
"mandaris", "bromene", "space", "lackofoxygen", "3dm747", "cult2", "LMmnts_1", "nebula3_", "vr_"
}
public plugin_precache()
{
precache_sound("jurassic_park/dinosaurs_sound.mp3")
precache_sound("jurassic_park/predators_sound.mp3")
precache_sound("jurassic_park/rev_dino_1.wav")
precache_sound("jurassic_park/boss_dinosaurs_sound.mp3")
precache_sound("jurassic_park/zvuki_lesa.mp3")
precache_model("models/player/zmh_1/zmh_1.mdl")
precache_model("models/player/zmh_2/zmh_2.mdl")
precache_model("models/player/zmh_3/zmh_3.mdl")
precache_generic ( "gfx/env/mandarisrt.tga" )
precache_generic ( "gfx/env/mandarislf.tga" )
precache_generic ( "gfx/env/mandarisft.tga" )
precache_generic ( "gfx/env/mandarisdn.tga" )
precache_generic ( "gfx/env/mandarisbk.tga" )
precache_generic ( "gfx/env/mandarisup.tga" )
precache_generic ( "gfx/env/bromenert.tga" )
precache_generic ( "gfx/env/bromenelf.tga" )
precache_generic ( "gfx/env/bromeneft.tga" )
precache_generic ( "gfx/env/bromenedn.tga" )
precache_generic ( "gfx/env/bromenebk.tga" )
precache_generic ( "gfx/env/bromeneup.tga" )
precache_generic ( "gfx/env/spacert.tga" )
precache_generic ( "gfx/env/spacelf.tga" )
precache_generic ( "gfx/env/spaceft.tga" )
precache_generic ( "gfx/env/spacedn.tga" )
precache_generic ( "gfx/env/spacebk.tga" )
precache_generic ( "gfx/env/spaceup.tga" )
precache_generic ( "gfx/env/lackofoxygenrt.tga" )
precache_generic ( "gfx/env/lackofoxygenlf.tga" )
precache_generic ( "gfx/env/lackofoxygenft.tga" )
precache_generic ( "gfx/env/lackofoxygendn.tga" )
precache_generic ( "gfx/env/lackofoxygenbk.tga" )
precache_generic ( "gfx/env/lackofoxygenup.tga" )
precache_generic ( "gfx/env/3dm747rt.tga" )
precache_generic ( "gfx/env/3dm747lf.tga" )
precache_generic ( "gfx/env/3dm747ft.tga" )
precache_generic ( "gfx/env/3dm747dn.tga" )
precache_generic ( "gfx/env/3dm747bk.tga" )
precache_generic ( "gfx/env/3dm747up.tga" )
precache_generic ( "gfx/env/cult2rt.tga" )
precache_generic ( "gfx/env/cult2lf.tga" )
precache_generic ( "gfx/env/cult2ft.tga" )
precache_generic ( "gfx/env/cult2dn.tga" )
precache_generic ( "gfx/env/cult2bk.tga" )
precache_generic ( "gfx/env/cult2up.tga" )
precache_generic ( "gfx/env/LMmnts_1rt.tga" )
precache_generic ( "gfx/env/LMmnts_1lf.tga" )
precache_generic ( "gfx/env/LMmnts_1ft.tga" )
precache_generic ( "gfx/env/LMmnts_1dn.tga" )
precache_generic ( "gfx/env/LMmnts_1bk.tga" )
precache_generic ( "gfx/env/LMmnts_1up.tga" )
precache_generic ( "gfx/env/nebula3_rt.tga" )
precache_generic ( "gfx/env/nebula3_lf.tga" )
precache_generic ( "gfx/env/nebula3_ft.tga" )
precache_generic ( "gfx/env/nebula3_dn.tga" )
precache_generic ( "gfx/env/nebula3_bk.tga" )
precache_generic ( "gfx/env/nebula3_up.tga" )
precache_generic ( "gfx/env/vr_rt.tga" )
precache_generic ( "gfx/env/vr_lf.tga" )
precache_generic ( "gfx/env/vr_ft.tga" )
precache_generic ( "gfx/env/vr_dn.tga" )
precache_generic ( "gfx/env/vr_bk.tga" )
precache_generic ( "gfx/env/vr_up.tga" )
g_boss_sprite = precache_model("sprites/beacon.spr")
new fog = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_fog"))
DispatchKeyValue(fog, "density", "0.001")
DispatchKeyValue(fog, "rendercolor", "0 0 0")
if ((g_pcvar_no_objectives = get_cvar_pointer(ZOMBIE_OBJECTIVES))) {
new cvar_val[8]
get_pcvar_string(g_pcvar_no_objectives, cvar_val, sizeof cvar_val - 1)
g_no_objectives = read_flags(cvar_val) & REMOVE_OBJECTIVES
}
if (g_no_objectives)
{
register_forward(FM_Spawn, "forward_spawn")
}
}
///////////////////////////////////////////////////////////////////
// Plugin Start //
/////////////////////////////////////////////////////////////////
public plugin_init()
{
g_iMaxPlayers = get_maxplayers();
register_plugin("zombiehell", "0.0", "hectorz0r")
gPluginMode = register_cvar( "sv_skies_mode", "1" ); // 0 - disabled, 1 - random skies
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event("ResetHUD", "event_set_power", "be")
register_event("DeathMsg", "event_eat_brain", "a", "1>0")
register_event("DeathMsg", "event_death_msg", "a")
register_event("CurWeapon", "event_check_speed", "be", "1=1")
register_event("AmmoX", "event_free_ammo", "be", "1=1", "1=2", "1=3", "1=4", "1=5", "1=6", "1=7", "1=8", "1=9", "1=10")
register_event("SendAudio", "dinosaurs_win", "a", "2&%!MRAD_terwin")
register_event("SendAudio", "predators_win", "a", "2&%!MRAD_ctwin")
register_event("TeamInfo", "join_spawn", "a")
RegisterHam(Ham_Touch, "weapon_shield", "ham_weapon_cleaner", 1)
RegisterHam(Ham_Touch, "weaponbox", "ham_weapon_cleaner", 1)
RegisterHam(Ham_TakeDamage, "player", "ham_zombie_knife")
RegisterHam(Ham_Spawn, "player", "ham_player_spawn", 1)
RegisterHam(Ham_Killed, "player", "ham_player_killed")
RegisterHam(Ham_Killed, "player", "ham_killed_respawn", 1)
register_forward(FM_GetGameDescription, "fm_game_description")
register_forward(FM_SetClientKeyValue, "fm_client_key")
register_forward(FM_ClientUserInfoChanged, "fm_client_info")
register_forward(FM_SetModel, "fm_set_model")
register_forward(FM_Think, "fm_think")
register_impulse(100, "Impulse_Light")
register_clcmd("nightvision", "Clcmd_Nightvision");
register_clcmd("say predator", "clcmd_show_surv_class_menu");
survivor_weaponkit = register_cvar("survivor_weaponkit", "1")
zombie_spawnpoint = register_cvar("zombie_spawnpoint", "1")
zombie_knife = register_cvar("zombie_knife", "0")
zombie_maxslots = register_cvar("zombie_maxslots", "10")
zombie_effect = register_cvar("zombie_effect", "1")
zombie_level = register_cvar("zombie_level", "1")
zombie_respawns = register_cvar("zombie_respawns", "1")
survivor_classes = register_cvar("survivor_classes", "1")
level1_respawns = register_cvar("level1_respawns", "")
level1_health = register_cvar("level1_health", "")
level1_maxspeed = register_cvar("level1_maxspeed", "")
level1_bosshp = register_cvar("level1_bosshp", "")
level1_bossmaxspeed = register_cvar("level1_bossmaxspeed", "")
level2_respawns = register_cvar("level2_respawns", "")
level2_health = register_cvar("level2_health", "")
level2_maxspeed = register_cvar("level2_maxspeed", "")
level2_bosshp = register_cvar("level2_bosshp", "")
level2_bossmaxspeed = register_cvar("level2_bossmaxspeed", "")
level3_respawns = register_cvar("level3_respawns", "")
level3_health = register_cvar("level3_health", "")
level3_maxspeed = register_cvar("level3_maxspeed", "")
level3_bosshp = register_cvar("level3_bosshp", "")
level3_bossmaxspeed = register_cvar("level3_bossmaxspeed", "")
level4_respawns = register_cvar("level4_respawns", "")
level4_health = register_cvar("level4_health", "")
level4_maxspeed = register_cvar("level4_maxspeed", "")
level4_bosshp = register_cvar("level4_bosshp", "")
level4_bossmaxspeed = register_cvar("level4_bossmaxspeed", "")
level5_respawns = register_cvar("level5_respawns", "")
level5_health = register_cvar("level5_health", "")
level5_maxspeed = register_cvar("level5_maxspeed", "")
level5_bosshp = register_cvar("level5_bosshp", "")
level5_bossmaxspeed = register_cvar("level5_bossmaxspeed", "")
level6_respawns = register_cvar("level6_respawns", "")
level6_health = register_cvar("level6_health", "")
level6_maxspeed = register_cvar("level6_maxspeed", "")
level6_bosshp = register_cvar("level6_bosshp", "")
level6_bossmaxspeed = register_cvar("level6_bossmaxspeed", "")
level7_respawns = register_cvar("level7_respawns", "")
level7_health = register_cvar("level7_health", "")
level7_maxspeed = register_cvar("level7_maxspeed", "")
level7_bosshp = register_cvar("level7_bosshp", "")
level7_bossmaxspeed = register_cvar("level7_bossmaxspeed", "")
level8_respawns = register_cvar("level8_respawns", "")
level8_health = register_cvar("level8_health", "")
level8_maxspeed = register_cvar("level8_maxspeed", "")
level8_bosshp = register_cvar("level8_bosshp", "")
level8_bossmaxspeed = register_cvar("level8_bossmaxspeed", "")
level9_respawns = register_cvar("level9_respawns", "")
level9_health = register_cvar("level9_health", "")
level9_maxspeed = register_cvar("level9_maxspeed", "")
level9_bosshp = register_cvar("level9_bosshp", "")
level9_bossmaxspeed = register_cvar("level9_bossmaxspeed", "")
level10_respawns = register_cvar("level10_respawns", "")
level10_health = register_cvar("level10_health", "")
level10_maxspeed = register_cvar("level10_maxspeed", "")
level10_bosshp = register_cvar("level10_bosshp", "")
level10_bossmaxspeed = register_cvar("level10_bossmaxspeed", "")
server_cmd("zombie_level 1")
server_cmd("mp_roundtime 5.0")
server_cmd("mp_limitteams 0")
server_cmd("mp_autoteambalance 1")
server_cmd("mp_flashlight 1")
server_cmd("mp_startmoney 0")
server_cmd("mp_timelimit 0")
server_cmd("mp_freezetime 0")
server_cmd("sv_maxspeed 999")
server_cmd("exec addons/amxmodx/configs/jurassic_park.cfg")
server_cmd("exec addons/amxmodx/configs/jurassic_park_levels.cfg")
set_msg_block(get_user_msgid("RoundTime"), BLOCK_SET)
set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET)
set_task(1.0, "hud", _, "", 0, "b")
csdm_respawn()
g_maxplayers = get_maxplayers()
g_hide_weapon = get_user_msgid("HideWeapon")
g_screen_shake = get_user_msgid("ScreenShake")
register_message(get_user_msgid("TextMsg"), "round_end_message")
register_message(g_hide_weapon, "message_hide_weapon")
if (!g_pcvar_no_objectives) {
new cvar_defval[8]
get_flags(REMOVE_OBJECTIVES, cvar_defval, sizeof cvar_defval - 1)
register_cvar(ZOMBIE_OBJECTIVES, cvar_defval)
}
if (is_objective_map())
{
return
}
new iEnt = -1
while( ( iEnt = engfunc( EngFunc_FindEntityByString, iEnt, "classname", "armoury_entity" ) ) ) {
engfunc( EngFunc_RemoveEntity, iEnt )
}
}
public client_authorized(id) {
g_player_class[id] = 0;
}
///////////////////////////////////////////////////////////////////
// Mod Name //
/////////////////////////////////////////////////////////////////
public fm_game_description()
{
forward_return(FMV_STRING, "• Парк Динозавров •")
return FMRES_SUPERCEDE
}
///////////////////////////////////////////////////////////////////
// Zombie Extra Health //
/////////////////////////////////////////////////////////////////
public event_eat_brain()
{
new client = read_data(1)
new client2 = read_data(2)
new name[32]
new name2[32]
get_user_name(client, name, 31)
get_user_name(client2, name2, 31)
if(cs_get_user_team(client) == CS_TEAM_T && is_user_alive(client))
{
set_user_health(client, get_user_health(client) + 300)
client_cmd(0, "spk jurassic_park/rev_dino_1.wav")
}
}
///////////////////////////////////////////////////////////////////
// Remove Weapon Entities //
/////////////////////////////////////////////////////////////////
public Impulse_Light(id)
{
if(!is_user_alive(id))
return 0;
if(get_user_team(id) != 2)
return 1;
return 0;
}
public Clcmd_Nightvision(id)
{
if(!is_user_alive(id))
return 0;
if(get_user_team(id) != 1)
return 1;
return 0;
}
public ham_weapon_cleaner(iEntity)
{
call_think(iEntity)
}
///////////////////////////////////////////////////////////////////
// Extra Knife Damage //
/////////////////////////////////////////////////////////////////
public ham_zombie_knife(id, ent, idattacker, Float:damage, damagebits)
{
if(ent == idattacker && is_user_alive(ent) && get_user_weapon(ent) == CSW_KNIFE && cs_get_user_team(id) == CS_TEAM_CT && get_pcvar_num(zombie_knife) == 1)
{
new Float:flHealth
pev(id, pev_health, flHealth)
SetHamParamFloat(4, flHealth * 5)
return HAM_HANDLED
}
return HAM_IGNORED
}
///////////////////////////////////////////////////////////////////
// Round Start //
/////////////////////////////////////////////////////////////////
public event_round_start()
{
for(new i = 1; i <= g_maxplayers; i++)
{
g_respawn_count[i] = 0
remove_task(i)
}
set_task(0.1, "zombie_game_start")
g_roundstart_time = get_gametime()
}
public zombie_game_start()
{
set_task(1.0, "ambience_sound")
set_task(1.0, "bot_cfg")
}
public ambience_sound()
{
client_cmd(0, "mp3 play sound/jurassic_park/zvuki_lesa.mp3")
set_task(1185.0, "ambience_sound")
}
///////////////////////////////////////////////////////////////////
// Permanently Hud Texts //
/////////////////////////////////////////////////////////////////
public hud()
{
new sInfo[64];
for(new id = 1; id <= g_iMaxPlayers; id++)
{
if(!is_user_alive(id))
continue;
switch(get_user_team(id)) {
case 1:{
set_dhudmessage(0, 255, 0, 0.01, 0.92, 0, 0.1, 1.0, 0.1, 0.1);
show_dhudmessage(id, "Тип • Динозавр • Ярость • Огонь [E] и Длинный прыжок • Здоровье • %i %%", get_user_health(id));
}
case 2:{
switch(g_player_class[id])
{
case 0: format(sInfo, charsmax(sInfo), "Не Выбран");
case 1: format(sInfo, charsmax(sInfo), "Шрам");
case 2: format(sInfo, charsmax(sInfo), "Чоппер");
case 3: format(sInfo, charsmax(sInfo), "Ночной Волк");
case 4: format(sInfo, charsmax(sInfo), "Кельт");
case 5: format(sInfo, charsmax(sInfo), "Берсеркер");
case 6: format(sInfo, charsmax(sInfo), "Охотник");
case 7: format(sInfo, charsmax(sInfo), "Старейшина");
case 8: format(sInfo, charsmax(sInfo), "Повелитель");
case 9: format(sInfo, charsmax(sInfo), "Властелин");
}
set_dhudmessage(255, 255, 255, 0.01, 0.92, 0, 0.1, 1.0, 0.1, 0.1);
show_dhudmessage(id, "Тип • Хищник • Класс • %s • Ярость • Дым [E] • Здоровье • %i %%", sInfo, get_user_health(id));
}
}
}
if(get_pcvar_num(zombie_level)) {
server_cmd("zombie_knife 0")
}
}
///////////////////////////////////////////////////////////////////
// Bot Settings //
/////////////////////////////////////////////////////////////////
public bot_cfg()
{
server_cmd("pb_minbots %d", get_pcvar_num(zombie_maxslots))
server_cmd("pb_maxbots %d", get_pcvar_num(zombie_maxslots))
//server_cmd("pb_bot_quota_match 0")
//server_cmd("pb_mapstartbotdelay 1.0")
//server_cmd("pb_bot_join_team T")
//server_cmd("pb_minbotskill 100")
//server_cmd("pb_maxbotskill 100")
//server_cmd("pb_jasonmode 1")
//server_cmd("pb_detailnames 0")
//server_cmd("pb_chat 0")
//server_cmd("pb_radio 1")
//server_cmd("pb_aim_type 1")
}
///////////////////////////////////////////////////////////////////
// Set Zombie/Survivor Values //
/////////////////////////////////////////////////////////////////
public event_set_power(id)
{
message_begin(MSG_ONE, g_hide_weapon, _, id)
write_byte(1<<4)
message_end()
set_task(0.1, "round_start_effects", id)
switch(cs_get_user_team(id)) {
case CS_TEAM_CT:{
set_task(0.1, "survivor_power1", id)
}
case CS_TEAM_T:{
new szFunc[16];
formatex(szFunc, charsmax(szFunc), "zombie_power_%i", get_pcvar_num(zombie_level));
set_task(0.1, szFunc, id)
}
}
}
public zombie_power_1(id)
{
cs_set_user_money(id, 0)
g_boss_class[id] = 0
g_zombie_class[id] = 1
cs_set_user_nvg(id, 1)
set_user_health(id, get_pcvar_num(level1_health))
set_user_maxspeed(id, get_pcvar_float(level1_maxspeed))
set_user_gravity(id, 0.5)
}
public zombie_power_2(id)
{
cs_set_user_money(id, 0)
g_boss_class[id] = 0
g_zombie_class[id] = 2
cs_set_user_nvg(id, 1)
set_user_health(id, get_pcvar_num(level2_health))
set_user_maxspeed(id, get_pcvar_float(level2_maxspeed))
set_user_gravity(id, 0.5)
}
public zombie_power_3(id)
{
cs_set_user_money(id, 0)
g_boss_class[id] = 0
g_zombie_class[id] = 3
cs_set_user_nvg(id, 1)
set_user_health(id, get_pcvar_num(level3_health))
set_user_maxspeed(id, get_pcvar_float(level3_maxspeed))
set_user_gravity(id, 0.5)
}
public zombie_power_4(id)
{
cs_set_user_money(id, 0)
g_boss_class[id] = 0
g_zombie_class[id] = 4
cs_set_user_nvg(id, 1)
set_user_health(id, get_pcvar_num(level4_health))
set_user_maxspeed(id, get_pcvar_float(level4_maxspeed))
set_user_gravity(id, 0.5)
}
public zombie_power_5(id)
{
cs_set_user_money(id, 0)
g_boss_class[id] = 0
g_zombie_class[id] = 5
cs_set_user_nvg(id, 1)
set_user_health(id, get_pcvar_num(level5_health))
set_user_maxspeed(id, get_pcvar_float(level5_maxspeed))
set_user_gravity(id, 0.5)
}
public zombie_power_6(id)
{
cs_set_user_money(id, 0)
g_boss_class[id] = 0
g_zombie_class[id] = 6
cs_set_user_nvg(id, 1)
set_user_health(id, get_pcvar_num(level6_health))
set_user_maxspeed(id, get_pcvar_float(level6_maxspeed))
set_user_gravity(id, 0.5)
}
public zombie_power_7(id)
{
cs_set_user_money(id, 0)
g_boss_class[id] = 0
g_zombie_class[id] = 7
cs_set_user_nvg(id, 1)
set_user_health(id, get_pcvar_num(level7_health))
set_user_maxspeed(id, get_pcvar_float(level7_maxspeed))
set_user_gravity(id, 0.5)
}
public zombie_power_8(id)
{
cs_set_user_money(id, 0)
g_boss_class[id] = 0
g_zombie_class[id] = 8
cs_set_user_nvg(id, 1)
set_user_health(id, get_pcvar_num(level8_health))
set_user_maxspeed(id, get_pcvar_float(level8_maxspeed))
set_user_gravity(id, 0.5)
}
public zombie_power_9(id)
{
cs_set_user_money(id, 0)
g_boss_class[id] = 0
g_zombie_class[id] = 9
cs_set_user_nvg(id, 1)
set_user_health(id, get_pcvar_num(level9_health))
set_user_maxspeed(id, get_pcvar_float(level9_maxspeed))
set_user_gravity(id, 0.5)
}
public zombie_power_10(id)
{
cs_set_user_money(id, 0)
g_boss_class[id] = 0
g_zombie_class[id] = 10
cs_set_user_nvg(id, 1)
set_user_health(id, get_pcvar_num(level10_health))
set_user_maxspeed(id, get_pcvar_float(level10_maxspeed))
set_user_gravity(id, 0.3)
}
public survivor_power1(id) {
g_zombie_class[id] = 0
g_boss_class[id] = 0
if (get_pcvar_num(survivor_weaponkit) == 1)
if(get_user_team(id) != 2 && get_user_weapon(id) != CSW_KNIFE)
{
return
}
strip_user_weapons(id)
{
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 200)
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 200)
give_item(id, "weapon_m249")
cs_set_user_bpammo(id, CSW_M249, 200)
give_item(id, "weapon_mp5navy")
cs_set_user_bpammo(id, CSW_MP5NAVY, 200)
give_item(id, "weapon_aug")
cs_set_user_bpammo(id, CSW_AUG, 200)
give_item(id, "weapon_m3")
cs_set_user_bpammo(id, CSW_M3, 200)
give_item(id, "weapon_galil")
cs_set_user_bpammo(id, CSW_GALIL, 200)
give_item(id, "weapon_xm1014")
cs_set_user_bpammo(id, CSW_XM1014, 200)
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 200)
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_smokegrenade")
cs_set_user_nvg( id, 1)
cs_set_user_armor ( id, 100, CsArmorType:2 )
}
if(get_pcvar_num(survivor_classes) == 1)
{
switch(g_player_class[id])
{
case 1:
{
set_user_health(id, 50);
set_user_maxspeed(id, 275.0)
}
case 2:
{
set_user_health(id, 300)
set_user_maxspeed(id, 165.0)
}
case 3:
{
set_user_health(id, 10)
set_user_maxspeed(id, 380.0)
}
case 4:
{
set_user_health(id, 100)
set_user_maxspeed(id, 250.0)
}
case 5:
{
set_user_health(id, 1)
set_user_maxspeed(id, 400.0)
set_user_gravity(id, 0.3)
}
case 6:
{
set_user_health(id, 500)
set_user_maxspeed(id, 220.0)
set_user_gravity(id, 3.2)
}
case 7:
{
set_user_health(id, 40)
set_user_maxspeed(id, 210.0)
set_user_gravity(id, 0.5)
}
case 8:
{
set_user_health(id, 800)
set_user_maxspeed(id, 120.0)
}
case 9:
{
set_user_health(id, 300)
set_user_maxspeed(id, 600.0)
set_user_gravity(id, 7.5)
}
}
if(!g_bChoose[id])
set_task(1.0, "task_show_surv_class_menu", id)
}
}
///////////////////////////////////////////////////////////////////
// Set Zombie Model //
/////////////////////////////////////////////////////////////////
public ham_player_spawn(id)
{
if(is_user_alive(id))
return
remove_task(id + 100)
if(g_zombie[id])
{
switch (random_num(1, 3))
{
case 1: copy(g_player_model[id], charsmax( g_player_model[] ), ZOMBIE_MODEL1)
case 2: copy(g_player_model[id], charsmax( g_player_model[] ), ZOMBIE_MODEL2)
case 3: copy(g_player_model[id], charsmax( g_player_model[] ), ZOMBIE_MODEL3)
}
new currentmodel[32]
fm_get_user_model(id, currentmodel, charsmax(currentmodel))
if(!equal(currentmodel, g_player_model[id]))
{
if(get_gametime() - g_roundstart_time < 5.0)
set_task(5.0 * 0.5, "fm_user_model_update", id + 100)
else
fm_user_model_update(id + 100)
}
}
else if(g_has_custom_model[id])
{
fm_reset_user_model(id)
switch(g_player_class[id])
{
case 1:
{
set_user_health(id, 50);
set_user_maxspeed(id, 275.0)
}
case 2:
{
set_user_health(id, 300)
set_user_maxspeed(id, 165.0)
}
case 3:
{
set_user_health(id, 10)
set_user_maxspeed(id, 380.0)
}
case 4:
{
set_user_health(id, 100)
set_user_maxspeed(id, 250.0)
}
case 5:
{
set_user_health(id, 1)
set_user_maxspeed(id, 400.0)
set_user_gravity(id, 0.3)
}
case 6:
{
set_user_health(id, 500)
set_user_maxspeed(id, 220.0)
set_user_gravity(id, 3.2)
}
case 7:
{
set_user_health(id, 40)
set_user_maxspeed(id, 210.0)
set_user_gravity(id, 0.5)
}
case 8:
{
set_user_health(id, 800)
set_user_maxspeed(id, 120.0)
}
case 9:
{
set_user_health(id, 300)
set_user_maxspeed(id, 600.0)
set_user_gravity(id, 7.5)
}
}
}
}
public fm_client_key(id, const infobuffer[], const key[])
{
if(g_has_custom_model[id] && equal(key, "model"))
return FMRES_SUPERCEDE
return FMRES_IGNORED
}
public fm_client_info(id)
{
if(!g_has_custom_model[id])
return FMRES_IGNORED
static currentmodel[32]
fm_get_user_model(id, currentmodel, charsmax(currentmodel))
if(!equal(currentmodel, g_player_model[id]) && !task_exists(id + 100))
fm_set_user_model(id + 100)
return FMRES_IGNORED
}
public fm_user_model_update(taskid)
{
static Float:current_time
current_time = get_gametime()
if(current_time - g_models_target_time >= 0.5)
{
fm_set_user_model(taskid)
g_models_target_time = current_time
}
else
{
set_task((g_models_target_time + 0.5) - current_time, "fm_set_user_model", taskid)
g_models_target_time = g_models_target_time + 0.5
}
}
public fm_set_user_model(player)
{
player -= 100
engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", g_player_model[player])
g_has_custom_model[player] = true
}
///////////////////////////////////////////////////////////////////
// Player Connected //
/////////////////////////////////////////////////////////////////
public client_connect(id)
{
g_first_spawn[id] = true
}
///////////////////////////////////////////////////////////////////
// Player Disconnected //
/////////////////////////////////////////////////////////////////
public client_disconnected(id)
{
remove_task(id)
g_respawn_count[id] = 0
g_bChoose[id] = false;
}
///////////////////////////////////////////////////////////////////
// Death Event //
/////////////////////////////////////////////////////////////////
public ham_player_killed(victim, attacker, shouldgib)
{
new cts[32], ts[32], ctsnum, tsnum
new CsTeams:team
for(new i=1; i<=g_maxplayers; i++)
{
if(!is_user_alive(i))
{
continue
}
team = cs_get_user_team(i)
if(team == CS_TEAM_T)
{
ts[tsnum++] = i
} else if(team == CS_TEAM_CT) {
cts[ctsnum++] = i
}
}
if(ctsnum == 0)
{
switch(get_pcvar_num(zombie_level))
{
case 1:
{
server_cmd("zombie_level 1")
server_cmd("zombie_respawns %d", get_pcvar_num(level1_respawns))
}
case 2:
{
server_cmd("zombie_level 1")
server_cmd("zombie_respawns %d", get_pcvar_num(level1_respawns))
}
case 3:
{
server_cmd("zombie_level 2")
server_cmd("zombie_respawns %d", get_pcvar_num(level2_respawns))
}
case 4:
{
server_cmd("zombie_level 3")
server_cmd("zombie_respawns %d", get_pcvar_num(level3_respawns))
}
case 5:
{
server_cmd("zombie_level 4")
server_cmd("zombie_respawns %d", get_pcvar_num(level4_respawns))
}
case 6:
{
server_cmd("zombie_level 5")
server_cmd("zombie_respawns %d", get_pcvar_num(level5_respawns))
}
case 7:
{
server_cmd("zombie_level 6")
server_cmd("zombie_respawns %d", get_pcvar_num(level6_respawns))
}
case 8:
{
server_cmd("zombie_level 7")
server_cmd("zombie_respawns %d", get_pcvar_num(level7_respawns))
}
case 9:
{
server_cmd("zombie_level 8")
server_cmd("zombie_respawns %d", get_pcvar_num(level8_respawns))
}
case 10:
{
server_cmd("zombie_level 9")
server_cmd("zombie_respawns %d", get_pcvar_num(level9_respawns))
}
}
}
if(tsnum == 0)
{
switch(get_pcvar_num(zombie_level))
{
case 1:
{
server_cmd("zombie_level 2")
server_cmd("zombie_respawns %d", get_pcvar_num(level2_respawns))
}
case 2:
{
server_cmd("zombie_level 3")
server_cmd("zombie_respawns %d", get_pcvar_num(level3_respawns))
}
case 3:
{
server_cmd("zombie_level 4")
server_cmd("zombie_respawns %d", get_pcvar_num(level4_respawns))
}
case 4:
{
server_cmd("zombie_level 5")
server_cmd("zombie_respawns %d", get_pcvar_num(level5_respawns))
}
case 5:
{
server_cmd("zombie_level 6")
server_cmd("zombie_respawns %d", get_pcvar_num(level6_respawns))
}
case 6:
{
server_cmd("zombie_level 7")
server_cmd("zombie_respawns %d", get_pcvar_num(level7_respawns))
}
case 7:
{
server_cmd("zombie_level 8")
server_cmd("zombie_respawns %d", get_pcvar_num(level8_respawns))
}
case 8:
{
server_cmd("zombie_level 9")
server_cmd("zombie_respawns %d", get_pcvar_num(level9_respawns))
}
case 9:
{
server_cmd("zombie_level 10")
server_cmd("zombie_respawns %d", get_pcvar_num(level10_respawns))
}
case 10:
{
set_task(3.0, "new_map")
server_cmd("zombie_level 1")
server_cmd("zombie_respawns %d", get_pcvar_num(level1_respawns))
}
}
}
if(tsnum == 1 && g_boss_class[ts[0]] < 1)
{
switch(get_pcvar_num(zombie_level))
{
case 1:
{
g_zombie_class[ts[0]] = 0
g_boss_class[ts[0]] = 1
new tname[32]
get_user_name(ts[0], tname, 31)
set_hudmessage(255, 255, 255, -1.0, 0.20, 0, 6.0, 999.0, 0.1, 0.2, 2)
//show_hudmessage(0, "%s Теперь он босс!!!", tname)
client_cmd(0,"stopsound")
client_cmd(0, "mp3 play sound/jurassic_park/boss_dinosaurs_sound.mp3")
set_user_health(ts[0], get_pcvar_num(level1_bosshp))
set_user_maxspeed(ts[0], get_pcvar_float(level1_bossmaxspeed))
server_cmd("zombie_knife 1")
set_task(1.0, "boss_beacon", ts[0])
}
case 2:
{
g_zombie_class[ts[0]] = 0
g_boss_class[ts[0]] = 2
client_cmd(0,"stopsound")
client_cmd(0, "mp3 play sound/jurassic_park/boss_dinosaurs_sound.mp3")
set_user_health(ts[0], get_pcvar_num(level2_bosshp))
set_user_maxspeed(ts[0], get_pcvar_float(level2_bossmaxspeed))
server_cmd("zombie_knife 1")
set_task(1.0, "boss_beacon", ts[0])
}
case 3:
{
g_zombie_class[ts[0]] = 0
g_boss_class[ts[0]] = 3
client_cmd(0,"stopsound")
client_cmd(0, "mp3 play sound/jurassic_park/boss_dinosaurs_sound.mp3")
set_user_health(ts[0], get_pcvar_num(level3_bosshp))
set_user_maxspeed(ts[0], get_pcvar_float(level3_bossmaxspeed))
server_cmd("zombie_knife 1")
set_task(1.0, "boss_beacon", ts[0])
}
case 4:
{
g_zombie_class[ts[0]] = 0
g_boss_class[ts[0]] = 4
client_cmd(0,"stopsound")
client_cmd(0, "mp3 play sound/jurassic_park/boss_dinosaurs_sound.mp3")
set_user_health(ts[0], get_pcvar_num(level4_bosshp))
set_user_maxspeed(ts[0], get_pcvar_float(level4_bossmaxspeed))
server_cmd("zombie_knife 1")
set_task(1.0, "boss_beacon", ts[0])
}
case 5:
{
g_zombie_class[ts[0]] = 0
g_boss_class[ts[0]] = 5
client_cmd(0,"stopsound")
client_cmd(0, "mp3 play sound/jurassic_park/boss_dinosaurs_sound.mp3")
set_user_health(ts[0], get_pcvar_num(level5_bosshp))
set_user_maxspeed(ts[0], get_pcvar_float(level5_bossmaxspeed))
server_cmd("zombie_knife 1")
set_task(1.0, "boss_beacon", ts[0])
}
case 6:
{
g_zombie_class[ts[0]] = 0
g_boss_class[ts[0]] = 6
client_cmd(0,"stopsound")
client_cmd(0, "mp3 play sound/jurassic_park/boss_dinosaurs_sound.mp3")
set_user_health(ts[0], get_pcvar_num(level6_bosshp))
set_user_maxspeed(ts[0], get_pcvar_float(level6_bossmaxspeed))
server_cmd("zombie_knife 1")
set_task(1.0, "boss_beacon", ts[0])
}
case 7:
{
g_zombie_class[ts[0]] = 0
g_boss_class[ts[0]] = 7
client_cmd(0,"stopsound")
client_cmd(0, "mp3 play sound/jurassic_park/boss_dinosaurs_sound.mp3")
set_user_health(ts[0], get_pcvar_num(level7_bosshp))
set_user_maxspeed(ts[0], get_pcvar_float(level7_bossmaxspeed))
server_cmd("zombie_knife 1")
set_task(1.0, "boss_beacon", ts[0])
}
case 8:
{
g_zombie_class[ts[0]] = 0
g_boss_class[ts[0]] = 8
client_cmd(0,"stopsound")
client_cmd(0, "mp3 play sound/jurassic_park/boss_dinosaurs_sound.mp3")
set_user_health(ts[0], get_pcvar_num(level8_bosshp))
set_user_maxspeed(ts[0], get_pcvar_float(level8_bossmaxspeed))
server_cmd("zombie_knife 1")
set_task(1.0, "boss_beacon", ts[0])
}
case 9:
{
g_zombie_class[ts[0]] = 0
g_boss_class[ts[0]] = 9
client_cmd(0,"stopsound")
client_cmd(0, "mp3 play sound/jurassic_park/boss_dinosaurs_sound.mp3")
set_user_health(ts[0], get_pcvar_num(level9_bosshp))
set_user_maxspeed(ts[0], get_pcvar_float(level9_bossmaxspeed))
server_cmd("zombie_knife 1")
set_task(1.0, "boss_beacon", ts[0])
}
case 10:
{
g_zombie_class[ts[0]] = 0
g_boss_class[ts[0]] = 10
client_cmd(0,"stopsound")
client_cmd(0, "mp3 play sound/jurassic_park/boss_dinosaurs_sound.mp3")
set_user_health(ts[0], get_pcvar_num(level10_bosshp))
set_user_maxspeed(ts[0], get_pcvar_float(level10_bossmaxspeed))
server_cmd("zombie_knife 1")
set_task(1.0, "boss_beacon", ts[0])
}
}
}
if(cs_get_user_team(victim) == CS_TEAM_T && get_pcvar_num(zombie_effect) == 1)
{
static Float:FOrigin2[3]
pev(victim, pev_origin, FOrigin2)
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, FOrigin2, 0)
write_byte(TE_PARTICLEBURST)
engfunc(EngFunc_WriteCoord, FOrigin2[0])
engfunc(EngFunc_WriteCoord, FOrigin2[1])
engfunc(EngFunc_WriteCoord, FOrigin2[2])
write_short(50)
write_byte(72)
write_byte(10)
message_end()
}
}
public new_map()
{
new nextmap[32]
get_cvar_string("amx_nextmap", nextmap, 31)
server_cmd("changelevel %s", nextmap)
}
///////////////////////////////////////////////////////////////////
// Death Event 2 //
/////////////////////////////////////////////////////////////////
public event_death_msg()
{
new zrespawn = read_data(2)
set_pev(zrespawn, pev_effects, EF_NODRAW)
if(get_user_team(zrespawn) == 0)
{
if(++g_respawn_count[zrespawn] > get_pcvar_num(zombie_respawns))
{
return
}
set_task(1.0, "zombie_respawner", zrespawn)
}
}
///////////////////////////////////////////////////////////////////
// Survivor Respawn //
/////////////////////////////////////////////////////////////////
public ham_killed_respawn(id)
{
if(is_user_connected(id) && cs_get_user_team(id) == CS_TEAM_CT)
{
g_respawn_delay[id] = 10
survivor_respawner(id)
}
}
public survivor_respawner(id)
{
if(is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE
if(g_respawn_delay[id] > 0)
{
g_respawn_delay[id]--
set_task(1.0, "survivor_respawner", id)
}
else
ExecuteHamB(Ham_CS_RoundRespawn, id)
return PLUGIN_CONTINUE
}
public join_spawn()
{
new player_spawn = read_data(1)
static user_team[32]
read_data(2, user_team, 31)
if(!is_user_connected(player_spawn))
return PLUGIN_CONTINUE
switch(user_team[0])
{
case 'C': set_task(1.0, "survivor_respawner", player_spawn)
//case 'T': client_print(player_spawn, print_chat, "Zombies cant use this respawn method!")
//case 'S': client_print(player_spawn, print_chat, "Spectators cant use this respawn method!")
}
return PLUGIN_CONTINUE
}
///////////////////////////////////////////////////////////////////
// CSDM Respawn //
/////////////////////////////////////////////////////////////////
public zombie_respawner(zrespawn)
{
new cts[32], ts[32], ctsnum, tsnum
new CsTeams:team
for(new i=1; i<=g_maxplayers; i++)
{
if(!is_user_alive(i))
{
continue
}
team = cs_get_user_team(i)
if(team == CS_TEAM_T)
{
ts[tsnum++] = i
} else if(team == CS_TEAM_T) {
cts[ctsnum++] = i
}
}
if(tsnum > 1)
{
switch(get_pcvar_num(zombie_spawnpoint))
{
case 1:
{
ExecuteHamB(Ham_CS_RoundRespawn, zrespawn)
set_task(0.1, "respawn_effect", zrespawn)
strip_user_weapons(zrespawn)
give_item(zrespawn, "")
set_user_godmode(zrespawn, 1)
set_task(5.0, "remove_zombie_protection", zrespawn)
}
case 2:
{
pev(zrespawn, pev_origin, g_vec_last_origin[zrespawn])
ExecuteHamB(Ham_CS_RoundRespawn, zrespawn)
engfunc(EngFunc_SetOrigin, zrespawn, g_vec_last_origin[zrespawn])
set_task(0.1, "respawn_effect", zrespawn)
strip_user_weapons(zrespawn)
give_item(zrespawn, "")
set_user_godmode(zrespawn, 1)
set_task(5.0, "remove_zombie_protection", zrespawn)
}
}
}
}
csdm_respawn()
{
new map[32], config[32], mapfile[64]
get_mapname(map, 31)
get_configsdir(config, 31)
format(mapfile, 63, "%s\csdm\%s.spawns.cfg", config, map)
g_total_spawn = 0
if (file_exists(mapfile))
{
new new_data[124], len
new line = 0
new pos[12][8]
while(g_total_spawn < 60 && (line = read_file(mapfile , line , new_data , 123 , len) ) != 0 )
{
if (strlen(new_data)<2 || new_data[0] == '[')
continue
parse(new_data, pos[1], 7, pos[2], 7, pos[3], 7, pos[4], 7, pos[5], 7, pos[6], 7, pos[7], 7, pos[8], 7, pos[9], 7, pos[10], 7)
g_spawn_vec[g_total_spawn][0] = str_to_float(pos[1])
g_spawn_vec[g_total_spawn][1] = str_to_float(pos[2])
g_spawn_vec[g_total_spawn][2] = str_to_float(pos[3])
g_spawn_angle[g_total_spawn][0] = str_to_float(pos[4])
g_spawn_angle[g_total_spawn][1] = str_to_float(pos[5])
g_spawn_angle[g_total_spawn][2] = str_to_float(pos[6])
g_spawn_v_angle[g_total_spawn][0] = str_to_float(pos[8])
g_spawn_v_angle[g_total_spawn][1] = str_to_float(pos[9])
g_spawn_v_angle[g_total_spawn][2] = str_to_float(pos[10])
g_total_spawn++
}
if (g_total_spawn >= 2 && get_pcvar_num(zombie_spawnpoint) == 1)
{
RegisterHam(Ham_Spawn, "player", "csdm_player_spawn", 1)
}
}
return 1
}
public csdm_player_spawn(id)
{
if (!is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_CT)
return
if (g_first_spawn[id])
{
g_first_spawn[id] = false
return
}
new list[60]
new num = 0
new final = -1
new total=0
new players[32], n, x = 0
new Float:loc[32][3], locnum
get_players(players, num)
for (new i=0; i<num; i++)
{
if (is_user_alive(players[i]) && players[i] != id)
{
pev(players[i], pev_origin, loc[locnum])
locnum++
}
}
num = 0
while (num <= g_total_spawn)
{
if (num == g_total_spawn)
break
n = random_num(0, g_total_spawn-1)
if (!list[n])
{
list[n] = 1
num++
}
else
{
total++
if (total > 100)
break
continue
}
if (locnum < 1)
{
final = n
break
}
final = n
for (x = 0; x < locnum; x++)
{
new Float:distance = get_distance_f(g_spawn_vec[n], loc[x])
if (distance < 250.0)
{
final = -1
break
}
}
if (final != -1)
break
}
if (final != -1)
{
new Float:mins[3], Float:maxs[3]
pev(id, pev_mins, mins)
pev(id, pev_maxs, maxs)
engfunc(EngFunc_SetSize, id, mins, maxs)
engfunc(EngFunc_SetOrigin, id, g_spawn_vec[final])
set_pev(id, pev_fixangle, 1)
set_pev(id, pev_angles, g_spawn_angle[final])
set_pev(id, pev_v_angle, g_spawn_v_angle[final])
set_pev(id, pev_fixangle, 1)
}
}
///////////////////////////////////////////////////////////////////
// Respawn Effect //
/////////////////////////////////////////////////////////////////
public respawn_effect(id)
{
if(get_pcvar_num(zombie_effect) == 1)
{
static Float:FOrigin3[3]
pev(id, pev_origin, FOrigin3)
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, FOrigin3, 0)
write_byte(TE_IMPLOSION)
engfunc(EngFunc_WriteCoord, FOrigin3[0])
engfunc(EngFunc_WriteCoord, FOrigin3[1])
engfunc(EngFunc_WriteCoord, FOrigin3[2])
write_byte(255)
write_byte(255)
write_byte(5)
message_end()
}
}
///////////////////////////////////////////////////////////////////
// Respawn Protection //
/////////////////////////////////////////////////////////////////
public remove_zombie_protection(id)
{
set_user_godmode(id, 0)
give_item(id, "weapon_knife")
}
///////////////////////////////////////////////////////////////////
// Survivor Classes //
/////////////////////////////////////////////////////////////////
public task_show_surv_class_menu(id)
{
if(cs_get_user_team(id) != CS_TEAM_CT)
return;
if(g_player_class[id] != 0)
return;
survivor_class_menu(id);
g_bChoose[id] = true;
}
public clcmd_show_surv_class_menu(id)
{
if(cs_get_user_team(id) != CS_TEAM_CT)
{
#if AMXX_VERSION_NUM < 183
ColorChat(id, RED, "^4[ Парк Динозавров ] ^1Это меню доступно только ^3Хищникам !")
#else
client_print_color(id, print_team_red, "^4[ Парк Динозавров ] ^1Это меню доступно только ^3Хищникам !")
#endif
return;
}
survivor_class_menu(id)
}
public survivor_class_menu(id)
{
new menuid = menu_create("\rПарк Динозавров\w^n\yКлассы Хищников\w", "survivor_menu_handler")
menu_additem(menuid, "Шрам", "1", 0)
menu_additem(menuid, "Чоппер", "2", 0)
menu_additem(menuid, "Ночной Волк", "3", 0)
menu_additem(menuid, "Кельт", "4", 0)
menu_additem(menuid, "Берсеркер", "5", 0)
menu_additem(menuid, "Охотник", "6", 0)
menu_additem(menuid, "Старейшина", "7", 0)
menu_additem(menuid, "Повелитель", "8", 0)
menu_additem(menuid, "Властелин", "9", 0)
menu_setprop(menuid, MPROP_PERPAGE, 0);
menu_setprop(menuid, MPROP_EXIT, MEXIT_NEVER);
menu_display(id, menuid, 0)
}
public survivor_menu_handler(id, menuid, item)
{
new data[6], iName[64]
new access, callback
menu_item_getinfo(menuid, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1:
{
g_zombie_class[id] = 0
g_boss_class[id] = 0
g_player_class[id] = 1
set_user_health(id, 50)
set_user_maxspeed(id, 275.0)
ColorChat(id, RED, "^4[ Парк Динозавров ] ^3Ваш класс Хищника ^4[ Шрам ]", g_player_class)
}
case 2:
{
g_zombie_class[id] = 0
g_boss_class[id] = 0
g_player_class[id] = 2
set_user_health(id, 300)
set_user_maxspeed(id, 165.0)
ColorChat(id, RED, "^4[ Парк Динозавров ] ^3Ваш класс Хищника ^4[ Чоппер ]", g_player_class)
}
case 3:
{
g_zombie_class[id] = 0
g_boss_class[id] = 0
g_player_class[id] = 3
set_user_health(id, 10)
set_user_maxspeed(id, 380.0)
ColorChat(id, RED, "^4[ Парк Динозавров ] ^3Ваш класс Хищника ^4[ Ночной Волк ]", g_player_class)
}
case 4:
{
g_zombie_class[id] = 0
g_boss_class[id] = 0
g_player_class[id] = 4
set_user_health(id, 100)
set_user_maxspeed(id, 250.0)
ColorChat(id, RED, "^4[ Парк Динозавров ] ^3Ваш класс Хищника ^4[ Кельт ]", g_player_class)
}
case 5:
{
g_zombie_class[id] = 0
g_boss_class[id] = 0
g_player_class[id] = 5
set_user_health(id, 1)
set_user_maxspeed(id, 400.0)
set_user_gravity(id, 0.3)
ColorChat(id, RED, "^4[ Парк Динозавров ] ^3Ваш класс Хищника ^4[ Берсеркер ]", g_player_class)
}
case 6:
{
g_zombie_class[id] = 0
g_boss_class[id] = 0
g_player_class[id] = 6
set_user_health(id, 500)
set_user_maxspeed(id, 220.0)
set_user_gravity(id, 3.2)
ColorChat(id, RED, "^4[ Парк Динозавров ] ^3Ваш класс Хищника ^4[ Охотник ]", g_player_class)
}
case 7:
{
g_zombie_class[id] = 0
g_boss_class[id] = 0
g_player_class[id] = 7
set_user_health(id, 40)
set_user_maxspeed(id, 210.0)
set_user_gravity(id, 0.5)
ColorChat(id, RED, "^4[ Парк Динозавров ] ^3Ваш класс Хищника ^4[ Старейшина ]", g_player_class)
}
case 8:
{
g_zombie_class[id] = 0
g_boss_class[id] = 0
g_player_class[id] = 8
set_user_health(id, 800)
set_user_maxspeed(id, 120.0)
ColorChat(id, RED, "^4[ Парк Динозавров ] ^3Ваш класс Хищника ^4[ Повелитель ]", g_player_class)
}
case 9:
{
g_zombie_class[id] = 0
g_boss_class[id] = 0
g_player_class[id] = 9
set_user_health(id, 300)
set_user_maxspeed(id, 600.0)
set_user_gravity(id, 7.5)
ColorChat(id, RED, "^4[ Парк Динозавров ] ^3Ваш класс Хищника ^4[ Властелин ]", g_player_class)
}
}
menu_destroy(menuid)
return PLUGIN_HANDLED
}
///////////////////////////////////////////////////////////////////
// Weapon Switch Event //
/////////////////////////////////////////////////////////////////
public event_check_speed(id)
{
if(get_pcvar_num(survivor_classes) == 1)
{
switch(g_player_class[id])
{
case 1:
{
set_user_maxspeed(id, 275.0)
}
case 2:
{
set_user_maxspeed(id, 165.0)
}
case 3:
{
set_user_maxspeed(id, 380.0)
}
case 4:
{
set_user_maxspeed(id, 250.0)
}
case 5:
{
set_user_maxspeed(id, 400.0)
}
case 6:
{
set_user_maxspeed(id, 220.0)
}
case 7:
{
set_user_maxspeed(id, 210.0)
}
case 8:
{
set_user_maxspeed(id, 120.0)
}
case 9:
{
set_user_maxspeed(id, 600.0)
}
}
if(!g_bChoose[id])
set_task(1.0, "task_show_surv_class_menu", id)
}
if(g_zombie_class[id])
{
switch(g_zombie_class[id])
{
case 1:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level1_maxspeed))
}
case 2:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level2_maxspeed))
}
case 3:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level3_maxspeed))
}
case 4:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level4_maxspeed))
}
case 5:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level5_maxspeed))
}
case 6:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level6_maxspeed))
}
case 7:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level7_maxspeed))
}
case 9:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level8_maxspeed))
}
case 8:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level9_maxspeed))
}
case 10:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level10_maxspeed))
}
}
}
if(g_boss_class[id])
{
switch(g_boss_class[id])
{
case 1:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level1_bossmaxspeed))
}
case 2:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level2_bossmaxspeed))
}
case 3:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level3_bossmaxspeed))
}
case 4:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level4_bossmaxspeed))
}
case 5:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level5_bossmaxspeed))
}
case 6:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level6_bossmaxspeed))
}
case 7:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level7_bossmaxspeed))
}
case 9:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level8_bossmaxspeed))
}
case 8:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level9_bossmaxspeed))
}
case 10:
{
engclient_cmd(id, "weapon_knife")
set_user_maxspeed(id, get_pcvar_float(level10_bossmaxspeed))
}
}
}
}
///////////////////////////////////////////////////////////////////
// Lock Zombie Team //
/////////////////////////////////////////////////////////////////
public force_team(id)
{
engclient_cmd(id, "jointeam", "2", "3")
}
///////////////////////////////////////////////////////////////////
// Unlimited Ammo //
/////////////////////////////////////////////////////////////////
public event_free_ammo(id)
{
set_pdata_int(id, 376 + read_data(1), 200, 5)
}
///////////////////////////////////////////////////////////////////
// Remove Map Objectives //
/////////////////////////////////////////////////////////////////
public forward_spawn(ent) {
if (!pev_valid(ent))
return FMRES_IGNORED
static classname[32], i
pev(ent, pev_classname, classname, sizeof classname - 1)
for (i = 0; i < sizeof g_objective_ents; ++i) {
if (equal(classname, g_objective_ents[i])) {
if (!(REMOVE_OBJECTIVES & g_objective_type[i]))
return FMRES_IGNORED
engfunc(EngFunc_RemoveEntity, ent)
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED
}
bool:is_objective_map() {
new const classname[] = "classname"
for (new i = 0; i < sizeof g_objective_ents; ++i) {
if (g_objective_prim[i] && engfunc(EngFunc_FindEntityByString, FM_NULLENT, classname, g_objective_ents[i]))
return true
}
return false
}
///////////////////////////////////////////////////////////////////
// Stocks //
/////////////////////////////////////////////////////////////////
stock fm_get_user_model(player, model[], len)
{
engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", model, len)
}
stock fm_reset_user_model(player)
{
g_has_custom_model[player] = false
dllfunc(DLLFunc_ClientUserInfoChanged, player, engfunc(EngFunc_GetInfoKeyBuffer, player))
}
///////////////////////////////////////////////////////////////////
// Boss Beacon //
/////////////////////////////////////////////////////////////////
public boss_beacon(id)
{
if(g_boss_class[id] >= 1 && is_user_alive(id))
{
static origin[3]
get_user_origin(id, origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMCYLINDER)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]-20)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]+200)
write_short(g_boss_sprite)
write_byte(0)
write_byte(1)
write_byte(6)
write_byte(2)
write_byte(1)
write_byte(50)
write_byte(50)
write_byte(255)
write_byte(200)
write_byte(6)
message_end()
set_task(1.0, "boss_beacon", id)
}
}
///////////////////////////////////////////////////////////////////
// Round Start Screen Effects //
/////////////////////////////////////////////////////////////////
public round_start_effects(id)
{
new Float:screen_shake[3]
screen_shake[0] = random_float(100.0, 175.0)
screen_shake[1] = random_float(20.0, 80.0)
screen_shake[2] = random_float(550.0, 1200.0)
message_begin(MSG_ONE, g_screen_shake, {0,0,0}, id)
write_short(1<<14)
write_short(1<<14)
write_short(1<<14)
message_end()
}
///////////////////////////////////////////////////////////////////
// Round End Text & Sounds //
/////////////////////////////////////////////////////////////////
public dinosaurs_win()
{
client_cmd(0,"stopsound")
client_cmd(0,"mp3 play sound/jurassic_park/dinosaurs_sound.mp3")
}
public predators_win()
{
client_cmd(0,"stopsound")
client_cmd(0,"mp3 play sound/jurassic_park/predators_sound.mp3")
}
public round_end_message(const MsgId, const MsgDest, const MsgEntity)
{
static Message[192]
get_msg_arg_string(2, Message, 191)
if (equal(Message, "#Terrorists_Win"))
{
set_msg_arg_string(2, "")
}
else if (equal(Message, "#CTs_Win"))
{
set_msg_arg_string(2, "")
}
}
///////////////////////////////////////////////////////////////////
// Remove Round Time //
/////////////////////////////////////////////////////////////////
public message_hide_weapon() {
set_msg_arg_int(1, ARG_BYTE, get_msg_arg_int(1) | 1<<4)
}
public plugin_end()
{
if( get_pcvar_num( gPluginMode ) == 1 )
{
server_cmd( "sv_skyname %s", skies[ random_num( 0, charsmax( skies ) ) ] );
}
}
///////////////////////////////////////////////////////////////////
// EOF //
/////////////////////////////////////////////////////////////////
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/
|
|