Jak powiedzieć komputerowi żeby wykonywał funkcję po starcie pierwszej rundy
I drugi kod, po każdej nowej rundzie?
Najlepiej prosiłbym o link do AMXX doc
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.
|
Napisano 12.05.2009 15:16
Napisano 13.05.2009 19:18
jest jeszcze różnica pomiędzy nową rundą a początkiem rundy - pierwsze to chwila przed spawnem graczy, drugie to moment upłynięcia mp_freezetimeregister_event()
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR ""
new bool:gFirst=false;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
//każda nowa runda
register_event("HLTV", "eventNewRound", "a", "1=0", "2=0");
//inicjacja rozgrywki - przynajmniej po 1 graczu w każdej drużynie
register_event("TextMsg", "GameCommencing", "a", "2Game_C");
}
public GameCommencing()
gFirst=true;//zaraz będzie pierwsza runda!
public eventNewRound(){
if(gFirst){//jest pierwsza
onFirstRound();
gFirst=false;//następna nie będzie pierwsza
}
onNewRound();//każda nowa runda
}
onFirstRound(){
client_print(0, print_chat, "Pierwsza Runda!");
}
onNewRound(){
client_print(0, print_chat, "Poczatek Rundy!");
}
register_event("HLTV", "eventNewRound", "a", "1=0", "2=0");naregister_logevent("eventNewRound", 2, "1=Round_Start") Napisano 13.05.2009 19:45
public wies(id)
{
if(is_user_alive(id))
return PLUGIN_HANDLED
server_cmd(id, "sv_airaccelerate 100")
set_hudmessage(0, 48, 0, 0.28, 0.44, 0, 6.0, 7.0)
//set_hudmessage(0, 100, 0, 0.8, 0.1, 0, 6.0, 7.0)
show_hudmessage(id, "Gotowe")
}I wywala mi że powinno wywalić wartość jakąś, jak ją "pozyskać" i zrobić, żeby było HANDLED?Napisano 13.05.2009 19:53
Napisano 13.05.2009 19:55
server_cmd(id, "sv_airaccelerate 100")
Napisano 13.05.2009 20:02
public wies(id)
{
if(is_user_alive(id))
return PLUGIN_CONTINUE
server_cmd(id, "sv_airaccelerate 100")
set_hudmessage(0, 48, 0, 0.28, 0.44, 0, 6.0, 7.0)
//set_hudmessage(0, 100, 0, 0.8, 0.1, 0, 6.0, 7.0)
show_hudmessage(id, "Gotowe")
return PLUGIN_CONTINUE //tutaj też?
}Tak? Gdy gracz żyje wykona się reszta linii?Napisano 13.05.2009 20:05
Napisano 13.05.2009 20:09
eh...jaki ma sens sprawdzanie czy gracz jest zywy jak i tak komenda zadziala na caly serwer? pomyśl nad tym
public interp(id)
{
if(is_user_alive(id))
return PLUGIN_CONTINUE
client_cmd(id, "rate 25000")
client_cmd(id, "cl_updaterate 101")
client_cmd(id, "cl_cmdrate 101")
client_cmd(id, "cl_cmdbackup 2")
client_cmd(id, "mp_decals 300")
client_cmd(id, "cl_rate 20000")
client_cmd(id, "ex_interp 0.01")
set_hudmessage(0, 48, 0, 0.28, 0.44, 0, 6.0, 7.0)
//set_hudmessage(0, 100, 0, 0.8, 0.1, 0, 6.0, 7.0)
show_hudmessage(id, "ex_interp wymuszony na 0.01")
return PLUGIN_CONTINUE
}
Napisano 13.05.2009 20:19
Napisano 13.05.2009 20:24
Napisano 13.05.2009 20:31
if(is_user_alive(id)) return PLUGIN_CONTINUEteraz od razu wiadomo, że return zależy od warunku w if
Napisano 13.05.2009 20:35
Aby lepiej widzieć co robi kod trzeba odpowiednio stosować taby
if(is_user_alive(id)) return PLUGIN_CONTINUEteraz od razu wiadomo, że return zależy od warunku w if
wartość PLUGIN_HANDLED czy CONTINUE ma znaczenie tylko w funkcjach przypisanych do eventu czy komendy
samo użycie return kończy wywołania funkcji, niezależnie od wartości zwracanej
Napisano 13.05.2009 20:41
if(!is_user_alive(id)) return;
Napisano 13.05.2009 20:42
if(!is_user_alive(id)) return PLUGIN_CONTINUE;
if(is_user_alive(id)) return PLUGIN_CONTINUE;
Napisano 13.05.2009 20:43
Napisano 19.05.2009 16:30
jeżeli chcesz aby funkcja wykonała się kiedy gracz jest żywy dajesz
if(!is_user_alive(id)) return PLUGIN_CONTINUE;
jeżeli nieżywy
if(is_user_alive(id)) return PLUGIN_HANDLED; client_cmd(id, "rate 25000") client_cmd(id, "cl_updaterate 101") client_cmd(id, "cl_cmdrate 101") client_cmd(id, "cl_cmdbackup 2") client_cmd(id, "mp_decals 300") client_cmd(id, "cl_rate 20000") client_cmd(id, "ex_interp 0.01") client_print(id, print_chat, "testy")
Napisano 19.05.2009 16:32
public interp()
{
new Players[32], playerCount;
get_players(Players, playerCount);
for (new i=0; i<playerCount; i++){
new id = Players[i];
if(is_user_alive(id)) continue;
client_cmd(id, "rate 25000")
client_cmd(id, "cl_updaterate 101")
client_cmd(id, "cl_cmdrate 101")
client_cmd(id, "cl_cmdbackup 2")
client_cmd(id, "mp_decals 300")
client_cmd(id, "cl_rate 20000")
client_cmd(id, "ex_interp 0.01")
client_print(id, print_chat, "testy")
set_hudmessage(0, 48, 0, 0.28, 0.44, 0, 6.0, 7.0)
show_hudmessage(id, "ex_interp wymuszony na 0.01")
}
}
Napisano 19.05.2009 16:51
Napisano 19.05.2009 16:52
Napisano 19.05.2009 17:23
0 użytkowników, 0 gości, 0 anonimowych