[JX2] Các event chưa được kích hoạt trong v2017

Em mới tìm thấy cái này nhưng e làm nó hiển thị ra nhưng k làm thành phẩm đc

+ Nếu ai chơi bên game chính thống thì đã biết mỗi tháng NPH đều mở một event cho bạn tham gia để nhanh lên cấp và có những vật phẩm cần thiết để hỗ trợ cho bạn
+ Event thường được sử dụng tại cẩm nang đại sự kiện, sau khi mở xong event thì vào cẩm nang đại sự kiện tham gia nhé (Nếu vật phẩm này xóa đi đăng nhập lại sẽ có)
+ Để mở 1 event cần thao tác 3 bước

- Bước 1: Làm cho event xuất hiện tại cẩm nang đại sự kiện: (làm một lần duy nhất cho tất cả các sự kiện, không cần sửa nhiều lần)
> Các bạn vào gs/script/online/viet_event/event_notify_pouch.lua tìm đến hàm có chữ /EventMenu thay đổi lại ngày tháng xuất hiên, tên hiển thị
ex: dòng event Event chính võ lâm 2 sẽ xuất hiện từ ngày 07/11/2014 đến 30/11/2034


if nDate >= 20141107 and nDate <= 20341130 then
tinsert(tbSayDialog, "Event ChÝnh Vâ L©m 2/EventMenu")
end

You must be registered for see images

- Bước 2: Chọn sự kiện và kích hoạt cho bạn có thể sử dụng vật phẩm được (Bạn có thể làm một lần duy nhất nếu chỉ chơi off)
> Các bạn vào /gs/script/online_activites/ini/VnOnlineMain.ini tìm 1 event mà bạn thích, nhớ số ID của nó và sửa lại TaskGroup của nó thành 7,10 (tTaskGroup=7,10)
> tại id này các bạn có thể xem id của các vật phẩm cần để tham gia event, ghi lại và cho nó xuất hiện tại một map nào đó (đã có nhiều bài viết về đánh quái rơi ra vật phẩm, các bạn xem và tích hợp vật phẩm vào để cho thú vị) mặc định rơi ra vật phẩm khi tham gia phó bản.
> Tóm lại bước 2 là sửa tTaskGroup=7,10 nếu tất cả các event đều để sẵn 7,10 thì khi gọi vật phẩm ra là sử dụng được dù event có được mở hay không

You must be registered for see images

- Bước 3: Chọn ngày để event xuất hiện
> Các bạn vào gs/script/online_activites/online_activites.txt tìm đến dòng có id đã nhớ ở bước 2
> Ví dụ trên mình chọn event Nhà giáo việt nam, id = 138
> Sửa lại ngày xuất hiện. ví dụ ngày bắt đầu 0h ngày 07/11/2014, ngày kết thúc 0h ngày 01/12/2024


138 1 \script\online_activites\head\init.lua ServerStartUp PlayerLogin 2014110700 2024120100 Ho¹t ®éng Nhµ Gi¸o ViÖt Nam

You must be registered for see images

> Chú ý bước 3 chỉ nên mở 1 sự kiện duy nhất thôi nhé

+ Xong bước 3 là vào game có thể tham gia được event rồi

You must be registered for see images

> Tuy nhiên nếu muốn hoàn thiện tìm đến gs/settings/item/other.txt sau đó tìm tên vật phẩm event và sửa lại ngày tháng hết hạn sử dụng (chỉ là tên hiển thị cho trùng khớp với event, không sửa lại vẫn sử dụng bình thường vì bước 2 đã làm cho nó sử dụng được rồi)

You must be registered for see images

> Khi đổi vật phẩm báo không đổi được là do sai id vật phẩm, nên xem kỷ lại bước Fix v1 hoặc thư mục chứa event để biết chính xác công thức đổi

File event ngày nhà giáo VN : Tải về

Dự phòng : Tải về

---------------------------------------------------------------------------

Fix v1: Sửa lỗi không cho đổi vật phẩm event

- Sorry có 1 lỗi nhỏ phát sinh là: nó không tự nhận nguyên liệu mới, công thức mới cho bạn đổi event. Nên khi bạn mở event nào thì bạn phải set lại nguyên liệu (set thủ công) cho phù hợp với sự kiện bạn đang mở. Mặc định nó chỉ cho đổi Tranh thư pháp do bạn set TaskGroup ở trên
- Để sửa lại công thức bạn vào file gs/script/online_activites/head/activity_normal_head.lua tìm đến dòng function VNG_DoiEvent_Kieu1(nCount)

> ex: sửa event Nhà Giáo VN 138 thành event Tháng 1 năm 2014 107

> trước khi đổi:


function VNG_DoiEvent_Kieu1(nCount)
local tbCheckCase = {
[1] = {6500},
[2] = {3500},
[3] = {0},
}
if gf_Judge_Room_Weight(3, 100, "") ~= 1 then
Talk(1,"","Hµnh trang hoÆc søc lùc kh«ng ®ñ, vui lßng s¾p xÕp l¹i.")
return 0;
end
if GetItemCount(2,1,30741) < (6 * nCount ) or GetItemCount(2,1,30742) < (6 * nCount ) or GetItemCount(2,1,30603) < (2 * nCount) then
Talk(1, "", "B¹n kh«ng ®ñ ®iÒu kiÖn ®æi.");
return 0;
end
local nTem = 0
local tbAwardRate = {[1] = 0, [2] = 0, [3] = 0,}
for i=1,nCount do
local nIndex = get_random_event_ittem(tbCheckCase, 10000)
-- local nIndex = mod(random(1,1000),2) + 1
tbAwardRate[nIndex] = tbAwardRate[nIndex] + 1
end

if DelItem(2,1,30741 , 6 * nCount) == 1 and DelItem(2,1,30742 , 6 * nCount) == 1 and DelItem(2,1,30603, 2 * nCount) == 1 then
if tbAwardRate[1] > 0 then
gf_AddItemEx2({2,1,30743, tbAwardRate[1]}, "Tranh Th* Ph¸p", EVENT_LOG_TITLE , "nhËn")
end
if tbAwardRate[2] > 0 then
gf_AddItemEx2({2,1,30744, tbAwardRate[2]}, "Tranh Th* Ph¸p §Æc BiÖt", EVENT_LOG_TITLE , "nhËn")
end
-- if tbAwardRate[3] > 0 then
-- gf_AddItemEx2({2, 1, 30709, tbAwardRate[3]}, "ChÌ H¹t Sen", EVENT_LOG_TITLE , "nhËn")
-- end

> sau khi đổi:


function VNG_DoiEvent_Kieu1(nCount)
local tbCheckCase = {
[1] = {6500},
[2] = {3500},
[3] = {0},
}
if gf_Judge_Room_Weight(3, 100, "") ~= 1 then
Talk(1,"","Hµnh trang hoÆc søc lùc kh«ng ®ñ, vui lßng s¾p xÕp l¹i.")
return 0;
end
if GetItemCount(2,1,30619) < (6 * nCount ) or GetItemCount(2,1,30620) < (6 * nCount ) or GetItemCount(2,1,30603) < (2 * nCount) then
Talk(1, "", "B¹n kh«ng ®ñ ®iÒu kiÖn ®æi.");
return 0;
end
local nTem = 0
local tbAwardRate = {[1] = 0, [2] = 0, [3] = 0,}
for i=1,nCount do
local nIndex = get_random_event_ittem(tbCheckCase, 10000)
-- local nIndex = mod(random(1,1000),2) + 1
tbAwardRate[nIndex] = tbAwardRate[nIndex] + 1
end

if DelItem(2,1,30619 , 6 * nCount) == 1 and DelItem(2,1,30620 , 6 * nCount) == 1 and DelItem(2,1,30603, 2 * nCount) == 1 then
if tbAwardRate[1] > 0 then
gf_AddItemEx2({2,1,30621, tbAwardRate[1]}, "B¸nh Ch*ng", EVENT_LOG_TITLE , "nhËn")
end
if tbAwardRate[2] > 0 then
gf_AddItemEx2({2,1,30622, tbAwardRate[2]}, "B¸nh TÐt", EVENT_LOG_TITLE , "nhËn")
end
-- if tbAwardRate[3] > 0 then
-- gf_AddItemEx2({2, 1, 30709, tbAwardRate[3]}, "ChÌ H¹t Sen", EVENT_LOG_TITLE , "nhËn")
-- end

You must be registered for see images

---------------------------------------------------------------------------

Fix v2: Final fix

Sau khi các bạn đọc fix v2 này thì xem như hoàn thành 100% mở event rồi nhé

> Một ví dụ về event có 3 vật phẩm cần đổi (ở trên chỉ có 2) Event 85 Lễ quốc tế lao động tháng 4
> Vào file tương tự fix v1: gs/script/online_activites/head/activity_normal_head.lua và sửa lại như sau


function VNG_DoiEvent_Kieu1(nCount)
local tbCheckCase = {
[1] = {5000},
[2] = {3000},
[3] = {2000},
}
if gf_Judge_Room_Weight(3, 100, "") ~= 1 then
Talk(1,"","Hµnh trang hoÆc søc lùc kh«ng ®ñ, vui lßng s¾p xÕp l¹i.")
return 0;
end
if GetItemCount(2,1,30500) < (5 * nCount ) or GetItemCount(2,1,30230) < (2 * nCount) then
Talk(1, "", "B¹n kh«ng ®ñ ®iÒu kiÖn ®æi.");
return 0;
end
local nTem = 0
local tbAwardRate = {[1] = 0, [2] = 0, [3] = 0,}
for i=1,nCount do
local nIndex = get_random_event_ittem(tbCheckCase, 10000)
-- local nIndex = mod(random(1,1000),2) + 1
tbAwardRate[nIndex] = tbAwardRate[nIndex] + 1
end

if DelItem(2,1,30500 , 5 * nCount) == 1 and DelItem(2,1,30230, 2 * nCount) == 1 then
if tbAwardRate[1] > 0 then
gf_AddItemEx2({2,1,30502, tbAwardRate[1]}, ",Hu©n Ch*¬ng JXII", EVENT_LOG_TITLE , "nhËn")
end
if tbAwardRate[2] > 0 then
gf_AddItemEx2({2,1,30503, tbAwardRate[2]}, "B»ng Khen JXII", EVENT_LOG_TITLE , "nhËn")
end
if tbAwardRate[3] > 0 then
gf_AddItemEx2({2, 1, 30504, tbAwardRate[3]}, "Ên L·nh Thæ", EVENT_LOG_TITLE , "nhËn")
end


> trong đó tbCheckCase có 3 dòng tỷ lệ đổi của 3 vật phẩm sao cho 3 cái cộng lại 10000 là được và các dòng if tbAwardRate[3] cũng được bật lên để nhận loại 3

> Nếu bạn nào làm biếng thay đổi event, chỉ muốn dùng 1 loại, dùng max sau đó muốn dùng nữa thì mình cũng đã tìm ra được cách reset event. Các bạn tích hợp vào thẻ GM Item nhé (chỉ nhập các số có trong event từ 72 đến 138, nếu đúng trả về Xóa thành công)

Phần thư viện

Include("\\script\\online_activites\\award.lua")

Phần Menu

format("%s/NhapSo", "Reset Event"),

Phần function

----------------------------------------------------------------
function NhapSo()
AskClientForNumber("ResetEvent", 72, 138, "NhËp sè ID Event (72-138)")

end
function ResetEvent(nCount)
if gf_CheckEventDateEx(nCount) ~= 1 then
Talk(1, "", "Event ch*a kÝch ho¹t");
return 0;
end
local tb = TaskManager:Create(7,10)
local nNum;
for nNum = 1, 10 do
tb:SetTask(nNum, 0);
end
Talk(1, "", "Xãa Event thµnh c«ng ");
end
----------------------------------------------------------------



You must be registered for see images

Sau khi xóa xong

You must be registered for see images

File Event Quốc tế lao động tháng 4 tích hợp reset event trong thẻ GM Item : Tải về

Dự phòng : Tải về
 
Em mới tìm thấy cái này nhưng e làm nó hiển thị ra nhưng k làm thành phẩm đc

+ Nếu ai chơi bên game chính thống thì đã biết mỗi tháng NPH đều mở một event cho bạn tham gia để nhanh lên cấp và có những vật phẩm cần thiết để hỗ trợ cho bạn
+ Event thường được sử dụng tại cẩm nang đại sự kiện, sau khi mở xong event thì vào cẩm nang đại sự kiện tham gia nhé (Nếu vật phẩm này xóa đi đăng nhập lại sẽ có)
+ Để mở 1 event cần thao tác 3 bước

- Bước 1: Làm cho event xuất hiện tại cẩm nang đại sự kiện: (làm một lần duy nhất cho tất cả các sự kiện, không cần sửa nhiều lần)
> Các bạn vào gs/script/online/viet_event/event_notify_pouch.lua tìm đến hàm có chữ /EventMenu thay đổi lại ngày tháng xuất hiên, tên hiển thị
ex: dòng event Event chính võ lâm 2 sẽ xuất hiện từ ngày 07/11/2014 đến 30/11/2034


if nDate >= 20141107 and nDate <= 20341130 then
tinsert(tbSayDialog, "Event ChÝnh Vâ L©m 2/EventMenu")
end

You must be registered for see images

- Bước 2: Chọn sự kiện và kích hoạt cho bạn có thể sử dụng vật phẩm được (Bạn có thể làm một lần duy nhất nếu chỉ chơi off)
> Các bạn vào /gs/script/online_activites/ini/VnOnlineMain.ini tìm 1 event mà bạn thích, nhớ số ID của nó và sửa lại TaskGroup của nó thành 7,10 (tTaskGroup=7,10)
> tại id này các bạn có thể xem id của các vật phẩm cần để tham gia event, ghi lại và cho nó xuất hiện tại một map nào đó (đã có nhiều bài viết về đánh quái rơi ra vật phẩm, các bạn xem và tích hợp vật phẩm vào để cho thú vị) mặc định rơi ra vật phẩm khi tham gia phó bản.
> Tóm lại bước 2 là sửa tTaskGroup=7,10 nếu tất cả các event đều để sẵn 7,10 thì khi gọi vật phẩm ra là sử dụng được dù event có được mở hay không

You must be registered for see images

- Bước 3: Chọn ngày để event xuất hiện
> Các bạn vào gs/script/online_activites/online_activites.txt tìm đến dòng có id đã nhớ ở bước 2
> Ví dụ trên mình chọn event Nhà giáo việt nam, id = 138
> Sửa lại ngày xuất hiện. ví dụ ngày bắt đầu 0h ngày 07/11/2014, ngày kết thúc 0h ngày 01/12/2024


138 1 \script\online_activites\head\init.lua ServerStartUp PlayerLogin 2014110700 2024120100 Ho¹t ®éng Nhµ Gi¸o ViÖt Nam

You must be registered for see images

> Chú ý bước 3 chỉ nên mở 1 sự kiện duy nhất thôi nhé

+ Xong bước 3 là vào game có thể tham gia được event rồi

You must be registered for see images

> Tuy nhiên nếu muốn hoàn thiện tìm đến gs/settings/item/other.txt sau đó tìm tên vật phẩm event và sửa lại ngày tháng hết hạn sử dụng (chỉ là tên hiển thị cho trùng khớp với event, không sửa lại vẫn sử dụng bình thường vì bước 2 đã làm cho nó sử dụng được rồi)

You must be registered for see images

> Khi đổi vật phẩm báo không đổi được là do sai id vật phẩm, nên xem kỷ lại bước Fix v1 hoặc thư mục chứa event để biết chính xác công thức đổi

File event ngày nhà giáo VN : Tải về

Dự phòng : Tải về

---------------------------------------------------------------------------

Fix v1: Sửa lỗi không cho đổi vật phẩm event

- Sorry có 1 lỗi nhỏ phát sinh là: nó không tự nhận nguyên liệu mới, công thức mới cho bạn đổi event. Nên khi bạn mở event nào thì bạn phải set lại nguyên liệu (set thủ công) cho phù hợp với sự kiện bạn đang mở. Mặc định nó chỉ cho đổi Tranh thư pháp do bạn set TaskGroup ở trên
- Để sửa lại công thức bạn vào file gs/script/online_activites/head/activity_normal_head.lua tìm đến dòng function VNG_DoiEvent_Kieu1(nCount)

> ex: sửa event Nhà Giáo VN 138 thành event Tháng 1 năm 2014 107

> trước khi đổi:


function VNG_DoiEvent_Kieu1(nCount)
local tbCheckCase = {
[1] = {6500},
[2] = {3500},
[3] = {0},
}
if gf_Judge_Room_Weight(3, 100, "") ~= 1 then
Talk(1,"","Hµnh trang hoÆc søc lùc kh«ng ®ñ, vui lßng s¾p xÕp l¹i.")
return 0;
end
if GetItemCount(2,1,30741) < (6 * nCount ) or GetItemCount(2,1,30742) < (6 * nCount ) or GetItemCount(2,1,30603) < (2 * nCount) then
Talk(1, "", "B¹n kh«ng ®ñ ®iÒu kiÖn ®æi.");
return 0;
end
local nTem = 0
local tbAwardRate = {[1] = 0, [2] = 0, [3] = 0,}
for i=1,nCount do
local nIndex = get_random_event_ittem(tbCheckCase, 10000)
-- local nIndex = mod(random(1,1000),2) + 1
tbAwardRate[nIndex] = tbAwardRate[nIndex] + 1
end

if DelItem(2,1,30741 , 6 * nCount) == 1 and DelItem(2,1,30742 , 6 * nCount) == 1 and DelItem(2,1,30603, 2 * nCount) == 1 then
if tbAwardRate[1] > 0 then
gf_AddItemEx2({2,1,30743, tbAwardRate[1]}, "Tranh Th* Ph¸p", EVENT_LOG_TITLE , "nhËn")
end
if tbAwardRate[2] > 0 then
gf_AddItemEx2({2,1,30744, tbAwardRate[2]}, "Tranh Th* Ph¸p §Æc BiÖt", EVENT_LOG_TITLE , "nhËn")
end
-- if tbAwardRate[3] > 0 then
-- gf_AddItemEx2({2, 1, 30709, tbAwardRate[3]}, "ChÌ H¹t Sen", EVENT_LOG_TITLE , "nhËn")
-- end

> sau khi đổi:


function VNG_DoiEvent_Kieu1(nCount)
local tbCheckCase = {
[1] = {6500},
[2] = {3500},
[3] = {0},
}
if gf_Judge_Room_Weight(3, 100, "") ~= 1 then
Talk(1,"","Hµnh trang hoÆc søc lùc kh«ng ®ñ, vui lßng s¾p xÕp l¹i.")
return 0;
end
if GetItemCount(2,1,30619) < (6 * nCount ) or GetItemCount(2,1,30620) < (6 * nCount ) or GetItemCount(2,1,30603) < (2 * nCount) then
Talk(1, "", "B¹n kh«ng ®ñ ®iÒu kiÖn ®æi.");
return 0;
end
local nTem = 0
local tbAwardRate = {[1] = 0, [2] = 0, [3] = 0,}
for i=1,nCount do
local nIndex = get_random_event_ittem(tbCheckCase, 10000)
-- local nIndex = mod(random(1,1000),2) + 1
tbAwardRate[nIndex] = tbAwardRate[nIndex] + 1
end

if DelItem(2,1,30619 , 6 * nCount) == 1 and DelItem(2,1,30620 , 6 * nCount) == 1 and DelItem(2,1,30603, 2 * nCount) == 1 then
if tbAwardRate[1] > 0 then
gf_AddItemEx2({2,1,30621, tbAwardRate[1]}, "B¸nh Ch*ng", EVENT_LOG_TITLE , "nhËn")
end
if tbAwardRate[2] > 0 then
gf_AddItemEx2({2,1,30622, tbAwardRate[2]}, "B¸nh TÐt", EVENT_LOG_TITLE , "nhËn")
end
-- if tbAwardRate[3] > 0 then
-- gf_AddItemEx2({2, 1, 30709, tbAwardRate[3]}, "ChÌ H¹t Sen", EVENT_LOG_TITLE , "nhËn")
-- end

You must be registered for see images

---------------------------------------------------------------------------

Fix v2: Final fix

Sau khi các bạn đọc fix v2 này thì xem như hoàn thành 100% mở event rồi nhé

> Một ví dụ về event có 3 vật phẩm cần đổi (ở trên chỉ có 2) Event 85 Lễ quốc tế lao động tháng 4
> Vào file tương tự fix v1: gs/script/online_activites/head/activity_normal_head.lua và sửa lại như sau


function VNG_DoiEvent_Kieu1(nCount)
local tbCheckCase = {
[1] = {5000},
[2] = {3000},
[3] = {2000},
}
if gf_Judge_Room_Weight(3, 100, "") ~= 1 then
Talk(1,"","Hµnh trang hoÆc søc lùc kh«ng ®ñ, vui lßng s¾p xÕp l¹i.")
return 0;
end
if GetItemCount(2,1,30500) < (5 * nCount ) or GetItemCount(2,1,30230) < (2 * nCount) then
Talk(1, "", "B¹n kh«ng ®ñ ®iÒu kiÖn ®æi.");
return 0;
end
local nTem = 0
local tbAwardRate = {[1] = 0, [2] = 0, [3] = 0,}
for i=1,nCount do
local nIndex = get_random_event_ittem(tbCheckCase, 10000)
-- local nIndex = mod(random(1,1000),2) + 1
tbAwardRate[nIndex] = tbAwardRate[nIndex] + 1
end

if DelItem(2,1,30500 , 5 * nCount) == 1 and DelItem(2,1,30230, 2 * nCount) == 1 then
if tbAwardRate[1] > 0 then
gf_AddItemEx2({2,1,30502, tbAwardRate[1]}, ",Hu©n Ch*¬ng JXII", EVENT_LOG_TITLE , "nhËn")
end
if tbAwardRate[2] > 0 then
gf_AddItemEx2({2,1,30503, tbAwardRate[2]}, "B»ng Khen JXII", EVENT_LOG_TITLE , "nhËn")
end
if tbAwardRate[3] > 0 then
gf_AddItemEx2({2, 1, 30504, tbAwardRate[3]}, "Ên L·nh Thæ", EVENT_LOG_TITLE , "nhËn")
end


> trong đó tbCheckCase có 3 dòng tỷ lệ đổi của 3 vật phẩm sao cho 3 cái cộng lại 10000 là được và các dòng if tbAwardRate[3] cũng được bật lên để nhận loại 3

> Nếu bạn nào làm biếng thay đổi event, chỉ muốn dùng 1 loại, dùng max sau đó muốn dùng nữa thì mình cũng đã tìm ra được cách reset event. Các bạn tích hợp vào thẻ GM Item nhé (chỉ nhập các số có trong event từ 72 đến 138, nếu đúng trả về Xóa thành công)

Phần thư viện

Include("\\script\\online_activites\\award.lua")

Phần Menu

format("%s/NhapSo", "Reset Event"),

Phần function

----------------------------------------------------------------
function NhapSo()
AskClientForNumber("ResetEvent", 72, 138, "NhËp sè ID Event (72-138)")

end
function ResetEvent(nCount)
if gf_CheckEventDateEx(nCount) ~= 1 then
Talk(1, "", "Event ch*a kÝch ho¹t");
return 0;
end
local tb = TaskManager:Create(7,10)
local nNum;
for nNum = 1, 10 do
tb:SetTask(nNum, 0);
end
Talk(1, "", "Xãa Event thµnh c«ng ");
end
----------------------------------------------------------------



You must be registered for see images

Sau khi xóa xong

You must be registered for see images

File Event Quốc tế lao động tháng 4 tích hợp reset event trong thẻ GM Item : Tải về

Dự phòng : Tải về
Bác chỉnh tTaskGroup=7,10 thành tTaskGroup=7,14 là dùng hoạt động nha
 
Cái main kia phần âm thanh chắc lúc xóa file mạnh tay quá nên đi nhầm, mấy sê vơ cùng một gốc đó bị đồng loạt luôn hài thật =))
 
làm mãi ko ra đc cái evernt tết, id 80 đó các bác.ghép đc nguyên vật phẩm kích vô vẫn báo hết hạn.bác nào làm đc hoàn chỉnh trên sever 2017 kia share với.
 
Trong lúc chờ có bản share chính thức KDYV, mình share phó bản kiếm đãng(tự dev) cho ae
link https://drive.google.com/file/d/1MfEzarKCzRFGkeOa0G8d-VTIF1vPTTgg/view?usp=drive_link
1. extract và copy vào static_script/missions
2. thêm dòng vào file settings/timer_task.txt
121 \settings\static_script\missions\kiemdangyenvan\mission.lua
3. thêm dòng vào file settings/task/missions.txt
86 \script\missions\jiandangyanyun\mission.lua
4. gọi hàm enter trong file \\settings\\static_script\\missions\\kiemdangyenvan\\entrynpc.lua
mình gọi trong GMitem, các bạn có thể sửa thành npc Hoa Thánh lạc phi ở thành đô
4.1 Include ở dòng 1
Include("\\settings\\static_script\\missions\\kiemdangyenvan\\entrynpc.lua")
Include("\\settings\\static_script\\missions\\kiemdangyenvan\\mission.lua")
4.2 thêm hàm
function KDYV()
enter(1);
end
4.3 gọi hàm KDYV

Vì là tự dev base theo ải thông thiên nên còn nhiều lỗi như lời thoại npc, skill npc, mng thông cảm nhé.
Lưu ý: Lập tổ để vào ải (đi 1 mình cũng được), nếu ko tổ đội thì ko đối thoại npc mở ải được
1 số lưu ý cho các bạn nào muốn sửa lại ải:
- dòng define các ải
firePhases.phases = {stageFight0,stageFight1,stageFight1_2,stageFight2,stageFight2_3,stageFight3,stageFight3_4,stageFight4,stageFight4_5,stageFight5,stageFight5_6,stageFight6,stageFight6_7};
- mỗi stage sẽ có action và cycaction, action là hành động chỉ thực hiện 1 lần duy nhất trong ải(ví dụ như tạo boss chính), key là thời gian thực hiện, value là hàm thực hiên.
Cycaction là các hành động được lặp lại sau 1 khoảng thời gian, như boss dùng skill, tạo quái con...Key là khoảng thời gian giữa mỗi lần thực hiện, value là hàm thực hiên.
- Ngoài ra mỗi stage đều có các hàm cơ bản như OnTimeOut(được call khi thanh thời gian về 0), OnNpcDeath(được call khi có npc chết, như boss chính, npc, quái con...), Onfailed(call khi vượt ải thất bại), OnPlayerDeath(khi có người chơi chết)
- Việc qua ải sẽ được tính khi hàm ttd_passStage hoặc Onfinish được call (ttd_passStage đã bao gồm Onfinish)
- Về skill của boss:
Như đã nói ở trên, được dùng trong cycaction, Key là khoảng thời gian giữa mỗi lần thực hiện, value là hàm thực hiên.
Hàm ra skill cho boss:
NpcCommand(nNpcIDX, NPCCOMMAND.do_skill,x1*32,y1*32,65536*2+SkillId);
nNpcIDX là npc, x1,y1 là tọa độ để npc target skill, SkillId lấy trong file settings/skills.txt
 
Bên trên