Jak sprawić, by spadł?
GoldeN
10.02.2011
Witam. Jak zrobić, aby ten model spadał z wysokości 300.0 na ziemie?
Użytkownik GoldeN edytował ten post 10.02.2011 19:52
public glaz(id)
{
new Float:origin[3], Float:angle[3];
entity_get_vector(id,EV_VEC_origin,origin)
new ent = create_entity("info_target")
entity_set_origin(ent,origin);
entity_set_float(ent,EV_FL_takedamage,DAMAGE_NO)
entity_set_float(ent,EV_FL_health,100.0)
entity_get_vector(id, EV_VEC_angles, angle);
angle[0] = 0.0;
entity_set_vector(ent, EV_VEC_angles, angle);
entity_set_string(ent,EV_SZ_classname,"glaz");
entity_set_model(ent,"models/big_rock.mdl");
entity_set_int(ent,EV_INT_solid, SOLID_NOT)
entity_set_byte(ent,EV_BYTE_controller1,125);
entity_set_byte(ent,EV_BYTE_controller2,125);
entity_set_byte(ent,EV_BYTE_controller3,125);
entity_set_byte(ent,EV_BYTE_controller4,125);
new Float:maxs[3] = {16.0,16.0,36.0}
new Float:mins[3] = {-16.0,-16.0,-36.0}
entity_set_size(ent,mins,maxs)
entity_set_float(ent,EV_FL_animtime,2.0)
entity_set_float(ent,EV_FL_framerate,1.0)
entity_set_int(ent,EV_INT_sequence,0);
drop_to_floor(ent)
}
Użytkownik GoldeN edytował ten post 10.02.2011 19:52
mgr inż. Pavulon
10.02.2011
Na ten przykład:
entity_set_int(ent, EV_INT_movetype, MOVETYPE_BOUNCE)ale może inny movetype będzie cie zadowalał.
DarkGL
10.02.2011
#include <xs>
public glaz(id)
{
new Float:fStartOrigin[3],Float:fEndOrigin[3] Float:fAngle[3];
entity_get_vector(id,EV_VEC_origin,fStartOrigin)
xs_vec_copy(fStartOrigin,fEndOrigin)
fEndOrigin[2] += 300.0;
new Float:fRet[3];
new trace = fm_trace_line(id,fStartOrigin,fEndOrigin,fRet)
if(trace){
return PLUGIN_CONTINUE;
}
new ent = create_entity("info_target")
entity_set_origin(ent,origin);
entity_set_float(ent,EV_FL_takedamage,DAMAGE_NO)
entity_set_float(ent,EV_FL_health,100.0)
entity_get_vector(id, EV_VEC_angles, fAngle);
fAngle[0] = 0.0;
entity_set_vector(ent, EV_VEC_angles, fAngle);
entity_set_string(ent,EV_SZ_classname,"glaz");
entity_set_model(ent,"models/big_rock.mdl");
entity_set_int(ent,EV_INT_solid, SOLID_NOT)
entity_set_int(ent,EV_INT_movetype,MOVETYPE_TOSS)
entity_set_int(ent,EV_FL_gravity,1.0)
entity_set_byte(ent,EV_BYTE_controller1,125);
entity_set_byte(ent,EV_BYTE_controller2,125);
entity_set_byte(ent,EV_BYTE_controller3,125);
entity_set_byte(ent,EV_BYTE_controller4,125);
new Float:maxs[3] = {16.0,16.0,36.0}
new Float:mins[3] = {-16.0,-16.0,-36.0}
entity_set_size(ent,mins,maxs)
entity_set_float(ent,EV_FL_animtime,2.0)
entity_set_float(ent,EV_FL_framerate,1.0)
entity_set_int(ent,EV_INT_sequence,0);
return PLUGIN_CONTINUE;
}
stock fm_trace_line(ignoreent, const Float:start[3], const Float:end[3], Float:ret[3]){
engfunc(EngFunc_TraceLine, start, end, ignoreent == -1 ? 1 : 0, ignoreent, 0);
new ent = get_tr2(0, TR_pHit);
get_tr2(0, TR_vecEndPos, ret);
return pev_valid(ent) ? ent : 0;
}
GoldeN
10.02.2011
#include <xs>
public glaz(id)
{
new Float:fStartOrigin[3],Float:fEndOrigin[3] Float:fAngle[3];
entity_get_vector(id,EV_VEC_origin,fStartOrigin)
xs_vec_copy(fStartOrigin,fEndOrigin)
fEndOrigin[2] += 300.0;
new Float:fRet[3];
new trace = fm_trace_line(id,fStartOrigin,fEndOrigin,fRet)
if(trace){
return PLUGIN_CONTINUE;
}
new ent = create_entity("info_target")
entity_set_origin(ent,origin);
entity_set_float(ent,EV_FL_takedamage,DAMAGE_NO)
entity_set_float(ent,EV_FL_health,100.0)
entity_get_vector(id, EV_VEC_angles, fAngle);
fAngle[0] = 0.0;
entity_set_vector(ent, EV_VEC_angles, fAngle);
entity_set_string(ent,EV_SZ_classname,"glaz");
entity_set_model(ent,"models/big_rock.mdl");
entity_set_int(ent,EV_INT_solid, SOLID_NOT)
entity_set_int(ent,EV_INT_movetype,MOVETYPE_TOSS)
entity_set_int(ent,EV_FL_gravity,1.0)
entity_set_byte(ent,EV_BYTE_controller1,125);
entity_set_byte(ent,EV_BYTE_controller2,125);
entity_set_byte(ent,EV_BYTE_controller3,125);
entity_set_byte(ent,EV_BYTE_controller4,125);
new Float:maxs[3] = {16.0,16.0,36.0}
new Float:mins[3] = {-16.0,-16.0,-36.0}
entity_set_size(ent,mins,maxs)
entity_set_float(ent,EV_FL_animtime,2.0)
entity_set_float(ent,EV_FL_framerate,1.0)
entity_set_int(ent,EV_INT_sequence,0);
return PLUGIN_CONTINUE;
}
stock fm_trace_line(ignoreent, const Float:start[3], const Float:end[3], Float:ret[3]){
engfunc(EngFunc_TraceLine, start, end, ignoreent == -1 ? 1 : 0, ignoreent, 0);
new ent = get_tr2(0, TR_pHit);
get_tr2(0, TR_vecEndPos, ret);
return pev_valid(ent) ? ent : 0;
}
Zmieniłem z:
entity_set_int(ent,EV_FL_gravity,1.0)
Na:
entity_set_int(ent,EV_FL_gravity,1)
Ale wogóle. nie wyświetla się efekt.
@Edit:
Pojawia się, ale na ziemi i w dużej odległości od gracza.
Użytkownik GoldeN edytował ten post 10.02.2011 20:40
GoldeN
10.02.2011
Okej, ale ten model nie ląduje centralnie na ziemi, tylko na wysokości głowy.
GoldeN
11.02.2011
powinno byc
entity_set_float(ent, EV_FL_gravity, 1.0)
dziwne
Ale wyskakuj tag mistmatch, a jak zrobić, aby ten model był na ziemi?
I drugie pytanie, jak mogę zrobić, aby model podążał za kimś?