O que é isso?
É um tutorial simples de se registrar e fazer login usando o Y_INI include
O que é Y_INI?
Y_INI é extensa é um leitor com base em ini também conhecido como "sistema de gerenciamento de arquivos", criado por ******. Este é incluído na biblioteca juntamente com YSI outro inclui como Y_COMMANDS e Y_GROUPS.
Passo 1
Abra o seu gm e haci Adiciona inclui:
peão Код:É um tutorial simples de se registrar e fazer login usando o Y_INI include
O que é Y_INI?
Y_INI é extensa é um leitor com base em ini também conhecido como "sistema de gerenciamento de arquivos", criado por ******. Este é incluído na biblioteca juntamente com YSI outro inclui como Y_COMMANDS e Y_GROUPS.
Passo 1
Abra o seu gm e haci Adiciona inclui:
- Código:
#include <YSI\y_ini>
Ele contém tudo o que você precisa para criar e registrar o nosso usuário
Passo 2
Definir as nossas caixas de diálogo
peão Код:Passo 2
Definir as nossas caixas de diálogo
- Código:
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
#define DIALOG_SUCCESS_1 3
#define DIALOG_SUCCESS_2 4
Passo 3
Defina a pasta ini
peão Код:Defina a pasta ini
- Código:
#define PATH "/Users/%s.ini"
Você deve criar uma pasta em seus arquivos de script usuários da pasta.
Passo 4
adicione alguns núcleos
peão Код:Passo 4
adicione alguns núcleos
- Código:
#define COL_WHITE "{FFFFFF}"//Color Blanco
#define COL_RED "{F81414}"//Color rojo
#define COL_GREEN "{00FF22}"//Color verde
#define COL_LIGHTBLUE "{00CED1}"//Azul Claro
Etapa 5
Vamos a Enumerar para poder salvar nossas variáveis
peão Код:Vamos a Enumerar para poder salvar nossas variáveis
- Código:
enum pInfo
{
pPass, //Clave
pCash, //Dinero
pAdmin, //Administracion
pKills, //Muertes a FAvor
pDeaths //Muertes en contra
}
new PlayerInfo [ MAX_PLAYERS ] [ pInfo ] ;
Passo 6
Agora crie o código para carregar os dados do usuário, adicione.
peão Код:Agora crie o código para carregar os dados do usuário, adicione.
- Código:
encaminhar LoadUser_data ( playerid,nome [ ] , valor [ ] ) ;
public LoadUser_data ( playerid,name [ ] ,value [ ] )
{
INI_Int ( "senha" , PlayerInfo [ playerid ] [ pPass ] ) ;
INI_Int ( "
dinheiro" ,PlayerInfo [ playerid ] [ pCash ] ) ;
INI_Int ("Admin" , PlayerInfo [ playerid ] [ pAdmin ] ) ;
INI_Int ( "Mata" ,PlayerInfo [ playerid ] [ pKills ] ) ;
INI_Int ( "Mata contra" ,PlayerInfo [ playerid ] [ pMortes ] ) ; //Não sabia como mas llamarle xD
return 1 ;
}
Passo 7
Nós vamos criar uma função simples
peão Код:Nós vamos criar uma função simples
- Código:
stock UserPath ( playerid )
{
nova string [ 128 ] , playername [ MAX_PLAYER_NAME ] ;
GetPlayerName ( playerid,playername, sizeof ( playername ) ) ;
formato ( string, sizeof ( string ) , PATH, nome do jogador ) ;
string de retorno ;
}
Agarre Isso sу neste caso, o "PATH" arquivos do usurio.
Passo 8
Adicione esta linha abaixo do ciclo anterior
peão Код:Passo 8
Adicione esta linha abaixo do ciclo anterior
- Código:
/*Créditos para Dracoblue*/
stock udb_hash ( buf [ ] ) {
novo comprimento = strlen ( buf ) ;
novo s1 = 1 ;
novo s2 = 0 ;
novo n;
for ( n = 0 ; n < comprimento; n ++ )
{
s1 = ( s1 + buf [ n ] ) % 65521 ;
s2 = ( s2 + s1 ) % 65521 ;
}
return ( s2 << 16 ) + s1;
}
Este código é usado para definir senhas
Passo 9
Agora vamos usar OnPlayerConnect para verificar se o aparelho está conectado
peão Код:Passo 9
Agora vamos usar OnPlayerConnect para verificar se o aparelho está conectado
- Código:
public OnPlayerConnect ( playerid )
{
if ( fexist ( UserPath ( playerid ) ) )
{
INI_ParseFile ( UserPath ( playerid ) , "LoadUser_%s" , .bExtra = true, .extra = playerid ) ;
ShowPlayerDialog ( playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "" COL_WHITE "Login" , "" COL_WHITE "Digite sua senha para entrar." ,"Entrar" , "Sair" ) ;
}
else
{
ShowPlayerDialog ( playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "" COL_WHITE "Registrando..." , "" COL_WHITE "Digite sua senha para criar uma nova conta" , "Register" , "Sair" ) ;
}
retorna 1 ;
}
Passo 10
peão Код:- Código:
public OnDialogResponse ( playerid, dialogid, resposta, listitem, inputtext [ ] )
{
switch ( dialogid )
{
case DIALOG_REGISTER :
{
if ( ! response ) return Kick ( playerid ) ;
if ( resposta )
{
if ( ! strlen ( inputtext ) ) return ShowPlayerDialog ( playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE "Registrando..." , "" COL_RED "Escrevi uma chave inválida. \n " COL_WHITE "Escreva a sua chave para registrar uma nova conta" , "Registrar" , "Sair" ) ;
novo INI : File = INI_Open ( UserPath ( playerid ) ) ;
INI_SetTag ( Arquivo, "dados" ) ;
INI_WriteInt ( Arquivo, "Senha" ,) ;
INI_WriteInt ( Arquivo, "Dinheiro" , 0 ) ;
INI_WriteInt ( Arquivo, "Administrador" , 0 ) ;
INI_WriteInt ( Arquivo, "Matas" , 0 ) ;
INI_WriteInt ( Arquivo, "Mortes" , 0 ) ;
INI_Close ( Arquivo ) ;
SetSpawnInfo ( playerid, 0 , 0 ,1958.33 , 1343.12 , 15.36 , 269.15 , 0 , 0 , 0 , 0 , 0 , 0 ) ;
SpawnPlayer ( playerid ) ;
ShowPlayerDialog ( playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX, "" COL_WHITE "Listo!" , "" COL_GREEN "Reloguea Pronto conta criada para salvar suas estatísticas" , "Ok" , "" ) ;
}
}
case DIALOG_LOGIN :
{
if ( ! resposta ) return Chute ( playerid ) ;
if ( resposta )
{
if ( udb_hash ( inputtext ) == PlayerInfo [ playerid ] [ pPass ] )
{
INI_ParseFile ( UserPath ( playerid ) , "LoadUser_%s" , .bExtra = true, .extra =ID do jogador ) ;
GivePlayerMoney ( playerid, PlayerInfo [ playerid ] [ pCash ] ) ;
ShowPlayerDialog ( playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX, "" COL_WHITE "Listo" , "" COL_GREEN "Sua conta foi logada" , "Ok" , "" ) ;
}
else
{
ShowPlayerDialog ( playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, """" COL_RED "Você digitou uma chave inválida. \n " COL_WHITE "Digite sua senha para login." , "Entrar" , "Sair" ) ;
}
retorna 1 ;
}
}
}
return 1 ;
}
Passo 11
Lembre-se de manter essas variáveis OnPlayerDisconnect ser usadas para salvar esta variável
peão Код:Lembre-se de manter essas variáveis OnPlayerDisconnect ser usadas para salvar esta variável
- Código:
public OnPlayerDisconnect ( playerid, razão )
{
novo INI : File = INI_Open ( UserPath ( playerid ) ) ;
INI_SetTag ( Arquivo, "dados" ) ;
INI_WriteInt ( Arquivo, "Dinheiro" , GetPlayerMoney ( playerid ) ) ;
INI_WriteInt ( Arquivo, "Admin" , PlayerInfo [ playerid ] [ pAdmin ] ) ;
INI_WriteInt ( Arquivo, "Mata" , PlayerInfo [ playerid ] [ pKills ] ) ;
INI_WriteInt ( Arquivo, "Mortes" , PlayerInfo [ playerid ] [ pMortes ] ) ;
INI_Close ( Arquivo ) ;
retornar 1 ;
}
Passo 12
Adicionar este ahy também que, a fim de ser gravado mortes OnPlayerDeath
peão Код:Adicionar este ahy também que, a fim de ser gravado mortes OnPlayerDeath
- Código:
public OnPlayerDeath ( playerid, killerid, razão )
{
if ( killerid != INVALID_PLAYER_ID )
{
PlayerInfo [ killerid ] [ pKills ] ++ ;
}
PlayerInfo [ playerid ] [ pMortes ] ++ ;
retornar 1 ;
}
Baseado em um post de: Kush
Traduzido e modificado por Host
Qualquer coisa Avisen
Se você ver um erro Corrija-me por favor
Traduzido e modificado por Host
Qualquer coisa Avisen
Se você ver um erro Corrija-me por favor
Creditos: Host