Salvar hora && minuto && segundos -
F1N4L - 04.01.2016
Meu sistema de salvamento de dados й em SQLite e funfa tranquilo, porйm ele salva o horбrio enquanto o player estб ON e quando desconecta fica salvo tbm, porйm quando loga reseta o horбrio e comeзa de novo como se fosse apenas um Timer InGame!
Alguйm poderia me fornecer um tutorial de salvamento de horario?
Re: Salvar hora && minuto && segundos -
Coringa_Vilao - 04.01.2016
qual cуdigo vocк usa para salvar ? e qual para carregar os dados ?
Re: Salvar hora && minuto && segundos -
F1N4L - 04.01.2016
Eu uso a include do Gammix's (easydb.inc)
para salvar
PHP код:
stock SaveData(playerid)
{
new key = DB::RetrieveKey(gGlobal[TKT_UserTable], "username", tkPlayerName(playerid));
if(key != DB_INVALID_KEY)
{
if(GetPVarInt(playerid, "TKAdmin_Loggedin") != PLAYER_VARTYPE_NONE)
{
new DATE[18], date[3];
getdate(date[0], date[1], date[2]);
format(DATE, sizeof(DATE), "%i/%i/%i", date[2], date[1], date[0]);
GetPlayerConnectedTime(playerid, tkUSER[playerid][TKU_Hours], tkUSER[playerid][TKU_Minutes], tkUSER[playerid][TKU_Seconds]);
DB::SetStringEntry(gGlobal[TKT_UserTable],key, "laston", DATE);
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "kicked", tkUSER[playerid][TKU_Kicked]);
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "jailed", tkUSER[playerid][TKU_Jailed]);
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "jailtime", tkUSER[playerid][TKU_JailedTime]);
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "muted", tkUSER[playerid][TKU_Muted]);
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "mutetime", tkUSER[playerid][TKU_MutedTime]);
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "cmuted", tkUSER[playerid][TKU_CMuted]);
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "cmutetime", tkUSER[playerid][TKU_CMuteTime]);
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "cash", tkUSER[playerid][TKU_Cash]);
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "level", tkUSER[playerid][TKU_pLevel]);
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "kills", tkUSER[playerid][TKU_Kills]);
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "deaths", tkUSER[playerid][TKU_Deaths]);
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "score", GetPlayerScore(playerid));
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "money", GetPlayerMoney(playerid));
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "hours", tkUSER[playerid][TKU_Hours]);
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "minutes", tkUSER[playerid][TKU_Minutes]);
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "seconds", tkUSER[playerid][TKU_Seconds]);
}
}
return 1;
}
para carregar
PHP код:
new key = DB::RetrieveKey(gGlobal[TKT_UserTable], "username", tkPlayerName(playerid));
new hash[65];
DB::Hash(hash, sizeof(hash), inputtext);
new password[128];
DB::GetStringEntry(gGlobal[TKT_UserTable], key, "password", password);
if(! strcmp(hash, password))
{
tkUSER[playerid][TKU_Kicked] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "kicked");
tkUSER[playerid][TKU_Admin] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "admin");
tkUSER[playerid][TKU_VIP] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "vip");
tkUSER[playerid][TKU_Kills] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "kills");
tkUSER[playerid][TKU_Deaths] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "deaths");
tkUSER[playerid][TKU_Score] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "score");
tkUSER[playerid][TKU_Money] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "money");
tkUSER[playerid][TKU_Hours] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "hours");
tkUSER[playerid][TKU_Minutes] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "minutes");
tkUSER[playerid][TKU_Seconds] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "seconds");
tkUSER[playerid][TKU_Jailed] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "jailed");
tkUSER[playerid][TKU_pLevel] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "level");
tkUSER[playerid][TKU_JailedTime] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "jailtime");
tkUSER[playerid][TKU_Muted] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "muted");
tkUSER[playerid][TKU_MutedTime] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "mutetime");
tkUSER[playerid][TKU_CMuted] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "cmuted");
tkUSER[playerid][TKU_CMuteTime] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "cmutetime");
tkUSER[playerid][TKU_Cash] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "cash");
conversor
PHP код:
stock GetPlayerConnectedTime(playerid, &hours, &minutes, &seconds)
{
new connected_time = NetStats_GetConnectedTime(playerid);
seconds = (connected_time / 1000) % 60;
minutes = (connected_time / (1000 * 60)) % 60;
hours = (connected_time / (1000 * 60 * 60));
return true;
}
Re: Salvar hora && minuto && segundos -
Coringa_Vilao - 04.01.2016
e para carregar a data para enviar ao player ?
Re: Salvar hora && minuto && segundos -
F1N4L - 04.01.2016
Quote:
Originally Posted by Coringa_Vilao
e para carregar a data para enviar ao player ?
|
Na dialog de Login, ele realmente carrega tudo... Nivel admin, senha e talz, mas reseta o TIME
Re: Salvar hora && minuto && segundos -
Coringa_Vilao - 04.01.2016
se vocк estб querendo fazer um ultimo login , vocк pode salvar tudo em string no SQL e depois ao carregar no servidor vocк usa uma variбvel e faz mais ou menos assim:
PHP код:
new string[128];
format(string, sizeof(string), "Seu Ъltimo LOGIN Foi Dia: %s", UltimoLogin[playerid]);
SendClientMessage(playerid, -1, string);
Re: Salvar hora && minuto && segundos -
F1N4L - 04.01.2016
Cara, boa ideia, vou testar e ja te retorno...
@EDIT
Funcionou o salvamento normal, porйm ainda reseta, deixa queto...
Re: Salvar hora && minuto && segundos -
Coringa_Vilao - 04.01.2016
nгo sei como vocк salva, porque nгo sei mexer em SQL, entгo vocк faz assim "EXEMPLO":
PHP код:
new UltimoLogin[MAX_PLAYERS];
forward DataSalva(playerid);
public OnPlayerDisconnect(playerid){
DataSalva(playerid);
return 1;
}
public DataSalva(playerid){
new Query[128], string2[128], hora, minuto, ano, mes, dia;
gettime(hora, minuto);
getdate(ano, mes, dia);
format(string2, sizeof(string2), "%d/%d/%d - %d:%dhrs", dia, mes, ano, hora, minuto);
format(Query, sizeof(Query), "UPDATE `Usuarios` SET UltimoLogin = `%s`", string2);
db_query(Contas, Query);
return 1;
}
public Inicio(playerid){
new string[128];
format(string, sizeof(string), "Seu Ъltimo LOGIN Foi Dia: %s", UltimoLogin[playerid]);
SendClientMessage(playerid, -1, string);
return 1;
}
public OnPlayerRequestSpawn(playerid){
Inicio(playerid);
return 1;
}
acho que vai ficar mais ou menos assim !
Re: Salvar hora && minuto && segundos -
F1N4L - 04.01.2016
Esse meu sistema aki deve ta uma bost@, Obrigado pela ajuda mas deixa queto... +REP pelo suporte
Re: Salvar hora && minuto && segundos -
EditPawn - 05.01.2016
Tente utilizar dessa forma, nгo testei. Talvez funcione.
PHP код:
new TempoOnline[MAX_PLAYERS], TempoTotalOnline[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
new str[30],
key = DB::RetrieveKey(gGlobal[TKT_UserTable], "username", tkPlayerName(playerid));
TempoTotalOnline[playerid] = DB::GetIntEntry(gGlobal[TKT_UserTable], key, "tempo_online");
new hora = (TempoTotalOnline[playerid] / (60 * 60)),
minuto = (TempoTotalOnline[playerid] / 60) % 60,
segundo = TempoTotalOnline[playerid] % 60,
format(str, 30, "%d:%d:%dhrs", hora, minuto, segundo);
SendClientMessage(playerid, -1, str);
TempoOnline[playerid] = gettime();
return 1;
}
public OnPlayerDisconnect(playerid)
{
new key = DB::RetrieveKey(gGlobal[TKT_UserTable], "username", tkPlayerName(playerid));
DB::SetIntEntry(gGlobal[TKT_UserTable], key, "tempo_online", (gettime() - TempoOnline[playerid]) + TempoTotalOnline[playerid]);
return 1;
}