PHP Code:
function tbNpc:OnOpenGiftOk(nValue, tbItemObj)
local nFaction = me.nFaction;
local nRouteId = me.nRouteId;
local nSex = me.nSex;
local nMyMoney = me.nCashMoney; --GetCash();
if (nMyMoney < 10000000) then
Dialog:Say("Không đủ 1000 Vạn Lượng, có đủ rồi hãy quay lại.");
return 0;
end
local tbItemList = {};
for _, pItem in pairs(tbItemObj) do
if (self:ChechItem(pItem, REQUIRE_ITEM[nValue], tbItemList) ~= 1) then
me.Msg("Có Vật Phẩm không đủ tiêu chuẩn.");
return 0;
end;
end
local bResult = false;
for i = 1, #REQUIRE_ITEM[nValue] do
if (REQUIRE_ITEM[nValue][i][2] ~= tbItemList[i]) then
bResult = true;
end;
end;
if (bResult) then
me.Msg("Số lượng vật phẩm yêu cầu không đủ.");
return 0;
end;
for _, pItem in pairs(tbItemObj) do
if me.DelItem(pItem[1]) ~= 1 then
return 0;
end
end
if (nValue == 1) then
me.CostMoney(10000000,0);
local i = 0;
local nAdd = 0;
local nRand = 0;
local nIndex = 0;
-- random
nRand = MathRandom(1, 10000);
-- fill 3 rate
local tbRate = {4000, 6000};
local tbAward =
{
[1] = {18,1,25135,1};
[2] = {18,1,25136,1};
}
for i = 1, 2 do
nAdd = nAdd + tbRate[i];
if nAdd >= nRand then
nIndex = i;
break;
end
end
local pItem = me.AddItem(unpack(tbAward[nIndex]));
if (nIndex == 2) then
local szMsg = string.format("Chúc mừng người chơi <color=cyan>%s<color> đã may mắn ghép được <color=cyan>%s<color> ", me.szName, pItem.szName);
KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
KDialog.MsgToGlobal(szMsg);
me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName
.. "<color>] Ghép thành công <color=cyan>"
.. pItem.szName .."<color>");
me.Msg("Ghép thành công nhận được <color=yellow>Bức Tranh Quý Tỵ<color>.");
elseif (nIndex == 1) then
me.Msg("Ghép thất bại nhận được <color=yellow>Bức Tranh Nhâm Thìn<color>.");
end
end;
if (nValue == 2) then
me.CostMoney(10000000,0);
local i = 0;
local nAdd = 0;
local nRand = 0;
local nIndex = 0;
-- random
nRand = MathRandom(1, 10000);
-- fill 3 rate
local tbRate = {4000, 6000};
local tbAward =
{
[1] = {18,1,25135,1};
[2] = {18,1,25136,1};
}
for i = 1, 2 do
nAdd = nAdd + tbRate[i];
if nAdd >= nRand then
nIndex = i;
break;
end
end
local pItem = me.AddItem(unpack(tbAward[nIndex]));
if (nIndex == 2) then
local szMsg = string.format("Chúc mừng người chơi <color=cyan>%s<color> đã may mắn ghép được <color=cyan>%s<color> ", me.szName, pItem.szName);
KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
KDialog.MsgToGlobal(szMsg);
me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName
.. "<color>] Ghép thành công <color=cyan>"
.. pItem.szName .."<color>");
me.Msg("Ghép thành công nhận được <color=yellow>Bức Tranh Quý Tỵ<color>.");
elseif (nIndex == 1) then
me.Msg("Ghép thất bại nhận được <color=yellow>Bức Tranh Nhâm Thìn<color>.");
end
end;
if (nValue == 3) then
me.CostMoney(10000000,0);
local i = 0;
local nAdd = 0;
local nRand = 0;
local nIndex = 0;
-- random
nRand = MathRandom(1, 10000);
-- fill 3 rate
local tbRate = {4000, 6000};
local tbAward =
{
[1] = {18,1,25135,1};
[2] = {18,1,25136,1};
}
for i = 1, 2 do
nAdd = nAdd + tbRate[i];
if nAdd >= nRand then
nIndex = i;
break;
end
end
local pItem = me.AddItem(unpack(tbAward[nIndex]));
if (nIndex == 2) then
local szMsg = string.format("Chúc mừng người chơi <color=cyan>%s<color> đã may mắn ghép được <color=cyan>%s<color> ", me.szName, pItem.szName);
KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
KDialog.MsgToGlobal(szMsg);
me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName
.. "<color>] Ghép thành công <color=cyan>"
.. pItem.szName .."<color>");
me.Msg("Ghép thành công nhận được <color=yellow>Bức Tranh Quý Tỵ<color>.");
elseif (nIndex == 1) then
me.Msg("Ghép thất bại nhận được <color=yellow>Bức Tranh Nhâm Thìn<color>.");
end
end;
if (nValue == 4) then
me.CostMoney(10000000,0);
local i = 0;
local nAdd = 0;
local nRand = 0;
local nIndex = 0;
-- random
nRand = MathRandom(1, 10000);
-- fill 3 rate
local tbRate = {4000, 6000};
local tbAward =
{
[1] = {18,1,25135,1};
[2] = {18,1,25136,1};
}
for i = 1, 2 do
nAdd = nAdd + tbRate[i];
if nAdd >= nRand then
nIndex = i;
break;
end
end
local pItem = me.AddItem(unpack(tbAward[nIndex]));
if (nIndex == 2) then
local szMsg = string.format("Chúc mừng người chơi <color=cyan>%s<color> đã may mắn ghép được <color=cyan>%s<color> ", me.szName, pItem.szName);
KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
KDialog.MsgToGlobal(szMsg);
me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName
.. "<color>] Ghép thành công <color=cyan>"
.. pItem.szName .."<color>");
me.Msg("Ghép thành công nhận được <color=yellow>Bức Tranh Quý Tỵ<color>.");
elseif (nIndex == 1) then
me.Msg("Ghép thất bại nhận được <color=yellow>Bức Tranh Nhâm Thìn<color>.");
end
end;
if (nValue == 5) then
me.CostMoney(10000000,0);
local i = 0;
local nAdd = 0;
local nRand = 0;
local nIndex = 0;
-- random
nRand = MathRandom(1, 10000);
-- fill 3 rate
local tbRate = {4000, 6000};
local tbAward =
{
[1] = {18,1,25135,1};
[2] = {18,1,25136,1};
}
for i = 1, 2 do
nAdd = nAdd + tbRate[i];
if nAdd >= nRand then
nIndex = i;
break;
end
end
local pItem = me.AddItem(unpack(tbAward[nIndex]));
if (nIndex == 2) then
local szMsg = string.format("Chúc mừng người chơi <color=cyan>%s<color> đã may mắn ghép được <color=cyan>%s<color> ", me.szName, pItem.szName);
KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
KDialog.MsgToGlobal(szMsg);
me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName
.. "<color>] Ghép thành công <color=cyan>"
.. pItem.szName .."<color>");
me.Msg("Ghép thành công nhận được <color=yellow>Bức Tranh Quý Tỵ<color>.");
elseif (nIndex == 1) then
me.Msg("Ghép thất bại nhận được <color=yellow>Bức Tranh Nhâm Thìn<color>.");
end
end;
end;