antiblock
Cyphriun

NewWars

Membro Elite
  • Content Count

    1,745
  • Joined

  • Last visited

  • Days Won

    41

Posts posted by NewWars


  1. Normalmente quem mete o lycan mete um DEFINE no nucleo e um boolean no cliente(python) para ativar/desativar a raça facilmente sem editar o código inteiro, segundo algumas questões já colocadas antes, para desativar no cliente basta ir a root/constInfo.py e trocar e definir como desativado a variavel WOLFMAN_MAN.

     

    O problema é que se não existir um TOKEN em que possas ativar/desativar o lycan pelas configurações dos nucleos, teras que editar o DEFINE na source, e parece que so existe source para versões especificas dessas files.

     

    Cumprimentos.


  2. O sistema de hacklog é gerido pelo nucleo do servidor e com base em algumas operações regista o tipo de hack, quanto, posição e id do jogador(algumas coisas se alteram para cada tipo de verificação)

     

    Segundo o código escrito na versão mainline clean, tem as seguintes funções:


    Velocidade de ataque:

    Spoiler

     

    bool    IS_SPEED_HACK(LPCHARACTER ch, LPCHARACTER victim, DWORD current_time);

     

    Esta função verifica a data do ultimo ataque realizado de uma personagem a outra(ou qualquer outro tipo de instância como monstros, etc) e verifica se o ultimo ataque mais a velocidade de ataque dessa personagem é menor que o proxima tempo em que se pode atacar novamente e anula o dano, além disso regista a quantidade de vezes que aconteceu aumentado o numero por 1, porque isto pode também acontecer por lag ou outro motivo qualquer, chegando a um limite expulsa o jogador do jogo e regista no hacklog, como mostra abaixo:

     

    if (IS_SPEED_HACK_PLAYER(ch))
        {
            // write hack log
            LogManager::instance().SpeedHackLog(ch->GetPlayerID(), ch->GetX(), ch->GetY(), ch->m_speed_hack_count);

     

     

     

     

     

    Combo(combos de ataque básico):

    Spoiler

     

    bool CheckComboHack(LPCHARACTER ch, BYTE bArg, DWORD dwTime, bool CheckSpeedHack)

     

    Esta função em conjunto com a verificação de movimento verifica se a personagem usa hack de combo, calculando o tempos de ataque disponivel pelos items, bonus etc em conjunto com o tempo das animações do combo, se não for igual faz o mesmo que a verificação de ataque, aumenta a contagem e regista no hacklog como mostra abaixo:

     

    LogManager::instance().HackLog("Hacker", ch);

     

     

     

     

    Velocidade de movimento

    Spoiler

     

    bool CheckSpeedHack = (false == ch->GetDesc()->IsHandshaking() && dwCurTime - ch->GetDesc()->GetClientTime() > 7000);

     

    Esta operação verifica se o tempo decorrido pelo cliente, a distançia percorrida, se o servidor e cliente estão em "handshaking"(o que acontece quando se faz login e estão a trocar dados essenciais para a ligação se manter) são aceitaveis, se não forem, não regista no hacklog mas regista no syslog(registos não cruciais do nucleo)

    NOTA: a verificação de velocidade de movimento está em conjunto com esta verificação na função de mover uma personagem, mas não encontro nenhuma função que registe no hacklog

     

     

     

    Teleporte(Warp)

    Spoiler

     

    const float fDist = DISTANCE_SQRT((ch->GetX() - pinfo->lX) / 100, (ch->GetY() - pinfo->lY) / 100);

     

    Esta operação verifica se o passo que o jogador deu não é grande de mais, e se passar dos limites de tamanho de um passo, bem, tem calma com a elasticidade, o servidor mete o personagem no mesmo sitio e tranca o movimento do mesmo até que ele faça o proximo passo e regista no hacklog, como mostra abaixo:

     

    const PIXEL_POSITION & warpPos = ch->GetWarpPosition();

                    if (warpPos.x == 0 && warpPos.y == 0)
                        LogManager::instance().HackLog("Teleport", ch); // 부정확할 수 있음

     

     

    Eciste também o CRC(integridade de ficheiros) mas estadesativado ou não funciona de todo creio, e os items em loja sempre preço(0 yang) também regista no hacklog.

     

    Estas foram as verificações que vi assim de repente, é capaz existir mais uma ou duas(não mexo no codigo de metin faz algum tempo, muito menos nesta parte logo não me recordo bem) e peço desculpa por não ter sido mais completo, foram meio ao despachar as explicações

     

    Cumprimentos.

     

     


  3. Bem-vindo á comunidade.

    Quando dizes sempre a subir espero que seja para pertenceres a raça superior gaming de PC haha

     

    Qualquer duvida não hesites em contactar um membro da equipa

     

    Cumprimentos.