OnPlayerUnPause -
SuperMarioRol - 07.03.2011
Holas,
Estoy dando acabando un tema, y he pensado en usar el sistema de The_Modler de pausas, voy a poner un timer, de X tiempo. Cuando pase ese tiempo le kickearй.
Si se despausea, borrarй el timer.
Hasta ahi todo bien
pawn Код:
public OnPlayerPause(playerid)
{
//new Float:x, Float:y, Float:z; //Definimos
//GetPlayerPos(playerid, x, y, z); //Obtenemos
Pausa[playerid] = Create3DTextLabel("{00BBE7}Jugador {00BB00}en {B267BE}pausa",0x008080FF,0,0,0,40.0,0); //Creamos
Attach3DTextLabelToPlayer(Pausa[playerid], playerid, 0.0, 0.0, 0.5); //Pegamos
SendClientMessage(playerid, COLOR_GREEN, "Te encuentras en pausa {B267BE} Mas de 15 minutos se considerarб AFK"); //Mansamod mensaje
SetTimerEx("estaafk",900000,0,"d",playerid); //Preparamos timer
return 1;
}
public OnPlayerUnPause(playerid)
{
Delete3DTextLabel(Pausa[playerid]); //Borramos texto
KillTimer(estaafk); //Linea 5520
SendClientMessage(playerid, COLOR_GREEN, "Ya no estбs en pausa."); //Avisamos
return 1;
}
stock estaafk(playerid)
{
new name[MAX_PLAYER_NAME], string[128];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "{9C9C41}[KICK] {FFFFA1}%s {9BAF00}ha {00FF00} sido kickeado | {FF8E26}Razуn: {FFFFC0}AFK 15 minutos {FFFFFF}|", name);
SendClientMessageToAll(COLOR_LIGHTRED, string);
Kick(playerid);
return 1;
}
Me devuelve este error
Код:
(5520) : error 076: syntax error in the expression, or invalid function call
Re: OnPlayerUnPause -
Charless - 07.03.2011
Quote:
Originally Posted by SuperMarioRol
Holas,
Estoy dando acabando un tema, y he pensado en usar el sistema de The_Modler de pausas, voy a poner un timer, de X tiempo. Cuando pase ese tiempo le kickearй.
Si se despausea, borrarй el timer.
Hasta ahi todo bien
pawn Код:
public OnPlayerPause(playerid) { //new Float:x, Float:y, Float:z; //Definimos //GetPlayerPos(playerid, x, y, z); //Obtenemos Pausa[playerid] = Create3DTextLabel("{00BBE7}Jugador {00BB00}en {B267BE}pausa",0x008080FF,0,0,0,40.0,0); //Creamos Attach3DTextLabelToPlayer(Pausa[playerid], playerid, 0.0, 0.0, 0.5); //Pegamos SendClientMessage(playerid, COLOR_GREEN, "Te encuentras en pausa {B267BE} Mas de 15 minutos se considerarб AFK"); //Mansamod mensaje SetTimerEx("estaafk",900000,0,"d",playerid); //Preparamos timer return 1; }
public OnPlayerUnPause(playerid) { Delete3DTextLabel(Pausa[playerid]); //Borramos texto KillTimer(estaafk); //Linea 5520 SendClientMessage(playerid, COLOR_GREEN, "Ya no estбs en pausa."); //Avisamos return 1; } stock estaafk(playerid) { new name[MAX_PLAYER_NAME], string[128]; GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "{9C9C41}[KICK] {FFFFA1}%s {9BAF00}ha {00FF00} sido kickeado | {FF8E26}Razуn: {FFFFC0}AFK 15 minutos {FFFFFF}|", name); SendClientMessageToAll(COLOR_LIGHTRED, string); Kick(playerid); return 1; }
Me devuelve este error
Код:
(5520) : error 076: syntax error in the expression, or invalid function call
|
Cambia las siguientes lineas:
stock estaafk(playerid) por
public estaafk(playerid)
Agrega las siguientes lineas:
forward estaafk(playerid);
No sй si funcionara solo se me ocurrio por mi mente xD.
Respuesta: OnPlayerUnPause -
SuperMarioRol - 07.03.2011
No, no es eso, estб probado, se la diferencia entre un stock y un public.
Re: OnPlayerUnPause -
Nicolas_Castillo - 07.03.2011
Facil, no has definido el settimer, osea EstaAfkTimer = setTimer....
Entiendes, y en killtimer, es KillTimer(EstaAfkTimer);
Respuesta: OnPlayerUnPause -
Code8976Man - 07.03.2011
pawn Код:
new afk_timer;
afk_timer = SetTimerEx("estaafk",900000,0,"d",playerid);
KillTimer(afk_timer);
EDIT:
Los timers van con publics, aunque no se si acepta stock.
pawn Код:
forward estaafk(playerid);
public estaafk(playerid)
Respuesta: OnPlayerUnPause -
SuperMarioRol - 07.03.2011
Es cierto, debia ser public, lo que lo fui editando para probar si era una cosa o la otra.
Si era eso, entendн mal el concepto en la wiki.
Solucionao.
Respuesta: OnPlayerUnPause -
Jovanny - 07.03.2011
la variable que va identificar un timer hazla con un array max players
ya que al poner killtimer(estaafk) va eliminar todos los timers
ademas killtimer(estaafk) no tiene sentido
los timers los tienes que identificar con una variable si o si
pawn Код:
new timer[MAX_PLAYERS];
public OnPlayerPause(playerid)
{
timer[playerid]=SetTimerEx("estaafk",false,90000,"d",playerid);
}
pawn Код:
public OnPlayerUnPause(playerid)
{
Delete3DTextLabel(Pausa[playerid]); //Borramos texto
KillTimer(timer[playerid]); //Linea 5520
SendClientMessage(playerid, COLOR_GREEN, "Ya no estбs en pausa."); //Avisamos
return 1;
}
Respuesta: OnPlayerUnPause -
SuperMarioRol - 07.03.2011
Ya lo habнa hecho al arreglar todo.
Y perdon por mi error y no leer bien, pero tampoco es el fin del mundo, eh!
Respuesta: OnPlayerUnPause -
Jovanny - 07.03.2011
jjajja ok mario