Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Entrar

Sistema de Registro

power_settings_newInicie sessão para responder
+10
Preiboy
Pedro_Miranda
Josma
brN_Freeze
Rodney_Francalim
Woozie_Fusion
[BGL]jonas_OwNer
►ωнƒυѕιση™
Rafael_Legends
VitoR_Clown
14 participantes

descriptionSistema de Registro EmptySistema de Registro

more_horiz

Código:

#include <a_samp>
#include <dini>
#define nomeservidor FusioNGames
#define dialogregistrar 2
#define dialoglogin 1
new pLogado[MAX_PLAYERS];
enum pInfo
{
    pAdmin
};
new FusioN_Info[MAX_PLAYERS][pInfo];


Código:

public OnPlayerRequestClass(playerid, classid)
{
    new string[256];
    new registrado[256];
    format(registrado, sizeof(registrado), "Contas/%s.ini", PlayerName(playerid));
    if(pLogado[playerid] == 1)
    {
        SpawnPlayer(playerid);
       return 1;
     }
    if(dini_Exists(registrado))
    {
        format(string,sizeof(string),"Login do servidor: NomeDoServidor, digite sua senha");
        ShowPlayerDialog(playerid, dialoglogin, DIALOG_STYLE_INPUT, "Digite sua senha para logar", string, "Logar", "Sair");
    }
    else
    {
      format(string,sizeof(string),"Registro do servidor: NomeDoServidor, digite sua senha:");
      ShowPlayerDialog(playerid, dialogregistrar, DIALOG_STYLE_INPUT, "Digite sua senha para se registrar", string, "Registrar", "Sair");
    }
   return 1;
}


Código:

public OnPlayerConnect(playerid)
{
    pLogado[playerid] = 0;
    FusioN_Info[playerid][pAdmin] = 0;
    return 1;
}


Código:

public OnPlayerDisconnect(playerid, reason)
{
        SalvarContas(playerid);
   return 1;
}


Código:

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new arquivo[256];
    new string[256];
    if(dialogid == dialoglogin)
   {
      if(response == 0)
      {
            format(string,sizeof(string),"Login do servidor: NomeDoServidor, digite sua senha");
            ShowPlayerDialog(playerid, dialoglogin, DIALOG_STYLE_INPUT, "Digite sua Senha para Logar", string, "Logar", "Sair");
         return 1;
      }
      if(response >= 1)
      {
         if(strlen(inputtext) <= 0)
         {
                format(string,sizeof(string),"Login do servidor: NomeDoServidor, digite sua senha");
              ShowPlayerDialog(playerid, dialoglogin, DIALOG_STYLE_INPUT, "Digite sua Senha para Logar", string, "Logar", "Sair");
         }
         else
         {
            format(arquivo, sizeof(arquivo), "Contas/%s.ini", PlayerName(playerid));
               if(dini_Exists(arquivo))
            {
                  if(strcmp(inputtext , dini_Get(arquivo,"Senha"), true ) == 0 )
                  {
                        pLogado[playerid] = 1;
                        CarregarPlayer(playerid);
                        SpawnPlayer(playerid);
                    }
                  else
                  {
                        SendClientMessage(playerid, 0x0080C0AA , "Sua senha está incorreta");
                        format(string,sizeof(string),"Login do servidor: NomeDoServidor, digite sua senha");
                        ShowPlayerDialog(playerid, dialoglogin, DIALOG_STYLE_INPUT, "Digite sua Senha para Logar", string, "Logar", "Sair");
                  }
            }
         }
      }
      return 1;
   }
   if(dialogid == dialogregistrar)
   {
      if(response == 0)
      {
            format(string,sizeof(string),"Registro do servidor: NomeDoServidor, digite sua senha");
         ShowPlayerDialog(playerid, dialogregistrar, DIALOG_STYLE_INPUT, "Digite sua senha para se registrar", string, "Registrar", "Sair");
         return 1;
      }
      if(response >= 1)
      {
         if(strlen(inputtext) < 4 || strlen(inputtext) > 16)
            {

              SendClientMessage(playerid, 0xFFFF00AA, "Sua senha deve conter no mínimo 4 e no máximo 16 caracteres!");
              format(string,sizeof(string),"Registro do servidor: NomeDoServidor, digite sua senha");
           ShowPlayerDialog(playerid, dialogregistrar, DIALOG_STYLE_INPUT, "Digite sua senha para se registrar", string, "Registrar", "Sair");
           return 1;
            }
         else
         {
              SetPlayerHealth(playerid, 100);
                SendClientMessage(playerid,0xFFFF00AA , "Você se registrou com sucesso !");
                format(arquivo, sizeof(arquivo), "Contas/%s.ini", PlayerName(playerid));
                dini_Create(arquivo);
                dini_Set(arquivo,"Senha",inputtext);
                RegistrarPlayer(playerid);
                format(string,sizeof(string),"Login do servidor: NomeDoServidor, digite sua senha");
                ShowPlayerDialog(playerid, dialoglogin, DIALOG_STYLE_INPUT, "Digite sua senha para logar", string, "Logar", "Sair");
         }
      }
      return 1;
     }
   return 1;
}


Código:

stock PlayerName(playerid)
{
   new Name[MAX_PLAYER_NAME];
   GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
   return Name;
}


Código:

stock RegistrarPlayer(playerid)
{
        new arquivo[64];
        format(arquivo,sizeof(arquivo),"Contas/%s.ini",PlayerName(playerid));
      dini_Create(arquivo);
       dini_Set(arquivo,"Admin",FusioN_Info[playerid][pAdmin]);
        return 1;
}


Código:

stock CarregarPlayer(playerid)
{
        new arquivo[64];
        format(arquivo,sizeof(arquivo),"Contas/%s.ini",PlayerName(playerid));
       FusioN_Info[playerid][pAdmin] = dini_Int(arquivo,"Admin");
        return 1;
}


Código:

stock SalvarContas(playerid)
{
   new arq[64];
   format(arq, sizeof(arq), "Contas/%s.ini", PlayerName(playerid));
   dini_IntSet(arq,"Admin",FusioN_Info[playerid][pAdmin]);
   return 1;
}



Última edição por Monster_FusioN em Seg 04 Abr 2011, 09:48, editado 3 vez(es)

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
Vlw ae Smile

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
Nice work! Very Happy
Simples é utíl.

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
8/10 Very Happy

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
Boa monster,muito bom para quem quer se aventurar em fazer seu propio game mode.

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
kkkkkkkkkkkkkkkkk esse ai deu CTRL + C dps CTRL + V nos Code de um GM kapskapskpaks

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
@Woozie
kkkkkkkkkkkkkkkkk esse ai deu CTRL + C dps CTRL + V nos Code de um GM kapskapskpaks
~
Faz melhor então.
-
@TOPIC
~
Parabéns, e lembrando ao pessoal, que vocês tem que criar a pasta 'Contas', dentro da pasta scriptfiles, ou quando você for registrar, tipo...NUNCA vai se registrar, isso já aconteceu comigo, era tenso.
-
@EDIT
~
E no OnPlayerDisconnect põe tudo o que está na stock RegistrarJogador(ou player, sei lá), pra salvar o que o player havia feito, ou cria um Settimer e faz atualizações constantes(arriscado).

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
Woozie_Fusion escreveu:
kkkkkkkkkkkkkkkkk esse ai deu CTRL + C dps CTRL + V nos Code de um GM kapskapskpaks


Sim dei ctrl + c e ctrl + v, mano se tu nunca me viu codando porque vem falar merda ?
Eu não estaria de Lider da FusioN se eu não fosse um Otimo Scripter !!

OBS: Tirei a pastebin caso queiram que eu coloque ela devolta é só falar mais tem tudo aii que estava na pastebin só oque importa para funcionar OK ??

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
Boa Monster, Very Happy

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz

Código:

#define nomeservidor FusioNGames

Isso não vai funcionar, vai dar Undefined Symbol, se é uma mensagem deveria estar entre aspas, alias, foi por isso que você não deixou espaço entre o N e o G né?

Código:

new pLogado[MAX_PLAYERS];
enum pInfo
{
    pAdmin
};
new FusioN_Info[MAX_PLAYERS][pInfo];

Se o enum é usado pra economizar array's por que criar um enum com apenas uma array? É a mesma coisa que criar apenas a variável com o valor MAX_PLAYERS.
E se o enum é usado pra economizar array's por que você colocou o pLogado fora do enum?

Código:

new string[256];
    new registrado[256];
    format(registrado, sizeof(registrado), "Contas/%s.ini", PlayerName(playerid));

Cara, como você cria uma string de 256 arrays pra acumular 35 cells? Isso é puro desperdício.

Código:

    if(pLogado[playerid] == 1)
    {
        SpawnPlayer(playerid);
      return 1;
      }

Se essa variável só assume dois valores por que não usar bool?

Código:

 new arquivo[256];
    new string[256];

Você recriou as strings com 256 arrays de novo cara...

Código:

if(dialogid == dialoglogin)
  {
      if(response == 0)
      {
            format(string,sizeof(string),"Login do servidor: NomeDoServidor, digite sua senha");
            ShowPlayerDialog(playerid, dialoglogin, DIALOG_STYLE_INPUT, "Digite sua Senha para Logar", string, "Logar", "Sair");
        return 1;
      }
      if(response >= 1)
      {
        if(strlen(inputtext) <= 0)
        {
                format(string,sizeof(string),"Login do servidor: NomeDoServidor, digite sua senha");
              ShowPlayerDialog(playerid, dialoglogin, DIALOG_STYLE_INPUT, "Digite sua Senha para Logar", string, "Logar", "Sair");
        }


Sua identação tá ruim, era mais fácil você usar if(response) e if(!strlen(inputtext))

Código:

                  }
            }
        }
      }

Vejo que você ainda não aprendeu usar return.

Código:

if(response >= 1)

É impossível response ser maior que 1

Código:

stock RegistrarPlayer(playerid)
{
        new arquivo[64];
        format(arquivo,sizeof(arquivo),"Contas/%s.ini",PlayerName(playerid));
      dini_Create(arquivo);
      dini_Set(arquivo,"Admin",FusioN_Info[playerid][pAdmin]);
        return 1;
}

Você criou quase o dobro de arrays do que precisa, criou uma stock inútil cujo objetivo é fazer o que poderia ser facilmente ordenado no próprio response do dialog. O mesmo serve pra CarregarPlayer e pra SalvarConta.

Em resumo, seu código é ruim, bugado, lento, mal otimizado, de difícil compreensão para os leigos e principalmente fora de lógica.

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
5/10

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
5/10

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
Não gostei, 2 razões:
I - Usa dini, ja já vou postar em Y_INI.
II - Código errado, como o propio Chaink disse.

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
Concordo com a primeira razão do Sergio, Y_INI e DOF2 os melhores..

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
5/10

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
tambem, isso ai ja ta velho né!
mas nao gostei muito do mesmo jeito :s

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
SergioLoko escreveu:
Não gostei, 2 razões:
I - Usa dini, ja já vou postar em Y_INI.
II - Código errado, como o propio Chaink disse.


Dini não é tão rápido nem tem tantas opções de uso mas é melhor estruturado e é mais seguro de usar.(Duvidas, pergunte ao Chainksain ou ao Pedro sobre o sistema que desenvolvi pra testar esses manipuladores de arquivos).

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
Exatamente.

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
Mesmo assim, causa diferença quando tem 100 pessoas on line.

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
Sim causa, assim como causaria se tivesse apenas 1 player online, a questão é, essa diferença seria notável?
Supondo que um manipulador de arquivos seja alguns ms mais lento que outro, juntando todos esses ms's daria quanto tempo de diferença? Um segundo? Dois? hoje em dia no samp é difícil achar um servidor com 100 players, e os poucos que tem já usam MySQL à muito tempo.

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
eu nem gosto de mysql...
prefiro Y_INI

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
Odeio MySQL. Mas possibilita interagir com outros bancos de dados sem precisar de um conhecimento intermediário em outras linguagens.

descriptionSistema de Registro EmptyRe: Sistema de Registro

more_horiz
privacy_tip Permissões neste sub-fórum
Não podes responder a tópicos
power_settings_newInicie sessão para responder