family2806
26-02-16, 01:58 PM
Hôm nay ngồi rảnh tự viết code tự động thông báo bảo trì (không biết đã có ai share chưa).
Cách làm của mình chưa chắc đã là tối ưu. Ai có cách tốt hơn thì góp ý nhé.
Cách làm như sau:
Bước 1: Tạo file lua chưa task thông báo.
IncludeLib("SETTING")
Include("\\script\\global\\volamht\\config.lua")
CONST_LEFT_TIME = 10
leftTime = 10
offTime = 5
function OnTimer()
if(GetTask(TASK_BAOTRI) ~= 1) then
StopTimer()
end
local strThongBao = "Server sÏ ®ãng ®Ó b¶o tr× trong vßng %d phót n÷a. Dù kiÕn thêi gian b¶o tr× lµ %d phót. §¹i hiÖp h·y bè trÝ thêi gian nghØ ng¬i hîp lý. Tr©n träng!"
local strBaoTri = "Server ®ãng ®Ó b¶o tr×. Dù kiÕn thêi gian b¶o tr× lµ %d phót. §¹i hiÖp h·y bè trÝ thêi gian nghØ ng¬i hîp lý. Tr©n träng!"
if leftTime > 0 then
Msg2SubWorld(format(strThongBao,leftTime,offTime))
leftTime = leftTime - 1
else
Msg2SubWorld(format(strBaoTri,offTime))
leftTime = CONST_LEFT_TIME
SetTask(TASK_BAOTRI,0)
-- Ở đây thực hiện kick nhân vật và đóng server.
StopTimer()
end
end
Bước 2: Khai báo task ở settings -> timertask.txt
VD:
61 \script\global\baotri.lua
Ở đây 61 là ID, còn \script\global\baotri.lua là đường dẫn file tạo ra ở bước 1.
Bước 3:
Thêm đoạn code sau vào chỗ nào bạn muốn thông báo bảo trì:
SetTask(TASK_BAOTRI,1)
SetTimer( 18 * 2, 61)
Vậy là xong. Có thể vào game test.
Cách làm của mình chưa chắc đã là tối ưu. Ai có cách tốt hơn thì góp ý nhé.
Cách làm như sau:
Bước 1: Tạo file lua chưa task thông báo.
IncludeLib("SETTING")
Include("\\script\\global\\volamht\\config.lua")
CONST_LEFT_TIME = 10
leftTime = 10
offTime = 5
function OnTimer()
if(GetTask(TASK_BAOTRI) ~= 1) then
StopTimer()
end
local strThongBao = "Server sÏ ®ãng ®Ó b¶o tr× trong vßng %d phót n÷a. Dù kiÕn thêi gian b¶o tr× lµ %d phót. §¹i hiÖp h·y bè trÝ thêi gian nghØ ng¬i hîp lý. Tr©n träng!"
local strBaoTri = "Server ®ãng ®Ó b¶o tr×. Dù kiÕn thêi gian b¶o tr× lµ %d phót. §¹i hiÖp h·y bè trÝ thêi gian nghØ ng¬i hîp lý. Tr©n träng!"
if leftTime > 0 then
Msg2SubWorld(format(strThongBao,leftTime,offTime))
leftTime = leftTime - 1
else
Msg2SubWorld(format(strBaoTri,offTime))
leftTime = CONST_LEFT_TIME
SetTask(TASK_BAOTRI,0)
-- Ở đây thực hiện kick nhân vật và đóng server.
StopTimer()
end
end
Bước 2: Khai báo task ở settings -> timertask.txt
VD:
61 \script\global\baotri.lua
Ở đây 61 là ID, còn \script\global\baotri.lua là đường dẫn file tạo ra ở bước 1.
Bước 3:
Thêm đoạn code sau vào chỗ nào bạn muốn thông báo bảo trì:
SetTask(TASK_BAOTRI,1)
SetTimer( 18 * 2, 61)
Vậy là xong. Có thể vào game test.