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