Fala ai galera, blz? então vim Mostrar como fazer seu bot para potar HP no joguinho dele, então estou trazendo a source pronta para quem mais quizer para estudar, eu deixei a source toda comentada e está de fácil entendimento, boa sorte.
Talking al guys, blz? Show then came how to make your bot to potar HP in his little game, so I'm bringing a ready source for those who want to study more, I left the whole source is commented and easy to understand, good luck.
Project1.dpr
Unit1.paslibrary Project2;
uses
SysUtils,
Windows,
Forms,
Classes,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
var
Vitrix : DWORD;
procedure VitrixForm;
begin
Form1 := TForm1.Create(application);
Form1.Showmodal;
end;
begin
CreateThread(nil, Vitrix ,@Vitrix Form,nil, Vitrix , Vitrix );
end.
Unit1.pas in Englishunit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
funcpotar: TTimer;
timerpot: TTimer;
Label1: TLabel;
countvar: TTimer;
Label2: TLabel;
procedure funcpotarTimer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure timerpotTimer(Sender: TObject);
procedure countvarTimer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
potarhp: integer;
implementation
{$R *.dfm}
procedure TForm1.funcpotarTimer(Sender: TObject); // Função que pega o valor da variavel "potarhp"
begin
asm
mov eax,00690320h // Coloque seu pointer aqui, lembre de se deixar o "h"
mov eax,dword ptr ds:[eax]
add eax,464h // Coloque sua offset aqui, lembre de se deixar o "h"
mov eax,dword ptr ds:[eax]
mov potarhp, eax // Fim da função que pega o valor da variavel "potarhp"
end;
begin // inicio da função que checa o valor da variavel "potarhp"
if potarhp<=50 then // se ela for menor ou igual a 50 vai executar a função abaixo
timerpot.Enabled:=True // Ela ativa o "timerpot" no timer pot vc coloca sua função para potar no game
else // caso a variavel não esteje de acordo com a condição acima
if potarhp>=60 then // Executa isso que se for maior ou igual a 60 vai executar a função abaixo
timerpot.Enabled:=False; // Agora ela desativa o timerpot que teria a função para potar no game, assim ñ potando mais!
end; // Fim da função que checa o valor da variavel "potarhp"
end;
procedure TForm1.Button1Click(Sender: TObject); // Inicio da função liga e desliga bot
begin
if (funcpotar.Enabled = False) then // Se o timer funcpotar estiver desativado ele executa as funções abaixo
begin
funcpotar.Enabled:=True; // fazendo o timer funcpotar que pega e checa a variavel "potarhp" ser ativado
ShowMessage ('Bot Ligado'); // ele avisa que o bot foi ligado
Button1.Caption:='Desligar BOT' // e muda o caption do button para "Desligar BOT"
end else // caso contrario o timer funcpotar estiver ativado ele executa as funções abaixo
begin
if (funcpotar.Enabled = True) then // se o timer funcpotar estiver ativado então
funcpotar.Enabled:=False; // fazendo o timer funcpotar que pega e checa a variavel "potarhp" ser desativado
ShowMessage ('Bot Desligado'); // ele avisa que o bot foi desligado
Button1.Caption:='Ligar BOT' // e muda o caption do button para "Ligar BOT"
end; // Fim da função liga e desliga bot
end;
procedure TForm1.timerpotTimer(Sender: TObject); // Neste espaço é onde vc coloca sua função de potar no game, como não tinha nada pra eu fazer inventei =)
begin
if (timerpot.Enabled=True) then // Se timerpot for ativado ele executa a função abaixo
Label1.Caption:='o Timer de Potar foi ativado pois a variavel recebeu um valor de 50 ou menos'; // o Caption da label avisa que o timer foi ativado
countvar.Enabled:=True; // ativa o timer countvar que tem o objetivo de avizar que a função de potar foi desativada
end;
procedure TForm1.countvarTimer(Sender: TObject); // Função que avisa que o timer de potar foi desativado
begin
if (timerpot.Enabled=False) then // Quando o timerpot for desativado então
Label1.Caption:='o Timer de Potar foi desativado pois a variavel recebeu um valor de 60 ou mais' // ele manda pra label que a função de potar foi desativada
else // ou ele executa o code abaixo
if (timerpot.Enabled=True) then // caso o timerpot volte a ser ativado ele executa a função abaixo
countvar.Enabled:=False; // então este timer vai se desativar =)
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class (TForm)
Button1: TButton;
funcpotar: TTimer;
timerpot: TTimer;
Label1: TLabel;
countvar: TTimer;
Label2: TLabel;
funcpotarTimer procedure (Sender: TObject);
Button1Click procedure (Sender: TObject);
timerpotTimer procedure (Sender: TObject);
countvarTimer procedure (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
potarhp: integer;
Implementation
{$ R *. Dfm}
TForm1.funcpotarTimer procedure (Sender: TObject); / / Function that takes the value of the variable "potarhp"
begin
asm
mov eax, 00690320h / / Place your pointer here, remember to leave the "h"
mov eax, dword ptr ds: [eax]
add eax, 464h / / Put your offset here, remember to leave the "h"
mov eax, dword ptr ds: [eax]
potarhp mov, eax / / End of the function that takes the value of the variable "potarhp"
end;
begin / / start function that checks the value of the variable "potarhp"
if potarhp <= 50 then / / if it is less than or equal to 50 will perform the function below
timerpot.Enabled: = True / / She activates the "timerpot" in the pot you put your timer function for the game potar
else / / if the variable does not esteje according to the above condition
if potarhp> = 60 then / / Execute it that is greater than or equal to 60 will perform the function below
timerpot.Enabled: = False; / / Now it disables the timerpot that would function for potar in the game, so ñ potando more!
end / / End of the function that checks the value of the variable "potarhp"
end;
TForm1.Button1Click procedure (Sender: TObject); / / Start function on and off bot
begin
if (funcpotar.Enabled = False) then / / If the timer is disabled funcpotar it performs the following functions:
begin
funcpotar.Enabled: = True / / timer funcpotar doing the catching and checks the variable "potarhp" be activated
ShowMessage ('Bot On') / / it warns that the bot was linked
Button1.Caption: = 'BOT Off' / / and change the caption of the button to "Off BOT"
end else / / otherwise the timer is enabled funcpotar it performs the following functions:
begin
if (funcpotar.Enabled = True) then / / if timer is enabled then funcpotar
funcpotar.Enabled: = False; / / timer funcpotar doing the catching and checks the variable "potarhp" be deactivated
ShowMessage ('Bot Off') / / it warns that the bot was disconnected
Button1.Caption: = 'Connect BOT' / / and change the caption of the button to "On BOT"
end / / End of the function on and off bot
end;
TForm1.timerpotTimer procedure (Sender: TObject); / / This space is where you put your function potar in the game, as I had nothing to do invented =)
begin
if (timerpot.Enabled = True) then / / If timerpot is enabled it performs the function below
Label1.Caption: = 'Potar the timer was activated because the variable was given a value of 50 or less' / / Caption of the label warns that the timer was activated
countvar.Enabled: = True / / activates the timer countvar that aims to avizar that function has been disabled potar
end;
TForm1.countvarTimer procedure (Sender: TObject); / / Function that warns that the timer was deactivated potar
begin
if (timerpot.Enabled = False) then / / When the timerpot is disabled then
Label1.Caption: = 'Timer Potar was disabled because of the variable assigned a value of 60 or more' / / he sends to label the function was disabled potar
else / / or it runs the code below
if (timerpot.Enabled = True) then / / if the timerpot be re-enabled it performs the function below
countvar.Enabled: = False, / / then this timer will disable =)
end;
end.