C 1
chengdu
xranzei 1
xranzei
zendor2 1
zendor2
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Almira2 1
Almira2
romegames 1
romegames
D 1
delimuratt
melankolıa18 1
melankolıa18
shrpnl 1
shrpnl
Fethi Polat 1
Fethi Polat
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Metin2 Hile İstek Python opencv game bot(yardım)

  • Konuyu başlatan Konuyu başlatan alicanq5
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 12
  • Görüntüleme Görüntüleme 5K

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Sol tık ve space yaparak kullanıyorum. Sağ tık kadar iyi olmasada idare ediyor. Sadece arayüz yapamadım. Ona kafa basmadı bir türlü sjjsjs
Projenizin kaynak kodlarını paylaşma gibi bir düşünceniz var mı acaba? Özelden veya konuya yorum olarak?
 
Yardımcı olacak arkadaşlara şimdiden teşekkür ediyorum.
Python opencv ile geliştirdiğim uriel farm botunda metin2 client seçili değilken metinleri buluyor ama tıklama yapmıyor client seçiliyken metinleri bulmuyor da
kendi çapımda kullanmak için geliştirdiğim bir yazılım ekran yakalama urielde fix sanırım hiçbir şekilde yazılım makrosu ile botu çalıştıramıyorum.
bu duruma müdahele eden driver ve ya method var mı? Yardımcı olan arkadaşların yardımını karşılıksız bırakmam iyi forumlar.
Dc adresim: Alican#8473
svside veyahut uriel korumalı serverlede tuşa basmak,ekrana tıklatmak gibi vesaire işleri yaptırabilmek için, bot penceren ile oyun penceresi arasında varsayılan pencereyi belirtmen lazım.


int processId = Int32.Parse(textBox1.Text); //Buradaki textboxa programı çalıştırdığında başla tuşuna basmadan önce
//oyunun idini buraya gir
Process proces = Process.GetProcessById(processId); //procese oyunun idini ata
Process proces2 = Process.GetProcessesByName("ProgramınınAdı").FirstOrDefault();//Bot programının adını buraya gir.

if (proces != null)
{
IntPtr handle = proces.MainWindowHandle; //Ana pencere tutucusu handle dir
WindowsAPI.SetForegroundWindow(handle); //Oyunu varsayılan pencere olarak ayarla

//metodunu burada çağır
Slotatıkla(),SpacaTuşunaBas(),HerhangibiKordinataTıkla vesaire vesaire
if (bukoşuldoğruise))
{
bunlarıyap
}
else //değilise
{
bunları yap


}


}
else
{
throw new Exception("Oyun procesi bulunamadı");
}

Application.DoEvents();
GC.Collect();

Daha sonra tekrar bot uygulamanı ana proces(mainhandle olarak ayarla)
WindowsAPI.SetBacqroundWindow(handle); //bot programını varsayılan olarak ayarla

//Yukardaki kodda WindowsAPI adında bir sınıfı kullanmaktadır. Yeni bir class oluşturarak WindowsAPI olarak adlandır ve aşağdaki kodları bu sınıfa yaz.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Diagnostics;

namespace MultiBot
{
/// <summary>
///
/// </summary>
public class WindowsAPI
{
/// <summary>
///
/// </summary>
public const uint WM_KEYDOWN = 0x100;

/// <summary>
///
/// </summary>
public const uint WM_KEYUP = 0x101;

/// <summary>
///
/// </summary>
public const uint WM_LBUTTONDOWN = 0x201;

/// <summary>
///
/// </summary>
public const uint WM_LBUTTONUP = 0x202;

public const uint WM_CHAR = 0x102;

/// <summary>
///
/// </summary>
public const int MK_LBUTTON = 0x01;

/// <summary>
///
/// </summary>
public const int VK_RETURN = 0x0d;

public const int VK_ESCAPE = 0x1b;

/// <summary>
///
/// </summary>
public const int VK_TAB = 0x09;

/// <summary>
///
/// </summary>
public const int VK_LEFT = 0x25;

public const int VK_SPACE = 0x20;

/// <summary>
///
/// </summary>
public const int VK_UP = 0x26;

/// <summary>
///
/// </summary>
public const int VK_RIGHT = 0x27;

/// <summary>
///
/// </summary>
public const int VK_DOWN = 0x28;

/// <summary>
///
/// </summary>
public const int VK_F5 = 0x74;

/// <summary>
///
/// </summary>
public const int VK_F6 = 0x75;

/// <summary>
///
/// </summary>
public const int VK_F7 = 0x76;

public const int VK_NO1 = 0X31;
public const int VK_NO2 = 0X32;
public const int VK_NO3 = 0X33;
public const int VK_NO4 = 0X34;

/// <summary>
/// The GetForegroundWindow function returns a handle to the foreground window.
/// </summary>
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();

[DllImport("kernel32.dll")]
public static extern uint GetCurrentThreadId();

[DllImport("user32.dll", SetLastError = true)]
public static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);

[DllImport("user32.dll")]
public static extern bool AttachThreadInput(uint idAttach, uint idAttachTo, bool fAttach);

[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool ReadProcessMemory(
IntPtr hProcess,
IntPtr lpBaseAddress,
[Out()] byte[] lpBuffer,
int dwSize,
out int lpNumberOfBytesRead
);

public static void SwitchWindow(IntPtr windowHandle)
{
if (GetForegroundWindow() == windowHandle)
return;

IntPtr foregroundWindowHandle = GetForegroundWindow();
uint currentThreadId = GetCurrentThreadId();
uint temp;
uint foregroundThreadId = GetWindowThreadProcessId(foregroundWindowHandle, out temp);
AttachThreadInput(currentThreadId, foregroundThreadId, true);
SetForegroundWindow(windowHandle);
AttachThreadInput(currentThreadId, foregroundThreadId, false);

while (GetForegroundWindow() != windowHandle)
{
}
}

/// <summary>
///
/// </summary>
/// <param name="hwndParent"></param>
/// <param name="hwndChildAfter"></param>
/// <param name="lpszClass"></param>
/// <param name="lpszWindow"></param>
/// <returns></returns>
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);

/// <summary>
///
/// </summary>
/// <param name="hWnd"></param>
/// <param name="msg"></param>
/// <param name="wParam"></param>
/// <param name="lParam"></param>
/// <returns></returns>
[DllImport("User32.Dll", EntryPoint = "PostMessageA")]
public static extern bool PostMessage(IntPtr hWnd, uint msg, int wParam, int lParam);

/// <summary>
///
/// </summary>
/// <param name="ch"></param>
/// <returns></returns>
[DllImport("user32.dll")]
public static extern byte VkKeyScan(char ch);

[DllImport("user32.dll")]
public static extern uint MapVirtualKey(uint uCode, uint uMapType);

/// <summary>
///
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static IntPtr FindWindow(string name)
{
Process[] procs = Process.GetProcesses();

foreach (Process proc in procs)
{
if (proc.MainWindowTitle == name)
{
return proc.MainWindowHandle;
}
}

return IntPtr.Zero;
}

[DllImport("user32.dll")]
public static extern IntPtr SetFocus(IntPtr hWnd);

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SetForegroundWindow(IntPtr hWnd);

/// <summary>
///
/// </summary>
/// <param name="low"></param>
/// <param name="high"></param>
/// <returns></returns>
public static int MakeLong(int low, int high)
{
return (high << 16) | (low & 0xffff);
}

[DllImport("User32.dll")]
public static extern uint SendInput(uint numberOfInputs, [MarshalAs(UnmanagedType.LPArray, SizeConst = 1)] INPUT[] input, int structSize);

[DllImport("user32.dll")]
public static extern IntPtr GetMessageExtraInfo();

public const int INPUT_MOUSE = 0;
public const int INPUT_KEYBOARD = 1;
public const int INPUT_HARDWARE = 2;
public const uint KEYEVENTF_EXTENDEDKEY = 0x0001;
public const uint KEYEVENTF_KEYUP = 0x0002;
public const uint KEYEVENTF_UNICODE = 0x0004;
public const uint KEYEVENTF_SCANCODE = 0x0008;
public const uint XBUTTON1 = 0x0001;
public const uint XBUTTON2 = 0x0002;
public const uint MOUSEEVENTF_MOVE = 0x0001;
public const uint MOUSEEVENTF_LEFTDOWN = 0x0002;
public const uint MOUSEEVENTF_LEFTUP = 0x0004;
public const uint MOUSEEVENTF_RIGHTDOWN = 0x0008;
public const uint MOUSEEVENTF_RIGHTUP = 0x0010;
public const uint MOUSEEVENTF_MIDDLEDOWN = 0x0020;
public const uint MOUSEEVENTF_MIDDLEUP = 0x0040;
public const uint MOUSEEVENTF_XDOWN = 0x0080;
public const uint MOUSEEVENTF_XUP = 0x0100;
public const uint MOUSEEVENTF_WHEEL = 0x0800;
public const uint MOUSEEVENTF_VIRTUALDESK = 0x4000;
public const uint MOUSEEVENTF_ABSOLUTE = 0x8000;
}

[StructLayout(LayoutKind.Sequential)]
public struct MOUSEINPUT
{
int dx;
int dy;
uint mouseData;
uint dwFlags;
uint time;
IntPtr dwExtraInfo;
}

[StructLayout(LayoutKind.Sequential)]
public struct KEYBDINPUT
{
public ushort wVk;
public ushort wScan;
public uint dwFlags;
public uint time;
public IntPtr dwExtraInfo;
}

[StructLayout(LayoutKind.Sequential)]
public struct HARDWAREINPUT
{
uint uMsg;
ushort wParamL;
ushort wParamH;
}

[StructLayout(LayoutKind.Explicit)]
public struct INPUT
{
[FieldOffset(0)]
public int type;
[FieldOffset(4)] //*
public MOUSEINPUT mi;
[FieldOffset(4)] //*
public KEYBDINPUT ki;
[FieldOffset(4)] //*
public HARDWAREINPUT hi;
}
}

Bu kod örnekleri c# programlama dili ile gösterilmiştir. Eğer farklı bir programlama dili kullanıyorsan yazım imzasını ona göre değiştir.
 
tıklama yapabiliyo musun ?
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst