PDA

View Full Version : [KT] Lỗi tiên thảo lộ x2 exp, nhờ các bạn giúp



benben
23-05-14, 07:15 AM
mình dùng item Tiên Thảo Lộ của bạn na.ilusm89 (<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>) , đã khai báo task đầy đủ nhưng khi vào game sử dụng item thì báo lỗi dòng " nRemainTime = nRemainTime - self.tbEffect[it.nLevel]; " và dòng " function tbItem:OnUse() "

nhờ các bạn giúp mình lỗi này với. Cảm ơn các bạn đã quan tâm



local tbItem = Item:GetClass("tienthaolo1h");
tbItem.TASKGROUP = 3020;
tbItem.TASKLASTTIME_ID = 1;
tbItem.TASKREMAINTIME_ID = 2;
tbItem.SKILL_ID_EXP = 332;
tbItem.SKILL_ID_EXP_LEVEL = 10; -- Cấp độ của skill.Cấp 10 sẽ là + thêm 100% kinh nghiệm.Cấp 20 là cộng 200%(tương đương x3)

tbItem.tbEffect = {
[1] = 1;--(Thời gian hiệu nghiệm của thẻ.Đơn vị tính bằng Giờ)
}

function tbItem:OnUse() ------------ " báo lỗi dòng này "
if me.nLevel <= 10 then
Dialog:Say("Đẳng cấp trên 10 mới có thể sử dụng được.");
return 0
end
self:Update();
local nRemainTime = self:GetRemainTime();
local nExpSkillLevel, nExpStateType, nExpEndTime, bExpIsNoClearOnDeath = me.GetSkillState(self.SKILL_ID_EXP);
local nNewExpTime = 0;
if (not nExpEndTime) then
nExpEndTime = 0;
end
nRemainTime = nRemainTime - self.tbEffect[it.nLevel]; ------------ " báo lỗi dòng này "
nNewExpTime = self.tbEffect[it.nLevel] * 18 * 3600 + nExpEndTime;
me.AddSkillState(self.SKILL_ID_EXP, self.SKILL_ID_EXP_LEVEL, 1, nNewExpTime, 1);
me.Msg(string.format("Bạn nhận được <color=yellow>%s giờ <color> nhân đôi kinh nghiệm.",self.tbEffect[it.nLevel]))
KDialog.MsgToGlobal("<color=yellow>Người chơi <color=green>["..me.szName.."]<color> sử dụng <color=green>Tiên Thảo Lộ (1 giờ)<color> nhận được <color=cyan>1 Giờ x2 Kinh Nghiệm<color><color>");

return 1;
end
function tbItem:Update()
local nLastTime = me.GetTask(self.TASKGROUP, self.TASKLASTTIME_ID);
local nNowTime = GetTime();
local nDays = self:CalculateDay(nLastTime, nNowTime);
local nRemainTime = nDays * 1.5 + self:GetRemainTime();
if (nRemainTime < 0.1) then nRemainTime = 0;
end
if (nLastTime <= 0) then
nRemainTime = 1.5;
end
me.SetTask(self.TASKGROUP, self.TASKLASTTIME_ID, nNowTime); me.SetTask(self.TASKGROUP, self.TASKREMAINTIME_ID, nRemainTime * 10);
end

function tbItem:CalculateDay(nLastTime, nNowTime)
local nLastDay = Lib:GetLocalDay(nLastTime);
local nNowDay = Lib:GetLocalDay(nNowTime);
local nDays = nNowDay - nLastDay; if (nDays < 0) then
nDays = 0;
end
return nDays;
end
function tbItem:GetRemainTime()
return me.GetTask(self.TASKGROUP, self.TASKREMAINTIME_ID) / 10;
end