[FilterScript] Sistema de afk por tempo
#3

SetTimer global desnecessario , vocк criou uma stock para getar o nome dos jogadores e mesmo assim em alguns pontos com loop vocк criou outra variavel para getar o nome .
PHP код:
pInfo[playerid][tempoafk] = false; 
Acho que vocк nem compilou , acho que isto vai dar um aviso ao compilar .

Mas e tentando que se aprende , boa .

Nгo testei talvez tenha algum erro , estou sem os programas no pc para testar mas pode ser uma base para vocк poder melhorar .
PHP код:
#include          a_samp
#include          zcmd
enum   pafk {
       
Timer,
       
Tempo,
       
bool:AFK
}
new 
SistemaAFK[MAX_PLAYERS][pafk];
public 
OnFilterScriptInit()
{
    return 
1;
}
public 
OnFilterScriptExit()
{
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    
SistemaAFK[playerid][Tempo] = 0;
    
SistemaAFK[playerid][AFK] = false;
    return 
1;
}
public 
OnPlayerDisconnect(playerid, reason)
{
    
SistemaAFK[playerid][Tempo] = 0;
    
SistemaAFK[playerid][AFK] = false;
    return 
1;
}
public 
OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
    if(
success){
        if(
SistemaAFK[playerid][AFK] == true)return SendClientMessage(playerid, -1, "Senhor esta ausente.");}
    return 
true;
}
command(afk, playerid, params[])
{
    if(
SistemaAFK[playerid][AFK] == false)
    {
        
TogglePlayerControllable(playerid, false);
        
        
SendClientMessage(playerid, -1, "Use: /afk, para sair do modo ausente");
        
        
SistemaAFK[playerid][AFK] = true;
        
        
SistemaAFK[playerid][Timer] =  SetTimerEx("CheckAFK", 1000, true, "i", playerid);
    }
    else
    {
        
TogglePlayerControllable(playerid, true);
        
SendClientMessage(playerid, -1, "Use: /afk, para entrar no modo ausente");
        
SistemaAFK[playerid][AFK] = false;
        
        
KillTimer(SistemaAFK[playerid][Timer]);
    }
    return 
true;
}
command(lista, playerid, params[])
{
   new 
pimbando[128];
   for (new 
ds;ds <MAX_PLAYERS; ds++)
   {
       if(
SistemaAFK[ds][AFK] == true)
       {
           
format(pimbando, sizeof(pimbando), "%s O jogador %s estб ausente por: [%s]\n", pimbando, DonPegaNome(ds), Convert(SistemaAFK[ds][Tempo]));
       }
   }
   if (
strlen(pimbando) > 0)
        
ShowPlayerDialog(playerid, 99, DIALOG_STYLE_MSGBOX, "Jogadores ausentes:", pimbando, "FECHAR", #);
    
else
        
SendClientMessage(playerid, 0xFF0000FF, "{FF0000}Nгo hб jogadores ausentes.");
   return 
true;
}
forward CheckAFK(playerid);
public 
CheckAFK(playerid)return SistemaAFK[playerid][Tempo]++;
stock DonPegaNome(playerid)
{
    new 
name[MAX_PLAYER_NAME];
    
GetPlayerName(playerid, name, sizeof(name));
    return 
name;
}
stock Convert(number)
{
    new 
hours = 0, mins = 0, secs = 0, string[100];
    
hours = floatround(number / 3600);
    
mins = floatround((number / 60) - (hours * 60));
    
secs = floatround(number - ((hours * 3600) + (mins * 60)));
    new 
days = 0;
    if(
hours >= 24)
    {
        
days = floatround((hours/24), floatround_floor);
        
hours = hours % 24;
    }
    if(
days > 0)
    {
        
format(string, 100, "%ddias, %dh %dm e %ds", days, hours, mins, secs);
    }
    else if(
hours > 0)
    {
        
format(string, 100, "%dh %dm e %ds", hours, mins, secs);
    }
    else
    {
        
format(string, 100, "%dm e %ds", mins, secs);
    }
    return 
string;
} 
Reply


Messages In This Thread
Sistema de afk por tempo - by Gguiz - 02.11.2017, 04:20
Re: Sistema de afk por tempo - by RogerX - 02.11.2017, 10:27
Re: Sistema de afk por tempo - by Don_Speed - 02.11.2017, 11:15
Re: Sistema de afk por tempo - by Naine - 02.11.2017, 12:04
Re: Sistema de afk por tempo - by ScripitrFaunu - 02.11.2017, 13:20
Re: Sistema de afk por tempo - by Gguiz - 02.11.2017, 15:47
Re: Sistema de afk por tempo - by Benner - 02.11.2017, 18:38
Re: Sistema de afk por tempo - by Gguiz - 02.11.2017, 18:45
Re: Sistema de afk por tempo - by Benner - 02.11.2017, 18:48
Re: Sistema de afk por tempo - by CezarBR - 02.11.2017, 21:45

Forum Jump:


Users browsing this thread: 1 Guest(s)