[KT] Code mở item ra số tiền ngẫu nhiên
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Kết quả 1 đến 7 của 7
  1. #1
    Thành Viên
    Ngày tham gia
    Sep 2021
    Bài viết
    14
    Thanks
    47
    Thanked 0 Times in 0 Posts

    Icon3 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

    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;
    end
    Em đang nghi ngờ do vòng lặp for, xin nhờ các anh hướng dẫn giúp ạ.
    Khách viếng thăm hãy cùng nnquyen309 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  2. #2
    Thành Viên Tâm Huyết __Jie__'s Avatar
    Ngày tham gia
    Sep 2008
    Bài viết
    1,320
    Thanks
    256
    Thanked 740 Times in 559 Posts

    Ðề: Code mở item ra số tiền ngẫu nhiên

    return 1 thay vì return 0

    bạn thử lại nhé
    Nhận viết sự kiện Kiếm Thế PC - Mobile
    Auto PK 6 acc Kiếm Thế PC không cần sanboxie hoặc autoupdate
    Web: [Only registered and activated users can see links. ]

  3. 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)

  4. #3
    Thành Viên Tâm Huyết satthupro95's Avatar
    Ngày tham gia
    Jan 2012
    Bài viết
    2,415
    Thanks
    2,567
    Thanked 1,844 Times in 882 Posts

    Ðề: Code mở item ra số tiền ngẫu nhiên

    local pItem = me.AddStackItem(18,1,553,1,nil,tbAward[nIndex]);
    pItem.Bind(1);
    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 add

    Đầ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:
    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);
    Đoạn cuối phần return 0 muốn check số lượng và xóa đổi sang:
    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 satthupro95 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  5. 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)

  6. #4
    Thà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

    Trích dẫn Gửi bởi __Jie__ [Only registered and activated users can see links. ]
    return 1 thay vì return 0

    bạn thử lại nhé
    Dạ em có đổi thử thành return 1 mà chưa được anh ạ.

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

    Trích dẫn Gửi bởi satthupro95 [Only registered and activated users can see links. ]
    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 add

    Đầ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:
    Cảm ơn anh, để em làm thử xem sao ạ.
    Khách viếng thăm hãy cùng nnquyen309 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  7. #5
    Thà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

    Trích dẫn Gửi bởi satthupro95 [Only registered and activated users can see links. ]
    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 add

    Đầ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:
    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:

    Code:
    local tbInfoItem = {18,1,553,1};
    me.AddStackItem(tbInfoItem[1], tbInfoItem[2], tbInfoItem[3], tbInfoItem[4], {bForceBind=nBindType,}, nCount);
    đ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?
    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:
    Code:
    if it.nCount > 1 then
    		it.SetCount(it.nCount-1);
    	else
    		me.DelItem(it);
    	end
    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?
    Khách viếng thăm hãy cùng nnquyen309 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  8. #6
    Thành Viên Tâm Huyết satthupro95's Avatar
    Ngày tham gia
    Jan 2012
    Bài viết
    2,415
    Thanks
    2,567
    Thanked 1,844 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 OnUse
    Khách viếng thăm hãy cùng satthupro95 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  9. The Following 2 Users Say Thank You to satthupro95 For This Useful Post:

    nnquyen309 (16-05-24), sindhand (15-05-24)

  10. #7
    Thà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

    Trích dẫn Gửi bởi satthupro95 [Only registered and activated users can see links. ]
    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 OnUse
    Em đã hiểu, cảm ơn anh lần nữa
    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ự

  1. [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ầu
    Trả lời: 2
    Bài viết cuối: 16-11-15, 04:41 PM
  2. [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ầu
    Trả lời: 4
    Bài viết cuối: 09-08-13, 11:20 PM
  3. Trả lời: 3
    Bài viết cuối: 11-06-12, 11:54 PM
  4. Xin code bán item nhiệm vụ ở shop
    Bởi eva0001 trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 4
    Bài viết cuối: 02-06-11, 11:03 AM
  5. 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ầu
    Trả lời: 1
    Bài viết cuối: 19-05-11, 05:28 AM

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 04:40 AM.
vBulletin®, Copyright ©2000-2011, Jelsoft Enterprises Ltd.
CLBGamesVN không chịu trách nhiệm về Luật Bản Quyền của các tài liệu, bài viết v.v...được đăng tải trên diễn đàn này.
Diễn đàn phát triển dưới sự đóng góp của tất cả thành viên. BQT chỉ là những người thành lập ra sân chơi, quản lý và duy trì về mặt kỹ thuật, nội dung khi hợp lệ.