Game


You are not connected. Please login or register

Hướng dẫn viết Script NPC đơn giản

Go down  Message [Page 1 of 1]

Fenix

Fenix
Game Master
Game Master
Yêu cầu của mục này là bạn phải biết sơ sơ về một số ngôn ngữ lập trình cơ bản như Pascal, C, C++,... Biết những cái này làm gì? Biết những cái này để ta nắm sơ qua ý tưởng cũng như là một số câu lệnh điều kiện mà ta sắp dùng đến. 

Cấu trúc của một đoạn code đại diện cho NPC chuyên về sự kiện.
1. Phần khởi động: Phần này là phần mà ta phải khai báo ID của NPC cũng như viết một số chú thích cho người xem hiểu đoạn code nói gì.
2. Phần mở đầu: Giới thiệu sự kiện, các mục chọn lựa hoặc chỉ đơn giản là phần duy nhất trong đoạn code với NPC viết ra chỉ để nói một vài dòng.
3. Phần điều kiện: Không cần thiết phải có. Dùng để kiểm tra điều kiện cần thiết để có thể vào được thân sự kiện. ( Ví dụ cấp 10 trở lên mới được vào gọi là một điều kiện ).
4. Phần thân: Đây chính là thân sự kiện với các lệnh do chính bạn viết nên. Có thể nói cái này là cái quan trọng quyết định chức năng của NPC ( đa số là thế ).
5. Các phần khác: Các bạn có thể sáng tạo ra các hàm khác phục vụ cho đoạn code của mình.

Chi tiết:

A/ PHẦN KHỞI ĐỘNG:

Phần này đa số toàn là chú thích cho người đọc. Và cái quan trọng nhất của phần này chính là cái khai báo một biến hằng số đại diện cho ID của NPC.
Nếu như không khai báo kiểu này, mỗi khi dùng một cái lệnh liên quan đến ID của NPC ( lệnh viết ) thì bạn sẽ phải nhập đi nhập lại cái ID đó, có nhàm không? Và xét trường hợp nhiều file, và bạn là một người ngồi soát lỗi chẳng hạn, việc không chú thích cũng như không khai báo ID trên đầu liệu bạn có khó chịu không?
Một khuyến cáo là tất cả các khóa từ tên từng hàm một cũng nên kèm theo cái ID ở đầu để tiện quan sát, lý do mình đã trình bày bên trên.
Một ví dụ về phần này như sau:



Code:
--NPC: Đại Lý
--Tên: Sói Đẹp Zai
--Tittle: Hỗ trợ tân thủ
--Edit: By Sói Kool

x002097_g_ScriptId = 002097




Giải thích: Những ký tự sau cụm dấu "--" đều được coi là "chú thích" và không liên quan gì đến chương trình của ta cả.
Cái biến đại diện cho ID Script kia bạn có thể đặt tên nào cũng được nhưng thống nhất là đặt theo kiểu kia để tiện sau này lục lại NPC.
Biến x002097_g_ScriptId sẽ mang giá trị là 002097, giá trị này đại diện cho ID của NPC thực hiện chức năng được viết trong code này.

B/ PHẦN MỞ ĐẦU:

Mở đầu sẽ là lời gọi tới cái mà các ngôn ngữ lập trình kia gọi là "Chương trình chính" hay "Hàm chính".
Và như trong game các bạn sẽ thấy cái bảng này sẽ hiện lên khi bấm vào NPC ( Đương nhiên lỗi hoặc không có câu lệnh viết ra cái gì đó thì không tính nhé ).
Cấu trúc của phần này sẽ là



Code:
function xID_NPC_OnDefaultEvent(sceneId,selfId,targetId)
   Các lệnh cơ bản, thường sẽ là lệnh để viết ra một cái gì đó
end




Trong đó cái ID_NPC là ID của NPC tương tự như trên. Còn các cái còn lại đừng thay đổi. Mình đã thử đổi tên và kết quả lỗi Script.
Một ví dụ:



Code:
function x002097_OnDefaultEvent(sceneId,selfId,targetId)
local nam = LuaFnGetName(sceneId,selfId)
   
   BeginEvent(sceneId)
      AddText(sceneId,"Hi "..nam..", have a good day!")
      AddNumText(sceneId,x002097_g_ScriptId,"Chức năng tân thủ",1,1)
   EndEvent(senceId)
   DispatchEventList(sceneId,selfId,targetId)
   
end



Lưu ý sau dấu "=" là hàm đã được Lập trình viên viết sẵn chỉ việc dùng thôi nhé ( Hàm_Hằng).
Như các bạn thấy bên trong là cụm lệnh bắt đầu bằng khóa BeginEvent(sceneId) và kết thúc bằng khóa EndEvent(SceneId)
Hàm AddText(sceneId,"Text") tác dụng chính của nó là thêm vào một chuỗi ký tự, như trên thì hàm này sẽ có tác dụng ghi ra cái bảng nói chuyện của NPC.
Ví dụ bạn tên Test, cái bảng sẽ hiện lên "Hi Test, have a good day!", tương tự như printf trongC.
AddNumText(sceneId,NPC_ID,"Text",x,y) nó có tác dụng ghi ra một chuỗi ký tự nào đó mà khi người dùng ấn vào chuỗi này thì sẽ thực hiện một số câu lệnh phía sau.
Trong đó "x" là biểu tượng đầu của chuỗi ký tự này, và "y" sẽ là "mã số" của cái lệnh mà nó sẽ thực hiện phía sau.
DispatchEventList(sceneId,selfId,targetId) đây là lệnh đóng cái bảng lại.
Như các bạn thấy trong ví dụ trên, cái bảng của chúng ta sẽ hiện ra. 



Code:
Hi Test, have a good day!
(image) Chức năng tân thủ



Cái (image) chính là biểu tượng trong game đó mà cụ thể (image)=1 sẽ ra hình cuốn sách cuộn tròn như các bạn thường thấy khi nhận nhiệm vụ ở các NPC.
Và khi bạn bấm vào cái "Chức năng tân thủ", nó sẽ làm gì tiếp thì hãy chuyển sang phần sau.

http://www.devgame.ga

Fenix

Fenix
Game Master
Game Master
C/PHẦN ĐIỀU KIỆN:
Tác dụng cơ bản của phần này chỉ là để kiểm tra điều kiện của người chơi sao cho thỏa mãn với mục đích của sự kiện được viết ra.
Cấu trúc của phần này là 



Code:
function xID_NPC_OnConditionCheck(sceneId,selfId )
   Một số lệnh
end



Ví dụ mình sẽ xây dựng một phần điều kiện để kiểm tra xem người chơi có đủ cấp độ 10 và không vượt quá cấp độ 50 mới có thể tham gia sự kiện.



Code:
function x002097_OnConditionCheck(sceneId,selfId )
local lev=GetLevel(sceneId,selfId)

   if lev < 10 then
      BeginEvent(sceneId)
         AddText(sceneId,"Khi nào đạt cấp 11 trở lên hãy đến tìm ta")
         DispatchEventList(sceneId,selfId,targetId)
         return 0
      EndEvent(sceneId)
   elseif lev > 50 then
      BeginEvent(sceneId)
         AddText(sceneId,"Lớn hơn cấp 50 mà gọi là tân thủ à?")
         DispatchEventList(sceneId,selfId,targetId)
         return 0
      EndEvent(sceneId)
   end
   
end



Câu lệnh if điều kiện then thực hiện lệnh end các bạn tự hiểu nó giống trong các ngôn ngữ lập trình khác.
elseif điều kiện then thực hiện lệnh end tương tự như if chỉ khác cái này là kiểm tra lệnh if trên không thỏa mãn thì nó sẽ kiểm tra điều kiện sau. Hay theo C++ thì nó tương đương lệnh 



Code:
else
   if (Điều kiện)
   {
      thực hiện lệnh;
   }



Ngoài ra còn lệnh else nữa nhé. Kết thúc else sẽ là khóa end vì thật ra else cũng là một câu lệnh nhỏ trong cụm if then end và kết thúc lệnh này phải có end => Logic phết Hướng dẫn viết Script NPC đơn giản 4
return 0, giống hệt C++, gần như stop chương trình luôn đó. Ngoài ra nó còn lệnh tên là returnkhông thôi có tác dụng trở lại bảng sự kiện ban đầu.

D/ PHẦN THÂN

Cấu trúc



Code:
function xID_NPC_OnEventRequest(sceneId,selfId,targetId,eventId)
   Lệnh
end



Đây chính là phần mà các bạn sáng tạo nhiều nhất ví dụ của mình có hàm Add Level cho nhân vật.



Code:
function x002097_OnEventRequest(sceneId,selfId,targetId,eventId)
local key = GetNumText()
   if key == 1 then
      SetLevel(sceneId,selfId,120)
      BeginEvent(sceneId)
         AddText(sceneId,"Chúc mừng bạn thăng cấp 120 thành công")
      EndEvent(scneneId)
      DispatchEventList(sceneId,selfId,targetId)
   end
end



"==" là phép so sánh bằng nhé giống bên C.
SetLevel(sceneId,selfId,x) là hàm Set cho nhân vật level x tùy ý ( không vượt quá 150 )
local Tên_Biến = Hàm_Hằng
GetNumText() tức là hàm lấy giá trị ẩn của cái chỗ mà người chơi vừa kick vào ( Hơi khó hiểu nhưng đại khái theo cái phần mở đầu, người dùng ấn vào cái cụm ký tự mà có chữ số đại diện cho các câu lệnh ngầm phía sau là 1 )
Ở đây có thể bao gồm nhiều lệnh nhé, và phần này là phần đòi hỏi người viết phải có kiến thức lập trình, rà soát các trường hợp cẩn thận.

http://www.devgame.ga

Fenix

Fenix
Game Master
Game Master
E/PHẦN KHÁC

Ở phần này các bạn có thể sáng tạo các hàm khác cho riêng mình được, ví dụ đoạn code bên trên mình có thể biến nó về sử dụng một hàm khác và lấy hàm chính của chương trình gọi tới nó.
Vẫn thống nhất như trên thêm xID_NPC_Tên_chương_trình(tham biến) nhé



Code:
--NPC: Đại Lý
--Tên: Sói Đẹp Zai
--Tittle: Hỗ trợ tân thủ
--Edit: By Sói Kool

function x002097_OnDefaultEvent(sceneId,selfId,targetId)
local nam = LuaFnGetName(sceneId,selfId)
   
   BeginEvent(sceneId)
      AddText(sceneId,"Welcome "..nam..", have a good day!")
      AddNumText(sceneId,x002097_g_ScriptId,"Chức năng tân thủ",1,1)
   EndEvent(senceId)
   DispatchEventList(sceneId,selfId,targetId)
   
end

function x002097_OnConditionCheck(sceneId,selfId )
local lev=GetLevel(sceneId,selfId)

   if lev < 10 then
      BeginEvent(sceneId)
         AddText(sceneId,"Khi nào đạt cấp 11 trở lên hãy đến tìm ta")
         DispatchEventList(sceneId,selfId,targetId)
         return 0
      EndEvent(sceneId)
   elseif lev > 50 then
      BeginEvent(sceneId)
         AddText(sceneId,"Lớn hơn cấp 50 mà gọi là tân thủ à?")
         DispatchEventList(sceneId,selfId,targetId)
         return 0
      EndEvent(sceneId)
   end
   
end

function x002097_OnEventRequest(sceneId,selfId,targetId,eventId)
local key = GetNumText()
   if key == 1 then
      x002097_LenLevel(sceneId,selfId)
   end
end

function x002097_LenLevel(sceneId,selfId)
   BeginEvent(sceneId)
      AddText(sceneId,"Chúc mừng bạn thăng cấp 120 thành công")
   EndEvent(scneneId)
   DispatchEventList(sceneId,selfId,targetId)
end



Đây gọi là một cái hay mà các ngôn ngữ lập trình khác đều có đó là thuật "Chia để trị", sau này bạn sẽ rất cần thiết đến cách phân chia này với các script có nhiều phần...
Lưu ý: Phân biệt chữ hoa chữ thường nên phải cẩn thận.

MỘT SỐ CÂU LỆNH SƯU TẬP:

Add KNB:



Code:
YuanBao(sceneId,selfId,targetId,x,y)




Trong đó y là số KNB cần add và x là số lượng, hiểu nôm na là số phiếu KNB

Add ĐT:



Code:
ZengDian(sceneId,selfId,targetId,x,y)




Trong đó y là số ĐT cần add và x là số lượng

Add EXP:



Code:
LuaFnAddExp(sceneId,selfId,x)



Trong đó x là số kinh nghiệm ( x<=99999999 )

Add điểm Môn Phái:



Code:
SetHumanMenpaiPoint(sceneId,selfId,x)




Trong đó x là số điểm cần Set

Add Item:



Code:
BeginAddItem(sceneId)
AddItem(sceneId,x,1)
EndAddItem(sceneId,selfId)
AddItemListToHuman(sceneId,selfId)



Với x là ID của item ( xem trong server hoặc client )

Add Skill



Code:
AddSkill(sceneId,selfId,x)






Trong đó x là ID skill cần add

Ghi ra kênh hệ thống:



Code:
BroadMsgByChatPipe(sceneId,selfId,"Text")








Lấy tên nhân vật:



Code:
local Tên_Biến = LuaFnGetName(sceneId,selfId)











Lấy level nhân vật:



Code:
local Tên_Biến = GetLevel(sceneId,selfId)



Lấy số thứ tự môn phái ( 0..9 )



Code:
local Tên_Biến = GetMenPai(sceneId,selfId)



Gia nhập môn phái:



Code:
LuaFnJoinMenpai(sceneId,selfId,targetId,x)
LuaFnSendSpecificImpactToUnit(sceneId,selfId,targetId,148,0)



Trong đó x là thứ số tự môn phái ( 0..9 )

Add tâm pháp



Code:
LuaFnSetXinFaLevel(sceneId,selfId,x,y)



Trong đó x là ID quyển tâm pháp cần thêm, y là số điểm tâm pháp

OK như vậy là đủ để viết được Script đơn giản. Còn các cái cao siêu mình không nói đến nhé.

Và đây là 1 script mẫu nhận tâm pháp và lev 120 cho anh em tham khảo




Code:
--ÐÕi Lý NPC
--ID: 002097
--Script test code by Sói Kool
--************************
x002097_g_ScriptId = 002097
--************************
--Kh·i ðµng
--************************
function x002097_OnDefaultEvent(sceneId,selfId,targetId)

   BeginEvent(sceneId)
      AddText(sceneId,"Chào m×ng bÕn ðªn v¾i Thiên Long Bát Bµ edit by Sói Kool...Các hÕ có mu¯n gia nh§p môn phái và nh§n tâm pháp c¤p 120 không ? Nªu ð°ng ý, các hÕ s¨ l§p tÑc thång lên c¤p ðµ 120 cùng tâm pháp môn phái tß½ng Ñng...")
      AddNumText(sceneId,x002097_g_ScriptId,"Xác nh§n",1,1)
      AddNumText(sceneId,x002097_g_ScriptId,"Nh§n yªu quyªt phái Mµ Dung",1,2)
   EndEvent(senceId)
   DispatchEventList(sceneId,selfId,targetId)
   
end
--************************
--Thân chß½ng trình
--************************
function x002097_OnEventRequest(sceneId,selfId,targetId,eventId)
local key = GetNumText()
local lev = GetLevel(sceneId,selfId)

   --Gia nh§p môn phái
   if key == 1 then
      BeginEvent(sceneId)
         AddText(sceneId,"Hãy lña ch÷n môn phái mu¯n gia nh§p...#r Lßu ý: C¤p 120 tr· lên không nên dùng chÑc nång này v¸ nó s¨ hÕ c¤p ðµ cüa bÕn xu¯ng 120....")
         AddNumText(sceneId,x002097_g_ScriptId,"Thiªu Lâm",2,3)
         AddNumText(sceneId,x002097_g_ScriptId,"Minh Giáo",2,4)
         AddNumText(sceneId,x002097_g_ScriptId,"Cái Bang",2,5)
         AddNumText(sceneId,x002097_g_ScriptId,"Thiên S½n",2,6)
         AddNumText(sceneId,x002097_g_ScriptId,"#YMµ Dung",2,7)
         AddNumText(sceneId,x002097_g_ScriptId,"Nga My",2,8)
         AddNumText(sceneId,x002097_g_ScriptId,"Tiêu Dao",2,9)
         AddNumText(sceneId,x002097_g_ScriptId,"Tinh Túc",2,10)
         AddNumText(sceneId,x002097_g_ScriptId,"Võ Ðang",2,11)
         AddNumText(sceneId,x002097_g_ScriptId,"Thiên Long",2,12)
      EndEvent(sceneId)
      DispatchEventList( sceneId,selfId, targetId )
   end
   --***
   if key == 3 then --Thiªu Lâm
      --Gia nh§p môn phái
      LuaFnJoinMenpai(sceneId,selfId, targetId,0) --ID 0 là Thiªu Lâm
      --Tâm pháp
      LuaFnSetXinFaLevel(sceneId,selfId,1,120)
      LuaFnSetXinFaLevel(sceneId,selfId,2,120)
      LuaFnSetXinFaLevel(sceneId,selfId,3,120)
      LuaFnSetXinFaLevel(sceneId,selfId,4,120)
      LuaFnSetXinFaLevel(sceneId,selfId,5,120)
      LuaFnSetXinFaLevel(sceneId,selfId,6,120)
      LuaFnSetXinFaLevel(sceneId,selfId,55,120)
      LuaFnSetXinFaLevel(sceneId,selfId,72,120)
      LuaFnSendSpecificImpactToUnit(sceneId,selfId,selfId,selfId,148,0)
      --Thång c¤p
      SetLevel(sceneId,selfId,120)
      
      BeginEvent(sceneId)
         AddText(sceneId,"Chúc m×ng ngß½i ðã là ð® tØ Thiªu Lâm, nh§n thành công tâm pháp 120 môn phái ð°ng th¶i thång lên c¤p 120...")
      EndEvent(sceneId)
      
      DispatchEventList(sceneId,selfId,targetId )
   end
   --***
   if key == 4 then --Minh Giáo
      --Gia nh§p môn phái
      LuaFnJoinMenpai(sceneId,selfId, targetId, 1) --ID 1 là Minh Giáo
      --Tâm pháp
      LuaFnSetXinFaLevel(sceneId,selfId,7,120)
      LuaFnSetXinFaLevel(sceneId,selfId,8,120)
      LuaFnSetXinFaLevel(sceneId,selfId,9,120)
      LuaFnSetXinFaLevel(sceneId,selfId,10,120)
      LuaFnSetXinFaLevel(sceneId,selfId,11,120)
      LuaFnSetXinFaLevel(sceneId,selfId,12,120)
      LuaFnSetXinFaLevel(sceneId,selfId,56,120)
      LuaFnSetXinFaLevel(sceneId,selfId,73,120)
      LuaFnSendSpecificImpactToUnit(sceneId,selfId,selfId,selfId,148,0)
      --Thång c¤p
      SetLevel(sceneId,selfId,120)
      
      BeginEvent(sceneId)
         AddText(sceneId,"Chúc m×ng ngß½i ðã là ð® tØ Minh Giáo, nh§n thành công tâm pháp 120 môn phái ð°ng th¶i thång lên c¤p 120...")
      EndEvent(sceneId)
         
      DispatchEventList(sceneId,selfId,targetId )
   end
   --**
   if key == 5 then --Cái Bang
      --Gia nh§p môn phái
      LuaFnJoinMenpai(sceneId,selfId, targetId, 2) --ID 2 là Cái Bang
      --Tâm pháp
      LuaFnSetXinFaLevel(sceneId,selfId,13,120)
      LuaFnSetXinFaLevel(sceneId,selfId,14,120)
      LuaFnSetXinFaLevel(sceneId,selfId,15,120)
      LuaFnSetXinFaLevel(sceneId,selfId,16,120)
      LuaFnSetXinFaLevel(sceneId,selfId,17,120)
      LuaFnSetXinFaLevel(sceneId,selfId,18,120)
      LuaFnSetXinFaLevel(sceneId,selfId,57,120)
      LuaFnSetXinFaLevel(sceneId,selfId,74,120)
      LuaFnSendSpecificImpactToUnit(sceneId,selfId,selfId,selfId,148,0)
      --Thång c¤p
      SetLevel(sceneId,selfId,120)
      
      BeginEvent(sceneId)
         AddText(sceneId,"Chúc m×ng ngß½i ðã là ð® tØ Cái Bang, nh§n thành công tâm pháp 120 môn phái ð°ng th¶i thång lên c¤p 120...")
      EndEvent(sceneId)
         
      DispatchEventList(sceneId,selfId,targetId )
   end
   --**
   if key == 6 then --Thiên S½n
      --Gia nh§p môn phái
      LuaFnJoinMenpai(sceneId,selfId, targetId, 7) --ID 7 là Thiên S½n
      --Tâm pháp
      LuaFnSetXinFaLevel(sceneId,selfId,43,120)
      LuaFnSetXinFaLevel(sceneId,selfId,44,120)
      LuaFnSetXinFaLevel(sceneId,selfId,45,120)
      LuaFnSetXinFaLevel(sceneId,selfId,46,120)
      LuaFnSetXinFaLevel(sceneId,selfId,47,120)
      LuaFnSetXinFaLevel(sceneId,selfId,48,120)
      LuaFnSetXinFaLevel(sceneId,selfId,62,120)
      LuaFnSetXinFaLevel(sceneId,selfId,79,120)
      LuaFnSendSpecificImpactToUnit(sceneId,selfId,selfId,selfId,148,0)
      --Thång c¤p
      SetLevel(sceneId,selfId,120)
      
      BeginEvent(sceneId)
         AddText(sceneId,"Chúc m×ng ngß½i ðã là ð® tØ Thiên S½n, nh§n thành công tâm pháp 120 môn phái ð°ng th¶i thång lên c¤p 120...")
      EndEvent(sceneId)
         
      DispatchEventList(sceneId,selfId,targetId )
   end
   --**
   if key == 7 then --Mµ Dung
      --Gia nh§p môn phái
      LuaFnJoinMenpai(sceneId,selfId, targetId, 9) --ID 9 là Mµ Dung
      --Tâm pháp
      LuaFnSetXinFaLevel(sceneId,selfId,64,120)
      LuaFnSetXinFaLevel(sceneId,selfId,65,120)
      LuaFnSetXinFaLevel(sceneId,selfId,66,120)
      LuaFnSetXinFaLevel(sceneId,selfId,67,120)
      LuaFnSetXinFaLevel(sceneId,selfId,68,120)
      LuaFnSetXinFaLevel(sceneId,selfId,69,120)
      LuaFnSetXinFaLevel(sceneId,selfId,70,120)
      LuaFnSetXinFaLevel(sceneId,selfId,71,120)
      LuaFnSendSpecificImpactToUnit(sceneId,selfId,selfId,selfId,148,0)
      --Thång c¤p
      SetLevel(sceneId,selfId,120)
      
      BeginEvent(sceneId)
         AddText(sceneId,"Chúc m×ng ngß½i ðã là ð® tØ Mµ Dung Gia, nh§n thành công tâm pháp 120 môn phái ð°ng th¶i thång lên c¤p 120...")
      EndEvent(sceneId)
         
      DispatchEventList(sceneId,selfId,targetId )
   end
   --**
   if key == 8 then --Nga My
      --Gia nh§p môn phái
      LuaFnJoinMenpai(sceneId,selfId, targetId, 4) --ID 4 là Nga My
      --Tâm pháp
      LuaFnSetXinFaLevel(sceneId,selfId,25,120)
      LuaFnSetXinFaLevel(sceneId,selfId,26,120)
      LuaFnSetXinFaLevel(sceneId,selfId,27,120)
      LuaFnSetXinFaLevel(sceneId,selfId,28,120)
      LuaFnSetXinFaLevel(sceneId,selfId,29,120)
      LuaFnSetXinFaLevel(sceneId,selfId,30,120)
      LuaFnSetXinFaLevel(sceneId,selfId,59,120)
      LuaFnSetXinFaLevel(sceneId,selfId,76,120)
      LuaFnSendSpecificImpactToUnit(sceneId,selfId,selfId,selfId,148,0)
      --Thång c¤p
      SetLevel(sceneId,selfId,120)
      
      BeginEvent(sceneId)
         AddText(sceneId,"Chúc m×ng ngß½i ðã là ð® tØ Nga My, nh§n thành công tâm pháp 120 môn phái ð°ng th¶i thång lên c¤p 120...")
      EndEvent(sceneId)
         
      DispatchEventList(sceneId,selfId,targetId )
   end
   --**
   if key == 9 then --Tiêu Dao
      --Gia nh§p môn phái
      LuaFnJoinMenpai(sceneId,selfId, targetId, 8) --ID 8 là Tiêu Dao
      --Tâm pháp
      LuaFnSetXinFaLevel(sceneId,selfId,49,120)
      LuaFnSetXinFaLevel(sceneId,selfId,50,120)
      LuaFnSetXinFaLevel(sceneId,selfId,51,120)
      LuaFnSetXinFaLevel(sceneId,selfId,52,120)
      LuaFnSetXinFaLevel(sceneId,selfId,53,120)
      LuaFnSetXinFaLevel(sceneId,selfId,54,120)
      LuaFnSetXinFaLevel(sceneId,selfId,63,120)
      LuaFnSetXinFaLevel(sceneId,selfId,80,120)
      LuaFnSendSpecificImpactToUnit(sceneId,selfId,selfId,selfId,148,0)
      --Thång c¤p
      SetLevel(sceneId,selfId,120)
      
      BeginEvent(sceneId)
         AddText(sceneId,"Chúc m×ng ngß½i ðã là ð® tØ Tiêu Dao, nh§n thành công tâm pháp 120 môn phái ð°ng th¶i thång lên c¤p 120...")
      EndEvent(sceneId)
         
      DispatchEventList(sceneId,selfId,targetId )
   end
   --**
   if key == 10 then --Tinh Túc
      --Gia nh§p môn phái
      LuaFnJoinMenpai(sceneId,selfId, targetId, 5) --ID 5 là Tinh Túc
      --Tâm pháp
      LuaFnSetXinFaLevel(sceneId,selfId,31,120)
      LuaFnSetXinFaLevel(sceneId,selfId,32,120)
      LuaFnSetXinFaLevel(sceneId,selfId,33,120)
      LuaFnSetXinFaLevel(sceneId,selfId,34,120)
      LuaFnSetXinFaLevel(sceneId,selfId,35,120)
      LuaFnSetXinFaLevel(sceneId,selfId,36,120)
      LuaFnSetXinFaLevel(sceneId,selfId,60,120)
      LuaFnSetXinFaLevel(sceneId,selfId,77,120)
      LuaFnSendSpecificImpactToUnit(sceneId,selfId,selfId,selfId,148,0)
      --Thång c¤p
      SetLevel(sceneId,selfId,120)
      
      BeginEvent(sceneId)
         AddText(sceneId,"Chúc m×ng ngß½i ðã là ð® tØ Tinh Túc, nh§n thành công tâm pháp 120 môn phái ð°ng th¶i thång lên c¤p 120...")
      EndEvent(sceneId)
         
      DispatchEventList(sceneId,selfId,targetId )
   end
   --**
   if key == 11 then --Võ Ðang
      --Gia nh§p môn phái
      LuaFnJoinMenpai(sceneId,selfId, targetId, 3) --ID 3 là Võ Ðang
      --Tâm pháp
      LuaFnSetXinFaLevel(sceneId,selfId,19,120)
      LuaFnSetXinFaLevel(sceneId,selfId,20,120)
      LuaFnSetXinFaLevel(sceneId,selfId,21,120)
      LuaFnSetXinFaLevel(sceneId,selfId,22,120)
      LuaFnSetXinFaLevel(sceneId,selfId,23,120)
      LuaFnSetXinFaLevel(sceneId,selfId,24,120)
      LuaFnSetXinFaLevel(sceneId,selfId,58,120)
      LuaFnSetXinFaLevel(sceneId,selfId,75,120)
      LuaFnSendSpecificImpactToUnit(sceneId,selfId,selfId,selfId,148,0)
      --Thång c¤p
      SetLevel(sceneId,selfId,120)
      
      BeginEvent(sceneId)
         AddText(sceneId,"Chúc m×ng ngß½i ðã là ð® tØ Võ Ðang, nh§n thành công tâm pháp 120 môn phái ð°ng th¶i thång lên c¤p 120...")
      EndEvent(sceneId)
         
      DispatchEventList(sceneId,selfId,targetId )
   end
   --**
   if key == 12 then --Thiên Long
      --Gia nh§p môn phái
      LuaFnJoinMenpai(sceneId,selfId, targetId, 6) --ID 6 là Thiên Long
      --Tâm pháp
      LuaFnSetXinFaLevel(sceneId,selfId,37,120)
      LuaFnSetXinFaLevel(sceneId,selfId,38,120)
      LuaFnSetXinFaLevel(sceneId,selfId,39,120)
      LuaFnSetXinFaLevel(sceneId,selfId,40,120)
      LuaFnSetXinFaLevel(sceneId,selfId,41,120)
      LuaFnSetXinFaLevel(sceneId,selfId,42,120)
      LuaFnSetXinFaLevel(sceneId,selfId,61,120)
      LuaFnSetXinFaLevel(sceneId,selfId,78,120)
      LuaFnSendSpecificImpactToUnit(sceneId,selfId,selfId,selfId,148,0)
      --Thång c¤p
      SetLevel(sceneId,selfId,120)
      
      BeginEvent(sceneId)
         AddText(sceneId,"Chúc m×ng ngß½i ðã là ð® tØ Thiên Long, nh§n thành công tâm pháp 120 môn phái ð°ng th¶i thång lên c¤p 120...")
      EndEvent(sceneId)
         
      DispatchEventList(sceneId,selfId,targetId )
   end
   --**
   if key == 2 then --Nh§n Yªu quyªt Mµ Dung Gia
      BeginAddItem(sceneId)
      AddItem(sceneId,30308099,1)--YQ 35 - Lñc Chí Ti«n Thích
      AddItem(sceneId,30308097,1)--YQ 45 - Phá Thiên ThÑc
      AddItem(sceneId,30308096,1)--YQ 65 - Hóa Khí ThÑc
      AddItem(sceneId,30308100,1)--YQ 80 - Lång Thiên ThÑc
      EndAddItem(sceneId,selfId)
      AddItemListToHuman(sceneId,selfId)
      
      BeginEvent(sceneId)
         AddText(sceneId,"Chúc m×ng các hÕ nh§n ðßþc 1 bµ yªu quyªt Mµ Dung Gia.")
         x002099_NotifyFailTips(sceneId, selfId, "Nh§n ðßþc 1 bµ yªu quyªt Mµ Dung Gia.")
      EndEvent(sceneId)
      
      DispatchEventList(sceneId,selfId,targetId)
   end
   
end

--Ghi lên tip
function x002098_NotifyFailTips( sceneId, selfId, Tip )

   BeginEvent( sceneId )
      AddText( sceneId, Tip )
   EndEvent( sceneId )
   DispatchMissionTips( sceneId, selfId )
   
end




.
Lưu ý chuyển mã VISCII để viết nhé

http://www.devgame.ga

Sponsored content


Back to top  Message [Page 1 of 1]

Permissions in this forum:
You cannot reply to topics in this forum