Witam czy mógł by ktoś napisać mi plugin? Miał by on za zadanie wyświetlać na środku ekranu informację podczas rozpoczynania rundy typu "Macie 5 sekund do rozpoczęcia misji omówcie plan działania" I do tego odliczanie korzystające z mp_freezetime
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.
|
Guest Message by DevFuse
Informacja podczas rozpoczynania rundyInformacja razem z odliczaniem
Temat rozp.
hary
, 25.05.2011 15:34
8 odpowiedzi w tym temacie
#1
Napisano 25.05.2011 15:34
#2
Napisano 01.06.2011 08:17
Dołączam się do tematu ponieważ to kolega z sieci i wspólnie staramy się o ten plugin na nasz TP. Jakiś tam kod zdobyłem, ale nie jest doskonały nie zawsze wyświetla informację i brakuje odliczania czasu tzn czyta mp_freezetime, ale jedynie pokazuje ile wynosi zamiast odliczać go do zera. Będziemy wdzięczni jeśli ktoś pomoże i poprawi kod bądź napisze własny.
#include <amxmodx> #define VERSION "0.0.1" #define PLUGIN "" new g_pcvarFreezeTime new Float:g_flEndOfFreezeTimeGameTime public plugin_init() { register_plugin(PLUGIN, VERSION, "ConnorMcLeod") register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0") register_logevent("LogEvent_Round_Start", 2, "1=Round_Start") register_event("ResetHUD", "Event_ResetHUD", "be") g_pcvarFreezeTime = get_cvar_pointer("mp_freezetime") state __FreezeTime } public Event_HLTV_New_Round() { state __FreezeTime g_flEndOfFreezeTimeGameTime = get_gametime() + get_pcvar_num(g_pcvarFreezeTime) } public Event_ResetHUD( id ) <__PlayTime> {} public Event_ResetHUD( id ) <__FreezeTime> { if( is_user_alive( id ) ) { set_hudmessage(170, 255, 85, -1.0, -1.0, 0, 2.0, 4.0, 0.1, 0.1, -1) show_hudmessage(id, "Macie %.1f sekund do rozpoczecia misji, omowcie plan dzialania.", g_flEndOfFreezeTimeGameTime - get_gametime()) } } public LogEvent_Round_Start() { state __PlayTime }
#3
Napisano 01.06.2011 21:34
Staralismy sie cos pozmieniac, ale bez skutkow, jesli bylby ktos tak za***isty i pomoglby nam to zrobic bylibysmy wdzieczni.
#4
Napisano 01.06.2011 22:32
Sprawdźcie to
#include <amxmodx> #include <amxmisc> #define PLUGIN "Odliczanie FT" #define VERSION "1.0" #define AUTHOR "R3X" #define TASKID 324565 new giMaxPlayers; new gcvarFT; new Float:gfEndOfFT; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) gcvarFT = get_cvar_pointer("mp_freezetime"); giMaxPlayers = get_maxplayers(); register_event("HLTV", "eventNewRound", "a", "1=0", "2=0"); register_event("RoundTime", "eventRoundTime", "be"); } public eventNewRound(){ for(new i=1; i<=giMaxPlayers; i++) if(task_exists(TASKID+i)) remove_task(TASKID+i); if(get_pcvar_num(gcvarFT) == 0) return; gfEndOfFT = get_gametime()+get_pcvar_float(gcvarFT)-1.0; } public eventRoundTime(id){ if(!is_user_alive(id)) return; if(gfEndOfFT == 0.0) return; if(read_data(1) <= get_pcvar_num(gcvarFT)) taskShowHUD(id+TASKID); } public taskShowHUD(id){ id -= TASKID; if(!is_user_alive(id)) return; new iSecs = floatround(gfEndOfFT-get_gametime()); if(iSecs > 0){ set_hudmessage(170, 255, 85, -1.0, -1.0, 0, 2.0, 0.8, 0.2, 0.2, -1) show_hudmessage(id, "Macie %d sekund do rozpoczecia misji, omowcie plan dzialania.", iSecs) if(iSecs > 1){ set_task(1.0, "taskShowHUD", id+TASKID); } } }
#6
Napisano 02.06.2011 11:01
Wystarczy pokazanie samych zer?
żeby całkiem usunąć to bym musiał chwilę pomyśleć
#include <amxmodx> #include <amxmisc> #define PLUGIN "Odliczanie FT" #define VERSION "1.1" #define AUTHOR "R3X" #define TASKID 324565 new giMaxPlayers; new gcvarFT; new Float:gfEndOfFT; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) gcvarFT = get_cvar_pointer("mp_freezetime"); giMaxPlayers = get_maxplayers(); register_event("HLTV", "eventNewRound", "a", "1=0", "2=0"); register_message(get_user_msgid("RoundTime"), "msgRoundTime"); } public eventNewRound(){ for(new i=1; i<=giMaxPlayers; i++) if(task_exists(TASKID+i)) remove_task(TASKID+i); if(get_pcvar_num(gcvarFT) == 0) return; gfEndOfFT = get_gametime()+get_pcvar_float(gcvarFT)-1.0; } public msgRoundTime(msg_type, msg_id, id){ if(gfEndOfFT == 0.0 || !is_user_alive(id)) return PLUGIN_CONTINUE; if(get_msg_arg_int(1) <= get_pcvar_num(gcvarFT)){ taskShowHUD(id+TASKID); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE } public taskShowHUD(id){ id -= TASKID; if(!is_user_alive(id)) return; new iSecs = floatround(gfEndOfFT-get_gametime()); if(iSecs > 0){ set_hudmessage(170, 255, 85, -1.0, -1.0, 0, 2.0, 0.8, 0.2, 0.2, -1) show_hudmessage(id, "Macie %d sekund do rozpoczecia misji, omowcie plan dzialania.", iSecs) if(iSecs > 1){ set_task(1.0, "taskShowHUD", id+TASKID); } } }
żeby całkiem usunąć to bym musiał chwilę pomyśleć
#7
Napisano 02.06.2011 11:06
Nie chciał bym być wybredny, ale wolał bym całkowicie pozbyć się tego licznika Znalazłem coś takiego, ale niestety akurat opcji usuwania tego licznika nie ma HUD Customizer 0.4 - AMXX.pl: Support AMX Mod XWystarczy pokazanie samych zer?
#8
Napisano 02.06.2011 11:13
No jak pomyślałeś za mnie to łap plugin
#include <amxmodx> #include <amxmisc> #define PLUGIN "Odliczanie FT" #define VERSION "1.2" #define AUTHOR "R3X" #define TASKID 324565 new giMaxPlayers; new gcvarFT; new Float:gfEndOfFT; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) gcvarFT = get_cvar_pointer("mp_freezetime"); giMaxPlayers = get_maxplayers(); register_event("HLTV", "eventNewRound", "a", "1=0", "2=0"); register_message(get_user_msgid("RoundTime"), "msgRoundTime"); } public eventNewRound(){ for(new i=1; i<=giMaxPlayers; i++) if(task_exists(TASKID+i)) remove_task(TASKID+i); if(get_pcvar_num(gcvarFT) == 0) return; gfEndOfFT = get_gametime()+get_pcvar_float(gcvarFT)-1.0; } public msgRoundTime(msg_type, msg_id, id){ if(gfEndOfFT == 0.0 || !is_user_alive(id)) return PLUGIN_CONTINUE; if(get_msg_arg_int(1) <= get_pcvar_num(gcvarFT)){ taskShowHUD(id+TASKID); hideTimer(id); return PLUGIN_HANDLED; }else showTimer(id); return PLUGIN_CONTINUE } public taskShowHUD(id){ id -= TASKID; if(!is_user_alive(id)) return; new iSecs = floatround(gfEndOfFT-get_gametime()); if(iSecs > 0){ set_hudmessage(170, 255, 85, -1.0, -1.0, 0, 2.0, 0.8, 0.2, 0.2, -1) show_hudmessage(id, "Macie %d sekund do rozpoczecia misji, omowcie plan dzialania.", iSecs) if(iSecs > 1){ set_task(1.0, "taskShowHUD", id+TASKID); } } } hideTimer(id){ Send_HideWeapon(id, 16); } showTimer(id){ Send_HideWeapon(id, 0); } stock Send_HideWeapon(id, flags){ static msgid = 0; if(!msgid) msgid = get_user_msgid("HideWeapon"); message_begin(MSG_ONE, msgid, _, id); write_byte(flags); message_end(); }
#9
Napisano 02.06.2011 11:46
Działa idealnie +
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych