szukam pluginu ktory zwieksza predkosc z nozem. Pomocy !
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
szybkosc z nozem
#1
Posted 17.06.2014 15:23
#2
Posted 17.06.2014 16:57
Zrobiłem to benia sposobem i nie wiem czy zadziała. Sprawdź:
#include <amxmodx> #include <hamsandwich> #include <fun> new bool:freezetime public plugin_init() { register_plugin("Wieksza szybkoscna nozu", "1.0", "author") RegisterHam(get_player_resetmaxspeed_func(), "player", "fw_Player_ResetMaxSpeed", 1) register_logevent("PoczatekRundy", 2, "1=Round_Start") register_event("HLTV", "NowaRunda", "a", "1=0", "2=0") } Ham:get_player_resetmaxspeed_func(){ #if defined Ham_CS_Player_ResetMaxSpeed return IsHamValid(Ham_CS_Player_ResetMaxSpeed)?Ham_CS_Player_ResetMaxSpeed:Ham_Item_PreFrame; #else return Ham_Item_PreFrame; #endif } public fw_Player_ResetMaxSpeed(id){ if(is_user_alive(id)){ fw_Player_ResetMaxSpeedGo(id) } } public fw_Player_ResetMaxSpeedGo(id){ if(!freezetime){ if(get_user_weapon(id) == CSW_KNIFE) { set_user_maxspeed(id,get_user_maxspeed(id) + 50) // za 50 zmieniasz ile ma dodac szybkosc na nozu } } } public PoczatekRundy() freezetime = false public NowaRunda() freezetime = true
#3
Posted 17.06.2014 20:59
jest szybkosc ale na pistoletach
#4
Posted 18.06.2014 12:04
plugin działa tak ze jak przeloze na noz i spowrotem na bron to wtedy biegam szybciej z bronia
#5
Posted 18.06.2014 12:15
Było tak od razu.
Sprawdź tą wersje:
#include <amxmodx> #include <hamsandwich> #include <fun> new bool:freezetime, bool:ma_noz[33] new Float:oldspeed[33] public plugin_init() { register_plugin("Wieksza szybkoscna nozu", "1.1", "author") RegisterHam(get_player_resetmaxspeed_func(), "player", "fw_Player_ResetMaxSpeed", 1) register_logevent("PoczatekRundy", 2, "1=Round_Start") register_event("HLTV", "NowaRunda", "a", "1=0", "2=0") register_event("CurWeapon", "CurWeapon", "be") } Ham:get_player_resetmaxspeed_func(){ #if defined Ham_CS_Player_ResetMaxSpeed return IsHamValid(Ham_CS_Player_ResetMaxSpeed)?Ham_CS_Player_ResetMaxSpeed:Ham_Item_PreFrame; #else return Ham_Item_PreFrame; #endif } public fw_Player_ResetMaxSpeed(id){ if(is_user_alive(id)){ if(!freezetime){ if(ma_noz[id]) { oldspeed[id] = get_user_maxspeed(id) set_user_maxspeed(id,get_user_maxspeed(id) + 50) // za 50 zmieniasz ile ma dodac szybkosc na nozu } else { set_user_maxspeed(id, oldspeed[id]) } } } } public CurWeapon(id){ if(get_user_weapon(id) == CSW_KNIFE) { ma_noz[id] = true } else { ma_noz[id] = false } } public PoczatekRundy() freezetime = false public NowaRunda() freezetime = true
#6
Posted 20.06.2014 13:16
w dalszym ciagu jest to samo
#7
Posted 20.06.2014 20:54
To bardzo smutne ale event Ham_CS_Player_ResetMaxSpeed wywołuje się wcześniej niż CurWeapon a nawet wcześniej niż ustawienie właściwej broni pobieranej z get_user_weapon
W dodatku nie polecam używać CurWeapon do takiego typu sprawdzania broni gdyż event CurWeapon nie wykonuje się zawsze. Ham_Item_Deploy wykonuje się wcześniej niż Ham_CS_Player_ResetMaxSpeed dlatego jesli byś go użył zamiast CurWeapon by działało
I tutaj hamsandwich+fakemeta mają przewagę nad amxx'em gdyż pobranie aktualnie aktywnego przedmiotu zwróci poprawny wynik
Piękny przypadek w którym:
get_user_weapon(id) != get_pdata_int(get_pdata_cbase(id,m_pActiveItem,5),m_iId,4)
Takie coś działa:
#include <amxmodx> #include <hamsandwich> #include <fakemeta> const m_pActiveItem = 373 // Offset aktualnie aktywnego przedmiotu const m_iId = 43 // Offset numeru id (to z CSW_*) dla danego przedmiotu const Float:ADD_SPEED = 50.0 //Tu możesz sobie zmienić swoją prędkość public plugin_init() { register_plugin("Wieksza prędkość nozu", "Beta", "BlackPerfum") RegisterHam(Ham_CS_Player_ResetMaxSpeed, "player", "ResetMaxSpeed", 1) // Wiemy że gracz ma wersje hamsandwicha >= 1.3 (wnioskuje z dotychczasowych wyników) } public ResetMaxSpeed(id) { static Float:Speed pev(id,pev_maxspeed,Speed) if(!is_user_alive(id) || Speed < 10.0) return HAM_IGNORED //Trzeba sprawdzić czy gracz żyje gdyż gracz martwy może posiadać maxspeed >= 10.0 //Dodatkowo omijamy frezztime //Sprawdzamy broń gracza w nietypowy sposób :D if(get_pdata_int(get_pdata_cbase(id,m_pActiveItem,5),m_iId,4) == CSW_KNIFE) { //Jeśli aktualna broń gracza to nóż //To zwiększamy mu prędkość Speed += ADD_SPEED set_pev(id,pev_maxspeed,Speed) engfunc(EngFunc_SetClientMaxspeed,id,Speed) //Dodatkowo zapobiegam wysyłaniu błędnych informacji dalej return HAM_SUPERCEDE } return HAM_IGNORED }
Tu możesz o offsetach poczytać
Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!
Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users