sindhand
10-05-24, 08:11 PM
local tbNpc = Npc:GetClass("nangcapthucuoi");
local IdVatPham = {
[1] = {
[1]=string.format("%s,%s,%s,%s", 18,1,1338,3), --Kim Nguyên Bảo Đại
[2]="Kim Nguyên Bảo Đại",
},
[2] = {
[1]=string.format("%s,%s,%s,%s", 18,1,1636,1), --Mảnh Ngựa
[2]="Mảnh Ngựa",
},
[3] = {
[1]=string.format("%s,%s,%s,%s", 18,1,3028,1), --Thuần Dưỡng Đơn
[2]="Thuần Dưỡng Đơn",
},
[4] = {
[1]=string.format("%s,%s,%s,%s", 18,1,3028,2), --Căn Cốt Đan
[2]="Căn Cốt Đan",
},
[5] = {
[1]=string.format("%s,%s,%s,%s", 18,1,3028,3), --Linh Tê Ngọc
[2]="Linh Tê Ngọc",
},
};
local VatPhamCanThiet = {
[1]= {
[1]=1,
[2]=100,
[3]=100,
[4]=100,
[5]=1,
[6]={
[1]=string.format("%s,%s,%s,%s", 1,12,31,4), --[Tân Thủ] Mã bài (Phiên Vũ)
},
},
[2]= {
[1]=1,
[2]=200,
[3]=200,
[4]=200,
[5]=1,
[6]={
[1]=string.format("%s,%s,%s,%s", 1,12,791,4), --Hành Giả Huyết Minh - Cấp 1
[2]=string.format("%s,%s,%s,%s", 1,12,801,4), --Lạc Đà Xanh Nước Biển - Cấp 1
[3]=string.format("%s,%s,%s,%s", 1,12,811,4), --Lạc Đà Trắng - Cấp 1
[4]=string.format("%s,%s,%s,%s", 1,12,821,4), --Hành Giả Bóng Đêm - Cấp 1
[5]=string.format("%s,%s,%s,%s", 1,12,831,4), --Lạc Đà Xanh Dương - Cấp 1
[6]=string.format("%s,%s,%s,%s", 1,12,841,4), --Tuyết Hồn - Cấp 1
[7]=string.format("%s,%s,%s,%s", 1,12,851,4), --Trường Lâm - Cấp 1
[8]=string.format("%s,%s,%s,%s", 1,12,861,4), --Lăng Thiên - Cấp 1
[9]=string.format("%s,%s,%s,%s", 1,12,871,4), --Trục Nhật - Cấp 1
[10]=string.format("%s,%s,%s,%s", 1,12,881,4), --Ức Vân - Cấp 1
[11]=string.format("%s,%s,%s,%s", 1,12,891,4), --Hãn Huyết Thần Mã - Cấp 1
[12]=string.format("%s,%s,%s,%s", 1,12,901,4), --Hắc Mã Cuồng Chiến - Cấp 1
[13]=string.format("%s,%s,%s,%s", 1,12,911,4), --Bạch Mã Cuồng Chiến - Cấp 1
[14]=string.format("%s,%s,%s,%s", 1,12,921,4), --Hắc Mã Huyết Giác - Cấp 1
[15]=string.format("%s,%s,%s,%s", 1,12,931,4), --Tuyệt Thế Tuyết Vũ - Cấp 1
},
},
[3]= {
[1]=1,
[2]=200,
[3]=200,
[4]=200,
[5]=1,
[6]={
[1] =string.format("%s,%s,%s,%s", 1,12,792,4), --Hành Giả Huyết Minh - Cấp 1
[2] =string.format("%s,%s,%s,%s", 1,12,802,4), --Lạc Đà Xanh Nước Biển - Cấp 1
[3] =string.format("%s,%s,%s,%s", 1,12,812,4), --Lạc Đà Trắng - Cấp 1
[4] =string.format("%s,%s,%s,%s", 1,12,822,4), --Hành Giả Bóng Đêm - Cấp 1
[5] =string.format("%s,%s,%s,%s", 1,12,832,4), --Lạc Đà Xanh Dương - Cấp 1
[6] =string.format("%s,%s,%s,%s", 1,12,842,4), --Tuyết Hồn - Cấp 1
[7] =string.format("%s,%s,%s,%s", 1,12,852,4), --Trường Lâm - Cấp 1
[8] =string.format("%s,%s,%s,%s", 1,12,862,4), --Lăng Thiên - Cấp 1
[9] =string.format("%s,%s,%s,%s", 1,12,872,4), --Trục Nhật - Cấp 1
[10]=string.format("%s,%s,%s,%s", 1,12,882,4), --Ức Vân - Cấp 1
[11]=string.format("%s,%s,%s,%s", 1,12,892,4), --Hãn Huyết Thần Mã - Cấp 1
[12]=string.format("%s,%s,%s,%s", 1,12,902,4), --Hắc Mã Cuồng Chiến - Cấp 1
[13]=string.format("%s,%s,%s,%s", 1,12,912,4), --Bạch Mã Cuồng Chiến - Cấp 1
[14]=string.format("%s,%s,%s,%s", 1,12,922,4), --Hắc Mã Huyết Giác - Cấp 1
[15]=string.format("%s,%s,%s,%s", 1,12,932,4), --Tuyệt Thế Tuyết Vũ - Cấp 1
},
},
[4]= {
[1]=1,
[2]=200,
[3]=200,
[4]=200,
[5]=1,
[6]={
[1]=string.format("%s,%s,%s,%s", 1,12,793,4), --Hành Giả Huyết Minh - Cấp 1
[2]=string.format("%s,%s,%s,%s", 1,12,803,4), --Lạc Đà Xanh Nước Biển - Cấp 1
[3]=string.format("%s,%s,%s,%s", 1,12,813,4), --Lạc Đà Trắng - Cấp 1
[4]=string.format("%s,%s,%s,%s", 1,12,823,4), --Hành Giả Bóng Đêm - Cấp 1
[5]=string.format("%s,%s,%s,%s", 1,12,833,4), --Lạc Đà Xanh Dương - Cấp 1
[6]=string.format("%s,%s,%s,%s", 1,12,843,4), --Tuyết Hồn - Cấp 1
[7]=string.format("%s,%s,%s,%s", 1,12,853,4), --Trường Lâm - Cấp 1
[8]=string.format("%s,%s,%s,%s", 1,12,863,4), --Lăng Thiên - Cấp 1
[9]=string.format("%s,%s,%s,%s", 1,12,873,4), --Trục Nhật - Cấp 1
[10]=string.format("%s,%s,%s,%s", 1,12,883,4), --Ức Vân - Cấp 1
[11]=string.format("%s,%s,%s,%s", 1,12,893,4), --Hãn Huyết Thần Mã - Cấp 1
[12]=string.format("%s,%s,%s,%s", 1,12,903,4), --Hắc Mã Cuồng Chiến - Cấp 1
[13]=string.format("%s,%s,%s,%s", 1,12,913,4), --Bạch Mã Cuồng Chiến - Cấp 1
[14]=string.format("%s,%s,%s,%s", 1,12,923,4), --Hắc Mã Huyết Giác - Cấp 1
[15]=string.format("%s,%s,%s,%s", 1,12,933,4), --Tuyệt Thế Tuyết Vũ - Cấp 1
},
},
[5]= {
[1]=1,
[2]=200,
[3]=200,
[4]=200,
[5]=1,
[6]={
[1]=string.format("%s,%s,%s,%s", 1,12,794,4), --Hành Giả Huyết Minh - Cấp 1
[2]=string.format("%s,%s,%s,%s", 1,12,804,4), --Lạc Đà Xanh Nước Biển - Cấp 1
[3]=string.format("%s,%s,%s,%s", 1,12,814,4), --Lạc Đà Trắng - Cấp 1
[4]=string.format("%s,%s,%s,%s", 1,12,824,4), --Hành Giả Bóng Đêm - Cấp 1
[5]=string.format("%s,%s,%s,%s", 1,12,834,4), --Lạc Đà Xanh Dương - Cấp 1
[6]=string.format("%s,%s,%s,%s", 1,12,844,4), --Tuyết Hồn - Cấp 1
[7]=string.format("%s,%s,%s,%s", 1,12,854,4), --Trường Lâm - Cấp 1
[8]=string.format("%s,%s,%s,%s", 1,12,864,4), --Lăng Thiên - Cấp 1
[9]=string.format("%s,%s,%s,%s", 1,12,874,4), --Trục Nhật - Cấp 1
[10]=string.format("%s,%s,%s,%s", 1,12,884,4), --Ức Vân - Cấp 1
[11]=string.format("%s,%s,%s,%s", 1,12,894,4), --Hãn Huyết Thần Mã - Cấp 1
[12]=string.format("%s,%s,%s,%s", 1,12,904,4), --Hắc Mã Cuồng Chiến - Cấp 1
[13]=string.format("%s,%s,%s,%s", 1,12,914,4), --Bạch Mã Cuồng Chiến - Cấp 1
[14]=string.format("%s,%s,%s,%s", 1,12,924,4), --Hắc Mã Huyết Giác - Cấp 1
[15]=string.format("%s,%s,%s,%s", 1,12,934,4), --Tuyệt Thế Tuyết Vũ - Cấp 1
},
},
};
function tbNpc:OnDialog_1()
local szMsg = "Ta sẽ giúp nhà ngươi ghép Ngựa.";
szMsg = "Vui lòng cho tất cả Vật phẩm cường hóa vào vào.";
Dialog:OpenGift(szMsg, nil, {self.CheckItem, self});
end
function tbNpc:CheckItem(tbItemObj)
local DayDu = 0;
local szMsg = 'Bạn còn thiếu: \n\n';
local isVatPhamNgua_all = self:CheckItemNgua(tbItemObj, VatPhamCanThiet);
local isVatPhamNgua = tonumber(isVatPhamNgua_all[1]);
local isVatPhamNgua_y = tonumber(isVatPhamNgua_all[2]);
-- kiểm tra có vật phẩm cường hóa ngựa không
if (isVatPhamNgua == 0) then
me.Msg("Không có vật phẩm cường hóa Ngựa.");
Dialog:Say("Vui lòng cho vật phẩm cường hóa Ngựa vào để cường hóa.");
return 0;
elseif isVatPhamNgua == 41 then
me.Msg("Ngựa chưa mở cấp tiếp theo.");
Dialog:Say("Ngựa chưa mở cấp tiếp theo.");
return 0;
else
-- check is Rương
local nCount1 = me.GetItemCountInBags(self:GetItem(VatPhamCanThiet[isVatPhamNgua][6][isVatPhamNgua_y]));
if nCount1 == 0 then
Dialog:Say("Bạn phải đặt vật phẩm cường hóa trong rương");
return 0;
end
local HoanThanh = 0;
for i=1,5 do--từ 1 - 5 là số nguyen liệu cần nâng cấp
local isItem = self:CheckItemCH(tbItemObj, IdVatPham, VatPhamCanThiet, isVatPhamNgua, i);
if isItem >= 1 then
szMsg = szMsg.." \t "..tostring(isItem).." "..IdVatPham[i][2]..".\n"; --2 là tên nguyên liệu
else
HoanThanh = HoanThanh +1;
end
end
if HoanThanh < 5 then --nhỏ hơn 5 là k đủ nguyên liệu up cấp mới
Dialog:Say(szMsg);
me.Msg("Cường hóa Ngựa thất bại do thiếu Vật Phẩm.");
else -- đầy đủ cường hóa
--- thêm vật phẩm mới vào
self:Dialog_showItem(VatPhamCanThiet[isVatPhamNgua +1][6], tbItemObj, isVatPhamNgua_all);
end
end
-- kiểm tra các vật phẩm khác
end;
function tbNpc:GetItem(szText)
local rows = {};
local itsat = 0;
local tmp = szText;
while itsat ~= nil do
itsat = string.find(tmp,",",1);
if itsat ~= nil then
rows[#rows+1] = string.sub(tmp,1,itsat-1);
tmp = string.sub(tmp,itsat+1);
else
rows[#rows+1] = tmp;
end
end
local returnItem = {tonumber(rows[1]), tonumber(rows[2]), tonumber(rows[3]), tonumber(rows[4])};
return unpack(returnItem);
end
function tbNpc:Dialog_showItem(iItem, tbItemObj, isVatPhamNgua)
-- local tbOpt = {
-- {"<pic=135> <color=green>"..KItem.GetNameById(self:GetItem(iItem[1]))..".<color>", self.AddNgua, self, iItem[1], tbItemObj, isVatPhamNgua},--
-- {"<pic=135> <color=green>"..KItem.GetNameById(self:GetItem(iItem[2]))..".<color>", self.AddNgua, self, iItem[2], tbItemObj, isVatPhamNgua},--
-- {"<pic=135> <color=green>"..KItem.GetNameById(self:GetItem(iItem[3]))..".<color>", self.AddNgua, self, iItem[3], tbItemObj, isVatPhamNgua},--
-- {"<pic=135> <color=green>"..KItem.GetNameById(self:GetItem(iItem[4]))..".<color>", self.AddNgua, self, iItem[4], tbItemObj, isVatPhamNgua},--
-- {"<pic=135> <color=green>"..KItem.GetNameById(self:GetItem(iItem[5]))..".<color>", self.AddNgua, self, iItem[5], tbItemObj, isVatPhamNgua},--
-- {"<pic=135> <color=green>"..KItem.GetNameById(self:GetItem(iItem[6]))..".<color>", self.AddNgua, self, iItem[6], tbItemObj, isVatPhamNgua},--
-- {"Kết thúc đối thoại"},
-- }
-- local szMsg = "Chọn Ngựa mà bạn muốn lấy.";
-- Dialog:Say(szMsg, tbOpt);
local tbOpt = {};
for i=1, #iItem do
local name = KItem.GetNameById(self:GetItem(iItem[i]));
table.insert(tbOpt , {"<pic=135> <color=green>"..name..".<color>", self.AddNgua, self, iItem[i], tbItemObj, isVatPhamNgua});
end
table.insert(tbOpt , {"Kết thúc đối thoại"});
local szMsg = "Chọn Ngựa mà bạn muốn lấy.";
Dialog:Say(szMsg, tbOpt);
end
function tbNpc:AddNgua(index, tbItemObj, isVatPhamNgua)
me.AddItem(self:GetItem(index));
local szMsg = "Người chơi <color=yellow>"..me.szName.."<color> đã nâng cấp thành công <color=green>"..KItem.GetNameById(self:GetItem(index))..".<color>";
KDialog.NewsMsg(0, Env.NEWSMSG_COUNT, szMsg);
KDialog.MsgToGlobal(szMsg);
self:DeleteItem(isVatPhamNgua);
end
function tbNpc:DeleteItem(isVatPhamNgua)
-- xóa vật phẩm
local x = tonumber(isVatPhamNgua[1]);
local y = tonumber(isVatPhamNgua[2]);
for i=1,5 do
me.ConsumeItemInBags(VatPhamCanThiet[x][i], self:GetItem(IdVatPham[i][1]));
end
-- xóa ngựa
me.ConsumeItemInBags(1, self:GetItem(VatPhamCanThiet[x][6][y]));
end
function tbNpc:CheckItemCH(tbItemObj, tbItemCH, tbItemList, isNgua, isCH)
local numItem = 0;
for _, pItem in pairs(tbItemObj) do
local szItem = string.format("%s,%s,%s,%s",pItem[1].nGenre, pItem[1].nDetail, pItem[1].nParticular, pItem[1].nLevel);
if (szItem == tbItemCH[isCH][1]) then
numItem = pItem[1].nCount + numItem;
end
end
if (numItem >= tbItemList[isNgua][isCH]) then
return 0;
else
return (tbItemList[isNgua][isCH] - numItem);
end
end
-- kiem tra item manh ghep ngua
function tbNpc:CheckItemNgua(tbItemObj, tbItemList)
local ThuTu = {};
if (not pItem) then
ThuTu[1] = 0;
end
for _, pItem in pairs(tbItemObj) do
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][6];
for j = 1, #tbI do
local szItemTmp = tbItemList[i][6][j];
if szItem == szItemTmp then
ThuTu[1] = i;
ThuTu[2] = j;
end
end;
end;
end;
return ThuTu;
end;
cùng script này sao thay vào bản này được mà bản kia báo lỗi này vây.
anh chỉ giúp với
cảm ơn ae
...eServer\script\changeitem\thucuoi\nangcapthucuo i.lua:223: attempt to concatenate local 'name' (a nil value)
stack traceback:
...eServer\script\changeitem\thucuoi\nangcapthucuo i.lua:223: in function 'Dialog_showItem'
...eServer\script\changeitem\thucuoi\nangcapthucuo i.lua:183: in function <...eServer\script\changeitem\thucuoi\nangcapthucuo i.lua:145>
(tail call): ?
[C]: in function 'xpcall'
...\KIEMTHESIEUNHANBANDEP\GameServer\script\lib\li b.lua:406: in function 'CallBack'
...SIEUNHANBANDEP\GameServer\script\lib\dialog_gif t.lua:95: in function <...SIEUNHANBANDEP\GameServer\script\lib\dialog_gif t.lua:85>
(tail call): ?
[C]: in function 'xpcall'
...\KIEMTHESIEUNHANBANDEP\GameServer\script\lib\li b.lua:406: in function 'CallBack'
...EMTHESIEUNHANBANDEP\GameServer\script\lib\dialo g.lua:254: in function <...EMTHESIEUNHANBANDEP\GameServer\script\lib\dialo g.lua:239>
local IdVatPham = {
[1] = {
[1]=string.format("%s,%s,%s,%s", 18,1,1338,3), --Kim Nguyên Bảo Đại
[2]="Kim Nguyên Bảo Đại",
},
[2] = {
[1]=string.format("%s,%s,%s,%s", 18,1,1636,1), --Mảnh Ngựa
[2]="Mảnh Ngựa",
},
[3] = {
[1]=string.format("%s,%s,%s,%s", 18,1,3028,1), --Thuần Dưỡng Đơn
[2]="Thuần Dưỡng Đơn",
},
[4] = {
[1]=string.format("%s,%s,%s,%s", 18,1,3028,2), --Căn Cốt Đan
[2]="Căn Cốt Đan",
},
[5] = {
[1]=string.format("%s,%s,%s,%s", 18,1,3028,3), --Linh Tê Ngọc
[2]="Linh Tê Ngọc",
},
};
local VatPhamCanThiet = {
[1]= {
[1]=1,
[2]=100,
[3]=100,
[4]=100,
[5]=1,
[6]={
[1]=string.format("%s,%s,%s,%s", 1,12,31,4), --[Tân Thủ] Mã bài (Phiên Vũ)
},
},
[2]= {
[1]=1,
[2]=200,
[3]=200,
[4]=200,
[5]=1,
[6]={
[1]=string.format("%s,%s,%s,%s", 1,12,791,4), --Hành Giả Huyết Minh - Cấp 1
[2]=string.format("%s,%s,%s,%s", 1,12,801,4), --Lạc Đà Xanh Nước Biển - Cấp 1
[3]=string.format("%s,%s,%s,%s", 1,12,811,4), --Lạc Đà Trắng - Cấp 1
[4]=string.format("%s,%s,%s,%s", 1,12,821,4), --Hành Giả Bóng Đêm - Cấp 1
[5]=string.format("%s,%s,%s,%s", 1,12,831,4), --Lạc Đà Xanh Dương - Cấp 1
[6]=string.format("%s,%s,%s,%s", 1,12,841,4), --Tuyết Hồn - Cấp 1
[7]=string.format("%s,%s,%s,%s", 1,12,851,4), --Trường Lâm - Cấp 1
[8]=string.format("%s,%s,%s,%s", 1,12,861,4), --Lăng Thiên - Cấp 1
[9]=string.format("%s,%s,%s,%s", 1,12,871,4), --Trục Nhật - Cấp 1
[10]=string.format("%s,%s,%s,%s", 1,12,881,4), --Ức Vân - Cấp 1
[11]=string.format("%s,%s,%s,%s", 1,12,891,4), --Hãn Huyết Thần Mã - Cấp 1
[12]=string.format("%s,%s,%s,%s", 1,12,901,4), --Hắc Mã Cuồng Chiến - Cấp 1
[13]=string.format("%s,%s,%s,%s", 1,12,911,4), --Bạch Mã Cuồng Chiến - Cấp 1
[14]=string.format("%s,%s,%s,%s", 1,12,921,4), --Hắc Mã Huyết Giác - Cấp 1
[15]=string.format("%s,%s,%s,%s", 1,12,931,4), --Tuyệt Thế Tuyết Vũ - Cấp 1
},
},
[3]= {
[1]=1,
[2]=200,
[3]=200,
[4]=200,
[5]=1,
[6]={
[1] =string.format("%s,%s,%s,%s", 1,12,792,4), --Hành Giả Huyết Minh - Cấp 1
[2] =string.format("%s,%s,%s,%s", 1,12,802,4), --Lạc Đà Xanh Nước Biển - Cấp 1
[3] =string.format("%s,%s,%s,%s", 1,12,812,4), --Lạc Đà Trắng - Cấp 1
[4] =string.format("%s,%s,%s,%s", 1,12,822,4), --Hành Giả Bóng Đêm - Cấp 1
[5] =string.format("%s,%s,%s,%s", 1,12,832,4), --Lạc Đà Xanh Dương - Cấp 1
[6] =string.format("%s,%s,%s,%s", 1,12,842,4), --Tuyết Hồn - Cấp 1
[7] =string.format("%s,%s,%s,%s", 1,12,852,4), --Trường Lâm - Cấp 1
[8] =string.format("%s,%s,%s,%s", 1,12,862,4), --Lăng Thiên - Cấp 1
[9] =string.format("%s,%s,%s,%s", 1,12,872,4), --Trục Nhật - Cấp 1
[10]=string.format("%s,%s,%s,%s", 1,12,882,4), --Ức Vân - Cấp 1
[11]=string.format("%s,%s,%s,%s", 1,12,892,4), --Hãn Huyết Thần Mã - Cấp 1
[12]=string.format("%s,%s,%s,%s", 1,12,902,4), --Hắc Mã Cuồng Chiến - Cấp 1
[13]=string.format("%s,%s,%s,%s", 1,12,912,4), --Bạch Mã Cuồng Chiến - Cấp 1
[14]=string.format("%s,%s,%s,%s", 1,12,922,4), --Hắc Mã Huyết Giác - Cấp 1
[15]=string.format("%s,%s,%s,%s", 1,12,932,4), --Tuyệt Thế Tuyết Vũ - Cấp 1
},
},
[4]= {
[1]=1,
[2]=200,
[3]=200,
[4]=200,
[5]=1,
[6]={
[1]=string.format("%s,%s,%s,%s", 1,12,793,4), --Hành Giả Huyết Minh - Cấp 1
[2]=string.format("%s,%s,%s,%s", 1,12,803,4), --Lạc Đà Xanh Nước Biển - Cấp 1
[3]=string.format("%s,%s,%s,%s", 1,12,813,4), --Lạc Đà Trắng - Cấp 1
[4]=string.format("%s,%s,%s,%s", 1,12,823,4), --Hành Giả Bóng Đêm - Cấp 1
[5]=string.format("%s,%s,%s,%s", 1,12,833,4), --Lạc Đà Xanh Dương - Cấp 1
[6]=string.format("%s,%s,%s,%s", 1,12,843,4), --Tuyết Hồn - Cấp 1
[7]=string.format("%s,%s,%s,%s", 1,12,853,4), --Trường Lâm - Cấp 1
[8]=string.format("%s,%s,%s,%s", 1,12,863,4), --Lăng Thiên - Cấp 1
[9]=string.format("%s,%s,%s,%s", 1,12,873,4), --Trục Nhật - Cấp 1
[10]=string.format("%s,%s,%s,%s", 1,12,883,4), --Ức Vân - Cấp 1
[11]=string.format("%s,%s,%s,%s", 1,12,893,4), --Hãn Huyết Thần Mã - Cấp 1
[12]=string.format("%s,%s,%s,%s", 1,12,903,4), --Hắc Mã Cuồng Chiến - Cấp 1
[13]=string.format("%s,%s,%s,%s", 1,12,913,4), --Bạch Mã Cuồng Chiến - Cấp 1
[14]=string.format("%s,%s,%s,%s", 1,12,923,4), --Hắc Mã Huyết Giác - Cấp 1
[15]=string.format("%s,%s,%s,%s", 1,12,933,4), --Tuyệt Thế Tuyết Vũ - Cấp 1
},
},
[5]= {
[1]=1,
[2]=200,
[3]=200,
[4]=200,
[5]=1,
[6]={
[1]=string.format("%s,%s,%s,%s", 1,12,794,4), --Hành Giả Huyết Minh - Cấp 1
[2]=string.format("%s,%s,%s,%s", 1,12,804,4), --Lạc Đà Xanh Nước Biển - Cấp 1
[3]=string.format("%s,%s,%s,%s", 1,12,814,4), --Lạc Đà Trắng - Cấp 1
[4]=string.format("%s,%s,%s,%s", 1,12,824,4), --Hành Giả Bóng Đêm - Cấp 1
[5]=string.format("%s,%s,%s,%s", 1,12,834,4), --Lạc Đà Xanh Dương - Cấp 1
[6]=string.format("%s,%s,%s,%s", 1,12,844,4), --Tuyết Hồn - Cấp 1
[7]=string.format("%s,%s,%s,%s", 1,12,854,4), --Trường Lâm - Cấp 1
[8]=string.format("%s,%s,%s,%s", 1,12,864,4), --Lăng Thiên - Cấp 1
[9]=string.format("%s,%s,%s,%s", 1,12,874,4), --Trục Nhật - Cấp 1
[10]=string.format("%s,%s,%s,%s", 1,12,884,4), --Ức Vân - Cấp 1
[11]=string.format("%s,%s,%s,%s", 1,12,894,4), --Hãn Huyết Thần Mã - Cấp 1
[12]=string.format("%s,%s,%s,%s", 1,12,904,4), --Hắc Mã Cuồng Chiến - Cấp 1
[13]=string.format("%s,%s,%s,%s", 1,12,914,4), --Bạch Mã Cuồng Chiến - Cấp 1
[14]=string.format("%s,%s,%s,%s", 1,12,924,4), --Hắc Mã Huyết Giác - Cấp 1
[15]=string.format("%s,%s,%s,%s", 1,12,934,4), --Tuyệt Thế Tuyết Vũ - Cấp 1
},
},
};
function tbNpc:OnDialog_1()
local szMsg = "Ta sẽ giúp nhà ngươi ghép Ngựa.";
szMsg = "Vui lòng cho tất cả Vật phẩm cường hóa vào vào.";
Dialog:OpenGift(szMsg, nil, {self.CheckItem, self});
end
function tbNpc:CheckItem(tbItemObj)
local DayDu = 0;
local szMsg = 'Bạn còn thiếu: \n\n';
local isVatPhamNgua_all = self:CheckItemNgua(tbItemObj, VatPhamCanThiet);
local isVatPhamNgua = tonumber(isVatPhamNgua_all[1]);
local isVatPhamNgua_y = tonumber(isVatPhamNgua_all[2]);
-- kiểm tra có vật phẩm cường hóa ngựa không
if (isVatPhamNgua == 0) then
me.Msg("Không có vật phẩm cường hóa Ngựa.");
Dialog:Say("Vui lòng cho vật phẩm cường hóa Ngựa vào để cường hóa.");
return 0;
elseif isVatPhamNgua == 41 then
me.Msg("Ngựa chưa mở cấp tiếp theo.");
Dialog:Say("Ngựa chưa mở cấp tiếp theo.");
return 0;
else
-- check is Rương
local nCount1 = me.GetItemCountInBags(self:GetItem(VatPhamCanThiet[isVatPhamNgua][6][isVatPhamNgua_y]));
if nCount1 == 0 then
Dialog:Say("Bạn phải đặt vật phẩm cường hóa trong rương");
return 0;
end
local HoanThanh = 0;
for i=1,5 do--từ 1 - 5 là số nguyen liệu cần nâng cấp
local isItem = self:CheckItemCH(tbItemObj, IdVatPham, VatPhamCanThiet, isVatPhamNgua, i);
if isItem >= 1 then
szMsg = szMsg.." \t "..tostring(isItem).." "..IdVatPham[i][2]..".\n"; --2 là tên nguyên liệu
else
HoanThanh = HoanThanh +1;
end
end
if HoanThanh < 5 then --nhỏ hơn 5 là k đủ nguyên liệu up cấp mới
Dialog:Say(szMsg);
me.Msg("Cường hóa Ngựa thất bại do thiếu Vật Phẩm.");
else -- đầy đủ cường hóa
--- thêm vật phẩm mới vào
self:Dialog_showItem(VatPhamCanThiet[isVatPhamNgua +1][6], tbItemObj, isVatPhamNgua_all);
end
end
-- kiểm tra các vật phẩm khác
end;
function tbNpc:GetItem(szText)
local rows = {};
local itsat = 0;
local tmp = szText;
while itsat ~= nil do
itsat = string.find(tmp,",",1);
if itsat ~= nil then
rows[#rows+1] = string.sub(tmp,1,itsat-1);
tmp = string.sub(tmp,itsat+1);
else
rows[#rows+1] = tmp;
end
end
local returnItem = {tonumber(rows[1]), tonumber(rows[2]), tonumber(rows[3]), tonumber(rows[4])};
return unpack(returnItem);
end
function tbNpc:Dialog_showItem(iItem, tbItemObj, isVatPhamNgua)
-- local tbOpt = {
-- {"<pic=135> <color=green>"..KItem.GetNameById(self:GetItem(iItem[1]))..".<color>", self.AddNgua, self, iItem[1], tbItemObj, isVatPhamNgua},--
-- {"<pic=135> <color=green>"..KItem.GetNameById(self:GetItem(iItem[2]))..".<color>", self.AddNgua, self, iItem[2], tbItemObj, isVatPhamNgua},--
-- {"<pic=135> <color=green>"..KItem.GetNameById(self:GetItem(iItem[3]))..".<color>", self.AddNgua, self, iItem[3], tbItemObj, isVatPhamNgua},--
-- {"<pic=135> <color=green>"..KItem.GetNameById(self:GetItem(iItem[4]))..".<color>", self.AddNgua, self, iItem[4], tbItemObj, isVatPhamNgua},--
-- {"<pic=135> <color=green>"..KItem.GetNameById(self:GetItem(iItem[5]))..".<color>", self.AddNgua, self, iItem[5], tbItemObj, isVatPhamNgua},--
-- {"<pic=135> <color=green>"..KItem.GetNameById(self:GetItem(iItem[6]))..".<color>", self.AddNgua, self, iItem[6], tbItemObj, isVatPhamNgua},--
-- {"Kết thúc đối thoại"},
-- }
-- local szMsg = "Chọn Ngựa mà bạn muốn lấy.";
-- Dialog:Say(szMsg, tbOpt);
local tbOpt = {};
for i=1, #iItem do
local name = KItem.GetNameById(self:GetItem(iItem[i]));
table.insert(tbOpt , {"<pic=135> <color=green>"..name..".<color>", self.AddNgua, self, iItem[i], tbItemObj, isVatPhamNgua});
end
table.insert(tbOpt , {"Kết thúc đối thoại"});
local szMsg = "Chọn Ngựa mà bạn muốn lấy.";
Dialog:Say(szMsg, tbOpt);
end
function tbNpc:AddNgua(index, tbItemObj, isVatPhamNgua)
me.AddItem(self:GetItem(index));
local szMsg = "Người chơi <color=yellow>"..me.szName.."<color> đã nâng cấp thành công <color=green>"..KItem.GetNameById(self:GetItem(index))..".<color>";
KDialog.NewsMsg(0, Env.NEWSMSG_COUNT, szMsg);
KDialog.MsgToGlobal(szMsg);
self:DeleteItem(isVatPhamNgua);
end
function tbNpc:DeleteItem(isVatPhamNgua)
-- xóa vật phẩm
local x = tonumber(isVatPhamNgua[1]);
local y = tonumber(isVatPhamNgua[2]);
for i=1,5 do
me.ConsumeItemInBags(VatPhamCanThiet[x][i], self:GetItem(IdVatPham[i][1]));
end
-- xóa ngựa
me.ConsumeItemInBags(1, self:GetItem(VatPhamCanThiet[x][6][y]));
end
function tbNpc:CheckItemCH(tbItemObj, tbItemCH, tbItemList, isNgua, isCH)
local numItem = 0;
for _, pItem in pairs(tbItemObj) do
local szItem = string.format("%s,%s,%s,%s",pItem[1].nGenre, pItem[1].nDetail, pItem[1].nParticular, pItem[1].nLevel);
if (szItem == tbItemCH[isCH][1]) then
numItem = pItem[1].nCount + numItem;
end
end
if (numItem >= tbItemList[isNgua][isCH]) then
return 0;
else
return (tbItemList[isNgua][isCH] - numItem);
end
end
-- kiem tra item manh ghep ngua
function tbNpc:CheckItemNgua(tbItemObj, tbItemList)
local ThuTu = {};
if (not pItem) then
ThuTu[1] = 0;
end
for _, pItem in pairs(tbItemObj) do
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][6];
for j = 1, #tbI do
local szItemTmp = tbItemList[i][6][j];
if szItem == szItemTmp then
ThuTu[1] = i;
ThuTu[2] = j;
end
end;
end;
end;
return ThuTu;
end;
cùng script này sao thay vào bản này được mà bản kia báo lỗi này vây.
anh chỉ giúp với
cảm ơn ae
...eServer\script\changeitem\thucuoi\nangcapthucuo i.lua:223: attempt to concatenate local 'name' (a nil value)
stack traceback:
...eServer\script\changeitem\thucuoi\nangcapthucuo i.lua:223: in function 'Dialog_showItem'
...eServer\script\changeitem\thucuoi\nangcapthucuo i.lua:183: in function <...eServer\script\changeitem\thucuoi\nangcapthucuo i.lua:145>
(tail call): ?
[C]: in function 'xpcall'
...\KIEMTHESIEUNHANBANDEP\GameServer\script\lib\li b.lua:406: in function 'CallBack'
...SIEUNHANBANDEP\GameServer\script\lib\dialog_gif t.lua:95: in function <...SIEUNHANBANDEP\GameServer\script\lib\dialog_gif t.lua:85>
(tail call): ?
[C]: in function 'xpcall'
...\KIEMTHESIEUNHANBANDEP\GameServer\script\lib\li b.lua:406: in function 'CallBack'
...EMTHESIEUNHANBANDEP\GameServer\script\lib\dialo g.lua:254: in function <...EMTHESIEUNHANBANDEP\GameServer\script\lib\dialo g.lua:239>