PDA

View Full Version : [KT] Fix code mua nhiều xu



chaulenba
25-06-14, 08:11 PM
function tbTuiGuangYuan:MuaXu(nValue)
local nCount = me.GetJbCoin()
if nValue == 1 then
if nCount < 50000 then
Dialog:Say("Trong người ngươi hiện chỉ có "..nCount.." Đồng ")
return 0;
end
me.AddItem(18,10,11,2); --Đồng tiền vàng
me.AddJbCoin(-1*50000)
Dialog:Say("Mua thành công 1 xu")
Đoạn code trên trong NPC chỉ mua được 1 xu, vậy muốn mua 10 hay 100 xu thì thêm gì vào các Pro? Xin chỉ giáo, thanhk nhiều

nghichtu91
25-06-14, 08:15 PM
function tbTuiGuangYuan:MuaXu(nValue)
local nCount = me.GetJbCoin()
if nValue == 1 then
if nCount < 50000 then
Dialog:Say("Trong người ngươi hiện chỉ có "..nCount.." Đồng ")
return 0;
end
me.AddItem(18,10,11,2); --Đồng tiền vàng
me.AddJbCoin(-1*50000)
Dialog:Say("Mua thành công 1 xu")
Đoạn code trên trong NPC chỉ mua được 1 xu, vậy muốn mua 10 hay 100 xu thì thêm gì vào các Pro? Xin chỉ giáo, thanhk nhiều
thì thêm 10 dòng như thế này me.AddItem(18,10,11,2)

hoặc dùng vòng lập for. mình nhớ có một hàm add item với n số lượng.

chaulenba
25-06-14, 08:28 PM
thì thêm 10 dòng như thế này me.AddItem(18,10,11,2)

hoặc dùng vòng lập for. mình nhớ có một hàm add item với n số lượng.

Thế cũng được khỏi cần hàm. Thanhk bạn nhiều.

kittyngoc_dp_
25-06-14, 08:31 PM
function tbTuiGuangYuan:MuaXu(nValue)
local nCount = me.GetJbCoin()
if nValue == 1 then
if nCount < 50000 then
Dialog:Say("Trong người ngươi hiện chỉ có "..nCount.." Đồng ")
return 0;
end
me.AddItem(18,10,11,2); --Đồng tiền vàng
me.AddJbCoin(-1*50000)
Dialog:Say("Mua thành công 1 xu")
Đoạn code trên trong NPC chỉ mua được 1 xu, vậy muốn mua 10 hay 100 xu thì thêm gì vào các Pro? Xin chỉ giáo, thanhk nhiều
ntn có ổn hơn ko ^^


function tbTuiGuangYuan:DoiXu()
Dialog:AskString("Nhập số lượng", 16, self.DoiXu2, self);
end

function tbTuiGuangYuan:DoiXu2(nValue)
local nGiaTri = tonumber(nValue);
local tbItemId = {18,10,11,2,0,0};--Đồng tiền vàng
local nCount = me.GetJbCoin()
if nCount < nGiaTri*10000 then
me.Msg(string.format("<color=yellow>Trong người ngươi hiện chỉ có<color> <color=red>"..nCount.."<color> <color=pink>Đồng<color>"));
return 0;
else
me.AddStackItem(18,10,11,2,nil,nGiaTri);
me.AddJbCoin(-10000*nGiaTri)
me.Msg(string.format("<color=yellow>Đổi thành công, nhận được<color> <color=red>%s<color> <color=pink>Xu<color>", nGiaTri))
end;
end

__Jie__
25-06-14, 08:50 PM
Cẩn thận vs phiên bản 2.6 khi sử dụng Asknumber.
Nếu xài kết hợp AutoPk sẽ bị điền max. Đơn giản làm vài dòng.


local nGiaTri = 10000;
function tbTuiGuangYuan:DoiXu()
local szMsg = "Ngươi cần mua gì?";
local tbOpt =
{
{"Ta muốn mua 1 Xu", self.DoiXu2, self,1},
{"Ta muốn mua 10 Xu", self.DoiXu2, self,10},
{"Ta muốn mua 100 Xu", self.DoiXu2, self,100},
{"Kết thúc đối thoại"},
}
Dialog:Say(szMsg, tbOpt);
end


function tbTuiGuangYuan:DoiXu2(nValue)
local nSoTienPhaiTra = nValue * nGiaTri;
local nCount = me.GetJbCoin()
if nCount < nSoTienPhaiTra then
me.Msg("Để mua "..nValue.." Xu nhà ngươi cần có "..(nSoTienPhaiTra/10000).." vạn đồng không khóa");
return 0;
else
me.AddStackItem(18,10,11,2,nil,nValue);
me.AddJbCoin(-nSoTienPhaiTra)
me.Msg("Bạn vừa mua thành công "..nValue.." Xu với giá "..(nSoTienPhaiTra/10000).." vạn đồng")
end;
end


--- Chế độ gộp bài viết ---


ntn có ổn hơn ko ^^


function tbTuiGuangYuan:DoiXu()
Dialog:AskString("Nhập số lượng", 16, self.DoiXu2, self);
end

function tbTuiGuangYuan:DoiXu2(nValue)
local nGiaTri = tonumber(nValue);
local tbItemId = {18,10,11,2,0,0};--Đồng tiền vàng
local nCount = me.GetJbCoin()
if nCount < nGiaTri*10000 then
me.Msg(string.format("<color=yellow>Trong người ngươi hiện chỉ có<color> <color=red>"..nCount.."<color> <color=pink>Đồng<color>"));
return 0;
else
me.AddStackItem(18,10,11,2,nil,nGiaTri);
me.AddJbCoin(-10000*nGiaTri)
me.Msg(string.format("<color=yellow>Đổi thành công, nhận được<color> <color=red>%s<color> <color=pink>Xu<color>", nGiaTri))
end;
end
Đối với bạn này nên xài Asknumber không xài AskString để nhập số

satthupro95
25-06-14, 09:21 PM
Để nil xu có thể Không Khóa nếu k khai báo BindType ở scriptitem.txt nên thêm thay cái nil = {bForceBind=1,} với 1: Khóa, 0: Không Khóa

chaulenba
25-06-14, 10:11 PM
Cẩn thận vs phiên bản 2.6 khi sử dụng Asknumber.
Nếu xài kết hợp AutoPk sẽ bị điền max. Đơn giản làm vài dòng.


local nGiaTri = 10000;
function tbTuiGuangYuan:DoiXu()
local szMsg = "Ngươi cần mua gì?";
local tbOpt =
{
{"Ta muốn mua 1 Xu", self.DoiXu2, self,1},
{"Ta muốn mua 10 Xu", self.DoiXu2, self,10},
{"Ta muốn mua 100 Xu", self.DoiXu2, self,100},
{"Kết thúc đối thoại"},
}
Dialog:Say(szMsg, tbOpt);
end


function tbTuiGuangYuan:DoiXu2(nValue)
local nSoTienPhaiTra = nValue * nGiaTri;
local nCount = me.GetJbCoin()
if nCount < nSoTienPhaiTra then
me.Msg("Để mua "..nValue.." Xu nhà ngươi cần có "..(nSoTienPhaiTra/10000).." vạn đồng không khóa");
return 0;
else
me.AddStackItem(18,10,11,2,nil,nValue);
me.AddJbCoin(-nSoTienPhaiTra)
me.Msg("Bạn vừa mua thành công "..nValue.." Xu với giá "..(nSoTienPhaiTra/10000).." vạn đồng")
end;
end


--- Chế độ gộp bài viết ---


Đối với bạn này nên xài Asknumber không xài AskString để nhập số
Quá hay, coppy dán vào NPC nó không hiện ra mấy dòng cho chọn. Thanhk nhiều

__Jie__
26-06-14, 06:40 AM
Cái này là tôi viết nhanh không test.
Chỉ đại khái nêu lên thuật toán cho bạn hình dung.

Có thể đúng cũng có thể sai . Bạn xem GS báo gì và tự fix
Đâu phải cứ lên xin xỏ ai làm sẳn cho hết rồi vào copy rồi chạy:))