PDA

View Full Version : [KT] Xin file sứ giả hoạt động



tinhlabui
10-09-12, 08:41 AM
như tiêu đề bác nào có cho em file sứ giả hoạt động ghép đồ sát thần bá vương em cảm ơn :D

vipbk
10-09-12, 08:43 AM
bạn lấy id 2 bộ đồ đó add vào NPC này, rất đơn giản, mình nghĩ không ai giúp bạn việc này đâu

file sứ giả hoạt động ở đây: gameserver\script\npc\tuiguangyuan.lua

tinhlabui
10-09-12, 08:46 AM
bạn lấy id 2 bộ đồ đó add vào NPC này, rất đơn giản, mình nghĩ không ai giúp bạn việc này đâu

file sứ giả hoạt động ở đây: gameserver\script\npc\tuiguangyuan.lua

ghép mà bác :T..................

vipbk
10-09-12, 08:49 AM
bạn định cho con sứ giả hoạt động này mặc đồ sát thần, bá vương hả :D

tinhlabui
10-09-12, 08:58 AM
bạn định cho con sứ giả hoạt động này mặc đồ sát thần, bá vương hả :D

bác đùa à có cái event ghép đó :((

vipbk
10-09-12, 09:15 AM
event mảnh ghép thì bạn qua topic bên đó: <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>

Sesshomaru
10-09-12, 12:32 PM
ý bạn đấy là muốn đưa đồ bá vương và sát thần vào event mảnh ghép cực phẩm.

Tự dò id và giới tính,ngũ hành từng món đồ nhé bạn.Lười thế ko biết

nguyenduccu
10-09-12, 05:51 PM
như tiêu đề bác nào có cho em file sứ giả hoạt động ghép đồ sát thần bá vương em cảm ơn :D

có code sẵn rồi, còn muốn người ta edit tới nơi tới chốn à, đùng là lười, ở đâu mà ăn sẵn thế [-O

dodt.1306
10-09-12, 06:12 PM
Sung rụng vào mồm rồi......còn muốn người ta nhai hộ mớm cho à

tinhlabui
10-09-12, 07:21 PM
Sung rụng vào mồm rồi......còn muốn người ta nhai hộ mớm cho à

<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>

nguyenduccu
10-09-12, 09:51 PM
<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>


vào \gameserver\setting\item\001\equip\greenequip.txt
nhìn ID đồ của nó mà thay, cơ chế rất đơn giản, nếu đồ có phân 2 hệ nam nữ thì đầu tiên là nam, đến lần thứ 2 là nữ ( tương đương 10 món ) 5 món thì là cả 2 dùng chung, nên chỉ có 1 vài món nó phân theo hệ, và trong đó có cái đồ nội và ngoại, thì phải test đúng hệ nào thì add vào, quy trình là kim - mộc - thủy - hỏa - thổ

kim (nam ) thì đằng nhau sẽ là Kim (nữ) rồi đến hệ khác , nhìn vào item khác thấy nó có cái điểm rất dễ nhớ
nam và nữ thường cách nhau 5 con số, ví dụ áo nam 1000 thì nữ sẽ là 1005 , 1001 thì nữ là 1006,

đây chỉ là gợi ý, còn tự mò đi cho rành, cũng không khó cho lắm

sửa trong 2 file changeitem_npc và changeitemhk_npc, mỗi file là 1 bộ đồ

tớ khuyến mại cho cái code đổi bộ Bích Huyết ( trang bị pet )









local tbNpc = Npc:GetClass("changeitempet");
local REQUIRE_ITEM = {
[1] =
{
{
{
string.format("%s,%s,%s,%s", 18, 1, 1192, 2),
},
50
},
},
[2] =
{
{
{
string.format("%s,%s,%s,%s", 18, 1, 1192, 3),
},
50
},
},
[3] =
{
{
{
string.format("%s,%s,%s,%s", 18, 1, 1192, 4),
},
50
},
},
[4] =
{
{
{
string.format("%s,%s,%s,%s", 18, 1, 1192, 6),
},
50
},
},
[5] =
{
{
{
string.format("%s,%s,%s,%s", 18, 1, 1192, 10),
},
50
},
},

};



function tbNpc:OnDialog_1()
local tbOpt = {
{"<color=yellow>Ta Muốn Tìm hiểu thêm về Hợp Thành.<color>", self.OnDialog_3, self},--
{"<color=yellow>Ta Muốn Hợp Thành Vật Phẩm Bích Huyết.<color>", self.OnDialog_2, self},--
{"Kết thúc đối thoại"},
}
local szMsg = "Ta sẽ giúp nhà ngươi Ghép lại các mảnh ghép,nhưng phải trả công cho ta 300 Vạn Lượng,khả năng thành công là không lớn.nhà ngươi có chấp nhận không?";


Dialog:Say(szMsg, tbOpt);
end;
function tbNpc:OnDialog_3()

local tbOpt = {};
tbOpt = Lib:MergeTable( tbOpt,{
{"Trở về", self.OnDialog_1, self},
{"Đóng"},
});

Dialog:Say(
" Để hợp thành Vật Phẩm Bích Huyết.Nhà ngươi cần sưu tập <color=red>50<color> <color=yellow>Mảnh Ghép vật phẩm cực phẩm<color> cùng loại.\n"..
" Sau khi sưu tập đủ <color=red>10<color> <color=yellow>Mảnh Ghép vật phẩm cực phẩm<color>,Nhà ngươi cần chuẩn bị tiền công cho ta là <color=yellow>300 Vạn Lượng<color>\n"..
" Khi đã chuẩn bị đủ 2 thứ cần thiết.Nhà ngươi hãy đưa vật phẩm và tiền công cho ta.ta giúp nhà ngươi hợp thành.Tuy nhiên khả năng thành công là <color=red>30%<color> nên sẽ rất khó khăn\n"..
" Nếu thành công ngươi sẽ nhận được vật phẩm.nếu thất bại ta sẽ đền bù một <color=yellow> Rương Mảnh ghép<color> cho nhà ngươi."
,tbOpt);

return 0;
end;

function tbNpc:OnDialog_2()
local nValue = me.nSeries;


if (nValue == 0) then
local tbOpt = {{"Kết thúc đối thoại"}};
local szMsg = "<color=cyan>" .. me.szName .. "<color> hãy gia nhập môn phái";
Dialog:Say(szMsg, tbOpt);
return;
end;

local tbOpt = {
{"Ta Muốn Hợp Thành <color=gold>Vũ Khí Bích Huyết<color>", self.TakeInItem1, self},
{"Ta Muốn Hợp Thành <color=gold>Y Phục Bích Huyết<color>", self.TakeInItem2, self},
{"Ta Muốn Hợp Thành <color=gold>Giới Chỉ Bích Huyết<color>", self.TakeInItem3, self},
{"Ta Muốn Hợp Thành <color=gold>Hộ Phù Bích Huyết<color>", self.TakeInItem4, self},
{"Ta Muốn Hợp Thành <color=gold>Hộ Uyển Bích Huyết<color>", self.TakeInItem5, self},

{"Kết thúc đối thoại"},
}
local szMsg = "Ta sẽ giúp nhà ngươi Ghép lại các mảnh ghép,nhưng phải trả công cho ta 300 Vạn Lượng,khả năng thành công là không lớn.nhà ngươi có chấp nhận không?";
Dialog:Say(szMsg, tbOpt);
end;


function tbNpc:TakeInItem1()
local nValue = me.nSeries;
local szMsg = "Ta sẽ giúp nhà ngươi Ghép lại các mảnh ghép,nhưng phải trả công cho ta 300 Vạn Lượng,khả năng thành công là không lớn.nhà ngươi có chấp nhận không?";

szMsg = "Vui lòng đặt vào 50 Mảnh Ghép tương ứng.Khả năng hợp thành là không cao.Nhà Ngươi hãy suy nghĩ thật kĩ";
Dialog:OpenGift(szMsg, nil, {self.OnOpenGiftOk, self, nValue});
end;


function tbNpc:TakeInItem2()
local nValue = me.nSeries+1;
local szMsg = "Ta sẽ giúp nhà ngươi Ghép lại các mảnh ghép,nhưng phải trả công cho ta 300 Vạn Lượng,khả năng thành công là không lớn.nhà ngươi có chấp nhận không?";

szMsg = "Vui lòng đặt vào 50 Mảnh Ghép tương ứng.Khả năng hợp thành là không cao.Nhà Ngươi hãy suy nghĩ thật kĩ";
Dialog:OpenGift(szMsg, nil, {self.OnOpenGiftOk, self, nValue});
end;
function tbNpc:TakeInItem3()
local nValue = me.nSeries+2;
local szMsg = "Ta sẽ giúp nhà ngươi Ghép lại các mảnh ghép,nhưng phải trả công cho ta 300 Vạn Lượng,khả năng thành công là không lớn.nhà ngươi có chấp nhận không?";

szMsg = "Vui lòng đặt vào 50 Mảnh Ghép tương ứng.Khả năng hợp thành là không cao.Nhà Ngươi hãy suy nghĩ thật kĩ";
Dialog:OpenGift(szMsg, nil, {self.OnOpenGiftOk, self, nValue});
end;
function tbNpc:TakeInItem4()
local nValue = me.nSeries+3;
local szMsg = "Ta sẽ giúp nhà ngươi Ghép lại các mảnh ghép,nhưng phải trả công cho ta 300 Vạn Lượng,khả năng thành công là không lớn.nhà ngươi có chấp nhận không?";

szMsg = "Vui lòng đặt vào 50 Mảnh Ghép tương ứng.Khả năng hợp thành là không cao.Nhà Ngươi hãy suy nghĩ thật kĩ";
Dialog:OpenGift(szMsg, nil, {self.OnOpenGiftOk, self, nValue});
end;
function tbNpc:TakeInItem5()
local nValue = me.nSeries+4;
local szMsg = "Ta sẽ giúp nhà ngươi Ghép lại các mảnh ghép,nhưng phải trả công cho ta 300 Vạn Lượng,khả năng thành công là không lớn.nhà ngươi có chấp nhận không?";

szMsg = "Vui lòng đặt vào 50 Mảnh Ghép tương ứng.Khả năng hợp thành là không cao.Nhà Ngươi hãy suy nghĩ thật kĩ";
Dialog:OpenGift(szMsg, nil, {self.OnOpenGiftOk, self, nValue});
end;


function tbNpc:OnOpenGiftOk(nValue, tbItemObj)
local nFaction = me.nFaction;
local nRouteId = me.nRouteId;
local nSex = me.nSex;
local nMyMoney = me.nCashMoney; --GetCash();

if (nMyMoney < 3000000) then
Dialog:Say("Không đủ 300 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 Mảnh Ghép Cực Phẩm không đú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(5000000,0);
local i = 0;
local nAdd = 0;
local nRand = 0;
local nIndex = 0;
-- random
nRand = MathRandom(1, 10000);
-- fill 3 rate
local tbRate = {7000,3000};
local tbAward =
{
[1] = {18, 1,1190, 2};
[2] = {5,19,1,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]));
pItem.Bind(1);
if (nIndex == 2) then
local szMsg = string.format("Chúc mừng người chơi<color=cyan>%s<color> Đã may mắn hợp thành thành công<color=cyan>%s<color> ", me.szName, pItem.szName);
KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
KDialog.MsgToGlobal(szMsg);
me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");
me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName
.. "<color>] Hợp thành thành công <color=cyan>"
.. pItem.szName .."<color>");
me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");
elseif (nIndex == 1) then
me.Msg("Hợp thành thất bại nhận được <color=yellow>"..pItem.szName.."<color>.");


end

end

if (nValue == 2) then
me.CostMoney(5000000,0);
local i = 0;
local nAdd = 0;
local nRand = 0;
local nIndex = 0;
-- random
nRand = MathRandom(1, 10000);
-- fill 3 rate
local tbRate = {7000,3000};
local tbAward =
{
[1] = {18, 1,1190, 2};
[2] = {5,20,1,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]));
pItem.Bind(1);
if (nIndex == 2) then
local szMsg = string.format("Chúc mừng người chơi<color=cyan>%s<color> Đã may mắn hợp thành thành công<color=cyan>%s<color> ", me.szName, pItem.szName);
KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
KDialog.MsgToGlobal(szMsg);
me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");
me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName
.. "<color>] Hợp thành thành công <color=cyan>"
.. pItem.szName .."<color>");
me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");
elseif (nIndex == 1) then
me.Msg("Hợp thành thất bại nhận được <color=yellow>"..pItem.szName.."<color>.");


end

end
if (nValue == 3) then
me.CostMoney(5000000,0);
local i = 0;
local nAdd = 0;
local nRand = 0;
local nIndex = 0;
-- random
nRand = MathRandom(1, 10000);
-- fill 3 rate
local tbRate = {7000,3000};
local tbAward =
{
[1] = {18, 1,1190, 2};
[2] = {5,21,1,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]));
pItem.Bind(1);
if (nIndex == 2) then
local szMsg = string.format("Chúc mừng người chơi<color=cyan>%s<color> Đã may mắn hợp thành thành công<color=cyan>%s<color> ", me.szName, pItem.szName);
KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
KDialog.MsgToGlobal(szMsg);
me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");
me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName
.. "<color>] Hợp thành thành công <color=cyan>"
.. pItem.szName .."<color>");
me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");
elseif (nIndex == 1) then
me.Msg("Hợp thành thất bại nhận được <color=yellow>"..pItem.szName.."<color>.");


end

end
if (nValue == 4) then
me.CostMoney(5000000,0);
local i = 0;
local nAdd = 0;
local nRand = 0;
local nIndex = 0;
-- random
nRand = MathRandom(1, 10000);
-- fill 3 rate
local tbRate = {7000,3000};
local tbAward =
{
[1] = {18, 1,1190, 2};
[2] = {5,23,1,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]));
pItem.Bind(1);
if (nIndex == 2) then
local szMsg = string.format("Chúc mừng người chơi<color=cyan>%s<color> Đã may mắn hợp thành thành công<color=cyan>%s<color> ", me.szName, pItem.szName);
KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
KDialog.MsgToGlobal(szMsg);
me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");
me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName
.. "<color>] Hợp thành thành công <color=cyan>"
.. pItem.szName .."<color>");
me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");
elseif (nIndex == 1) then
me.Msg("Hợp thành thất bại nhận được <color=yellow>"..pItem.szName.."<color>.");


end

end
if (nValue == 5) then
me.CostMoney(5000000,0);
local i = 0;
local nAdd = 0;
local nRand = 0;
local nIndex = 0;
-- random
nRand = MathRandom(1, 10000);
-- fill 3 rate
local tbRate = {7000,3000};
local tbAward =
{
[1] = {18, 1,1190, 2};
[2] = {5,22,1,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]));
pItem.Bind(1);
if (nIndex == 2) then
local szMsg = string.format("Chúc mừng người chơi<color=cyan>%s<color> Đã may mắn hợp thành thành công<color=cyan>%s<color> ", me.szName, pItem.szName);
KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
KDialog.MsgToGlobal(szMsg);
me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");
me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName
.. "<color>] Hợp thành thành công <color=cyan>"
.. pItem.szName .."<color>");
me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");
elseif (nIndex == 1) then
me.Msg("Hợp thành thất bại nhận được <color=yellow>"..pItem.szName.."<color>.");


end

end
end;


-- 檢測是否是需要的物品
function tbNpc:ChechItem(pItem, tbItemList, tbCountList)
if (not pItem) then
return 0;
end;
local szItem = string.format("%s,%s,%s,%s",pItem[1].nGenre, pItem[1].nDetail, pItem[1].nParticular, pItem[1].nLevel);

for i = 1, #tbItemList do
local tbI = tbItemList[i];
for j = 1, #tbI[1] do
if (szItem == tbI[1][j]) then
tbCountList[i] = (tbCountList[i] or 0) + pItem[1].nCount;
return 1;
end;
end;
end;


return 0;
end;