27.09.2014, 11:32
El mбs principal problema en tu cуdigo es que deberнas usar un array para que sea individual para cada jugador, tal cual lo tienes ahora es un mute global, a todos los conectados.
Para poder saber cuanto tiempo paso o cuanto tiempo queda tenes que guardar en una variable (tiempo actual + tiempo requerido) y luego para comprobarlo (valor guardado - tiempo actual) = tiempo restante. Si tiempo actual es mayor a valor guardado es que el tiempo ya se cumpliу.
Yo lo harнa de la siguiente manera:
Para poder saber cuanto tiempo paso o cuanto tiempo queda tenes que guardar en una variable (tiempo actual + tiempo requerido) y luego para comprobarlo (valor guardado - tiempo actual) = tiempo restante. Si tiempo actual es mayor a valor guardado es que el tiempo ya se cumpliу.
Yo lo harнa de la siguiente manera:
pawn Код:
new Muted[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
Muted[playerid] = 0;
return 1;
}
public OnPlayerUpdate(playerid)
{
if(Muted[playerid] != 0 && Muted[playerid] < gettime())
{
Muted[playerid] = 0;
SendClientMessage(playerid, blue, "Ya no estбs muteado. Esperamos que esto le haya servido de lecciуn");
}
return 1;
}
CMD:mut(playerid, params[])
{
if(PlayerInfo[playerid][AdminLevel] >= 3)
{
new user, reason[128], time;
if(!sscanf(params, "uis[128]", user, time, reason))
{
new name[MAX_PLAYER_NAME], string[128];
GetPlayerName(user, name, MAX_PLAYER_NAME);
format(string, 128, "%s ha sido muteado. Razon: %s", name, reason);
SendClientMessageToAll(red, string);
Muted[user] = gettime()+time;
}
else SendClientMessage(playerid, blue, "Uso: /mut [id] [tiempo en segundos] [razon]");
}
else SendClientMessage(playerid, red, "Este comando no existe");
return 1;
}
CMD:tiempo(playerid, params[])
{
if(!Muted[playerid])
{
return SendClientMessage(playerid, -1, "No estбs muteado");
}
new comprobar[10];
if(!sscanf(params, "s[10]", comprobar))
{
if(!strcmp(comprobar, "muteado", true))
{
new string[128];
format(string, sizeof(string), "Te quedan %i segundos para que se termine tu muteo", Muted[playerid]-gettime());
SendClientMessage(playerid, red, string);
}
else SendClientMessage(playerid, grey, "Ese comando no existe");
}
else SendClientMessage(playerid, blue, "Uso: /tiempo muteado");
return 1;
}