PDA

View Full Version : [KT] Script Thông Báo vật phẩm rớt ra Khi Giết Boss



__Jie__
17-06-20, 10:45 PM
Hôm nay có 1 bạn chat hỏi làm thế nào để đánh boss 55 75 95 . Khi boss chết thông báo vật phẩm rớt ra giống Tần Thủy Hoàng.

Mặc dù bạn ấy đã copy hàm DeathLoseItem(tbLoseItem) bỏ vào script của boss 55 75 95 mà vẫn không được.

Mạn phép share lại các bước thực hiện.

B1 :

Vào gameserver\script\boss tìm file boss_schedule_gs.lua

Chèn thêm pNpc.SetLoseItemCallBack(1); vào trong hàm if pNpc then


function Boss:DoCallOut(nTemplateId, nLevel, nSeries, nMapId, nMapX, nMapY) local nMapIndex = SubWorldID2Idx(nMapId);
if nMapIndex < 0 then
return;
end
-- Boss已被召出而且未被打死
if self.tbUniqueBossCallOut[nTemplateId] then
return 0;
end
local pNpc = KNpc.Add(nTemplateId, nLevel, nSeries, nMapIndex, nMapX, nMapY, 0, 1)
if pNpc then
-- Jie add
pNpc.SetLoseItemCallBack(1);
--------------------
self.tbUniqueBossCallOut[nTemplateId] = 1;

<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>
if Boss.Qinshihuang:OnBossCallOut(pNpc) == 1 then
return;
end

local szMsg = string.format("Nghe nói có người phát hiện Võ lâm cao thủ <color=white>%s<color> tại <color=green>%s<color> khu vực thường lui tới!",
pNpc.szName, GetMapNameFormId(nMapId));
KDialog.NewsMsg(0, Env.NEWSMSG_COUNT, szMsg);
KDialog.MsgToGlobal(szMsg);
end
end

B2 vào gameserver\script\npc tìm uniqueboss.lua

chép thêm đoạn DeathLoseItem(tbLoseItem) vào



function tbUniqueBoss:DeathLoseItem(tbLoseItem)
local tbItem = tbLoseItem.Item;
local szMsg = "<color=green>"..him.szName.." chết để lại vật phẩm:<color>\n";
local tbList = {};

-- 列清单
for _, nItemId in pairs(tbItem or {}) do
local pItem = KItem.GetObjById(nItemId);
if pItem then
local szName = pItem.szName;
if not tbList[szName] then
tbList[szName] = 1;
else
tbList[szName] = tbList[szName] + 1;
end
end
end

for szItemName, nCount in pairs(tbList or {}) do
szMsg = szMsg .. "<color=yellow>" .. szItemName .. " - " .. nCount .. " cái<color>\n";
end
KDialog.MsgToGlobal(szMsg);
end


B3. Khởi động lại game và dùng hàm call boss đánh chơi hoặc chờ đến giờ boss ra test.


<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> (<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>)

P/S khi gọi boss bằng thẻ GM or túi tân thủ nhớ dùng hàm này


local pNpc = KNpc.Add2( nID , nLevel, nSeries , nMapId, nPosX, nPosY, 0, 1);
pNpc.SetLoseItemCallBack(1);

MrXoac
18-06-20, 09:44 AM
Tks bác vì tinh thần. Mong box KT xôm lên chút

forever3000
18-06-20, 04:38 PM
Hay quá cảm ơn bác nhiều :D:D:D:D:D:D:D.

vodangdaihiep
20-06-20, 12:17 PM
Thanks Jie nhiều nhiều

Dù ai đi ngược về xuôi nhớ ngày giỗ tổ ... ? (gợi ý câu trả lời: mung 10 thang 3)

huylouis1996
12-08-21, 06:44 PM
Boss 75 95 ko hoạt động bác Jie ơiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii iiiiiii

MrXoac
12-08-21, 09:17 PM
Boss 75 95 ko hoạt động bác Jie ơiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii iiiiiii

xem script bos 75 95 có nhận script uniqueboss ko bác:)>-

AndyVo
13-08-21, 01:05 AM
local pNpc = KNpc.Add2( nID , nLevel, nSeries , nMapId, nPosX, nPosY, 0, 1);
pNpc.SetLoseItemCallBack(1);

Dùng hàm này gọi boss TTH và HKL bằng thẻ GM thì không báo rơi bác ơi

__Jie__
13-08-21, 10:47 AM
Boss 75 95 ko hoạt động bác Jie ơiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii iiiiiii
làm đủ bước vs gọi đúng ID NPC là được.
Làm thiếu bước or gọi ko phải ID NPC boss 75 95 thì ko dc