Kết quả 1 đến 10 của 14
-
13-08-12, 01:18 PM #1
- Ngày tham gia
- Dec 2009
- Đang ở
- HỒ CHÍ MINH City
- Bài viết
- 342
- Thanks
- 80
- Thanked 225 Times in 71 Posts
Hướng Dẫn Viết NHiệm Vụ Cho Server 7.0
Đầu tiên nói sơ qua 1 số hàm có trong Server :
hàm quan trong nhất :
SendMissionMsg(series Player,ID quest,ID Statement,Step Quest) : send cho client biết trạng thái làm nhiệm vụ của nhân vật.
+ series Player : mỗi nhân vật khi vào game sẽ được server cung cấp 1 Series để quản lý ,dựa vào đây server sẽ biết Player Nào đang nhân nhiệm vụ
+ ID Quest : ID của Nhiệm vụ ,mỗi nhiệm vụ sẽ có 1 ID ,cái này sẽ nói sau.
+ ID Statement: ID mấy câu hội thoại của NPC ,khi mình nhân nhiệm vụ ,hoàn thành nhiệm vụ hay là hủy bỏ nhiệm vụ ... cái này nằm trong Ybq.cfg
+ Step Quest : cái này là bước của nhiệm vụ ,mỗi nhiệm vụ có nhiều bước nên server phải biết nhân vật đang làm nhiệm vụ tới bước nào (rẩt quan trọng)
ok hàm đó là quan trong nhất chỉ cần cái hàm đó cũng đủ để viết nhiệm vụ rồi.
một số hàm hỗ trợ :
AddQuest(series Player,ID quest,Step Quest) : Add Nhiệm vụ cho Player ,Ctrl+Q sẽ thấy cái nhiệm vụ mình vừa nhận .
DeleteQuest(ID Quest, series Player) : Xóa nhiệm vụ của Player ,làm xong nhiệm vụ cần xóa nhiệm vụ đó đi .
AddItemQuestDrop(ID ItemQuest,ID Monter,ItemCount,series Player) : add Item Nhiệm vụ vào con quái vật để mình đánh nó mà nhận dc Item Nhiệm vụ
+ID ItemQuest : ID của Item Nhiệm vụ (cái này tìm hơi mệt )
+ID Monter : ID của Quái Vật Mà Mình Muốn Add (cái nà tìm cũng mệt không kém )
+ItemCount: số Lượng Item Nhiệm Vụ cần.
--Đây là hàm mệt nhất tìm mấy cái ID Quest với ID Monter Phê lòi ,bạn nào đã từng chơi Hệp khách thì có thể tìm nhanh hơn chứ người không biết ji chắc mò cả ngày @@.
DeleteItemQuestDrop(ID ItemQuest,series Player) :Xóa Item Nhiệm vụ mới Add vào Quái vật ,àm xong nhiệm vụ cần xóa nó đi không có lần sau đánh con quái đó là nó cứ ra mấy cái Item Nhiệm vụ a` .
GetQuestItme(series Player,ID ItemQuest,ItemCount) : hàm này trả về true nếu trong túi đồ có đủ số Item Nhiệm vụ,trả về false nếu không đủ yêu cầu -> hàm này dùng khi Player trả Nhiệm vụ .
DeleteItemQuest(series Player,ID Item Quest ,Số lượng Item Cần Xóa) : xóa số ItemQuest đang có trong túi đồ. xong Quest thì phải Xóa mấy cái Item đó đi .
GetQuestLevel(series Player,ID Quest) hàm này trả về Bước Nhiệm vụ mà Player đang làm ,đừng hiểu nhầm là lấy Level của nhiệm vụ nhá .
Tới đây thôi Bữa sau hướng dẫn tiếp
Bài sau chúng ta tìm hiểu cấu trúc của Nhiệm vụLần sửa cuối bởi vanluat1991, ngày 14-08-12 lúc 07:05 PM. Lý do: Update lại hàm DeleteItemQuest
Không gì là Không Thể
-
-
13-08-12, 05:00 PM #2
- Ngày tham gia
- Dec 2009
- Đang ở
- HỒ CHÍ MINH City
- Bài viết
- 342
- Thanks
- 80
- Thanked 225 Times in 71 Posts
Ðề: Hướng Dẫn Viết NHiệm Vụ Cho Server 7.0
Tiếp Tục Tới Phần Cấu trúc Của 1 script Nhiệm Vụ
Khi ta Nhân Nhiệm Vụ sẽ Có 5 Sự Kiện Có Thể xảy ra Mỗi Sự kiện Sẽ Có 1 ID Riêng.
+ Chọn Nhiệm Vụ (lúc mình Click vào Cái Nhiệm vụ ) : cái Này có ID là :1
+ Chấp Nhân Nhiệm Vụ (Click vào Button đồng ý Trong Bảng Nhiệm Vụ ) : ID :2
+ Từ Chối Nhiệm Vụ (Click vào Button Hủy Trong Bảng Nhiệm Vụ) :ID :3
+ Hủy Bỏ nhiệm Vụ (Click vào Buuton Hủy Nhiệm Vụ trong Ctrl+Q) :ID :4
+ Trả Nhiệm Vụ (Hoàn Thành Nhiệm Vụ) : ID :5
vậy Cấu Trúc Của Script Như sau:
Code:If(EventQuest==1) then --Lựa Chọn Nhiệm vụ elseif(EvenQuest==2) then --Chấp Nhận Nhiệm Vụ elseif(EventQuest==3) then --từ Chối Nhiệm Vụ elseif(EventQuest==4) then -- Hủy Bỏ Nhiệm Vụ elseif(EventQuest==5) then -- Hoàn Thành Nhiệm Vụ end
Không gì là Không Thể
-
13-08-12, 06:49 PM #3
- Ngày tham gia
- May 2009
- Đang ở
- House
- Bài viết
- 560
- Thanks
- 5
- Thanked 377 Times in 75 Posts
Ðề: Hướng Dẫn Viết NHiệm Vụ Cho Server 7.0
Tiếp tục UPDATE các hàm liên kết đến nhân vật cho những ai chưa biết
- GetPackages(UserWorldId,2) : Kiểm tra ô trống trong túi đồ
+ 2 = Số lượng muốn kiểm tra
Ví dụ muốn kiểm tra xem Nhân vật đó có còn 2 ô trống không ta làm như sau :
Code:local IndexsEmptyOfItemBag=GetPackages(UserWorldId,2) if IndexsEmptyOfItemBag.Count==0 then--khong co du slot SendSysMsg(UserWorldId,"Túi đồ không đủ 2 chỗ trống", 9, "Chú ý") end
- AddMoneyToCharacter(50000000,UserWorldId) : Thêm tiền
+ 50000000 = số tiền muốn thêm
- AddExpToCharacter(100,UserWorldId) : Thêm kinh nghiệm
+ 100 = số exp muốn thêm
- AddItme(UserWorldId,500001,IndexsEmptyOfItemBag[0],1) : Thêm Item
+ 500001 = id item
+ IndexsEmptyOfItemBag[0] = Nôm na là ô còn trống đầu tiên trong túi
+ 1 = Số lượng [ i think ]
Hàm này đi kèm với hàm kiểm tra túi đồ nhé
..... Sai thì luat sửa nhéLần sửa cuối bởi |Rick|, ngày 13-08-12 lúc 06:57 PM.
Khách viếng thăm hãy cùng |Rick| xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
Các thành viên gởi lời cảm ơn đến |Rick| vì bài viết này !
pikhjn (14-08-12)
-
13-08-12, 10:56 PM #4
- Ngày tham gia
- Nov 2010
- Đang ở
- Vũng Tàu
- Bài viết
- 443
- Thanks
- 174
- Thanked 127 Times in 65 Posts
Ðề: Hướng Dẫn Viết NHiệm Vụ Cho Server 7.0
Code:AddItemQuestOfCharacter(900000011,5,UserWorldId) 900000011: id item quest 5 số lượng
Khách viếng thăm hãy cùng thothiendai xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
14-08-12, 10:18 PM #5
- Ngày tham gia
- Dec 2009
- Đang ở
- HỒ CHÍ MINH City
- Bài viết
- 342
- Thanks
- 80
- Thanked 225 Times in 71 Posts
Ðề: Hướng Dẫn Viết NHiệm Vụ Cho Server 7.0
quest thăng chức lần 1 cho mọi người tham khảo .
Code:function MissIon18(UserWorldId,QuestId, CzId, RwJdId) local Player = GetPlayer(UserWorldId) if CzId==1 then if Player.Player_Level<10 then SendMissionMsg(UserWorldId,QuestId, 12, RwJdId)--khong du dieu kien else local QuestLevel=GetQuestLevel(UserWorldId,QuestId) if QuestLevel==1 then--nhan nhiem vu ngan kieu long RwJdId=2 AddQuest(UserWorldId,QuestId,RwJdId) SendMissionMsg(UserWorldId,QuestId, 11, RwJdId) elseif QuestLevel==2 then--danh heo rung cho kim huong ngoc RwJdId=3 AddQuest(UserWorldId,QuestId,RwJdId) SendMissionMsg(UserWorldId,QuestId, 11, RwJdId) AddItemQuestDrop(900000043,10013,1,UserWorldId) elseif QuestLevel==3 then--tra nhiem vu duoc cai dui nuong local bool900000043 = GetQuestItme(UserWorldId, 900000043, 1) if bool900000043 then DeleteItemQuest(UserWorldId,900000043,1) AddItemQuestOfCharacter(900000042,1,UserWorldId) DeleteItemQuestDrop(900000043,UserWorldId) else SendMissionMsg(UserWorldId,QuestId, 12, RwJdId) end RwJdId=4 AddQuest(UserWorldId,QuestId,RwJdId) SendMissionMsg(UserWorldId,QuestId, 11, RwJdId) elseif QuestLevel==4 then--dua dui heo cho ngan kieu long nhan dc giap local bool900000042 = GetQuestItme(UserWorldId, 900000042, 1) if bool900000042 then DeleteItemQuest(UserWorldId,900000042,1) AddItemQuestOfCharacter(900000046,1,UserWorldId)--nhan giap else SendMissionMsg(UserWorldId,QuestId, 12, RwJdId) end RwJdId=5 AddQuest(UserWorldId,QuestId,RwJdId) SendMissionMsg(UserWorldId,QuestId, 11, RwJdId) elseif QuestLevel==5 then--nhan Quest Dao kien tieu local bool900000046 = GetQuestItme(UserWorldId, 900000046, 1) if bool900000046 then --AddQuestItme(UserWorldId,900000046,0) else SendMissionMsg(UserWorldId,QuestId, 12, RwJdId) end RwJdId=6 AddQuest(UserWorldId,QuestId,RwJdId) SendMissionMsg(UserWorldId,QuestId, 11, RwJdId) elseif QuestLevel==6 then--gap binh thap chi --nhan nhiem vu danh 3 bo xuong RwJdId=7 AddQuest(UserWorldId,QuestId,RwJdId) AddItemQuestDrop(900000045,10009,3,UserWorldId) SendMissionMsg(UserWorldId,QuestId, 11, RwJdId) elseif QuestLevel==7 then--tra nhiem vu binh thap chi ,lay dc thuoc cho dao kien tieu local bool900000045 = GetQuestItme(UserWorldId, 900000045, 3) if bool900000045 then DeleteItemQuest(UserWorldId,900000045,3) AddItemQuestOfCharacter(900000044,1,UserWorldId)--nhan thuoc DeleteItemQuestDrop(900000043,UserWorldId) else SendMissionMsg(UserWorldId,QuestId, 12, RwJdId) end RwJdId=8 AddQuest(UserWorldId,QuestId,RwJdId) SendMissionMsg(UserWorldId,QuestId, 11, RwJdId) elseif QuestLevel==8 then-- tra Quest tai dao kien tieu local bool900000044 = GetQuestItme(UserWorldId, 900000044, 1) if bool900000044 then DeleteItemQuest(UserWorldId,900000044,1) AddItemQuestOfCharacter(900000047,1,UserWorldId)--nhan vu khi else SendMissionMsg(UserWorldId,QuestId, 12, RwJdId) end RwJdId=9 AddQuest(UserWorldId,QuestId,RwJdId) SendMissionMsg(UserWorldId,QuestId, 11, RwJdId) elseif QuestLevel==9 then-- tra quest tai mon chu local bool900000047 = GetQuestItme(UserWorldId, 900000047, 1) local Item900000046= GetQuestItme(UserWorldId, 900000046, 1) if bool900000047 and Item900000046 then DeleteItemQuest(UserWorldId,900000047,1) DeleteItemQuest(UserWorldId,900000046,1) RwJdId=10 SendMissionMsg(UserWorldId,QuestId, 11, RwJdId) else SendMissionMsg(UserWorldId,QuestId, 12, RwJdId) end SendMissionMsg(UserWorldId,QuestId, 11, RwJdId) else SendMissionMsg(UserWorldId,QuestId, 11, RwJdId) end end elseif CzId==2 then RwJdId=1 AddQuest(UserWorldId,QuestId,RwJdId) SendMissionMsg(UserWorldId,QuestId, 21, RwJdId) elseif CzId==3 then SendMissionMsg(UserWorldId,QuestId, 31, RwJdId) elseif CzId==5 then local QuestLevel=GetQuestLevel(UserWorldId,QuestId) if QuestLevel==9 then -- local weiz909000001=GetPackage(UserWorldId) --- if weiz909000001==-1 then -- SendSysMsg(UserWorldId,"×°±¸À¸Ã»ÓпÕλÁË£¬ÇëÇåÀí!", 9, "ϵͳÌáʾ") -- SendMissionMsg(UserWorldId,QuestId, 12, RwJdId) -- return -- else -- AddItme(UserWorldId,909000001,weiz909000001,200) -- end -- local weiz909000004=GetPackage(UserWorldId) -- if weiz909000004==-1 then -- SendSysMsg(UserWorldId,"×°±¸À¸Ã»ÓпÕλÁË£¬ÇëÇåÀí!", 9, "ϵͳÌáʾ") -- SendMissionMsg(UserWorldId,QuestId, 12, RwJdId) -- return --else -- AddItme(UserWorldId,909000004,weiz909000004,10000) --end SetPlayerTransfer(UserWorldId,0,1) end SendMissionMsg(UserWorldId,QuestId, 51, RwJdId) end
Không gì là Không Thể
-
15-08-12, 12:06 AM #6
- Ngày tham gia
- Nov 2010
- Đang ở
- Vũng Tàu
- Bài viết
- 443
- Thanks
- 174
- Thanked 127 Times in 65 Posts
Ðề: Hướng Dẫn Viết NHiệm Vụ Cho Server 7.0
Lần sửa cuối bởi thothiendai, ngày 15-08-12 lúc 12:09 AM.
Khách viếng thăm hãy cùng thothiendai xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
15-08-12, 01:18 AM #7
Ðề: Hướng Dẫn Viết NHiệm Vụ Cho Server 7.0
tui đã làm như trên và khi đánh ko đc đồ của nhiệm vụ TC lân 1 thế ai bjk chỉ vs
Lần sửa cuối bởi ConMua, ngày 15-08-12 lúc 01:56 AM.
Khách viếng thăm hãy cùng ConMua xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
15-08-12, 07:05 AM #8
- Ngày tham gia
- May 2009
- Đang ở
- House
- Bài viết
- 560
- Thanks
- 5
- Thanked 377 Times in 75 Posts
Ðề: Hướng Dẫn Viết NHiệm Vụ Cho Server 7.0
2_Cuoc_Song_Cua_Vi_Dai_Bao.lua
3_Tim_Duoc_lieu.lua
4_Long_Tu_Trong_Cua_NKL.lua
5_Nghien_Cuu_Huyet_lang.lua
13_Kiem_Cui.lua
- 1203_Hoan_thanh_muc_tieu_cap_5.lua
- 1205_Hoan_thanh_muc_tieu_cap_10.lua
- 1206_Hoan_thanh_muc_tieu_cap_13.lua
- 1208_Hoan_thanh_muc_tieu_cap_18.lua
- 1209_Hoan_thanh_muc_tieu_cap_20.lua
Link down tất cả : [Only registered and activated users can see links. ]Lần sửa cuối bởi |Rick|, ngày 15-08-12 lúc 07:07 AM.
Khách viếng thăm hãy cùng |Rick| xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
15-08-12, 08:49 AM #9
- Ngày tham gia
- Dec 2011
- Bài viết
- 270
- Thanks
- 27
- Thanked 39 Times in 33 Posts
Ðề: Hướng Dẫn Viết NHiệm Vụ Cho Server 7.0
NHÌN MẤY CHÚ VIẾT MÀ THÈM QUÁ TIẾC LÀ CHƯA BAO GIỜ CHƠI OFFICIAL NÊN NHIỆM VỤ KO RÕ CÁC BƯỚC ĐÁNH GÌ =,='
Khách viếng thăm hãy cùng huy228866 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
15-08-12, 09:17 AM #10
- Ngày tham gia
- May 2009
- Đang ở
- House
- Bài viết
- 560
- Thanks
- 5
- Thanked 377 Times in 75 Posts
Ðề: Hướng Dẫn Viết NHiệm Vụ Cho Server 7.0
Chả cần phải cần chơi Official YBQ việt hóa rồi vào nhận quest đọc nội dung quest rồi viết thôi
P/S : Chưa bao h chơi HK DZOGAMEKhách viếng thăm hãy cùng |Rick| xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
Các Chủ đề tương tự
-
Làm 2 hoặc nhiều server trên 1 máy tính ( giống FPT ) !!
Bởi mattroilan trong diễn đàn Guides - Kho Lưu trữTrả lời: 30Bài viết cuối: 18-01-15, 11:28 AM -
[HKGH] Server 7.0 Đã làm Được Nhiệm vụ :D
Bởi vanluat1991 trong diễn đàn ReleaseTrả lời: 9Bài viết cuối: 04-08-12, 11:29 PM -
[Hướng dẫn] tạo nhiều server trên một máy ảo
Bởi cuilui trong diễn đàn Thục Sơn Kỳ HiệpTrả lời: 9Bài viết cuối: 16-05-12, 06:44 AM