OnPlayerUnPause
#1

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
Reply
#2

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.
Reply
#3

No, no es eso, estб probado, se la diferencia entre un stock y un public.
Reply
#4

Facil, no has definido el settimer, osea EstaAfkTimer = setTimer....

Entiendes, y en killtimer, es KillTimer(EstaAfkTimer);
Reply
#5

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)
Reply
#6

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.
Reply
#7

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;
}
Reply
#8

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!
Reply
#9

jjajja ok mario
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)