Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Kết quả 1 đến 1 của 1
  1. #1
    Thành Viên
    Ngày tham gia
    Nov 2011
    Bài viết
    263
    Thanks
    70
    Thanked 83 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"})
    Những hàm lựa chọn sẽ bắt đầu bằng function tênhàmlựachọn()(cái này là do người dev đặt, bạn có thể chỉnh lại cho dễ nhớ và thuận lợi với mình) và kết thúc bằng end. Cái này là bắt buộc, chúng ta ko có quyền thay đổi !. Ngoại ra khi dùng hàm if hoặc hàm lặp for thì khi kết thúc vẫn phải có end, ko thì gameserver lỗi ngay

    - 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.net
    Lần sửa cuối bởi ps1990, ngày 13-01-13 lúc 02:30 AM.
    SC full Võ lâm http://lmgtfy.com/?q=Soucre+full+jx

  2. The Following 19 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), yukito11 (08-11-14)

 

 

Các Chủ đề tương tự

  1. Chia sẻ kinh nghiệm viết web
    Bởi TitanRain trong diễn đàn Guides - Kho Lưu trữ
    Trả lời: 11
    Bài viết cuối: 24-10-14, 09:38 AM
  2. 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ầu
    Trả lời: 1
    Bài viết cuối: 13-01-13, 06:14 PM
  3. [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ầu
    Trả lời: 3
    Bài viết cuối: 19-12-12, 09:07 AM
  4. 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 Box
    Trả lời: 0
    Bài viết cuối: 13-03-11, 07:38 PM
  5. 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ầu
    Trả lời: 0
    Bài viết cuối: 21-11-10, 01:26 AM

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 05:37 PM.
vBulletin®, Copyright ©2000-2011, Jelsoft Enterprises Ltd.
CLBGamesVN không chịu trách nhiệm về Luật Bản Quyền của các tài liệu, bài viết v.v...được đăng tải trên diễn đàn này.
Diễn đàn phát triển dưới sự đóng góp của tất cả thành viên. BQT chỉ là những người thành lập ra sân chơi, quản lý và duy trì về mặt kỹ thuật, nội dung khi hợp lệ.