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 licznikaWystarczy 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


Dodatki SourceMod



Temat jest zamknięty










