←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Jak pobrac czas rundy ?

  • +
  • -
Żuk - zdjęcie Żuk 10.09.2017

Jak pobrać czas rundy ? Chciałbym żeby moja funkcja wykonywała się x sekund przed końcem rundy


Użytkownik Żuk edytował ten post 10.09.2017 12:39
Odpowiedz

  • +
  • -
Żuk - zdjęcie Żuk 10.09.2017

Może inaczej. Znalazłem w necie taki kod, dodałem /test jednak nie działa:

#include <amxmodx>
#include <amxmisc>
#include <colorchat>

new Float:g_round_start = -1.0;
new Float:g_round_time;

new mp_roundtime;

public plugin_init()
{
    register_logevent("EventRoundStart", 2, "1=Round_Start");
    register_logevent("EventRoundEnd", 2, "1=Round_End");
    register_event("TextMsg", "EventRoundRestart", "a", "2&#Game_C", "2&#Game_w");
    
	mp_roundtime = get_cvar_pointer("mp_roundtime");
    	register_clcmd("say /test", "test");

}

public test(id)
{
	new Float:roundtime
	get_roundtime_left() == roundtime
	if(roundtime == 10.0)
	{
	ColorChat(id, GREEN, "10s do konca rundy. Nie mozesz tego uzyc") ;
	}
	return PLUGIN_HANDLED;
}
public EventRoundStart()
{
    g_round_start = get_gametime();
    g_round_time = get_pcvar_float(mp_roundtime) * 60.0;
}

public EventRoundEnd()
{
    g_round_start = -1.0;
}

public EventRoundRestart()
{
    g_round_start = -1.0;
}

Float:get_roundtime_left()
{
    return (g_round_start == -1.0) ? 0.0 : ((g_round_start + g_round_time) - get_gametime());
}

Użytkownik Żuk edytował ten post 10.09.2017 20:59
Odpowiedz

  • +
  • -
Asiap - zdjęcie Asiap 10.09.2017

#include <amxmodx>

new Float:g_fTimeRoundStart, Float:g_fRoundTime;
new g_pRoundTime;

public plugin_init()
{
	register_logevent("Event_RoundStart", 2, "1=Round_Start");

	register_clcmd("say /test", "Clcmd_Test");
	g_pRoundTime = get_cvar_pointer("mp_roundtime");
}

public Event_RoundStart()
{
	g_fRoundTime = floatmul(get_pcvar_float(g_pRoundTime), 60.0) - 1.0;
	g_fTimeRoundStart = get_gametime();
}

public Clcmd_Test(id)
{
	static szTime[6];
	format_time(szTime, 5, "%M:%S", floatround(g_fRoundTime - (get_gametime() - g_fTimeRoundStart)));
					
	client_print(id, print_chat, "Aktualny czas rundy: %s", szTime);
	//zwroci np.: Aktualny czas rundy: 01:30
	return PLUGIN_HANDLED;
}

Użytkownik Asiap edytował ten post 10.09.2017 22:16
Odpowiedz

  • +
  • -
Żuk - zdjęcie Żuk 10.09.2017

To jak zrobić zapytanie, żeby x sekund od końca lub x sekund do końca rundy coś się wykonało ?

 

if(sztime == 00:30) chyba nie zadziała ? :D

Odpowiedz

  • +
  • -
Asiap - zdjęcie Asiap 10.09.2017

if(equal(szTime, "00:30"))
Odpowiedz

  • +
  • -
Żuk - zdjęcie Żuk 11.09.2017

Coś tam zaczyna działać, a jest możliwość wciśnięcia tam gdzieś znaku < lub > ? Jeśli mniej niż 00:30 to.... bo tak to miało działać, jeśli nie to mam inny sposób żeby sobie poradzić :P

Odpowiedz

  • +
  • -
Asiap - zdjęcie Asiap 11.09.2017

if(floatround(g_fRoundTime - (get_gametime() - g_fTimeRoundStart)) < 30)
Odpowiedz

  • +
  • -
Żuk - zdjęcie Żuk 12.09.2017

dziala dziekuje bardzo :D

Odpowiedz