Ir para conteúdo
  • Cadastre-se

C# -Utlizando threads(TH)


Posts Recomendados

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

Link para o post
Compartilhar em outros sites

Muito bom o tutorial, dei uma ajeitada nos códigos para ficarem mais legíveis...

eu mesmo quando comecei a programar, só usava timers, bot vivia travando kkkk

E obrigado por compartilhar conosco!

# Regras Gerais - TibiaKing.com #
Contato: [email protected]
Não respondo dúvidas via MP.


1C2tu.png4Tlqo.png1C2tu.png


 

Link para o post
Compartilhar em outros sites

Vlw, esquessi deste pequeno detalhe de ajeitar rsrs...

Com TH dica bem mais dinamico e um pouco mais rapido para healer, só precisa deixar o Sleep/Interval mais perfeito para não travar o char usando a hotkey e healando mt rapido, mesmo sem exaust...

Mais o forum é bom e tem me ajudado bastante, como estou sugando mt conhecimento aqui, quis dar um pouco tambem e daria sempre que eu conseguir algo que seja bom para os bots...

t+galera

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