AutoBH na nożu knife_mod
Aqku
12.04.2013
Witam. Zrobiłem sobie AutoBH na jednym z noży w knife_mod i działa ale mam jeden problem. AutoBH znika po oddaniu strzału lub po przeładowaniu zamiast po zmianie broni np. z noża na pistolet.
public client_PreThink(id){ new Weapon = read_data(2) is_bh = true; if(knife_model[id] == 4 && Weapon == CSW_KNIFE && is_bh){ entity_set_float(id, EV_FL_fuser2, 0.0); if(entity_get_int(id, EV_INT_button) & 2){ new flags = entity_get_int(id, EV_INT_flags); if(flags & FL_WATERJUMP || entity_get_int(id, EV_INT_waterlevel) >= 2 || !(flags & FL_ONGROUND)){ return PLUGIN_CONTINUE; } new Float:velocity[3]; entity_get_vector(id, EV_VEC_velocity, velocity); velocity[2] += 250.0; entity_set_vector(id, EV_VEC_velocity, velocity); entity_set_int(id, EV_INT_gaitsequence, 6); } } return PLUGIN_CONTINUE; }
http://amxx.pl/wklej...36575071932858/
Będę wdzięczny. Daje +
GwynBleidD
12.04.2013
public client_PreThink(id){new Weapon = read_data(2)
A od kiedy to w PreThinku się tak da, hmm? Musisz sobie zrobić tablicę globalną z przechowywaniem aktualnie trzymanej broni i aktualizować ją w CurWeapon. Możesz oczywiście pobierać broń w PreThinku, ale będzie to nieoptymalne... PreThink się wykonuje co klatkę gracza, czyli średnio 60 razy na sekundę... Przy słabej wydajności serwera może być mniej, ale i tak będzie to kilka razy na sekundę co najmniej. Więc lepiej zapamiętać broń w tablicy globalnej.
Aqku
12.04.2013
hmmm rozumiem. A w zasadzie to nie rozumiem bo jestem zielony. więc jakbyś mógł troche jaśniej, powiedział co mam zrobić.
K!113r
12.04.2013
Aqku
13.04.2013
Coś takiego? ;o
Użytkownik Aqku edytował ten post 13.04.2013 10:23
Aqku
13.04.2013
Ok a co mam zrobić w curweapon i prethink?
bron_gracza[id] = read_data(2)
Coś takiego?
Użytkownik Aqku edytował ten post 13.04.2013 10:47
Aqku
13.04.2013
GwynBleidD
13.04.2013
Szybkość da się ograniczyć: badasz ciągle prędkość gracza jaką aktualnie posiada i jeśli przekroczy określoną wartość, zbijasz ją do niższej. Za rozpędzanie się odpowiada cvar sv_airaccelerate.
K!113r
13.04.2013
GwynBleidD
13.04.2013
Poszukaj sobie gdzieś kodu na badanie prędkości gracza. Jeśli jest wyższa, niż ta którą przyjąłeś, obniż ją.
Aqku
14.04.2013
Znalazłem coś, przeczytałem i mózg mnie boli Musze się wziąć w wakacje za nauke PAWNu
Nie wiem czy to rozwiąże mój problem, ale zobaczcie:
http://amxx.pl/topic...edkosci-gracza/
Nie wiem czemu, ale kiedy piszę w z i ą ć to zamienia mi na wziąć a przecież w z i ą ć jest poprawnie
Użytkownik Aqku edytował ten post 14.04.2013 10:25
K!113r
14.04.2013

Aqku
14.04.2013
No właśnie sv_airaccelerate odpowiada bardziej za obracanie się w powietrzu niż nabieranie szybkości. Gdy mam w server.cfg ustawione na 10 i na 1 to tak samo się rozpędza tylko przy 1 nie da się skręcać. Może coś takiego:
set_user_maxspeed(id, 350.0);
ale tak jak mówisz to raczej za szybkość biegu odpowiada
PS. Mam już w pluginie ograniczenie szybkości przez maxspeed:
// Speed new Float:Speed if(bron_gracza[id] != CSW_KNIFE) return PLUGIN_CONTINUE else if(knife_model[id] == 0 || knife_model[id] == 1 || knife_model[id] == 2 || knife_model[id] == 4 || knife_model[id] == 6 || knife_model[id] == 7) Speed = get_pcvar_float(CVAR_NORMSPEED) else if(knife_model[id] == 3 || knife_model[id] == 5) Speed = get_pcvar_float(CVAR_HIGHSPEED) set_user_maxspeed(id, Speed)
Robione przeze mnie, więc może być źle
Użytkownik Aqku edytował ten post 14.04.2013 11:35
GwynBleidD
15.04.2013
To, co ustawiłeś będzie limitować prędkość tylko na ziemii... W powietrzu już nie.