29.09.2012, 02:06
(
Последний раз редактировалось lucaskill66; 29.09.2012 в 13:59.
)
iae galera blz queria saber se alguem poderia me ajudar a modificar esse sistema de registro/login pra quando o player errar a senha 3 vezes o ip ser salvo em uma pasta ips banidos e conta ser salva numa pasta Banidos na scriptfiles porque atualmente ele estб criando um arquivo samp.ban.
Код:
#include <a_samp> #include <DOF2> #define DIALOG_REGISTRO 1 #define DIALOG_LOGAR 2 enum Informacoes { Senha, Matou, Morreu, Dinheiro } new Player[MAX_PLAYERS][Informacoes]; new Erro[MAX_PLAYERS]; public OnGameModeInit() { SetGameModeText("Construзгo"); AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); DOF2_Exit(); return 1; } public OnPlayerConnect(playerid) { new arquivo[40], name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, 32); format(arquivo, 40, "Contas/%s.ini", name); if(DOF2_FileExists(arquivo)) { ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк й Registrado, digite sua senha para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar"); } else { ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк ainda nгo й Registrado, digite uma senha para se registrar!", "Confirma", "Cancelar"); } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { new arquivo[40], name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, 32); format(arquivo, 40, "Contas/%s.ini", name); if(dialogid == DIALOG_REGISTRO) { if(!strval(inputtext)) { ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar"); return 1; } if(!response) { Kick(playerid); return 1; } else { Player[playerid][Senha] = strval(inputtext); DOF2_CreateFile(arquivo); DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); DOF2_SaveFile(); ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк se cadastrou, agora й sу logar com sua senha registrada!", "Confirma", "Cancelar"); } } if(dialogid == DIALOG_LOGAR) { if(!strval(inputtext)) { ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar"); return 1; } if(!response) { Kick(playerid); return 1; } else { Player[playerid][Senha] = DOF2_GetInt(arquivo, "Senha"); if(strval(inputtext) == Player[playerid][Senha]) { Player[playerid][Matou] = DOF2_GetInt(arquivo, "Matou"); Player[playerid][Morreu] = DOF2_GetInt(arquivo, "Morreu"); Player[playerid][Dinheiro] = DOF2_GetInt(arquivo, "Dinheiro"); GivePlayerMoney(playerid, Player[playerid][Dinheiro]); SpawnPlayer(playerid); } else { ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar"); Erro[playerid]++; if(Erro[playerid] == 5) { SendClientMessage(playerid, -1, "Sua conta estб banida por errar 5 vezes a sua senha, contacte o Admin para retirar seu Ban!"); Ban(playerid); return 1; } } } } return 1; } public OnPlayerDisconnect(playerid) { new arquivo[40], name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, 32); format(arquivo, 40, "Contas/%s.ini", name); if(DOF2_FileExists(arquivo)) { Player[playerid][Dinheiro] = GetPlayerMoney(playerid); DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); DOF2_SaveFile(); } return 1; }