[ROZWIĄZANE] Wywolywanie freezetime w funkcji
MAGNET
02.07.2013
Pytanie - jak moglbym wywolac zamrozenie graczy w pewnej funkcji (nie na poczatku rundy)??
Wiem, ze moglbym tez zredukowac szybkosc gracza, ale chce wiedziec, czy istnieje inny sposob.
Pozdrawiam
Wiem, ze moglbym tez zredukowac szybkosc gracza, ale chce wiedziec, czy istnieje inny sposob.
Pozdrawiam
d0naciak
03.07.2013
Możesz zablokować używania guzików WSAD. Ale zmiana prędkości będzie lepszym sposobem. Pamiętaj że przy zmianie broni prędkość jest resetowana, więc nie wystarczy użycie set_user_maxspeed
MAGNET
03.07.2013
W jaki sposób zablokować wsad?? Pamietam, że to sie robilo jakos tak:
register cl_cmd("w" "block"
Jakoś tak
Droso
03.07.2013
O wiele lepiej będzie zmienić prędkość gracza na 0.1 tylko przy Ham_CS_Player_ResetMaxSpeed
Więcej napisał o tym Benio101:
http://amxx.pl/topic...edkosci-gracza/
MAGNET
03.07.2013
Możesz mi jakiś przykładowy plug napisać, który w funkcji wywołuje "freezetime", a potem ją usuwa np. przy pomocy taska??
Gość_21977_* 03.07.2013
Plugin zamraża gracza, na 5 sekund lub do końca rundy, po wpisaniu na sayu "freezeme":
#include <amxmodx> #include <fun> #include <HamSandwich> #define SetBit(%1,%2) (%1|=(1<<(%2))) #define ClearBit(%1,%2) (%1&=~(1<<(%2))) #define CheckBit(%1,%2) (%1&(1<<(%2))) new speedbuff; public plugin_init(){ register_plugin("Freezer", "1.0", "benio101"); RegisterHam(get_player_resetmaxspeed_func(), "player", "speed", 1); register_logevent("roundEnd", 2, "1=Round_End"); register_clcmd("say freezeme", "freeze"); } public freeze(id){ SetBit(speedbuff, id); speed(id); new data[1]; data[0]=id; set_task(5.0, "unfreeze", .parameter=data, .len=1); } 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 } // obsługa bonusu prędkości public speed(id){ if( is_user_alive(id) && CheckBit(speedbuff, id) ){ set_user_maxspeed(id, 0.1); } } public unfreeze(data[]){ new id=data[0]; if(is_user_alive(id)){ ClearBit(speedbuff, id); ExecuteHam(get_player_resetmaxspeed_func(), id); } } public client_connect(id){ ClearBit(speedbuff, id); } public roundEnd(){ speedbuff=0; remove_task(); }
MAGNET
03.07.2013
Aa ok juz lapie. Powycinam jutro z tego pare rzeczy. Dzieki za pomoc, plusiki4all
Do zamkniecia
Do zamkniecia
Gość_21977_* 04.07.2013
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL