Kết quả 1 đến 7 của 7
-
12-05-24, 02:38 PM #1Thành Viên
- Ngày tham gia
- Sep 2021
- Bài viết
- 14
- Thanks
- 47
- Thanked 0 Times in 0 Posts
Code mở item ra số tiền ngẫu nhiên
Em tạo 1 item mới Túi Tiền Du Long, viết script cho nó mở ra random số tiền trong list là 10 ,20, 50, 100, 200. (dựa theo code của rương BVD)
Mở túi thì script chạy đúng random số tiền, nhưng LỖI là sau khi chuột phải mở thì cái túi không mất đi, nó cứ nằm nguyên đó và click phải sẽ mở tiếp vô tận
Em đang nghi ngờ do vòng lặp for, xin nhờ các anh hướng dẫn giúp ạ.Code:local tbTuiTDL = Item:GetClass("tuitiendulong"); function tbTuiTDL:OnUse() if me.CountFreeBagCell() < 1 then me.Msg("Túi của bạn đã đầy, cần ít nhất 1 ô trống."); return 0; end local i = 0; local nAdd = 0; local nRand = 0; local nIndex = 1; -- random nRand = MathRandom(1, 1000); -- fill 3 rate local tbRate = {500, 300, 140, 50, 10}; local tbAward = {10 ,20, 50, 100, 200}; -- get index for i = 1, 5 do nAdd = nAdd + tbRate[i]; if nAdd >= nRand then nIndex = i; break; end end --local pItem = me.AddItem(18, 1, 1, tbAward[nIndex]); local pItem = me.AddStackItem(18,1,553,1,nil,tbAward[nIndex]); pItem.Bind(1); me.Msg("Bạn nhận được <color=yellow>"..pItem.szName.."<color>"); return 0; endKhách viếng thăm hãy cùng nnquyen309 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
12-05-24, 09:10 PM #2
-
Các thành viên gởi lời cảm ơn đến __Jie__ vì bài viết này !
nnquyen309 (15-05-24)
-
14-05-24, 01:47 PM #3Thành Viên Tâm Huyết
- Ngày tham gia
- Jan 2012
- Bài viết
- 2,420
- Thanks
- 2,567
- Thanked 1,851 Times in 882 Posts
Ðề: Code mở item ra số tiền ngẫu nhiên
Lỗi ngay từ đoạn này rồi bạn, pItem chỉ sử dụng đối với me.AddItem. AddStackItem chỉ trả về số lượng vật phẩm được addlocal pItem = me.AddStackItem(18,1,553,1,nil,tbAward[nIndex]);
pItem.Bind(1);
Đầu tiên phải kiểm tra xem hàm rand có ra kết quả không rồi mới thực thi hàm dưới:
Đoạn cuối phần return 0 muốn check số lượng và xóa đổi sang:if not tbAward[nIndex] then
-- Không có dữ liệu hàm random
return;
end
local tbInfoItem = {18,1,553,1};
local nBindType = 0; -- 0: không khóa, 1: khóa
local nCount = tbAward[nIndex];
me.AddStackItem(tbInfoItem[1], tbInfoItem[2], tbInfoItem[3], tbInfoItem[4], {bForceBind=nBindType,}, nCount);
if it.nCount > 1 then
it.SetCount(it.nCount-1);
else
me.DelItem(it);
endKhách viếng thăm hãy cùng satthupro95 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
Các thành viên gởi lời cảm ơn đến satthupro95 vì bài viết này !
nnquyen309 (15-05-24)
-
15-05-24, 02:20 AM #4Thành Viên
- Ngày tham gia
- Sep 2021
- Bài viết
- 14
- Thanks
- 47
- Thanked 0 Times in 0 Posts
Ðề: Code mở item ra số tiền ngẫu nhiên
Khách viếng thăm hãy cùng nnquyen309 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
15-05-24, 03:14 AM #5Thành Viên
- Ngày tham gia
- Sep 2021
- Bài viết
- 14
- Thanks
- 47
- Thanked 0 Times in 0 Posts
Ðề: Code mở item ra số tiền ngẫu nhiên
Em đã làm thành công theo hướng dẫn của anh ạ !!! Code rất xịn, Cảm ơn anh nhiều.
Nếu tiện xin cho em hỏi thêm về code:
đoạn này phải gán biến riêng tbInfoItem và khai giá trị [1], [2], .... có phải là để cố định giá trị của item sau mỗi lần vòng lặp for nó chạy hay không anh?Code:local tbInfoItem = {18,1,553,1}; me.AddStackItem(tbInfoItem[1], tbInfoItem[2], tbInfoItem[3], tbInfoItem[4], {bForceBind=nBindType,}, nCount);
Vì sao lại không input trực tiếp ạ: me.AddStackItem(18, 1, 553, 1, {bForceBind=nBindType,}, nCount);
Thêm nữa cho em hỏi đoạn cuối:
it.nCout thì "it" lúc này là sẽ gọi trực tiếp về vật phẩm item mình đang thao tác đúng không anh?Code:if it.nCount > 1 then it.SetCount(it.nCount-1); else me.DelItem(it); end
Khách viếng thăm hãy cùng nnquyen309 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
15-05-24, 06:46 PM #6Thành Viên Tâm Huyết
- Ngày tham gia
- Jan 2012
- Bài viết
- 2,420
- Thanks
- 2,567
- Thanked 1,851 Times in 882 Posts
Ðề: Code mở item ra số tiền ngẫu nhiên
Bạn có thể gán thông tin của item trực tiếp cũng được, nhưng làm vậy sau này muốn thay đổi sẽ phải tìm lại để chỉnh phức tạp hơn là khai báo 1 biến, có thể biến đổi chút bạn có thể khai báo nó thành như này:
local tbTuiTDL = Item:GetClass("tuitiendulong");
tbTuiTDL.tbInfoItem = {18,1,553,1};
tbTuiTDL.nBindType = 1; -- 0: Khong khoa, 1: Khoa
Sau này muốn đổi nó thành vật phẩm khác chỉ cần thay đổi chỗ tbTuiTDL.tbInfoItem và nBindType, không phải mò xuống tận phía dưới để đổi
Ở đoạn me.AddStackItem(tbInfoItem[1], tbInfoItem[2], tbInfoItem[3], tbInfoItem[4], {bForceBind=nBindType,}, nCount);
đổi thành me.AddStackItem(self.tbInfoItem[1], self.tbInfoItem[2], self.tbInfoItem[3], self.tbInfoItem[4], {bForceBind = self.nBindType,}, nCount);
it chỉ sử dụng được nếu nó đang thực thi ở function OnUseKhách viếng thăm hãy cùng satthupro95 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
The Following 2 Users Say Thank You to satthupro95 For This Useful Post:
nnquyen309 (16-05-24), sindhand (15-05-24)
-
16-05-24, 02:02 AM #7Thành Viên
- Ngày tham gia
- Sep 2021
- Bài viết
- 14
- Thanks
- 47
- Thanked 0 Times in 0 Posts
Ðề: Code mở item ra số tiền ngẫu nhiên
Khách viếng thăm hãy cùng nnquyen309 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
Các Chủ đề tương tự
-
[MU] [Giúp đỡ] Config nhiệm vụ 1,2,3 không rớt item nhiệm vụ
Bởi hoaitam1990 trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 2Bài viết cuối: 16-11-15, 04:41 PM -
[KT] Tiền Du Long (100) Rơi tiền ngẫu nhiên ?
Bởi newhorizon1811 trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 4Bài viết cuối: 09-08-13, 11:20 PM -
[MU] Cần xin tất cả các code item ngọc của EF (đặc biệt là cần ngọc ngũ tiễn)
Bởi mutest trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 3Bài viết cuối: 11-06-12, 11:54 PM -
Xin code bán item nhiệm vụ ở shop
Bởi eva0001 trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 4Bài viết cuối: 02-06-11, 11:03 AM -
Hỏi Cách Đưa Main Từ nhiều Ngôn Ngữ Về 1 Ngôn Ngữ Duy Nhất
Bởi wan0124 trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 1Bài viết cuối: 19-05-11, 05:28 AM





Trả lời kèm Trích dẫn