Hướng dẫn tạo Launcher đơn giản (viết bởi ngocvinh2009)
[spoil]
Update bài viết tham khảo của harwardc_2008: http://forum.gamevn.com/showpost.php?p=15866829
+ Topic này đã xin giấy phép hoạt động và được kiểm duyệt trước bởi Okolokoko.
+ Topic dành cho những thành viên không biết gì về ngôn ngữ lập trình và dùng AutoIT làm mẫu
+ Topic xin mượn các hình ảnh của launcher CSBU, launcher CSO-NST để làm mẫu.
Giới thiệu
Đối với những bạn nào có niềm đam mê tạo một launcher cho mod game mình thích mà không biết bất kì ngôn ngữ lập trình nào thì có lẽ đây là topic rất hữu dụng cho bạn. Nó không những giúp bạn hiểu hơn về thế giới IT mà còn giúp cho bạn tạo ra những Launcher mang phong cách của bạn.
Để bắt đầu học tạo launcher, bạn phải cần hiểu được các lệnh của cmd (Command Prompt), còn nếu chưa hiểu thì lát tôi cũng sẽ giải thích. Đối với người mới học, thì có lẽ AutoIT là một ngôn ngữ khá hữu dụng. Nó rất dễ học cũng như sử dụng. Hầu hết tất cả các lệnh đều bằng tiếng anh đơn giản như:
FileMove,
FileDelete,
FileCopy, … và có hướng dẫn rất đầy đủ.
Đầu tiên là bước download, phần mềm khá nhẹ (8 ~ 9 MB):
Download rồi cài đặt trước luôn đi.
Và đây là hướng dẫn sử dụng bằng tiếng việt:
VnnShare Mediafire
File Video.rar: Chứa các clip hướng dẫn:
VnnShare Mediafire
File Example.rar: Các ví dụ, hướng dẫn:
VnnShare Mediafire
Phần mềm tạo GUI Koda AutoIT:
VnnShare Dowload trực tiếp
Mấy file đó nhẹ hiều à, server download là của Việt Nam nên download rất nhanh, cứ download thoải mái. Cả thảy chỉ có khoảng ~5 MB + ~9 MB = ~14 MB hà. Tốc độ download cũng nhanh (không dùng idm nha) ~14MB mất khoảng 1 ~ 2 phút là cùng.
I) Mã nguồn của Command Prompt
[spoil]
Tiếp theo là kiếm mã nguồn cmd (*.bat, *.cmd) của mod game mà mình sắp làm launcher (có thể xin người đã mod game đó vì hiện nay, họ toàn sử dụng file exe, khó mà dịch ngược lấy mã nguồn bởi vậy chỉ còn cách xin xỏ thôi T_T).
Ví dụ, tôi sắp làm một launcher cho game CSO NST và mã nguồn của file
Chon che do choi.bat là như sau: Download về xem:
VnnShare Mediafire
Đọc - hiểu ngôn ngữ.
Hàm IF [NOT] EXIST tập-tin lệnh
(các dấu “(“, “)” tượng trưng cho sự mở, kết thúc hàm IF)
Tác vụ: Kiểm tra một tập tin có tồn tại hay không, nếu có (hay không) thì thực thi lệnh.
Hàm COPY tập-tin(hoặc thư mục)
Tác vụ: Copy một tập tin hoặc thư mục ra nơi khác (tương ứng với hàm filecopy nếu đó là file, dircopy nếu đó là thư mục)
Hàm DEL tập-tin
Tác vụ: Xóa bỏ một tập tin miễn là nó không hoạt động
Hàm RENAME đường-dẫn-tập-tin tên-mới
Tác vụ: Đổi tên tập tin thành một tên mới
Hàm ECHO [message]
Tác vụ: Hiện một dòng chữ trên bảng cmd.
Chú ý: Hàm nào không biết thì vào Run gõ cmd, enter và bấm tên hàm đó vào, bấm thêm khoảng cách và
/? Rồi enter xem hướng dẫn.
(Ví dụ: del /?)
Phân tích code:
Ví dụ có code này
if exist cstrike\addons\amxmodx\configs\csdm-single.cfg (
if exist cstrike\addons\amxmodx\configs\csdm-team.cfg (
if exist cstrike\addons\amxmodx\configs\csdm.cfg (
del cstrike\addons\amxmodx\configs\csdm.cfg
)
rename cstrike\addons\amxmodx\configs\csdm-single.cfg csdm.cfg
)
)
Ý nghĩa có nó như sau:
Nếu[1] tập tin [thư mục hoạt động]\cstrike\addons\amxmodx\configs\csdm-single.cfg tồn tại thì
Nếu[2] tập tin [thư mục hoạt động]\cstrike\addons\amxmodx\configs\csdm-team.cfg tồn tại thì
Nếu[3] tập tin [thư mục hoạt động]\cstrike\addons\amxmodx\configs\csdm.cfg tồn tại thì
Xóa tập tin [thư mục hoạt động]\cstrike\addons\amxmodx\configs\csdm.cfg
Kết thúc hàm nếu[3]
Đổi tên[thư mục hoạt động]\cstrike\addons\amxmodx\configs\csdm-single.cfg thành csdm.cfg
Kết thúc hàm nếu[2]
Kết thúc hàm nếu[1]
Nếu dịch nghĩa của code cmd xong thì chuẩn bị chuyển sang code AutoIT
[/spoil]
II) Mã nguồn của AutoIT
[spoil]
Sau khi
download, cài đặt
AutoIT, bấm chuột phải vào một vùng trống bạn sẽ thấy một Shell mới là “
AutoIt v3 Script”. Bấm chọn để tạo nó.
Trên vùng trống đó sẽ xuất hiện một file mới, chuột phải vào file đó chọn Edit Script.
Một cửa sổ soạn thảo mới hiện ra, đó là cửa sổ soạn thảo ngôn ngữ lập trình. Để đánh
tiếng việt, bấm chọn
File - > Encoding - > UCS-2 Big Endian. Sử dụng kiểu gõ
VNI và bảng mã
Unicode để đánh
tiếng việt.
Xem file 01.au3 trong Example.rar để xem hướng dẫn chuyển code của cmd thành AutoIT
Từ code của cmd trên ta có thể chuyển thành code
AutoIT như sau:
If FileExists("cstrike\addons\amxmodx\configs\csdm-single.cfg") Then
If FileExists("cstrike\addons\amxmodx\configs\csdm-team.cfg") Then
If FileExists("cstrike\addons\amxmodx\configs\csdm.cfg") Then
FileDelete("cstrike\addons\amxmodx\configs\csdm.cfg")
EndIf
FileMove("cstrike\addons\amxmodx\configs\csdm-single.cfg","cstrike\addons\amxmodx\configs\csdm.cfg",1)
EndIf
EndIf
Chú ý: Chủ yếu do các hàm điều dễ học nên các bạn tự tìm tòi, khám phá thêm tại forum:
http://autoit.72ls.net
Để xem hướng dẫn, bạn có thể xem tại file 01.au3 của Example.rar
[/spoil]
III) Tạo GUI đơn giản cho Launcher bằng AutoIT
[spoil]
Sử dụng Koda AutoIT để tạo GUI cho Launcher. Giao diện của Koda AutoIT rất đơn giản, dễ hiểu, chả có rờm rà nên bạn sẽ dễ dàng làm quen nó ngay thôi.
Chú ý: Khi tạo GUI để GUI có thể hiện giữa màn hình bạn nên thiết lập phần
Position là
poDesktopCenter.
Bạn có thể thiết lập lại cho các Item bằng cách nhấp vào Item đó và thiết lập trong bảng
Object Inspector
Ví dụ đây là một
Button,
Caption là dòng chữ sẽ hiện trên
Button,
Color là màu của nó,
Cursor là hình của trỏ chuột khi chạm vào nó,
Font quá dễ,
name là tên: một tên của một item chỉ tồn tại trong một gui, không có gui nào có 2 tên trùng nhau. Bạn nên đặt tên cho các Item để dễ sử lý. Tên của các Item sau khi đặt sẽ có dạng code: $Tên (không được có khoảng cách, phải có ít nhất là một chữ trong đó)., … (Còn rất nhiều các Setting khác ở các thẻ Styles và ExStyles vui lòng tự tìm hiểu)
Bắt đầu tạo một GUI mới để ráp code. Ví dụ tôi tạo được một GUI đơn giản như sau:
Chú ý: Trong quá trình tạo GUI không nên ghi tiếng việt, sau khi đã tạo xong, copy code, paste vào file au3 rồi mới sửa nó thành Tiếng Việt
Xem hướng dẫn bằng Video tại file taogui.avi của Video.rar
[/spoil]
IV) Ráp code
[spoil]
Nếu đã tạo gui xong, bạn hãy lấy code gui đó, paste vào một file au3 (AutoIT). Và tiến hành ráp code.
Xem hướng dẫn bằng Video tại file rapcode.avi và thunghiem.avi của Video.rar
Tiến trình ráp này, chủ yếu đổi từ code cmd ra code AutoIT và thêm một số hàm AutoIT để làm nó hiện đại hơn cái cũ.
Ví dụ: Ta có code của cmd là:
del cstrike\test.txt
Chuyển thành code của AutoIT là:
FileDelete(“cstrike\test.txt”)
Hoặc có thể dụng lệnh
_RunDos để chạy (để chạy lệnh
_RunDos phải có hàng
#include <Process.au3> ở đầu line của file và chắc rằng cmd phải được mở, thường thì ngoài tiệm net cmd bị khóa). Lệnh
_Rundos dùng để chạy các hàm dos, ví dụ:
_RunDos(“del cstrike\test.txt”)
Và đặc biệt các code này hoặc động hoàn toàn ẩn và rất nhanh (chưa đầy một giây nếu không dùng hàm copy một thư mục quá lớn), rất hiệu quả bởi vậy khi search từ khóa AutoIT ta sẽ thấy dân IT nói: AutoIT là một công cụ tạo virus – thực sự không phải vậy.
Sau khi ráp code xong, bấm F5 để chạy thử. ^^
Để xem ví dụ, bạn có thể xem tại file 02.au3 của file Example.rar
[/spoil]
V) Tạo skin cho GUI và Button bằng một Picture
[spoil]
Đối với những bạn không thích mẫu gui đơn giản thì các bạn có thể tự tạo một skin cho GUI và button của mình. Đây là một ví dụ điển hình.
Cách làm rất dễ, đầu tiên chuẩn bị skin của gui và button trước đã, rồi bạn tạo một GUI và add picture skin vào GUI đó. Trong
koda autoit, mục tùy chỉnh styles cho gui, bạn tắt hết các mục, chỉ cần để lại
$WS_POPUP và
$WS_OVERLAPPED để giấu các thanh tiêu đề. Nếu picture đó là skin chung cho GUI thì bạn bấm nên Add Picture đó trước và phần
Enable của khung thiết lập cho Item bạn nên để
False.
Còn các Button hay các Item khác muốn đè bên trên Skin đó nên Add sau.
Xem hướng dẫn bằng Video tại file taoguihinh.avi của Video.rar
Đây là một sản phẩm đã được ghép code một phần. (dành cho CSBU) (Để xem ví dụ, bạn có thể xem tại thư mục 03 file 03.au3 của Example.rar)
[/spoil]
VI) Tạo button động
[spoil]
Nếu bạn làm một gui có skin bằng picture thì bạn nên sử dụng button động cho phong phú. Khi trỏ chuột di chuyển vào button, tự động nó sẽ chuyển sang hình khác (có thể sáng, tối tùy ý) và khi nhấn cũng vậy.
Để làm được điều đó, bạn tải file này về (
VnnShare Mediafire).Copy file
Static_ButtonHover.au3 trong đó vào thư mục Include của thư mục chứa phần mềm AutoIT (thường là
$Dirver:\Program Files\AutoIt3\Include)
Thế là bạn có thêm một số hàm mới, mở file
Static_Example.au3 để xem ví dụ. Nếu bạn có sử dụng các hàm mới đó, bạn phải thêm dòng
#include <Static_ButtonHover.au3> vào đầu mã code.
Các hàm mới sau khi Add include.
CreateButtonHover (): tạo button động
ButtonHoverDelete(): Delete button động
(Xem thư mục 04 file 04.au3 để có thể biết rõ hơn về các hàm trên)
Và đây, khi Add các lệnh mới vào, sử dụng nó, button tôi sẽ như sau:
Bình thường Button sẽ là
Khi có trỏ chuột chỉ vào Button:
Khi nhấn vào Button:
Sinh động quá có phải không? ^^
Tạo sự kiện khi bấm vào nút Mode game sẽ chuyển sang GUI này.
(Xem ví dụ tại file 04.au3 trong thư mục 04 của file Example.rar)
Đó là một ví dụ launcher của CSBU.
(buộc bạn phải tự đọc và hiểu, để xem ví dụ, bạn có thể xem tại thư mục 04, file 04.au3 của Example.rar)
[/spoil]
VII) Hiệu ứng cho GUI [Update 2/7/2010]
Hiệu ứng cho GUI: Bạn muốn tạo hiệu ứng mờ dần khi thoát, GUI chạy từ trái sang phải khi hiện, GUI hiện dần khi mở,… sẽ khồng còn khó nếu bạn đọc kĩ chuyên mục này.
Đầu tiên, download file này (
VnnShare Mediafire) và copy vào thư mục
Include của thư mục chứa phần mềm AutoIT (thường là
$Dirver:\Program Files\AutoIt3\Include).
Để có thể sử dụng hàm này, tại các line đầu tiên bạn thêm dòng
#Include <XskinAnimate.au3> .
Hàm mới:
XSkinAnimate(
$tên của GUI,
$Xstate,
$Xstyle)
$tên của GUI là tên mà bạn đặt cho GUI khi sử dụng koda autoit.
$Xstate: 1 là GUI thoát, 2 là GUI hiện.
$Xstyle là hiệu ứng. các hiệu ứng:
1=Fade, 3=Explode, 5=L-Slide, 7=R-Slide, 9=T-Slide, 11=B-Slide, 13=TL-Diag-Slide, 15=TR-Diag-Slide, 17=BL-Diag-Slide, 19=BR-Diag-Slide (tự dịch nha)
Ví dụ: Tôi muốn tạo hiệu ứng mờ dẫn khi bấm vào nút exit thì chọn
$Xstate là 1 và
$Xstyle là 1 và tên của GUI là
$launcher. Tôi tạo như sau tại event của
Button Exit.
Vậy là khi bấm Exit, GUI của bạn sẽ mờ dần rồi thoát.
Sound khi bấm Button: Sound trong một GUI cũng rất quang trọng, nó làm người ta cảm thấy sinh động hơn trong GUI. Để bấm vào một button thì phát ra nhạc thì ta sử dụng hàm sau:
SoundPlay(a,[b]) : a là tên âm thanh, b là thồi gian chơi (nếu cần)
Ví dụ: tôi có button exit, khi bấm vào nó thì âm thanh
{thư mục}\Sound\click.wav sẽ phát. Tạo một code như sau:
Sinh động hơn nữa rồi. ^^
Bạn có thể tham khảo mã nguồn của launcher ở các trang sau hoặc tham khảo các hiệu ứng qua code này.
[spoil]
#include <GUIConstants.au3>
#include <XSkinAnimate.au3>
Dim $repeat = 1
$hwnd = GUICreate("XSkin Animate", 300, 300)
$ret = XSkinAnimate($hwnd, 1, $repeat)
Sleep(2000)
While $repeat <= 28
$repeat += 1
XSkinAnimate($hwnd, "", $repeat)
Sleep(1000)
$repeat += 1
XSkinAnimate($hwnd, "", $repeat)
Sleep(1000)
WEnd
[/spoil]
VIII) Ra lò
[spoil]
Sau khi đã hoàn tất, bạn chuẩn bị cho ra lò một launcher. Bấm
Start -> Programs -> AutoIt v3 -> Compile Script to .exe : Công cụ này giúp bạn chuyển đổi file au3 -> exe và file exe đó có thể chạy ở bất cứ nơi đâu mà không cần cài AutoIT.
Thế là xong, một launcher mới ra lò rồi.
[/spoil]
Các hàm trong autoIT rất phong phú, đa dạng, bạn có thể làm một launcher đặc sắc nếu cố gắng học hỏi nhiều.
Chú ý: Các hàm autoIT cũng như ngôn ngữ thường vậy, cứ đọc từ trên xuống dưới, trái qua phải là hiểu nó hoạt động ra sao ^^ (trừ các hàm đặc biệt)
Đây là một số phần mềm hỗ trợ khác:
+ ExtractExeIcon: Lấy Icon từ các file exe, dll.
VnnShare Mediafire
+ Phần mềm tạo Icon:
VnnShare Website sản phẩm
Chúc bạn có thể tạo được những launcher mang cá tính và sở thích riêng của mình. Good Luck.
[/spoil]