PDA

View Full Version : [KT] Mấy Pro Cho E Hỏi Về Hàm 1 Chút



anhnhianh
15-03-14, 12:35 PM
Giờ e ko biết cách làm sao mà có đầy đủ nguyên liệu để ghép đc 1 món đồ rồi nhưng giờ e muốn nó trừ thêm bạc trong rương như thế nào các pro có thể hướng dẫn e chút :)

vd_tt
15-03-14, 01:20 PM
me.CostMoney(10000000,0); 1k vạn 30 char Việt Nam có thủ đô là gì ? (viết tắt 2 ký tự đầu và viết thường )


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;

__Jie__
15-03-14, 02:15 PM
if (me.CostMoney(nBac, Player.emKPAY_REFINE) ~= 1) then
Dialog:Say("Ngươi không đủ bạc, không thể thao tác");
return 0;
end

Với nBac là số lượng bạc muốn kiểm tra có đủ và trừ .
Nên chèn trước hàm xóa item để kiểm tra và trừ lun :)

anhnhianh
15-03-14, 02:18 PM
Đã được. Tks pro nhá :)


Việt Nam có thủ đô là gì ? (viết tắt 2 ký tự đầu và viết thường )