28.12.2012, 20:41
Bom eu estava fazendo o meu GM e precisava de um Sistema de Registro, mais todos que eu tentava davam 26 errors, até que achei um que funcionava. Bom entrei no meu Servidor, apareceu para registrar, registrei e não apareceu para logar, foi direto para o jogo, então testei, comando /status funcionando, aparecia as coisas, ai sai do jogo e quando entrei, apareceu para registrar de novo, e nada estava salvo.
Estou usando este sistema:
Criei em scriptfiles uma pasta com o nome "Players", criei até uma com o nome "Contas" mais não salva.
Alguém sabe oque tem de errado ?
Estou usando este sistema:
Код:
#include <a_samp> #include <Dini> #define FILTERSCRIPT #define REGISTRO 1 #define LOGIN 2 #define CONTAS "Players/%s.ini" new Matou[MAX_PLAYERS]; new Morreu[MAX_PLAYERS]; new Logou[MAX_PLAYERS]; public OnFilterScriptInit() { return 1; } public OnFilterScriptExit() { for(new i=0; i<MAX_PLAYERS; i++) SalvarPlayer(i); return 1; } public OnPlayerRequestClass(playerid, classid) { return 1; } public OnPlayerConnect(playerid) { new Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome)); new String[100]; format(String, sizeof(String), CONTAS, Nome); if(!dini_Exists(String)) { format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Não Registrado\n\n{FFFFFF} Digite Uma Senha Para Continuar", Nome); ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_INPUT, "Registro", String, "Registrar", "Cancelar"); } else { format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Registrado\n\n{FFFFFF} Digite Sua Senha Para Logar", Nome); ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Registro", String, "Logar", "Cancelar"); } return 1; } public OnPlayerDisconnect(playerid, reason) { SalvarPlayer(playerid); return 1; } public OnPlayerDeath(playerid, killerid, reason) { if(IsPlayerConnected(killerid)) { Matou[killerid]++; } Morreu[playerid]++; return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/status", cmdtext, true, 8) == 0) { Status(playerid); return 1; } return 0; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == REGISTRO) { if(response) { if(!strlen(inputtext)) { new Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome)); new String[100]; format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Não Registrado\n\n{FFFFFF} Digite Uma Senha Para Continuar", Nome); ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_INPUT, "Registro", String, "Registrar", "Cancelar"); SendClientMessage(playerid,0x1E90FFAA,"Senha invalida, digite uma senha válida"); return 1; } new Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome)); new String[100]; format(String, sizeof(String), CONTAS, Nome); dini_Create(String); dini_Set(String,"Senha",inputtext); dini_IntSet(String,"Dinheiro",0); dini_IntSet(String,"Vida", 100); dini_IntSet(String,"Colete", 100); dini_IntSet(String,"Matou",0); dini_IntSet(String,"Morreu",0); dini_IntSet(String,"Logou",0); ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Login", "{1E90FF}Pronto você se registrou agora digite Sua Senha Para Logar-Se", "Logar", "Cancelar"); return 1; } else { SendClientMessage(playerid, 0xFF0000AA, "Você Foi Kickado Porque Não Quis Se Registrar!!"); Kick(playerid); return 1; } } if(dialogid == LOGIN) { if(response) { if(!strlen(inputtext)) { new Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome)); new String[100]; format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Registrado\n\n{FFFFFF} Digite Sua Senha Para Logar", Nome); ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Registro", String, "Logar", "Cancelar"); SendClientMessage(playerid,0x1E90FFAA,"Senha Incorreta !"); return 1; } new Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome)); new String[100]; format(String, sizeof(String), CONTAS, Nome); if(!strcmp(inputtext,dini_Get(String,"Senha"),false)) { SetarPlayer(playerid); Logou[playerid]++; SendClientMessage(playerid,0x00FF00AA,"Você Foi Logado Com Sucesso > Escolha Sua Skin!"); return 1; } else { SendClientMessage(playerid,0x00FF00AA,"Senha incorreta digite-a novamente"); format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Registrado\n\n{FFFFFF} Digite Sua Senha Para Logar", Nome); ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Registro", String, "Logar", "Cancelar"); } return 1; } else { SendClientMessage(playerid, 0xFF0000AA, "Você não quis se logar, por este motivo será Kickado"); Kick(playerid); return 1; } } return 1; } SalvarPlayer(playerid) { new Float:Vida; new Float:Colete; GetPlayerHealth(playerid, Vida); GetPlayerArmour(playerid, Colete); new Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome)); new String[50]; format(String, sizeof(String), CONTAS, Nome); dini_IntSet(String,"Dinheiro", GetPlayerMoney(playerid)); dini_FloatSet(String,"Vida", Vida); dini_FloatSet(String,"Colete", Colete); dini_IntSet(String,"Matou", Matou[playerid]); dini_IntSet(String,"Morreu", Morreu[playerid]); dini_IntSet(String,"Logou", Logou[playerid]); return 1; } SetarPlayer(playerid) { new Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome)); new String[50]; format(String, sizeof(String), CONTAS, Nome); GivePlayerMoney(playerid, dini_Int(String,"Dinheiro")); SetPlayerHealth(playerid, dini_Int(String,"Vida")); SetPlayerArmour(playerid, dini_Int(String,"Colete")); Matou[playerid] = dini_Int(String, "Matou"); Morreu[playerid] = dini_Int(String, "Morreu"); Logou[playerid] = dini_Int(String, "Logou"); return 1; } Status(playerid) { new Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome)); new String[128]; SendClientMessage(playerid, 0xFF0000AA, "================================================"); format(String, sizeof(String),"Status De %s",Nome); SendClientMessage(playerid, 0xFFFF00AA,String); format(String, sizeof(String),"Dinheiro: %d", GetPlayerMoney(playerid)); SendClientMessage(playerid, 0x1E90FFAA,String); format(String, sizeof(String),"Matou: %d",Matou[playerid]); SendClientMessage(playerid, 0x1E90FFAA,String); format(String, sizeof(String),"Morreu: %d",Morreu[playerid]); SendClientMessage(playerid, 0x1E90FFAA,String); format(String, sizeof(String),"Você Já Logou %d Vezes Neste Servidor",Logou[playerid]); SendClientMessage(playerid, 0x1E90FFAA,String); SendClientMessage(playerid, 0xFF0000AA, "================================================"); return 1; }
Alguém sabe oque tem de errado ?