Raised This Month: $ Target: $400
 0% 

help with adding new entity think


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
avril-lavigne
Banned
Join Date: Apr 2009
Old 03-07-2013 , 06:52   help with adding new entity think
Reply With Quote #1

help me smart guyZ. in create_lasermine i need new think for vectors because when mine is active the vector is immobile.I need to update it each second . in Mine_Activate func there is nextthink stuff> I tried to add it to create lasermine but without success


these vectors

PHP Code:
         vBeamEnd[0] = vNewOrigin[0] + random_num(-150,150)
        
vBeamEnd[1] = vNewOrigin[1] + 150
        vBeamEnd
[2] = vNewOrigin[2] + 150

                
new Float:vTracedBeamEnd[3]
                
trace_line(-1vNewOriginvBeamEndvTracedBeamEnd)
                
entity_set_vector(MineEV_VEC_vuser1vTracedBeamEnd
I need to set that vector each second it should use new direction each time (update itselft with random_num(-150,150)


PHP Code:
public Create_Mine(id)
{
    
    
    
    new 
Mine create_entity("info_target")
    if(
is_valid_ent(Mine))  
    {
        if(
g_PlayerMines[id] <= 0) {
             
client_print(id,3,"You have reached the maximum")
             return 
PLUGIN_HANDLED_MAIN
                  
}
        
entity_set_string(MineEV_SZ_classname"lasermine")
        
entity_set_int(MineEV_INT_movetypeMOVETYPE_FLY)
        
entity_set_int(MineEV_INT_solidSOLID_NOT)
        
entity_set_model(Mine"models/v_tripmine.mdl")
    
        
entity_set_float(MineEV_FL_frame0.0)
        
entity_set_int(MineEV_INT_body3)
        
entity_set_int(MineEV_INT_sequence7)
        
entity_set_float(MineEV_FL_framerate0.0)

        
entity_set_float(MineEV_FL_takedamage1.0)
        
entity_set_float(MineEV_FL_dmg100.0)
        
entity_set_float(MineEV_FL_healthfloat(MINE_HEALTH))

        
entity_set_int(MineEV_INT_iuser20)

        new 
Float:MinBox[3] = {-8.0, -8.0, -8.0}
        new 
Float:MaxBox[3] = {8.08.08.0}
        
entity_set_size(MineMinBoxMaxBox)

        new 
Float:vOrigin[3]
        
entity_get_vector(idEV_VEC_originvOrigin)
        
        new 
Float:flVelocity[3]
        
VelocityByAim(id64flVelocity)

        new 
Float:vTraceEnd[3]
        
vTraceEnd[0] = flVelocity[0] + vOrigin[0]
        
vTraceEnd[1] = flVelocity[1] + vOrigin[1]
        
vTraceEnd[2] = flVelocity[2] + vOrigin[2]

        new 
Float:vTraceResult[3]
        
trace_line(idvOriginvTraceEndvTraceResult)

        new 
Float:vNormal[3]
        if(
trace_normal(idvOriginvTraceEndvNormal) < 1)
        {
            
remove_entity(Mine)
            
client_print(idprint_chat"You must plant the Laser mine on a wall")
            return 
PLUGIN_HANDLED_MAIN
        
}
        
        new 
Float:vNewOrigin[3]
        
        
vNewOrigin[0] = vTraceResult[0] + (vNormal[0] * 8.0)
        
vNewOrigin[1] = vTraceResult[1] + (vNormal[1] * 8.0)
        
vNewOrigin[2] = vTraceResult[2] + (vNormal[2] * 8.0)
        
        
entity_set_origin(MinevNewOrigin)
        
        new 
Float:vMineAngles[3]
        
vector_to_angle(vNormalvMineAngles)    
        
entity_set_vector(MineEV_VEC_anglesvMineAngles)
        
        new 
Float:vBeamEnd[3]
        
        
        
vBeamEnd[0] = vNewOrigin[0] + random_num(-150,150)
        
vBeamEnd[1] = vNewOrigin[1] + 150
        vBeamEnd
[2] = vNewOrigin[2] + 150
        
        
new Float:vTracedBeamEnd[3]
        
trace_line(-1vNewOriginvBeamEndvTracedBeamEnd)
        
entity_set_vector(MineEV_VEC_vuser1vTracedBeamEnd)
        
        
emit_sound(MineCHAN_WEAPON"weapons/mine_deploy.wav"1.0ATTN_NORM0PITCH_NORM)
        
emit_sound(MineCHAN_ITEM"weapons/mine_charge.wav"1.0ATTN_NORM0PITCH_NORM)
        
        new 
PlayerTeam get_user_team(id)
        
entity_set_int(MineMINE_INT_TEAMPlayerTeam)
        
entity_set_int(MineMINE_OWNERid)
        
        
client_print(idprint_chat"Planted mine")
        
client_print(idprint_chat"%d mines left"g_PlayerMines[id] - 1)
        
g_PlayerMines[id] -= 1
    
        
new param[1]
        
param[0] = Mine
        set_task
(1.5"Mine_Activate"0param1)    
    }
    return 
PLUGIN_HANDLED_MAIN
}



public 
Mine_Activate(param[]) 
{
    new 
Mine param[0]
    if(
is_valid_ent(Mine)) 
    {
        
entity_set_int(MineEV_INT_iuser21)
        
entity_set_int(MineEV_INT_solid2)
        
entity_set_float(MineEV_FL_nextthinkhalflife_time() + 0.1)
        
emit_sound(MineCHAN_ITEM"weapons/mine_activate.wav"1.0ATTN_NORM0PITCH_NORM)
    }
}



public 
Lasermine_Think(Mine)
{
    if(
is_valid_ent(Mine)) 
    {
        new 
TeamColor[3], MineTeam entity_get_int(MineMINE_INT_TEAM)
        switch(
MineTeam)
        {
            case 
1:
            {
                
TeamColor[0] = 255
                TeamColor
[1] = 0
                TeamColor
[2] = 0
            
}
            case 
2:
            {
                
TeamColor[0] = 0
                TeamColor
[1] = 0
                TeamColor
[2] = 255
            
}
        }
            
        new 
Float:vOrigin[3], Float:vEnd[3]
        
entity_get_vector(MineEV_VEC_originvOrigin)
        
entity_get_vector(MineEV_VEC_vuser1vEnd)
        
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY
        
write_byte(0)
        
write_coord(floatround(vOrigin[0]))
        
write_coord(floatround(vOrigin[1]))
        
write_coord(floatround(vOrigin[2]))
        
write_coord(floatround(vEnd[0]))
        
write_coord(floatround(vEnd[1]))
        
write_coord(floatround(vEnd[2]))
        
write_short(beam)
        
write_byte(0)
        
write_byte(0)
        
write_byte(3)
        
write_byte(5)
        
write_byte(0)
        
write_byte(TeamColor[0])
        
write_byte(TeamColor[1])
        
write_byte(TeamColor[2])
        
write_byte(255)
        
write_byte(0)
        
message_end()
        
        if(
entity_get_int(MineEV_INT_iuser2) == 1
        {    
            if(
entity_get_float(MineEV_FL_health) <= 50) {
                
Detonate_Mine(Mine)
            }
            else
            {
                new 
Float:vOrigin[3], Float:vEnd[3]
                
entity_get_vector(MineEV_VEC_originvOrigin)
                
entity_get_vector(MineEV_VEC_vuser1vEnd)    
                    
                new 
Float:vTrace[3], id trace_line(MinevOriginvEndvTrace)        
                if(
is_user_connected(id) && is_user_alive(id)) 
                {    
                    new 
bool:doDamage
                    
new VictimTeam get_user_team(id)
                    new 
MineTeam entity_get_int(MineMINE_INT_TEAM)
                    new 
FriendlyFire get_cvar_num("mp_friendlyfire"
                    switch(
FriendlyFire)
                    {
                        case 
0:
                        {
                            if(
VictimTeam != MineTeam) {     
                                
doDamage true
                            
} else {
                                
doDamage false
                            
}
                        }
                        case 
1:    doDamage true
                    
}
                                
                    if(
doDamage)
                    {
                        new 
VictimHealth get_user_health(id
                        new 
Damage VictimHealth get_pcvar_num(minedamage)    
                    
                        if(
Damage <= 0
                        {
                            new 
MineOwner entity_get_int(MineMINE_OWNER)
                            
Create_Kill(idMineOwner"Lasermine")
                        }
                        else
                        {
                            
set_user_health(idDamage)
                                
                            
message_begin(MSG_ONE_UNRELIABLEg_msgDamage, {000}, id
                            
write_byte(get_pcvar_num(minedamage))
                            
write_byte(get_pcvar_num(minedamage))
                            
write_long(DMG_ACID)
                            
write_coord(floatround(vOrigin[0]))
                            
write_coord(floatround(vOrigin[1]))
                            
write_coord(floatround(vOrigin[2]))
                            
message_end()
                        }
                        
emit_sound(idCHAN_WEAPON"debris/beamstart9.wav"1.0ATTN_NORM0PITCH_NORM)
                    }
                }
            }
        }
    }
    
entity_set_float(MineEV_FL_nextthinkhalflife_time() + 0.01)

__________________
VDS in Europe 1 gb/s unmetered.Any configurations.
I accept Paypal, Moneybookers,etc

Last edited by avril-lavigne; 03-07-2013 at 07:04.
avril-lavigne is offline
 



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 21:44.


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