23/05/2020, 04:16 PM
Hola a todos, he visto varios post y me llamo mucho la atencion este codigo:
Se trata de que en el RoundTime, muestre el delay que existe entre respawnear y el comienzo de un modo de juego en un zombie plague, y que despues de dicho delay, muestra el tiempo restante que queda de la ronda.
El problema es que no se como declarar el startMode, lo hice mediante un task, pero no resulto ya que el tiempo queda en 00:00 o puede que sea un error del código, ruego de su ayuda para poder resolverlo, muchas gracias a todos y que tengan un buen fin de semana.
Código PHP:
#include <amxmodx>
new g_Cvar_RoundTime;
new g_Cvar_TimeDelay;
new g_RoundTime;
new g_TimeDelay;
new g_Message_ShowTimer;
new g_Message_RoundTime;
public plugin_init() {
register_plugin("[ZP] Delay Time", "v1.0", "");
register_cvar("[ZP] Delay Time", "v1.2", FCVAR_SPONLY | FCVAR_SERVER);
g_Cvar_RoundTime = get_cvar_pointer("mp_roundtime");
g_Cvar_TimeDelay = get_cvar_pointer("zp_delay");
g_Message_ShowTimer = get_user_msgid("ShowTimer");
g_Message_RoundTime = get_user_msgid("RoundTime");
register_message(g_Message_RoundTime, "message__RoundTime");
register_event("HLTV", "event__HLTV", "a", "1=0", "2=0");
register_logevent("logEvent__roundStart", 2, "1=Round_Start");
}
public event__HLTV() {
g_RoundTime = get_pcvar_num(g_Cvar_RoundTime);
g_TimeDelay = get_pcvar_num(g_Cvar_TimeDelay);
}
public logEvent__roundStart() {
static sPlayers[32];
static iNum;
static i;
get_players(sPlayers, iNum, "ac");
for (i = 0; i < iNum; ++i) {
set_task(1.0, "task__updateTimer", sPlayers[i]);
}
}
public task__updateTimer(const id) {
message_begin(MSG_ONE_UNRELIABLE, g_Message_ShowTimer, _, id);
message_end();
message_begin(MSG_ONE_UNRELIABLE, g_Message_RoundTime, _, id);
write_short(g_TimeDelay);
message_end();
}
// ESTO LO PONES CUANDO EMPIEZA EL MODO, PARA QUE MUESTRE EL TIEMPO NORMAL DE RONDA
public startMode(const iMode, const id) {
message_begin(MSG_ONE_UNRELIABLE, g_Message_ShowTimer, _, id);
message_end();
message_begin(MSG_ONE_UNRELIABLE, g_Message_RoundTime, _, id);
write_short(g_RoundTime - g_TimeDelay);
message_end();
}
public message__RoundTime() {
set_msg_arg_int(1, ARG_SHORT, g_RoundTime - g_TimeDelay);
}
Se trata de que en el RoundTime, muestre el delay que existe entre respawnear y el comienzo de un modo de juego en un zombie plague, y que despues de dicho delay, muestra el tiempo restante que queda de la ronda.
El problema es que no se como declarar el startMode, lo hice mediante un task, pero no resulto ya que el tiempo queda en 00:00 o puede que sea un error del código, ruego de su ayuda para poder resolverlo, muchas gracias a todos y que tengan un buen fin de semana.