Ir para conteúdo
  • Cadastre-se

Como usar magias no Tibia manipulando memória, sem simular teclas


Posts Recomendados

Pessoal, 

Consegui encontrar os endereços de memória da vida  e da mana no Tibia usando o Cheat Engine, mas agora estou tentando descobrir como usar magias diretamente pela manipulação de memória, sem precisar simular o pressionamento de teclas.

Existe alguma função ou valor específico no Tibia responsável por chamar as magias? Qualquer direção ou ideia seria muito bem-vinda!

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
  • Moderador

LEMBRANDO QUE ESTA API FUNCIONA COM CLIENT VERSION

Desta lista(Caso não tenha sua versão SOLICITE no GITHUB)

Versões OUTDATED não serão suportadas, ou seja apenas 11+
TibiaAPI/ClientData at party-hunt · Underewarrr/TibiaAPI (github.com)

Que eu estarei atualizando.

Olá a todos já não é de agora que já podemos manipular o client 12 injetando qual quer dll nele seja qual for, já temos todas estruturas e offsets do client.

Venho fornecer a vocês um map tracker funcional.

Esta api possui todo tipo de conteúdo para tibia sendo possível utilizá-la para se fazer automações.
Targeting,AutoHeal etc.

No proprio github voce pode encontrar a WIKI e Instruções de como usalo.

Você precisara do Dotnet Framework for developer instalado.

Qual tipo de código pode ser criado com essa API?

Você pode facilmente interceptar pacotes assinando o evento para esse pacote. Por exemplo, podemos interceptar o pacote que contém dados atuais para o nosso personagem (saúde, mana, etc.):

// Create a `Client` object, and start the proxy.
using var client = new OXGaming.TibiaAPI.Client();
client.StartConnection();

// () => {}; is just syntactic-sugar so you don't have to create a separate function.
client.Connection.OnReceivedServerPlayerDataCurrentPacket += (packet) =>
{
    // Because `packet` is a base object, it needs to be casted to the right packet type.
    var data = (OXGaming.TibiaAPI.Network.ServerPackets.PlayerDataCurrent)packet;
    // Returning true tells the parser we want to forward this packet to its destination (in this case, the client).
    return true;
};

Embora interceptar pacotes não seja necessariamente útil por si só (além de ser capaz de saber algo antes do client; como a saúde do seu jogador), é a base para modificar e bloquear pacotes.

 

Bom aqui vai uma estrutura do Haste. Espero que tenha ficado claro que tibia API é uma dll onde manipulada pode se fazer qual quer coisa com o client 12, lembrando que essa API é totalmente detectavel pelo BattleEye podendo ser usado apenas em ZUNERA para tests oficiais.

  Hide contents
// First, we'll need to create our `Client` object and a boolean flag to determine if our auto-haste feature is enabled:
var isAutoHasteEnabled = false;
using var client = new OXGaming.TibiaAPI.Client();

// Enable client packet modification so we can block `Text` client packets with our command identifier.
client.Connection.IsClientPacketModificationEnabled = true;

// Now let's create the `Talk` client packet we'll use to cast the haste spell:
var hasteSpell = new OXGaming.TibiaAPI.Network.ClientPackets.Talk(client)
{
    MessageMode = OXGaming.TibiaAPI.Constants.MessageMode.Say,
    Text = "utani hur"
};

// Next, we need to intercept the `Talk` client packet so we can check for our commands:
client.Connection.OnReceivedClientTalkPacket += (packet) =>
{
    var data = (OXGaming.TibiaAPI.Network.ClientPackets.Talk)packet;
    if (data.Text.StartsWith("/")
    {
        if (data.Text == "/on")
        {
            isAutoHasteEnabled = true;
        }
        else if (data.Text == "/off")
        {
            isAutoHasteEnabled = false;
        }
        return false; // block any packet that starts with our command identifier in case of typos
    }
    return true; // all other messages can be forwarded as normal
};

// Then, we need to intercept the `PlayerState` server packet to check if we need to cast our haste spell:
client.Connection.OnReceivedServerPlayerStatePacket += (packet) =>
{
    var data = (OXGaming.TibiaAPI.Network.ServerPackets.PlayerState)packet;
    // The 7th bit of the `State` integer is the haste flag; if it's not set then the player isn't hasted.
    if (isAutoHasteEnabled && (data.State & 64) == 0)
    {
        // By sending our haste spell to the server here, it theoretically could get there before the client receives this packet.
        client.Connection.SendToServer(hasteSpell);
    }
    return true;
};

// Finally, we need to start the proxy:
client.StartConnection();

 

AUTO HEAL

  Hide contents
var manaSelf = new OXGaming.TibiaAPI.Network.ClientPackets.UseOnCreature(client)
{
    CreatureId = client.Player.Id,
    ObjectId = 268, // mana potion
    Position = new OXGaming.TibiaAPI.Utilities.Position(0xFFFF, 0, 0) // hotkey
};
client.Connection.SendToServer(manaSelf);

 

Underewarrr/TibiaAPI (github.com)
https://forums.otserv.com.br/index.php?/forums/topic/169699-tibiaapi-2021-maptracker-1260/

Participe da organização Open-Tibia.
Meus Perfils pessoais

Linkedin Rafhael Oliveira Tryber | XP Inc Github Rafhael Oliveira Tryber | XP Inc

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo