minhduc_aa
05-02-17, 07:26 AM
Hiện tại mình gặp chút khó mò không ra, mong anh em giúp minh họa để mình hiểu hàm này:
CalcItemCount(3,tbProp[1],tbProp[2],tbProp[3],-1): nếu return 0: không or 1: có : dùng để xác định có vật phẩm đó trong bảng giao ko .
Ở đây mình chưa hiểu tbProp nó là gì ạ và nếu đặt vào một ngữ cảnh là đếm số lượng (đồ xếp chồng) để đổi lấy tiền vạn ở npc thì sẽ viết thế nào. Ví dụ: Mình cần đổi 1 Tướng quân lệnh (genre=6,detailtype=1,particular=4660), khi đó nếu sai sẽ trả về hàm GiveItemUi, nếu đúng 1 cái (genre=6,detailtype=1,particular=4660) thì trả cho nhân vật 20 vạn (Earn(200000)); nếu sai số lượng (genre=6,detailtype=1,particular=4660) bỏ vào bảng giao, trả về GiveItemUi . Mình đã viết tạm một đoạn này để dùng tạm trong khi chờ anh em xem hộ, đoạn này mình viết có lỗi là đếm vật phẩm không xếp chồng, chứ bỏ Tướng Quân lệnh (là đồ xếp chồng) vào thì nó xóa hết, không check số lượng và chỉ trả về 20 vạn.
function tql()
local tab_Content = {
"Ta muèn ®æi Tíng Qu©n LÖnh lÊy tiÒn thëng tõ triÒu ®×nh /doitienthuong",
"Ta xin ®a t¹ triÒu ®×nh."
}
Say(" §¹i hiÖp muèn ®æi bé trang bÞ g×? ", getn(tab_Content), tab_Content);
end;
function doitienthuong()
GiveItemUI("Giao Tíng Qu©n LÖnh", "Xin mêi bá Tíng Qu©n LÖnh vµo « bªn díi, mçi lÇn mét c¸i duy nhÊt", "submit_doitienthuong", "no")
end
function submit_doitienthuong(nCount)
if (nCount ~= 1) then
Say("Bá vµo sè lîng kh«ng ®óng 1!", 2, "Xin lçi! Ta sÏ bá l¹i./doitienthuong", "Ta sÏ quay l¹i sau/no")
return
end
local nItemIdx = GetGiveItemUnit(1);
local ng, nd, np = GetItemProp(nItemIdx);
if (ng == 6 and nd == 1 and np == 4660) then
RemoveItemByIndex(nItemIdx);
Earn(200000);
Msg2Player("Ngêi nhËn ®îc <color=yellow>20 v¹n<color> lîng.");
else
Say("VËt phÈm b¹n ®Ó vµo kh«ng chÝnh x¸c!", 2, "Xin lçi! Ta sÏ bá l¹i./doitienthuong", "Ta sÏ quay l¹i sau/no");
end
end
function no()
end
Xin cám ơn các bạn, anh em ghé qua giúp đỡ
CalcItemCount(3,tbProp[1],tbProp[2],tbProp[3],-1): nếu return 0: không or 1: có : dùng để xác định có vật phẩm đó trong bảng giao ko .
Ở đây mình chưa hiểu tbProp nó là gì ạ và nếu đặt vào một ngữ cảnh là đếm số lượng (đồ xếp chồng) để đổi lấy tiền vạn ở npc thì sẽ viết thế nào. Ví dụ: Mình cần đổi 1 Tướng quân lệnh (genre=6,detailtype=1,particular=4660), khi đó nếu sai sẽ trả về hàm GiveItemUi, nếu đúng 1 cái (genre=6,detailtype=1,particular=4660) thì trả cho nhân vật 20 vạn (Earn(200000)); nếu sai số lượng (genre=6,detailtype=1,particular=4660) bỏ vào bảng giao, trả về GiveItemUi . Mình đã viết tạm một đoạn này để dùng tạm trong khi chờ anh em xem hộ, đoạn này mình viết có lỗi là đếm vật phẩm không xếp chồng, chứ bỏ Tướng Quân lệnh (là đồ xếp chồng) vào thì nó xóa hết, không check số lượng và chỉ trả về 20 vạn.
function tql()
local tab_Content = {
"Ta muèn ®æi Tíng Qu©n LÖnh lÊy tiÒn thëng tõ triÒu ®×nh /doitienthuong",
"Ta xin ®a t¹ triÒu ®×nh."
}
Say(" §¹i hiÖp muèn ®æi bé trang bÞ g×? ", getn(tab_Content), tab_Content);
end;
function doitienthuong()
GiveItemUI("Giao Tíng Qu©n LÖnh", "Xin mêi bá Tíng Qu©n LÖnh vµo « bªn díi, mçi lÇn mét c¸i duy nhÊt", "submit_doitienthuong", "no")
end
function submit_doitienthuong(nCount)
if (nCount ~= 1) then
Say("Bá vµo sè lîng kh«ng ®óng 1!", 2, "Xin lçi! Ta sÏ bá l¹i./doitienthuong", "Ta sÏ quay l¹i sau/no")
return
end
local nItemIdx = GetGiveItemUnit(1);
local ng, nd, np = GetItemProp(nItemIdx);
if (ng == 6 and nd == 1 and np == 4660) then
RemoveItemByIndex(nItemIdx);
Earn(200000);
Msg2Player("Ngêi nhËn ®îc <color=yellow>20 v¹n<color> lîng.");
else
Say("VËt phÈm b¹n ®Ó vµo kh«ng chÝnh x¸c!", 2, "Xin lçi! Ta sÏ bá l¹i./doitienthuong", "Ta sÏ quay l¹i sau/no");
end
end
function no()
end
Xin cám ơn các bạn, anh em ghé qua giúp đỡ