Raised This Month: $ Target: $400
 0% 

coordination


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
indradullanov
Member
Join Date: Sep 2012
Location: Indonesian
Old 07-07-2013 , 23:02   coordination
Reply With Quote #1

can help me? where coordination boss Oberon create​​?



PHP Code:
#include <amxmodx> 
#include <engine> 
#include <fakemeta> 
#include <cstrike> 
#include <hamsandwich> 
#include <xs> 

// NRS includes 
#include <nrs_main> 
#include <nrs_const> 


#define PLUGIN                             "[NRS] : Oberon" 
#define    TITLE                            "[NRS]" 
#define VERSION                         "1.3" 
#define AUTHOR                             "Good_Hash + Dias" 
#define MAP_NEXT                        "cs_italy" 
#define    MAX_ZOMBIE_ID                        4 


#define OBERON_HEALTH                        150000.0 
#define MONEY_DMG                        1000.0 
#define MONEY_REWARD                        1000 
#define CLASS_NAME                        "npc_oberon" 
#define CLASS_TIP                        "Oberon Boss" 
#define OBERON_ATTACK_WAITIME                     3.0 
     
// Some defines for tasks 
#define TASK_INIT                        1000 
#define TASK_SPELL                        1001 
#define TASK_RESET                        1002 
#define TASK_BERSERKER                        1003 
#define TASK_EFFECT                        1004 
#define TASK_HOOKINGUP                        1005 
#define TASK_HOOKINGDOWN                    1006 
#define TASK_BOMBING                        1007 
#define TASK_SWARM                        1008 
#define TASK_CREATE                        1009 

// Animations.. 
#define ANIMATION_SPAWN                        1 
#define ANIMATION_SPAWN_TIME                    6.2 

#define OBERON_ATTACK2_DAMAGE                    10.0 
#define ANIMATION_ATTACK_2                    7 
#define ANIMATION_ATTACK_2_TIME                    2.03 
#define ANIMATION_ATTACK_2_BERSERKER                15 
#define ANIMATION_ATTACK_2_BERSERKER_TIME            1.53 

#define ANIMATION_ATTACK_3                    8 
#define ANIMATION_ATTACK_3_TIME                    4.0 
#define ANIMATION_ATTACK_3_BERSERKER                16 
#define ANIMATION_ATTACK_3_BERSERKER_TIME            4.0 

#define ANIMATION_ATTACK_BOMB                    9 
#define ANIMATION_ATTACK_BOMB_TIME                11.2 
#define ANIMATION_ATTACK_BOMB_BERSERKER                18 
#define ANIMATION_ATTACK_BOMB_BERSERKER_TIME            11.2 


#define ANIMATION_ATTACK_HOLE                    10 
#define ANIMATION_ATTACK_HOLE_TIME                6.02 
#define ANIMATION_ATTACK_HOLE_BERSERKER                19 
#define ANIMATION_ATTACK_HOLE_BERSERKER_TIME            6.02 

#define ANIMATION_BERSERKER                    11 
#define ANIMATION_BERSERKER_TIME                8.7 


                    // IMPALE STRIKE 
new Float:g_poison_touch[33
new const 
skill_tentacle[][] = {  
    
"models/dione/ef_tentacle_sign.mdl",  
    
"models/dione/tentacle.mdl",  
    
"models/dione/ef_tentacle.mdl"  
}  
#define TENACLE_TASK        42141 
                    // IMPALE STRIKE 


new last_entg_npc_idg_Counter 
new g_class_modelindexexp_spr_id 
new g_class_pmodel[164] = "models/oberon/zbs_bossl_big02.mdl" 
new const oberon_bomb_model[] = "models/oberon/zbs_bossl_big02_bomb.mdl" 
new const oberon_hole_effect[] = "models/oberon/ef_hole.mdl" 
new const oberon_knife_effect[] = "models/oberon/ef_knife.mdl" 

new const oberon_appear_sound[] = "oberon/appear.wav" 
new const oberon_attack1_sound[] = "oberon/attack1.wav" 
new const oberon_attack2_sound[] = "oberon/attack2.wav" 
new const oberon_berserk_attack1_sound[] = "oberon/knife_attack1.wav" 
new const oberon_berserk_attack2_sound[] = "oberon/knife_attack2.wav" 
new const oberon_berserker_sound[] = "oberon/knife.wav" 
new const oberon_attack_hole_sound[] = "oberon/hole.wav" 
new const oberon_bomb_sound[] = "oberon/attack_bomb.wav" 

new const oberon_jump_sound[] = "oberon/attack3_jump.wav" 
new const oberon_jumpdamage_sound[] = "oberon/attack3.wav" 
new const oberon_bjump_sound[] = "oberon/knife_attack3_jump.wav" 
new const oberon_bjumpdamage_sound[] = "oberon/knife_attack3.wav" 

new bool:g_incast[516], bool:g_berserker[516], bool:g_already_bombingg_oberons_aliveFloat:zombie_timer[516], g_created_zombie 
new Float:Damage_Money[33], g_damage_done[33

public 
plugin_init() 

    
register_plugin(PLUGINVERSIONAUTHOR
    
register_touch("tentacle2""*""fw_tentacle_touch"
     
    
RegisterHam(Ham_TakeDamage"player""Block_Doing_Damage"
    
RegisterHam(Ham_Spawn"player""PlayerSpawn"1
     
    
//register_clcmd("say /god", "test_attack2") 
    
register_concmd("oberon_tentakle""test_tentakle"
    
register_concmd("oberon_hole""test_hole"
    
register_concmd("oberon_bomb""test_bomb"



FindBuyZones( ) { 
    new 
iEntity = -1
     
    while( ( 
iEntity find_ent_by_classiEntity"func_buyzone" ) ) > 
    { 
        return 
iEntity 
    

    return 




public 
event_gamestarted() 

    
g_Counter 25 
     
    
if ( task_exists(TASK_CREATE) ) 
    { 
        
remove_task(TASK_CREATE
    } 
    
Start_Creating() 


public 
Start_Creating() 

    
g_Counter-- 
    if ( 
g_Counter 
    { 
        
set_task(1.0"Start_Creating"TASK_CREATE
        
set_hudmessage(02550, -1.0, -0.67
        
show_hudmessage(0"Start in %i sec"g_Counter
    } 
    else 
    { 
        
set_task(1.0"Double_Oberon"TASK_CREATE
        
set_hudmessage(25500, -1.0, -0.672
        
show_hudmessage(0"SUPERNOVA IYI EGLENCELER DILER!!!!!!"
    } 

     
public 
Double_Oberon() 

    new 
Float:fOrigin[3
    
create_npc(fOriging_npc_id
    
create_npc(fOriging_npc_id
    
g_oberons_alive 



public 
PlayerSpawn(id
    if ( 
is_user_alive(id) ) 
        
cs_set_user_money(id16000
     
public 
Block_Doing_Damage(victiminflictorattackerFloat:damagedamagetype

    if(
damagetype DMG_GENERIC || victim == attacker || !is_user_alive(victim) || !is_user_connected(attacker)) 
        return 
HAM_IGNORED 
     
    
if ( is_user_connected(victim) && is_user_connected(attacker) ) 
        return 
HAM_SUPERCEDE 
         
    
return HAM_IGNORED 



public 
test_attack2(id

    
set_pev(idpev_health1012.0

public 
test_hole(id

    if ( 
g_incast[last_ent] ) 
        return 
PLUGIN_HANDLED 
    g_incast
[last_ent] = true 
    set_task
(0.3"oberon_skill_hole"last_ent TASK_SPELL
    return 
PLUGIN_HANDLED 

public 
test_tentakle(id

    if ( 
g_incast[last_ent] ) 
        return 
PLUGIN_HANDLED 
    g_incast
[last_ent] = true 
    set_task
(0.3"oberon_skill_impale"last_ent TASK_SPELL
    return 
PLUGIN_HANDLED 

public 
test_bomb(id

    if ( 
g_incast[last_ent] ) 
        return 
PLUGIN_HANDLED 
    g_incast
[last_ent] = true 
    set_task
(0.3"oberon_skill_bombs"last_ent TASK_SPELL
    return 
PLUGIN_HANDLED 



public 
event_npc_damage_start(ent

    if ( !
pev_valid(ent) ) 
        return 
PLUGIN_CONTINUE
         
    if ( 
get_npc_id(ent) == g_npc_id 
    { 
        if ( 
g_incast[ent] ) 
            return 
PLUGIN_HANDLED 
             
        
if ( g_berserker[ent] ) 
            
emit_sound(entCHAN_BODYoberon_berserk_attack1_sound1.0ATTN_NORM0PITCH_NORM
        else 
            
emit_sound(entCHAN_BODYoberon_attack1_sound1.0ATTN_NORM0PITCH_NORM
         
        
g_incast[ent] = true 
        
new Float:timed
        if ( !
g_berserker[ent] ) 
            
timed OBERON_ATTACK_WAITIME 
        
else 
            
timed 2.0 
         
        set_task
(timed+0.3"oberon_reset"ent TASK_RESET
    } 
     
    return 
PLUGIN_CONTINUE


public 
event_npc_damage_delayed(ent
    
oberon_berser_effects(ent
     

public 
event_npc_damage(entattackerFloat:damage

    if ( !
pev_valid(ent) ) 
        return; 
    if ( 
get_npc_id(ent) != g_npc_id 
        return 
         
    
Damage_Money[attacker] += damage
    
g_damage_done[attacker] += floatround(damage
         
    if(
Damage_Money[attacker] >= MONEY_DMG
    { 
        
Damage_Money[attacker] -= MONEY_DMG 
                 
        cs_set_user_money
(attackercs_get_user_money(attacker) + MONEY_REWARD
    } 
             
    if ( 
pev(entpev_health) <= get_npc_data(g_npc_idDATA_HEALTH)*0.5 
        if ( !
g_berserker[ent] ) 
        { 
            if ( 
g_incast[ent] ) 
            { 
                
set_task(3.0"oberon_berserker_on"ent+TASK_BERSERKER__"b"
            } 
            else 
            { 
                
oberon_berserker_on(ent
            } 
        } 



public 
oberon_berserker_on(ent

    if ( 
ent TASK_BERSERKER 
        
ent -= TASK_BERSERKER 
    
if ( !pev_valid(ent) || g_incast[ent] ) 
        return 
     
    
task_exists(ent TASK_BERSERKER) ? remove_task(ent TASK_BERSERKER) : 
    g_incast
[ent] = true 
    g_berserker
[ent] = true 
    npc_reset_animation
(ent
    
set_npc_events(entEVENT_CUSTOM
    
npc_set_berserker(ent1
    
npc_set_animation(entANIMATION_BERSERKERANIMATION_BERSERKER_TIME
     
    
emit_sound(entCHAN_BODYoberon_berserker_sound1.0ATTN_NORM0PITCH_NORM
    
set_task(ANIMATION_BERSERKER_TIME"oberon_reset"ent TASK_RESET


     
public 
event_npc_init(ent

    if ( !
pev_valid(ent) ) 
        return; 
         
    if ( 
get_npc_id(ent) == g_npc_id 
    { 
        
last_ent ent 
        set_npc_boss
(enttrue
        
npc_reset_move(ent
        
g_berserker[ent] = false 
        g_incast
[ent] = true 
        set_npc_events
(entEVENT_CUSTOM
        
npc_set_animation(entANIMATION_SPAWNANIMATION_SPAWN_TIME
        
set_task(ANIMATION_SPAWN_TIME"npc_start"ent+TASK_INIT
        
//set_task(30.0, "oberon_call_zombie", ent+TASK_SWARM, _,_,"b") 
        
emit_sound(entCHAN_BODYoberon_appear_sound1.0ATTN_NORM0PITCH_NORM
    } 




public 
oberon_call_zombie(ent

    
ent -= TASK_SWARM 
    
if ( !pev_valid(ent) ) 
    { 
        
remove_task(ent TASK_SWARM
        return 
    } 
     
    if (
zombie_timer[ent] <= get_gametime() ) 
    { 
        new 
zombie_calls random_num(1,10)*g_oberons_alive 
        
new zombie_online 5*g_oberons_alive 
        
new parm[3
        
parm[0] = zombie_calls 
        parm
[1] = zombie_online 
        parm
[2] = ent 
        set_task
(1.0"_oberon_call_zombie"ent+TASK_SWARMparm3
         
    } 


public 
_oberon_call_zombie(parm[3]) 

    new 
zombie_calls parm[0
    new 
zombie_online parm[1
    new 
ent parm[2
    new 
random_zombie[50
    
formatex(random_zombie49"npc_cso_zm%i"random_num(1,MAX_ZOMBIE_ID)) 
    if ( 
g_created_zombie zombie_online 
    { 
        if ( 
zombie_calls 
        { 
            new 
Float:fOrigin[3
            
create_npc(fOriginget_npc_classname_id(random_zombie)) 
            
zombie_calls-- 
            
g_created_zombie++ 
             
            
parm[0] = zombie_calls 
            parm
[1] = zombie_online 
            set_task
(1.0"_oberon_call_zombie"ent+TASK_SWARMparm3
        } 
    } 



public 
event_npc_death(entkiller

    if ( 
get_npc_id(ent) == g_npc_id 
    { 
        
g_oberons_alive-- 
        new 
kkname[33], biggest_damage 0biggest_damage_id 
             
        
for (k=1k<33k++) 
        { 
            if ( 
g_damage_done[k] > biggest_damage 
            { 
                
biggest_damage g_damage_done[k]; 
                
biggest_damage_id k
            } 
        } 
        
get_user_name(biggest_damage_idkname32
             
        if (
g_oberons_alive 
        { 
            new 
name[33
            
get_user_name(killername32
            
client_print(0print_chat"%s Killer: %s | Damager: %s ( %i )"TITLEnameknamebiggest_damage
             
            
#if defined WAR3FT_SUPPORT 
            
for (new =033i++ ) 
                if  ( 
is_user_connected(i) ) 
                    
give_user_xp(iWIN_GAMEfalsetrue"GIFT"
            
#endif 
        

        else 
        { 
            new 
name[33
            
get_user_name(killername32
            
client_print(0print_chat"%s Game end, thank you! Killer: %s | Damager: %s ( %i )"TITLEnameknamebiggest_damage
            
client_print(0print_chat"Next map: %s"MAP_NEXT
            
set_task(15.0"changelevel_pls"
             
            
#if defined WAR3FT_SUPPORT 
            
for (new =033i++ ) 
                if  ( 
is_user_connected(i) ) 
                    
give_user_xp(iWIN_GAMEfalsetrue"GIFT"
            
#endif 
        

        return 
    } 
    
// add award later! 
    
g_created_zombie-- 


public 
changelevel_pls() 

    
server_cmd("changelevel ^"%s^""MAP_NEXT



public 
npc_start(ent

    
ent -= TASK_INIT 
    
if ( !pev_valid(ent) ) 
        return 
         
    
g_incast[ent] = false 
    set_npc_events
(entEVENT_AGRESSION
    
set_task(random_float(1.010.0), "oberon_spell_casting"ent TASK_SPELL 



public 
oberon_reset(ent

    
ent -= TASK_RESET 
    
if ( !pev_valid(ent) ) 
        return 
    
set_npc_events(entEVENT_AGRESSION
    
g_incast[ent] = false
    
task_exists(ent+TASK_HOOKINGDOWN) ? remove_task(ent+TASK_HOOKINGDOWN):0



public 
oberon_spell_casting(ent

    if ( 
ent TASK_SPELL 
        
ent -= TASK_SPELL 
    
if ( !pev_valid(ent) || !pev(entpev_health)) 
        return 
         
    
set_task(random_float(1.05.0), "oberon_spell_casting"ent TASK_SPELL 
     
    if ( 
g_incast[ent] ) 
    { 
        return 
    } 
     
    
npc_reset_animation(ent
    
npc_reset_move(ent
    new 
SPELL_ID random_num(0,7
    switch (
SPELL_ID
    { 
        case 
: return 
        case 

        { 
            if ( 
oberon_skill_attack2_check(ent) ) 
            { 
                
g_incast[ent] = true 
                set_task
(0.3"oberon_skill_attack2"ent TASK_SPELL
            } 
        } 
        case 
2
        { 
            
g_incast[ent] = true 
            set_task
(0.3"oberon_skill_hole"ent TASK_SPELL
        } 
        case 
3
        { 
            
g_incast[ent] = true 
            set_task
(0.3"oberon_skill_impale"ent TASK_SPELL
        } 
        case 
4
        { 
            
g_incast[ent] = true 
            
if ( g_already_bombing 
                
set_task(0.3"oberon_skill_impale"ent TASK_SPELL
            else 
            { 
                
g_already_bombing true 
                set_task
(0.3"oberon_skill_bombs"ent TASK_SPELL
            } 
        } 
        case 
5
        { 
            
g_incast[ent] = true 
            set_task
(0.3"oberon_skill_hole"ent TASK_SPELL
        } 
        case 
6..7
        { 
            
g_incast[ent] = true 
            set_task
(0.3"oberon_skill_hole"ent TASK_SPELL
            
//bad tests... not working yet! set_task(0.3, "oberon_skill_jump", ent + TASK_SPELL) 
        

    } 

/* 
public oberon_skill_jump(ent) 

    if ( ent > TASK_SPELL ) 
        ent -= TASK_SPELL 
    if ( !pev_valid(ent) ) 
    { 
        remove_task(ent + TASK_SPELL) 
        return 
    } 
         
    set_npc_events(ent, EVENT_CUSTOM) 
    new Float:timed; 
    if ( !g_berserker[ent] ) 
    { 
        emit_sound(ent, CHAN_BODY, oberon_jump_sound, 1.0, ATTN_NORM, 0, PITCH_NORM) 
        timed = ANIMATION_ATTACK_3_TIME 
        npc_set_animation(ent, ANIMATION_ATTACK_3, 0.01) 
    } 
    else 
    { 
        emit_sound(ent, CHAN_BODY, oberon_bjump_sound, 1.0, ATTN_NORM, 0, PITCH_NORM) 
        timed = ANIMATION_ATTACK_3_BERSERKER_TIME 
        npc_set_animation(ent, ANIMATION_ATTACK_3_BERSERKER, 0.01) 
    } 
     
    static Float:target[3] 
    pev(get_npc_target(ent), pev_origin, target) 
    npc_set_move(ent, target) 
     
    set_task(0.01, "hookingup", ent+TASK_HOOKINGUP, _, _, "b") 
    set_task(2.0, "hookingdown", ent+TASK_HOOKINGDOWN) 
    set_task(2.0, "oberon_jump_damage", ent+TASK_SPELL) 
    set_task(timed, "oberon_reset", ent + TASK_RESET) 



public oberon_jump_damage(ent) 

    if ( ent > TASK_SPELL ) 
        ent -= TASK_SPELL 
    if ( !pev_valid(ent) ) 
        return 
     
    static Float:Ent_orig[3], Float:Enemy[3], Float:Aim[3] 
    velocity_by_aim(ent, 300, Aim) 
    xs_vec_mul_scalar(Aim, 3.0, Aim) ; Aim[2] = 300.0 
    pev(ent, pev_origin, Ent_orig) 
     
    if ( !g_berserker[ent] ) 
    { 
        emit_sound(ent, CHAN_BODY, oberon_jumpdamage_sound, 1.0, ATTN_NORM, 0, PITCH_NORM) 
    } 
    else 
    { 
        emit_sound(ent, CHAN_BODY, oberon_bjumpdamage_sound, 1.0, ATTN_NORM, 0, PITCH_NORM) 
    } 
     
    for(new i = 1; i <= get_maxplayers(); i++) 
    { 
        if(!is_user_alive(i)) continue 
         
        pev(i, pev_origin, Enemy) 
        if(get_distance_f(Ent_orig, Enemy) <= 300.0) 
        { 
            set_pev(i, pev_velocity, Aim) 
            npc_do_damage(ent, i, OBERON_ATTACK2_DAMAGE) 
            ScreenShake(i, ((1<<12) * 8), ((2<<12) * 7)) 
            ScreenFade(i, 6, 255, 0, 0, 90) 
        } 
    } 



public hookingup(ent) 

    ent -= TASK_HOOKINGUP 
     
    if ( !pev_valid(ent) ) 
    { 
        remove_task( ent+TASK_HOOKINGUP ) 
        return 
    } 
     
    static Float:Origin[3] 
    pev(ent, pev_origin, Origin) 
     
    Origin[2] += 1000.0 
     
    hook_ent2(ent, Origin, 1000.0)     


public hookingdown(ent) 

    ent -= TASK_HOOKINGDOWN 
     
    remove_task(ent+TASK_HOOKINGUP) 
     
    set_task(0.01, "hookingdown2", ent+TASK_HOOKINGDOWN, _, _, "b") 


public hookingdown2(ent) 

    ent -= TASK_HOOKINGDOWN 
     
    static Float:target[3] 
    pev(get_npc_target(ent), pev_origin, target) 
     
    hook_ent2(ent, target, 1000.0)     

*/ 

public oberon_skill_bombs(ent

    if ( 
ent TASK_SPELL 
        
ent -= TASK_SPELL 
    
if ( !pev_valid(ent) ) 
    { 
        
remove_task(ent TASK_SPELL
        return 
    } 
         
    
set_npc_events(entEVENT_CUSTOM
    new 
Float:timed
    if ( !
g_berserker[ent] ) 
    { 
        
emit_sound(entCHAN_BODYoberon_attack2_sound1.0ATTN_NORM0PITCH_NORM
        
timed ANIMATION_ATTACK_BOMB_TIME 
        npc_set_animation
(entANIMATION_ATTACK_BOMBtimed
    } 
    else 
    { 
        
emit_sound(entCHAN_BODYoberon_berserk_attack2_sound1.0ATTN_NORM0PITCH_NORM
        
timed ANIMATION_ATTACK_BOMB_BERSERKER_TIME 
        npc_set_animation
(entANIMATION_ATTACK_BOMB_BERSERKERtimed
    } 
     
    
set_task(3.0"do_skill_bomb"ent+TASK_BOMBING__"b"
    
set_task(timed-0.1"stop_skill_bomb"ent+TASK_RESET
    
set_task(timed"oberon_reset"ent TASK_RESET


public 
stop_skill_bomb(ent

    if ( 
ent TASK_RESET 
        
ent -= TASK_RESET 
    remove_task
(ent TASK_BOMBING
    
g_already_bombing false 


     
public 
do_skill_bomb(ent

    if ( 
ent TASK_BOMBING 
        
ent -= TASK_BOMBING 
    
if ( !pev_valid(ent) ) 
    { 
        
remove_task(ent TASK_BOMBING
        return 
    } 
         
    static 
Float:StartOrigin[3], Float:TempOrigin[6][3], Float:VicOrigin[6][3], Float:Random1 
     
    pev
(entpev_originStartOrigin
    
StartOrigin[2] += 50 
    emit_sound
(entCHAN_BODYoberon_bomb_sound1.0ATTN_NORM0PITCH_NORM
     
    
// 1st Bomb 
    
Random1 random_float(100.0500.0
    
VicOrigin[0][0] = StartOrigin[0] + Random1 
    VicOrigin
[0][1] = StartOrigin[1
    
VicOrigin[0][2] = StartOrigin[2
     
    
TempOrigin[0][0] = VicOrigin[0][0] - (Random1 2.0
    
TempOrigin[0][1] = VicOrigin[0][1
    
TempOrigin[0][2] = VicOrigin[0][2] + 500.0 
     
    
// 2nd Bomb 
    
Random1 random_float(100.0500.0
    
VicOrigin[1][0] = StartOrigin[0
    
VicOrigin[1][1] = StartOrigin[1] + Random1 
    VicOrigin
[1][2] = StartOrigin[2
     
    
TempOrigin[1][0] = VicOrigin[1][0
    
TempOrigin[1][1] = VicOrigin[1][1] - (Random1 2.0
    
TempOrigin[1][2] = VicOrigin[1][2] + 500.0     
     
    
// 3rd Bomb 
    
Random1 random_float(100.0500.0
    
VicOrigin[2][0] = StartOrigin[0] - Random1 
    VicOrigin
[2][1] = StartOrigin[1
    
VicOrigin[2][2] = StartOrigin[2
     
    
TempOrigin[2][0] = VicOrigin[2][0] - (Random1 2.0
    
TempOrigin[2][1] = VicOrigin[2][1
    
TempOrigin[2][2] = VicOrigin[2][2] + 500.0     
     
    
// 4th Bomb 
    
VicOrigin[3][0] = StartOrigin[0
    
VicOrigin[3][1] = StartOrigin[1] - Random1 
    VicOrigin
[3][2] = StartOrigin[2
     
    
TempOrigin[3][0] = VicOrigin[3][0
    
TempOrigin[3][1] = VicOrigin[3][1] - (Random1 2.0
    
TempOrigin[3][2] = VicOrigin[3][2] + 500.0 
     
    
// 5th Bomb 
    
VicOrigin[4][0] = StartOrigin[0] + Random1 
    VicOrigin
[4][1] = StartOrigin[1] + Random1 
    VicOrigin
[4][2] = StartOrigin[2
     
    
TempOrigin[4][0] = VicOrigin[4][0] - (Random1 2.0
    
TempOrigin[4][1] = VicOrigin[4][1] - (Random1 2.0
    
TempOrigin[4][2] = VicOrigin[4][2] + 500.0 
     
    
// 6th Bomb 
    
VicOrigin[5][0] = StartOrigin[0] + Random1 
    VicOrigin
[5][1] = StartOrigin[1] - Random1 
    VicOrigin
[5][2] = StartOrigin[2
     
    
TempOrigin[5][0] = VicOrigin[5][0] + (Random1 2.0
    
TempOrigin[5][1] = VicOrigin[5][1] - (Random1 2.0
    
TempOrigin[5][2] = VicOrigin[5][2] + 500.0     
     
    
for(new 06i++) 
    { 
        
make_bomb(StartOriginTempOrigin[i], VicOrigin[i]) 
    }     



public 
make_bomb(Float:StartOrigin[3], Float:TempOrigin[3], Float:VicOrigin[3]) 

    new 
ent create_entity("info_target"
     
    
StartOrigin[2] += 20.0 
     
    entity_set_origin
(entStartOrigin
     
    
entity_set_string(ent,EV_SZ_classname"oberon_bomb"
    
entity_set_model(entoberon_bomb_model
    
entity_set_int(entEV_INT_solidSOLID_NOT
    
entity_set_int(entEV_INT_movetypeMOVETYPE_BOUNCE
     
    new 
Float:maxs[3] = {10.0,10.0,10.0
    new 
Float:mins[3] = {-10.0,-10.0,-5.0
    
entity_set_size(entminsmaxs
     
    
entity_set_float(entEV_FL_animtimeget_gametime()) 
    
entity_set_float(entEV_FL_framerate1.0)     
    
entity_set_int(entEV_INT_sequence0)         
     
    static 
arg[4], arg2[4
     
    
arg[0] = ent 
    arg
[1] = floatround(TempOrigin[0]) 
    
arg[2] = floatround(TempOrigin[1]) 
    
arg[3] = floatround(TempOrigin[2]) 

    
arg2[0] = ent 
    arg2
[1] = floatround(VicOrigin[0]) 
    
arg2[2] = floatround(VicOrigin[1]) 
    
arg2[3] = floatround(VicOrigin[2])     
     
    
set_task(0.01"do_hook_bomb_up"TASK_HOOKINGUPargsizeof(arg), "b"
    
set_task(1.0"do_hook_bomb_down"_arg2sizeof(arg2)) 
    
set_task(2.0"bomb_explode"ent

public 
do_hook_bomb_up(arg[4]) 

    static 
entFloat:TempOrigin[3
     
    
ent arg[0
    if ( !
pev_valid(ent) ) 
    { 
        
remove_task(TASK_HOOKINGUP
        return 
    } 
    
TempOrigin[0] = float(arg[1]) 
    
TempOrigin[1] = float(arg[2]) 
    
TempOrigin[2] = float(arg[3]) 
     
    
hook_ent2(entTempOrigin500.0

public 
do_hook_bomb_down(arg[4]) 

    
remove_task(TASK_HOOKINGUP
    
set_task(0.01"do_hook_bomb_down2"TASK_HOOKINGDOWNargsizeof(arg), "b"

public 
do_hook_bomb_down2(arg[4]) 

    static 
entFloat:VicOrigin[3
     
    
ent arg[0
    if ( !
pev_valid(ent) ) 
    { 
        
remove_task(TASK_HOOKINGUP
        return 
    } 
    
VicOrigin[0] = float(arg[1]) 
    
VicOrigin[1] = float(arg[2]) 
    
VicOrigin[2] = float(arg[3])     
     
    
hook_ent2(entVicOrigin500.0

public 
bomb_explode(ent

    
remove_task(TASK_HOOKINGUP
    
remove_task(TASK_HOOKINGDOWN
     
    if ( !
pev_valid(ent) ) 
    { 
        return 
    } 
     
    static 
Float:Origin[3
    
pev(entpev_originOrigin
     
    
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY
    
write_byte(TE_EXPLOSION
    
engfunc(EngFunc_WriteCoordOrigin[0]) 
    
engfunc(EngFunc_WriteCoordOrigin[1]) 
    
engfunc(EngFunc_WriteCoordOrigin[2]) 
    
write_short(exp_spr_id)    // sprite index 
    
write_byte(20)    // scale in 0.1's 
    
write_byte(30)    // framerate 
    
write_byte(0)    // flags 
    
message_end()     
     
    for(new 
1get_maxplayers(); i++) 
    { 
        if(
is_user_alive(i) && entity_range(ient) <= 300.0
        { 
            static 
Float:Damage 
            Damage 
random_float(30.060.0
             
            if(
g_berserker[ent]) 
                
Damage *= 2.0 
                 
            npc_do_damage
(entiDamage)//ExecuteHam(Ham_TakeDamage, i, 0, i, Damage, DMG_BLAST) 
            
ScreenShake(i, ((1<<12) * 3), ((2<<12) * 3)) 
            
ScreenFade(i3255255090
        } 
    }     
     
    
remove_entity(ent



public 
oberon_skill_impale(ent

    if ( 
ent TASK_SPELL 
        
ent -= TASK_SPELL 
    
if ( !pev_valid(ent) ) 
        return 
     
    static 
Float:Origin[3], Float:Angles[3]  
      
    
entity_get_vector(entEV_VEC_originOrigin)  
    
entity_get_vector(entEV_VEC_anglesAngles//EV_VEC_v_angle 
     
    
set_npc_events(entEVENT_CUSTOM
    new 
Float:timed
    if ( !
g_berserker[ent] ) 
    { 
        
emit_sound(entCHAN_BODYoberon_attack2_sound1.0ATTN_NORM0PITCH_NORM
        
timed ANIMATION_ATTACK_2_TIME 
        npc_set_animation
(entANIMATION_ATTACK_2timed
    } 
    else 
    { 
        
emit_sound(entCHAN_BODYoberon_berserk_attack2_sound1.0ATTN_NORM0PITCH_NORM
        
timed ANIMATION_ATTACK_2_BERSERKER_TIME 
        npc_set_animation
(entANIMATION_ATTACK_2_BERSERKERtimed
    } 
     
    
set_task(timed"oberon_reset"ent TASK_RESET
    
//set_task(timed*0.3, "_oberon_skill_attack2", ent + TASK_SPELL) 
         
    
Origin[2] -= 15  
    
for(new i=110i++)   
    {  
        
make_tentacle(entiOriginAngles)  
    } 



public 
make_tentacle(idiFloat:Origin[3], Float:Angles[3])//), Float:Angles[3])  
{  
    new 
ent create_entity("info_target")  

    
drop_to_floor(ent)  
     
    
Origin[2] += 5.0  
      
    entity_set_origin
(entOrigin)  
    
entity_set_vector(entEV_VEC_v_angleAngles)  
      
    
//new Float: flAngles[ 3 ]; 
    //pev( id, pev_angles, flAngles );     
    
new FloatConAngles]; 
    
ConAngles] = Angles]; 
    
ConAngles] = Angles]; 
    
entity_set_vectorentEV_VEC_anglesConAngles ); 
    
//set_pev(ent, pev_owner, id) 
    
set_pev(entpev_v_angleConAngles)             
    
// addon 
    
set_pev(entpev_anglesConAngles
    
set_pev(entpev_view_ofsConAngles
                 
                 
    
entity_set_string(ent,EV_SZ_classname"tentacle")  
    
entity_set_model(entskill_tentacle[0])  
    
entity_set_int(entEV_INT_solidSOLID_NOT)  
    
entity_set_int(entEV_INT_movetypeMOVETYPE_FLY)  
      
    new 
Float:maxs[3] = {1.0,1.0,1.0}  
    new 
Float:mins[3] = {-1.0,-1.0,-1.0}  
    
entity_set_size(entminsmaxs)  
      
    
entity_set_float(entEV_FL_animtimeget_gametime())  
    
entity_set_float(entEV_FL_framerate2.0)      
    
entity_set_int(entEV_INT_sequence0)      
      
    
set_pev(entpev_rendermodekRenderTransAdd)  
    
set_pev(entpev_renderamt255.0)          
     
    static 
Float:Direction[3], Float:Endirection[3
     
    
angle_vector(ConAnglesANGLEVECTOR_FORWARDDirection); 
    
xs_vec_mul_scalar(Direction190.0*iDirection
     
    
Endirection] = Direction
    
Endirection] = Direction
    
Endirection] = Direction
     
    
set_pev(entpev_velocityEndirection
      
    
set_task(0.3"tentacle_change"ent+TENACLE_TASK
}  

public 
tentacle_change(ent)  
{  
    
ent -= TENACLE_TASK 
    
if ( !pev_valid(ent) ) 
        return 
         
    
entity_set_model(entskill_tentacle[1])  
          
    
entity_set_string(ent,EV_SZ_classname"tentacle2")  
     
    
entity_set_int(entEV_INT_solidSOLID_TRIGGER
    
entity_set_int(entEV_INT_movetypeMOVETYPE_PUSH
         
    new  
Float:Direction[3] = { 0.00.00.0 
    
set_pev(entpev_velocityDirection
         
    new 
Float:maxs[3] = {26.0,26.0,56.0}  
    new 
Float:mins[3] = {-26.0,-26.0,-56.0}  
    
entity_set_size(entminsmaxs)      
          
    
entity_set_float(entEV_FL_animtimeget_gametime())  
    
entity_set_float(entEV_FL_framerate1.0)      
    
entity_set_int(entEV_INT_sequence0)      
          
    
set_pev(entpev_rendermodekRenderNormal)  
    
set_pev(entpev_renderamt255.0)          
              
    
set_task(1.0"tentacle_change2"ent+TENACLE_TASK)  
}  

public 
tentacle_change2(ent)  
{  
    
ent -= TENACLE_TASK 
    
if ( !pev_valid(ent) ) 
        return 
    
entity_set_model(entskill_tentacle[2])  
    
entity_set_int(entEV_INT_solidSOLID_NOT)  
    
entity_set_string(ent,EV_SZ_classname"tentacle")  
          
    new 
Float:maxs[3] = {1.0,1.0,1.0}  
    new 
Float:mins[3] = {-1.0,-1.0,-1.0}  
    
entity_set_size(entminsmaxs)  
          
    
entity_set_float(entEV_FL_animtimeget_gametime())  
    
entity_set_float(entEV_FL_framerate1.0)      
    
entity_set_int(entEV_INT_sequence0)      
          
    
set_pev(entpev_rendermodekRenderTransAdd)  
    
set_pev(entpev_renderamt255.0)          
          
    
set_task(0.8"remove_tentacle"ent+TENACLE_TASK)  
}  

public 
remove_tentacle(ent)  
{  
    
ent -= TENACLE_TASK 
    
if ( !pev_valid(ent) ) 
        return 
    
remove_entity(ent)  
}  

public 
fw_tentacle_touch(tentacletouch)  
{  
    if(
is_user_alive(touch))  
    {  
        static 
Float:CurTime  
        CurTime 
get_gametime()  

         
        if(
CurTime 0.1 g_poison_touch[touch])  
        {  
            
/*ExecuteHamB(Ham_TakeDamage, touch, ent, touch, 5.0, DMG_BLAST)*/ 
            
static ent  
            ent 
find_ent_by_owner(-1"weapon_knife"touch
            
npc_do_damage(enttouch35.0
                  
            
g_poison_touch[touch] = CurTime  
                 
            
new Float:vVelocity[3]; 
            
entity_get_vectortouchEV_VEC_velocityvVelocity ); 

            
vVelocity[0] = random_float30.090.0 ); 
            
vVelocity[1] = random_float30.090.0 ); 
            
vVelocity[2] = random_float250.0500.0 ); 

            
entity_set_vectortouchEV_VEC_velocityvVelocity ); 
        }  
        }      
}  


public 
oberon_skill_hole(ent

    if ( 
ent TASK_SPELL 
        
ent -= TASK_SPELL 
    
if ( !pev_valid(ent) ) 
        return 
     
    
set_npc_events(entEVENT_CUSTOM
    new 
Float:timed
    if ( !
g_berserker[ent] ) 
    { 
        
timed ANIMATION_ATTACK_HOLE_TIME 
        npc_set_animation
(entANIMATION_ATTACK_HOLEtimed
    } 
    else 
    { 
        
timed ANIMATION_ATTACK_HOLE_BERSERKER_TIME 
        npc_set_animation
(entANIMATION_ATTACK_HOLE_BERSERKERtimed
    } 
     
    
emit_sound(entCHAN_BODYoberon_attack_hole_sound1.0ATTN_NORM0PITCH_NORM
    
set_task(timed"oberon_reset"ent TASK_RESET
    
set_task(5.0"_oberon_skill_hole"ent TASK_SPELL
     
    new 
Hole create_entity("info_target"
     
    static 
Float:Origin[3
    
pev(entpev_originOrigin
     
    
Origin[2] -= 10.0 
     
    entity_set_origin
(HoleOrigin
     
    
entity_set_string(Hole,EV_SZ_classname"hole_hook"
    
entity_set_model(Holeoberon_hole_effect
    
entity_set_int(HoleEV_INT_solidSOLID_NOT
    
entity_set_int(HoleEV_INT_movetypeMOVETYPE_NONE
     
    new 
Float:maxs[3] = {1.0,1.0,1.0
    new 
Float:mins[3] = {-1.0,-1.0,-1.0
    
entity_set_size(Holeminsmaxs
     
    
entity_set_float(HoleEV_FL_animtimeget_gametime()) 
    
entity_set_float(HoleEV_FL_framerate1.0)     
    
entity_set_int(HoleEV_INT_sequence0)     
     
    
set_pev(Holepev_rendermodekRenderTransAdd
    
set_pev(Holepev_renderamt255.0)     
     
    
drop_to_floor(Hole
     
    static 
arg[2
    for(new 
0get_maxplayers(); i++) 
    { 
        if(
is_user_alive(i) && entity_range(enti) <= 1000.0
        { 
            
arg[0] = ent 
            arg
[1] = 
             
            set_task
(0.01"do_hook_player"512512argsizeof(arg), "b"
        } 
    }     


public 
do_hook_player(arg[2]) // thnx to dias 

    static 
Float:Origin[3], Float:Speedenttarget 
    ent 
arg[0
    
target arg[1
    if ( !
pev_valid(ent) || !is_user_connected(target)) 
    { 
        
remove_task(512512
        return 
    } 
     
    
pev(entpev_originOrigin
     
    
Speed = (1000.0 entity_range(enttarget)) * 75.0 
     
    hook_ent2
(targetOriginSpeed

public 
hook_ent2(entFloat:VicOrigin[3], Float:speed)//credits to dias 

    static 
Float:fl_Velocity[3
    static 
Float:EntOrigin[3

    
pev(entpev_originEntOrigin
     
    static 
Float:distance_f 
    distance_f 
get_distance_f(EntOriginVicOrigin

    if (
distance_f 60.0
    { 
        new 
Float:fl_Time distance_f speed 

        fl_Velocity
[0] = (VicOrigin[0] - EntOrigin[0]) / fl_Time 
        fl_Velocity
[1] = (VicOrigin[1] - EntOrigin[1]) / fl_Time 
        fl_Velocity
[2] = (VicOrigin[2] - EntOrigin[2]) / fl_Time 
    
} else 
    { 
        
fl_Velocity[0] = 0.0 
        fl_Velocity
[1] = 0.0 
        fl_Velocity
[2] = 0.0 
    


    
entity_set_vector(entEV_VEC_velocityfl_Velocity



public 
_oberon_skill_hole(ent

    if ( 
ent TASK_SPELL 
        
ent -= TASK_SPELL 
         
    
static hole 
    hole 
find_ent_by_class(-1"hole_hook"
    if ( 
pev_valid(hole ) ) remove_entity(hole
    
remove_task(512512
     
    if ( !
pev_valid(ent) ) 
        return 
     
    
oberon_berser_effects(ent
     
    static 
Float:Ent_orig[3], Float:Enemy[3
    
pev(entpev_originEnt_orig
    for(new 
1<= get_maxplayers(); i++) 
    { 
        if(!
is_user_alive(i)) continue 
         
        
pev(ipev_originEnemy
        if(
get_distance_f(Ent_origEnemy) <= 250.0
        { 
            
npc_do_damage(entiOBERON_ATTACK2_DAMAGE
            
ScreenShake(i, ((1<<12) * 8), ((2<<12) * 7)) 
            
ScreenFade(i62550090
        } 
    } 


public 
oberon_skill_attack2(ent

    if ( 
ent TASK_SPELL 
        
ent -= TASK_SPELL 
    
if ( !pev_valid(ent) ) 
        return 
     
    
set_npc_events(entEVENT_CUSTOM
    new 
Float:timed
    if ( !
g_berserker[ent] ) 
    { 
        
emit_sound(entCHAN_BODYoberon_attack2_sound1.0ATTN_NORM0PITCH_NORM
        
timed ANIMATION_ATTACK_2_TIME 
        npc_set_animation
(entANIMATION_ATTACK_2timed
    } 
    else 
    { 
        
emit_sound(entCHAN_BODYoberon_berserk_attack2_sound1.0ATTN_NORM0PITCH_NORM
        
timed ANIMATION_ATTACK_2_BERSERKER_TIME 
        npc_set_animation
(entANIMATION_ATTACK_2_BERSERKERtimed
    } 
     
    
set_task(timed"oberon_reset"ent TASK_RESET
    
set_task(timed*0.3"_oberon_skill_attack2"ent TASK_SPELL


public 
_oberon_skill_attack2(ent

    if ( 
ent TASK_SPELL 
        
ent -= TASK_SPELL 
    
if ( !pev_valid(ent) ) 
        return 
     
    static 
Float:Ent_orig[3], Float:Enemy[3], Float:Aim[3
    
velocity_by_aim(ent300Aim
    
xs_vec_mul_scalar(Aim3.0Aim) ; Aim[2] = 300.0 
    pev
(entpev_originEnt_orig
    for(new 
1<= get_maxplayers(); i++) 
    { 
        if(!
is_user_alive(i)) continue 
         
        
pev(ipev_originEnemy
        if(
get_distance_f(Ent_origEnemy) <= 250.0
        { 
            
set_pev(ipev_velocityAim
            
npc_do_damage(entiOBERON_ATTACK2_DAMAGE
            
ScreenShake(i, ((1<<12) * 8), ((2<<12) * 7)) 
            
ScreenFade(i62550090
        } 
    } 


stock oberon_skill_attack2_check(ent

    static 
Float:Ent_orig[3], Float:Enemy[3
    
pev(entpev_originEnt_orig
    for(new 
1<= get_maxplayers(); i++) 
    { 
        if(!
is_user_alive(i)) continue 
         
        
pev(ipev_originEnemy
        if(
get_distance_f(Ent_origEnemy) <= 250.0
        { 
            return 

        

    } 
    return 





stock ScreenFade(idTimerColors1Colors2Colors3Alpha

    if(!
is_user_connected(id)) return 
     
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("ScreenFade"), _id); 
    
write_short((1<<12) * Timer
    
write_short(1<<12
    
write_short(0
    
write_byte(Colors1
    
write_byte(Colors2
    
write_byte(Colors3
    
write_byte(Alpha
    
message_end() 


stock ScreenShake(iddurationfrequency

    if(!
is_user_alive(id)) return 
     
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("ScreenShake"), _id); 
    
write_short(1<<14
    
write_short(duration
    
write_short(frequency
    
message_end(); 




public 
plugin_precache() 

    
Check_Map() 
     
    
g_class_modelindex precache_model(g_class_pmodel); 
    
exp_spr_id precache_model("sprites/zerogxplode.spr"); 
    
precache_model(oberon_bomb_model
    
precache_model(oberon_hole_effect
    
precache_model(oberon_knife_effect
     
     
    
g_npc_id register_npc(CLASS_NAMECLASS_TIP
    
precache_sound(oberon_appear_sound
    
precache_sound(oberon_attack1_sound
    
precache_sound(oberon_attack2_sound
    
precache_sound(oberon_berserk_attack1_sound
    
precache_sound(oberon_berserk_attack2_sound
    
precache_sound(oberon_berserker_sound
    
precache_sound(oberon_attack_hole_sound
    
precache_sound(oberon_bomb_sound
    
precache_sound(oberon_jump_sound
    
precache_sound(oberon_jumpdamage_sound
    
precache_sound(oberon_bjump_sound
    
precache_sound(oberon_bjumpdamage_sound

     
    for(new 
0sizeof(skill_tentacle); i++)  
    {  
        
engfunc(EngFunc_PrecacheModelskill_tentacle[i])  
    }      
     
    if(
g_npc_id != -1
    { 
        
set_npc_data(g_npc_idDATA_HEALTHOBERON_HEALTH
        
set_npc_data(g_npc_idDATA_SPEED250.0
        
set_npc_data(g_npc_idDATA_ATTACK99.0
        
set_npc_data(g_npc_idDATA_KNOCKBACK0.0
        
set_npc_data(g_npc_idDATA_ANI_DEATH_HEADSHOT20.0
        
set_npc_data(g_npc_idDATA_ANI_DEATH_NORMAL_SIMPLE20.0
        
set_npc_data(g_npc_idDATA_ANI_DEATH_NORMAL_BACK20.0
        
set_npc_data(g_npc_idDATA_ANI_DEATH_NORMAL_FORWARD20.0
        
set_npc_data(g_npc_idDATA_ANI_DEATH_NORMAL_SPECIAL20.0
        
set_npc_data(g_npc_idDATA_ANI_ATTACKED2.0
        
set_npc_data(g_npc_idDATA_ANI_IDLE2.0
        
set_npc_data(g_npc_idDATA_ANI_MADNESS2.0)//10.0) 
        
set_npc_data(g_npc_idDATA_ANI_ATTACK6.0
        
set_npc_data(g_npc_idDATA_ANI_RUN4.0
        
set_npc_data(g_npc_idDATA_ANI_WALK3.0
        
set_npc_data(g_npc_idDATA_EVENTEVENT_SLEEP
        
set_npc_data(g_npc_idDATA_ATTACK_RELOADING2.7
        
set_npc_data(g_npc_idDATA_MODEL_INDEXfloat(g_class_modelindex)) 
        
set_npc_data(g_npc_idDATA_ATTACK_WAITTIMEOBERON_ATTACK_WAITIME
        
set_npc_data(g_npc_idDATA_ATTACK_DISTANCE250.0
         
        
// New! Set Size! 
        
set_npc_data(g_npc_idDATA_MIN_MAX_XY_MIN, -100.0
        
set_npc_data(g_npc_idDATA_MIN_MAX_XY_MAX100.0
        
set_npc_data(g_npc_idDATA_MIN_MAX_Z_MIN, -30.0
        
set_npc_data(g_npc_idDATA_MIN_MAX_Z_MAX100.0

        
// Berserker ability.. 
        
set_npc_data(g_npc_idDATA_MADANI_ATTACK14.0
        
set_npc_data(g_npc_idDATA_MADANI_ATTACK_TIME1.8
        
set_npc_data(g_npc_idDATA_MADANI_ATTACK_WAIT2.0
        
set_npc_data(g_npc_idDATA_MADANI_IDLE12.0
        
set_npc_data(g_npc_idDATA_MADANI_WALK13.0
        
set_npc_data(g_npc_idDATA_MADANI_RUN13.0
         
        
set_npc_model(g_npc_idg_class_pmodel
    } 



public 
Check_Map() 

    new 
MapName[64
    
get_mapname(MapName63
    if(
contain(MapName"npc_dangerous" ) == -1
    { 
        
server_cmd("mp_roundtime 6"
        
server_cmd("mp_autoteambalance 1"
        
server_cmd("mp_limitteams 1"
        
pause("ad"
    } 
    else 
    { 
        
server_cmd("mp_roundtime 9"
        
server_cmd("mp_autoteambalance 0"
        
server_cmd("mp_limitteams 0"
        new 
bz FindBuyZones( ) 
        new 
Float:absmin[3] = {-8191.0, -8191.0, -8191.0
        new 
Float:absmax[3] = {8191.08191.08191.0
        if ( !
bz 
        { 
            new 
buyzone create_entity("func_buyzone"// create buyzone entity and set it max size of map 
            
DispatchSpawn(buyzone
            
entity_set_size(buyzoneabsminabsmax
        } 
        else 
        { 
            
entity_set_size(bzabsminabsmax
        } 
    } 



public 
oberon_berser_effects(ent2

    if ( !
g_berserker[ent2] ) 
        return 
     
    new 
ent create_entity("info_target"
     
    static 
Float:Origin[3], Float:Angles[3
    
pev(ent2pev_originOrigin
    
pev(ent2pev_anglesAngles
         
    
entity_set_origin(entOrigin
    
entity_set_vector(entEV_VEC_anglesAngles
         
    
entity_set_string(ent,EV_SZ_classname"knife_effect"
    
entity_set_model(entoberon_knife_effect
    
entity_set_int(entEV_INT_solidSOLID_NOT
    
entity_set_int(entEV_INT_movetypeMOVETYPE_NONE
         
    new 
Float:maxs[3] = {40.040.01.0
    new 
Float:mins[3] = {-40.0, -40.0, -1.0
    
entity_set_size(entminsmaxs
         
    
drop_to_floor(ent
         
    
set_task(1.0"remove_knife_effect"ent+TASK_EFFECT


public 
remove_knife_effect(ent

    
ent -= TASK_EFFECT 
    
if ( pev_valid(ent) ) 
        
remove_entity(ent

indradullanov is offline
Send a message via Yahoo to indradullanov
baneado
Veteran Member
Join Date: Dec 2012
Location: amxmodx-es.com
Old 07-08-2013 , 09:54   Re: coordination
Reply With Quote #2

search create_entity in the plugin
baneado is offline
Reply



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

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

Forum Jump


All times are GMT -4. The time now is 06:27.


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