Przepraszam, że odświeżam.. ale moje pytanie jest prawie identyczne, jak twórcy tematu.. w jaki inny sposób to zmienić ?
Mam teraz taki kod:
public fwd_CmdStart(id, uc_handle, seed) {
if(!is_alive[id] || !is_user_alive(id) || !is_user_connected(id)) return FMRES_HANDLED
if(ofiara_rozrzutu[id] == 1 && get_uc(uc_handle, UC_Buttons) & IN_ATTACK) {
new Float:punchangle[2]
pev(id, pev_punchangle, punchangle)
for(new i=0; i<2;i++)
punchangle[i]*=1.2;
set_pev(id, pev_punchangle, punchangle)
}
return FMRES_IGNORED
}
Ale.. za każdym razem rozrzut kieruję się w prawy górny róg, ponadto, biorąc np takie AK47.. po kilku kulach z serii ekran nadal mi się obraca dookoła, później łapie wręcz teleporty (widok przód -> tył -> przód -> tył itd), najgorsze, gdy dochodzą do tego obroty do góry nogami. Jest jakiś dobry sposób ? Znalazłem kilka 'nowych broni' i w jednej z nich jest taki oto kodzik:
#define RECOIL 3.8
Float:cl_pushangle[33][3]
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_galil", "fw_PrimaryAttack")
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_galil", "fw_PrimaryAttack_Post", 1)
public fw_PrimaryAttack(Weapon) {
new Player = get_pdata_cbase(Weapon, 41, 4)
if (ma_bron[Player]) pev(Player,pev_punchangle,cl_pushangle[Player])
}
public fw_PrimaryAttack_Post(Weapon) {
new Player = get_pdata_cbase(Weapon, 41, 4)
if(ma_bron[Player]) {
new Float:push[3]
pev(Player,pev_punchangle,push)
xs_vec_sub(push,cl_pushangle[Player],push)
xs_vec_mul_scalar(push,RECOIL,push)
xs_vec_add(push,cl_pushangle[Player],push)
set_pev(Player,pev_punchangle,push)
}
}
Ale nie będę oszukiwał, że go nie rozumiem.
I teraz tak:
a) aby to działało jak chcę (tak jak kod 'nowej broni') musi być to w primmaryattack ? Jak zastosować to do wszystkich broni ? Nie chce dla jednej..
wyjasni mi ktos te ostatnie linijki z 'nowej broni' ? Chce nie tylko mieć to zrobione, ale zrozumieć to.. te xs_vec.. - proszę nie kierować na poradniki zagraniczne, mój angielski i składnia translate daje marne wyniki.