Bug no login apenas para o ID 0
#1

Bom, esse bug acontece sу com o ID 0..

Estou codando um gamemode de RPG do 0 sem nenhuma base, jб estб bem " avanзado " mas sу agora que fui perceber um bug no login para o ID 0;

й o seguinte, quando um jogador loga o ID 0 volta pro RequestClass..

Aqui estб o OnPlayerConect e o OnPlayerRequestClass:

pawn Код:
public OnPlayerConnect(playerid)
{
    Timer02 = SetTimer("LimparChat", 100, true);

    SetPlayerColor(playerid, 0x00000000);
    Spawn[playerid] = 0;

    ForceClassSelection(playerid);

    LerPms[playerid] = false;
    PmBlock[playerid] = true;

    format(String, sizeof(String), "{00FF00}- {FFFFFF}%s entrou no servidor", PlayerName(playerid));
    SendClientMessageToAll(-1, String);

    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    return 1;
}
pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    new rand = random(sizeof Camera);
    SetPlayerCameraPos(playerid, Camera[rand][0], Camera[rand][1], Camera[rand][2]);
    SetPlayerCameraLookAt(playerid, Camera[rand][3], Camera[rand][4], Camera[rand][5]);
    SetPVarInt(playerid, "Camera", rand);

    Timer01 = SetTimer("Cameras", 5000, true);

    TentativasDeLogar[playerid] = 0;
    GetPlayerName(playerid, nome, sizeof(nome));
    format(arquivo, sizeof(arquivo), cJ, nome);
    if(!dini_Exists(arquivo))
    {
        format(String, sizeof(String), "\n{FFFFFF}Olб, vocк ainda nгo possuн uma conta registrada.\n\nNome: {FF0000}%s\n\n{FFFFFF}Insira uma senha para registrar-se:", nome);
        ShowPlayerDialog(playerid, DialogRegistro, DIALOG_STYLE_PASSWORD, "{FFFFFF}- Like A Life -", String, "Registrar", "Sair");
    }
    if(dini_Exists(arquivo))
    {
        format(String, sizeof(String), "\n{FFFFFF}Olб, vocк ainda nгo possuн uma conta registrada.\n\nNome: {FF0000}%s\n\n{FFFFFF}Insira sua senha para logar-se:", nome);
        ShowPlayerDialog(playerid, DialogLogin, DIALOG_STYLE_PASSWORD, "{FFFFFF}- Like A Life -", String, "Login", "Sair");
    }
    return 1;
}
Aqui estб o OnPlayerSpawn:

pawn Код:
public OnPlayerSpawn(playerid)
{
    if(Spawn[playerid] == 0)
    {
        TextDrawShowForPlayer(playerid, Horario);
        TextDrawShowForPlayer(playerid, DATA);
        PmBlock[playerid] = false;
        KillTimer(Timer01);
        KillTimer(Timer02);
        SetPlayerHealth(playerid, VMDV);
        GetPlayerName(playerid, nome, sizeof(nome));
        format(arquivo, sizeof(arquivo), cJ, nome);
        SetPlayerSkin(playerid, dini_Int(arquivo, "SkinAtual"));
        if(dini_Float(arquivo, "Vida") == 0) return 0x1;
        SetPlayerHealth(playerid, dini_Float(arquivo, "Vida"));
        SetPlayerArmour(playerid, dini_Float(arquivo, "Colete"));
        TempoExpMinuto(playerid);
        Spawn[playerid] = 1;
    }
    return 1;
}
Reply
#2

tente deletar esse ForceClassSelection(playerid); no OnPlayerConnect
Reply
#3

ai ele nгo vai pra OnPlayerRequestClass, que й onde й feito o processo de login (precisa ser lб, nгo tem como eu mudar)
Reply
#4

nгo precisa disso, quando o player conecta ele vai automaticamente pro OnPlayerRequestClass
Reply
#5

Nгo, nгo vai.

Com login box no OnPlayerConnect ele sу vai pro RequestPlayerClass depois de ter feito o login.
Reply
#6

@edit
Quote:

Com login box no OnPlayerConnect ele sу vai pro RequestPlayerClass depois de ter feito o login.

sim esse seria o correto '-'
Reply
#7

Cara, acho que vocк nгo entendeu.

O login box funciona quase perfeitamente, porйm, quando tem um jogador com o ID 0 e entra outro com qualquer ID , o ID 0 " vai" pra callback OnPlayerRequestClass. isso sу acontece com o ID 0.

Os locais que estгo os cуdigos estгo perfeitos , tudo funciona perfeitamente para os outros ID's, o bug sу ocorre para o ID 0.
Reply
#8

Tenta aк :

pawn Код:
public OnPlayerConnect(playerid)
{
    Timer02 = SetTimer("LimparChat", 100, true);

    SetPlayerColor(playerid, 0x00000000);  
    Spawn[playerid] = 0;

    ForceClassSelection(playerid);

    LerPms[playerid] = false;
    PmBlock[playerid] = true;

    format(String, sizeof(String), "{00FF00}- {FFFFFF}%s entrou no servidor", PlayerName(playerid));
    SendClientMessageToAll(-1, String);

    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    SendClientMessage(playerid, -1, " ");
    return 1;
}

pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    new rand = random(sizeof Camera);
    SetPlayerCameraPos(playerid, Camera[rand][0], Camera[rand][1], Camera[rand][2]);
    SetPlayerCameraLookAt(playerid, Camera[rand][3], Camera[rand][4], Camera[rand][5]);
    SetPVarInt(playerid, "Camera", rand);

    Timer01 = SetTimer("Cameras", 5000, true);

    TentativasDeLogar[playerid] = 0;
    GetPlayerName(playerid, nome, sizeof(nome));
    format(arquivo, sizeof(arquivo), cJ, nome);
    if(!dini_Exists(arquivo))
    {
        format(String, sizeof(String), "\n{FFFFFF}Olб, vocк ainda nгo possuн uma conta registrada.\n\nNome: {FF0000}%s\n\n{FFFFFF}Insira uma senha para registrar-se:", nome);
        ShowPlayerDialog(playerid, DialogRegistro, DIALOG_STYLE_PASSWORD, "{FFFFFF}- Like A Life -", String, "Registrar", "Sair");
    }
    if(dini_Exists(arquivo))
    {
        format(String, sizeof(String), "\n{FFFFFF}Olб, vocк ainda nгo possuн uma conta registrada.\n\nNome: {FF0000}%s\n\n{FFFFFF}Insira sua senha para logar-se:", nome);
        ShowPlayerDialog(playerid, DialogLogin, DIALOG_STYLE_PASSWORD, "{FFFFFF}- Like A Life -", String, "Login", "Sair");
    }

    Spawn[playerid] = 1;
    return 1;
}
@EDIT

Copia dnv.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)