Lời tác giả: Đoạn mã này là kỷ niệm một thời tham gia PTV game online của tôi. Nó được xây dựng trong một thời gian rất dài. Phát triển từ các loại auto bằng phần cứng chuột, phím … Bằng tất cả sự đam mê của nhóm bạn bè trong clan Commandos. Chúng tôi là những kỹ sư cơ khí ô tô đi code phần mềm. Giai đoạn đầu bỡ ngỡ, vạn sự khởi đầu nan. Nhưng dù sao nó vẫn có giá trị kỷ niệm rất lớn trong lòng mọi người!!!
Đây là bài đầu tiên trong loạt bài về phổ biến kinh nghiệm, mã nguồn các chương trình auto tôi đã từng viết cho game PTV. Bản đầu tiên này được viết băng Autohotkey các bạn có thể tìm thấy nó ở đây http://www.autohotkey.com/download/
Giới thiệu: AutoHotkey là một tiện ích miễn phí, mã nguồn mở cho Windows
AutoHotkey cung cấp toàn bộ khả năng cho bàn phím, joystick và chuột. Chẳng hạn, cùng với các phím modifier đặc trưng như Control, Alt, và Shift, bạn có thể sử dụng phím Windows và Capslock như các phím modifiers. Trên thực tế, bạn có thể gán cho bất kỳ một phím (hay mouse button) trở thành một phím modifier.Với nó, bạn có thể:
– Tự động hóa gần như mọi thứ bằng cách gởi thao tác phím và click chuột. Bạn có thể viết một macro mouse hay bàn phím bằng tay hay sử dụng macro recorder.
– Tạo phím nóng cho bàn phím, joystick, và chuột. Hầu như mọi phím, nút hay sự kết hợp đều có thể trở thành 1 phím nóng.
– Tự động hiện đầy đủ chữ viết tắt khi bạn gõ. Chẳng hạn, gõ “btw” sẽ tự động chuyển thành “by the way”.
– Tạo các form nhập dữ liệu, giao diện người dùng và thanh menu.
– Gán lại phím và nút trên bàn phím, joystick và chuột.
– Nhận tín hiệu từ những điều khiển từ xa cầm tay qua WinLIRC client script.
– Thực thi các đoạn mã sẵn có AutoIt v2 và cải tiến chúng với những khả năng mới.
– Chuyển đổi mọi script sang file exe, có thể thực thi trên máy tính không được cài đặt AutoHotkey.
Ở đây tôi không viết hướgn dẫn để bạn sử dụng autohotkey cái này bạn tự search google và đọc Help kèm theo để biết. Tôi chỉ cung cấp cho bạn mã nguồn của bộ auto tôi đã code để bạn tham khảo cách tôi viết chương trình và sửa lại để ứng dụng cho các game khác.
Chương trình này được code theo kiểu include các file text nhằm tách các hàm chức năng riêng các file cho dễ truy xuất và xử lý. Bạn có thể download toàn bộ mã nguồn auto và các file cần thiết để biên dịch của autohotkey tại đây: http://www.box.net/s/b9h2100jnuc9xaij4r24
Bạn sửa chữa bằng notepad rồi chạy file CompileAutoPTV.bat để biên dich thành file thực thi *.exe
Hoặc copy các nội dung sau đây rồi lưu thành file tương ứng nếu không down được theo link trên:
File: AutoHP.ahk ;MsgBox, Auto Bom mau va STM. `nTac gia: TomS - MIDRRANDA. `n(Nhan F10 ==> Start; Ctrl+Alt+H ==> Pause; Ctrl+Alt+S==> Tiep tuc; Ctrl+F12 - Exit . `nThan tang nhung nguoi ban ma toi yeu quy! ;Menu, Tray, Icon, Shell32.dll, 44,1 #Include %A_ScriptDir%\HpStmMana.txt #Include %A_ScriptDir%\ID.txt ; MAIN PROGRAM ; ------------------------------------------------------------------------------------------------------------------------------------ SetKeyDelay, 50, 50, Play SetMouseDelay,50, Play sendmode play pause ^F10::reload ^F12:: Exitapp F10:: { pause off sleep 50 if (GetACC()=0) ; thoat neu ACC khong hop le { MsgBox, Xin loi ACC PTV ban dang su dung khong co quyen su dung phan mem nay. `n Lien he voi tac gia de duoc cap phep. Exitapp } IniRead, HP, %A_WinDir%\AutoPTV.ini, HPStmMana, HP IniRead, STM, %A_WinDir%\AutoPTV.ini, HPStmMana, STM IniRead, MANA, %A_WinDir%\AutoPTV.ini, HPStmMana, MANA Loop ; Vong lap chinh { CheckHeath(HP) Sleep, 80 } } ; ----------------------------------------------------------------------------------------------------------------------
;File: Play.ahk Đây là file thực thi chính của chương trình
Menu, Tray, Icon, Shell32.dll, 44,1 #SingleInstance, FORCE #Include %A_ScriptDir%\NapMauVaVeLang.txt #Include %A_ScriptDir%\Click.txt #Include %A_ScriptDir%\HpStmMana.txt #Include %A_ScriptDir%\ID.txt #Include %A_ScriptDir%\DangNhapPTV.txt ;BAT DAU CHUONG TRINH CHINH ---------------------------------------------------------------------------------------- SetKeyDelay, 50, 50, Play SetMouseDelay, 50, Play BlockInput, MouseMoveOff sendmode play pause $^F11:: { DungCamera() WinSet, AlwaysOnTop, off, Priston ;Tat cua so Game ontop WinSetTitle, Priston, , Priston Tale Sleep, 50 Process, Exist, Active.exe PID := errorLevel Sleep, 30 Process, Close, %PID% IniRead, ProgramFoder, %A_WinDir%\AutoPTV.ini, Path, ProgramFoder Run, %ProgramFoder%AutoPTV50.exe Exitapp Return } $^F9:: { DungCamera() WinSet, AlwaysOnTop, off, Priston ;Tat cua so Game ontop WinSetTitle, Priston, , Priston Tale Sleep, 50 Process, Exist, Active.exe PID := errorLevel Sleep, 30 Process, Close, %PID% Reload } $^F12:: { DungCamera() WinSet, AlwaysOnTop, off, Priston ;Tat cua so Game ontop WinSetTitle, Priston, , Priston Tale Sleep, 50 Process, Exist, Active.exe PID := errorLevel Sleep, 30 Process, Close, %PID% Exitapp Return } $F9:: { pause off BlockInput, MouseMove sendmode play sendplay {Click 165, 602} ; Chuyen che do chat clan ; Check cac thong so va Load Ini File ;------------------------------------------------- ;if (GetACC()=0) ; thoat neu ACC khong hop le ;{ ;MsgBox, Xin loi ACC PTV ban dang su dung khong co quyen su dung phan mem nay. `n Lien he voi tac gia de duoc cap phep. ;Exitapp ;} ;MouseGetPos, Mouse_x, Mouse_y ; Lay toa do chuot hien tai IniRead, KieuTanCong, %A_WinDir%\AutoPTV.ini, Mouse, KieuTanCong IniRead, Mouse_x, %A_WinDir%\AutoPTV.ini, Mouse, Mouse_x IniRead, Mouse_y, %A_WinDir%\AutoPTV.ini, Mouse, Mouse_y IniRead, MouseDelay, %A_WinDir%\AutoPTV.ini, Mouse, MouseDelay IniRead, Mouse_x_CastSkill, %A_WinDir%\AutoPTV.ini, Mouse, Mouse_x_CastSkill IniRead, Mouse_y_CastSkill, %A_WinDir%\AutoPTV.ini, Mouse, Mouse_y_CastSkill IniRead, TimeDelayChangeSkill, %A_WinDir%\AutoPTV.ini, Mouse,TimeDelayChangeSkill IniRead, TimeReloadPoision, %A_WinDir%\AutoPTV.ini, Mouse, TimeReloadPoision TimeReloadPoision*=60000 IniRead, F2, %A_WinDir%\AutoPTV.ini, Skill, F2 IniRead, F3, %A_WinDir%\AutoPTV.ini, Skill, F3 IniRead, F4, %A_WinDir%\AutoPTV.ini, Skill, F4 IniRead, F5, %A_WinDir%\AutoPTV.ini, Skill, F5 IniRead, F6, %A_WinDir%\AutoPTV.ini, Skill, F6 IniRead, F7, %A_WinDir%\AutoPTV.ini, Skill, F7 IniRead, F8, %A_WinDir%\AutoPTV.ini, Skill, F8 IniRead, OutParty, %A_WinDir%\AutoPTV.ini, Option, OutParty IniRead, OutGameKhiVeLang, %A_WinDir%\AutoPTV.ini, Option, OutGameKhiVeLang IniRead, TatMayKhiVeLang, %A_WinDir%\AutoPTV.ini, Option, TatMayKhiVeLang IniRead, GoiSoi, %A_WinDir%\AutoPTV.ini, Option, GoiSoi IniRead, AutoLogin, %A_WinDir%\AutoPTV.ini, Option, AutoLogin IniRead, HP, %A_WinDir%\AutoPTV.ini, HPStmMana, HP IniRead, STM, %A_WinDir%\AutoPTV.ini, HPStmMana, STM IniRead, MANA, %A_WinDir%\AutoPTV.ini, HPStmMana, MANA ;------------------------------------------------- WinSet, AlwaysOnTop, on, Priston ;Dat cua so Game ontop WinMaximize, Priston ; Dat cua so game maximize Run, active.exe ; ------------------------------------------------- WinSetTitle, Priston Tale, , Priston Tale - Auto PTV 5.0 for VIP only - Create by: Do Van Kha - Press [Ctrl+F9] to Pause ; ------------------------------------------------- SendKeyTomS(0x11) ; Gui phim Ctrl Delay(200) SendKeyTomS(0x11) Delay(200) start_time_reloadpoision := A_TickCount ; Bat dau tinh thoi gian nap mau start_time_killPVT := A_TickCount ; OUT game Bommana = 0 Bommau = 0 ;if (GetACC()=1) Loop ; Vong lap chinh cua chuong trinh { ;Loop 20 ;Click 1 so lan nhat dinh sau do Xuong nap mau { ;IfWinNotExist, Priston ; Disconect thi log in lai ;if (AutoLogin = "1") ;{ ;Sleep, 5000 ;DangNhapPTV() ;} WinActivate , Priston IfWinActive, Priston { SendKeyTomS(0x70) ; F1 key } Loop, 2 { loop, 15 ; Tan cong QV theo phuong an lua chon { IfWinActive, Priston { if (CheckHeath(HP)=1) ; Kiem tra HP neu tut thi bom Bommana = 1 else Bommau += 1 if (Bommau >=100) { Bommana = 0 Bommau = 0 } if (KieuTanCong = "0") AutoClick1(MouseDelay) else if (KieuTanCong = "1") AutoClick2(Mouse_x, Mouse_y, MouseDelay) else if (KieuTanCong = "2") AutoClick1(MouseDelay) else AutoClickDetect() } ; Kiem tra mau trong ong mau neu het thi ve lang IfWinActive, Priston if (getMau()=0) { WinActivate , Priston Sleep, 50 if (getMau()=0) Velang(OutGameKhiVeLang, TatMayKhiVeLang) } ; -------------------------------------------Die ko mat % if (CheckNguyHiem()=1) { ThoatGameKhanCap() Sleep, 100 SoundBeep , 600, 200 Sleep, 50 Break } } ; --------------------------------------------------- bom STM CheckSTM(STM) ; --------------------------------------------------- bom mana ;if (Bommana=1) CheckMana(MANA) ; ------------------------------------------------------------------ } ; //////////////////////////////// CHUYEN CAC SKILL KHAC ///////////////////////////// IfWinActive, Priston If (GoiSoi="1") if (GetSoi()=0) GoiSoi() #Include %A_ScriptDir%\ChuyenSkill.txt IfWinActive, Priston loop, 10 ; Tim va Nhat do { AutoClick1(MouseDelay) ;AutoClickFind(MouseDelay) } } ; ---------------------------------------- Kiem tra thoi gian toi han va nap mau elapsed_time := A_TickCount - start_time_reloadpoision if (elapsed_time >= TimeReloadPoision) IfWinActive, Priston { Delay(1000) Napmau(HP) start_time_reloadpoision := A_TickCount ; Khoi dong lai thoi gian nap mau IfWinActive, Priston If (OutParty="1") sendplay {Click 716, 410} ; OUT Pty neu co' Delay(100) sendplay {Click 400, 338} ;loop, 30 ;{ ;CheckHeath(HP) ; Kiem tra HP neu tut thi bom ;Sleep, 100 ;} } ; ------------------------------------------ Het phan Nap mau ; ------------------------------------------ OUT Game elapsed_time1 := A_TickCount - start_time_killPVT if (elapsed_time1 >= 1800000) { start_time_killPVT := A_TickCount ; Khoi dong lai thoi gian WinKill, Priston ; Thoat game neu it QV qua } ; ------------------------------------------ Het phan OUT Game } ;if (GetACC()=0) ;tooltip, STOP } ; HET CHUONG TRINH CHINH ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ChuyenSkillSoi() { mousemove 26, 48 sleep 20 click 2 click mousemove 59, 48 sleep 20 click 2 click mousemove 89, 48 sleep 20 click 2 click ; 89, 48 122, 48 } GetSoi() { PixelSearch, Px, Py, 30, 63, 130, 63, 0x543430, 3, Fast if ErrorLevel GL:=0 ; Khong thay Mau lua chon else GL:=1 ; Thay mau lua chon return GL } GoiSoi() { SendKeyTomS(0x74) ; F5 key sleep 80 SendKeyTomS(0x74) ; F5 key sleep 200 Click Right 400, 338 sleep 50 Click Right 400, 338 sleep 1000 ChuyenSkillSoi() }
; File: Click.txt Chứa các hàm click
; ---------------------------------------------------------------------------------------- AutoClick2(MouseX,MouseY,MouseDelay) { Xoaycamera() mousemove, MouseX, MouseY Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,Left Sleep, MouseDelay } ; ---------------------------------------------------------------------------------------- ; ---------------------------------------------------------------------------------------- AutoClick3(MouseDelay) ; chi danh chuot phai { Xoaycamera() if (getManaSkill()=0) and (getSTMSkill()=0) SendKeyTomS(0x70) ; F1 key else SendKeyTomS(0x77) ; F8 key mousemove, 330, 328 CheckHeath(658) Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right mousemove, 470, 328 CheckHeath(658) Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right mousemove, 360, 340 CheckHeath(658) Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right mousemove, 440, 340 CheckHeath(658) Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right mousemove, 400, 328 CheckHeath(658) Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right ;ControlClick, xMouseX yMouseY,Priston,,Left } ; ---------------------------------------------------------------------------------------- ; ---------------------------------------------------------------------------------------- AutoClick1(MouseDelay) ; Click 4 diem { Xoaycamera() mousemove, 400, 328 CheckHeath(658) Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right mousemove, 350, 328 CheckHeath(658) Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right ControlClick, xMouseX yMouseY,Priston,,Left mousemove, 450, 328 CheckHeath(658) Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right ControlClick, xMouseX yMouseY,Priston,,Left mousemove, 350, 348 CheckHeath(658) Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right ControlClick, xMouseX yMouseY,Priston,,Left mousemove, 450, 348 CheckHeath(658) Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right ControlClick, xMouseX yMouseY,Priston,,Left mousemove, 400, 328 CheckHeath(658) Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right } ; ---------------------------------------------------------------------------------------- ; ---------------------------------------------------------------------------------------- AutoClickFind(MouseDelay) ; Click Tim kiem QV tam xa { Xoaycamera() mousemove, 350, 318 CheckHeath(658) Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right mousemove, 450, 318 CheckHeath(658) Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right mousemove, 300, 318 CheckHeath(658) Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right mousemove, 500, 318 CheckHeath(658) Sleep, MouseDelay ControlClick, xMouseX yMouseY,Priston,,right } ; ---------------------------------------------------------------------------------------- AutoClickDetect() { mousemove 400, 338 check:=getQV() if (check = 0) { Xoaycamera() } else if (check = 1) { Dungcamera() ControlClick, xMouseX yMouseY,Priston,,right ControlClick, xMouseX yMouseY,Priston,,right ControlClick, xMouseX yMouseY,Priston,,Left } else if (check = 2) { Xoaycamera() ControlClick, x470 y338,Priston,,Left Sleep, 80 } } ; ---------------------------------------------------------------------------------------- ; ------------------------------------------------------------------- Xoaycamera() { ControlGetText, ChatEdit, Edit1, Priston if !(ChatEdit<>"") { VK_KEY= 0x25 hwnd:=WinExist("Priston") DllCall("SendMessage", "UInt", hwnd, "int", 0x100, "Char", VK_KEY, "int", 0) } } ; -------------------------------------------------------------------- Dungcamera() { VK_KEY= 0x25 hwnd:=WinExist("Priston") DllCall("SendMessage", "UInt", hwnd, "int", 0x101, "Char", VK_KEY, "int", 0) } ;------------------------------------------------------------------------------------------------------------- getQV() { ;KO Co QV 25 - co QV 69 - Lum do So khac PixelGetColor, color, 521, 411,Slow ;Toa do chuot (400 338) ;PixelGetColor, color, 617, 411,Slow ;Toa do chuot (475 338) ;MsgBox The color at the current cursor position is %color% StringMid, Q, color,7,1 if (Q="2") QV:=0 ;ko co QV else if (Q="6") QV:=1 ; CO QV else QV :=2 ;Lum do return QV } ;----------------------------------------------------------------------------------------------------------------; File: ChuyenSkill.txt Chứa hàm đổi Skill
IfWinActive, Priston If (F2="1") { CheckHeath(HP) SendKeyTomS(0x71) ; F2 key Delay(50) Click Right %Mouse_x_CastSkill%, %Mouse_y_CastSkill% Click %Mouse_x_CastSkill%, %Mouse_y_CastSkill% Delay(TimeDelayChangeSkill) } IfWinActive, Priston If (F3="1") { CheckHeath(HP) SendKeyTomS(0x72) ; F3 key Delay(50) Click Right %Mouse_x_CastSkill%, %Mouse_y_CastSkill% Click %Mouse_x_CastSkill%, %Mouse_y_CastSkill% Delay(TimeDelayChangeSkill) } IfWinActive, Priston If (F4="1") { CheckHeath(HP) SendKeyTomS(0x73) ; F4 key Delay(50) Click Right %Mouse_x_CastSkill%, %Mouse_y_CastSkill% Click %Mouse_x_CastSkill%, %Mouse_y_CastSkill% Delay(TimeDelayChangeSkill) } IfWinActive, Priston If (F5="1") { CheckHeath(HP) SendKeyTomS(0x74) ; F5 key Delay(50) Click Right %Mouse_x_CastSkill%, %Mouse_y_CastSkill% Click %Mouse_x_CastSkill%, %Mouse_y_CastSkill% Delay(TimeDelayChangeSkill) } IfWinActive, Priston If (F6="1") { CheckHeath(HP) SendKeyTomS(0x75) ; F6 key Delay(50) Click Right %Mouse_x_CastSkill%, %Mouse_y_CastSkill% Click %Mouse_x_CastSkill%, %Mouse_y_CastSkill% Delay(TimeDelayChangeSkill) } IfWinActive, Priston If (F7="1") { CheckHeath(HP) SendKeyTomS(0x76) ; F7 key Delay(50) Click Right %Mouse_x_CastSkill%, %Mouse_y_CastSkill% Click %Mouse_x_CastSkill%, %Mouse_y_CastSkill% Delay(TimeDelayChangeSkill) } IfWinActive, Priston If (F8="1") { CheckHeath(HP) SendKeyTomS(0x77) ; F8 key Delay(50) Click Right %Mouse_x_CastSkill%, %Mouse_y_CastSkill% Click %Mouse_x_CastSkill%, %Mouse_y_CastSkill% Delay(TimeDelayChangeSkill) } IfWinActive, Priston ; Tra ve skill F1 SendKeyTomS(0x70) ; F1 key; File: DangNhapPTV.txt Đây là hàm Auto login game
; /////////////////////// Log in PTV ///////////////////////////////////////////////////// #persistent DangNhapPTV() { Batdau: ID = khavaq5 Pass = tomxinh1 ;//////////////////////// Kiem tra tinh trang mang co online hay khong test = c:\test.txt FileDelete, %test% URLDownloadToFile, http://ptv.gate.vn/, %test% ; Down thu tu trang chu PTV if FileExist(Test) { ;tooltip, online roi day FileDelete, %test% } else Goto, Batdau ; ////////// Neu khong thi tro lai vi tri bat dau ; ////////// Neu co online thi goi ptv chay sleep, 1000 run, D:\Games\PTV\game.exe, D:\Games\PTV\, Max ;WinWait, Priston sleep, 3000 ; Cho 30 giay sendmode play Loop, 200 ; Tim cua so nhap ID { WinActivate, Priston sendplay {click 400, 411} Sleep, 500 PixelGetColor, color, 505, 455, Slow ; Chu D trong chu ID StringMid, R, color,7,2 ;tooltip, %color% if (R = "2F") ; May ban 30 ; Khong co ky tu chung Break } WinActivate, Priston IfWinActive, Priston { sendplay {click 400, 411} Sleep, 400 sendplay {click 400, 411} Sleep, 400 ControlSetText, , %ID%, Priston Sleep, 400 sendplay {click 400, 463} Sleep, 400 sendplay {click 400, 463} Sleep, 400 ControlSetText, , %pass%, Priston Sleep, 400 } Loop, 200 ; Tim cua so chon may chu { WinActivate, Priston IfWinActive, Priston { sendplay {Click 331, 524} : nut dang nhap Sleep, 500 PixelGetColor, color1, 501, 457, Slow ; Chu m trong chu ma'y StringMid, R1, color1,5,2 ;tooltip, %color1% if (R1 = "A5") ; A5 chung Break } } Loop, 200 ; Chon nhan vat { WinActivate, Priston IfWinActive, Priston { sendplay {Click 398, 432} ;Chon sever Anpha Sleep, 500 PixelGetColor, color2, 462, 111, Slow ; Chu h trong chu Chon nhan vat StringMid, R2, color2,6,2 ;tooltip, %color2% if (R2 = "60") ; 60 chung Break } } ;neu khong ket noi duoc voi sever Anpha thi lam lai { WinActivate, Priston Sleep, 500 PixelGetColor, color2, 462, 111, Slow ; Chu h trong chu Chon nhan vat StringMid, R2, color2,6,2 ;tooltip, %color2% if (R2 <> "60") { Sleep,10000 WinKill, Priston Sleep,10000 WinKill, Priston Sleep,10000 WinKill, Priston Goto, Batdau } } WinActivate, Priston IfWinActive, Priston { ; Chon nhan vat o giua sendplay {Click 407, 361} sleep, 200 sendplay {Click 407, 361} Sleep, 200 ; Bam nut xac nhan chon nhan vat sendplay {Click 349, 605} sleep, 200 sendplay {Click 349, 605} Sleep, 200 ; Dong y tiep tuc voi nhan vat nay sendplay {Click 352, 485} sleep, 200 sendplay {Click 352, 485} Sleep, 5000 ; Da log in xong. Tiep tuc dieu khien nhan vat chay toi vi tri can danh } Loop ; thay cot mau thi bat dau { WinActivate, Priston Sleep, 200 PixelGetColor, color, 420, 658, Slow StringMid, R, color,7,2 if (R="FF") Break } WinActivate, Priston sleep, 50 ; --------------------------------------------------------------------------------------------------- ;MF1() ChienTruongCo() ;HangThachNhu() ;Ocdao() ;DatCam() ;SAN() ; --------------------------------------------------------------------------------------------------- sleep, 100 ControlClick, x400 y338,Priston,,WD sleep, 100 ControlClick, x400 y338,Priston,,WD sleep, 100 ControlClick, x400 y338,Priston,,WD Sleep, 100 sendplay {Click 165, 602} ; Chuyen che do chat clan WinSet, AlwaysOnTop, on, Priston ;Dat cua so Game ontop WinMaximize, Priston ; Dat cua so game maximize WinSetTitle, Priston Tale, , Priston Tale - Auto PTV 5.0 - Tu dong relog } ; ---------------------------------------------------------- ChienTruongCo() { sendplay {Click 380, 250} ; old 240 320 sleep, 100 ; {Click 500, 240} ctc sendplay {Click 380, 250} Sleep, 500 sendplay {Click Down 380, 250} sleep, 5000 Click UP } ; ---------------------------------------------------------- HangThachNhu() { sendplay {Click 571, 240} ;sendplay {Click 571, 240} htn sleep, 100 ; {Click 500, 240} ctc sendplay {Click 571, 240} Sleep, 1000 sendplay {Click Down 571, 240} sleep, 10000 ; Hang thach nhu 10000 CTC 5000 Click UP } ; ---------------------------------------------------------- Ocdao() { sendplay {Click 380, 200} sleep, 100 sendplay {Click 380, 200} Sleep, 1000 sendplay {Click Down 380, 200} sleep, 10000 Click UP } MF1() { sendplay {Click 500, 450} sleep, 100 sendplay {Click 500, 450} Sleep, 300 sendplay {Click Down 500, 450} sleep, 500 Click UP sendplay {Click Down 530, 200} sleep, 11000 Click UP } DatCam() { sendplay {Click 480, 205} sleep, 100 sendplay {Click 480, 205} Sleep, 1000 sendplay {Click Down 480, 205} sleep, 14000 Click UP } ; ---------------------------------------------------------- SAN() { sendplay {Click 420, 400} sleep, 200 sendplay {Click 420, 400} Sleep, 1000 sendplay {Click Down 420, 400} sleep, 3000 Click UP sendplay {Click Down 490, 280} sleep, 11000 Click UP }; File: HpStmMana.txt Nhìn là biết nó liên quan đến cái gì rồi nhỉ 🙂 đặc biệt nó chứa thêm hàm send key ko bị Xtrap túm (Nhớ là Xtrap tại thời điểm tôi code cái này còn hiện tại thì không biết nó thế nào)
CheckDie() { PixelGetColor, color, 420, 730, Slow StringMid, R, color,7,2 if (R<>"FF") health:=1 else health :=0 return health } CheckNguyHiem() { PixelGetColor, color, 420, 700, Slow StringMid, R, color,7,2 if (R<>"FF") health:=1 else health :=0 return health } ThoatGameKhanCap() { Process, Exist, game.exe PID := errorLevel Sleep, 30 Process, Close, %PID% } getHealth(HP) { PixelGetColor, color, 420, %HP%, Slow ; Vi tri 1/3 cot mau StringMid, R, color,7,2 if (R<>"FF") health:=1 else health :=0 return health } ; ---------------------------------------------------------------------------------------- CheckHeath(HP) { if (getHealth(HP)=1) { ControlGetText, ChatEdit, Edit1, Priston if (ChatEdit<>"") { SendKeyTomS(0x1B) } SendKeyTomS(0x32) ;Sendkey 2 Sleep, 100 health:=1 WinMaximize, Priston ; Dat cua so game maximize if (getHealth(HP)=1) loop, 20 { SendKeyTomS(0x32) ;Sendkey 2 if (getHealth(HP)=0) Break ; -------------------------------------------Die ko mat % if (CheckNguyHiem()=1) { ThoatGameKhanCap() Sleep, 100 SoundBeep , 600, 200 Sleep, 50 Break } } } else health :=0 return health } ;------------------------------------------------------------------------------------------------------------------ ;------------------------------------------------------------------------------------------------------------------ getMana(MANA) { PixelGetColor, color, 605, %MANA%, Slow StringMid, B, color,3,2 if (B<>"FF") mana:=1 else mana :=0 return mana } ;------------------------------------------------------------------------------------------------------------------ getManaSkill() { PixelGetColor, color, 605, 715, Slow StringMid, B, color,3,2 if (B<>"FF") mana:=1 else mana :=0 return mana } getSTMSkill() { PixelGetColor, color, 395, 715, Slow StringMid, G, color,5,2 if (G<>"FF") stamina :=1 else stamina :=0 return stamina } ;------------------------------------------------------------------------------------------------------------------ CheckMana(MANA) { if (getMana(MANA)=1) { SendKeyTomS(0x33) } } ; -------------------------------------------------------------------------------------------------------- getSTM(STM) { PixelGetColor, color, 395, %STM%, Slow StringMid, G, color,5,2 if (G<>"FF") stamina :=1 else stamina :=0 return stamina } ;------------------------------------------------------------------------------------------------------------------ CheckSTM(STM) { if (getSTM(STM)=1) { SendKeyTomS(0x31) } } ; ------------------------------------------------------------------------------------------- getMau() ; ---------------------------------------------------------------------------------------- { PixelGetColor, color, 686, 716,Slow StringMid, H, color,7,1 ;MsgBox The color at the current cursor position is %H% ; (686 716 14) (686 717 12) (686 715 F1) if (H="1") Mau:=0 ;Het mau else if (H="0") Mau:=0 ;Het mau else Mau :=1 ;Con mau return Mau } ;---------------------------------------------------------------------------------------------------------------- Delay(TimeDelay) { start_time := A_TickCount loop { elapsed_time := A_TickCount - start_time if (elapsed_time >= TimeDelay) break } } ; ----------------------------------------------------------------- SendKeyTomS(VK_KEY) { ;VK_KEY = 0x32 hwnd:=WinExist("Priston") DllCall("SendMessage", "UInt", hwnd, "int", 0x100, "Char", VK_KEY, "int", 0) Sleep, 50 DllCall("SendMessage", "UInt", hwnd, "int", 0x101, "Char", VK_KEY, "int", 0) Sleep, 20 DllCall("SendMessage", "UInt", hwnd, "int", 0x101, "Char", VK_KEY, "int", 0) } ; ----------------------------------------------------------------- SendKeyTomSD(VK_KEY) { ;VK_KEY = 0x32 hwnd:=WinExist("Priston") DllCall("SendMessage", "UInt", hwnd, "int", 0x100, "Char", VK_KEY, "int", 0) } ; ----------------------------------------------------------------- SendKeyTomSU(VK_KEY) { ;VK_KEY = 0x32 hwnd:=WinExist("Priston") DllCall("SendMessage", "UInt", hwnd, "int", 0x101, "Char", VK_KEY, "int", 0) Sleep, 20 DllCall("SendMessage", "UInt", hwnd, "int", 0x101, "Char", VK_KEY, "int", 0) } ; -------------------------------------------------------------------; File: NapMauVaVeLang.txt Chưá các hàm nạp máu và về làng khi hết POT
; ---------------------------------------------------------------------------------------- Velang(OutGame, TatMay) { Click 400, 50 Sleep, 100 Click 400, 50 Sleep, 50 SendKeyTomS(0x56) ; Phim V ;Mo thung do Sleep, 200 sendplay {Click Right 42, 495} sendplay {Click Right 42, 495} sendplay {Click Right 42, 495} send {Left up} Sendplay {Space} ;dong thung do lai Sendplay {Space} Sendplay {Space} ;Lam lai lan 2 Click 400, 50 Sleep, 50 Click 400, 50 ;Mo thung do SendKeyTomS(0x56) ; Phim V Sleep, 200 sendplay {Click Right 42, 495} sendplay {Click Right 42, 495} sendplay {Click Right 42, 495} send {Left up} Sendplay {Space} ;dong thung do lai Sendplay {Space} Sendplay {Space} ; ----------------------- Thoat khoi game ------------------------- If (OutGame="1") { Sleep, 10000 WinKill, Priston Tale Sleep, 10000 WinKill, Priston Tale Sleep, 10000 WinKill, Priston Tale } If (TatMay="1") { Shutdown, 1 } Reload } ; ---------------------------------------------------------------------------------------- Napmau(HP) { CheckHeath(HP) Sleep, 500 CheckHeath(HP) ;mo thung do Nap mau vao o so2 STM so 1 mana so 3 SendKeyTomS(0x20) ; Phim cach Space SendKeyTomS(0x20) ; Phim cach Space Sleep, 50 SendKeyTomS(0x56) ; Phim V CheckHeath(HP) Sleep, 500 mousemove 34, 474 ;Nap mau mousemove 34, 474 ;Nap mau Sleep, 150 SendKeyTomSD(0x10) ; De phim Shift SendKeyTomS(0x32) ; Nhan phim 2 SendKeyTomSU(0x10) ; Nha phim Shift Delay(80) CheckHeath(HP) mousemove 53, 474 ; nap STM mousemove 53, 474 ; nap STM Sleep, 150 SendKeyTomSD(0x10) ; De phim Shift SendKeyTomS(0x31) ; Nhan phim 1 SendKeyTomSU(0x10) ; Nha phim Shift CheckHeath(HP) mousemove 34, 516 ;Nap mana mousemove 34, 516 ;Nap mana Sleep, 150 SendKeyTomSD(0x10) ; De phim Shift SendKeyTomS(0x33) ; Nhan phim 2 SendKeyTomSU(0x10) ; Nha phim Shift Sleep, 80 CheckHeath(HP) mousemove 53, 516 ; nap mana mousemove 53, 516 ; nap mana Sleep, 150 SendKeyTomSD(0x10) ; De phim Shift SendKeyTomS(0x33) ; Nhan phim 2 SendKeyTomSU(0x10) ; Nha phim Shift Sleep, 150 CheckHeath(HP) SendKeyTomS(0x20) ; Phim cach Space SendKeyTomS(0x20) ; Phim cach Space CheckHeath(HP) mousemove 400, 338 } ;------------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------------
CUỐI CÙNG LÀ HƯỚNG DẪN BIÊN DỊCH
Buoc 1: Xoa 2 file AutoPTV3.x.exe dang co san di de bien dich lai Buoc 2: - Mo File ID.txt - Copy 2 dong nhu sau: ; -------------------------------------- if (OutputVar = "khavaq") TrueACC:=1 ;--------------------------------------- - Paste 2 dong nay vao vi tri chen them ID moi nhu vi du phia duoi - Sua ID (khavaq) thanh ID ban muon bo sung ; ----------------------------------------- Day la Function kiem tra ID GetACC() { TrueACC:=0 RegRead, OutputVar, HKEY_LOCAL_MACHINE, SOFTWARE\Triglow Pictures\PristonTale, Account if (OutputVar = "khavaq") TrueACC:=1 ; Cac ID tiep theo ...... ; vi tri chen them ID moi return TrueACC Buoc 3: - Thoat khoi va luu lai File ID.txt da chen them 2 dong ID moi - Chay file CompileAutoPTV.bat de compile thanh 2 file AutoPTV3.x.exe va File Active.exe - Gui di 3 file AutoPTV3.x.exe va File Active.exe va AutoPtv.ini Chu y quan trong: - Khong gui them bat cu file nao khac 3 file AutoPTV3.x.exe va File Active.exe va AutoPtv.ini - Cac file con lai la ma nguon cua chuong trinh va cac file can thiet de bien dich. - Khi bo sung ID chu y copy va paste that can than khong duoc de thua bat cu ky tu nao - Chuc may man!
Tim
25/12/2011 at 9:01 chiều
anh oi RPT co auto duoc ko anh
khavaq
26/12/2011 at 7:38 sáng
Bạn down cái auto RPT bên mục Soft về thử xem, cái đó viết cho RPT hơi lâu rồi không biết còn chạy được không hay GM bên đó Fix lại rồi
Tim
26/12/2011 at 11:02 chiều
cảm ơn a e dùng dc rồi hihii, e chỉ cần bơm máu +mana + stm thôi e dang test mấy chức năng khác hy vọng a sẽ sớm hoàn thiện thanks a
Tim
27/12/2011 at 7:40 chiều
A ơi cho e xin cái auto của pris với buff + bơm… thanks a nhiều
khavaq
28/12/2011 at 7:54 sáng
Chỉ có 1 bản auto đó cho RPT thôi, Mình ko chơi RPT nên chỉ code cho vui thế thôi, Hiện giờ bận rộn nên không có thời gian làm tiếp.
toro (k4tc09)
01/07/2012 at 1:43 chiều
em muốn học để viết đc chương trình này ghê, tâm huyết với ptv lắm nhưng bi giải thể mất rồi, giờ thì tìm pt nước ngoài chơi tập viết code để làm 1 cái auto cho riêng mình sẵn học hỏi luôn, nếu anh giúp đc có thể cho em tài liệu nào cần thiết để viết code ko, thanks anh rất nhiều
khavaq
01/07/2012 at 8:55 chiều
Doc help kem theo autohotkey thoi. No la ngon ngu scrip don gian thoi ma. Cu theo chuong trinh mau sua lai theo y muon la dc.
Chuc thanh cong
toro (k4tc09)
02/09/2012 at 9:07 chiều
anh kha em có thắc mắc nhiều lắm mà ko hỏi anh trực tiếp đc, nếu anh có thể trả lời ở đây đc thì giúp em nhé, em đọc hết những phần trên rồi nhưng ko hiểu cách anh chèn vào khung ra sao, mình có cần dùng chương trình smartgui để tạo ra cái bản auto rồi chèn vào ko anh, và chèn làm sao cho nó có thể click vào để chọn skill như F1 F2… như những bản auto khác ?, còn nữa những ct anh làm ở trên em thấy nó đơn giản ở chổ anh có thể ghi “qv” rồi “mana” …. những cái đó auto nó tự hiểu đc hả anh hay đó là chổ để chèn code tương tự vào đó, anh có thể làm 1 clip để em có thể nghiên cứu và làm theo ko hix em làm mấy tháng nay rùi nhưng ko đc gì, anh bỏ chút thời gian giúp em đc ko em thật sự rất thích và muốn làm 1 cái có gì anh pm yh havilkoro@yahoo.com nha chào anh
phan minh
17/09/2012 at 4:48 chiều
có code auto WAIT FOR LOAD khong anh??
Love
23/09/2012 at 6:36 chiều
Bạn ơi dạy mình được k . mình muốn làm auto audition bạn làm dc k ? cho mình hỏi cách tìm 1 tọa độ nào đó của game ntn ??
anhvu
28/07/2013 at 1:12 sáng
Đang cần thì mò google ra được cái này, nhưng mà máy tính nó báo active.bin có keyloger là sao nhỉ, chẹp