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.
|
[ROZWIĄZANE] Wywolywanie freezetime w funkcji
#1
Napisano 02.07.2013 21:05
Wiem, ze moglbym tez zredukowac szybkosc gracza, ale chce wiedziec, czy istnieje inny sposob.
Pozdrawiam
#2
Napisano 03.07.2013 12:39
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
#3
Napisano 03.07.2013 15:34
W jaki sposób zablokować wsad?? Pamietam, że to sie robilo jakos tak:
register cl_cmd("w" "block"
Jakoś tak
#4
Napisano 03.07.2013 15:50
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/
Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!
Na zlecenie i bez zlecenia zresztą też!
#5
Napisano 03.07.2013 16:20
Możesz mi jakiś przykładowy plug napisać, który w funkcji wywołuje "freezetime", a potem ją usuwa np. przy pomocy taska??
#6
Gość_21977_*
Napisano 03.07.2013 23:05
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();
}
#7
Napisano 03.07.2013 23:36
Do zamkniecia
#8
Gość_21977_*
Napisano 04.07.2013 00:00
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
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych


Dodatki SourceMod



Temat jest zamknięty










