Raised This Month: $12 Target: $400
 3% 

Jurassic Park [ Autom.murder T ]


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
MayroN
Senior Member
Join Date: Aug 2017
Location: Kyiv
Old 09-11-2019 , 15:46   Jurassic Park [ Autom.murder T ]
Reply With Quote #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(zrespawnpev_effectsEF_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_RoundRespawnid)
    
   return 
PLUGIN_CONTINUE
}
 
public 
join_spawn()
{
   new 
player_spawn read_data(1)
   static 
user_team[32]
    
   
read_data(2user_team31
    
   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], ctsnumtsnum
   
new CsTeams:team
    
   
for(new i=1i<=g_maxplayersi++)
   {
      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_RoundRespawnzrespawn)
            
set_task(0.1"respawn_effect"zrespawn)
            
strip_user_weapons(zrespawn)
            
give_item(zrespawn"")
            
set_user_godmode(zrespawn1
            
set_task(5.0"remove_zombie_protection"zrespawn)
         }
         case 
2:
         { 
            
pev(zrespawnpev_origing_vec_last_origin[zrespawn])
            
ExecuteHamB(Ham_CS_RoundRespawnzrespawn)
            
engfunc(EngFunc_SetOriginzrespawng_vec_last_origin[zrespawn])
            
set_task(0.1"respawn_effect"zrespawn)
            
strip_user_weapons(zrespawn)
            
give_item(zrespawn"")
            
set_user_godmode(zrespawn1
            
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_knifezombie_maxslotszombie_effectzombie_levelzombie_respawnssurvivor_classes,
level1_respawnslevel1_healthlevel1_maxspeedlevel1_bosshplevel1_bossmaxspeedlevel2_respawnszombie_spawnpoint,
level2_healthlevel2_maxspeedlevel2_bosshplevel2_bossmaxspeedlevel3_respawnslevel3_healthlevel3_maxspeed
level3_bosshplevel3_bossmaxspeedlevel4_respawnslevel4_healthlevel4_maxspeedlevel4_bosshplevel4_bossmaxspeed,
level5_respawnslevel5_healthlevel5_maxspeedlevel5_bosshplevel5_bossmaxspeedlevel6_respawnssurvivor_weaponkit,
level6_healthlevel6_maxspeedlevel6_bosshplevel6_bossmaxspeedlevel7_respawnslevel7_healthlevel7_maxspeed
level7_bosshplevel7_bossmaxspeedlevel8_respawnslevel8_healthlevel8_maxspeedlevel8_bosshplevel8_bossmaxspeed,
level9_respawnslevel9_healthlevel9_maxspeedlevel9_bosshplevel9_bossmaxspeedlevel10_respawns,  
level10_healthlevel10_maxspeedlevel10_bosshplevel10_bossmaxspeed
 
new gPluginMode;
new 
boolg_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_maxplayersg_boss_spriteg_screen_shakeg_hide_weapong_pcvar_no_objectivesg_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[] = { truetruetruefalsefalsefalsefalsetruetrue }
 
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_CreateNamedEntityengfunc(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_objectivescvar_valsizeof 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_OBJECTIVEScvar_defvalsizeof cvar_defval 1)
      
register_cvar(ZOMBIE_OBJECTIVEScvar_defval)
   }
    
   if (
is_objective_map())
   {
      return
   }
 
   new 
iEnt = -1
   
while( ( iEnt engfuncEngFunc_FindEntityByStringiEnt"classname""armoury_entity" ) ) ) {
      
engfuncEngFunc_RemoveEntityiEnt )
   }
}
 
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(clientname31)
   
get_user_name(client2name231)
   if(
cs_get_user_team(client) == CS_TEAM_T && is_user_alive(client))
   {
      
set_user_health(clientget_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(identidattackerFloat:damagedamagebits)
{
   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
(idpev_healthflHealth)
      
SetHamParamFloat(4flHealth 5)
      return 
HAM_HANDLED
   
}
   return 
HAM_IGNORED
}
 
///////////////////////////////////////////////////////////////////
// Round Start                                                  //
/////////////////////////////////////////////////////////////////
 
public event_round_start()
{
   for(new 
1<= g_maxplayersi++)
   {
      
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 1id <= g_iMaxPlayersid++)
   {
      if(!
is_user_alive(id))
         continue;
       
      switch(
get_user_team(id))   {
         case 
1:{
            
set_dhudmessage(025500.010.9200.11.00.10.1);
            
show_dhudmessage(id"Тип • Динозавр • Ярость • Огонь [E] и Длинный прыжок • Здоровье • %i %%"get_user_health(id));
         }
         case 
2:{
            switch(
g_player_class[id])
            {
               case 
0format(sInfocharsmax(sInfo), "Не Выбран");
               case 
1format(sInfocharsmax(sInfo), "Шрам");
               case 
2format(sInfocharsmax(sInfo), "Чоппер");
               case 
3format(sInfocharsmax(sInfo), "Ночной Волк");
               case 
4format(sInfocharsmax(sInfo), "Кельт");
               case 
5format(sInfocharsmax(sInfo), "Берсеркер");
               case 
6format(sInfocharsmax(sInfo), "Охотник");
               case 
7format(sInfocharsmax(sInfo), "Старейшина");
               case 
8format(sInfocharsmax(sInfo), "Повелитель");
               case 
9format(sInfocharsmax(sInfo), "Властелин");
            }
            
set_dhudmessage(2552552550.010.9200.11.00.10.1);
            
show_dhudmessage(id"Тип • Хищник • Класс • %s • Ярость • Дым [E] • Здоровье • %i %%"sInfoget_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_ONEg_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(szFunccharsmax(szFunc), "zombie_power_%i"get_pcvar_num(zombie_level));
         
set_task(0.1szFuncid)
      }
   }
}
 
public 
zombie_power_1(id)
{
   
cs_set_user_money(id0)
   
g_boss_class[id] = 0
   g_zombie_class
[id] = 1
   cs_set_user_nvg
(id1)
   
set_user_health(idget_pcvar_num(level1_health))
   
set_user_maxspeed(idget_pcvar_float(level1_maxspeed))
   
set_user_gravity(id0.5)
}
 
public 
zombie_power_2(id)
{
   
cs_set_user_money(id0)
   
g_boss_class[id] = 0
   g_zombie_class
[id] = 2
   cs_set_user_nvg
(id1)
   
set_user_health(idget_pcvar_num(level2_health))
   
set_user_maxspeed(idget_pcvar_float(level2_maxspeed))
   
set_user_gravity(id0.5)
}
 
public 
zombie_power_3(id)
{
   
cs_set_user_money(id0)
   
g_boss_class[id] = 0
   g_zombie_class
[id] = 3
   cs_set_user_nvg
(id1)
   
set_user_health(idget_pcvar_num(level3_health))
   
set_user_maxspeed(idget_pcvar_float(level3_maxspeed))
   
set_user_gravity(id0.5)
}
 
public 
zombie_power_4(id)
{
   
cs_set_user_money(id0)
   
g_boss_class[id] = 0
   g_zombie_class
[id] = 4
   cs_set_user_nvg
(id1)
   
set_user_health(idget_pcvar_num(level4_health))
   
set_user_maxspeed(idget_pcvar_float(level4_maxspeed))
   
set_user_gravity(id0.5)
}
 
public 
zombie_power_5(id)
{
   
cs_set_user_money(id0)
   
g_boss_class[id] = 0
   g_zombie_class
[id] = 5
   cs_set_user_nvg
(id1)
   
set_user_health(idget_pcvar_num(level5_health))
   
set_user_maxspeed(idget_pcvar_float(level5_maxspeed))
   
set_user_gravity(id0.5)
}
 
public 
zombie_power_6(id)
{
   
cs_set_user_money(id0)
   
g_boss_class[id] = 0
   g_zombie_class
[id] = 6
   cs_set_user_nvg
(id1)
   
set_user_health(idget_pcvar_num(level6_health))
   
set_user_maxspeed(idget_pcvar_float(level6_maxspeed))
   
set_user_gravity(id0.5)
}
 
public 
zombie_power_7(id)
{
   
cs_set_user_money(id0)
   
g_boss_class[id] = 0
   g_zombie_class
[id] = 7
   cs_set_user_nvg
(id1)
   
set_user_health(idget_pcvar_num(level7_health))
   
set_user_maxspeed(idget_pcvar_float(level7_maxspeed))
   
set_user_gravity(id0.5)
}
 
public 
zombie_power_8(id)
{
   
cs_set_user_money(id0)
   
g_boss_class[id] = 0
   g_zombie_class
[id] = 8
   cs_set_user_nvg
(id1)
   
set_user_health(idget_pcvar_num(level8_health))
   
set_user_maxspeed(idget_pcvar_float(level8_maxspeed))
   
set_user_gravity(id0.5)
}
 
public 
zombie_power_9(id)
{
   
cs_set_user_money(id0)
   
g_boss_class[id] = 0
   g_zombie_class
[id] = 9
   cs_set_user_nvg
(id1)
   
set_user_health(idget_pcvar_num(level9_health))
   
set_user_maxspeed(idget_pcvar_float(level9_maxspeed))
   
set_user_gravity(id0.5)
}
 
public 
zombie_power_10(id)
{
   
cs_set_user_money(id0)
   
g_boss_class[id] = 0
   g_zombie_class
[id] = 10
   cs_set_user_nvg
(id1)
   
set_user_health(idget_pcvar_num(level10_health))
   
set_user_maxspeed(idget_pcvar_float(level10_maxspeed))
   
set_user_gravity(id0.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) != && get_user_weapon(id) != CSW_KNIFE)
        {
                return
        }
        
strip_user_weapons(id)
   {
      
give_item(id"weapon_ak47")
      
cs_set_user_bpammo(idCSW_AK47200)
      
give_item(id"weapon_m4a1")
      
cs_set_user_bpammo(idCSW_M4A1200)
      
give_item(id"weapon_m249")
      
cs_set_user_bpammo(idCSW_M249200)
      
give_item(id"weapon_mp5navy")
      
cs_set_user_bpammo(idCSW_MP5NAVY200)
      
give_item(id"weapon_aug")
      
cs_set_user_bpammo(idCSW_AUG200)
      
give_item(id"weapon_m3")
      
cs_set_user_bpammo(idCSW_M3200)
      
give_item(id"weapon_galil")
      
cs_set_user_bpammo(idCSW_GALIL200)
      
give_item(id"weapon_xm1014")
      
cs_set_user_bpammo(idCSW_XM1014200)
      
give_item(id"weapon_deagle")
      
cs_set_user_bpammo(idCSW_DEAGLE200)
      
give_item(id"weapon_flashbang")
      
give_item(id"weapon_flashbang")
      
give_item(id"weapon_hegrenade")
      
give_item(id"weapon_smokegrenade")
      
cs_set_user_nvgid1)
      
cs_set_user_armor id100CsArmorType:)
   }
   if(
get_pcvar_num(survivor_classes) == 1)
   {
      switch(
g_player_class[id])
      {
      case 
1:
                {
                        
set_user_health(id50);
         
set_user_maxspeed(id275.0)
                }
      case 
2:
      {
         
set_user_health(id300)
         
set_user_maxspeed(id165.0)
      }
      case 
3
      {
         
set_user_health(id10)
         
set_user_maxspeed(id380.0)
      }
      case 
4
      {
         
set_user_health(id100)
         
set_user_maxspeed(id250.0)         
      }
      case 
5
      {
         
set_user_health(id1)
         
set_user_maxspeed(id400.0)
         
set_user_gravity(id0.3)
      }
      case 
6
      {
         
set_user_health(id500)
         
set_user_maxspeed(id220.0)
         
set_user_gravity(id3.2)
      }
      case 
7
      {
         
set_user_health(id40)
         
set_user_maxspeed(id210.0)
         
set_user_gravity(id0.5)
      }
      case 
8
      {
         
set_user_health(id800)
         
set_user_maxspeed(id120.0)
      }
      case 
9
      {
         
set_user_health(id300)
         
set_user_maxspeed(id600.0)
         
set_user_gravity(id7.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(13))
      {
         case 
1copy(g_player_model[id], charsmaxg_player_model[] ), ZOMBIE_MODEL1)
         case 
2copy(g_player_model[id], charsmaxg_player_model[] ), ZOMBIE_MODEL2)
         case 
3copy(g_player_model[id], charsmaxg_player_model[] ), ZOMBIE_MODEL3)
      }
      new 
currentmodel[32]
      
fm_get_user_model(idcurrentmodelcharsmax(currentmodel))
      if(!
equal(currentmodelg_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(id50);
         
set_user_maxspeed(id275.0)
                }
      case 
2:
      {
         
set_user_health(id300)
         
set_user_maxspeed(id165.0)
      }
      case 
3
      {
         
set_user_health(id10)
         
set_user_maxspeed(id380.0)
      }
      case 
4
      {
         
set_user_health(id100)
         
set_user_maxspeed(id250.0)         
      }
      case 
5
      {
         
set_user_health(id1)
         
set_user_maxspeed(id400.0)
         
set_user_gravity(id0.3)
      }
      case 
6
      {
         
set_user_health(id500)
         
set_user_maxspeed(id220.0)
         
set_user_gravity(id3.2)
      }
      case 
7
      {
         
set_user_health(id40)
         
set_user_maxspeed(id210.0)
         
set_user_gravity(id0.5)
      }
      case 
8
      {
         
set_user_health(id800)
         
set_user_maxspeed(id120.0)
      }
      case 
9
      {
         
set_user_health(id300)
         
set_user_maxspeed(id600.0)
         
set_user_gravity(id7.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(idcurrentmodelcharsmax(currentmodel))
   if(!
equal(currentmodelg_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_SetClientKeyValueplayerengfunc(EngFunc_GetInfoKeyBufferplayer), "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(victimattackershouldgib)
{
   new 
cts[32], ts[32], ctsnumtsnum
   
new CsTeams:team
    
   
for(new i=1i<=g_maxplayersi++)
   {
      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 == && 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], tname31)
            
set_hudmessage(255255255, -1.00.2006.0999.00.10.22)
            
//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(victimpev_originFOrigin2)
      
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYFOrigin20)
      
write_byte(TE_PARTICLEBURST)
      
engfunc(EngFunc_WriteCoordFOrigin2[0])
      
engfunc(EngFunc_WriteCoordFOrigin2[1])
      
engfunc(EngFunc_WriteCoordFOrigin2[2])
      
write_short(50)
      
write_byte(72)
      
write_byte(10)
      
message_end()
   }
}  
 
public 
new_map()
{
   new 
nextmap[32]
   
get_cvar_string("amx_nextmap"nextmap31)
   
server_cmd("changelevel %s"nextmap)
}
 
///////////////////////////////////////////////////////////////////
// Death Event 2                                                //
/////////////////////////////////////////////////////////////////
 
public event_death_msg()
{
   new 
zrespawn read_data(2)
   
set_pev(zrespawnpev_effectsEF_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_RoundRespawnid)
    
   return 
PLUGIN_CONTINUE
}
 
public 
join_spawn()
{
   new 
player_spawn read_data(1)
   static 
user_team[32]
    
   
read_data(2user_team31
    
   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], ctsnumtsnum
   
new CsTeams:team
    
   
for(new i=1i<=g_maxplayersi++)
   {
      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_RoundRespawnzrespawn)
            
set_task(0.1"respawn_effect"zrespawn)
            
strip_user_weapons(zrespawn)
            
give_item(zrespawn"")
            
set_user_godmode(zrespawn1
            
set_task(5.0"remove_zombie_protection"zrespawn)
         }
         case 
2:
         { 
            
pev(zrespawnpev_origing_vec_last_origin[zrespawn])
            
ExecuteHamB(Ham_CS_RoundRespawnzrespawn)
            
engfunc(EngFunc_SetOriginzrespawng_vec_last_origin[zrespawn])
            
set_task(0.1"respawn_effect"zrespawn)
            
strip_user_weapons(zrespawn)
            
give_item(zrespawn"")
            
set_user_godmode(zrespawn1
            
set_task(5.0"remove_zombie_protection"zrespawn)
         }
      }
   }
}
 
csdm_respawn()
{   
new 
map[32], config[32],  mapfile[64]
 
get_mapname(map31)
get_configsdir(config31)
format(mapfile63"%s\csdm\%s.spawns.cfg"configmap)
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) ) != 
   {
      if (
strlen(new_data)<|| new_data[0] == '[')
         continue
          
      
parse(new_datapos[1], 7pos[2], 7pos[3], 7pos[4], 7pos[5], 7pos[6], 7pos[7], 7pos[8], 7pos[9], 7pos[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 >= && 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], n0
   
new Float:loc[32][3], locnum
    
   get_players
(playersnum)
   for (new 
i=0i<numi++)
   {
      if (
is_user_alive(players[i]) && players[i] != id)
      {
         
pev(players[i], pev_originloc[locnum])
         
locnum++
      }
   }
    
   
num 0
   
while (num <= g_total_spawn)
   {
      if (
num == g_total_spawn)
         break
      
random_num(0g_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 (0locnumx++)
      {
         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(idpev_minsmins)
      
pev(idpev_maxsmaxs)
      
engfunc(EngFunc_SetSizeidminsmaxs)
      
engfunc(EngFunc_SetOriginidg_spawn_vec[final])
      
set_pev(idpev_fixangle1)
      
set_pev(idpev_anglesg_spawn_angle[final])
      
set_pev(idpev_v_angleg_spawn_v_angle[final])
      
set_pev(idpev_fixangle1)
   }
}  
 
///////////////////////////////////////////////////////////////////
// Respawn Effect                                               //
/////////////////////////////////////////////////////////////////
 
public respawn_effect(id)
{
   if(
get_pcvar_num(zombie_effect) == 1)
   {
      static 
Float:FOrigin3[3
      
pev(idpev_originFOrigin3)
       
      
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYFOrigin30)
      
write_byte(TE_IMPLOSION
      
engfunc(EngFunc_WriteCoordFOrigin3[0])
      
engfunc(EngFunc_WriteCoordFOrigin3[1]) 
      
engfunc(EngFunc_WriteCoordFOrigin3[2]) 
      
write_byte(255)
      
write_byte(255)
      
write_byte(5)  
      
message_end()
   }
}
 
///////////////////////////////////////////////////////////////////
// Respawn Protection                                           //
/////////////////////////////////////////////////////////////////
 
public remove_zombie_protection(id)
{
   
set_user_godmode(id0)
   
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(idRED"^4[ Парк Динозавров ] ^1Это меню доступно только ^3Хищникам !")
#else
client_print_color(idprint_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(menuidMPROP_PERPAGE0);
   
menu_setprop(menuidMPROP_EXITMEXIT_NEVER); 
   
menu_display(idmenuid0)
}
 
public 
survivor_menu_handler(idmenuiditem)
{
   new 
data[6], iName[64]
   new 
accesscallback
   menu_item_getinfo
(menuiditemaccessdata,5iName63callback)
   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
(id50)
         
set_user_maxspeed(id275.0)
         
ColorChat(idRED"^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
(id300)
         
set_user_maxspeed(id165.0)
         
ColorChat(idRED"^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
(id10)
         
set_user_maxspeed(id380.0)
         
ColorChat(idRED"^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
(id100)
         
set_user_maxspeed(id250.0)      
         
ColorChat(idRED"^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
(id1)
         
set_user_maxspeed(id400.0)
         
set_user_gravity(id0.3)
         
ColorChat(idRED"^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
(id500)
         
set_user_maxspeed(id220.0)
         
set_user_gravity(id3.2)
         
ColorChat(idRED"^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
(id40)
         
set_user_maxspeed(id210.0)
         
set_user_gravity(id0.5)
         
ColorChat(idRED"^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
(id800)
         
set_user_maxspeed(id120.0)
         
ColorChat(idRED"^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
(id300)
         
set_user_maxspeed(id600.0)
         
set_user_gravity(id7.5)
         
ColorChat(idRED"^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(id275.0)
                }
      case 
2:
      {
         
set_user_maxspeed(id165.0)
      }
      case 
3
      {
         
set_user_maxspeed(id380.0)
      }
      case 
4
      {
         
set_user_maxspeed(id250.0)         
      }
      case 
5
      {
         
set_user_maxspeed(id400.0)
      }
      case 
6
      {
         
set_user_maxspeed(id220.0)
      }
      case 
7
      {
         
set_user_maxspeed(id210.0)
      }
      case 
8
      {
         
set_user_maxspeed(id120.0)
      }
      case 
9
      {
         
set_user_maxspeed(id600.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(idget_pcvar_float(level1_maxspeed))
         }
         case 
2:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level2_maxspeed))
         }
         case 
3:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level3_maxspeed))
         }
         case 
4:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level4_maxspeed))
         }
         case 
5:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level5_maxspeed))
         }
         case 
6:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level6_maxspeed))
         }
         case 
7:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level7_maxspeed))
         }
         case 
9:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level8_maxspeed))
         }
         case 
8:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level9_maxspeed))
         }
         case 
10:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level10_maxspeed))
         }
      }
   }
   if(
g_boss_class[id])
   {
      switch(
g_boss_class[id])
      {
         case 
1:
         {
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level1_bossmaxspeed))
         }
         case 
2:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level2_bossmaxspeed))
         }
         case 
3:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level3_bossmaxspeed))
         }
         case 
4:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level4_bossmaxspeed))
         }
         case 
5:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level5_bossmaxspeed))
         }
         case 
6:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level6_bossmaxspeed))
         }
         case 
7:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level7_bossmaxspeed))
         }
         case 
9:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level8_bossmaxspeed))
         }
         case 
8:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_pcvar_float(level9_bossmaxspeed))
         }
         case 
10:
         { 
            
engclient_cmd(id"weapon_knife")
            
set_user_maxspeed(idget_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(id376 read_data(1), 2005)
}
 
///////////////////////////////////////////////////////////////////
// Remove Map Objectives                                        //
/////////////////////////////////////////////////////////////////
 
public forward_spawn(ent) {
   if (!
pev_valid(ent))
      return 
FMRES_IGNORED
    
   
static classname[32], i
   pev
(entpev_classnameclassnamesizeof classname 1)
   for (
0sizeof g_objective_ents; ++i) {
      if (
equal(classnameg_objective_ents[i])) {
         if (!(
REMOVE_OBJECTIVES g_objective_type[i]))
            return 
FMRES_IGNORED
          
         engfunc
(EngFunc_RemoveEntityent)
         return 
FMRES_SUPERCEDE
      
}
   }
    
   return 
FMRES_IGNORED
}
 
bool:is_objective_map() {
   new const 
classname[] = "classname"
   
for (new 0sizeof g_objective_ents; ++i) {
      if (
g_objective_prim[i] && engfunc(EngFunc_FindEntityByStringFM_NULLENTclassnameg_objective_ents[i]))
         return 
true
   
}
    
   return 
false
}
 
///////////////////////////////////////////////////////////////////
// Stocks                                                       //
/////////////////////////////////////////////////////////////////
 
stock fm_get_user_model(playermodel[], len)
{
   
engfunc(EngFunc_InfoKeyValueengfunc(EngFunc_GetInfoKeyBufferplayer), "model"modellen)
}
 
stock fm_reset_user_model(player)
{
   
g_has_custom_model[player] = false
   dllfunc
(DLLFunc_ClientUserInfoChangedplayerengfunc(EngFunc_GetInfoKeyBufferplayer))
}
 
///////////////////////////////////////////////////////////////////
// Boss Beacon                                                  //
/////////////////////////////////////////////////////////////////
 
public boss_beacon(id)
{
   if(
g_boss_class[id] >= && is_user_alive(id))
   {
      static 
origin[3]
      
get_user_origin(idorigin)
      
message_begin(MSG_BROADCASTSVC_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.0175.0)
   
screen_shake[1] = random_float(20.080.0)
   
screen_shake[2] = random_float(550.01200.0)
   
message_begin(MSG_ONEg_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(2Message191)
    
   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(1ARG_BYTEget_msg_arg_int(1) | 1<<4)
}
 
public 
plugin_end()
{
        if( 
get_pcvar_numgPluginMode ) == )
        {
                
server_cmd"sv_skyname %s"skiesrandom_num0charsmaxskies ) ) ] );
       }
}
 
///////////////////////////////////////////////////////////////////
// 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 }
*/ 
MayroN is offline
Send a message via ICQ to MayroN Send a message via Skype™ to MayroN
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 08:54.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode