PDA

View Full Version : [KT] Share Script đổi item bẳng nhập số liệu



anhnhianh
03-09-15, 10:37 AM
từ khi gia nhập clbgamesvn e chưa share bao giờ. có 1 ít thời gian nghiên cứu kiếm thế nên e share script đổi item bằng nhập số liệu cho những người chưa biết.
Ưu điểm: nhanh gọn lẹ đỡ cực
Nhược điểm: khi ko đủ item thì nó bị treo chút nhưng ko bị sao cả (cái này e cũng chả biết làm sao)


function tbNpc:nhapsolieu()
Dialog:AskNumber("Nhập số liệu",200,self.ghepdo,self, nSoLuong);
end
function tbNpc:ghepdo(nSoLuong)
if me.CountFreeBagCell() < nSoLuong then
Dialog:Say("Không đủ " .. nSoLuong .. " Ô Trống Trong Túi Hành Trang");
return 0;
end
-------------------------------------------------
local tbItemId1 = {18,1,558,1,0,0};
local nCount1 = me.GetItemCountInBags(18,1,558,1);
-------------------------------------------------
if nCount1 < nSoLuong then
Dialog:Say("Thích ghi gì thì nhập vào");
return 0;
else
Task:DelItem(me, tbItemId1, nSoLuong);
-------------------------------------------------
me.AddStackItem(18,1,561,1,{bForceBind=1},nSoLuong );
end
end
trình ko đc cao nên share đc có thế :D e ko muốn gạch xây nhà đâu ạ :D

ngoài lề tí :) có ai dự định mở sever 2.6 thì cho tớ tham gia với nhá :D buồn quá code thì đc nhưng ko đủ điều kiện mở sever :D

xem nhớ để lại thanks nhá

nobitajx2
03-09-15, 12:24 PM
script add vật phẩm theo id hình như đã có ở SV nào đó nhưng không nhớ, k biết phải thớt viết script cho SV đó k?

anhnhianh
03-09-15, 12:37 PM
script add vật phẩm theo id hình như đã có ở SV nào đó nhưng không nhớ, k biết phải thớt viết script cho SV đó k?

ở sv nào đó thì tôi ko biết nhưng sv tôi và đa số các sever 2.6 share đều ko có nên mới share cho ae. Còn sv mà bác nói có thì cái đấy tôi ko biết và cũng chả viết cho sv nào cả :)

__Jie__
03-09-15, 08:31 PM
Lười lập topc góp thêm 1 script .
Code dưới sẽ giải quyết được vấn đề treo máy của chủ topic khi đổi số lượng lớn :)


function tbNpc:OnDialog()
local szMsg = "Nhà ngươi muốn cần gì ? ";
local tbOpt =
{

{"Nộp Tuyết Thảo Đan", self.TuyetThaoDan, self,1},
{"Nộp 10 Tuyết Thảo Đan", self.TuyetThaoDan, self,10},

{"Kết thúc đối thoại"},
}


Dialog:Say(szMsg, tbOpt);
end
local tbTuyetThaoDan = {18,1,20392,1};
local tbHuyetThanhLo = {18,1,20392,2};
local tbHoLo = {18,1,20392,3};
function tbNpc:TuyetThaoDan(nValue)
local nNeedBag = 10;

if me.CountFreeBagCell() < nNeedBag then
local szAnnouce = "Hành trang yêu cầu "..nNeedBag.." ô trống";
Dialog:Say(szAnnouce);
return 0;
end
Dialog:OpenGift("Hãy đặt vào <color=yellow>" ..(nValue*10).. " Tuyết Thảo Đan và "..nValue.." Hồ Lô<color>", nil ,{self.OnOpenOK, self, nValue});
end
function tbNpc:OnOpenOK(nValue,tbItemObj)
local bForbidItem = 0;
local nCount = 0;
local nCountHL = 0;


for i, pItem in pairs(tbItemObj) do
if (pItem[1].nGenre == tbTuyetThaoDan[1] and
pItem[1].nDetail == tbTuyetThaoDan[2] and
pItem[1].nParticular == tbTuyetThaoDan[3] and
pItem[1].nLevel == tbTuyetThaoDan[4]) then
nCount = nCount + pItem[1].nCount;
elseif (pItem[1].nGenre == tbHoLo[1] and
pItem[1].nDetail == tbHoLo[2] and
pItem[1].nParticular == tbHoLo[3] and
pItem[1].nLevel == tbHoLo[4]) then
nCountHL = nCountHL + pItem[1].nCount;
else
bForbidItem = 1;
break;
end
end
if (bForbidItem > 0) then
Dialog:Say("Nguyên liệu đưa vào không phải nguyên liêu sự kiện");
return 0;
end
if (nCount ~= (nValue*10)) or (nCountHL ~= nValue) then
Dialog:Say("Hãy đặt vào <color=yellow>" ..(nValue*10).. " Tuyết Thảo Đan và "..nValue.." Hồ Lô<color>");
return 0;
end
for _, pItem in pairs(tbItemObj) do
if me.DelItem(pItem[1]) ~= 1 then
return 0;
end
end
me.AddStackItem(18,1,20392,4,nil,nValue);
return 1;
end

anhnhianh
04-09-15, 11:00 AM
Lười lập topc góp thêm 1 script .
Code dưới sẽ giải quyết được vấn đề treo máy của chủ topic khi đổi số lượng lớn :)


code của pro hơi phức tạp tí nhỉ :)

__Jie__
04-09-15, 01:00 PM
code của pro hơi phức tạp tí nhỉ :)

uhm nhìn cũng khá phức tạp nhưng làm quen rồi nó cũng dể thôi :D

anhnhianh
04-09-15, 01:02 PM
uhm nhìn cũng khá phức tạp nhưng làm quen rồi nó cũng dể thôi :D

cái này tbItemObj với bForbidItem nghĩa là gì vậy?

NhanVT
04-09-15, 01:09 PM
bForbidItem chỉ là check Nguyên liệu đưa vào có phải là nguyên liêu sự kiện sự kiện hay ko thui, đặt cho dễ quản lý, ncheck, bCheckOK,...
Mấy cái srcript dạng này có nhiều trong \script\event

thuannd203
05-09-15, 10:55 PM
từ khi gia nhập clbgamesvn e chưa share bao giờ. có 1 ít thời gian nghiên cứu kiếm thế nên e share script đổi item bằng nhập số liệu cho những người chưa biết.
Ưu điểm: nhanh gọn lẹ đỡ cực
Nhược điểm: khi ko đủ item thì nó bị treo chút nhưng ko bị sao cả (cái này e cũng chả biết làm sao)


function tbNpc:nhapsolieu()
Dialog:AskNumber("Nhập số liệu",200,self.ghepdo,self, nSoLuong);
end
function tbNpc:ghepdo(nSoLuong)
if me.CountFreeBagCell() < nSoLuong then
Dialog:Say("Không đủ " .. nSoLuong .. " Ô Trống Trong Túi Hành Trang");
return 0;
end
-------------------------------------------------
local tbItemId1 = {18,1,558,1,0,0};
local nCount1 = me.GetItemCountInBags(18,1,558,1);
-------------------------------------------------
if nCount1 < nSoLuong then
Dialog:Say("Thích ghi gì thì nhập vào");
return 0;
else
Task:DelItem(me, tbItemId1, nSoLuong);
-------------------------------------------------
me.AddStackItem(18,1,561,1,{bForceBind=1},nSoLuong );
end
end
trình ko đc cao nên share đc có thế :D e ko muốn gạch xây nhà đâu ạ :D

ngoài lề tí :) có ai dự định mở sever 2.6 thì cho tớ tham gia với nhá :D buồn quá code thì đc nhưng ko đủ điều kiện mở sever :D

xem nhớ để lại thanks nhá

Không biết có phải ko, nhưng hình như những code nhập số liệu, nếu đang mở auto pk sẽ nhập full số

satthupro95
05-09-15, 11:02 PM
Dùng autoPk sẽ nhập full số nhé :3