Русское сообщество по скриптингу

Jurassic Park [ Автом.убийство Т ]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Jurassic Park [ Автом.убийство Т ]

Сообщение MayroN » 11 сен 2019, 21:32

Заметил,что когда нет на Сервере игроков,и ты заходишь за команду Террористов,то тебя постоянно убивает игра.
А за КТ - всё впорядке.

Прошу помощи посмотреть,что к чему.
Спасибо

На моё мнение - это гдето здесь?
Код: Выделить всё
///////////////////////////////////////////////////////////////////
// Death Event 2                                                //
/////////////////////////////////////////////////////////////////
 
public event_death_msg
()
{
   new zrespawn = read_data(2)
   set_pev(zrespawn, pev_effects, EF_NODRAW)
   if(get_user_team(zrespawn) == 0)
   {
      if(++g_respawn_count[zrespawn] > get_pcvar_num(zombie_respawns))
      {
         return
      
}
      set_task(1.0, "zombie_respawner", zrespawn)
   }
}
 
///////////////////////////////////////////////////////////////////
// Survivor Respawn                                             //
/////////////////////////////////////////////////////////////////
 
public ham_killed_respawn
(id)
{
   if(is_user_connected(id) && cs_get_user_team(id) == CS_TEAM_CT)
   {
      g_respawn_delay[id] = 10
      survivor_respawner
(id)
   }
}
 
public survivor_respawner
(id)
{
   if(is_user_alive(id) || !is_user_connected(id))
      return PLUGIN_CONTINUE
    
   if
(g_respawn_delay[id] > 0)
   {
      g_respawn_delay[id]--
      set_task(1.0, "survivor_respawner", id)
   }
   else
      ExecuteHamB
(Ham_CS_RoundRespawn, id)
    
   return PLUGIN_CONTINUE
}
 
public join_spawn
()
{
   new player_spawn = read_data(1)
   static user_team[32]
    
   read_data
(2, user_team, 31) 
    
   if
(!is_user_connected(player_spawn))
      return PLUGIN_CONTINUE
    
   switch
(user_team[0])
   {
      case 'C': set_task(1.0, "survivor_respawner", player_spawn)
         //case 'T': client_print(player_spawn, print_chat, "Zombies cant use this respawn method!")
         //case 'S': client_print(player_spawn, print_chat, "Spectators cant use this respawn method!")
   }
   return PLUGIN_CONTINUE
}
 
///////////////////////////////////////////////////////////////////
// CSDM Respawn                                                 //
/////////////////////////////////////////////////////////////////
 
public zombie_respawner
(zrespawn)
{
   new cts[32], ts[32], ctsnum, tsnum
   new CsTeams
:team
    
   for
(new i=1; i<=g_maxplayers; i++)
   {
      if(!is_user_alive(i))
      {
         continue
      
}
      team = cs_get_user_team(i)
      if(team == CS_TEAM_T)
      {
         ts[tsnum++] = i
         
} else if(team == CS_TEAM_T) {
         cts[ctsnum++] = i
      
}
   }
   if(tsnum > 1)
   {
      switch(get_pcvar_num(zombie_spawnpoint))
      {
         case 1:
         { 
            ExecuteHamB
(Ham_CS_RoundRespawn, zrespawn)
            set_task(0.1, "respawn_effect", zrespawn)
            strip_user_weapons(zrespawn)
            give_item(zrespawn, "")
            set_user_godmode(zrespawn, 1) 
            set_task
(5.0, "remove_zombie_protection", zrespawn)
         }
         case 2:
         { 
            pev
(zrespawn, pev_origin, g_vec_last_origin[zrespawn])
            ExecuteHamB(Ham_CS_RoundRespawn, zrespawn)
            engfunc(EngFunc_SetOrigin, zrespawn, g_vec_last_origin[zrespawn])
            set_task(0.1, "respawn_effect", zrespawn)
            strip_user_weapons(zrespawn)
            give_item(zrespawn, "")
            set_user_godmode(zrespawn, 1) 
            set_task
(5.0, "remove_zombie_protection", zrespawn)
         }
      }
   }
}


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

Аватара пользователя
MayroN
 
Сообщения: 446
Зарегистрирован: 10 окт 2010, 18:23
Откуда: Украина, г. Белая Церковь
Благодарил (а): 112 раз.
Поблагодарили: 47 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: На которых говорю...

Re: Jurassic Park [ Автом.убийство Т ]

Сообщение Leonidddd » 25 сен 2019, 09:48

Если спавн чисто ТТ некорректно работает, то где-то в области:

Код: Выделить всё
public csdm_player_spawn(id)
{
   if (!is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_CT)
      return


Стоит искать проблему. Там дальше жесть какая-то происходит с подбором подходящих координат, возможно, где-то там не туда тпшит и подозрительные функции дублирующиеся вижу в той функции. Полагаю, там нужно искать проблему.
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2259
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 182 раз.
Поблагодарили: 632 раз.

Re: Jurassic Park [ Автом.убийство Т ]

Сообщение MayroN » 26 сен 2019, 22:54

Leonidddd,
Спасибо.Буду розбираться
МультиМод 83.222.97.124:27015

Аватара пользователя
MayroN
 
Сообщения: 446
Зарегистрирован: 10 окт 2010, 18:23
Откуда: Украина, г. Белая Церковь
Благодарил (а): 112 раз.
Поблагодарили: 47 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: На которых говорю...


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot], Majestic-12 [Bot] и гости: 4

cron