[Pedido] Calcular Tempo
#1

Salve rapaziada, entгo eu estava criando alguns sistemas temporбrios e eu usava a seguinte syntax de cmd (EX: /ban [ID] [Dia] [Mкs] [Ano]) e eu sei que essa maneira nгo й a mais adequada, queria saber se tem algum tutorial aqui no fуrum falando sobre, porquк meu cуdigo fica muito poluнdo com todos esses parвmetros se й que me entende. Jб procurei usando o search e nada, talvez uma explicaзгo de vocкs jб me ajuda...
Reply
#2

Vocк pode fazer assim, apenas uma base:

PHP код:
#define MAX_DIAS 365 + 365 + 365 // 3 Anos
new SegundosBanido[MAX_PLAYERS];
CMD:banir(playeridparams[]) {
    if(!
IsPlayerAdmin(playerid)) return SCM(playeridCOLOR_ERRO"| ERRO | Vocк nгo tem permissгo!");
    
    new 
zNick[MAX_PLAYER_NAME], Dias;
    
    if(
sscanf(params"s[24]i"zNickDias)) return SCM(playeridCOLOR_ERRO"| ERRO | Digite: /Banir [Nick] [Dias]");
    if(!
DOF2_FileExists(...)) // Se voce quiser verificar se a conta dele nгo existe.
    
if(Dias || Dias MAX_DIAS) return SCM(playeridCOLOR_ERRO"| ERRO | Os dias й no mбximo entre 1 e "#MAX_DIAS".");
    
    
new TimeBanido gettime() + (Dias 86400), string[80];
    
    
DOF2_SetInt(..., "SegundosBanido"TimeBanido); // Setando os Dias Aqui
    
DOF2_SaveFile();
    
    
format(stringsizeof(string), "| BANIMENTO | Vocк baniu o Nick ' %s ' por um total de %d Dias."zNickDias);
    
SCM(playerid, -1string);
    
    return 
true;
}
public 
OnPlayerConnect(playerid) {
    new 
SegundosBanido[playerid] = DOF2_GetInt(Conta"SegundosBanido")),
        
string[100];
    if(
SegundosBanido[playerid] != 0)
    {
        new 
DiaMesAnoHorasMinutosSegundos;
        
TimestampToDate(SegundosBanidoDiaMesAno);
        
TimestampToClock(SegundosBanidoHorasMinutosSegundosBanido);
        
SCM(playerid, -1"| BAN | Vocк estб banido(a), visite o Fуrum: "#SEU_FORUM_AQUI".");
        //-------------//
        
format(stringsizeof(string), "| DIAS | Vocк serб desbanido em: %s, %d, do mкs de: %s, do ano de: %d аs %02d:%02d:%02d",
        
GetDayName(DiaMesAno), DiaGetMonthName(Mes), AnoHorasMinutosSegundosBanido));
        
SCM(playerid, -1string);
    }
    return 
true;
}
stock GetMonthName(m) {
    new 
nM[11];
    switch(
m)
    {
        case 
1nM"Janeiro";
        case 
2nM"Fevereiro";
        case 
3nM"Marзo";
        case 
4nM"Abril";
        case 
5nM"Maio";
        case 
6nM"Junho";
        case 
7nM"Julho";
        case 
8nM"Agosto";
        case 
9nM"Setembro";
        case 
10nM"Outubro";
        case 
11nM"Novembro";
        case 
12nM"Dezembro";
    }
    return 
nM;
}
stock TimestampToClock(gettime, &hour, &minute, &second) {
    new 
tm<tmTime>;
    
localtime(Time:gettimetmTime);
    
hour tmTime[tm_hour];
    
minute tmTime[tm_min];
    
second tmTime[tm_sec];
}
// ---------------------------------------------------------------------------------------------------------------------------------- //
stock TimestampToDate(gettime, &day, &month, &year) {
    new 
tm<tmTime>;
    
localtime(Time:gettimetmTime);
    
tmTime[tm_year] += 1900;
    
tmTime[tm_mon] += 1;
    
day tmTime[tm_mday];
    
month tmTime[tm_mon];
    
year tmTime[tm_year];
}
// ------------------------------------------------------------------------------------------------------------------------------------------ //
stock GetDayName(bDiabMesbAno) {
    new 
tm<tmWeekDay>;
    
tmWeekDay[tm_mday] = bDia;
    
tmWeekDay[tm_mon] = bMes 1;
    
tmWeekDay[tm_year] = bAno 1900;
    
mktime(tmWeekDay);
    new 
DiasDaSemana[][15] =
    {
        { 
"Domingo" },
        { 
"Segunda" },
        { 
"Terзa" },
        { 
"Quarta" },
        { 
"Quinta" },
        { 
"Sexta" },
        { 
"Sбbado" }
    };
    return 
DiasDaSemana[tmWeekDay[tm_wday]];

Vocк precisarб usar a Include CTime:

https://sampforum.blast.hk/showthread.php?tid=652653
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)