Portal SAMP
[Ajuda] Login banido - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Login banido (/showthread.php?tid=2680)



Login banido - imaginare - 19/08/2022

Bom dia, estou futricando/trabalhando em um projeto, pretendo começar a estudar/criar um servidor de Dayz, estou usando uma GM base do Kitten, na qual não tem muito suporte, mas também é justo é uma GM muito complexa e bem feita porém há alguns problemas na hora de ligar algumas versões dela, de todas essas versões a que eu mais gostei eu tive alguns bugs na hora de compilar e etc e consegui resolver, porém quando logo no servidor eu já entro banido no servidor e não faço ideia do que seja e o ban é o da própria GM.
acredito ser algo relacionado ao banco mysql mas sou bem noob nessa parte e como eu disse também estou aproveitando o projeto para estudo e ta sendo útil,
todos os plugins estão carregando e alguns foram recompilados.
[Imagem: HPs3Gj1.png]


RE: Login banido - Magrinho93 - 19/08/2022

Você deve verificar no gamemode onde mostra esse dialog para localizar as colunas e tabela onde esta banindo a conta


RE: Login banido - xbruno1000x - 19/08/2022

Pode haver alguma proteção relacionada ao IP do servidor. Tipo, o Ip do servidor oficial era X.X.X.X:7777 e você está tentando entrar nessa GM rodando no Ip Y.Y.Y.Y:7776. Mas é difícil especular qual seria o motivo do ban, o ideal seria você revisar as publics OnPlayerConnect, OnPlayerRequestClass e as outras chamadas no momento do login ou antes.


RE: Login banido - imaginare - 20/08/2022

(19/08/2022 12:15)Magrinho93 Escreveu: Você deve verificar no gamemode onde mostra esse dialog para localizar as colunas e tabela onde esta banindo a conta

Primeiramente desculpa pela demora para voltar aqui com algum feedback e segundamente muito obrigado por reservar seu tempo para me responder, é de extrema importância para mim conseguir logar nessa GameMode e sua atenção é valiosa <3 tamo junto man.
enfim...
esse é o mysql_log após ligar o servidor : 
Código:
[23:20:39] CMySQLHandler::CMySQLHandler() - constructor called.

[23:20:39] CMySQLHandler::CMySQLHandler() - Connecting to "127.0.0.1" | DB: "dayzdb" | Username: "root" ...

[23:20:39] CMySQLHandler::Connect() - Connection was successful.

[23:20:39] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.

[23:20:39] >> mysql_query( Connection handle: 1 )

[23:20:39] CMySQLHandler::Query(SELECT * FROM `statsglobal` WHERE gStatsID = '1') - Successfully executed.

[23:20:39] >> mysql_store_result( Connection handle: 1 )

[23:20:39] CMySQLHandler::StoreResult() - Result was stored.

[23:20:39] >> mysql_fetch_row_format( Connection handle: 1 )

[23:20:39] >> mysql_free_result( Connection handle: 1 )

[23:20:39] CMySQLHandler::FreeResult() - Result was successfully free'd.
Código:
este é o mysql log após logar, contém 1 erro ali mas não consegui resolve-lo, não manjo muito de mysql


[23:22:52] CMySQLHandler::Query(SELECT * FROM `banlog` WHERE ( `Name` = 'Imaginare' OR `pIPBanned` = '192.168.15.4' ) AND `pAccountLock` = '1' LIMIT 1) - An error has occured. (Error ID: 1054, Unknown column 'Name' in 'where clause')

[23:22:52] >> mysql_store_result( Connection handle: 1 )

[23:22:52] CMySQLHandler::StoreResult() - No data to store.

[23:22:52] >> mysql_num_rows( Connection handle: 1 )

[23:22:52] CMySQLHandler::NumRows() - You cannot call this function now. (Reason: Dead Connection)

[23:22:52] >> mysql_fetch_row_format( Connection handle: 1 )

[23:22:52] CMySQLHandler::FetchRow() - You cannot call this function now. (Reason: Empty Result)
esta é a parte de ban
Código:
stock CheckBan(playerid)
{
       new Query[500],playerIP[16],timeBanned[128],largestringtwo[210],adminName[24],bannedName[24],reasonBanned[128];
    GetPlayerIp(playerid, playerIP, sizeof(playerIP));
    format(Query, sizeof(Query), "SELECT * FROM `banlog` WHERE ( `Name` = '%s' OR `pIPBanned` = '%s' ) AND `pAccountLock` = '1' LIMIT 1",PlayerName(playerid),playerIP);
    mysql_query(Query);
    mysql_store_result();
    if(mysql_num_rows() != 0)
    {
        while(mysql_fetch_row(Query))
        {
                mysql_fetch_field_row(reasonBanned, "pBannedReason");
                mysql_fetch_field_row(adminName, "pBannedBy");
                mysql_fetch_field_row(timeBanned, "pTime");
                mysql_fetch_field_row(playerIP, "pIPBanned");
                mysql_fetch_field_row(bannedName, "Name");
        }
        format(largestringtwo, sizeof(largestringtwo), "You are currently banned from this server. \r\nUser: %s \r\nIP: %s  \r\nTime: %s \r\nAdmin: %s\r\nReason: %s", bannedName, playerIP, timeBanned, adminName, reasonBanned);
        ShowPlayerDialog(playerid, DIALOG_BANNED, DIALOG_STYLE_MSGBOX, "You are banned from this server", largestringtwo, "Leave", "");
        new log[128];
        format(log,sizeof(log),"~w~%s~r~ has been banned!",PlayerName(playerid));
        UpdateAnnouncement(log);
        KickEx(playerid);
        printf("Username %s || IP %s is banned!",PlayerName(playerid),playerIP);
    }
    else
    {
        new versionsa[128];
        GetPlayerVersion(playerid, versionsa, sizeof(versionsa));

        if(!strcmp(versionsa,"0.3x",true))
        {
            ShowPlayerDialog(playerid,5235,DIALOG_STYLE_MSGBOX,""COL_WHITE"Update SA-MP!",""COL_YELLOW"You need to have the latest SA-MP Version 0.3x R1-2\nDownload it off http://sa-mp.com/download.php","Leave","");
            KickEx(playerid);
        }
        else
        {
            SetPlayerVirtualWorld(playerid,playerid);
            PlayerTextDrawSetString(playerid,PlayerIntroNote[playerid],"Loading DayZ Gamemode Data");
            defer SpawnPlayerEx(playerid);
        }
    }
    return 1;
}

(19/08/2022 12:45)xbruno1000x Escreveu: Pode haver alguma proteção relacionada ao IP do servidor. Tipo, o Ip do servidor oficial era X.X.X.X:7777 e você está tentando entrar nessa GM rodando no Ip Y.Y.Y.Y:7776. Mas é difícil especular qual seria o motivo do ban, o ideal seria você revisar as publics OnPlayerConnect, OnPlayerRequestClass e as outras chamadas no momento do login ou antes.
Muito obrigado por reservar um tempinho pra tentar me ajudar, fico muito grato <3 ou eu vou ter que pagar alguém pra resolver isso para mim ou ir futricando asuhasuhasuh, enfim.
Código:
public OnPlayerConnect(playerid)
{
    if(!IsPlayerNPC(playerid))
    {
        PlayersAlive++;
        CreatePlayerTD(playerid);
        ConnectVars(playerid);
        ClearChatPlayer(playerid);
        ResetVars(playerid);
        CheckBan(playerid);
        SetPlayerTeam(playerid, 0);
    }
    return 1;
}
Código:
public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, 2372.0027,2243.0608,10.8203);
    SetPlayerFacingAngle(playerid,119.5071);
    SetPlayerCameraPos(playerid, 2365.5837,2238.2991,12.9480);
    SetPlayerCameraLookAt(playerid, 2372.0027,2243.0608,10.8203);
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    if(IsPlayerNPC(playerid))
    {
        return 1;
    }
    return 1;
}

Acredito que o problema esteja aqui, dei uma pesquisada em mysql e nos foruns sa:mp mas não consegui resolver.
eu tive a idéia de dar um // no CheckBan(playerid);
Mas ao logar no servidor digitar a senha ou registrar, nada acontece o game não se inicia como devia, exceto uma única vez que iniciou e eu consegui andar pelo jogo, não sei ao certo se tirar o checkban resultou nisso
pode ser um dos problemas, acredito eu
[23:22:52] CMySQLHandler::Query(SELECT * FROM `banlog` WHERE ( `Name` = 'Imaginare' OR `pIPBanned` = '192.168.15.4' ) AND `pAccountLock` = '1' LIMIT 1) - An error has occured. (Error ID: 1054, Unknown column 'Name' in 'where clause')

outro problema que sempre teve é este, atualizei os plugins que deu e continua o erro e outros ao atualizar e tentar compilar o código gera bastante erros.
[23:34:36] Error: Function not registered: 'SSCANF_Init'
[23:34:36] Error: Function not registered: 'SSCANF_Join'
[23:34:36] Error: Function not registered: 'SSCANF_Leave'
[23:34:36] Error: Function not registered: 'Streamer_CallbackHook'
[23:34:36] Error: Function not registered: 'mysql_debug'
[23:34:36] Error: Function not registered: 'mysql_connect'
[23:34:36] Error: Function not registered: 'Streamer_MaxItems'
[23:34:36] Error: Function not registered: 'mysql_query'
[23:34:36] Error: Function not registered: 'DestroyDynamicObject'
[23:34:36] Error: Function not registered: 'DestroyDynamic3DTextLabel'
[23:34:36] Error: Function not registered: 'DestroyAllDynamicObjects'
[23:34:36] Error: Function not registered: 'mysql_real_escape_string'
[23:34:36] Error: Function not registered: 'mysql_store_result'
[23:34:36] Error: Function not registered: 'mysql_num_rows'
[23:34:36] Error: Function not registered: 'mysql_free_result'
[23:34:36] Error: Function not registered: 'sscanf'
[23:34:36] Error: Function not registered: 'mysql_fetch_row_format'
[23:34:36] Error: Function not registered: 'mysql_fetch_field_row'
[23:34:36] Error: Function not registered: 'CreateDynamicObject'
[23:34:36] Error: Function not registered: 'CreateDynamic3DTextLabel'
[23:34:36] Error: Function not registered: 'SetDynamicObjectMaterial'