Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Primeiramente vou comentar um pouco sobre esse magnifico programa que é o delphi,

Para nos desenvolvermos um bot de tibia por exemplo, nos nao usamos o tibiaapi, mais sim muitas funções muitos codigos e muita outras coisas,

Nao é nada extremamente facil, requer um pouco de estudo, mais tudo oque vc fizer vai estar ali para estudo. Entao eu falo para vcs quando nao tiverem nada pra fazer estudem um pouco sobre o delphi.

Ok vamos ao bot

O Bot é simples, treina seu magic level, tem um anti kick e come food,

Visual, olhe como arrumei os meus componentes

2iuz75t.png

Componentes, vamos precisar de:

1 TGroupBox

1 TButton

2 TLabeledEdit

2 TCheckBox

1 TCombobox

2 TLabel

4 TTimer
Renomeando componentes, para renomear vc deve ir ate a propriedade name
Button -> StartButton

Timer1 -> CastSpell

Timer2 -> Endereço

Timer3 -> Kick

Timer4 -> Food

LabeledEdit1 -> Spell

LabeledEdit2 -> Mana
Arrumando Componentes, quando ja estiverem renomeados
CastSpell.Enabled.False 

CastSpell.Interval.700

Kick.Enabled.False

Kick.Interval.60000

Food.Enabled.False

Food.Interval.30000

Combobox1.Style.csDropDownList

Form1.Caption 'Escolha um Nome para o Bot'
Variaveis Globais, declare embaixo do Form1 : TForm1
PH : THandle;

PID, ThID: DWORD;

H : THandle;
Funções usadas, declare elas embaixo do {$R *.dfm},
//Função para escrever na janela do Tibia

function say(mensagem: string):string;

 var

  h: HWND;

  letra: Integer;

  B: Byte;

 begin

  h := FindWindow(nil, 'tibia');

  for letra := 1 to Length(mensagem) do

  begin

    B := Byte(mensagem[letra]);

    SendMessage(h, WM_CHAR, B, 0);

  end;

    SendMessage(h, WM_CHAR, 13, 0);

  end;
//Função para ler endereço de memoria do Tibia

  function LerInt(Address: Integer): Integer;

var

  value:integer;

  ler :dword;

begin

H := FindWindow(nil, 'Tibia');

ThID := GetWindowThreadProcessId(H, @PID);

PH := OpenProcess(PROCESS_ALL_ACCESS,FALSE,PID);

ReadProcessMemory(PH, Ptr(Address), @Value, 4, Ler);

Result:=value;

end;
//Função para aperta uma determinada tecla na janela do Tibia

function hotkey(x :string): string;

     var

  h: HWND;

  i : integer;

begin

 if x ='F1' then

  i := 112

  else if x ='F2' then

  i := 113

  else if x ='F3' then

  i := 114

  else if x ='F4' then

  i := 115

  else if x ='F5' then

  i := 116

  else if x ='F6' then

  i := 117

  else if x ='F7' then

  i := 118

  else if x ='F8' then

  i := 119

  else if x ='F9' then

  i := 120

  else if x ='F10' then

  i := 121

  else if x ='F11' then

  i := 122

  else if x ='F12' then

  i := 123;


  h := FindWindow(nil, 'Tibia');  // acha a janela do tibia

  SendMessage(h, WM_KEYdown, i, 0);   //pressiona a tecla

  SendMessage(h, WM_KEYUP, i, 0);  //solta tecla

  end;
Depois de botar os componentes, renomea-los e declarar as funções, Vamos botar os devidos codigos nos respectivos componentes Lembrando que é tudo dentro do begin e end, se tiver Var vc deve excluir o begin, e adiciona-lo depois CastSpell
if StrToInt(Label2.Caption) > (StrToInt(Mana.Text)) then

say(Spell.text)

// Se a mana do player for maior que a mana que foi digitada no component mana, entao vai falar a magia
Endereço
Label2.caption := IntToStr(Lerint($0081CE5C));

// Vai ler o endereço da mana do personagem e transforma em numero para o label2
Kick
Var

TibiaHandle : THandle;

begin

TibiaHandle:=FindWindow(nil,'Tibia'); // Pega a janela do Tibia

SendMessage(TibiaHandle,WM_KEYDOWN,VK_CONTROL,1); // Pressiona o Ctrl

SendMessage(TibiaHandle,WM_KEYDOWN,VK_UP,1); // Pressiona a tecla para cima

SendMessage(TibiaHandle,WM_KEYUP,VK_UP,1); // Libera a tecla

SendMessage(TibiaHandle,WM_KEYDOWN,VK_DOWN,1); // Pressiona a tecla para baixo

SendMessage(TibiaHandle,WM_KEYUP,VK_DOWN,1); // Libera a tecla

SendMessage(TibiaHandle,WM_KEYUP,VK_CONTROL,1); // Libera o Ctrl

end;
Food
hotkey(Combobox1.Text)

// Pressiona oque tiver no Texto do Combobox
StartButton
CastSpell.Enabled := not(CastSpell.Enabled);

Food.Enabled := not(Food.Enabled);

Kick.Enabled := not(Kick.Enabled);


if Checkbox1.checked then

Kick.Enabled := true

else

Kick.Enabled := false;


if Checkbox2.checked then

Food.Enabled := true

else

Food.Enabled := false;


if (Spell.Text <> '') and (Mana.Text <> '') then

CastSpell.Enabled := true

else

CastSpell.Enabled := false;


if (Kick.Enabled) or (Food.Enabled) or (CastSpell.Enabled) then

StartButton.Caption := 'Stop'

else

StartButton.Caption := 'Start';

Bom pessoal sei que é simples, mais estou tentando animar o pessoal do forum para usar o Delphi,

ps: Peguei as funções da sessao do delphi, entao esta tudo aqui

Abraços a todos

Editado por Kimoszin (veja o histórico de edições)

  • Respostas 69
  • Visualizações 15.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

Postado

Para aqueles que são dependentes de TibiaAPI (isso não da futuro pow!) aprenderem um pouco de programação de verdade.

Muito bom o tutorial, bem instrutivo e muito bem organizado! REP+

Postado

Por isso mesmo, estou falando do Delphi !

Mas poderia fazer um para mim ? Para treinar :trollface:

Porque eu vou formatar o pc, mas não sei quando ^^

Att,

GustavoLuiz

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo