SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 12 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

    [Basic System]Sistema de Login [][][]Seek Script[][][][]

    BiohazaarD_Script
    BiohazaarD_Script
    --> Postador Iniciante
    --> Postador Iniciante


    Celular : 2192290436
    Mensagens : 18
    Moedas : 3870
    Data de inscrição : 16/11/2013
    Idade : 25
    Localização : Rio de Janeiro

    [Basic System]Sistema de Login [][][]Seek Script[][][][] Empty [Basic System]Sistema de Login [][][]Seek Script[][][][]

    Mensagem por BiohazaarD_Script Sáb 14 Dez 2013 - 23:55

    Daew Galera Aqui eo Seek e Vim Trazer um Tutorial Para Voceis Para Quem ta Começando um Servidor SA-MP e Quer Ter Sua GM Unica
    Entao Eu Trouxe um Basico Sistema de Login Para Voces Porem em Sua GM Blz

    ::Entao Vamos Começar::

    ::Começamos Definindo uma Include::
    #include :
    Download da Include no Fim do Tutorial

    ::Agora Vamos Definir umas Dialogs::
    #define DIALOG_REGISTRO 2000:



    #define DIALOG_LOGAR 2001:

    Nao Se Esqueçam de Definir as Dialogs se nao o Sistema Nao Ira Pegar

    ::Agora Vamos Adicionar Algumas Cores::


    #define BRANCO "{FFFFFF}" #define VERMELHO "{F81414}" #define VERDE "{00FF22}" #define AZUL CLARO "{00CED1}":


    ::Agora Vamos criar uma nova variavel, em qualquer lugar abaixo de seus defines::


    new gPlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];:



    Bem Galera Chegou a Parte de Definimos a Pasta onde Serao Salvas as Contas
    Entao Vamos Criar uma Funçao Stock


    stock ObterINI(playerid) { new conta[64]; format(conta,30,"Contas/%s.ini",gPlayerName[playerid]); return conta; }:



    A função stock vai carregar o arquivo do usuário.



    Estaremos utilizando a função 'fexist' nativo para procurar nosso arquivo. Parâmetros são definidos para a nossa função de ações que nós criamos. Se o arquivo existir, você receberá um dialog de "Login". Se isso não acontecer, você receberá uma dialog registo.



    public OnPlayerConnect(playerid) { GetPlayerName(playerid, gPlayerName[playerid], MAX_PLAYER_NAME); if (fexist(ObterINI(playerid))) { ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT,""BRANCO"Login",""BRANCO"Digite sua senha abaixo para efetuar login.","logar","Quit"); } else { ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT,""BRANCO"Registrando",""BRANCO"Digite sua senha abaixo para registrar uma nova conta.","Registrar","Quit"); } return 1; }:



    Vá na callback OnDialogResponse e adicione isto dentro.


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch( dialogid ) { case DIALOG_REGISTRO: { if (!response) return Kick(playerid); if (response) { if(!strlen(inputtext)) { ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, ""BRANCO"Registrando...",""VERMELHO"Você digitou uma senha inválida.\n"BRANCO"Digite sua senha abaixo para registrar uma nova conta.","Registro","Quit"); } if(INI_Open(ObterINI(playerid))) { INI_WriteString("Senha",inputtext); INI_WriteInt("Score",1); INI_WriteInt("Dinheiro",5000); INI_WriteInt("Admin",0); INI_Save(); INI_Close(); ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT,""BRANCO"Logar",""BRANCO"Digite sua senha abaixo para efetuar login.","Logar","Quit"); } } } case DIALOG_LOGAR: { if ( !response ) return Kick ( playerid ); if( response ) { if(!strlen(inputtext)) { ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT, ""BRANCO"Logar",""VERMELHO"Você digitou uma senha inválida.\n"BRANCO"Digite sua senha abaixo para efetuar login.","Logar","Quit"); } if(INI_Open(ObterINI(playerid))) { INI_ReadString(PlayerInfo[playerid][pSenha],"Senha",20); if(strcmp(inputtext,PlayerInfo[playerid][pSenha],false)) { ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT, ""BRANCO"Logar",""VERMELHO"Você digitou uma senha incorreta.\n"BRANCO"Digite sua senha abaixo para acessar.","Logar","Quit"); } SetPlayerScore( playerid, INI_ReadInt("Score" ) ); ResetPlayerMoney( playerid ); GivePlayerMoney( playerid, INI_ReadInt( "Dinheiro" ) ); PlayerInfo[playerid][pAdmin] = INI_ReadInt("Admin"); INI_Close(); } } } } return 1; }:



    Explicaçao Rapida do Seek


    Case Dialog REGISTRO:

    Em vez de usar o 'if' para definir minhas dialogs, eu usei case em que parecem ter menos espaço e são supostamente 'rápido'. (! response) a função se o primeiro botão não foi clicado, ele irá kickar o jogador.

    O if(!strlen(inputtext)) explica que nada foi digitado na caixa de dialog (input), você seria então solicitado a outra caixa de dialog que mostra 'Senha incorreta'.

    Se tudo correr bem, o INI_Open função é então executado que carrega e abre o arquivo de usuários. Uma vez aberto, INI_WriteInt dos INI_WriteString 'outras funções' pode ser chamado. Em seguida, é terminar pelo "INI_Save 'função que salva os valores que tenham sido estabelecidas e / ou cordas que tenha sido inscrita. Finalmente, 'INI_Close' fecha o arquivo de usuários.

    Uma vez terminado, você será solicitado para o dialog "Login".




    Case Dialog LOGAR

    A única coisa que está acontecendo (com exceção do userfile sendo aberta e fechada), o 'INI_ReadInt' e 'INI_ReadString' função é chamada. Quando o jogador faz login, ele carrega 'stats' dos jogadores ou por assim dizer.

    Exemplo: Se o jogador teve, $ 1000 reais, antes que ele desconectado, "INI_ReadInt" a função irá ler esse valor, que seria chamado com GivePlayerMoney para carregar o valor do jogador Dinheiro.

    ><><><




    Finalmente, vamos precisar para salvar o stats jogador, quando ele se desconecta.



    public OnPlayerDisconnect(playerid, reason) { if(INI_Open(ObterINI(playerid))) { INI_WriteInt("Score",PlayerInfo[playerid][pScore]); INI_WriteInt("Dinheiro",GetPlayerMoney(playerid)); INI_WriteInt("Admin",PlayerInfo[playerid][pAdmin]); INI_Save(); INI_Close(); } return 1; }:











    Link da Include
    http://www.aussiegameserver.com/slick/www/samp/sii.php


    Inserindo a Include na GM

    #include #include // Include SII.inc #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 new player_name[MAX_PLAYERS][MAX_PLAYER_NAME]; new bool: player_loggedin[MAX_PLAYERS]; main() { } public OnGameModeInit() { AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); return 1; } public OnPlayerConnect(playerid) { GetPlayerName(playerid, player_name[playerid], MAX_PLAYER_NAME); return 1; } public OnPlayerDisconnect(playerid) { player_loggedin[playerid] = false; return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(register, 8, cmdtext); dcmd(login, 5, cmdtext); return 0; } dcmd_register(playerid, params[]) { if (player_loggedin[playerid]) // Player is already registered and logged in { SendClientMessage(playerid, 0x0040FFAA, "You are already registered and logged in."); return 1; } else if (!params[0]) // No password was specified { SendClientMessage(playerid, 0x0040FFAA, "Usage: /register [password]"); return 1; } else if (INI_Open("Users.ini")) // Try open "Users.ini" { new password[128]; if (INI_ReadString(password, player_name[playerid], MAX_PLAYER_NAME)) // Is player already registered? { SendClientMessage(playerid, 0x0040FFAA, "You are already registred, please /login."); } else // Register player { INI_WriteString(player_name[playerid], params); SendClientMessage(playerid, 0x0040FFAA, "Registration successful."); } INI_Save(); // Save all the data we have written to "Users.ini" INI_Close(); // Remember to close open files when finished return 1; } SendClientMessage(playerid, 0x0040FFAA, "Registration failed."); // There was an error opening "Users.ini" return 1; } dcmd_login(playerid, params[]) { if (player_loggedin[playerid]) // Player is already logged in { SendClientMessage(playerid, 0x0040FFAA, "You are already logged in."); return 1; } else if (!params[0]) // No password was specified { SendClientMessage(playerid, 0x0040FFAA, "Usage: /login [password]"); return 1; } else if (INI_Open("Users.ini")) // Try open "Users.ini" { new password[128]; if (INI_ReadString(password, player_name[playerid], MAX_PLAYER_NAME)) // Read players data (if it exists) { if (!strcmp(password, params, false)) // Login player { player_loggedin[playerid] = true; SendClientMessage(playerid, 0x0040FFAA, "Login successful."); } else // Incorrect password { SendClientMessage(playerid, 0x0040FFAA, "Incorrect Password."); } } else // No data was found for the player { SendClientMessage(playerid, 0x0040FFAA, "Please /register first."); } INI_Close(); // Remember to close open files when finished, no need to save this time return 1; } SendClientMessage(playerid, 0x0040FFAA, "Login failed."); // There was an error opening "Users.ini" return 1; } // Other functions include INI_Exists("filename"), INI_WriteInt("key", value), INI_WriteFloat("key", Float: value), // value = INI_ReadInt("key"), Float: value = INI_ReadFloat("key"), INI_RemoveEntry("key") and INI_Remove("filename").:




    Bem Obrigado Por Ler 
    E Ate o Proximo Qualquer Duvida Skype : Crissy.Plays

      Data/hora atual: Sáb 27 Abr 2024 - 13:28