Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Alien Boss Mod ( Görev Canavarı Öldürmek )
süper çalışıyo
Reply
mütişe benziyo denicem
Reply
saol
Reply
Çok sie go Big Grin
Reply
Smasını buldum fakat içinde 120 saniye namına birşey bulamadım birde siz bakın Big Grin
PHP Code:
// Ğ‘осс ÑĞºĞ°Ñ‡Ğ°Ğ½ Ñ ÑĞ°Ğ¹Ñ‚а Zombie-Mod.ru
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta>
#include <fun>
#include <zombieplague>

#define PLUGIN "[ZS] Alien Boss"
#define VERSION "3.0"
#define AUTHOR "Remake muxaz"

#define ANIM_DUMMY 0
#define ANIM_DEATH 1
#define ANIM_IDLE 2
#define ANIM_WALK 3
#define ANIM_RUN 4
#define ANIM_SHOCKWAVE 5
#define ANIM_JUSTICESWING 6
#define ANIM_MAHADASH 7

#define ALIEN_HEALTH 100000.0 // Ğ–изнь Ğ‘осса
//#define ALIEN_BONUS_KILL 5000 // Ğ‘онус Ğ´Ğ»Ñ ÑƒĞ±Ğ¸Ğ¹ÑÑ‚ва Ğ‘осса
#define ALIEN_ATTACK_DELAY 1.0 // ĞŸÑ€Ğ¾Ğ¼ĞµĞ¶ÑƒÑ‚ок Ğ¼ĞµĞ¶Ğ´Ñƒ Ğ°Ñ‚аками Ğ‘осса
#define ALIEN_ATTACK_DISTANCE 160.0 // Ğ”истанция Ğ´Ğ»Ñ Ğ°Ñ‚аки Ğ‘осса
#define ALIEN_DASH_DISTANCE 200.0 // Ğ”истанция Ğ½Ğ° ĞºĞ°Ñ‚Ğ¾Ñ€ÑƒÑŽ Ğ‘осс Ğ¿Ñ€Ñ‹Ğ³Ğ°ĞµÑ‚

#define ALIEN_JUMP_AFTER_SWING_COUNT 4 // ĞžÑ‚счет Ğ¼ĞµĞ¶Ğ´Ñƒ ÑĞºĞ¸Ğ»Ğ»Ğ°Ğ¼Ğ¸

#define ALIEN_TASK 231211
#define ALIEN_TASK1 113713
#define ALIEN_TASK2 123714
#define ALIEN_TASK3 133715
#define ALIEN_TASK4 143716

// Agression one - 1-ый ÑƒÑ€Ğ¾Ğ²ĞµĞ½Ğ¸Ñ‚ÑŒ Ğ°Ğ³Ñ€ĞµÑÑĞ¸
#define ALIEN_SPEED_AG1 220 // Ğ¡ĞºĞ¾Ñ€Ğ¾ÑÑ‚ÑŒ Ğ‘осса Ğ¿Ñ€Ğ¸ 1 Ğ°Ğ³Ñ€ĞµÑÑĞ¸Ğ¸
#define ALIEN_DAMAGE_ATTACK_AG1 100.0 // Ğ£Ñ€Ğ¾Ğ½ Ğ‘осса Ğ¿Ñ€Ğ¸ 1 Ğ°Ğ³Ñ€ĞµÑÑĞ¸Ğ¸
#define ALIEN_DASH_DAMAGE_AG1 100 // Ğ£Ñ€Ğ¾Ğ½ Ğ‘осса Ğ¿Ñ€Ğ¸ Ğ¸ÑĞ¿Ğ¾Ğ»ÑŒĞ·Ğ¾Ğ²Ğ°Ğ½Ğ¸Ğµ ÑĞºĞ¸Ğ»Ğ»Ğ° Ğ² 1 Ğ°Ğ³Ñ€ĞµÑÑĞ¸Ğ¸
#define ALIEN_SHOCK_SCREEN_RADIUS_AGRES1 800 // Ğ*адиус Ñ‚ряски Ğ¸ ÑƒÑ€Ğ¾Ğ½Ğ° Ğ¿Ñ€Ğ¸ Ğ²Ğ¾Ğ»Ğ½Ğµ Ğ² 1 Ğ°Ğ³Ñ€ĞµÑÑĞ¸Ğ¸
#define ALIEN_SHOCK_SCREEN_DAMAGE_AGRES1 50 // Ğ£Ñ€Ğ¾Ğ½ Ğ¾Ñ‚ Ğ²Ğ¾Ğ»Ğ½Ñ‹ Ğ² 1 Ğ°Ğ³Ñ€ĞµÑÑĞ¸Ğ¸

// Agression two - 2-ой ÑƒÑ€Ğ¾Ğ²ĞµĞ½ÑŒ Ğ°Ğ³Ñ€ĞµÑÑĞ¸ ĞºĞ¾Ğ³Ğ´Ğ° Ğ¼ĞµĞ½ÑŒ 50 % Ğ¶Ğ¸Ğ·Ğ½Ğ¸ Ñƒ Ğ°Ğ»Ğ¸ĞµĞ½Ğ°
#define ALIEN_SPEED_AG2    260 // Ğ¡ĞºĞ¾Ñ€Ğ¾ÑÑ‚ÑŒ Ğ‘осса Ğ¿Ñ€Ğ¸ 2 Ğ°Ğ³Ñ€ĞµÑÑĞ¸Ğ¸
#define ALIEN_DAMAGE_ATTACK_AG2 100.0 // Ğ£Ñ€Ğ¾Ğ½ Ğ‘осса Ğ¿Ñ€Ğ¸ 2 Ğ°Ğ³Ñ€ĞµÑÑĞ¸Ğ¸
#define ALIEN_DASH_DAMAGE_AG2 150 // Ğ£Ñ€Ğ¾Ğ½ Ğ‘осса Ğ¿Ñ€Ğ¸ Ğ¸ÑĞ¿Ğ¾Ğ»ÑŒĞ·Ğ¾Ğ²Ğ°Ğ½Ğ¸Ğµ ÑĞºĞ¸Ğ»Ğ»Ğ° Ğ² 2 Ğ°Ğ³Ñ€ĞµÑÑĞ¸Ğ¸
#define ALIEN_SHOCK_SCREEN_RADIUS_AGRES2 500 // Ğ*адиус Ñ‚ряски Ğ¸ ÑƒÑ€Ğ¾Ğ½Ğ° Ğ¿Ñ€Ğ¸ Ğ²Ğ¾Ğ»Ğ½Ğµ Ğ² 1 Ğ°Ğ³Ñ€ĞµÑÑĞ¸Ğ¸
#define ALIEN_SHOCK_SCREEN_DAMAGE_AGRES2 200 // Ğ£Ñ€Ğ¾Ğ½ Ğ¾Ñ‚ Ğ²Ğ¾Ğ»Ğ½Ñ‹ Ğ² 2 Ğ°Ğ³Ñ€ĞµÑÑĞ¸Ğ¸

#define npc_classname     "zs_alien"
#define npc_model         "models/zombie_plague/boss_alien.mdl" // ĞœĞ¾Ğ´ĞµĞ»ÑŒ Ğ‘осса
#define npc_sprite        "sprites/zombie_plague/boss_health.spr" // Ğ¡Ğ¿Ñ€Ğ°Ğ¹Ñ‚ Ğ¶Ğ¸Ğ·Ğ½Ğ¸ Ğ‘осса
#define SPRITE_Z         250 // Ğ’ысота ÑĞ¿Ñ€Ğ°Ğ¹Ñ‚а Ğ¶Ğ¸Ğ·Ğ½Ğ¸

new const g_AlienSound[][] = 

    
"zombie_plague/boss_death.wav",
    
"zombie_plague/boss_dash.wav",
    
"zombie_plague/boss_swing.wav",
    
"zombie_plague/boss_shokwave.wav"
}

new const 
g_CountSound[][] = 

    
"zombie_plague/vox/1.wav",
    
"zombie_plague/vox/2.wav",
    
"zombie_plague/vox/3.wav",
    
"zombie_plague/vox/4.wav",
    
"zombie_plague/vox/5.wav",
    
"zombie_plague/vox/6.wav",
    
"zombie_plague/vox/7.wav",
    
"zombie_plague/vox/8.wav",
    
"zombie_plague/vox/9.wav",
    
"zombie_plague/vox/10.wav"
}

enum
{
    
FM_CS_TEAM_UNASSIGNED 0,
    
FM_CS_TEAM_T,
    
FM_CS_TEAM_CT,
    
FM_CS_TEAM_SPECTATOR
}

new 
Float:g_dmg[512]
new 
Float:g_distance[512]
new 
Float:g_lastat[512]
new 
Float:g_atdelay[512]
new 
g_speed[512]
new 
g_moves[512]
new 
g_alive[512]
new 
g_target[512]
//new g_reward[512]
new g_animrun[512]
new 
g_exprew[512]
new 
g_animattack[512]
new 
g_ability
new g_timer
new g_game_start
new g_can_jump
new g_maxplayers
new g_pBeam
new g_pSprite
new g_jump_count[512]
new 
bool:start_swing[512]
new 
bool:start_knock[512]
new 
bool:g_bAlienLevel
new spr_blood_dropspr_blood_spray
new g_screenshake
new const UNIT_SECOND = (1<<12)

// HoLLyWooD
#define TASK_CREATE_NPC     123124
#define ALIEN_CREATE_TASK     21341
new Float:g_fUserDamage[33]
new 
g_iRandomSkills ALIEN_JUMP_AFTER_SWING_COUNT;
new 
bool:g_bChangeLevel false;

// Command for changelevel
new const g_sVoteCommand[] = "amx_map de_cityrush";

new 
msgID_deathMsgmsgID_sayText;
new 
g_szName[33][32]

public 
plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)

    
RegisterHam(Ham_Killed"info_target""npc_killed");
    
RegisterHam(Ham_Killed"player""player_killed");
    
RegisterHam(Ham_Think"info_target""npc_think");
    
RegisterHam(Ham_TraceAttack"info_target""npc_traceattack");
    
RegisterHam(Ham_TakeDamage"info_target""npc_takedamage")

    
register_forward(FM_PlayerPreThink"fw_PlayerPreThink");
    
register_forward(FM_UpdateClientData"fwd_UpdateClientData"1);

    
register_logevent("round_end"2"1=Round_End")
    
register_event("DeathMsg""event_death""ae")

    
register_clcmd("+attack""block"g_timer)

    
g_screenshake get_user_msgid("ScreenShake")
    
    
g_maxplayers get_maxplayers()
    
    
g_pSprite create_entity("info_target");
    
    
entity_set_model(g_pSpritenpc_sprite);
    
    
entity_set_int(g_pSpriteEV_INT_rendermodekRenderTransTexture);
    
entity_set_float(g_pSpriteEV_FL_renderamt0.0);
    
    
msgID_deathMsg get_user_msgid("DeathMsg");
    
msgID_sayText get_user_msgid("SayText");
    
    
register_message(msgID_deathMsg"msg_deathMsg")
}

public 
plugin_precache()
{
    new 
mapname[32]
    
get_mapname(mapnamecharsmax(mapname))
    
    if(
equali(mapname"zp_boss_city"))
    {
        
set_task(15.0"begin_create_npc"TASK_CREATE_NPC);
    }else{
        
pause("ad");
    }
    
    
precache_model(npc_model)
    
precache_model(npc_sprite)

    new 
i
    for(
sizeof g_CountSound i++) 
    
precache_sound(g_CountSound[i]); 

    for(
sizeof g_AlienSound i++) 
    
precache_sound(g_AlienSound); 
    
    
spr_blood_drop precache_model("sprites/blood.spr"
    
spr_blood_spray precache_model("sprites/bloodspray.spr"
    
g_pBeam precache_model"sprites/shockwave.spr" )
}

public 
block(id
    return 
PLUGIN_HANDLED;

public 
begin_create_npc(){
    
spawn_alien();
}

public 
client_connect(id){
    
g_fUserDamage[id] = 0.0
}

public 
spawn_alien()
{    
    
set_task(1.0"count_start"ALIEN_TASK)
    
g_timer 15 //26
    
    
set_task(16.0"create_alien"ALIEN_CREATE_TASK);
}

public 
create_alien()
{
    new 
Float:origin[3];
    
    
// Origins for center map
    
origin[0] = -27.0
    origin
[0] = 24.0
    origin
[2] = 460.0

    origin
[1] += 50.0
    
    
new ent npc_alien_spawn(11);
     
    
set_pev(entpev_originorigin);
    
    
start_swing[ent] = false
    start_knock
[ent] = false
    g_ability 
false
    g_game_start 
false
    g_jump_count
[ent] = 0
    
    origin
[2] += SPRITE_Z;
    
    
entity_set_origin(g_pSpriteorigin);
    
    
entity_set_int(g_pSpriteEV_INT_rendermodekRenderNormal);
    
entity_set_float(g_pSpriteEV_FL_renderamt16.0);
    
    
entity_set_float(g_pSpriteEV_FL_frame100.0);
    
    
g_game_start true;
}

public 
npc_alien_spawn(anim_runexprew)
{
    new 
ent create_entity("info_target"); 
    
    if(!
ent) return 0;
    
    
entity_set_string(entEV_SZ_classnamenpc_classname);
    
entity_set_model(entnpc_model);
    
    
entity_set_int(entEV_INT_iuser40); 
    
entity_set_int(entEV_INT_solidSOLID_BBOX); 
    
entity_set_int(entEV_INT_movetypeMOVETYPE_PUSHSTEP); 
    
    
entity_set_float(entEV_FL_takedamage1.0);
    
entity_set_float(entEV_FL_gravity1.0);
    
entity_set_float(entEV_FL_healthALIEN_HEALTH);
    
entity_set_float(entEV_FL_animtimeget_gametime());
    
entity_set_float(entEV_FL_nextthinkget_gametime() + 1.0
    
    
Util_PlayAnimation(entANIM_SHOCKWAVE);

    new 
Floatmaxs[3] = { 16.016.060.0 }
    new 
Floatmins[3] = {-16.0, -16.0, -36.0

    
entity_set_size(entminsmaxs)

    
g_alive[ent] = 1
    g_dmg
[ent] = ALIEN_DAMAGE_ATTACK_AG1
    g_animrun
[ent] = ANIM_RUN
    
//g_reward[ent] = ALIEN_BONUS_KILL
    
g_speed[ent] = ALIEN_SPEED_AG1
    g_distance
[ent] = ALIEN_ATTACK_DISTANCE
    g_atdelay
[ent] = ALIEN_ATTACK_DELAY
    g_lastat
[ent] = 0.0
    g_exprew
[ent] = exprew
    g_target
[ent] = find_closes_enemy(ent)

    
set_task(5.0"update_target"ent)

    return 
ent;
}

public 
npc_think(ent

    if(!
is_valid_ent(ent)) 
        return; 

    static 
className[32], animation
    
animation 0;
    
entity_get_string(entEV_SZ_classnameclassNamecharsmax(className)) 

    if(!
equali(classNamenpc_classname))
        return; 
    
    if (!
g_bAlienLevel)
        if (
entity_get_float(entEV_FL_health) <= (ALIEN_HEALTH 2.0))
        {
            
g_bAlienLevel true;
            
            
g_speed[ent] = ALIEN_SPEED_AG2;
            
g_dmg[ent] = ALIEN_DAMAGE_ATTACK_AG2;
        }
    
    if(
g_alive[ent])
    {
        new 
Float:vecOrigin[3];
        
        
entity_get_vector(entEV_VEC_originvecOrigin);
        
        
vecOrigin[2] += SPRITE_Z;
        
        
entity_set_origin(g_pSpritevecOrigin);
        
        if(
g_game_start)
        {
            new 
Float:velocity[3]
            
pev(ent,pev_velocity,velocity)
            
velocity[0] += velocity[1] + velocity[2]

            if(!
is_user_alive(g_target[ent]))
                
g_target[ent] = find_closes_enemy(ent)
        
            new 
Float:angle[3], Float:zmaim[3]
            
pev(g_target[ent], pev_originzmaim)
            
aim_at_origin(entzmaimangle)
            
angle[0] = 0.0
            entity_set_vector
(entEV_VEC_anglesangle)

            if(
g_target[ent])
            {
                new 
Float:origins[3]
                
pev(entpev_originorigins)
                new 
Float:flDistance get_distance_f(originszmaim)
 
                if(
flDistance170.0)
                {
                    if(
g_moves[ent])
                    {
                        
zmaim[0] += random_num(1, -1) * 80.0
                        zmaim
[1] += random_num(1, -1) * 80.0
                        g_moves
[ent] -= 1
                    
}
                    else if(!
g_moves[ent] && random_num(15) == 1)
                        
g_moves[ent] = 20
                
}
                if(
flDistance <= ALIEN_ATTACK_DISTANCEg_moves[ent] = 0
                
if(flDistance <= g_distance[ent] && get_gametime() - g_lastat[ent] > g_atdelay[ent])
                {
                    if(!
start_swing[ent] && !start_knock[ent])
                    {
                        
g_lastat[ent] = get_gametime()
        
                        new 
anim ANIM_JUSTICESWING

                        Util_PlayAnimation
(entANIM_IDLE)
                        
Util_PlayAnimation(entanim)
                        
                        
ExecuteHamB(Ham_TakeDamageg_target[ent] , 00g_dmg[ent], DMG_BULLET);
                        
                        
set_task(2.0"reset_swing"ent ALIEN_TASK3)
                        
start_swing[ent] = true
                        g_animattack
[ent] = anim
                    
                        
if(anim == ANIM_JUSTICESWING)
                            
emit_sound(entCHAN_VOICEg_AlienSound[2], VOL_NORMATTN_NORM0PITCH_NORM)
                    
                        if(
g_jump_count[ent] < g_iRandomSkills)
                            
g_jump_count[ent]++
                    }
                }
                else
                {                
                    new 
Float:frames
                    
if(g_animattack[ent] == ANIM_JUSTICESWINGframes 1.5
        
                    
if(get_gametime() - g_lastat[ent] > frames)
                    {
                        if(
flDistance <= g_distance[ent])
                            
Util_PlayAnimation(entANIM_IDLE)
                        else
                        {
                            if(
g_jump_count[ent] == g_iRandomSkills && flDistance <= 400.0)
                            {
                                
// change skill delay
                                
g_iRandomSkills random_num(2,4);
                                
                                if(!
task_exists(ent ALIEN_TASK2) && !task_exists(ent ALIEN_TASK1))
                                {
                                    new 
task_args[4]
                                    
task_args[0] = ent
                                    task_args
[1] = floatround(zmaim[0]*100000floatround_floor)
                                    
task_args[2] = floatround(zmaim[1]*100000floatround_floor)
                                    
task_args[3] = floatround(zmaim[2]*100000floatround_floor)
                                
                                    if(!
g_ability)
                                    {
                                        
g_ability true
                                        Util_PlayAnimation
(entANIM_MAHADASH)
                                        
emit_sound(entCHAN_VOICEg_AlienSound[1], VOL_NORMATTN_NORM0PITCH_NORM)
                                
                                        
set_task(0.8"go_jump"ent ALIEN_TASK1task_args4)
                                        
                                        
animation 1;
                                    }
                                    else
                                    {
                                        if (
entity_get_float(entEV_FL_health) > (ALIEN_HEALTH 2))
                                        {
                                            
server_print("--------- 1");
                                            
Util_PlayAnimation(entANIM_SHOCKWAVE)
                                            
start_knock[ent] = true
                                            set_task
(2.1"go_knock_agres1"ent ALIEN_TASK1task_args4)
                                        }
                                        else if (
entity_get_float(entEV_FL_health) <= (ALIEN_HEALTH 2))
                                        {
                                            
server_print("--------- 2");
                                            
Util_PlayAnimation(entANIM_SHOCKWAVE)
                                            
start_knock[ent] = true
                                            set_task
(2.1"go_knock_agres2"ent ALIEN_TASK1task_args4)
                                        }
                                        
                                        
animation 2;
                                    }
                                }
                            }
                            else
                            {
                                
ent_move_to(entzmaimg_speed[ent])
                                
Util_PlayAnimation(entg_animrun[ent])
                            }
                        }
                    }
                }
            }
            if(!
g_target[ent]) Util_PlayAnimation(entANIM_IDLE)
        }
        else if(
g_can_jump)
            
Util_PlayAnimation(entANIM_IDLE)
        else
            
Util_PlayAnimation(entANIM_IDLE)
        if(
animation == 1)
            
entity_set_float(entEV_FL_nextthinkget_gametime() + 0.8); 
        else if(
animation == 2)
            
entity_set_float(entEV_FL_nextthinkget_gametime() + 2.1); 
        else
            
entity_set_float(entEV_FL_nextthinkget_gametime() + 0.01); 
    }
}

public 
check_dash_damage(entid)
{
    
ent ent ALIEN_TASK4
    
    
for(new 0g_maxplayersi++)
    {
        if(
is_user_alive(i))
        {
            new 
Float:range_distance entity_range(enti)
            new 
health get_user_health(i)
            
            if(
ALIEN_DASH_DISTANCE floatround(range_distance) < ALIEN_ATTACK_DISTANCE)
            {            
                if (
g_bAlienLevel)
                {
                    if(
health ALIEN_DASH_DAMAGE_AG2 0)
                        
set_user_health(ihealth ALIEN_DASH_DAMAGE_AG2)
                    else
                    {
                        
user_silentkill(i)
                        
message_begin(MSG_ALLget_user_msgid("DeathMsg"))
                        
write_byte(ent)
                        
write_byte(i)
                        
write_byte(0)
                        
write_string("Boss Alien")
                        
message_end()
                    }
                }
                else
                {
                    if(
health ALIEN_DASH_DAMAGE_AG1 0)
                        
set_user_health(ihealth ALIEN_DASH_DAMAGE_AG1)
                    else
                    {
                        
user_silentkill(i)
                        
message_begin(MSG_ALLget_user_msgid("DeathMsg"))
                        
write_byte(ent)
                        
write_byte(i)
                        
write_byte(0)
                        
write_string("Boss Alien")
                        
message_end()
                    }
                }
            }
        }
    }
}

public 
go_knock_agres1(args[], id)
{
    new 
ent args[0]
    new 
Float:origin[3]
    
    
pev(ent,pev_origin,origin)
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY );
    
write_byte(TE_BEAMCYLINDER)
    
write_coord(floatround(origin[0]))
    
write_coord(floatround(origin[1]))
    
write_coord(floatround(origin[2])-16)
    
write_coord(floatround(origin[0]))
    
write_coord(floatround(origin[1]))
    
write_coord(floatround(0.0))
    
write_short(g_pBeam// sprite
    
write_byte(0// startframe
    
write_byte(0// framerate
    
write_byte(25// life
    
write_byte(60// width
    
write_byte(0// noise
    
write_byte(255// red
    
write_byte(255// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(0// speed
    
message_end()
    
        
emit_sound(entCHAN_VOICEg_AlienSound[3], VOL_NORMATTN_NORM0PITCH_NORM)
    
    
set_task(1.0"reset_knock"ent ALIEN_TASK2)

    static 
Float:flOrigin[3] , Float:flDistance Float:flSpeed
    
for(new iVictim=1;iVictim <= 32;iVictim++)
    {
        new 
health get_user_health(iVictim)

        if(
is_user_connected(iVictim) && is_user_alive(iVictim))
        {
            
pev(iVictimpev_originflOrigin)
            
flDistance get_distance_f originflOrigin )   

            if(
flDistance <= ALIEN_SHOCK_SCREEN_RADIUS_AGRES1)
            {
                
ScreenShake(iVictim)

                
flSpeed 1400.0
               
                
static Float:flNewSpeed
                flNewSpeed 
flSpeed * ( 1.0 - ( flDistance 1000.0 ) )
                
set_user_health(iVictimhealth ALIEN_SHOCK_SCREEN_DAMAGE_AGRES1)
               
                static 
Float:flVelocity ]
                
get_speed_vector originflOriginflNewSpeedflVelocity )
               
                
set_pev iVictimpev_velocity,flVelocity )
            }
        }
    }
}

public 
go_knock_agres2(args[], id)
{
    new 
ent args[0]
    new 
Float:origin[3]
    
    
pev(ent,pev_origin,origin)
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY );
    
write_byte(TE_BEAMCYLINDER)
    
write_coord(floatround(origin[0]))
    
write_coord(floatround(origin[1]))
    
write_coord(floatround(origin[2])-16)
    
write_coord(floatround(origin[0]))
    
write_coord(floatround(origin[1]))
    
write_coord(floatround(0.0))
    
write_short(g_pBeam// sprite
    
write_byte(0// startframe
    
write_byte(0// framerate
    
write_byte(10// life
    
write_byte(60// width
    
write_byte(0// noise
    
write_byte(250// red
    
write_byte(0// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(0// speed
    
message_end()
    
        
emit_sound(entCHAN_VOICEg_AlienSound[3], VOL_NORMATTN_NORM0PITCH_NORM)
    
    
set_task(1.0"reset_knock"ent ALIEN_TASK2)

    static 
Float:flOrigin[3] , Float:flDistance Float:flSpeed
    
for(new iVictim=1;iVictim <= 32;iVictim++)
    {
        new 
health get_user_health(iVictim)

        if(
is_user_connected(iVictim) && is_user_alive(iVictim))
        {
            
pev(iVictimpev_originflOrigin)
            
flDistance get_distance_f originflOrigin )   

            if(
flDistance <= ALIEN_SHOCK_SCREEN_RADIUS_AGRES2)
            {
                
ScreenShake(iVictim)

                
flSpeed 1400.0
               
                
static Float:flNewSpeed
                flNewSpeed 
flSpeed * ( 1.0 - ( flDistance 1000.0 ) )
                
set_user_health(iVictimhealth ALIEN_SHOCK_SCREEN_DAMAGE_AGRES2)
               
                static 
Float:flVelocity ]
                
get_speed_vector originflOriginflNewSpeedflVelocity )
               
                
set_pev iVictimpev_velocity,flVelocity )
            }
        }
    }
}

public 
ScreenShake(id)
{
    if(!
is_user_alive(id))
        return;

    
message_begin(MSG_ONE_UNRELIABLEg_screenshake_id)
    
write_short(UNIT_SECOND*7// amplitude
    
write_short(UNIT_SECOND*5// duration
    
write_short(UNIT_SECOND*15// frequency
    
message_end()
}

public 
reset_knock(ent)
{
    
ent ent ALIEN_TASK2
    
    start_knock
[ent] = false
    g_ability 
false
    g_jump_count
[ent] = 0
}

public 
go_jump(args[])
{
    new 
ent args[0]
    new 
Float:zmaim[3]
    
    
zmaim[0]=float(args[1]/100000)
    
zmaim[1]=float(args[2]/100000)
    
zmaim[2]=float(args[3]/100000)
    
    
ent_jump_to(entzmaim1700)
    
    
g_can_jump true
    
    set_task
(0.6"check_dash_damage"ent ALIEN_TASK4)
    
set_task(1.4"reset_jump"ent ALIEN_TASK2)
}

public 
reset_swing(ent)
{
    
ent ent ALIEN_TASK3
    start_swing
[ent] = false
}

public 
reset_jump(ent)
{
    
ent ent ALIEN_TASK2
    g_jump_count
[ent] = 0
    set_task
(0.5"reset_time"ent 55555)
}

public 
reset_time()
    
g_can_jump false

public zp_user_infected_pre(idinflectornemesis){
    
zp_disinfect_user(id1);
    return 
ZP_PLUGIN_HANDLED;
}

public 
zp_user_infect_attempt(idinflectornemesis){
    
zp_disinfect_user(id1);
    return 
ZP_PLUGIN_HANDLED;
}
    
public 
npc_takedamage(entinflictorattackerFloat:damagedamage_type)
{
    if(!
is_user_alive(attacker) || !is_valid_ent(ent))
        return;

    new 
className[32]; 
    
entity_get_string(entEV_SZ_classnameclassNamecharsmax(className)) 

    if(!
equali(classNamenpc_classname) || !g_alive[ent]) 
        return; 
    
    
g_fUserDamage[attacker] += damage;
    
    
//client_print(attacker, print_center, "%f" , g_fUserDamage[attacker]);
    
if(g_fUserDamage[attacker] >= 2000){
        
g_fUserDamage[attacker] -= 2000;
        
        
zp_set_user_ammo_packs(attackerzp_get_user_ammo_packs(attacker)+1);
    }
    
    
entity_set_float(g_pSpriteEV_FL_frameentity_get_float(entEV_FL_health) / (ALIEN_HEALTH 100.0));
}

public 
fw_PlayerPreThink(id)
{
    if(
cs_get_user_team(id) == CS_TEAM_T
        
cs_set_user_team(idCS_TEAM_CT)
}

public 
force_team(id)
{
    
engclient_cmd(id"jointeam""2""3")
}

public 
npc_traceattack(entattackerFloatdamageFloatdirection[3], tracedamageBits

    if(!
is_valid_ent(ent) || !g_alive[ent]) 
        return; 

    new 
className[32]; 
    
entity_get_string(entEV_SZ_classnameclassNamecharsmax(className)) 

    if(!
equali(classNamenpc_classname) || !g_alive[ent]) 
        return; 

    new 
Floatend[3
    
get_tr2(traceTR_vecEndPosend); 

    
message_begin(MSG_BROADCASTSVC_TEMPENTITY
    
write_byte(TE_BLOODSPRITE
    
engfunc(EngFunc_WriteCoordend[0]) 
    
engfunc(EngFunc_WriteCoordend[1]) 
    
engfunc(EngFunc_WriteCoordend[2]) 
    
write_short(spr_blood_spray
    
write_short(spr_blood_drop
    
write_byte(247)
    
write_byte(random_num(510))
    
message_end() 
}

public 
player_killed(entattacker
{    
    for(new 
id=1;id<g_maxplayers;id++)
    {
        if(
is_user_alive(id))
            return;
    }
    
    
begin_changelevel();
    
client_print(0print_chat"Все Ğ»ÑŽĞ´Ğ¸ ÑƒĞ¼ĞµÑ€Ğ»Ğ¸! Ğ¡Ğ¼ĞµĞ½Ğ° ĞºĞ°Ñ€Ñ‚Ñ‹ Ğ½Ğ°Ñ‡Ğ°Ğ»Ğ°ÑÑŒ!");
}

public 
npc_killed(entattacker

    new 
className[32]; 
    
entity_get_string(entEV_SZ_classnameclassNamecharsmax(className)) 

    if(!
equali(classNamenpc_classname) || !g_alive[ent]) 
        return 
HAM_IGNORED

    
g_alive[ent] = 0
    Util_PlayAnimation
(entANIM_DEATH); 
    
emit_sound(entCHAN_VOICEg_AlienSound[0], VOL_NORMATTN_NORM0PITCH_NORM
    
remove_task(ent)
    
set_pev(entpev_solidSOLID_NOT)
    
set_task(4.5"npc_remove"ent)

    
entity_set_int(entEV_INT_iuser41); 

    
//cs_set_user_money(attacker, cs_get_user_money(attacker) + g_reward[ent])
    
    
zp_set_user_ammo_packs(attackerzp_get_user_ammo_packs(attacker) + random_num(40,60));
    
    
entity_set_int(g_pSpriteEV_INT_rendermodekRenderTransTexture);
    
entity_set_float(g_pSpriteEV_FL_renderamt0.0);
    
    
begin_changelevel();
    
    
client_print(0print_chat"Босс ÑƒĞ¼ĞµÑ€! Ğ¡Ğ¼ĞµĞ½Ğ° ĞºĞ°Ñ€Ñ‚Ñ‹ Ğ½Ğ°Ñ‡Ğ°Ğ»Ğ°ÑÑŒ!");

    return 
HAM_SUPERCEDE;
}

public 
round_end()
{    
    
remove_task(ALIEN_TASK)
    
remove_task(ALIEN_TASK1)
    
remove_task(ALIEN_TASK2)
    
remove_task(ALIEN_TASK3)
    
remove_task(ALIEN_TASK4)

    
g_game_start false
    
    begin_changelevel
();
}

public 
event_death(id)
{
    static 
ent = -1;
    
    while ((
ent engfunc(EngFunc_FindEntityByStringent"classname"npc_classname)) != 0)
    {
        if(
g_target[ent] == id)
            
g_target[ent] = find_closes_enemy(ent)
    }
    
client_cmd(id"stopsound")
    
    new 
iVictim read_data(2)
    new 
iKiller read_data(1)
    new 
iHS read_data(3)
    new 
szWeapon[24]
    
read_data(4szWeapon23)
    
    if(!
is_user_connected(iVictim))
    {
        
do_deathmsg(iKilleriVictimiHSszWeapon)
        return 
PLUGIN_CONTINUE
    
}
    
    if(!
is_user_connected(iKiller) && iKiller != ent)
    {
        
do_deathmsg(iKilleriVictimiHSszWeapon)
        return 
PLUGIN_CONTINUE
    
}
    
    if(
iKiller != iVictim && iKiller == ent)
    {        
        new 
iNewKiller
        
for(new 1g_maxplayersi++){
            if(
is_user_connected(i) && != iVictim && !is_user_admin(id))
            {
                
iNewKiller i;
                break;
            }
        }
        
        if(!
iNewKiller || iNewKiller == iKiller)
        {
            
do_deathmsg(iVictimiVictimiHSszWeapon)
            return 
PLUGIN_HANDLED;
        }
        
        new 
szName[32];

        
get_user_name(iNewKillerszName31)
        
g_szName[iNewKiller] = szName

        set_msg_block
(msgID_sayTextBLOCK_ONCE);
        
set_user_info(iNewKiller"name""ALIEN BOSS");
        
        new 
args[4]

        
args[0] = iVictim
        args
[1] = iNewKiller
        args
[2] = iHS
        
        set_task
(0.01"player_diePost"0args3)
    }
    else
    {
        
do_deathmsg(iVictimiVictimiHSszWeapon)
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
player_diePost(arg[])
{
    new 
szWeapon[24] = "allien_boss_attack";
    new 
iKiller arg[1]
    
    new 
CsTeams:tempteam cs_get_user_team(iKiller);
    
cs_set_user_team(iKillerCS_TEAM_T);
    
    
do_deathmsg(iKillerarg[0], arg[2], szWeapon)
    
    
cs_set_user_team(iKillertempteam);

    
set_msg_block(msgID_sayTextBLOCK_ONCE)
    
set_user_info(iKiller"name"g_szName[iKiller])

    return 
PLUGIN_CONTINUE
}

public 
npc_remove(ent
{    
    
remove_task(ALIEN_TASK)
    
remove_task(ALIEN_TASK1)
    
remove_task(ALIEN_TASK2)
    
remove_task(ALIEN_TASK3)
    
remove_task(ALIEN_TASK4)
    
    
remove_entity(ent)
    
remove_task(ent)
    
    
g_jump_count[ent] = 0
    g_game_start 
false
}

public 
count_start(ent)
{
    
g_timer g_timer 1
    
    
if(g_timer 0)
        
client_print(0print_center"Игра Ğ½Ğ°Ñ‡Ğ½Ñ‘тся Ñ‡ĞµÑ€ĞµĞ· %d ÑĞµĞºÑƒĞ½Ğ´."g_timer)
    
    if(
g_timer 11)
        
client_cmd(0"spk zombie_plague/vox/%d"g_timer)
    
    if(
g_timer >= 0)
        
set_task(1.0"count_start"ALIEN_TASK)
        
    if(
g_timer == 0)
    {
        
client_print(0print_center"Alien Boss Ğ¿Ğ¾ÑĞ²Ğ¸Ğ»ÑÑ ÑƒĞ±ĞµĞ¹Ñ‚е ĞµĞ³Ğ¾!")
        
g_game_start true
    
}
}

public 
update_target(ent)
{
    if(!
is_valid_ent(ent))
        return;

    
g_target[ent] = find_closes_enemy(ent)
    
set_task(5.0"update_target"ent)
}

public 
msg_deathMsg()
    return 
PLUGIN_HANDLED;

public 
begin_changelevel(){    
    
g_bChangeLevel true;
    
    new 
ent;
    if((
ent engfunc(EngFunc_FindEntityByStringent"classname"npc_classname)) != 0)
        
npc_remove(ent);
    
    for(new 
id=1id<g_maxplayersid++)
    {
        if(
is_user_alive(id))
        {
            
set_pev(idpev_velocity1.0);
            
set_pev(idpev_maxspeed1.0);
        }
    }
    
    
server_cmd(g_sVoteCommand);
}

public 
fwd_UpdateClientData(idweaponscd)
{
    if(
id || id g_maxplayers)
        return 
FMRES_IGNORED
        
    
if(g_bChangeLevel)
    {
        
set_cd(cdCD_flNextAttack0.5)
        
set_cd(cdCD_MaxSpeed1.0)
        return 
FMRES_HANDLED
    
}
    
    return 
FMRES_IGNORED
}

stock do_deathmsg(iKilleriVictimiHS, const szWeapon[])
{
    
message_begin(MSG_ALLmsgID_deathMsg)
    
write_byte(iKiller)
    
write_byte(iVictim)
    
write_byte(iHS)
    
write_string(szWeapon)
    
message_end()
}

stock find_closes_enemy(ent)
{
    new 
enemyFloat:distFloat:distminFloat:origin[3], Float:originT[3]
    
pev(entpev_originorigin)
    
origin[2] += 120.0
    
    
for(new id=1id<=32id++)
    {
        if (!
is_user_alive(id)) continue;

        
dist entity_range(entid)
        
pev(idpev_originoriginT)
        if ((!
distmin || dist <= distmin))
        {
            
distmin dist
            enemy 
id
        
}
    }    

    return 
enemy
}

stock ent_move_to(entFloat:target[3], speed)
{
    static 
Float:vec[3]
    
aim_at_origin(enttargetvec)
    
engfunc(EngFunc_MakeVectorsvec)
    
global_get(glb_v_forwardvec)
    
vec[0] *= speed
    vec
[1] *= speed
    vec
[2] *= speed 0.1
    set_pev
(entpev_velocityvec)
        
    new 
Float:angle[3]
    
aim_at_origin(enttargetangle)
    
angle[0] = 0.0
    entity_set_vector
(entEV_VEC_anglesangle)
}

stock ent_jump_to(entFloat:target[3], speed)
{
    static 
Float:vec[3]
    
aim_at_origin(enttargetvec)
    
engfunc(EngFunc_MakeVectorsvec)
    
global_get(glb_v_forwardvec)
    
vec[0] *= speed
    vec
[1] *= speed
    vec
[2] *= speed 0.1
    set_pev
(entpev_velocityvec)
        
    new 
Float:angle[3]
    
aim_at_origin(enttargetangle)
    
angle[0] = 0.0
    entity_set_vector
(entEV_VEC_anglesangle)
    
}

stock aim_at_origin(idFloat:target[3], Float:angles[3])
{
    static 
Float:vec[3]
    
pev(idpev_originvec)
    
vec[0] = target[0] - vec[0]
    
vec[1] = target[1] - vec[1]
    
vec[2] = target[2] - vec[2]
    
engfunc(EngFunc_VecToAnglesvecangles)
    
angles[0] *= -1.0angles[2] = 0.0
}

stock get_speed_vector(const Float:origin1[3], const Float:origin2[3], Float:speedFloat:new_velocity[3])
{
    
new_velocity[0] = origin2[0] - origin1[0]
    
new_velocity[1] = origin2[1] - origin1[1]
    
new_velocity[2] = origin2[2] - origin1[2]
    new 
Float:num floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2]))
    
new_velocity[0] *= num
    new_velocity
[1] *= num
    new_velocity
[2] *= num
       
    
return 1;


stock Util_PlayAnimation(indexsequenceFloatframerate 1.0

    if(
entity_get_int(indexEV_INT_sequence) == sequence) return;

    
entity_set_float(indexEV_FL_animtimeget_gametime()); 
    
entity_set_float(indexEV_FL_framerateframerate); 
    
entity_set_float(indexEV_FL_frame0.0); 
    
entity_set_int(indexEV_INT_sequencesequence); 


stock bool:is_hull_vacant(const Float:origin[3], hull,id
{
    static 
tr
    engfunc
(EngFunc_TraceHulloriginorigin0hullidtr)
    if (!
get_tr2(trTR_StartSolid) || !get_tr2(trTR_AllSolid))
    return 
true

    
return false
}

stock fm_set_user_health(idhealth)
{
    (
health 0) ? set_pev(idpev_healthfloat(health)) : dllfunc(DLLFunc_ClientKillid);
}

// Ğ‘осс ÑĞºĞ°Ñ‡Ğ°Ğ½ Ñ ÑĞ°Ğ¹Ñ‚а Zombie-Mod.ru 
[/i][/i]
Reply
Oyunu Sro Ya Çevirdiniz Big Grin Big Grin Big Grin Big Grin Big Grin Big Grin Big Grin Big Grin Big Grin
Reply
tesekkurler
Reply
bakalım nasıl
Reply
Deniyicez bakalım nasıl
Reply
oha dehşet gördüğüm en iyi modlardan diyebilirim eline sağlıık
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  CS 1.6 Revanant Boss Mod Tr de ilk !!! haku44 5 5,582 14-02-14, 16:49
Last Post: team36
  Oberon Boss Mod // 2012 Calisiyor // Eklentili pRoBela 56 11,948 18-11-12, 13:11
Last Post: hams1

Foruma Atla:


Users browsing this thread: 1 Guest(s)