PDA

View Full Version : [KT] Hỏi Cách Thay Đỗi Item Trong script này ?



lyvanbethao
08-11-12, 04:29 PM
trong cái script này
local tbTrangBiDongHanh = Npc:GetClass("trangbidonghanh");
local REQUIRE_ITEM = {
[5] =
{
{
{
string.format("%s,%s,%s,%s", 18, 1, 943, 1),
string.format("%s,%s,%s,%s", 18, 1, 946, 1),
string.format("%s,%s,%s,%s", 18, 1, 949, 1),
string.format("%s,%s,%s,%s", 18, 1, 1239, 1),
string.format("%s,%s,%s,%s", 18, 1, 1242, 1),

},
5
},
},
};
function tbTrangBiDongHanh:OnDialog()
local nState = me.GetTask(3006, 2);
local szButtonColor = (nState < 20 and "") or "<color=gray>";
local tbOpt =
{
{"<color=yellow>Đổi Trang Bị Đồng Hành<color>", self.DoiDo, self},
{"Kết thúc đối thoại"},
}



Dialog:Say("<color=yellow>Tướng Quân :<color> \nXin chào <color=cyan>" ..me.szName.. "<color> ! ",tbOpt);
end

function tbTrangBiDongHanh:DoiDo()
local szMsg = "<color=wheat>Xin hãy chọn vật phẩm cần đổi:<color>";
local tbOpt=
{
{"<color=yellow>Đổi lấy Đơn Tâm Chiến Y<color>",self.DoiAo,self};
{"<color=yellow>Đổi lấy Đơn Tâm Hộ Thân Phù<color>",self.DoiPhu,self};
{"<color=yellow>Đổi lấy Đơn Tâm Chi Nhẫn<color>",self.DoiVK,self};
{"<color=yellow>Đổi lấy Đan Tâm Hộ Uyển<color>",self.DoiHoUyen,self};
{"<color=yellow>Đổi lấy Đơn Tâm Giới Chỉ<color>",self.DoiNhan,self};
};
Dialog:Say(szMsg, tbOpt);
end
function tbTrangBiDongHanh:DoiAo()
local nMyMoney = me.nCashMoney; --GetCash();
local tbItemId2 = {18,1,943,1,0,0};
local tbItemId3 = {18,1,946,1,0,0};
local tbItemId4 = {18,1,949,1,0,0};
local tbItemId5 = {18,1,1239,1,0,0};
local tbItemId6 = {18,1,1242,1,0,0};
local nCount2 = me.GetItemCountInBags(18,1,943,1);
local nCount3 = me.GetItemCountInBags(18,1,946,1);
local nCount4 = me.GetItemCountInBags(18,1,949,1);
local nCount5 = me.GetItemCountInBags(18,1,1239,1);
local nCount6 = me.GetItemCountInBags(18,1,1242,1);

-- if (nMyMoney < 50000) then
-- Dialog:Say("Không đủ 5 Vạn Lượng, có đủ rồi hãy quay lại.");
-- return 0;
-- end
if nCount2 < 1 or nCount3 < 1 or nCount4 < 1 or nCount5 < 1 or nCount6 < 1 then
Dialog:Say("<color=wheat>Trong hành trang của bạn không có đủ vật phẩm ta cần:<color>\n<color=yellow>+Mảnh Đơn Tâm Chi Nhẫn\n+Mảnh Đơn Tâm Hộ Thân Phù\n+Mảnh Đơn Tâm Chiến Y\n+ MảnhĐan Tâm Giới Chỉ\n+Mảnh Đan Tâm Hộ Uyển<color><color>");
return 0;
else
Task:DelItem(me, tbItemId2, 1);
Task:DelItem(me, tbItemId3, 1);
Task:DelItem(me, tbItemId4, 1);
Task:DelItem(me, tbItemId5, 1);
Task:DelItem(me, tbItemId6, 1);
me.AddItem(5,20,1,3).Bind(1);
GlobalExcute({"Dialog:GlobalNewsMsg_GS", "Người chơi <color=cyan>" ..me.szName.. "<color> đã đổi thành công 5 Mảnh Đơn Tâm Lấy Đơn Tâm Chiến Y xin chúc mừng !"});
me.SendMsgToFriend("Hảo hữu của bạn <color=cyan>" .. me.szName
.. "<color>] đã đổi thành công 5 Mảnh Đơn Tâm Lấy Đơn Tâm Chiến Y xin chúc mừng");
Dialog:Say("<color=wheat>Chúc mừng ngươi đã đổi thành công 5 Mảnh Đơn Tâm Lấy Đơn Tâm Chiến Y xin chúc mừng<color>", {"Cảm ơn !"});
-- me.CostMoney(50000,0);
end
end
function tbTrangBiDongHanh:DoiPhu()
local nMyMoney = me.nCashMoney; --GetCash();
local tbItemId2 = {18,1,943,1,0,0};
local tbItemId3 = {18,1,946,1,0,0};
local tbItemId4 = {18,1,949,1,0,0};
local tbItemId5 = {18,1,1239,1,0,0};
local tbItemId6 = {18,1,1242,1,0,0};
local nCount2 = me.GetItemCountInBags(18,1,943,1);
local nCount3 = me.GetItemCountInBags(18,1,946,1);
local nCount4 = me.GetItemCountInBags(18,1,949,1);
local nCount5 = me.GetItemCountInBags(18,1,1239,1);
local nCount6 = me.GetItemCountInBags(18,1,1242,1);
-- if (nMyMoney < 50000) then
-- Dialog:Say("Không đủ 5 Vạn Lượng, có đủ rồi hãy quay lại.");
-- return 0;
-- end
if nCount2 < 1 or nCount3 < 1 or nCount4 < 1 or nCount5 < 1 or nCount6 < 1 then
Dialog:Say("<color=wheat>Trong hành trang của bạn không có đủ vật phẩm ta cần:<color>\n<color=yellow>+Mảnh Đơn Tâm Chi Nhẫn\n+Mảnh Đơn Tâm Hộ Thân Phù\n+Mảnh Đơn Tâm Chiến Y\n+ MảnhĐan Tâm Giới Chỉ\n+Mảnh Đan Tâm Hộ Uyển<color><color>");
return 0;
else
Task:DelItem(me, tbItemId2, 1);
Task:DelItem(me, tbItemId3, 1);
Task:DelItem(me, tbItemId4, 1);
Task:DelItem(me, tbItemId5, 1);
Task:DelItem(me, tbItemId6, 1);
me.AddItem(5,23,1,3).Bind(1);
GlobalExcute({"Dialog:GlobalNewsMsg_GS", "Người chơi <color=cyan>" ..me.szName.. "<color> đã đổi thành công 5 Mảnh Đơn Tâm Lấy Đơn Tâm Hộ Thân Phù xin chúc mừng !"});
me.SendMsgToFriend("Hảo hữu của bạn <color=cyan>" .. me.szName
.. "<color>] đã đổi thành công 5 Mảnh Đơn Tâm Lấy Đơn Tâm Hộ Thân Phù xin chúc mừng !");
Dialog:Say("<color=wheat>Chúc mừng ngươi đã đổi thành công 5 Mảnh Đơn Tâm Lấy Đơn Tâm Hộ Thân Phù xin chúc mừng !<color>", {"Cảm ơn !"});
-- me.CostMoney(50000,0);
end
end
function tbTrangBiDongHanh:DoiVK()
local nMyMoney = me.nCashMoney; --GetCash();
local tbItemId2 = {18,1,943,1,0,0};
local tbItemId3 = {18,1,946,1,0,0};
local tbItemId4 = {18,1,949,1,0,0};
local tbItemId5 = {18,1,1239,1,0,0};
local tbItemId6 = {18,1,1242,1,0,0};
local nCount2 = me.GetItemCountInBags(18,1,943,1);
local nCount3 = me.GetItemCountInBags(18,1,946,1);
local nCount4 = me.GetItemCountInBags(18,1,949,1);
local nCount5 = me.GetItemCountInBags(18,1,1239,1);
local nCount6 = me.GetItemCountInBags(18,1,1242,1);

-- if (nMyMoney < 50000) then
-- Dialog:Say("Không đủ 5 Vạn Lượng, có đủ rồi hãy quay lại.");
-- return 0;
-- end
if nCount2 < 1 or nCount3 < 1 or nCount4 < 1 or nCount5 < 1 or nCount6 < 1 then
Dialog:Say("<color=wheat>Trong hành trang của bạn không có đủ vật phẩm ta cần:<color>\n<color=yellow>+Mảnh Đơn Tâm Chi Nhẫn\n+Mảnh Đơn Tâm Hộ Thân Phù\n+Mảnh Đơn Tâm Chiến Y\n+ MảnhĐan Tâm Giới Chỉ\n+Mảnh Đan Tâm Hộ Uyển<color><color>");
return 0;
else
Task:DelItem(me, tbItemId2, 1);
Task:DelItem(me, tbItemId3, 1);
Task:DelItem(me, tbItemId4, 1);
Task:DelItem(me, tbItemId5, 1);
Task:DelItem(me, tbItemId6, 1);
me.AddItem(5,19,1,3).Bind(1);
GlobalExcute({"Dialog:GlobalNewsMsg_GS", "Người chơi <color=cyan>" ..me.szName.. "<color> đã đổi thành công 5 Mảnh Đơn Tâm Lấy Đơn Tâm Chiến Y xin chúc mừng !"});
me.SendMsgToFriend("Hảo hữu của bạn <color=cyan>" .. me.szName
.. "<color>] đã đổi thành công 5 Mảnh Đơn Tâm Lấy Đơn Tâm Chiến Y xin chúc mừng");
Dialog:Say("<color=wheat>Chúc mừng ngươi đã đổi thành công 5 Mảnh Đơn Tâm Lấy Đơn Tâm Chiến Y xin chúc mừng<color>", {"Cảm ơn !"});
-- me.CostMoney(50000,0);
end
end

function tbTrangBiDongHanh:DoiHoUyen()
local nMyMoney = me.nCashMoney; --GetCash();
local tbItemId2 = {18,1,943,1,0,0};
local tbItemId3 = {18,1,946,1,0,0};
local tbItemId4 = {18,1,949,1,0,0};
local tbItemId5 = {18,1,1239,1,0,0};
local tbItemId6 = {18,1,1242,1,0,0};
local nCount2 = me.GetItemCountInBags(18,1,943,1);
local nCount3 = me.GetItemCountInBags(18,1,946,1);
local nCount4 = me.GetItemCountInBags(18,1,949,1);
local nCount5 = me.GetItemCountInBags(18,1,1239,1);
local nCount6 = me.GetItemCountInBags(18,1,1242,1);

-- if (nMyMoney < 50000) then
-- Dialog:Say("Không đủ 5 Vạn Lượng, có đủ rồi hãy quay lại.");
-- return 0;
-- end
if nCount2 < 1 or nCount3 < 1 or nCount4 < 1 or nCount5 < 1 or nCount6 < 1 then
Dialog:Say("<color=wheat>Trong hành trang của bạn không có đủ vật phẩm ta cần:<color>\n<color=yellow>+Mảnh Đơn Tâm Chi Nhẫn\n+Mảnh Đơn Tâm Hộ Thân Phù\n+Mảnh Đơn Tâm Chiến Y\n+ MảnhĐan Tâm Giới Chỉ\n+Mảnh Đan Tâm Hộ Uyển<color><color>");
return 0;
else
Task:DelItem(me, tbItemId2, 1);
Task:DelItem(me, tbItemId3, 1);
Task:DelItem(me, tbItemId4, 1);
Task:DelItem(me, tbItemId5, 1);
Task:DelItem(me, tbItemId6, 1);
me.AddItem(5,22,1,3).Bind(1);
GlobalExcute({"Dialog:GlobalNewsMsg_GS", "Người chơi <color=cyan>" ..me.szName.. "<color> đã đổi thành công 5 Mảnh Đơn Tâm Lấy Đam Tâm Giới Chỉ xin chúc mừng !"});
me.SendMsgToFriend("Hảo hữu của bạn <color=cyan>" .. me.szName
.. "<color>] đã đổi thành công 5 Mảnh Đơn Tâm Lấy Đơn Tâm Chiến Y xin chúc mừng");
Dialog:Say("<color=wheat>Chúc mừng ngươi đã đổi thành công 5 Mảnh Đơn Tâm Lấy Đơn Tâm Chiến Y xin chúc mừng<color>", {"Cảm ơn !"});
-- me.CostMoney(50000,0);
end
end
function tbTrangBiDongHanh:DoiNhan()
local nMyMoney = me.nCashMoney; --GetCash();
local tbItemId2 = {18,1,943,1,0,0};
local tbItemId3 = {18,1,946,1,0,0};
local tbItemId4 = {18,1,949,1,0,0};
local tbItemId5 = {18,1,1239,1,0,0};
local tbItemId6 = {18,1,1242,1,0,0};
local nCount2 = me.GetItemCountInBags(18,1,943,1);
local nCount3 = me.GetItemCountInBags(18,1,946,1);
local nCount4 = me.GetItemCountInBags(18,1,949,1);
local nCount5 = me.GetItemCountInBags(18,1,1239,1);
local nCount6 = me.GetItemCountInBags(18,1,1242,1);

-- if (nMyMoney < 50000) then
-- Dialog:Say("Không đủ 5 Vạn Lượng, có đủ rồi hãy quay lại.");
-- return 0;
-- end
if nCount2 < 1 or nCount3 < 1 or nCount4 < 1 or nCount5 < 1 or nCount6 < 1 then
Dialog:Say("<color=wheat>Trong hành trang của bạn không có đủ vật phẩm ta cần:<color>\n<color=yellow>+Mảnh Đơn Tâm Chi Nhẫn\n+Mảnh Đơn Tâm Hộ Thân Phù\n+Mảnh Đơn Tâm Chiến Y\n+ MảnhĐan Tâm Giới Chỉ\n+Mảnh Đan Tâm Hộ Uyển<color><color>");
return 0;
else
Task:DelItem(me, tbItemId2, 1);
Task:DelItem(me, tbItemId3, 1);
Task:DelItem(me, tbItemId4, 1);
Task:DelItem(me, tbItemId5, 1);
Task:DelItem(me, tbItemId6, 1);
me.AddItem(5,21,1,3).Bind(1);
GlobalExcute({"Dialog:GlobalNewsMsg_GS", "Người chơi <color=cyan>" ..me.szName.. "<color> đã đổi thành công 5 Mảnh Đơn Tâm Lấy Đơn Tâm Chiến Y xin chúc mừng !"});
me.SendMsgToFriend("Hảo hữu của bạn <color=cyan>" .. me.szName
.. "<color>] đã đổi thành công 5 Mảnh Đơn Tâm Lấy Đơn Tâm Chiến Y xin chúc mừng");
Dialog:Say("<color=wheat>Chúc mừng ngươi đã đổi thành công 5 Mảnh Đơn Tâm Lấy Đơn Tâm Chiến Y xin chúc mừng<color>", {"Cảm ơn !"});
-- me.CostMoney(50000,0);
end
end



mình thay đỗi mấy cái mãnh ghép trang bị pet thành hòa thị bích thì được còn mình thay đỗi mành ghép bằng huyền tinh 11 (khóa) thì tại sao không được
id hòa thị bích 18,1,377,1
id huyền tinh 11 khóa 18,1,114,11
chắc cái script này không cho dùng vật phẫm khóa để đỗi bạn nào biết cách chĩnh dùng được huyền tinh khóa để đỗi hoặc có cái scipt nào dùng 1 vật phẫm khóa đỗi thành 1 thứ mình muốn share cho mình nha lâu quá không vào 4rum hj

lyvanbethao
08-11-12, 11:23 PM
uppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppp pp

kakakura
08-11-12, 11:34 PM
Vậy thì bạn thử dùng Huyền Tinh Không khóa xem sao, lúc trước mình có làm cái ghép mặt nạ bằng Huyền Tinh không khóa ( dựa trên script mảnh ghép ) thì được còn cái dụ khóa chưa thử nên chưa biết .

lyvanbethao
08-11-12, 11:59 PM
không khóa bình thường mới ghê :D

kakakura
09-11-12, 12:25 AM
Vậy thì thua chắc nó không có add vật phẩm khóa, vậy chơi không khóa đi cho vip chứ khóa làm gì ;))

lyvanbethao
09-11-12, 01:20 PM
Có ai biết script nao giúp mình ko :(

__Jie__
10-11-12, 03:29 PM
Có ai biết script nao giúp mình ko :(
dễ hiễu thôi do nó get = id nên khoá hay không khoá cũng thế
chú ý ht có 2 loại id nhé

nghichtu91
10-11-12, 03:52 PM
muốn đổi vật phẩm khoá thì dùng thế này
me.GetItemCountInBags(18,1,1007,1,0,1); -- khoá;
me.GetItemCountInBags(18,1,1007,1,0,0) -- ko khoá;

lyvanbethao
11-11-12, 12:45 PM
local tbItemId5 = {18,1,1239,1,0,1};
local tbItemId6 = {18,1,1242,1,0,1};
local nCount2 = me.GetItemCountInBags(18,1,943,1);
local nCount3 = me.GetItemCountInBags(18,1,946,1);




local tbItemId5 = {18,1,1239,1,};
local tbItemId6 = {18,1,1242,1,};
local nCount2 = me.GetItemCountInBags(18,1,943,1,0,1);
local nCount3 = me.GetItemCountInBags(18,1,946,1,0,1);

đoi voi scipt đeiu62 không có tác dung bạn cho minh xem scipt của bạn đi ;)

nghichtu91
11-11-12, 02:57 PM
local tbItemId5 = {18,1,1239,1,0,1};
local tbItemId6 = {18,1,1242,1,0,1};
local nCount2 = me.GetItemCountInBags(18,1,943,1);
local nCount3 = me.GetItemCountInBags(18,1,946,1);




local tbItemId5 = {18,1,1239,1,};
local tbItemId6 = {18,1,1242,1,};
local nCount2 = me.GetItemCountInBags(18,1,943,1,0,1);
local nCount3 = me.GetItemCountInBags(18,1,946,1,0,1);

đoi voi scipt đeiu62 không có tác dung bạn cho minh xem scipt của bạn đi ;)

hỏng ổ cứng rùi không còn gì cả :-s
--- trong trường hợp này có 2 vật phẩm là ht khóa vào không khóa đúng không
local tbNpc = {}
tbNpc.DataItem =
{
{18,1,1,1,0,0}, -- huyền tinh không khóa
{18,1,114,1,0,1},-- huyền tinh khóa
}
function :Ondialog()
{
local nCount1 = me.GetItemCountInBags(unpak(self.DataItem[1]));
local nCount2 = me.GetItemCountInBags(unpak(self.DataItem[2]));
me.Msg("So huyen tinh ko khoa:" .. nCount1 .. "so ht khoa:" .. nCount2);
}
đó là hàm kiểm tra đó mà vận dụng vào...

lyvanbethao
11-11-12, 03:21 PM
mình lấy ví dụ 1 đoạn mình đỗi 1 hòa thị bích lấy 1 viên 10 nha đoạn này mình áp dụng vào sever thử chạy ok

local tbthumuahtb = Npc:GetClass("thumuahtb");
local REQUIRE_ITEM = {
[5] =
{
{
{
string.format("%s,%s,%s,%s", 18, 1, 377, 1), ----------hoa thi bich

},
1
},
},
};
function tbthumuahtb:OnDialog()
local nState = me.GetTask(3006, 2);
local szButtonColor = (nState < 20 and "") or "<color=gray>";
local tbOpt =
{
{"<color=yellow>hoan thi bich doi huyen tinh<color>", self.DoiDo, self},
{"Kết thúc đối thoại"},
}



Dialog:Say("<color=yellow>............... :<color> \nXin chào <color=cyan>" ..me.szName.. "<color> Ngươi Tìm Ta Có Việc Gì? ",tbOpt);
end

function tbthumuahtb:DoiDo()
local szMsg = "<color=wheat>.............................................?<color>";
local tbOpt=
{
{"<color=yellow>Ta Muốn Dùng 1 Hòa Thị Bích doi huyen tin 10<color>",self.DoiAo,self};
};
Dialog:Say(szMsg, tbOpt);
end
function tbthumuahtb:DoiAo()
local nMyMoney = me.nCashMoney; --GetCash();
local tbItemId2 = {18,1,377,1,0,0}; ------hoa2 thi bich
local nCount2 = me.GetItemCountInBags(18,1,377,1); ---------hoa thi bich

if nCount2 < 1 then
Dialog:Say("<color=wheat>Trong hành trang của bạn không có đủ vật phẩm ta cần:<color=yellow>Tần Lăng - Hòa Thị Bích<color> Đừng Làm Phiền Ta Nhé");
return 0;
else
Task:DelItem(me, tbItemId2, 1);
me.AddItem(18,1,1,10); --huyen tinh 10
GlobalExcute({"Dialog:GlobalNewsMsg_GS", "Người chơi <color=cyan>" ..me.szName.. "................................!"});
me.SendMsgToFriend("Hảo hữu của bạn <color=cyan>" .. me.szName
.. " .........");
Dialog:Say("<........", {"Cảm ơn !"});

end
end


nhưng mình thay thử hòa thị bích có id (18,1,377,1); bằng huyền tinh 11 (khóa) có id (18,1,114,11); thì lúc đỗi nó báo là không có ht 11 khóa mặc dù trong rương đả có bạn xem dùm mình cần thay chổ nào để có thể dùng 1 viên huyền tinh 11 (khóa) lấy 1 viên huyền tinh 10 không khóa như trên cám ơn bạn

nghichtu91
11-11-12, 05:14 PM
tbItemId2 = {18,1,114,1,0,1}
.......
chổ màu đỏ quy định 1 là khóa
0 là không khóa
bất kỳ 1 item nào

lyvanbethao
11-11-12, 06:55 PM
có script nao khong cho minh xin script dùng 1 vật phẩm khóa đỗi 1 vật phẩm theo ý mình đi bạn mình sữa rồi vẫn không dc

nghichtu91
11-11-12, 08:25 PM
có script nao khong cho minh xin script dùng 1 vật phẩm khóa đỗi 1 vật phẩm theo ý mình đi bạn mình sữa rồi vẫn không dc

đổi xem lại đi nhé
.................................................. .......
local nCount2 = me.GetItemCountInBags(18,1,1,1,0,0);
local nCount1 = me.GetItemCountInBags(18,1,1,1,0,1);
cũng là 1 id như khác nhau nhé

và kiểm tra lại id ht tinh đó là 1 hay 114
nếu huyền tình có id là 1 mà khóa thì lạc # nữa thì dùng cái này local nCount1 = me.GetItemCountInBags(18,1,1,1,0,1);
còn nếu là ht có id 114 thì dùng cái này local nCount1 = me.GetItemCountInBags(18,1,114,1,0,1);

lyvanbethao
11-11-12, 11:35 PM
ok thanks bạn .................................................. .................................................. .........................