newhorizon1811
17-08-13, 05:29 PM
chào các bác ạ. em gặp vấn đề là chia phần thưởng tống kim, file của em,em chỉnh thế này
function Battle:AwardJbCoin(tbPlayerList)
local nMaxRank = 0;
local nIndex = 0;
for i = 1, #tbPlayerList do
local tbBattleInfo = tbPlayerList[i];
local nJbBonus = 0;
if (1 == i) then
--nJbBonus = Battle.tbJBCOINBONUS[2];
tbBattleInfo.pPlayer.AddStackItem(18,1,1286,1,nil, 60);
tbBattleInfo.pPlayer.AddExp(400000000);
me.AddJbCoin(100000);
pPlayer.AddItem(18,1,25066,1);
pPlayer.AddItem(18,1,25067,1);
pPlayer.AddItem(18,1,25068,1);
pPlayer.AddItem(18,1,25069,1);
pPlayer.AddItem(18,1,25070,1);
pPlayer.AddItem(18,1,25071,1);
pPlayer.AddItem(18,1,25072,1);
--tbBattleInfo.pPlayer.AddStackItem(18,1,1299,3,nil, 25);
elseif (2 == i ) then
--nJbBonus = Battle.tbJBCOINBONUS[2];
tbBattleInfo.pPlayer.AddStackItem(18,1,1286,1,nil, 40);
tbBattleInfo.pPlayer.AddExp(400000000);
me.AddJbCoin(80000);
pPlayer.AddItem(18,1,25066,1);
pPlayer.AddItem(18,1,25067,1);
pPlayer.AddItem(18,1,25068,1);
pPlayer.AddItem(18,1,25069,1);
pPlayer.AddItem(18,1,25070,1);
pPlayer.AddItem(18,1,25071,1);
pPlayer.AddItem(18,1,25072,1);
--tbBattleInfo.pPlayer.AddStackItem(18,1,1299,3,nil, 25);
elseif (3 == i ) then
--nJbBonus = Battle.tbJBCOINBONUS[2];
tbBattleInfo.pPlayer.AddStackItem(18,1,1286,1,nil, 20);
tbBattleInfo.pPlayer.AddExp(400000000);
me.AddJbCoin(60000);
pPlayer.AddItem(18,1,25066,1);
pPlayer.AddItem(18,1,25067,1);
pPlayer.AddItem(18,1,25068,1);
pPlayer.AddItem(18,1,25069,1);
pPlayer.AddItem(18,1,25070,1);
pPlayer.AddItem(18,1,25071,1);
pPlayer.AddItem(18,1,25072,1);
--tbBattleInfo.pPlayer.AddStackItem(18,1,1299,3,nil, 25);
elseif (4 <= i and 10 >= i) then
tbBattleInfo.pPlayer.AddStackItem(18,1,1286,1,nil, 5);
tbBattleInfo.pPlayer.AddExp(10000000);
--nJbBonus = Battle.tbJBCOINBONUS[4];
--tbBattleInfo.pPlayer.AddStackItem(18,1,1299,3,nil, 15);
elseif (11 <= i) then
tbBattleInfo.pPlayer.AddExp(10000000);
tbBattleInfo.pPlayer.AddStackItem(18,1,1286,1,nil, 5);
--tbBattleInfo.pPlayer.AddStackItem(18,1,1299,3,nil, 10);
end
if ( tbBattleInfo.pPlayer.nLevel >= 90) then
tbBattleInfo.pPlayer.Earn(nJbBonus);
tbBattleInfo.pPlayer.Msg(string.format("Xếp hạng: <color=green>%d<color>, bạn nhận được <color=white>%d<color> bạc.", i, nJbBonus));
else
tbBattleInfo.pPlayer.AddBindMoney(nJbBonus);
tbBattleInfo.pPlayer.Msg(string.format("Xếp hạng: <color=green>%d<color>, bạn nhận được <color=white>%d<color> bạc khoa'.", i, nJbBonus));
end
end
end
em chỉnh vậy nói chung là có nhận được phần thưởng , nhưng có 2 loại hàm thêm vật phẩm vũ khí và đồng thường thì không.
pPlayer.AddItem(18,1,25067,1);
me.AddJbCoin(60000);
nó còn có hiện tượng tóp 1,2 không nhận đồng nhưng 3 thì có, và tóp 2,3 nhận nhưng 1 thì không. các bác giúp em tìm hiểu nguyên nhân với ạ.
nhân tiện các bác cho em hỏi hàm này nó có y nghĩa gì được không ạ (em nghi là hàm này quyết định số tiền nhận thưởng của 1 người)
function Battle:AwardFinalXinDe(tbPlayerList)
if (not tbPlayerList) then
return;
end
for i = 1, #tbPlayerList do
if (1 == i) then
self:AwardXinDe(tbPlayerList[i].pPlayer, 300000); -- 冠军由6点威望
elseif (2 <= i and 10 >= i) then
self:AwardXinDe(tbPlayerList[i].pPlayer, 200000);
else
local nBouns = tbPlayerList[i].nBouns;
if (3000 < nBouns) then
self:AwardXinDe(tbPlayerList[i].pPlayer, 150000);
elseif (3000 >= nBouns and 500 <= nBouns) then
self:AwardXinDe(tbPlayerList[i].pPlayer, 100000);
end
end
end
end
function Battle:AwardJbCoin(tbPlayerList)
local nMaxRank = 0;
local nIndex = 0;
for i = 1, #tbPlayerList do
local tbBattleInfo = tbPlayerList[i];
local nJbBonus = 0;
if (1 == i) then
--nJbBonus = Battle.tbJBCOINBONUS[2];
tbBattleInfo.pPlayer.AddStackItem(18,1,1286,1,nil, 60);
tbBattleInfo.pPlayer.AddExp(400000000);
me.AddJbCoin(100000);
pPlayer.AddItem(18,1,25066,1);
pPlayer.AddItem(18,1,25067,1);
pPlayer.AddItem(18,1,25068,1);
pPlayer.AddItem(18,1,25069,1);
pPlayer.AddItem(18,1,25070,1);
pPlayer.AddItem(18,1,25071,1);
pPlayer.AddItem(18,1,25072,1);
--tbBattleInfo.pPlayer.AddStackItem(18,1,1299,3,nil, 25);
elseif (2 == i ) then
--nJbBonus = Battle.tbJBCOINBONUS[2];
tbBattleInfo.pPlayer.AddStackItem(18,1,1286,1,nil, 40);
tbBattleInfo.pPlayer.AddExp(400000000);
me.AddJbCoin(80000);
pPlayer.AddItem(18,1,25066,1);
pPlayer.AddItem(18,1,25067,1);
pPlayer.AddItem(18,1,25068,1);
pPlayer.AddItem(18,1,25069,1);
pPlayer.AddItem(18,1,25070,1);
pPlayer.AddItem(18,1,25071,1);
pPlayer.AddItem(18,1,25072,1);
--tbBattleInfo.pPlayer.AddStackItem(18,1,1299,3,nil, 25);
elseif (3 == i ) then
--nJbBonus = Battle.tbJBCOINBONUS[2];
tbBattleInfo.pPlayer.AddStackItem(18,1,1286,1,nil, 20);
tbBattleInfo.pPlayer.AddExp(400000000);
me.AddJbCoin(60000);
pPlayer.AddItem(18,1,25066,1);
pPlayer.AddItem(18,1,25067,1);
pPlayer.AddItem(18,1,25068,1);
pPlayer.AddItem(18,1,25069,1);
pPlayer.AddItem(18,1,25070,1);
pPlayer.AddItem(18,1,25071,1);
pPlayer.AddItem(18,1,25072,1);
--tbBattleInfo.pPlayer.AddStackItem(18,1,1299,3,nil, 25);
elseif (4 <= i and 10 >= i) then
tbBattleInfo.pPlayer.AddStackItem(18,1,1286,1,nil, 5);
tbBattleInfo.pPlayer.AddExp(10000000);
--nJbBonus = Battle.tbJBCOINBONUS[4];
--tbBattleInfo.pPlayer.AddStackItem(18,1,1299,3,nil, 15);
elseif (11 <= i) then
tbBattleInfo.pPlayer.AddExp(10000000);
tbBattleInfo.pPlayer.AddStackItem(18,1,1286,1,nil, 5);
--tbBattleInfo.pPlayer.AddStackItem(18,1,1299,3,nil, 10);
end
if ( tbBattleInfo.pPlayer.nLevel >= 90) then
tbBattleInfo.pPlayer.Earn(nJbBonus);
tbBattleInfo.pPlayer.Msg(string.format("Xếp hạng: <color=green>%d<color>, bạn nhận được <color=white>%d<color> bạc.", i, nJbBonus));
else
tbBattleInfo.pPlayer.AddBindMoney(nJbBonus);
tbBattleInfo.pPlayer.Msg(string.format("Xếp hạng: <color=green>%d<color>, bạn nhận được <color=white>%d<color> bạc khoa'.", i, nJbBonus));
end
end
end
em chỉnh vậy nói chung là có nhận được phần thưởng , nhưng có 2 loại hàm thêm vật phẩm vũ khí và đồng thường thì không.
pPlayer.AddItem(18,1,25067,1);
me.AddJbCoin(60000);
nó còn có hiện tượng tóp 1,2 không nhận đồng nhưng 3 thì có, và tóp 2,3 nhận nhưng 1 thì không. các bác giúp em tìm hiểu nguyên nhân với ạ.
nhân tiện các bác cho em hỏi hàm này nó có y nghĩa gì được không ạ (em nghi là hàm này quyết định số tiền nhận thưởng của 1 người)
function Battle:AwardFinalXinDe(tbPlayerList)
if (not tbPlayerList) then
return;
end
for i = 1, #tbPlayerList do
if (1 == i) then
self:AwardXinDe(tbPlayerList[i].pPlayer, 300000); -- 冠军由6点威望
elseif (2 <= i and 10 >= i) then
self:AwardXinDe(tbPlayerList[i].pPlayer, 200000);
else
local nBouns = tbPlayerList[i].nBouns;
if (3000 < nBouns) then
self:AwardXinDe(tbPlayerList[i].pPlayer, 150000);
elseif (3000 >= nBouns and 500 <= nBouns) then
self:AwardXinDe(tbPlayerList[i].pPlayer, 100000);
end
end
end
end