PDA

View Full Version : [KT] Ai cho mình xin cái hàm nộp vật phẩm cho NPC Cảm ơn nhiều!!



truonghung
28-11-14, 09:29 PM
Ai cho mình xin cái hàm nộp vật phẩm cho NPC Cảm ơn nhiều!!

__Jie__
28-11-14, 09:52 PM
Có nhiều cách
1. Kiểm tra đủ số lượng trong hành trang del vật phẩm trong hành trang có thể dùng


local tbItemId = {18,1,1662,1,0,0};
Task:DelItem(me, tbItemId, 1);
Hoặc
me.ConsumeItemInBags(nNum, 18, 1, 1656, 2);
nNum = Số lượng Item trừ đi

2. Dùng OpenGift để check cấu trúc

function tbLiGuan:ChangeSignt()
Dialog:OpenGift("Hãy đặt vào <color=yellow>100 Mảnh Lôi Đình Ấn<color>, ta sẽ đổi cho ngươi 1 <color=yellow>Lôi Đình Ấn<color> hoàn chỉnh.", nil ,{self.OnOpenGiftOk, self});
end


function tbLiGuan:OnOpenGiftOk(tbItemObj)
local nCount = 0;
for _, pItem in pairs(tbItemObj) do
local szItem = string.format("%s,%s,%s,%s",pItem[1].nGenre, pItem[1].nDetail, pItem[1].nParticular, pItem[1].nLevel);
if "18,1,741,1" ~= szItem then
Dialog:Say("Vật phẩm đặt vào không đúng, hãy đặt Mảnh Lôi Đình Ấn.");
return 0;
end;
nCount = nCount + pItem[1].nCount;
end
if nCount ~= 100 then
Dialog:Say("Số lượng đặt vào không đúng, hãy đặt 100 Mảnh Lôi Đình Ấn.");
return 0;
end
for _, pItem in pairs(tbItemObj) do
if me.DelItem(pItem[1]) ~= 1 then
return 0;
end
end
me.AddItem(1,16,14,2);
Dbg:WriteLog("Người chơi ["..me.szName.."] đổi được Lôi Đình Ấn.");
StatLog:WriteStatLog("stat_info", "charge", "charge", me.nId, string.format("18_1_741_1,%s,1_16_14_2,1", nCount));
return 1;
end