Page 1 of 1
Funkcija
Posted: 2011 Oct 17 17:04
by bussinessman
Sveiki, bandau padaryti paprastą funkciją, kad nustatyti greitį ir nesigauna nieko...
Code: Select all
set_task(2.0, "setSpeed", 0, "-1.0"); public setSpeed(speed){ new players[32], num; get_players(players, num, "ac"); for (new i=1; i<=num+1; i++) { set_user_maxspeed(i, float(speed)); }}
Žinau, kad turi būti ne float, taigi kaip tai padaryti?
Re: Funkcija
Posted: 2011 Oct 17 18:10
by hleV
Daryk taip:
Code: Select all
#include <amxmodx>#include <fun>#include <hamsandwich> new bool:Frozen; public plugin_init() RegisterHam(Ham_Item_PreFrame, "player", "OnResetMaxSpeed", 1); public OnResetMaxSpeed(id) if (Frozen) set_user_maxspeed(id, -1.0); Freeze(){ Frozen = true; new players[32], n; get_players(players, n, "ac"); for (new i; i < n; i++) set_user_maxspeed(players[i], -1.0);} Unfreeze(){ Frozen = false; new players[32], n; get_players(players, n, "ac"); for (new i; i < n; i++) ExecuteHamB(Ham_Item_PreFrame, players[i]);}
Code: Select all
Freeze(); // Nustato visu greiti i -1.0Unfreeze(); // Atstato visu greiti i normalu
Netestavau.
Re: Funkcija
Posted: 2011 Oct 17 20:29
by bussinessman
Iki tavo atsakymo panašiai padariau:
Code: Select all
public setSpeed(){ new players[32], num; get_players(players, num, "ac"); for (new i=1; i<=num+1; i++) { set_user_maxspeed(i, 500.0); }} public resetSpeed(){ new players[32], num; get_players(players, num, "ac"); for (new i=1; i<=num+1; i++) { set_user_maxspeed(i, -1.0); }}
Gal numanote kodėl -1.0 nenustato default greičio, o visiškai sustabdo žmogų?
Re: Funkcija
Posted: 2011 Oct 17 21:46
by hleV
Nes taip veikia set_user_maxspeed().
Ir tavo kodas neteisingas visiškai.
Re: Funkcija
Posted: 2011 Oct 18 22:20
by bussinessman
Nesuprantu kas būtent negerai?
Re: Funkcija
Posted: 2011 Oct 19 00:26
by aaarnas
---->>>
---->>>
Code: Select all
set_user_maxspeed(players[i], 500/800);
Re: Funkcija
Posted: 2011 Oct 19 10:03
by hleV
Greičio atstatymui naudok mano pateiktą ExecuteHamB() metodą, nes set_user_speed() su argumentu -1.0 žaidėją sustabdys. Taip pat žaidėjams pasikeitus ginklą jų greitis atsistatys, todėl ir daviau pavyzdį su Ham_Item_PreFrame, kuriame iš naujo nustatai žaidėjo greitį, šiam netikėtai atsistačius į normalų.
Visa tai galioja tik CS. Jei darai tai kitam žaidimui, šitai neveiks.
Re: Funkcija
Posted: 2011 Oct 21 19:48
by bussinessman
Gerai, kodėl negalima tiesiog i, o reikia players?
Re: Funkcija
Posted: 2011 Oct 21 21:36
by newb
Nes i bus 1,2,3... O playeriu id dazniausei buna kazkas panausaus i 1,6,7,8,10...
Tai tas players ir saugo teisingus id.