satthulauhyh
05-07-12, 02:34 PM
Có nhiều bạn cần đổi phần thưởng trong bách bảo rương mà không biết làm sao nên mình share lun file đã chỉnh ( mình add điểm danh vọng các loại)
--Trong script/baibaoxiang.gs
function Baibaoxiang:GetAward(pPlayer, nType)
-- check allow
local bOK = self:CheckAllowGetAward(pPlayer, nType);
if bOK ~= 1 then
return;
end
-- interval
pPlayer.SetTask(self.TASK_GROUP_ID, self.TASK_BAIBAOXIANG_INTERVAL, GetTime());
-- get multiple
local nAwardNum = pPlayer.GetTask(self.TASK_GROUP_ID, self.TASK_BAIBAOXIANG_COIN) / 2;
-- get level & type
local nAwardLevel = pPlayer.GetTask(self.TASK_GROUP_ID, self.TASK_BAIBAOXIANG_LEVEL);
local nAwardType = pPlayer.GetTask(self.TASK_GROUP_ID, self.TASK_BAIBAOXIANG_TYPE);
-- get award
if nType == 1 then
-- get award index
local szAwardType = self.tbAwardType[nAwardType];
local nAward = self.tbAwardValue[szAwardType][nAwardLevel];
-- huyền tinh = điểm tần lăng quan phủ
if nAwardType == 1 then
local i = 0;
for i = 1, nAwardNum do
pPlayer.AddRepute(9,1, nAward);
end
-- channel
if nAwardLevel >= 4 then
pPlayer.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>"..pPlayer.szName.."<color>] nhận được từ bách bảo rương <color=yellow>"
..(nAward* nAwardNum).."<color> tần lăng quan phủ.");
Player:SendMsgToKinOrTong(pPlayer, " nhận được từ bách bảo rương "..(nAward* nAwardNum).." tần lăng quan phủ", 0);
end
-- need channel msg
pPlayer.Msg(string.format("Bạn nhận được <color=yellow>%s<color> điểm tần lăng quan phủ", nAward* nAwardNum));
-- log
self:_Log(pPlayer, "Nhan duoc" .. (nAward* nAwardNum ) .. "điểm tần lăng qua phủ");
-- tinh hoạt lực = điểm đoàn viên
elseif nAwardType == 2 then
local i = 0;
for i = 1, nAwardNum do
pPlayer.AddRepute(10,1, nAward);
end
-- channel
if nAwardLevel >= 4 then
pPlayer.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>"..pPlayer.szName.."<color>] nhận được từ bách bảo rương <color=yellow>"
..(nAward* nAwardNum).."<color> danh vọng đoàn viên.");
Player:SendMsgToKinOrTong(pPlayer, " nhận được từ bách bảo rương "..(nAward* nAwardNum).." danh vọng đoàn viên", 0);
end
-- need channel msg
pPlayer.Msg(string.format("Bạn nhận được <color=yellow>%s<color> danh vọng đoàn viên", nAward* nAwardNum));
-- log
self:_Log(pPlayer, "Nhan duoc" .. (nAward * nAwardNum) .. "danh vọng đoàn viên");
-- bạc = điểm đại hội võ lâm
elseif nAwardType == 3 then
local i = 0;
for i = 1, nAwardNum do
pPlayer.AddRepute(11,1, nAward);
end
-- channel
if nAwardLevel >= 4 then
pPlayer.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>"..pPlayer.szName.."<color>] nhận được từ bách bảo rương <color=yellow>"
..(nAward* nAwardNum).."<color> điểm đại hội võ lâm.");
Player:SendMsgToKinOrTong(pPlayer, " nhận được từ bách bảo rương "..(nAward* nAwardNum).." điểm đại hội võ lâm", 0);
end
-- need channel msg
pPlayer.Msg(string.format("Bạn nhận được <color=yellow>%s<color> điểm đại hội võ lâm", nAward* nAwardNum));
-- log
self:_Log(pPlayer, "Nhan duoc" .. (nAward* nAwardNum ) .. "điểm đại hội võ lâm");
-- đồng khóa = điểm liên đấu liên sever
elseif nAwardType == 4 then
local i = 0;
for i = 1, nAwardNum do
pPlayer.AddRepute(12,1, nAward);
end
-- channel
if nAwardLevel >= 4 then
pPlayer.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>"..pPlayer.szName.."<color>] nhận được từ bách bảo rương <color=yellow>"
..(nAward * nAwardNum).."<color> điểm liên đấu liên sever.");
Player:SendMsgToKinOrTong(pPlayer, " nhận được từ bách bảo rương "..(nAward * nAwardNum).." điểm liên đấu liên sever", 0);
end
-- need channel msg
pPlayer.Msg(string.format("Bạn nhận được <color=yellow>%s<color> điểm liên đấu liên sever", nAward *nAwardNum));
-- log
self:_Log(pPlayer, "Nhan duoc" .. (nAward * nAwardNum ) .. "điểm liên đấu liên sever");
-- rương
elseif nAwardType == 5 then
local i = 0;
for i = 1, nAwardNum do
pPlayer.AddItem(18, 1, 324, 1); --ruong dep cao quy
end
pPlayer.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>"..pPlayer.szName.."<color>] nhận được từ bách bảo rương <color=yellow>"
..(nAward * nAwardNum).."<color> rương");
Player:SendMsgToKinOrTong(pPlayer, " nhận được từ bách bảo rương "..(nAward * nAwardNum).." rương", 0);
-- log
self:_Log(pPlayer, "Nhan duoc" .. (nAward * nAwardNum) .. "ruong");
end
--Muốn chỉnh số lượng khi nhận được thì các bạn xem trong này: script/baibaoxiang.def
-- 奖励数值
Baibaoxiang.tbAwardValue =
{
["玄晶"] = {1, 2, 3, 4, 5, 6}, -- huyền tinh 6 số tương ứng 1-6 sao khi quay được
["精活"] = {1, 2, 3, 4, 5, 6}, -- tinh hoạt
["银两"] = {1, 2, 3, 4, 5, 6}, -- bạc
["绑金"] = {1, 2, 3, 4, 5, 6}, -- đồng khóa
["宝箱"] = {1},
["贝壳"] = {1, 3, 10, 35, 120, 400}, -- số vỏ sò nhận được khi quay
};
Phần thưởng khi mở rương đẹp cao quý thì ở đây gameserver\script\baibaoxiang\item\jinxiangzi.lua
-- random
nRand = MathRandom(1, 10000);
-- fill 3 rate
local tbRate = {8300, 1500, 150, 45, 5}; -- là tỷ lệ khui ra huyền tinh tổng =10k
local tbAward = {8 ,9, 10, 11, 12}; -- là mã cuối của huyền tinh nhận tương ứng 8-12
-- get index
for i = 1, 5 do
nAdd = nAdd + tbRate[i];
if nAdd >= nRand then
nIndex = i;
break;
end
end
if nIndex == 0 then
me.Msg("Xin lỗi, bạn không nhận được gì.");
return 0;
end;
local pItem = me.AddItem(18,1,1, tbAward[nIndex]); --- 18,1,1 là mã đầu của huyền tinh => có thể thay để nhận vật phẩm khác VD như đồ cuối... = cách bỏ 3 số đầu ở đây, và số cuối ở trên kia sẽ có tỷ lệ khui ra, hoặc add hoàn toàn vào đây, bỏ cái tbAward[nIndex] đi là xong.
pItem.Bind(1);
Đây là file mình đã chỉnh( chưa chỉnh phần thưởng khi khui rương) các bạn có thể tham khảo :D
<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>
--Trong script/baibaoxiang.gs
function Baibaoxiang:GetAward(pPlayer, nType)
-- check allow
local bOK = self:CheckAllowGetAward(pPlayer, nType);
if bOK ~= 1 then
return;
end
-- interval
pPlayer.SetTask(self.TASK_GROUP_ID, self.TASK_BAIBAOXIANG_INTERVAL, GetTime());
-- get multiple
local nAwardNum = pPlayer.GetTask(self.TASK_GROUP_ID, self.TASK_BAIBAOXIANG_COIN) / 2;
-- get level & type
local nAwardLevel = pPlayer.GetTask(self.TASK_GROUP_ID, self.TASK_BAIBAOXIANG_LEVEL);
local nAwardType = pPlayer.GetTask(self.TASK_GROUP_ID, self.TASK_BAIBAOXIANG_TYPE);
-- get award
if nType == 1 then
-- get award index
local szAwardType = self.tbAwardType[nAwardType];
local nAward = self.tbAwardValue[szAwardType][nAwardLevel];
-- huyền tinh = điểm tần lăng quan phủ
if nAwardType == 1 then
local i = 0;
for i = 1, nAwardNum do
pPlayer.AddRepute(9,1, nAward);
end
-- channel
if nAwardLevel >= 4 then
pPlayer.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>"..pPlayer.szName.."<color>] nhận được từ bách bảo rương <color=yellow>"
..(nAward* nAwardNum).."<color> tần lăng quan phủ.");
Player:SendMsgToKinOrTong(pPlayer, " nhận được từ bách bảo rương "..(nAward* nAwardNum).." tần lăng quan phủ", 0);
end
-- need channel msg
pPlayer.Msg(string.format("Bạn nhận được <color=yellow>%s<color> điểm tần lăng quan phủ", nAward* nAwardNum));
-- log
self:_Log(pPlayer, "Nhan duoc" .. (nAward* nAwardNum ) .. "điểm tần lăng qua phủ");
-- tinh hoạt lực = điểm đoàn viên
elseif nAwardType == 2 then
local i = 0;
for i = 1, nAwardNum do
pPlayer.AddRepute(10,1, nAward);
end
-- channel
if nAwardLevel >= 4 then
pPlayer.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>"..pPlayer.szName.."<color>] nhận được từ bách bảo rương <color=yellow>"
..(nAward* nAwardNum).."<color> danh vọng đoàn viên.");
Player:SendMsgToKinOrTong(pPlayer, " nhận được từ bách bảo rương "..(nAward* nAwardNum).." danh vọng đoàn viên", 0);
end
-- need channel msg
pPlayer.Msg(string.format("Bạn nhận được <color=yellow>%s<color> danh vọng đoàn viên", nAward* nAwardNum));
-- log
self:_Log(pPlayer, "Nhan duoc" .. (nAward * nAwardNum) .. "danh vọng đoàn viên");
-- bạc = điểm đại hội võ lâm
elseif nAwardType == 3 then
local i = 0;
for i = 1, nAwardNum do
pPlayer.AddRepute(11,1, nAward);
end
-- channel
if nAwardLevel >= 4 then
pPlayer.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>"..pPlayer.szName.."<color>] nhận được từ bách bảo rương <color=yellow>"
..(nAward* nAwardNum).."<color> điểm đại hội võ lâm.");
Player:SendMsgToKinOrTong(pPlayer, " nhận được từ bách bảo rương "..(nAward* nAwardNum).." điểm đại hội võ lâm", 0);
end
-- need channel msg
pPlayer.Msg(string.format("Bạn nhận được <color=yellow>%s<color> điểm đại hội võ lâm", nAward* nAwardNum));
-- log
self:_Log(pPlayer, "Nhan duoc" .. (nAward* nAwardNum ) .. "điểm đại hội võ lâm");
-- đồng khóa = điểm liên đấu liên sever
elseif nAwardType == 4 then
local i = 0;
for i = 1, nAwardNum do
pPlayer.AddRepute(12,1, nAward);
end
-- channel
if nAwardLevel >= 4 then
pPlayer.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>"..pPlayer.szName.."<color>] nhận được từ bách bảo rương <color=yellow>"
..(nAward * nAwardNum).."<color> điểm liên đấu liên sever.");
Player:SendMsgToKinOrTong(pPlayer, " nhận được từ bách bảo rương "..(nAward * nAwardNum).." điểm liên đấu liên sever", 0);
end
-- need channel msg
pPlayer.Msg(string.format("Bạn nhận được <color=yellow>%s<color> điểm liên đấu liên sever", nAward *nAwardNum));
-- log
self:_Log(pPlayer, "Nhan duoc" .. (nAward * nAwardNum ) .. "điểm liên đấu liên sever");
-- rương
elseif nAwardType == 5 then
local i = 0;
for i = 1, nAwardNum do
pPlayer.AddItem(18, 1, 324, 1); --ruong dep cao quy
end
pPlayer.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>"..pPlayer.szName.."<color>] nhận được từ bách bảo rương <color=yellow>"
..(nAward * nAwardNum).."<color> rương");
Player:SendMsgToKinOrTong(pPlayer, " nhận được từ bách bảo rương "..(nAward * nAwardNum).." rương", 0);
-- log
self:_Log(pPlayer, "Nhan duoc" .. (nAward * nAwardNum) .. "ruong");
end
--Muốn chỉnh số lượng khi nhận được thì các bạn xem trong này: script/baibaoxiang.def
-- 奖励数值
Baibaoxiang.tbAwardValue =
{
["玄晶"] = {1, 2, 3, 4, 5, 6}, -- huyền tinh 6 số tương ứng 1-6 sao khi quay được
["精活"] = {1, 2, 3, 4, 5, 6}, -- tinh hoạt
["银两"] = {1, 2, 3, 4, 5, 6}, -- bạc
["绑金"] = {1, 2, 3, 4, 5, 6}, -- đồng khóa
["宝箱"] = {1},
["贝壳"] = {1, 3, 10, 35, 120, 400}, -- số vỏ sò nhận được khi quay
};
Phần thưởng khi mở rương đẹp cao quý thì ở đây gameserver\script\baibaoxiang\item\jinxiangzi.lua
-- random
nRand = MathRandom(1, 10000);
-- fill 3 rate
local tbRate = {8300, 1500, 150, 45, 5}; -- là tỷ lệ khui ra huyền tinh tổng =10k
local tbAward = {8 ,9, 10, 11, 12}; -- là mã cuối của huyền tinh nhận tương ứng 8-12
-- get index
for i = 1, 5 do
nAdd = nAdd + tbRate[i];
if nAdd >= nRand then
nIndex = i;
break;
end
end
if nIndex == 0 then
me.Msg("Xin lỗi, bạn không nhận được gì.");
return 0;
end;
local pItem = me.AddItem(18,1,1, tbAward[nIndex]); --- 18,1,1 là mã đầu của huyền tinh => có thể thay để nhận vật phẩm khác VD như đồ cuối... = cách bỏ 3 số đầu ở đây, và số cuối ở trên kia sẽ có tỷ lệ khui ra, hoặc add hoàn toàn vào đây, bỏ cái tbAward[nIndex] đi là xong.
pItem.Bind(1);
Đây là file mình đã chỉnh( chưa chỉnh phần thưởng khi khui rương) các bạn có thể tham khảo :D
<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>