Raised This Month: $535 Target: $400
 133% 

weird errors - invalid return values


Post New Thread Reply   
 
Thread Tools Display Modes
VoivoDpl
Junior Member
Join Date: Apr 2017
Old 05-16-2017 , 22:28   Re: weird errors - invalid return values
Reply With Quote #11

Found out that i need to "Spawn" the entity and then cannot set it to move_follow. This works somehow, and I'm developing the plugin further.
VoivoDpl is offline
VoivoDpl
Junior Member
Join Date: Apr 2017
Old 05-20-2017 , 21:32   Re: weird errors - invalid return values
Reply With Quote #12

I need to write "physics engine" for the smoke cause it stucks on the floor and no entvars can fix it. Heres how it looks. On certain direction it just bounces back - have hard time to get to the reason.

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fakemeta_util>
#include <xs>
#include <float>
#include <voi_pub1>
#include <Vexd_Utilities>
//#include <bmod>
#define PLUGIN    "Smoke Room"
#define AUTHOR    "Voi"
#define VERSION    "0.5"
#define SMOKE_THINKER 666
#define SMOKE_SPRITE 667
#define WIND_TASKID 23134
new Float:SMOKE_SIZE_MIN[3] = {-50.0, -50.0, -15.0}
new 
Float:SMOKE_SIZE_MAX[3] = {50.050.015.0}
new 
gun_smoke_spr 
new Float:windvelocity[3]
new 
windforce
new smokeamount
new smokeradius
new directsmoke
new const room_smoke_spr[] =  "sprites/voi/smoke_room17.spr"  
public plugin_init()
{
    
windforce register_cvar("smoke_windforce""25"//Controls the force of the wind.
    
smokeamount register_cvar("smoke_amount""0.5"//Base scale of smoke sprite.
    
smokeradius register_cvar("smoke_radius""32"//Minimum radius between creation of new smoke sprites.
    
directsmoke register_cvar("smoke_direct""1"//Direct weapon smoke sprite - currently very fps consuming.
    
register_forward(FM_Think,"smoke_think",0)
    
//register_think("env_sprite", "sprite_think")
    
register_clcmd("say /test","fire")
    
register_plugin(PLUGINVERSIONAUTHOR)
    
// Add your own code here
    
wind_change()
}
public 
plugin_precache()
{
    
gun_smoke_spr  precache_model"sprites/rifle_smoke3.spr" );
    
    
precache_model(room_smoke_spr)
}
public 
fire(id)
{
    new 
Float:gunpos[3], stringClassname[24]
    
//ExecuteHam(Ham_Player_GetGunPosition, id, gunpos)
    
    
new Float:origin[3]
    
//pev(id, pev_origin, origin)
    
UTIL_GetGunPosition_voiidorigin )
    new 
foundeIndex[2]
    new 
entity = -1
    
if(get_pcvar_float(directsmoke))
    {
        
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYorigin0)
        
write_byte(TE_SPRITE
        
engfuncEngFunc_WriteCoordorigin] );
        
engfuncEngFunc_WriteCoordorigin] );
        
engfuncEngFunc_WriteCoordorigin] );
        
write_short(gun_smoke_spr// sprite
        
write_byte(1)           // Count   
        
write_byte(3)           // Count      
        
message_end()
    }
    
/*engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
    write_byte(TE_ARMOR_RICOCHET)
    engfunc( EngFunc_WriteCoord, origin[ 0 ] );
    engfunc( EngFunc_WriteCoord, origin[ 1 ] );
    engfunc( EngFunc_WriteCoord, origin[ 2 ] );
    write_byte(1)
    message_end()*/
    //client_print(id, print_chat, "DEBUG: fire!(CHECKING FOR SMOKE)")
    
while( (entity fm_find_ent_in_sphere(entityoriginget_pcvar_float(smokeradius))) > 0)
    {
        if(!
fm_is_valid_ent(entity))    
            continue
        
//pev(entity, pev_classname, stringClassname, charsmax(stringClassname))
        //client_print(id, print_chat, "DEBUG: CLASSNAME = %s", stringClassname)
        //
        //if( equali("info_target", stringClassname) && pev(entity, pev_iuser4) == 666 )
        
if(pev(entitypev_iuser4) == SMOKE_SPRITE )
        {
            
/*new check
            pev(entity, pev_iuser4, check)
            if(check != 666)
                continue*/
            
found += 1
            
if(found == 1)
                
eIndex[0] = entity
            
else if(found == 2)
                
eIndex[1] = entity
            
//client_print(id, print_chat, "DEBUG: SMOKE FOUND! %i %s, eIndex[0] = %i, eIndex[1] = %i iuser4 =%i iuser2=%i found=%i", entity, stringClassname, eIndex[0],eIndex[1],pev(entity, pev_iuser4), pev(entity, pev_iuser2), found )
        
}    
        
    }  
    if(!
found)
    {
        
//client_print(id, print_chat, "DEBUG: SMOKE NOT FOUND - CREATING NEW SMOKE!, found = %i",found)
        
create_room_smoke(id)
    }
    else
    {
        new 
Float:Eorigin1[3], Float:Eorigin2[3]
        if(
eIndex[0])
            
pev(eIndex[0], pev_originEorigin1)
        if(
eIndex[1])
            
pev(eIndex[1], pev_originEorigin2)
        if(
get_distance_f(originEorigin1) > get_distance_f(originEorigin2) && eIndex[1])
            
smoke_increase(ideIndex[1])
        else if(
eIndex[0])
            
smoke_increase(ideIndex[0])
    }
}
public 
create_room_smoke(id)
{
    
/*new iEntO = fm_create_entity("info_target")
    if(!pev_valid(iEntO))
    {
        return
    }
    
    set_pev(iEntO, pev_classname, "info_target")
    engfunc(EngFunc_SetOrigin, iEntO, origin);
    set_pev(iEntO, pev_movetype, MOVETYPE_BOUNCEMISSILE)
    set_pev(iEntO, pev_solid, SOLID_TRIGGER)
    set_pev(iEntO, pev_iuser4, SMOKE_THINKER )
    set_pev(iEntO, pev_nextthink, get_gametime()+0.1)
    //engfunc(EngFunc_SetSize, iEntO, Float:{64.0, 64.0, 64.0} , Float:{64.0, 64.0, 64.0})*/
    
new iEnt fm_create_entity("info_target")
    
    if(!
pev_valid(iEnt))
    {
        
//server_print("DEBUG: qENTITY = %i", iEnt)
        
return
    }
    
//
    //set_pev(iEnt, pev_iuser2, iEnt)
    
    
    //server_cmd("say DEBUG: iEnt = %i, valid = %i",     pev(iEntO, pev_iuser2), pev_valid(    pev(iEntO, pev_iuser2)))
    
new Float:origin[3]
    
//pev(id, pev_origin, origin)
    
UTIL_GetGunPosition_voiidorigin )
    
set_pev(iEntpev_ownerid)
    
set_pev(iEntpev_classname"info_target")
    
set_pev(iEntpev_spawnflagsSF_SPRITE_STARTON)
    
engfunc(EngFunc_SetOriginiEntorigin);
    
engfunc(EngFunc_SetModeliEntroom_smoke_spr)
    
    
set_pev(iEntpev_scaleget_pcvar_float(smokeamount) * 0.1)
    
    
set_pev(iEntpev_solidSOLID_NOT)
    
set_pev(iEntpev_rendermodekRenderTransAlpha)
    
set_pev(iEntpev_renderamt5.0)
    
set_pev(iEntpev_iuser4SMOKE_SPRITE )
    
//set_pev(iEnt, pev_friction, 999.0)
    //set_pev(iEnt, pev_velocity, {0.0, 0.0, 50.0})
    
set_pev(iEntpev_nextthinkget_gametime()+0.01)
    new 
Float:angles[3]
    switch(
random_num(0,1))
    {
        case 
1:
        {
            
            
xs_vec_set(angles0.0,0.0,180.0)    
        }
    }
    
xs_vec_mul_scalar(anglesrandom_float(0.751.25), angles)
    
set_pev(iEntpev_anglesangles)
    
dllfunc(DLLFunc_Spawn,iEnt)
    
set_pev(iEntpev_movetypeMOVETYPE_NOCLIP )
    
smoke_increase(idiEnt)
    
//new object = bmod_obj_from_ent(iEnt)
    //bmod_obj_assign_ent(object, iEnt)
    //hook entity with bmod object
    //bmod_obj_assign_ent(object, entity);
    //bmod_obj_update_pos(object);
    //set_pev(iEnt, pev_aiment, iEntO)
}
public 
smoke_increase(idiEnt)
{
    new 
Float:scaleFloat:renderamtFloat:entityvelocity[3], Float:playervelocity[3], Float:gunvelocity[3]
    
    
pev(idpev_velocityplayervelocity)
    
pev(iEntpev_velocityentityvelocity)
    
velocity_by_aim(id250gunvelocity)
    
xs_vec_add(gunvelocityplayervelocityplayervelocity)
    
xs_vec_mul_scalar(playervelocity0.01playervelocity)
    
xs_vec_add(entityvelocityplayervelocityentityvelocity)
    
    
set_pev(iEntpev_velocityentityvelocity)
    
//client_print(id, print_chat, "DEBUG: SMOKE VELOCITY ADDED = %f %f %f", entityvelocity[0], entityvelocity[1], entityvelocity[2])
    
    
    
pev(iEntpev_scalescale)
    
pev(iEntpev_renderamtrenderamt)
    
    
    
scale += 0.005
    renderamt 
+= 1.0
    floatclamp
(renderamt0.0255.0)
    
set_pev(iEntpev_scalescale)
    
set_pev(iEntpev_renderamtrenderamt)
    
    
//set_pev(id, pev_velocity, entityvelocity)
    
    
return FMRES_IGNORED
}


public 
smoke_think(iEnt)
{
    if(!
fm_is_valid_ent(iEnt) )
        return 
FMRES_IGNORED
    
new smoke_id pev(iEntpev_iuser4)
    
//if(smoke_id)
    //server_print("DEBUG: SMOKE THINK ENTITY = %i, SMOKE ID = %i, SPRITE ID =%i", iEntO, smoke_id, iEnt)
    
if ( smoke_id == SMOKE_THINKER)
    {
        
        
set_pev(iEntpev_nextthinkget_gametime()+0.01)
        
smoke_id pev(iEntpev_iuser4)
    }
    if(
smoke_id == SMOKE_SPRITE)
    {
        new 
Float:renderamtFloat:origin[3], Float:scaleFloat:velocity[3], Float:velocity_old[3], num_pushFloat:time_pushFloat:time_push_smallnum_push_smallFloat:size_min[3], Float:size_max[3]
        
pev(iEntpev_scalescale)
        
pev(iEntpev_renderamtrenderamt)
        
pev(iEntpev_velocityvelocity)
        
pev(iEntpev_originorigin)
        
pev(iEntpev_fuser2time_push)
        
pev(iEntpev_fuser3time_push_small)
        
pev(iEntpev_fuser4velocity_old)
        
//pev(iEnt, pev_maxs, size_max)
        //pev(iEnt, pev_mins, size_min)
        //if(!time_push)
        //    time_push = get_gametime()
        //if(!time_push_small)
        //    time_push_small = get_gametime()
        
num_push pev(iEntpev_iuser1)
        
num_push_small pev(iEntpev_iuser2)
        
        new 
Float:velocitynoise[3]
        switch(
random_num(1,50))
        {
            case 
24:
            {
                new 
Texture[32], Float:origin[3], Float:direction[3] = {0.0,0.0,400.0}, Float:EndPos[3], TraceHandle
                pev
(iEntpev_originorigin)
                
origin[2] += 60.0
                xs_vec_set
(direction0.0,0.0,400.0)
                
                
xs_vec_mul_scalar(direction8120.0EndPos)
                
                
VectorMAorigin8192.0directionEndPos )
                
engfuncEngFunc_TraceTexturemax0get_tr2TraceHandleTR_pHit ) ) , originEndPosTexturecharsmaxTexture ) );
                
//server_print("DEBUG: TEXTURE = %s", Texture)
                
if(equali(Texture"sky"))
                    
set_pev(iEntpev_iuser31)
                else
                {
                    
                    
xs_vec_set(direction400.0,0.0,0.0)
                    
xs_vec_mul_scalar(direction8120.0EndPos)
                    
engfuncEngFunc_TraceTexturemax0get_tr2TraceHandleTR_pHit ) ) , originEndPosTexturecharsmaxTexture ) );
                    if(
equali(Texture"sky"))
                        
set_pev(iEntpev_iuser31)
                    
                    else
                    {
                        
xs_vec_set(direction, -400.0,0.0,0.0)
                        
xs_vec_mul_scalar(direction8120.0EndPos)
                        
engfuncEngFunc_TraceTexturemax0get_tr2TraceHandleTR_pHit ) ) , originEndPosTexturecharsmaxTexture ) );
                        if(
equali(Texture"sky"))
                            
set_pev(iEntpev_iuser31)
                        
                        else
                        {
                            
xs_vec_set(direction0.0,400.0,0.0)
                            
xs_vec_mul_scalar(direction8120.0EndPos)
                            
engfuncEngFunc_TraceTexturemax0get_tr2TraceHandleTR_pHit ) ) , originEndPosTexturecharsmaxTexture ) );
                            if(
equali(Texture"sky"))
                                
set_pev(iEntpev_iuser31)
                            
                            else
                            {
                                
xs_vec_set(direction0.0,-400.0,0.0)
                                
xs_vec_mul_scalar(direction8120.0EndPos)
                                
engfuncEngFunc_TraceTexturemax0get_tr2TraceHandleTR_pHit ) ) , originEndPosTexturecharsmaxTexture ) );
                                if(
equali(Texture"sky"))
                                    
set_pev(iEntpev_iuser31)
                                else
                                    
set_pev(iEntpev_iuser30)
                            }
                        }
                    }
                }
                
            }
        }
        if(
num_push 10 && get_gametime() > time_push)
        {
            
            
            
num_push += 1
            set_pev
(iEntpev_iuser1num_push)
            new 
Float:windvelocity_calc[3]
            if(
pev(iEntpev_iuser3) == 1// IF ITS OUTDOOR
                
xs_vec_mul_scalar(windvelocityget_pcvar_float(windforce), windvelocity_calc)
            else
                
xs_vec_mul_scalar(windvelocityget_pcvar_float(windforce) * 0.005 + (float(num_push) /200.0), windvelocity_calc)
            
xs_vec_add(velocitywindvelocity_calcvelocity)
        }
        if(
num_push >= 10 && get_gametime() > time_push)
        {
            
            
time_push get_gametime() + 20.0
            set_pev
(iEntpev_fuser2time_push)
            
num_push 0
            set_pev
(iEntpev_iuser1num_push)
        }
        if(
num_push_small 10 && get_gametime() > time_push_small)
        {
            
            
            
num_push_small += 1
            set_pev
(iEntpev_iuser2num_push_small)
            new 
Float:windvelocity_calc[3]
            
            
            
xs_vec_set(velocitynoiserandom_float(-100.0100.0),random_float(-100.0100.0),random_float(-100.0100.0))
            if(
pev(iEntpev_iuser3) != 1// IF ITS OUTDOOR
                
xs_vec_mul_scalar(windvelocityget_pcvar_float(windforce) * 0.005 + (float(num_push_small) /200.0), windvelocity_calc)
            
xs_vec_mul_scalar(velocitynoise0.01 velocitynoise)
            
xs_vec_add(velocitywindvelocity_calcvelocity)
        }
        if(
num_push_small >= 10 && get_gametime() > time_push_small)
        {
            
            
time_push_small get_gametime() + random_float(0.11.0)
            
set_pev(iEntpev_fuser3time_push_small)
            
num_push_small 0
            set_pev
(iEntpev_iuser2num_push_small)
        }
        
xs_vec_mul_scalar(velocity0.99velocity)
        
renderamt -= 0.1 0.0001 floatabs(xs_vec_len(velocity))
        if(
renderamt 0.3)
        {
            
fm_remove_entity(iEnt)
            return 
FMRES_IGNORED
        
}
        
scale += 0.001 0.0001 floatabs(xs_vec_len(velocity))
        
//new Float:angles[3]
        //xs_vec_set(angles, random_float(-100.0, 100.0),random_float(-100.0, 100.0),random_float(-100.0, 100.0))
        //set_pev(iEnt, pev_angles, angles)
        
xs_vec_mul_scalar(SMOKE_SIZE_MAXscalesize_max)
        
xs_vec_mul_scalar(SMOKE_SIZE_MINscalesize_min)
        new 
Float:scan_point[3], direction
        
        
new Float:speed = (velocity[0] + velocity[1] + velocity[2])
        
        new 
Float:angle[3], found
        
        check_direction
(iEnt1DIRECTION_NONEvelocityoriginanglescan_point)
        
        
        if(
fm_point_contents(scan_point) == CONTENTS_SOLID)
        {
            
            
            
            
            
//angle[0] = 35.0
            
check_direction(iEnt1DIRECTION_UPvelocityoriginanglescan_point)
            
//client_print(pev(iEnt, pev_owner), print_chat, "DEBUG: SMOKE CHECKING DIRECTION UP sp = %f %f %f", scan_point[0], scan_point[1], scan_point[2])
            
if(fm_point_contents(scan_point) == CONTENTS_SOLID)
            {
                
                
//angle[0] = 70.0
                
check_direction(iEnt1DIRECTION_UPvelocityoriginanglescan_point)
                
//client_print(pev(iEnt, pev_owner), print_chat, "DEBUG: SMOKE CHECKING DIRECTION UP sp = %f %f %f", scan_point[0], scan_point[1], scan_point[2])
                
if(fm_point_contents(scan_point) == CONTENTS_SOLID)
                {
                    
//angle[0] = -35.0
                    
check_direction(iEnt1DIRECTION_DOWNvelocityoriginanglescan_point)
                    
//client_print(pev(iEnt, pev_owner), print_chat, "DEBUG: SMOKE CHECKING DIRECTION DOWN sp = %f %f %f", scan_point[0], scan_point[1], scan_point[2])
                    
if(fm_point_contents(scan_point) == CONTENTS_SOLID)
                    {
                        
//angle[0] = -70.0
                        
check_direction(iEnt1DIRECTION_DOWNvelocityoriginanglescan_point)
                        
//client_print(pev(iEnt, pev_owner), print_chat, "DEBUG: SMOKE CHECKING DIRECTION DOWN sp = %f %f %f", scan_point[0], scan_point[1], scan_point[2])
                        
if(fm_point_contents(scan_point) == CONTENTS_SOLID)
                        {
                        }
                        else if(!
found)
                        {
                            
check_direction(iEnt0DIRECTION_DOWNvelocityoriginanglescan_point)
                            
found 1
                            
//xs_vec_sub(scan_point, origin,scan_point)
                            
xs_vec_mul_scalar(scan_pointspeed/50.0velocity)
                            
                        }    
                    }
                    else if(!
found)
                    {
                        
check_direction(iEnt0DIRECTION_DOWNvelocityoriginanglescan_point)
                        
found 1
                        
//xs_vec_sub(scan_point, origin,scan_point)
                        
xs_vec_mul_scalar(scan_pointspeed/50.0velocity)
                        
                    }
                }
                else if(!
found)
                {
                    
check_direction(iEnt0DIRECTION_UPvelocityoriginanglescan_point)
                    
found 1
                    
//xs_vec_sub(scan_point, origin, scan_point)
                    
xs_vec_mul_scalar(scan_pointspeed/50.0velocity)
                }
                
            }
            
            else if(!
found)
            {
                
check_direction(iEnt0DIRECTION_UPvelocityoriginanglescan_point)
                
found 1
                
//xs_vec_mul_scalar(scan_point, speed * 0.04, velocity)
                //xs_vec_sub(scan_point, origin,scan_point)
                
xs_vec_mul_scalar(scan_pointspeed/50.0velocity)
                
            }
            
            
//client_print(pev(iEnt, pev_owner), print_chat, "DEBUG: smoke speed %f, direction %f %f %f", speed,  scan_point[0], scan_point[1], scan_point[2])
            
            
        
}
        
set_pev(iEntpev_fuser4velocity)
        
xs_vec_mul_scalar(velocity0.75velocity)
        
xs_vec_mul_scalar(velocity_old0.25velocity_old)
        
xs_vec_add(velocityvelocity_oldvelocity)
        
set_pev(iEntpev_velocityvelocity)
        
set_pev(iEntpev_scalescale)
        
set_pev(iEntpev_renderamtrenderamt)
        
engfunc(EngFunc_SetSizeiEntSMOKE_SIZE_MIN SMOKE_SIZE_MAX)
        
set_pev(iEntpev_nextthinkget_gametime()+0.1)
        
//debug_gunshot(iEnt)
        //client_print(pev(iEnt, pev_owner), print_chat, "DEBUG: smoke size_max = %f %f %f",size_max[0],size_max[1],size_max[2])
        //client_print(pev(iEnt, pev_owner), print_chat, "DEBUG: SMOKE np = %i, tp = %f, nps = %i, tps = %f, v=|%i|%i|%i|, vn=|%i|%i|%i|, out=%i", num_push, time_push, num_push_small, time_push_small, floatround(velocity[0]), floatround(velocity[1]), floatround(velocity[2]), floatround(velocitynoise[0]), floatround(velocitynoise[1]), floatround(velocitynoise[2]), pev(iEnt, pev_iuser3))
    
}
    return 
FMRES_IGNORED
}
stock check_direction(iEntaddorigindirectionFloat:velocity[3], Float:origin[3], Float:angle[3], Float:scan_point[3])
{
    new 
Float:scan_point_dir[3], Float:oldangle[3], Float:scan_point2[3]
    
xs_vec_copy(velocityscan_point_dir)
    
vector_to_angle(scan_point_dirangle)
    switch(
direction)
    {
        case 
DIRECTION_UP:
            
    {
        
angle[0] += 15.0
        
if(angle[0] > 360.0)
            
angle[0] -=360.0
        
}
        case 
DIRECTION_DOWN:
        {
            
angle[0] -= 15.0
            
if(angle[0] < 0.0)
                
angle[0] +=360.0
        
}
        case 
DIRECTION_LEFT:
            
    {
        
angle[1] += 15.0
        
if(angle[1] > 360.0)
            
angle[1] -=360.0
        
}
        case 
DIRECTION_RIGHT:
        {
            
angle[1] -= 15.0
            
if(angle[1] < 0.0)
                
angle[1] +=360.0
        
}
    }
    
//xs_vec_add(oldangle, angle, angle)
    //if(direction == DIRECTION_DOWN || direction == DIRECTION_UP)
    
angle[0] *= -1.0
    
    
///angle[1] = floatabs(angle[1]) - (-angle[1] * 2.0)
    //angle[2] = floatabs(angle[2])
    
angle_vector(angleANGLEVECTOR_FORWARDscan_point)
    
//scan_point[0] = floatabs(scan_point[0]) - (-scan_point[0] * 2.0)
    
    
xs_vec_mul_scalar(scan_point50.0scan_point)
    
//if(!inv)
    //client_print(pev(iEnt, pev_owner), print_chat, "DEBUG: SMOKE o=%f %f %f oa=%f %f %f a=%f %f %f", origin[0], origin[1], origin[2], angle[0], angle[1], angle[2], oldangle[0], oldangle[1], oldangle[2])
    
if(addorigin)
    {
        
xs_vec_add(originscan_point,scan_point)
        
//debug_gunshot_origin(scan_point)
        //    client_print(pev(iEnt, pev_owner), print_chat, "DEBUG: SMOKE o=%f %f %f a=%f %f %f sp=%f %f %f", origin[0], origin[1], origin[2], angle[0], angle[1], angle[2], scan_point[0],scan_point[1], scan_point[2])
    
}
    else
        
    
//debug_gunshot(iEnt)
    
    
return 1
}

public 
debug_gunshot(iEnt)
{
    new 
Float:origins[3]
    
pev(iEntpev_originorigins)
    
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY)
    
write_byte(TE_GUNSHOT)
    
write_coord(floatround(origins[0]))    // start position
    
write_coord(floatround(origins[1]))
    
write_coord(floatround(origins[2]))
    
message_end()
}
public 
debug_gunshot_origin(Float:origin[3])
{
    
    
    
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY)
    
write_byte(TE_GUNSHOT)
    
write_coord(floatround(origin[0]))    // start position
    
write_coord(floatround(origin[1]))
    
write_coord(floatround(origin[2]))
    
message_end()
}
public 
wind_change()
{
    
xs_vec_set(windvelocityrandom_float(-4.0,4.0), random_float(-4.0,4.0), 0.1)
    
set_task(random_float(10.0,20.0), "wind_change"WIND_TASKID)

Attached Files
File Type: sma Get Plugin or Get Source (voi_smoke_room.sma - 225 views - 18.1 KB)
File Type: zip smoke_roomv0.5.zip (32.5 KB, 27 views)
VoivoDpl is offline
Reply


Thread Tools
Display Modes

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 19:35.


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