set_kvd...

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

set_kvd...

Post 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

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: set_kvd...

Post by newb »

Kuo tau blogai kaip yra ?

User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: set_kvd...

Post 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

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: set_kvd...

Post by newb »

Nu dabar dar pasakyk kokiam mape, kad galeciau patikrint ir gal ka nors padarysiu :D

User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: set_kvd...

Post by psychical »

newb wrote:Nu dabar dar pasakyk kokiam mape, kad galeciau patikrint ir gal ka nors padarysiu :D
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 :D

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: set_kvd...

Post 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.

User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: set_kvd...

Post by psychical »

Am, kaip ta ent id gauti? :D 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? :D Neviekia :/

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: set_kvd...

Post by newb »

Nu man taip veikia, nors tuos durys isvis nezinau ka daro, tesiog truputi i prieki pasislenkia, gal pas tave id skirtingi :D

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.

User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: set_kvd...

Post by psychical »

nu lyg ir suveike, bet gal dabar zinai kaip class pakeist? PVZ is func_door i func_train? xD

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: set_kvd...

Post by newb »

Code: Select all

entity_set_string(EntId, EV_SZ_classname, "func_train")

Post Reply

Who is online

Users browsing this forum: Bing [Bot], Google [Bot] and 6 guests