[Ajuda] Explicaзгo em Video
#1

VIDEO ☟


[ame]http://www.youtube.com/watch?v=b_x1UQLy-GY[/ame]
Reply
#2

kkkk ate videos, putz ta estranho tendi с
Reply
#3

A primeira duvida, do jogador da spawn sem se registrar, logar ou recuperar senha, й sу criar uma variбvel booleana.
E fazer a verificaзгo se ele estб logado na callback OnPlayerSpawn, e se nгo estiver vocк pode tentar usar a funзгo ForceClassSelection.

Na parte do jogador ter que aperta ESC, й sу usar a funзгo CancelSelectTextDraw.
Reply
#4

1 - Para tirar os botхes de spawn, use TogglePlayerSpectating.

2 - Vocк estб criando o arquivo do jogador assim que ele se conecta, crie somente apуs o registro.

3 - Use CancelSelectTextDraw
Reply
#5

2 problemas eu resolvi, mas o de registro ainda nгo, se ele sair antes de se registrar esta criando o arquivo dele e quando ele voltar ele nao pode se registrar pq ela ja existe pela metade

conta quando ele sair antes do registro:
Код:
PosX = 0.00000000
PosY = 0.00000000
PosZ = 0.00000000
PosA = 0.00000000
Interior = 0
Relogioupm = 9
Relogioups = 36
Dinheiro = 0
Skin = 0
Admin = 0
Level = 0
essa й a conta quando ele se registrou normalmente:
Код:
Senha = 12345
Email = SemEmail
Dinheiro = 0
Skin = 0
Admin = 0
Level = 0
PosX = 1958.23425292
PosY = 1342.38342285
PosZ = 15.37460708
PosA = 175.01397705
Interior = 0
Relogioupm = 9
Relogioups = 53
essa й a TD clicavel de registro:
pawn Код:
if(clickedid == RegistrarTXT)
{
    GetPlayerName(playerid, StrContas, sizeof(StrContas));
    format(StrContas, sizeof(StrContas), "Contas/%s.ini", Nome(playerid));
    if(!DOF2_FileExists(StrContas))
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{FFFFFF}Mundo Vida Real - Registro.", String, "Registrar", "Cancelar");
    }else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Mundo Vida Real - Login", "{FFFFFF}Voce ja possue um registro em nosso servidor \n{FFFFFF}Digite sua senha para poder logar corretamente.", "Logar", "Cancelar");
}
essa aqui й a dialog do registro:
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTRO)
    {
        if(response)
        {
            if(!strlen(inputtext))
            {
                format(String, sizeof(String), "{FFFFFF}Olб{00FF00} %s {FFFFFF}Vocк nгo й Registrado(a)!\nPor Favor uma Senha para se Registrar:", Nome(playerid));
                ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{FFFFFF}Mundo Vida Real - Registro.", String, "Registrar", "Cancelar");
                return 1;
            }
            GetPlayerName(playerid, StrContas, sizeof(StrContas));
            format(StrContas, sizeof(StrContas), "Contas/%s.ini", Nome(playerid));
            DOF2_CreateFile(StrContas);
            DOF2_SetString(StrContas, "Senha", inputtext);
            DOF2_SetString(StrContas, "Email", "SemEmail");
            DOF2_SetInt(StrContas, "Dinheiro", 0);
            DOF2_SetInt(StrContas, "Skin", 0);
            DOF2_SetInt(StrContas, "Admin", 0);
            DOF2_SetInt(StrContas, "Level", 0);
            DadosPlayer[playerid][Logado] = 1;
            minUP[playerid] = 9;
            segUP[playerid] = 59;
            DOF2_SetFloat(StrContas, "PosX", 1958.33);
            DOF2_SetFloat(StrContas, "PosY", 1343.12);
            DOF2_SetFloat(StrContas, "PosZ", 15.36);
            DOF2_SetFloat(StrContas, "PosA", 269.15);
            DOF2_SetInt(StrContas, "Interior", 0);
            GameTextForPlayer(playerid, "~r~Registrado ~w~com Sucesso", 3000, 3);
            PlayerPlaySound(playerid, 1057, 0, 0, 0);
            SendClientMessage(playerid, AZULCLARO, "| INFO | {FFFFFF}Dados Criados com Sucesso!");
            DOF2_SaveFile();
        }
        else
        {
            SendClientMessage(playerid, VERMELHO, "| INFO | {FFFFFF}Vocк foi expulso do servidor. {FF0000}Motivo: {FFFFFF}Cancelou o Registro!");
            SetTimerEx("Kickar", 500, false, "d", playerid);
            return 1;
        }
    }
Reply
#6

cria uma boorleana para verifica se ele esta logado antes de salvar.
PHP код:
new bool:varLogin[MAX_PLAYERS]; 
//OnPlayerSpawn
PHP код:
if(varLogin[playerid] == false)
varLogin[playerid] = true
//funзгo de salvar contas do seu GM
PHP код:
//na funзгo deve estar +/- assim
if(DOF2_FileExists("caminhoDoArquivo"))...
//voce vai por assim
if(DOF2_FileExists("caminhoDoArquivo") && varLogin[playerid] == true) {
//... salva os dados

nгo lembro de cabeзa se eй essa funзгo do DOF2 que verifica se um arquivo existe kk mas acho que й
Reply
#7

O problema pode estar em OnPlayerConnect ou OnPlayerRequestClass.

Procura por DOF2_CreateFile
Reply
#8

Fiz uma booleana , mas nгo adintou, continuou criando o arquivo do player antes de se registrar.

minha OnPlayerConnect

pawn Код:
public OnPlayerConnect(playerid)
{
    SpawnarInPos[playerid] = 1;
    DadosPlayer[playerid][Logado] = 1;
    return 1;
}
minha OnPlayerRequestClass

pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    TextDrawShowForPlayer(playerid, BaixoPreto);
    TextDrawShowForPlayer(playerid, CimaPreto);
    TextDrawShowForPlayer(playerid, LoginTXT);
    TextDrawShowForPlayer(playerid, BemVindos);
    TextDrawShowForPlayer(playerid, BaixoCinza);
    TextDrawShowForPlayer(playerid, CimaCinza);
    TextDrawShowForPlayer(playerid, RegistrarTXT);
    TextDrawShowForPlayer(playerid, SairTXT);
    TextDrawShowForPlayer(playerid, RSenhaTXT);
    SelectTextDraw(playerid, 0x00FF00FF);
    return true;
}
Reply
#9

Em quais publics estгo os DOF2_CreateFile que vocк estб utilizando?
Reply
#10

essas sao as publics que eu estou usando o DOF2_CreateFile

pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
    GetPlayerName(playerid, StrContas, sizeof(StrContas));
    format(StrContas, sizeof(StrContas), "Contas/%s.ini", Nome(playerid));
    GetPlayerPos(playerid, pPosX[playerid], pPosY[playerid], pPosZ[playerid]);
    GetPlayerFacingAngle(playerid, pPosA[playerid]);
    pInterior[playerid] = GetPlayerInterior(playerid);
    if(!DOF2_FileExists(StrContas))
    {
        DOF2_CreateFile(StrContas);
    }
    DOF2_SetFloat(StrContas, "PosX", pPosX[playerid]);
    DOF2_SetFloat(StrContas, "PosY", pPosY[playerid]);
    DOF2_SetFloat(StrContas, "PosZ", pPosZ[playerid]);
    DOF2_SetFloat(StrContas, "PosA", pPosA[playerid]);
    DOF2_SetInt(StrContas, "Interior", pInterior[playerid]);
       
    GetPlayerName(playerid, StrContas, sizeof(StrContas));
    format(StrContas, sizeof(StrContas), "Contas/%s.ini", Nome(playerid));
    DOF2_SetInt(StrContas, "Relogioupm", minUP[playerid]);
    DOF2_SetInt(StrContas, "Relogioups", segUP[playerid]);
    SalvarDados(playerid);
    TextDrawHideForPlayer(playerid, Ntick);
    HideProgressBarForAll(FomeB[playerid]);
    HideProgressBarForAll(SedeB[playerid]);
    HideProgressBarForAll(SonoB[playerid]);
    return 1;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTRO)
    {
        if(response)
        {
            if(!strlen(inputtext))
            {
                format(String, sizeof(String), "{FFFFFF}Olб{00FF00} %s {FFFFFF}Vocк nгo й Registrado(a)!\nPor Favor uma Senha para se Registrar:", Nome(playerid));
                ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{FFFFFF}Mundo Vida Real - Registro.", String, "Registrar", "Cancelar");
                return 1;
            }
            GetPlayerName(playerid, StrContas, sizeof(StrContas));
            format(StrContas, sizeof(StrContas), "Contas/%s.ini", Nome(playerid));
            DOF2_CreateFile(StrContas);
            DOF2_SetString(StrContas, "Senha", inputtext);
            DOF2_SetString(StrContas, "Email", "SemEmail");
            DOF2_SetInt(StrContas, "Dinheiro", 0);
            DOF2_SetInt(StrContas, "Skin", 0);
            DOF2_SetInt(StrContas, "Admin", 0);
            DOF2_SetInt(StrContas, "Level", 0);
            DadosPlayer[playerid][Logado] = 1;
            minUP[playerid] = 9;
            segUP[playerid] = 59;
            DOF2_SetFloat(StrContas, "PosX", 1958.33);
            DOF2_SetFloat(StrContas, "PosY", 1343.12);
            DOF2_SetFloat(StrContas, "PosZ", 15.36);
            DOF2_SetFloat(StrContas, "PosA", 269.15);
            DOF2_SetInt(StrContas, "Interior", 0);
            GameTextForPlayer(playerid, "~r~Registrado ~w~com Sucesso", 3000, 3);
            PlayerPlaySound(playerid, 1057, 0, 0, 0);
            SendClientMessage(playerid, AZULCLARO, "| INFO | {FFFFFF}Dados Criados com Sucesso!");
            DOF2_SaveFile();
        }
        else
        {
            SendClientMessage(playerid, VERMELHO, "| INFO | {FFFFFF}Vocк foi expulso do servidor. {FF0000}Motivo: {FFFFFF}Cancelou o Registro!");
            SetTimerEx("Kickar", 500, false, "d", playerid);
            return 1;
        }
    }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)