[JX] Hướng dẫn để viết 1 kịch bản game đơn giản và cách sử dụng hàm
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Trang 1 của 3 1 2 3 CuốiCuối
Kết quả 1 đến 10 của 23
  1. #1
    Moderator DNTmaster's Avatar
    Ngày tham gia
    Jun 2006
    Đang ở
    GameZone
    Bài viết
    932
    Thanks
    6
    Thanked 576 Times in 183 Posts

    Icon1 Hướng dẫn để viết 1 kịch bản game đơn giản và cách sử dụng hàm

    Hiện tại box dạo này vắng vẻ. Tài liệu thì có nhiều nhưng nằm rải rác khắp nơi trong clb.
    Nên DNT lập topic này nhằm hướng dẫn cho các Newbie tập trở thành 1 Dev Jx.
    Hi vọng sẽ giúp ích được nhiều người.


    Chú ý: Không được Spam vào Topic này.

    Các Mod đừng khóa Topic này mọi người có thể vào tham khảo và post thêm phụ với DNT nhưng tuyệt đối đừng SPAM để topic được trơn tru và sạch đẹp

    Bài 1
    Hàm Say

    Say là 1 hàm thực thi dùng để nói chuyện giữa 1 nhân vật và NPC.
    Cấu trúc:
    Code:
    Say(<Câu thoại>,<Số lượng lựa chọn>,<lựa chọn 1>,<lựa chọn 2>,..<lựa chọn n>)
    Say(<Số ID trong StringResource.txt>,<Số lượng lựa chọn>,<lựa chọn 1>,<lựa chọn 2>,..<lựa chọn n>)
    Say(<Câu thoại>,<Số lượng lựa chọn>,<Table(Mảng 1 chiều)>)
    Ví dụ cơ bản

    Code:
    Say("Xa phu: ban co muon roi khoi noi nay",2,"Toi dong y/yes","Thoi toi muon o lai/no");
    Khi bạn chọn lựa chọn: Toi dong y thì nó sẽ thực thi hàm yes() trong file
    Tương tự với lựa chọn còn lại.
    Code:
    luachon = {"Toi dong y/yes","Thoi toi muon o lai/no"};
    Say("Xa phu: ban co muon roi khoi noi nay",2,luachon)
    Bài 2
    Hàm Talk

    Talk cũng tương tự như hàm Say nhưng không có lựa chọn mà mặc định phải thực thi một lệnh nào đó nếu có.

    Cấu trúc

    Code:
    Talk(<số lượng câu thoại>,<[Hàm thực thi]>,<câu thoại 1>,<câu thoại 2>,..,<câu thoại n>)
    Ví dụ cơ bản

    Code:
    Talk(1,"","Xa phu: Nguoi khong co 500 luong de di duyen sang khu vuc khac");
    Talk(2,"","Xa Phu: nguoi cap 10 nen tu luyen tai lang","Sau khi hon cap 10 hay quay lai tim ta");

    Code:
    Talk(1,"dichuyenblh","Xa Phu: Chuan bi ta di den ba lang huyen");
    Ở đây khi đối thoại xong thì sẻ thực thi hàm dichchuyenblh
    Bài 3
    Msg2Player và Msg2SubWorld

    Đây là 2 hàm hiện lên dòng thông báo của hệ thống (Tức dòng chữ màu đỏ góc trái phía dưới)

    Cấu trúc
    Code:
    Msg2Player(<Câu thoại>)
    Msg2SubWorld(<Câu thoại>)
    Ví dụ cơ bản
    Code:
    Msg2Player("Ban chua khong co 500 luong")
    Msg2SubWorld("10 phut nua se bat dau mo cua Sieu Thi Hoang Kim")
    Bài 4
    SetTask() và GetTask()

    Hàm này nói ra rất trừu tượng nhưng nó dùng để viết ra các nhiệm vụ. Dùng nó thay thế cho các loại điểm như Phúc Duyên,Luyện Skills...
    Tóm lại nói ngắn gọn nó là 1 hàm dùng lưu lại các bước đã thao tác.

    Cấu trúc
    Code:
    SetTask(<ID Task>,<Giá trị>)
    GetTask(<ID Task>)
    
    
    Code:
    ID Task là giá trị từ 1-255
    Giá trị là do mình mặc định
    Để hiểu thêm cùng xem ví dụ

    Code:
    SetTask(1,3)
    Tức ta đặt giá trị cho ID Task 1 là 3
    Vậy khi ta thực thi hàm GetTask(1) nó sẽ trả về là 3
    
    
    
    Code:
    Chú ý: Các ID Task mà ta chưa sữ dụng thì tất cả giá trị khi thực thi hàm GetTask() sẽ là 0

    Tương tự như vậy với 2 hàm SetTaskTemp() và GetTaskTemp()
    Nhưng TaskTemp là 1 loại Task sau khi nhân vật thoát khỏi game thì tất cả các TaskTemp để trở về giá trị 0 toàn bộ


    Còn tiếp
    [Only registered and activated users can see links. ]

  2. The Following 33 Users Say Thank You to DNTmaster For This Useful Post:

    094103 (03-03-19), aoxanhst (08-04-11), dragonfly816 (16-02-12), duynguyenjx (05-11-11), harrythai (15-04-11), kesangame (17-04-11), kidcrazy187 (14-04-11), KingStone (06-04-11), kunno001 (06-04-11), kutunvg2010 (16-11-11), lichnt (09-02-12), Linh_JX (02-06-12), mathien02 (07-04-11), minhclub102 (15-02-17), Mr.Lady (30-01-12), mrvu058 (29-04-11), muserverconfig (02-05-20), nh0xthien (05-06-13), oceankingdom (06-04-11), ph4mduc4n (05-04-13), quangken (27-04-11), quocthien87 (13-10-14), rainyway8x (05-04-11), satthulauhyh (19-12-11), satthupro95 (22-06-12), TaeYen (06-04-11), thaihoa91 (06-04-11), tieudieuphong (03-05-13), vinhngocclup (17-07-11), vipprolc (17-04-11), woodes123 (12-06-11), [B.M.W]Sports (07-04-11), [S]ocola[S]an (06-04-11)

  3. #2
    Moderator DNTmaster's Avatar
    Ngày tham gia
    Jun 2006
    Đang ở
    GameZone
    Bài viết
    932
    Thanks
    6
    Thanked 576 Times in 183 Posts

    Ðề: Hướng dẫn để viết 1 kịch bản game đơn giản và cách sữ dụng hà

    Include
    Tác dụng:
    Code:
    Kết nối tới 1 file Lua khác để lấy dữ liệu như biến,hàm,v.v....
    Cấu trúc:
    Code:
    Include("<đường dẫn>");
    Ví dụ:
    Code:
    Include("\\script\\gm.lua");
    Kết nối tới file GM.lua để lấy dữ liệu hoặc thông tin
    Các hàm thông báo chạy chữ
    Bao gồm 4 hàm cơ bản thường sữ dụng
    Tác dụng
    Code:
    Hiển thị dòng thông báo chạy chữ trên màn hình
    Cấu trúc
    Code:
    AddGlobalNews("<Thông điệp>");
    AddGlobalCountNews("<Thông điệp>",<Số lần xuất hiện>);
    AddLocalNews("<Thông điệp>");
    AddLocalCountNews("<Thông điệp>",<Số lần xuất hiện>);
    Ví dụ
    Code:
    AddGlobalNews("Chao mung den voi Vo Lam Offline"); Xuất hiện 1 lần rồi tắt
    AddGlobalCountNews("Chao mung den voi Vo Lam Offline",3); Xuất hiện 3 lần rồi tắt

    AddRepute và GetRepute


    Tác dụng:
    Code:
    Cộng điểm danh vọng và lấy điểm danh vọng
    Cấu trúc
    Code:
    AddRepute(<Điểm>);
    Cộng thêm điểm danh vọng (Đồi với số dương);
    Trừ đi điểm danh vọng (Đồi với số âm);
    GetRepute();
    Lấy điểm danh vọng hiện tai

    Ví dụ

    Code:
    AddRepute(50); Cộng 50 danh vọng
    AddRepute(-50); Trừ 50 danh vọng
    GetRepute(); Trả về số điểm danh vọng
    Để thấy được điểm danh vọng thì
    Msg2Player("Diem danh vong hien la: "..GetRepute());
    AddExp, AddOwnExp và GetExp
    Tác dụng
    Code:
    Cộng điểm kinh nghiệm cho 1 nhóm Party
    Cộng điểm kinh nghiệm cho 1 nhân vật
    Lấy điểm kinh nghiệm hiện có
    Cấu trúc
    Code:
    AddExp(<Số điểm>,<Level>,<Party>);
    AddOwnExp(<Số điểm>);
    GetExp();
    Ví dụ
    Code:
    AddExp(5000,200,1); Các nhân vật trong nhóm(Bao gồm chính bạn) sẽ nhận một phần kinh nghiệm trong 5000 điểm chia sẽ ra
    AddOwnExp(5000); Nhân vật được nhận 5000 điểm kinh nghiệm
    GetExp(); Kiểm tra số điểm kinh nghiệm
    Để thấy được số điểm kinh nghiệm trả về từ hàm GetExp() thì
    Msg2Player("Diem kinh nghiem hien la: "..GetExp());
    Tương tự đối với hàm AddLeadExp và GetLeadLevel
    2 Hàm này có tác dụng cộng Kinh nghiệm cho Tài Lãnh Đạo của nhân vật
    AddLeadExp(<Số điểm>); Cộng kinh nghiệm tài lãnh đạo
    GetLeadLevel();Kiểm tra cấp độ của tài lãnh đạo
    [Only registered and activated users can see links. ]

  4. The Following 10 Users Say Thank You to DNTmaster For This Useful Post:

    094103 (03-03-19), duynguyenjx (05-11-11), kidcrazy187 (14-04-11), ph4mduc4n (05-04-13), quangken (08-05-12), quocthien87 (13-10-14), satthupro95 (22-06-12), vipprolc (17-04-11), woodes123 (12-06-11), [B.M.W]Sports (09-04-11)

  5. #3
    Thành Viên Tâm Huyết KingMax's Avatar
    Ngày tham gia
    Dec 2010
    Bài viết
    642
    Thanks
    143
    Thanked 321 Times in 125 Posts

    Ðề: Hướng dẫn để viết 1 kịch bản game đơn giản và cách sữ dụng hà

    góp zui thêm vài hàm nữa :
    Hàm PlayerIndex
    Sử dụng check bản thân của 1 nhân vật nào đó . Ví dụ nhân vật có tên "KingMax" thì sử dụng hàm nt này

    for i = 1,300 do --Số Player sẽ kiểm tra
    PlayerIndex = i -- Gán vào biến i
    if (GetName() == "KingMax") then --Kiểm tra tên Player
    return 1
    else
    return 0
    end
    end

    Chicken
    : PlayerIndex là biến ko phải hàm
    Lần sửa cuối bởi Čħīċķėň, ngày 09-04-11 lúc 08:46 PM. Lý do: Comment Of Chicken (COC)...
    Comeback JXP

  6. The Following 8 Users Say Thank You to KingMax For This Useful Post:

    duynguyenjx (05-11-11), kidcrazy187 (14-04-11), quangken (10-05-12), satthulauhyh (19-12-11), satthupro95 (22-06-12), thaihoa91 (09-04-11), vipprolc (17-04-11), [B.M.W]Sports (09-04-11)

  7. #4
    Thành Viên Tâm Huyết KingMax's Avatar
    Ngày tham gia
    Dec 2010
    Bài viết
    642
    Thanks
    143
    Thanked 321 Times in 125 Posts

    Ðề: Hướng dẫn để viết 1 kịch bản game đơn giản và cách sữ dụng hà

    tiếp tục các hàm Get

    GetItemCount

    Code:
    Cách sử dụng:
     GetItemCount(xzy)
    trong đó xzy : có thể là ID của item hoặc tên của item (questkey.txt) nhé
    
    Ví dụ:
    function main()
    if GetItemCount("Tu Thuy Tinh") >= 1 then
    Talk(1,"","Ban co Thuy tinh")
    else
    Talk(1,"","Ban khong co Thuy Tinh")
    end
    end

    GetMagicLevel(id)
    Code:
    Cách sử dụng :
    GetMagicLevel(id)
    trong đó : id là thứ tự của Skill trong skills.txt
    GetSex()
    Code:
    Cách sử dụng 
    GetSex() trả về giá trị :
    0 : Nam
    1 : Nu
    
    Ví dụ:
    if GetSex() == 0 then
    return "Nam"
    else
    return "Nu"
    end
    GetPlayerCount()
    Code:
    Hàm này thì kiểm tra số người đang online thôi
    ví dụ: Talk(1,"","Co "..GetPlayerCount().." nguoi dang online")
    Lần sửa cuối bởi KingMax, ngày 10-04-11 lúc 07:08 AM.
    Comeback JXP

  8. The Following 5 Users Say Thank You to KingMax For This Useful Post:

    duynguyenjx (05-11-11), kidcrazy187 (14-04-11), quangken (10-05-12), satthupro95 (22-06-12), woodes123 (12-06-11)

  9. #5
    Thành Viên
    Ngày tham gia
    Feb 2011
    Bài viết
    259
    Thanks
    11
    Thanked 13 Times in 12 Posts

    Ðề: Hướng dẫn để viết 1 kịch bản game đơn giản và cách sữ dụng hà

    Tự sướng hàm GetPlayerCount()
    Code:
    player = GetPlayerCount()
    a = GetMissionV(80)
    playerao = player + a
    Xuất hàm tự sướng :
    Code:
    ví dụ: Talk(1,"","Co "..playerao.." nguoi dang online")
    Hàm thêm a
    Code:
    SetMissionV(80,GetMissionV(80)+10)
    trong đó 10 là số a
    ví dụ có 10 ng` onl khi sử dụng hàm
    Code:
    SetMissionV(80,GetMissionV(80)+10)
    thì sẽ thành 20 ng` onl
    Sau khi sử dụng
    hàm xóa a
    Code:
    SetMissionV(80,0)
    thì sẽ trở về 10
    Khách viếng thăm hãy cùng GameMaster72 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  10. The Following 2 Users Say Thank You to GameMaster72 For This Useful Post:

    quocthien87 (13-10-14), satthupro95 (22-06-12)

  11. #6
    Moderator DNTmaster's Avatar
    Ngày tham gia
    Jun 2006
    Đang ở
    GameZone
    Bài viết
    932
    Thanks
    6
    Thanked 576 Times in 183 Posts

    Anh em cố gắng phát huy để hướng dẫn được tất cả các hàm trong JX

    Cảm ơn các bạn đã góp sức vào Nhưng chú ý ở đây mình sẽ chỉ các cấu trúc Hàm sau đó sẽ đi vào phần viết script nên mọi người hãy cùng nhau phát huy

    Hum nay hơi bận nên không update thêm cho mọi người
    [Only registered and activated users can see links. ]

  12. Các thành viên gởi lời cảm ơn đến DNTmaster vì bài viết này !

    phamanh2510 (20-03-16)

  13. #7
    Thành Viên thachlong78's Avatar
    Ngày tham gia
    Dec 2008
    Bài viết
    589
    Thanks
    3
    Thanked 273 Times in 71 Posts

    Ðề: Anh em cố gắng phát huy để hướng dẫn được tất cả các hàm tron

    Mấy ông chỉ cách dùng hàm kiểm tra và Del trang bị đi, hôm nọ có mấy đứa hỏi mà dạo nay không quan tâm lắm nên cũng không biết. Hướng dẫn đi cho mấy đứa nó tham khảo viết nâng cấp trang bị.
    VLTK, huyền thoại sẽ trở lại...

  14. Các thành viên gởi lời cảm ơn đến thachlong78 vì bài viết này !

    NgoiSao123 (18-09-11)

  15. #8
    †–Fox-River™–† [B.M.W]Sports's Avatar
    Ngày tham gia
    Nov 2010
    Đang ở
    —»(¯™°•¤_kµ†€_£øñ€_ £¥_¤•°™¯) ¯ßuNyE JEn???´¯)
    Bài viết
    1,233
    Thanks
    244
    Thanked 593 Times in 121 Posts

    Ðề: Anh em cố gắng phát huy để hướng dẫn được tất cả các hàm tron

    Trích dẫn Gửi bởi thachlong78 [Only registered and activated users can see links. ]
    Mấy ông chỉ cách dùng hàm kiểm tra và Del trang bị đi, hôm nọ có mấy đứa hỏi mà dạo nay không quan tâm lắm nên cũng không biết. Hướng dẫn đi cho mấy đứa nó tham khảo viết nâng cấp trang bị.
    cái nì mấy ổng giấu kỉ lắm

    Thử một lần thôi, sống giản dị bao dung chân thật sẽ thấy vui hơn. Bằng lòng và nâng niu trân trọng cho những gì mình đang có trong đời. Tính toán làm chi se sua làm chi hơn thua hình thức kia. Có khó gì đâu cho câu cảm ơn hay câu xin lỗi trên môi mình.
    Khổ thế đấy

  16. #9
    Moderator
    Ngày tham gia
    May 2009
    Đang ở
    Nơi rất xa
    Bài viết
    2,479
    Thanks
    572
    Thanked 1,848 Times in 503 Posts

    Ðề: Hướng dẫn để viết 1 kịch bản game đơn giản và cách sữ dụng hà

    sau khi view datau.lua của TQ thì rút ra đc 2 hàm : Del trang bị và kiểm tra trang bị
    Cấu trúc :
    Hàm kiểm tra : HaveBaseItem(cột B,cột C,cột D,hệ của trang bị,cột L)
    Del trang bị : DelBaseItem(cột B,cột C,cột D,hệ của trang bị,cột L)
    * cột B,C,D ở đây là cột của file item ta view = Excel ai biết AddItem chẳng lẽ ko biết cái này @@
    Khách viếng thăm hãy cùng jxvietnam xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  17. The Following 2 Users Say Thank You to jxvietnam For This Useful Post:

    quangken (23-07-11), [B.M.W]Sports (27-04-11)

  18. #10
    trí tưởng tượng quan trọn [M]r[K]id's Avatar
    Ngày tham gia
    Aug 2010
    Đang ở
    Đà Lạt City
    Bài viết
    934
    Thanks
    73
    Thanked 97 Times in 85 Posts

    Ðề: Hướng dẫn để viết 1 kịch bản game đơn giản và cách sữ dụng hà

    Trích dẫn Gửi bởi jxvietnam [Only registered and activated users can see links. ]
    sau khi view datau.lua của TQ thì rút ra đc 2 hàm : Del trang bị và kiểm tra trang bị
    Cấu trúc :
    Hàm kiểm tra : HaveBaseItem(cột B,cột C,cột D,hệ của trang bị,cột L)
    Del trang bị : DelBaseItem(cột B,cột C,cột D,hệ của trang bị,cột L)
    * cột B,C,D ở đây là cột của file item ta view = Excel ai biết AddItem chẳng lẽ ko biết cái này @@
    phải dùng gameserver của nó ko vậy bạn ??
    Ta đã trở lại và ngu hơn xưa!

 

 
Trang 1 của 3 1 2 3 CuốiCuối

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

  1. thoát game không thể đăng nhập vào game được
    Bởi daicahoanh trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 0
    Bài viết cuối: 15-08-11, 12:01 AM
  2. [Help] Vào game không có Máy chủ để chọn & Item trong game lỗi !!
    Bởi Zin Kull trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 2
    Bài viết cuối: 09-05-11, 09:36 AM
  3. Cần hướng dẫn hex file game.exe để vào game
    Bởi Minh Phụng trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 2
    Bài viết cuối: 06-01-10, 06:43 AM

Tag của Chủ đề này

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à 10:26 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ệ.