Page 1 of 1

Leidimas išmesti granatą

Posted: 2013 Feb 28 22:42
by xFrostas
Taigi, noriu padaryti, jog kai būna Leidimas false, neleistų išmesti granatos, o kai true leistų, kaip tai padaryti? Štai nevykęs bandymas

Code: Select all

 RegisterHam(Ham_Item_AddToPlayer, "weapon_hegrenade", "OnHeGrenadeAddToPlayer", true) public OnHeGrenadeAddToPlayer(ent, const player){    if (!Leidimas[player])    {        set_pdata_float(ent, 46, 999999.9, 4)    }    else    {        return HAM_IGNORED    }    return HAM_IGNORED}
Ši funkcija visai neveikia, visada neleidžia išmesti:/

Re: Leidimas išmesti granatą

Posted: 2013 Mar 02 20:34
by hleV
OnHeGrenadeAddToPlayer() iššaukiamas tik kai žaidėjas gauna granatą. Jei nori leist ar neleist išmest, tai naudok funkciją

Code: Select all

ToggleWeaponPrimaryAttack(ent, bool:allowPrimaryAttack){    set_pdata_float(ent, 46, allowPrimaryAttack ? 0.0 : 999999.9, 4);}

Re: Leidimas išmesti granatą

Posted: 2013 Mar 03 00:12
by xFrostas

Code: Select all

public Fwd_CmdStart(id, uc_handle, seed){    if (!(1 <= id <= MaxPlayers) || !is_user_alive(id))         return FMRES_IGNORED     new button = get_uc(uc_handle, UC_Buttons)    new oldbuttons = pev(id, pev_oldbuttons)     new WeaponID, clip, ammo    WeaponID = get_user_weapon(id, clip, ammo)     if (WeaponID == CSW_HEGRENADE)    {        if ((button & IN_ATTACK) && !(oldbuttons & IN_ATTACK))        {            if (!Leidimas[id])            {                ToggleWeaponPrimaryAttack(id, false)            }            else            {                ToggleWeaponPrimaryAttack(id, true)            }        }    }       return FMRES_IGNORED}
Kas čia blogai?

Re: Leidimas išmesti granatą

Posted: 2013 Mar 03 00:22
by hleV
Image

Re: Leidimas išmesti granatą

Posted: 2013 Mar 03 10:34
by xFrostas
:DDDd

--

tai jį reikia šitaip registruoti?

Code: Select all

    RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_hegrenade", "ToggleWeaponPrimaryAttack" , 1)

Re: Leidimas išmesti granatą

Posted: 2013 Mar 03 12:37
by hleV
Tau nereikia nieko registruot. Tą OnHeGrenadeAddToPlayer() palik kaip originaliai buvo (kitoj temoj), o kad leistum/neleistum mest granatos, gali naudot kažką tokio:

Code: Select all

ToggleHeGrenadePrimaryAttack(client, bool:primaryAttack){    new ent = find_ent_by_owner(-1, "weapon_hegrenade", client);     if (ent > 0)        ToggleWeaponPrimaryAttack(ent, primaryAttack);}
Tau nereikia to atlikt kažkokiam tai konkrečiam forward'e, tiesiog panaudok tą funkciją tada, kai keiti kintamojo Leidimas[] reikšmę.

Re: Leidimas išmesti granatą

Posted: 2013 Mar 03 18:01
by xFrostas
Meta error

Code: Select all

ToggleHeGrenadePrimaryAttack(client, bool:primaryAttack){    new ent = find_ent_by_owner(client, "weapon_hegrenade"); // number of arguments does not match definition     if (ent > 0)        ToggleWeaponPrimaryAttack(ent, primaryAttack);}

Re: Leidimas išmesti granatą

Posted: 2013 Mar 03 18:04
by hleV
Pataisiau.

Re: Leidimas išmesti granatą

Posted: 2013 Mar 03 18:15
by xFrostas
Pagaliau, viskas kaip ir veikia, didelis dėkui tau.