RSS

Hướng dẫn lập trình auto game bằng Delphi 7 (phần 4 Các hàm kiểm tra HP STM Mana)

Ở phần này tôi sẽ nêu các ví dụ mẫu để kiểm tra các thông số HP, STM, Mana của nhân vật, nếu thấy nhỏ hơn giá trị được thiết lập thì Send key tương ứng để Pos bơm HP hay STM và Mana

Để sử dụng nó bạn có thể đưa vào sự kiện ontime. Bạn tạo một Timer control trong tab System của Delphi set time là 100 hay 500 milisecon tùy ý bạn muốn sau bao lâu chương trình kiểm tra HP hoặc STM, mana một lần. Theo tôi thì Check HP được ưu tiên cao nhất nên để 50 đến 100ms check một lần còn STM với mana thì 500 hoặc 1000ms là phù hợp, nếu check liên tục quá sẽ làm ảnh hưởng tới khả năng xử lý của máy tính, khiến chương trình nặng quá mức cần thiết

Nếu bạn không muốn dùng sự kiện OnTime để check và muốn nâng cao khả năng chống lỗi gây die, bạn có thể tìm hiểu cách tạo riêng các process cho phần auto pot chạy độc lập với chương trình auto. Điều này sẽ làm giảm thiểu khả năng die do chương trình đang bạn xử lý các tình huống khác. Trong delphi các bạn có thể sử dụng cách sau để tạo process :

Khai báo:

Type
AutoHpT = CLASS(TThread)

protected
procedure Execute; override;
end;

Tạo process

if StopHPRun then begin
HpThead:= AutoHpT.Create(true);
HpThead.Resume;
end;

Đây là đoạn mã được chạy trong process. Lặp vô tận để kiểm tra HP liên tục, nó sẽ dừng và giải phóng Process khi bạn Bấm nút stop đặt giá trị biến toàn cục STOPhp=True.

Procedure AutoHpT.execute;
begin
FreeOnTerminate := true;
repeat
StopHPRun:=False; // Dang chay autoHP
AutoHP;
sleep (Form1.ThoigiancheckHP.Value);
Until STOPhp;
StopHPRun:=True; // dung autoHP
end;

Để nghiên cứu sâu hơn về lập trình munti process và thead các bạn tìm đọc trong giáo trình delphi nhá 🙂

Các hàm mẫu như sau:

Read the rest of this entry »

 

Dropbox – Dịch vụ lưu trữ, đồng bộ, chia sẻ dữ liệu tuyệt vời

Dropbox là dịch vụ sao lưu, lưu trữ dữ liệu trực tuyến với khả năng đồng bộ theo thời gian thực và tự động thực hiện sao lưu, hỗ trợ miễn phí 2GB dung lượng lưu trữ trực tuyến trên máy chủ của họ.

 
Chức năng bình luận bị tắt ở Dropbox – Dịch vụ lưu trữ, đồng bộ, chia sẻ dữ liệu tuyệt vời

Posted by trên 24/11/2011 in Code and Soft

 

Hướng dẫn lập trình auto game bằng Delphi 7 (phần 3 làm việc với memory)

Ở phần này tôi sẽ tiếp tục giới thiệu với các bạn cách sử dụng các hàm Read và writeprocessmemory để thực hiện việc lấy giá trị trong bộ nhớ game thay cho phương pháp sử dụng Getpixel cũ.

Chú ý quan trọng khi làm việc với memory là bạn phải nắm vững các kiểu dữ liệu của Delphi để khai báo cho đúng các biến thì việc đọc ghi memory mới thành công và không bị lỗi. Ví dụ để đọc 2byte kiểu interger thì bạn phải khai báo biến dữ liệu là Word. Chi tiết về kiểu biến bạn có thể dọc ngay trong Help của Delphi IDE hoặc tham khảo tài liệu hướng dẫn lập trình Delphi, ở đây tôi chỉ đưa các ví dụ cụ thể giúp bạn có thể hiểu được việc sử dụng thực tế các hàm này chứ không giải thích sâu về lý thuyết.

Chú ý quan trọng Hàm API Readprocessmemory dung để đọc dữa liệu thì bạn có thể sử dụng tùy ý. Nhưng hàm Writeprocessmemory thì không như vậy. Có một số game chống hack cấm thi hành phương thức này để thay đổi giá trị game. Hoặc rất dễ gây xung đột với chính việc cập nhật giá trị game nên bạn phải sử dụng nó thật cẩn thận để tránh xung đột. Hạn chế tối đa việc ghi đè bằng cách trước khi ghi thì đọc kiểm tra giá trị hiện tại, Nếu không thỏa mãn mới thực hiện việc ghi đè. Nếu không thể thực hiện thành công việc ghi đè do game chông hack hoặc bị xung đột, bạn sẽ phải sử dụng kỹ thuật inject Dll để làm việc này. Trong phạm vi bài viết này tôi không giới thiệu kỹ thuật phức tạp đó. Nhưng có một bí quyết là có thể sử dụng các file Dll inject đã được viết sẵn cho các auto game khác để làm việc này một cách đơn giản. Tận dụng các hàm Inject và Unmap đã được thiết kế sẵn cho nhanh. Trừ các trương hợp đặc biệt cần thiết mới phải tự thực hiện

Sau đây là các ví dụ : Read the rest of this entry »

 

Viết blog bằng Microsoft word 2007

Trong lúc đang soạn thảo văn bản, những cảm xúc và ý tưởng mới chợt hiện lên trong đầu khiến bạn muốn đưa ngay lên blog để chia sẻ với bạn bè. Nhưng thật bất tiện khi phải mở trình duyệt, truy cập vào trang blog, đăng nhập tài khoản, rồi mới bắt đầu viết.

Giờ đây, bạn có thể làm điều đó ngay từ trình soạn thảo của MS Word 2007. Tính năng mới này sẽ giúp bạn viết, lưu nháp, chỉnh sửa và đăng các bài viết lên blog ngay từ trong môi trường Word. 

Để sử dụng, yêu cầu máy tính của bạn phải kết nối Internet.

Đầu tiên, bạn nhấp vào biểu tượng Office hình tròn ở góc trái chọn lệnh New > New blog post. Sau đó bạn sẽ thấy xuất hiện thêm thẻ Blog Post trên giao diện Ribbon của Word.

Read the rest of this entry »

 
Chức năng bình luận bị tắt ở Viết blog bằng Microsoft word 2007

Posted by trên 17/11/2011 in Tổng hợp - Khác

 

Hướng dẫn lập trình auto game bằng Delphi 7 (phần 2 mouse và key)

CÁC HÀM ĐIỀU KHIỂN MOUSE VÀ PHÍM

Việc đầu tiên cần làm để  gửi phím và chuột đến cửa sổ game bất kỳ để điều khiển là bạn phải tìm Handler của cái cửa sổ củ chuối đó đã ví dụ:

WindowNameS := FindWindow(nil,’Windows Name’);

// Một số game chặn auto bằng việc can thiệp vào tiến trình này, nên nếu gặp trường hợp chỉ send được lệch đầu tiên rồi các lần kế tiếp không send được nữa, thì có lẽ bạn đang bị chống hack nó xxx. Cách xử lý là chạy lại đoạn mã trên để cập nhật lại giá trị  của WindowsNameS mỗi lần sử dụng lện send

Giờ chỉ việc dùng hàm API Sendmessage hoặc Posmessage để gửi lệnh điều khiển tới cửa sổ game. Tôi sẽ đưa luôn các code mẫu để các bạn tham khảo:

Di chuyển chuột tới tọa độ cần thiết (in game) nếu không có nhu cầu làm việc khác thì bạn có thể xài API

SetCursorPos(X,Y); để thay thế cho sendmessage các này có nhược điểm là vì hàm API SetcusorPos chiếm quyền điều khiển con trỏ chuột hệ thống. Nên nếu bạn sử dụng hàm này thì khi auto không làm được việc gì khác.

Procedure MouseMoveTomS(X,Y:integer);
begin
  SendMessage(WindownameS, WM_MOUSEMOVE, 0, MakeLParam(X,Y));    
    // Hoac xai ham duoi de thay the (khuyen cao ko nen dung neu ham tren dap ung duoc yeu cau)
   //SetCursorPos(X,Y);
end;

Read the rest of this entry »

 

Delphi 7 ngôn ngữ lập trình yêu thích của tôi

 DELPHI là phiên bản hướng đối tượng của Pascal được hãng Borland phát triển cho công cụ phát triển ứng dụng nhanh có cùng tên. Môi trường Delphi được thiết kế để cạnh tranh với Visual Basic của Microsoft, hỗ trợ xây dựng giao diện nhanh bằng cách kéo thả các đối tượng và gắn các hàm chức năng. Khả năng thao tác CSDL là một ưu điểm khác của NN. Borland, có các công cụ thương mại cho Windows và Linux.

Vì sao tôi thích công cụ này? sao lại là & mà không phải 8 9 hay 10 bởi vì đây là phiên bản hoàn thiện nhất của Borland. Nó biên dịch ra sản phẩm chạy độc lập trên mọi môi trường Windows với 1 file .exe duy nhất. Không phụ thuộc vào .NET như những phiên bản kế tiếp. Có thể .net mạnh hơn, hay hơn. Nhưng với tôi Delphi 7 là quá đủ cho mọi nhu cầu

Đây là link Downlad bộ Delphi 7 yêu thích của tôi, tài liệu học tập nghiên cứu, các COM tôi thích sử dụng và … nhiều bí kíp võ công liên quan như Delphi bôk, Mastering Delphi, DBK … COM

Vô đây để Dowload:  http://www.box.net/s/pel19bhrpisvf1gjoyx4

 

 

 
3 bình luận

Posted by trên 14/11/2011 in Delphi tip

 

Sử dụng Cheat Engine để search base address dùng cho auto play

Nguồn: Bài này tham khảo trên mạng chả nhớ nó ở đâu nữa, gom vào đây cho  đõ phải tìm lại
Chú ý: Quan trọng nhất khi tìm địa chỉ ADD game là phải biết được kiểu dữ liệu định tìm. Ví dụ khi tìm cho PTV game là HP có kiểu Real, HP max có kiểu integer 2 byte tương tự cho STM Mana. Mấu chốt là bạn tìm kiểu này không thấy thì thử kiểu khác, bao giờ đúng thì thôi. Đây là quá trình mệt mỏi nhất khi code Auto game
Có một số game chặn CE để chống Hack, bạn sẽ cần phải thực hiện thêm một số kỹ thuật nữa để vượt qua, như chạy game với user khác hoặc sử dụng hide tool… Cái này tôi sẽ hướng dẫn cụ thể trong một bài viết khác.
1. Mở CE và chọn process cần debug (lưu ý: bạn phải chọn được đúng cửa sổ nào sẽ được attach vào CE).Bước 1: Ví dụ bạn muốn search địa chỉ của HP, chúng ta đọc thông tin HP của nhân vật giá trị là 5111

Bước 2: Dùng cheat Engine chọn process và search giá trị này, là search lần đầu tiên “New Scan”, giá trị là decimal nên không check Hexa
2