Jump to content

Welcome to [ iT ] Forums
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!
Cộng đồng Âm nhạc Việt Nam

Hình ảnh

Support AUTO TGHM

- - - - -

  • Please log in to reply
332 replies to this topic

#81
bhduong

bhduong

    Right here waiting for you

  • Mod Giải Trí
  • PipPipPip
  • 432 Bài Viết:
Theo mình thì có thể sử dụng thuật toán Dijkstra để tìm đường đi ngắn nhất cho ma trận trọng số không âm, với các trọng số là số tiền để di chuyển giữa các NPC. Như vậy mình có thể tìm được đường đi ngắn nhất mà ít tốn tiền nhất :-$

#82
TuiDayNe

TuiDayNe

    Căn bản tin học tốt

  • Advance Member
  • Pip
  • 63 Bài Viết:
Nếu bạn muốn tìm đường đi ít tốn tiền nhất thì không có vấn đề gì.
Nhưng con đường ít tốn tiền nhất có thể không phải là con đường ngắn nhất.
Nó có thể là ngắn nhất trong số các đường tốn ít tiền nhất.
Nhưng nó có thể vẫn dài hơn con đường ngắn nhất bất chấp tốn bao nhiêu tiền.

#83
bhduong

bhduong

    Right here waiting for you

  • Mod Giải Trí
  • PipPipPip
  • 432 Bài Viết:
Nói vậy thôi chứ Q KBC không bao h nhảy quá 3 Q 1 lúc nên không cần xây dựng thuật toán tìm đường làm gì cho mất công. Chỉ càn chỉ ra sơ đồ đường đi direct cho mỗi trường hợp là được mà. Như thế hơi mất công 1 chút nhưng lại rất nhanh đấy

#84
TuiDayNe

TuiDayNe

    Căn bản tin học tốt

  • Advance Member
  • Pip
  • 63 Bài Viết:
Đồng ý là như vậy.
Nhưng chương trình mất tính tổng quát, và do đó nó sẽ không chạy tốt trong mọi tình huống được.
Điều này tôi đã nói đến bên topic "Auto của các tác giả khác".

Cụ thể là:
... nó chạy tốt nếu bạn đi đúng đường làm Q KBC. Nhưng nó sẽ chạy ko tốt nếu bạn cố ý bay đến một nơi lạ hoắc, ví dụ ở góc tận cùng phía dưới, bên trái bản đồ, rồi mới bấm start.

Tôi chỉ đưa một ví dụ ở góc dưới, bên trái bản đồ. Còn rất nhiều vị trí nữa sẽ làm chương trình chạy không tốt, tức là nó cứ bay thẳng đến đích, mà không biết sử dụng các NPC di chuyển nằm ngay gần nó để di chuyển được nhanh hơn hẳn.

Nói sát với ý nghĩa thực tế trong game là nếu tôi đang ở đâu đó (đi chơi, ngắm cảnh, chụp hình, hoặc train level... ở một ví trí bất kỳ trên bản đồ TGHM) thì khi muốn bắt đầu chạy KBC, tôi phải tự mình quay về bên cạnh LyMongBach, rồi mới bấm nút Start của chương trình Auto KBC. Chỉ khi đó chương trình mới chạy "tốt" được.

Với cách viết tự động tìm đường tổng quát, thì cứ việc bấm nút Start, không cần quan tâm là mình đang ở đâu, tại vị trí nào. Chương trình sẽ biết sử dụng các NPC di chuyển để bay rất nhanh về bên cạnh LyMongBach.

Điều quan trọng tôi muốn nói là tính tổng quát của chương trình, để nó có thể xử lý tốt trong mọi trường hợp. Tất nhiên là khái niệm "tốt" cũng chỉ là tương đối thôi.

Nhưng rõ ràng là nếu cứ bay thẳng, từ góc dưới bên trái bản đồ, về bên cạnh LyMongBach thì không "tốt" bằng biết sử dụng NPC di chuyển để về bên cạnh LyMongBach nhanh hơn hẳn.
Nếu bạn lại cố tình lập trình chỉ đường đi cho nó trong trường hợp từ góc dưới trái, thì tôi lại chỉ ra được trường hợp khác, từ vị trí khác, nó vẫn chạy không tốt.

Liệu bạn có thể lập trình chỉ đường như vậy cho hàng triệu điểm trên bản đồ không?
Mà với hàng triệu điểm vẫn còn chưa đủ.

#85
autoeasy

autoeasy

    Trung cấp CSTH

  • Advance Member
  • PipPipPip
  • 285 Bài Viết:
Mình nghỉ không cần phải phức tạp lắm đâu, chỉ cần trước khi start thì tự di chuyển đến NPC KBC
Muốn trả Q tiếp theo thì có sự lựa chọn: sử dụng money hoặc bay
Nếu dùng money thì số KBC không bao giờ nhảy quá 3 quyển, vì vậy mình có thể lặp sẳn công thức di chuyển từ 1 NPC KBC lần lượt qua các NPC di chuyển rồi đến NPC KBC tiếp theo, nên mỗi NPC KBC sẽ có ít nhất 3 công thức để có thể đi đến 1 trong 3 NPC KBC tiếp theo, công thức này do mình tạo nên có thể cân đối giữa số tiền và tg di chuyển : có thể nhanh nhất hoặc ít tốn money nhất hoặc cân đối cả 2
my auto : autotghm

*^.^*

#86
autoeasy

autoeasy

    Trung cấp CSTH

  • Advance Member
  • PipPipPip
  • 285 Bài Viết:

Nhưng rõ ràng là nếu cứ bay thẳng, từ góc dưới bên trái bản đồ, về bên cạnh LyMongBach thì không "tốt" bằng biết sử dụng NPC di chuyển để về bên cạnh LyMongBach nhanh hơn hẳn.
Nếu bạn lại cố tình lập trình chỉ đường đi cho nó trong trường hợp từ góc dưới trái, thì tôi lại chỉ ra được trường hợp khác, từ vị trí khác, nó vẫn chạy không tốt.

Liệu bạn có thể lập trình chỉ đường như vậy cho hàng triệu điểm trên bản đồ không?
Mà với hàng triệu điểm vẫn còn chưa đủ.


Nếu sử dụng thuật toán tìm đường nhu bhduong nói thi có thể giải quyết việc di chuyển bất kỳ
Kết quả tìm đường là tìm di chuyển nhanh nhất với điều kiện là ít tốn tiền nhất, do đó lúc nào cũng tốn tiền :jeje:. Nhưng thuật toán hơi nhức đầu :jeje:, và bạn phải có đủ dữ liệu cách di chuyển, tiền, tọa độ của tất cả NPC di chuyển, phải tính ra khoảng cách giữa 2 tọa độ bất kỳ,... Thì thôi mình nghỉ nên để người chơi bỏ ra tí xíu tg di chuyển về NPC KBC cần thiết cho đơn giản.
my auto : autotghm

*^.^*

#87
TuiDayNe

TuiDayNe

    Căn bản tin học tốt

  • Advance Member
  • Pip
  • 63 Bài Viết:
Đúng như easy nói, nếu thêm điều kiện tốn ít tiền vào thì giải thuật phức tạp hơn hẳn. Mình còn phải đi thu thập số liệu phí di chuyển giữa các cặp NPC. Nếu phí di chuyển lại có thể khác nhau theo hai chiều khác nhau (Phí từ A đến B khác phí từ B đến A) thì càng điên. Rồi tự nhiên một hôm nào đó DEC thay đổi các khoản phí này thì mệt nữa.

Do vậy yêu cầu người sử dụng phải đứng bên cạnh LyMongBach trước khi bấm nút Start của Auto KBC và không quan tâm đến phí di chuyển là một điều kiện làm đơn giản bài toán đi nhiều.

Chọn cách nào thì tùy người lập trình thôi.

Tôi đã chọn cách sử dụng giải thuật tìm đường đi ngắn nhất như tôi đã trình bày, không quan tâm đến chi phí, vì tôi đã có thể cài đặt giải thuật đó rất ngắn gọn, và giải thuật này chạy cực nhanh. Tôi chỉ muốn nói rõ hơn với giải thuật đã cài đặt thì KBC của tôi có ưu điểm gì, khuyết điểm gì so với cái của bhduong.

Trong chương trình Ak KBC Autorun phiên bản V 1.10 giải thuật này được chạy 1 giây 1 lần, tức là thông tin về đường đi ngắn nhất được cập nhật mới mỗi giây một lần. Vậy mà chương trình chạy rất nhanh, như tôi đã nói, nó chỉ chiếm từ 0 đến 1% CPU thôi.

Việc cài đặt giải thuật cũng rất đơn giản như tôi đã đưa lên topic này trong mấy bài viết trước.
Chỉ có điều là giải thuật được trình bày bằng ngôn ngữ C. Nếu bạn muốn cài đặt bằng AutoIt thì phải thực hiện các chuyển đổi cần thiết. Và khi cài đặt bằng AutoIt có thể giải thuật sẽ chạy chậm hơn rất nhiều so với cài đặt bằng C.

#88
TuiDayNe

TuiDayNe

    Căn bản tin học tốt

  • Advance Member
  • Pip
  • 63 Bài Viết:
Nói thêm một chút về tác dụng của giải thuật tìm đường đi:
-Chỉ cần làm thêm khả năng nhận tọa độ điểm đến theo yêu cầu của người sử dụng, chương trình có thể nhanh chóng đưa nhân vật đến một vị trí bất kỳ trên bản đồ TGHM với số lần sử dụng NPC di chuyển là ít nhất.
Ví dụ có thể nhận tọa độ của quái vật cần làm Q, của vị trí vật phẩm làm Q, của NPC làm Q bất kỳ,... để nhanh chóng di chuyển tới nơi đó một cách tự động.

Bài viết này được chỉnh sửa bởi TuiDayNe: 21 February 2009 - 12:48 AM


#89
gongon

gongon

    Trình độ A CSTH

  • Advance Member
  • PipPip
  • 186 Bài Viết:
cái nè có thể áp dụng để đổi HTT chắc là ngon lành ko vấn đề ji nhỉ các pác . Hum wua mới đổi hơn 400 viên HTT ấn mỏi tay luôn :jeje: .dùng cái trợ giúp click no cú chay lang xăng pải hắc Wall nhốt char vao 1 cho ko cho di chuyen rui click nhưng cũng vất vả ^^.
Đừng làm những công việc mà mình không thạo, hãy để chuyên gia giúp.

#90
Dark Baron

Dark Baron

    Căn bản tin học tốt

  • Advance Member
  • Pip
  • 75 Bài Viết:
Pé có 1 đống Problem với thằng C# >"< :

IntPtr dwProcessID = new IntPtr();

[DllImport("user32.dll")]
static extern IntPtr GetWindowThreadProcessId(IntPtr hWnd, IntPtr ProcessId);

[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr OpenProcess(UInt32 dwDesiredAccess, Int32 bInheritHandle, UInt32 dwProcessId);

[DllImport("kernel32.dll", SetLastError = true)]
static extern bool CloseHandle(IntPtr hHandle);

GetWindowThreadProcessId(hwnd, dwProcessID);
IntPtr hwnd = OpenProcess((uint)PROCESS_VM_READ, 0, (uint) dwProcessID);



Problem nảy sinh là :

GetWindowThreadProcessId(hwnd, dwProcessID);

dwProcessID đúng ra phải nhận được giá trị thế nhưng lại ko có 8->. Cái hwnd truyền vào lấy đc từ hàm GetWindow (hàm nì thì ok).


Vấn đề khác :
PROCESS_VM_READ >>> pé ko biết khai báo cái này ra sao :bash


static extern IntPtr OpenProcess(UInt32 dwDesiredAccess, Int32 bInheritHandle, UInt32 dwProcessId);

  • UInt32 dwDesiredAccess >>> UInt32 thay = cái rì đc :d
  • UInt32 dwProcessId >> pé thay UInt32 thành IntPtr đc hem :d


Tiện cho pé xin cái Base Address và Address của Current HP, Max HP, Current MP, Max MP, Exp, v.v... túm lại là Address của Thông tin Char :">

Bài viết này được chỉnh sửa bởi Dark Baron: 28 February 2009 - 04:39 PM


#91
leovn85

leovn85

    Căn bản tin học tốt

  • Advance Member
  • Pip
  • 60 Bài Viết:
Đừng viết bằng C#, ngày trước tớ cũng viết bằng C# nhưng rồi không hiểu vì sao nó không chạy, thế là phải chuyển qua MFC C++.

Theo mình biết C# về cơ bản chỉ read được memory(mình read tốt) nhưng khi ghi ngược vào thì lại không có chuyện gì xảy ra ... mình nghĩ là nó có 1 cơ chế bảo mật nên C# không ghi ngược vào được

#92
Dark Baron

Dark Baron

    Căn bản tin học tốt

  • Advance Member
  • Pip
  • 75 Bài Viết:
Nếu cần thì dùng dll của C++ để write vào Memory ko biết đc ko nhỉ :oa:. C++ thì fải ngồi mò fê lắm >"<

#93
autoeasy

autoeasy

    Trung cấp CSTH

  • Advance Member
  • PipPipPip
  • 285 Bài Viết:
:(( Address của skilling và skillwaitting cho biết skill đang đươc thi triển không phải lúc nào cũng đúng, có trường hợp không thi triển skill nào cả mà skilling vẫn khác 0, thỉnh thoảng mới xảy ra nên kg tìm đươc nguyên nhân :(( có lẻ do bug của mấy cái inject code.
Vì vậy nếu auto kiểm tra 2 add này cẩn thêm đk đang target, nếu kg thỉ set 2 add này về 0 cho chắc ăn
Một số bạn kg auto được hoặc auto 1 lúc rùi đứng là do ct auto bị vướng vào vòng lặp check skill đang thi triển này.
my auto : autotghm

*^.^*

#94
autoeasy

autoeasy

    Trung cấp CSTH

  • Advance Member
  • PipPipPip
  • 285 Bài Viết:
@Dark Baron : chú ý mấy cái tham số Ptr cần truyền vào hàm theo dạng tham chiếu để nhận được giá trị

VD : GetWindowThreadProcessId(hwnd, &dwProcessID);
my auto : autotghm

*^.^*

#95
KAKO

KAKO

    Trình độ A CSTH

  • Advance Member
  • PipPip
  • 160 Bài Viết:
Cho mình ké một dòng về tru tiên nhá (ko biết ở đây có ai chơi tru tiên ko nhỉ?)

bạn nào có thể cho mình add + offset của tru tiên đc ko.
Hiện TT chỉ có auto viết bằng AutoIT nên có nhiều lúc ko chủ động đc.

các MOD cho em ké 1 dòng thế nhé.

#96
Dark Baron

Dark Baron

    Căn bản tin học tốt

  • Advance Member
  • Pip
  • 75 Bài Viết:
Ko ai giúp pé Base Add và Offset ah :mad:

#97
bhduong

bhduong

    Right here waiting for you

  • Mod Giải Trí
  • PipPipPip
  • 432 Bài Viết:

Ko ai giúp pé Base Add và Offset ah 8->

Bạn chịu khó vào đọc trong mục Quà tặng âm nhạc sẽ thấy rất nhiều offset và hàm bổ ích đấy

#98
Dark Baron

Dark Baron

    Căn bản tin học tốt

  • Advance Member
  • Pip
  • 75 Bài Viết:
StackOverflowException >>> pé viết Code chạy đã đời thì bị quăng cái Exception này. Try - Catch vô hiệu (đã thử). Ai có cách nào giúp bắt lỗi này hoặc tránh đc nó chỉ pé cái :mad:

#99
autoeasy

autoeasy

    Trung cấp CSTH

  • Advance Member
  • PipPipPip
  • 285 Bài Viết:
StackOverflowException là lỗi tràn vùng nhớ stack. Có thể bạn bị vướng 1 vòng lặp vô tận, hoặc đệ qui không có trường hợp thoát, hoặc khai báo quá nhiều biến nên làm hết vùng nhớ stack
Cái này thì try catch cũng chịu, xem lại code đi nhé
my auto : autotghm

*^.^*

#100
autoeasy

autoeasy

    Trung cấp CSTH

  • Advance Member
  • PipPipPip
  • 285 Bài Viết:
có ai biết addr nào của item để phân biệt giữa món đồ có thể nhặt và khoáng, rau, ... kg?
Auto pick easy tìm theo tọa độ của bhduong cho làm được quá good : kiểm tra số đồ rớt, tính tg cần nhặt giữa các item, giới hạn khoảng cách an toàn, tg nhặt tối đa , nhưng mà thỉnh thoảng còn chạy lại quặng :hug:, nếu biết addr phân biệt item nữa thì hay quá :eee"
my auto : autotghm

*^.^*






Perfumista - Thong tin nuoc hoa

Stars Counter Game

Balloon vs. Thorns

MU Phuc Hung

Làm Việc Tài Nhà

Mu Da Nang

Tuyển Nhân Viên Bán Hàng

Tư vấn sức khỏe trực tuyến

Close [X]