[Ajuda]Como setar um time off?
#1

Bem e mais ou menos isso. A funзao
Код:
SetTimerEx
ja seta um tempo para o jogador. mas eu quero saber como fazer este timer continuar correndo quando o jogador sair do server. Por que? eu quero que quando o jogador desconecte se ele nao conectar dentro de uma hora o spawn dele mude para a casa dele. Ta isso eu sei fazer eu so quero saber como setar esse tempo offline; Ja usei search, area inglesa ****** e nada. se puderem ajudar :"
Reply
#2

pawn Код:
new powha[MAX_PLAYERS];

SetTimer("powha[playerid]", 1000, false);
Da pra fazer alguns eskemas inspirado nisso aн. Claro que isso nгo vai funfar pq nгo da pra chamar um new ^^
Reply
#3

use gettime()

E depois compare com gettime()+1 hora

ex:
pawn Код:
dini_IntSet(usuario, "temposaiu", gettime());
//na hora de logar

if(dini_Int(usuario, "temposaiu") > gettime()+180000) {
//    spawn da casa
}
Nгo sei quanto й 1 hora, entгo vocк procura.
Dei sу a base
Reply
#4

@byffano isso eu sei fazer

@topic Entao tipo:

pawn Код:
new Hour, Minute, Second,
               spawndiferente[MAX_PLAYERS];

OnPlayerDisconnect
gettime(Hour, Minute);

format(arquivo, sizeof(arquivo), ContasPlayers, nome);
DOF2_WriteFile();
DOF2_SetInt(arquivo,"horasaiu",gettime(Hour, Minute);
DOF2_SaveFile();

OnPlayerConnect:
gettime(Hour, Minute, Second);
format(arquivo, sizeof(arquivo), ContasPlayers, nome);
DOF2_GetInt(arquivo,"saiu");
if(saiu+6000000 < gettime(Hour, Minute)) return SendClienteMessage(playerid, 0Xfff02, "Voce saiu a mais de uma Hora");
Reply
#5

Quote:
Originally Posted by Byffano Xeddar
Посмотреть сообщение
pawn Код:
new powha[MAX_PLAYERS];

SetTimer("powha[playerid]", 1000, false);
Da pra fazer alguns eskemas inspirado nisso aн. Claro que isso nгo vai funfar pq nгo da pra chamar um new ^^
WTF!?
Reply
#6

Quote:
Originally Posted by Byffano Xeddar
Посмотреть сообщение
pawn Код:
new powha[MAX_PLAYERS];

SetTimer("powha[playerid]", 1000, false);
Da pra fazer alguns eskemas inspirado nisso aн. Claro que isso nгo vai funfar pq nгo da pra chamar um new ^^
Quote:
Originally Posted by Los
Посмотреть сообщение
WTF!?
KKK eu tambem pergunto kkk que bosta em chamar um new '-' ? powha[playerid] em settimer .-.?
E settimerex filho playerid e foda
Reply
#7

Quote:
Originally Posted by Byffano Xeddar
Посмотреть сообщение
"Por mais que vocк seje tapado, sempre terб alguem mais tapado que vocк." - Leonardo Z.
realmente
brinkz
Reply
#8

Quote:
Originally Posted by [KoS]Izaac
Посмотреть сообщение
@byffano isso eu sei fazer

@topic Entao tipo:

pawn Код:
new Hour, Minute, Second,
               spawndiferente[MAX_PLAYERS];

OnPlayerDisconnect
gettime(Hour, Minute);

format(arquivo, sizeof(arquivo), ContasPlayers, nome);
DOF2_WriteFile();
DOF2_SetInt(arquivo,"horasaiu",gettime(Hour, Minute);
DOF2_SaveFile();

OnPlayerConnect:
gettime(Hour, Minute, Second);
format(arquivo, sizeof(arquivo), ContasPlayers, nome);
DOF2_GetInt(arquivo,"saiu");
if(saiu+6000000 < gettime(Hour, Minute)) return SendClienteMessage(playerid, 0Xfff02, "Voce saiu a mais de uma Hora");
N precisa disso.
pawn Код:
//OnPlayerrDisconnect
new hor, min, sec;
gettime(hor, min, sec);
dini_IntSet(contas, "saiu", hor);

//OnPlayerConnect
new hor, min, sec;
gettime(hor, min, sec);
if(dini_Int(contas, "saiu") < hor) {
    //Jogador jб saiu faz mais de 1 hora.
}
Cуdigo estranho o seu..
Reply
#9

Isto deve resolver o seu problema .


Nesse caso seria melhor vocк calcular o tempo que o jogador demorou para voltar ao servidor atravйs de operaзхes entre informaзхes do presente e do passado .



Fiz o seguinte cуdigo para vocк (leia os comentбrios) :


pawn Код:
//Coloque logo depois do cуdigo de carregar os dados do jogador:


new STR[30];
    new File:DATA;
    GetPlayerName(playerid, STR, 30);
    strcat(STR, ".txt");
    if(fexist(STR))
    {
        DATA = fopen(STR, io_read);
        fread(DATA, STR);
        if((gettime() - strval(STR)) >= 3600)
        {
            //Coloque aqui o cуdigo de mudar o spawn do jogador para sua casa.
        }
        fclose(DATA);
    }



//E, no OnPlayerDisconnect:


new STR[30];
    new File:DATA;
    GetPlayerName(playerid, STR, 30);
    strcat(STR, ".txt");
    DATA = fopen(STR, io_write);
    valstr(STR, gettime());
    fwrite(DATA, STR);
    fclose(DATA);


Espero ter ajudado .
Reply
#10

Aee ken ou rjj valew velho, mas tipo esse fwrite nao da imcopatibilidade com o dof2 nao?
@edit

Valew tambem ricop rep pros 2
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)