Page 1 of 1

IN_RUN = DUCK

Posted: 2011 Jul 20 15:54
by bussinessman
Sveiki, kaip padaryti, kad žmogus vaikščiotų tik su nuspaustų CTRL?
Štai čia mėginau kažką padaryt, tačiau nelabai gaunasi.

Code: Select all

 public plugin_init(){    register_plugin("OnlyDuck", "1.0", "bussinessman")    register_forward(FM_PlayerPostThink, "fwPlayerPostThink")} public fwPlayerPostThink(id) {    if (!is_user_alive(id) || !(pev(id, pev_button) & IN_RUN))        return FMRES_IGNORED            //Kaip padaryti, kad čia nurodytų, kad žmogus tuptusi?    return FMRES_HANDLED} 

Re: IN_RUN = DUCK

Posted: 2011 Jul 20 19:39
by aaarnas
Esmė tame, kad negali numatyti kada žaidėjas laiko shift mygtuką. Tai vykdoma client pusėje. Yra vienas metodas remiantis skaičiavimais, bet tai jau bus sudėtinga, nes reikės kaitalioti žaidėjo greičius ir velocity.
Ką daro IN_RUN iš viso nežinau.

Re: IN_RUN = DUCK

Posted: 2011 Jul 20 22:48
by bussinessman
Aa, o gal žinai, kaip padaryti, kad tiesiog jis visad būtų nuspaudęs SHIFT arba kad visad būtų nuspaudęs CTRL?
Ir ar eitų uždrausti JUMP?

Re: IN_RUN = DUCK

Posted: 2011 Jul 21 12:25
by aaarnas
Kad būtų nuspaustas nuolatos pamėgink su:
client_cmd(id, "+speed")

Kad užblokuoti:
client_cmd(id, "-jump")

Tik nežinau ar veiks taip.

Re: IN_RUN = DUCK

Posted: 2011 Jul 21 14:27
by bussinessman
Su -jump bandžiau, nepavyko.
aaarnai, o kaip eitų pavyzdžiui užregistruoti concmd +jump ir kaip padaryti, kad ignoruotų? Kaip pavyzdžiui eina uždrausti spray, tai gal eitų kaip nors ir čia? su return tais.

Arba gal gravity uždėti?

Re: IN_RUN = DUCK

Posted: 2011 Jul 21 17:30
by aaarnas
Galima pamėginti kažką tokio:

Code: Select all

/* Plugin generated by AMXX-Studio */ #include <amxmodx>#include <fakemeta> #define PLUGIN "Plugin"#define VERSION "1.0"#define AUTHOR "aaarnas"  public plugin_init() {    register_plugin(PLUGIN, VERSION, AUTHOR)        register_forward(FM_CmdStart, "fw_CmdStart")} public fw_CmdStart(id, handle) {        static buttons    buttons = get_uc( handle , UC_Buttons )        if((buttons & IN_JUMP ) && !( pev( id , pev_oldbuttons ) & IN_JUMP)) set_uc(handle, UC_Buttons, buttons & ~IN_JUMP)}

Re: IN_RUN = DUCK

Posted: 2011 Jul 21 23:11
by bussinessman
Nieko, lengvai šokinėju.

Re: IN_RUN = DUCK

Posted: 2011 Jul 22 11:35
by newb

Code: Select all

#include <amxmodx>#include <engine>#include <hamsandwich> #define VERSION "0.0.1" public plugin_init(){    register_plugin("No Jump", VERSION, "ConnorMcLeod")     RegisterHam(Ham_Player_Jump, "player", "Player_Jump")} public Player_Jump(id){    static iOldbuttons ; iOldbuttons = entity_get_int(id, EV_INT_oldbuttons)    if( !(iOldbuttons & IN_JUMP) )    {        entity_set_int(id, EV_INT_oldbuttons, iOldbuttons | IN_JUMP)        return HAM_HANDLED    }    return HAM_IGNORED} 
Bet irgi ne per geriausias blokas.