Page 1 of 1
set_kvd...
Posted: 2011 Aug 17 01:26
by psychical
Code: Select all
#include <amxmodx>#include <engine>#include <fakemeta> new gi_Fwd; public plugin_precache () gi_Fwd = register_forward ( FM_KeyValue, "Foward_KeyValue" ); public plugin_init() unregister_forward ( gi_Fwd, FM_KeyValue ); public Foward_KeyValue ( const i_Entid, const i_Kvdid ){ if ( pev_valid ( i_Entid ) ) { new s_KeyName[ 12 ], s_KeyValue[ 64 ], s_KeNew[ 64 ], class[16]; get_kvd ( i_Kvdid, KV_KeyName, s_KeyName, charsmax ( s_KeyName ) ); get_kvd ( i_Kvdid, KV_Value, s_KeyValue, charsmax ( s_KeyValue ) ); get_kvd ( i_Kvdid, KV_ClassName, class, charsmax ( class ) ) formatex( s_KeNew, charsmax(s_KeNew), "0 180 0" ); if (equal(class, "func_door")) { if ( equal ( s_KeyName, "angles" ) && equal ( s_KeyValue, "0 90 0" ) ) { set_kvd ( 0, KV_KeyName, s_KeyName ); set_kvd ( 0, KV_Value, s_KeNew ); set_kvd ( 0, KV_fHandled, 0 ) dllfunc ( DLLFunc_KeyValue, i_Entid, 0 ); return FMRES_SUPERCEDE; } if ( equal ( s_KeyName, "angles" ) && equal ( s_KeyValue, "0 270 0" ) ) { set_kvd ( 0, KV_KeyName, s_KeyName ); set_kvd ( 0, KV_Value, s_KeNew ); set_kvd ( 0, KV_fHandled, 0 ) dllfunc ( DLLFunc_KeyValue, i_Entid, 0 ); return FMRES_SUPERCEDE; } } } return FMRES_IGNORED;}
Šitas kodas suranda obijektą: func_door(duris), kurio angles(duru atsidarymo kryptis) yra "0 90 0" ir "0 270 0", tačiau norėčiau, kad tikrintų pagal "targetname", tačiau jį įrašius į s_KeyName, jo neranda... Gal yra pasiūlymų? O gal būtų koks kitas būdas pakeisti atitinkamo objekto parametrus?
P.S. Jei yra kitas būdas, būtų gerai ir pavyzdukas ;D
Re: set_kvd...
Posted: 2011 Aug 17 13:59
by newb
Kuo tau blogai kaip yra ?
Re: set_kvd...
Posted: 2011 Aug 17 14:13
by psychical
Dabar suranda visas duris kuriu angles = 0 90 0 ir 0 270 0, o man reikia kad kabintu tik tuos, kuriu targetname butu door2 ... Nepagaunu as tu entity ;D
Re: set_kvd...
Posted: 2011 Aug 17 14:53
by newb
Nu dabar dar pasakyk kokiam mape, kad galeciau patikrint ir gal ka nors padarysiu

Re: set_kvd...
Posted: 2011 Aug 17 15:08
by psychical
newb wrote:Nu dabar dar pasakyk kokiam mape, kad galeciau patikrint ir gal ka nors padarysiu

deahturn_temple, pirmos durys kur atsidaro, noriu pakeisti ju klase i func_train ir padaryti jam vazevimo takeli, kadangi atsibodo tas pats per ta pati

Re: set_kvd...
Posted: 2011 Aug 17 16:35
by newb
Seip nezinau apie kokias durys kalbejai, bet jei padaryt taip
Code: Select all
if (equal(class, "func_door") && (i_Entid == 201 || i_Entid == 200))
Pasikeis tik pirmos darys pas t.
Re: set_kvd...
Posted: 2011 Aug 17 16:40
by psychical
Am, kaip ta ent id gauti?

Galetum pasakyti :?
Code: Select all
if (equal(class, "func_door") && (i_Entid == 201 || i_Entid == 200)) { if ( equal ( s_KeyName, "angles" ) && equal ( s_KeyValue, "0 90 0" ) ) { set_kvd ( 0, KV_KeyName, s_KeyName ); set_kvd ( 0, KV_Value, "0 180 0" ); set_kvd ( 0, KV_fHandled, 0 ) dllfunc ( DLLFunc_KeyValue, i_Entid, 0 ); return FMRES_SUPERCEDE; } if ( equal ( s_KeyName, "angles" ) && equal ( s_KeyValue, "0 270 0" ) ) { set_kvd ( 0, KV_KeyName, s_KeyName ); set_kvd ( 0, KV_Value, "0 180 0" ); set_kvd ( 0, KV_fHandled, 0 ) dllfunc ( DLLFunc_KeyValue, i_Entid, 0 ); return FMRES_SUPERCEDE; } }
tp taip?

Neviekia

Re: set_kvd...
Posted: 2011 Aug 17 16:52
by newb
Nu man taip veikia, nors tuos durys isvis nezinau ka daro, tesiog truputi i prieki pasislenkia, gal pas tave id skirtingi
Ent id as suzinodavau taip
Code: Select all
public plugin_init() { register_clcmd("say a", "test") } public test(id) { client_print(id, 3, "%d", GetAimAtEnt(id))} GetAimAtEnt(plr){ static Float:start[3], Float:view_ofs[3], Float:dest[3], i; pev(plr, pev_origin, start); pev(plr, pev_view_ofs, view_ofs); for( i = 0; i < 3; i++ ) { start[i] += view_ofs[i]; } pev(plr, pev_v_angle, dest); engfunc(EngFunc_MakeVectors, dest); global_get(glb_v_forward, dest); for( i = 0; i < 3; i++ ) { dest[i] *= 9999.0; dest[i] += start[i]; } engfunc(EngFunc_TraceLine, start, dest, DONT_IGNORE_MONSTERS, plr, 0); return get_tr2(0, TR_pHit);}
Aimini and duru ir rasai a i chata.
Re: set_kvd...
Posted: 2011 Aug 17 17:10
by psychical
nu lyg ir suveike, bet gal dabar zinai kaip class pakeist? PVZ is func_door i func_train? xD
Re: set_kvd...
Posted: 2011 Aug 17 17:20
by newb
Code: Select all
entity_set_string(EntId, EV_SZ_classname, "func_train")