Galera uma coisa que notei em qualquer bot aqui no forum é a utilização de varios timers para verificação de life, mana e etc
Aqui vo postar um exemplo de como fazer um healer com threads
Mas o que são threads?
Thereads são como se fosse separar uma parte do codigo do seu sistema principal fazendo como se fosse outro "programa"(processo no computador).
Assim caso você tenha 2 timers por exemplo, existe um "delay" ou executa o timer 1 ou executa o timer 2, nunca os dois iram executar simultaneamente e isso talvez seja desagradevel pois imagine, o programa está executando o timer 2 que é só para verificar alguma "bobeira" do char enquanto o timer 1 é para healer e precisa ser executado e esteja precisando healar o char..
Entao ao seria um caso bom para por uma threads.
Mais lembrando, utilização de muitas threads pode sobrecarregar o processador e deixalo um pouco mais lento, dependendo de quanto nucleos a CPU tenha.
Bom começando...
Não irei mostrar passo a passo da criação de um formaulario, pois se está aqui sabe no minimo abrir um novo projeto rsrs.
Coloque um CheckBox no seu novo form que tenha criado e no evento CheckedChange dele vc irá inserir um seguinte comando..
Primeiramente coloque na Uses, estas 4 para a utilização dos comandos
// Para Utilização dos comandos da TH
using System.Threading;
using System.Reflection;
//Para poder importar uma DLL
using System.Runtime.InteropServices;
//Para utilizar o comando Process
using System.Diagnostics;
Continuando o codigo, no evento CheckedChange do CheckBox coloque as seguintes linhas de codigos..
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
// Instancia a variavel do tipo Thread e vincula um procedimento a TH
Thread trd = new Thread(new ThreadStart(this.ThereadLoHealth));
//Inicia a TH
trd.Start();
}
Após isto importe a DLL user32
[DllImport("user32.dll")]
//Procedimento para poder enviar a Tecla para um determinado processo, no caso o Tibia
public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
// Pega a Process do tibia para achalo na hora de enviar o comando de Key
public static Process Tibia = Process.GetProcessesByName("Tibia")[0];
private void ThereadLoHealth()
{
// Enquanto o CheckBox estiver como True executa a verificação do Life do char
while (checkBox1.Checked)
{ //Pega a life atual do char
uint atualLife = 210;//= Health.GetHealth();
//Comparação de lifes definidas(no caso dos numeros poderia ser TextBoxs que o usuario definiria a quantidade
if (atualLife >= 150 && atualLife <= 380)
{//Envia uma hotkey no caso o F1 no Tibia
SendMessage(Tibia.MainWindowHandle, 0x100, (int)Keys.F1, 0);
}
//Adormece a Th para desocupar espaço no CPU por 500Milis, seria como se fosse o interval do timer
Thread.Sleep(500);
}
}
O codigo final fica assim>>>>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Diagnostics;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Thread trd;
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
Thread trd = new Thread(new ThreadStart(this.ThereadLoHealth));
trd.Start();
}
[DllImport("user32.dll")]
public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
public static Process Tibia = Process.GetProcessesByName("Tibia")[0];
private void ThereadLoHealth()
{
while (checkBox1.Checked)
{ //Pega a life atual do char
uint atualLife = 210;//= Health.GetHealth();
//Comparação de lifes defini
if (atualLife >= 150 && atualLife <= 380)
{
SendMessage(Tibia.MainWindowHandle, 0x100, (int)Keys.F1, 0);
}
Thread.Sleep(500);
}
}
}
}
Este é meu primeiro tutorial e espero que tenha dado uma ajuda ou idéia para programar outros tipos de coisas... E caso tenham idéias para melhor efeito do healer, por favor indiquem!!
Projeto de exemplo adicionado>
Utilização de TH.rar