PDA

View Full Version : [KT] [HELP] Khai Báo Task Thời Gian Hoạt Động Event Trong Game



anhnhianh
06-05-14, 09:41 PM
tình hình là e khai task như vầy

Gamecenter\setting\scripttable.txt

LuaTrai Goi Lua Trai

gameserver\setting\scheduletask\tasklist.txt (đồng bộ cả GS và GC)

[Task_117]
TaskName=GoiLuaTrai
ScriptGroup=LuaTrai
ScriptFun=AddLua
TaskTime_01=1200
TaskTime_02=2000

[Task_118]
TaskName=XoaLuaTrai
ScriptGroup=LuaTrai
ScriptFun=XoaLua
TaskTime_01=1230
TaskTime_02=2030


đây là file logic của event nó


if not MODULE_GAMESERVER then
return;
end
function LuaTrai:AddLua_GS()
local nMapIndex = SubWorldID2Idx(1);
if nMapIndex < 0 then
return;
end
GlobalExcute({"Dialog:GlobalNewsMsg_GS","<color=yellow>Lửa Trại bắt đầu tại <pos=1,1385,3075> . Mọi người mau tới nhận kinh nghiệm nào<color>"});
KDialog.NewsMsg(1, Env.NEWSMSG_COUNT,"<color=yellow><color=yellow>Lửa Trại bắt đầu tại <pos=1,1385,3075> . Mọi người mau tới nhận kinh nghiệm nào<color>");
KDialog.MsgToGlobal("<color=yellow><color=yellow>Lửa Trại bắt đầu tại <pos=1,1385,3075> . Mọi người mau tới nhận kinh nghiệm nào<color>");
KNpc.Add2(20502, 1, 0, 1, 1370, 3082)
end
function LuaTrai:XoaLua_GS()
local nMapIndex = SubWorldID2Idx(1);
if nMapIndex < 0 then
return;
end
GlobalExcute({"Dialog:GlobalNewsMsg_GS","<color=yellow>Lửa Trại đã kết thúc mai tới tiếp nhé<color>"});
KDialog.NewsMsg(1, Env.NEWSMSG_COUNT,"<color=yellow>Lửa Trại đã kết thúc mai tới tiếp nhé<color>");
KDialog.MsgToGlobal("<color=yellow>Lửa Trại đã kết thúc mai tới tiếp nhé<color>");
ClearMapNpcWithName(1, "Lửa trại");
end

e đã làm như thế nhưng vào game tới giờ thì nó ko ra :(( PRO nào giúp với cảm ơn pro ấy nhiều :((

satthupro95
06-05-14, 09:44 PM
thiếu file logic bên script GameCenter, ví dụ:


if not MODULE_GC_SERVER then
return;
end

function LuaTrai:AddLua()
GlobalExcute{"LuaTrai:AddLua_GS"};
end
function LuaTrai:XoaLua()
GlobalExcute{"LuaTrai:XoaLua _GS"};
end

anhnhianh
06-05-14, 09:50 PM
thiếu file logic bên script GameCenter, ví dụ:

tks pro nhá. e không nghĩ phải tạo 1 script bên GC nữa :D

__Jie__
06-05-14, 10:19 PM
tks pro nhá. e không nghĩ phải tạo 1 script bên GC nữa :D
Nguyên lý hoạt động. Khi đến h của sự kiện gửi từ gamecenter 1 lệnh xuống script ở gameserver

anhnhianh
07-05-14, 11:36 AM
e cũng đã thử tạo 1 script logic bên gc code trong script giống như satthupro nhưng vào game thì lại ko ra theo giờ như mong muốn. Mong các pro hướng dẫn thêm tí nữa :(

__Jie__
07-05-14, 12:38 PM
Cứ theo nguyên lý mà khai báo là được Xem demo bên dưới


Hãy viết tên miền đầy đủ của clbgamesvn ? (gợi ý câu trả lời: <b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Trích dẫn

Thấy mấy bạn bên Hỏi Đáp đang thắc mắc cái này mình hướng dẫn lun cho các bạn ^^
Cái này là do ngâm cứu được cái code Quả Huy Hoàng của mod trantoai
Mình hướng dẫn mọi người test với boss Hỏa Kỳ Lân
B1 : tạo 1 file tên là goihoakylan_xuathien.lua nội dung file tương tự thế này :


if not MODULE_GAMESERVER then
return;
end
function GoiBossHKL:AddHoaKyLan_GS()
local nMapIndex = SubWorldID2Idx(132); -- Check map 132 (Tàn tích Cung A Phòng có được mở hay không ? )
if nMapIndex < 0 then
return;
end

GlobalExcute({"Dialog:GlobalNewsMsg_GS","<color=ye llow><color=pink>Hỏa Kỳ Lân<color> xuất hiện tại Tàn Tích Cung A Phòng !<color>"}); -- Thông Báo
KDialog.NewsMsg(1, Env.NEWSMSG_COUNT,"<color=yellow><color=pink>Hỏa Kỳ Lân<<color> xuất hiện tại Tàn Tích Cung A Phòng !<color><color>"); -- Thông Báo
KDialog.MsgToGlobal("<color=yellow><color=pink>H�� �a Kỳ Lân<<color> xuất hiện tại Tàn Tích Cung A Phòng !<color>"); -- Thông Báo

KNpc.Add2(20005, 1, 0, 132, 1963, 3311) -- Gọi Boss Hỏa Kỳ Lân map 132 (Tàn Tích A Phòng) (1963,3311 các bạn vào game ấn phím Ctrl+1 nó sẽ hiện ra tọa độ các bạn đang đứng)
end


B2: vào gameserver\setting và gamecenter\setting mở file scripttable.txt lên Cột 1 điền là GoiBossHKL giống ở trên kia , cột thứ 2 là chú thích thôi

B3: vào gameserver\setting\scheduletask và gamecenter\setting\scheduletask mở file tasklist.ini thêm 1 dòng task tiếp theo (Ví dụ dòng cuối của bạn là Task59 thì khai báo thêm cái nữa là Task60) như thế này :
[Task_60]
TaskName=Hoat Dong HKL
ScriptGroup=GoiBossHKL -- GoiBossHKL như ở trên
ScriptFun=AddHoaKyLan -- AddHoaKyLan như ở trên
TaskTime_01=2030 -- Thời gian thi triển dòng lệnh function GoiBossHKL:AddHoaKyLan_GS() trong file goihoakylan_xuathien.lua


B4: vào gamecenter\script tạo 1 file goihoakylan_gc.lua nội dung dạng :
if not MODULE_GC_SERVER then
return;
end
function GoiBossHKL:AddHoaKyLan()
GlobalExcute{"GoiBossHKL:AddHoaKyLan_GS"};
end

anhnhianh
07-05-14, 01:33 PM
e làm y chang a hướng dẫn nhưng tới giờ vẫn ko hiện ko biết task có giới hạn task_.... gì ko. làm đủ mọi cách nhưng vẫn ko ra
Cũng Tks vì pro nhiệt tình giúp đỡ:x

__Jie__
07-05-14, 03:46 PM
e làm y chang a hướng dẫn nhưng tới giờ vẫn ko hiện ko biết task có giới hạn task_.... gì ko. làm đủ mọi cách nhưng vẫn ko ra
Cũng Tks vì pro nhiệt tình giúp đỡ:x
Chắc sai ở đâu đó kiểm tra kỷ lại biết đâu lại fix được

ookurooo
07-05-14, 11:10 PM
cái TaskTime tính sao vậy các bạn????????
2030 có phải là 20h30 ko

satthupro95
07-05-14, 11:14 PM
thử thỉ biết . Chuẩn rồi đấy. Làm private cái gì nghi ngờ là thử k phải xoắn, lỗi undo là xong :))

ookurooo
08-05-14, 02:23 PM
sao làm hoài vẫn chưa ra nhỉ, còn vướng mỗi chỗ này thôi