Kết quả 1 đến 1 của 1
-
13-01-13, 02:27 AM #1
- Ngày tham gia
- Nov 2011
- Bài viết
- 263
- Thanks
- 70
- Thanked 84 Times in 34 Posts
[CHIA SẺ KINH NGHIỆM] Học Script Cơ Bản Trong JX Server
Chào các bạn, nay mình viết bài này để những bạn nào chưa rành về script cơ bản có thể học để có thể tự viết cho mình, ko cần chờ người khác share nữa.Vì thấy mấy SV BFF và Auto ingame các bạn hỏi nhiều Về Script nên mình sưu Tầm bài Viết Của JxVietNam Về Để CÁc Bạn có thể tự tích lũy thêm cho mềnh.
Phần I : Phân loại các hàm thường dùng trong script
Hàm thường dùng thì cũng có nhiều loại, mình xin nói lại 1 số loại hay dùng
- Hàm đối thoại, thông báo :
+ Say : Hàm đối thoại người chơi có lựa chọn
+ Talk : Hàm đối thoại người chơi có thể có hoặc không lựa chọn
+ Msg2Player : Thông báo đến người chơi
+ Msg2SubWorld : Thông báo đến toàn server
- Hàm liên quan đến item : Có 4 hàm rất hay sử dụng
+ AddItem(....) : Thêm 1 item bất kỳ vào nhân vật (trừ questkey)
+ AddEventItem(id questkey) : Thêm 1 questkey vào nhân vật
+ DelItem(id questkey) : Del questkey
+ GetItemCount() : Kiểm tra số item questkey có trong hành trang, sử dụng kết hợp với hàm if
- Hàm liên quan đến skill :
+ AddMagic(id skill, level skill) : Thêm 1 skill bất kỳ vào nhân vật
+ DelMagic(id skill) : Xóa 1 skill đang có trong nhân vật
+ HaveMagic(idskill) : Kiểm tra cấp độ của skill, sử dụng kết hợp với hàm if
- Hàm liên quan đến tiền :
+ Earn(số tiền) : Thêm tiền
+ Pay(số tiền) : Lấy tiền
+ GetCash() : Kiểm tra số tiền có trong nhân vật, sử dụng kết hợp với hàm if
- Hàm liên quan đến NPC
+ AddNpc : Thêm 1 npc vào game
+ SetNpcScript : Set script cho npc
- Hàm liên quan đến task :
+ SetTask(id task, giá trị)
+ GetTask(idtask) : Kiểm tra task có giá trị bao nhiêu, sử dụng kết hợp với hàm if
+ SetTaskTemp(id task temp, giá trị temp)
+ GetTaskTemp(idtask temp) : Kiểm tra task temp có giá trị bao nhiêu, sử dụng kết hợp với hàm if
SetTask và SetTaskTemp về cơ bản là giống nhau, chỉ khác 1 điểu là SetTask khi nhân vật thoát ra vẫn sẽ lưu giá trị, còn SetTaskTemp thì giá trị trở về 0
Nắm rõ cách sử dụng các hàm mình kể trên thì bạn có thể viết được 1 số script cơ bản rồi, ví dụ như event, nhiệm vụ, hỗ trợ nhân vật, học skill, .....
Phần II : Hướng dẫn học script cho người mới
Mình sẽ chia sẻ cách học script của mình, để các bạn mới có thể tự học được. Hi vọng là các bạn sẽ nhanh chóng làm quen được cách viết script.
Kinh nghiệm học script của mình là : Download các server được share, cài đặt và tìm hiểu các script trong server đó
Mình xin lấy ví dụ về học hàm Say, chẳng hạn khi bạn down server về ra gặp Xa Phu sẽ có các lựa chọn sau :
[Only registered and activated users can see links. ]
Khi nhìn vào bạn sẽ đặt lên những câu hỏi trong đầu rằng : Tại sao có thể làm hiện ra cái bảng đối thoại như trên, và khi kích vào các dòng đối thoại thì nó làm theo ý mình. Muốn biết rất đơn giản thôi : Tìm script của npc này trong server là sẽ rõ, do npc này là Xa Phu nên các bạn vào script tìm những file có tên tương tự như xaphu.lua hoặc startup_server.lua ... Các bạn có thể dùng chức năng Search của Win
Tiếp tục ...................
Sau khi tìm được file lua rồi, thì các bạn sẽ kiếm hàm Say, bằng cách dùng chức năng Search, Ctrl + F gõ vào Say, bạn chọn hàm Say nào mà có những lưa chọn giống như trong hình thì chọn Các bạn chú ý chữ đỏ, <color=xxx> là hàm màu chữ, ví dụ như <color=red> màu đỏ <color=blue> màu xanh ...
Code:SayEx({"<color=cyan>Xa Phu:<color> Xin chào ngươi muốn đi đâu nào ?", "Trở lại điểm cũ/backupdiadiem", "Khu vực thành thị/thanhthi", "Khu vực luyện công/luyencong", "Thay đổi trạng thái/doimau", "Đảo tẩy tủy/daott", "Thoát/Exit"})
Để hiện thị tiếng việt thì các bạn nên dùng JxStuio để mở fie lua nha, nếu mở bằng notepad hoặc notepad ++ thì sẽ hiện thị chữ rất khó đọc, gây khó khăn cho những bạn mới làm quen
JxStudio bạn có thể download ở đây [Only registered and activated users can see links. ]
Ở đây mình xin giới thiệu hàm SayEx, lát sẽ quay lại Say sau. Sau khi đối chiếu với hình ảnh ở trên mình chựp thì rõ ràng là hàm SayEx(là hàm mở rộng của Say, được thêm vào tự thư viện lua do người dev viết ra, thường thì nằm trong serverlib.lua hoặc sourcejx49.lua, muốn sử dụng được phải Include tới file đó có cấu trúc như sau
Code:SayEx({"Câu đối thoại","Lựa chọn 1/hàm lựa chọn 1","Lựa chọn 2/hàm lựa chọn 2","Lựa chọn n/hàm lưa chọn n"})
- Khu vực thành thị/thanhthi, ta search từ khoá thanhthi() là sẽ ra được câu lệnh khi ta chọn vào Khu vực thành thị
Code:function thanhthi() w,x,y = GetWorldPos() if w == 53 then SayEx({"<color=cyan>Xa Phu<color>: Ngươi muốn đi đâu ?","Tương Dương/tuongduong","Phượng Tường/phuongtuong","Thành Đô/thanhdo","Thoát/no"}) elseif w == 37 then -- tuong duong SayEx({"<color=cyan>Xa Phu<color>: Ngươi muốn đi đâu ?","Phượng Tường/phuongtuong","Thành Đô/thanhdo","Ba Lăng Huyện/balang","Thoát/no"}) elseif w == 36 then -- phuong tuong SayEx({"<color=cyan>Xa Phu<color>: Ngươi muốn đi đâu ?","Tương Dương/tuongduong","Thành Đô/thanhdo","Ba Lăng Huyện/balang","Thoát/no"}) elseif w == 40 then -- thanh do SayEx({"<color=cyan>Xa Phu<color>: Ngươi muốn đi đâu ?","Tương Dương/tuongduong","Phượng Tường/phuongtuong","Ba Lăng Huyện/balang","Thoát/no"}) else SayEx({"<color=cyan>Xa Phu<color>: Ngươi muốn đi đâu ?","Tương Dương/tuongduong","Phượng Tường/phuongtuong","Thành Đô/thanhdo","Ba Lăng Huyện/balang","Thoát/no"}) end end
Ta phân tích đoạn sau w,x,y = GetWorldPos(); GetWorldPos là hàm kiểm tra vị trí nhân vật đang đứng trong game, giá trị w sẽ là id map, giá trị x là tọa độ x, giá trị y là tọa độ y. Chú ý : Tọa độ X; tọa độ Y ở đây là vị trí bạn đang thấy trên minimap, nhưng đã được x nhân 8, y nhân 16, nên nó sẽ nằm trong khoảng xxxx (4 số) chứ ko phải là 3 số như trên minimap hiện thị. Nhưng ở đây ta quan tâm đến w (id maps đang đứng, có thể xem trong maplist.ini)
Hàm if, nếu bạn nào học pascal năm 11 hoặc tiếng anh câu điều kiện thì cũng sẽ rõ đấy là hàm điểu kiện, thường đc dùng chung với if GetTask(id task), GetItemCount, HaveMagic, GetCash
if w == 53 then, ở đây ta sẽ thấy được cấu trúc của hàm if là if điềukiện then
- Điều kiện ỏ đây là biểu thức toán học > < >=(lớn hơn hoặc bằng) <= == ~=(khác)
by : Jxvietnam
Nguồn: laptrinhgame.netLần sửa cuối bởi ps1990, ngày 13-01-13 lúc 02:30 AM.
Khách viếng thăm hãy cùng ps1990 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
The Following 20 Users Say Thank You to ps1990 For This Useful Post:
dmt998 (19-03-13), Edward_Newgate (13-01-13), gadibo5s (13-01-13), gakfc1993 (12-01-15), hoaphat13 (27-06-13), honghoan (29-10-15), khanhdinh91 (03-05-13), khanhhello9091 (09-06-16), kuroo123 (05-05-16), MinYeuVy (13-01-13), nguyennhan718 (15-01-13), nh0xthien (24-05-13), quocthien87 (07-10-14), sadluvz (23-02-13), thaihoa91 (13-01-13), thanh78979 (26-08-13), thanhvan243 (22-02-13), thesky1992 (23-03-14), vuakiemten1 (02-09-22), yukito11 (08-11-14)
Các Chủ đề tương tự
-
Chia sẻ kinh nghiệm viết web
Bởi TitanRain trong diễn đàn Guides - Kho Lưu trữTrả lời: 11Bài viết cuối: 24-10-14, 09:38 AM -
Pro vào chia sẽ cho em chút kinh nghiệm nhé
Bởi quoclk123123 trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 1Bài viết cuối: 13-01-13, 06:14 PM -
[JX] Cần giúp đỡ về script nhân kinh nghiệm trong jx
Bởi tunglt trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 3Bài viết cuối: 19-12-12, 09:07 AM -
cần người chia sẻ kinh nghiệm trong Kiếm Khách Anh Hùng
Bởi overday trong diễn đàn Các Server Không Nằm Trong BoxTrả lời: 0Bài viết cuối: 13-03-11, 07:38 PM -
hỏi về script nhân 2, 3,4 kinh nghiệm
Bởi Kenizzle trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 0Bài viết cuối: 21-11-10, 01:26 AM