AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Jurassic Park [ Autom.murder T ] (https://forums.alliedmods.net/showthread.php?t=318640)

MayroN 09-11-2019 15:46

Jurassic Park [ Autom.murder T ]
 
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 }
*/ 



All times are GMT -4. The time now is 17:26.

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