[KT] HELP! Script check số lượng vật phẩm và item
Hello & Welcome to our community. Is this your first visit? Đăng Ký
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Trang 1 của 2 1 2 CuốiCuối
Kết quả 1 đến 10 của 14
  1. #1
    Thành Viên GameZone
    Ngày tham gia
    Jul 2012
    Đang ở
    TP HCM - Quận Bình Tân
    Bài viết
    96
    Thanks
    28
    Thanked 12 Times in 11 Posts

    HELP! Script check số lượng vật phẩm và item

    Mình dựa trên script đổi manh ghép ngựa, áo, nón hoàng kim và bạch kim để viết lại 1 script đổi trang bị khác
    mà sau khi sửa ID vật phẩm thì nó báo lỗi chỗ check số lượng vật phẩm và chỗ check có phải vật phẩm đó ko.
    Ai bik thì giúp mình với, cảm ơn mọi người nhìu ^^
    Khách viếng thăm hãy cùng neverbackdown xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  2. Các thành viên gởi lời cảm ơn đến neverbackdown vì bài viết này !

    canhchung89 (22-12-12)

  3. #2
    Thành Viên GameZone
    Ngày tham gia
    Jul 2012
    Đang ở
    TP HCM - Quận Bình Tân
    Bài viết
    96
    Thanks
    28
    Thanked 12 Times in 11 Posts

    Ðề: HELP! Script check số lượng vật phẩm và item

    UPPPPPPPPPPPPPPPPPPPPPPPPP giúp mình với các bạn
    Khách viếng thăm hãy cùng neverbackdown xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

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

    Ðề: HELP! Script check số lượng vật phẩm và item

    Bạn có thể post file scipt đó lên đây k ?
    THeo mình nghĩ lỗi chỉ có những trường hợp sau :
    +Do cái tổng rate k = số rate của các vật phẩm cộng lại
    +Do chỗ vòng lặp i chạy từ 1 đến số vật phẩm . Ví dụ bạn khai 5 vật phẩm thì i chạy từ 1 đến 5
    +Do id item của bạn k có trong sciptitem nó sẽ báo nil value
    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. #4
    Thành Viên GameZone
    Ngày tham gia
    Jul 2012
    Đang ở
    TP HCM - Quận Bình Tân
    Bài viết
    96
    Thanks
    28
    Thanked 12 Times in 11 Posts

    Ðề: HELP! Script check số lượng vật phẩm và item

    Trích dẫn Gửi bởi satthupro95 [Only registered and activated users can see links. ]
    Bạn có thể post file scipt đó lên đây k ?
    THeo mình nghĩ lỗi chỉ có những trường hợp sau :
    +Do cái tổng rate k = số rate của các vật phẩm cộng lại
    +Do chỗ vòng lặp i chạy từ 1 đến số vật phẩm . Ví dụ bạn khai 5 vật phẩm thì i chạy từ 1 đến 5
    +Do id item của bạn k có trong sciptitem nó sẽ báo nil value
    Mong bạn giúp đỡ

    Code:
    local tbNpc = Npc:GetClass("changeahk");
    local REQUIRE_ITEM = { 
    [1] = 
    			{
    				{
    					{
    						string.format("%s,%s,%s,%s", 18, 1, 377, 1),
    
    					}, 
    					3,
    				},
    				{
    					{
    						string.format("%s,%s,%s,%s", 1, 16, 13, 1),
    					}, 
    					1,
    				},
    			},[2] = 
    			{
    				{
    					{
    						string.format("%s,%s,%s,%s", 18, 1, 377, 1),
    
    					}, 
    					6,
    				},
    				{
    					{
    						string.format("%s,%s,%s,%s", 1, 16, 16, 2),
    					}, 
    					1,
    				},
    			},[3] = 
    			{
    				{
    					{
    						string.format("%s,%s,%s,%s", 18, 1, 377, 1),
    					}, 
    					9,
    				},
    				{
    					{
    						string.format("%s,%s,%s,%s", 1, 16, 17, 2),
    					}, 
    					1,
    				},
    			},[4] = 
    			{
    				{
    					{
    						string.format("%s,%s,%s,%s", 18, 1, 377, 1),
    					}, 
    					12,
    				},
    				{
    					{
    						string.format("%s,%s,%s,%s", 1, 16, 18, 2),
    					}, 
    					1,
    				},
    			},[5] = 
    			{
    				{
    					{
    						string.format("%s,%s,%s,%s", 18, 1, 377, 1),
    					}, 
    					15,
    				},
    				{
    					{
    						string.format("%s,%s,%s,%s", 1, 16, 19, 2),
    					}, 
    					1,
    				},
    			},
    		};
    function tbDoian:OnDialog()
    	local nState	= me.GetTask(3006, 2);
    	local szButtonColor	= (nState < 20 and "") or "<color=gray>";
    	local tbOpt = 
    	{
    	{"<color=yellow>Ta Muốn Nâng Cấp Long Ấn<color>", self.longanupdate, self},
    	 {"<color=yellow>Ta Muốn Nâng Cấp Luân Hồi Ấn<color>", self.luanhoianupdate, self},
    
    		{"Kết thúc đối thoại"},
    	}
    
    
    
    		Dialog:Say("<color=yellow>Nhà Sưu Tập Vũ Khí:<color> \nXin chào <color=cyan>" ..me.szName.. "<color> ! ",tbOpt);
    end
    	function tbDoian:luanhoianupdate()
    	local nValue = me.nSeries;
    
    	if (nValue == 0) then
    		local tbOpt = {{"Kết thúc đối thoại"}};
    		local szMsg = "<color=cyan>" .. me.szName .. "<color> hãy gia nhập môn phái";
    		Dialog:Say(szMsg, tbOpt);
    		return;
    	end;
    local szMsg = "Ngươi muốn nâng cấp ấn?";
    local tbItemId2 = {1,16,13,1,0,0};
    local tbItemId3 = {1,16,16,2,0,0};
    local tbItemId4 = {1,16,17,2,0,0};
    local tbItemId5 = {1,16,18,2,0,0};
    local tbItemId6 = {1,16,19,2,0,0};
    local tbItemId7 = {1,16,20,2,0,0};
    local nCount2 = me.GetItemCountInBags(1,16,13,1);
    local nCount3 = me.GetItemCountInBags(1,16,16,2);
    local nCount4 = me.GetItemCountInBags(1,16,17,2);
    local nCount5 = me.GetItemCountInBags(1,16,18,2);
    local nCount6 = me.GetItemCountInBags(1,16,19,2);
    local nCount7 = me.GetItemCountInBags(1,16,20,2);
    if nCount2 < 1 or nCount3 < 1 or nCount4 < 1 or nCount5 < 1 or nCount6 < 1 or nCount7 < 1 then
    	Dialog:Say("<color=wheat>Trong hành trang của bạn không có vật phẩm yêu cầu<color>");
    		return 0;
    	else if nCount2 == 2
    	local tbOpt = {
    	{"Nâng Cấp Luân Hồi Ấn[Thường]", self.updateluanhoianthuong1, self},
    			}
    	Dialog:Say(szMsg, tbOpt);
    		else if nCount3 == 3
    		{"Nâng Cấp Luân Hồi Ấn[Sơ]", self.updateluanhoianthuong2, self},
    			}
    	Dialog:Say(szMsg, tbOpt);
    			else if nCount4 == 4
    		{"Nâng Cấp Luân Hồi Ấn[Trung]", self.updateluanhoianthuong3, self},
    			}
    	Dialog:Say(szMsg, tbOpt);
    			else if nCount5 == 5
    		{"Nâng Cấp Luân Hồi Ấn[Cao]", self.updateluanhoianthuong4, self},
    			}
    	Dialog:Say(szMsg, tbOpt);
    				else if nCount6 == 6
    		{"Nâng Cấp Luân Hồi Ấn[Hồn]", self.updateluanhoianthuong5, self},
    			}
    	Dialog:Say(szMsg, tbOpt);
    				else if nCount7 == 7
    		{"Nâng Cấp Luân Hồi Ấn[Thần]", self.updateluanhoianthuong6, self},
    			}
    	Dialog:Say(szMsg, tbOpt);
    
    end
    	end
    	
    	end
    	
    	
    function tbNpc:updateluanhoianthuong1()
    local nValue = me.nSeries;
    	local szMsg = "Ta sẽ giúp nhà ngươi Nâng cấp Ấn,nhưng phải trả công cho ta 100 Vạn Lượng,khả năng thành công là không lớn.nhà ngươi có chấp nhận không?";
    	
    		szMsg = "Vui lòng đặt Luân Hòi Ấn + 3HTB vào.Khả năng hợp thành là không cao.Nhà Ngươi hãy suy nghĩ thật kĩ";
    	Dialog:OpenGift(szMsg, nil, {self.OnOpenGiftOk, self, nValue});
    end;
    
    function tbNpc:updateluanhoianthuong2()
    local nValue = me.nSeries+1;
    	local szMsg = "Ta sẽ giúp nhà ngươi Nâng cấp Ấn,nhưng phải trả công cho ta 200 Vạn Lượng,khả năng thành công là không lớn.nhà ngươi có chấp nhận không?";
    	
    		szMsg = "Vui lòng đặt Huyền Vũ Án + 6HTB vào.Khả năng hợp thành là không cao.Nhà Ngươi hãy suy nghĩ thật kĩ";
    	Dialog:OpenGift(szMsg, nil, {self.OnOpenGiftOk, self, nValue});
    end;
    function tbNpc:updateluanhoianthuong3()
    local nValue = me.nSeries+2;
    	local szMsg = "Ta sẽ giúp nhà ngươi Nâng cấp Ấn,nhưng phải trả công cho ta 300 Vạn Lượng,khả năng thành công là không lớn.nhà ngươi có chấp nhận không?";
    	
    		szMsg = "Vui lòng đặt Bạch Hỗ Ấn + 9HTB vào.Khả năng hợp thành là không cao.Nhà Ngươi hãy suy nghĩ thật kĩ";
    	Dialog:OpenGift(szMsg, nil, {self.OnOpenGiftOk, self, nValue});
    end;
    function tbNpc:updateluanhoianthuong4()
    local nValue = me.nSeries+3;
    	local szMsg = "Ta sẽ giúp nhà ngươi Nâng cấp Ấn,nhưng phải trả công cho ta 400 Vạn Lượng,khả năng thành công là không lớn.nhà ngươi có chấp nhận không?";
    	
    		szMsg = "Vui lòng đặt Chu Tước Ấn + 12HTB vào.Khả năng hợp thành là không cao.Nhà Ngươi hãy suy nghĩ thật kĩ";
    	Dialog:OpenGift(szMsg, nil, {self.OnOpenGiftOk, self, nValue});
    end;
    function tbNpc:updateluanhoianthuong5()
    local nValue = me.nSeries+4;
    	local szMsg = "Ta sẽ giúp nhà ngươi Nâng cấp Ấn,nhưng phải trả công cho ta 500 Vạn Lượng,khả năng thành công là không lớn.nhà ngươi có chấp nhận không?";
    	
    		szMsg = "Vui lòng đặt Thanh Long Ấn + 15HTB vào.Khả năng hợp thành là không cao.Nhà Ngươi hãy suy nghĩ thật kĩ";
    	Dialog:OpenGift(szMsg, nil, {self.OnOpenGiftOk, self, nValue});
    end;
    
    function tbNpc:OnOpenGiftOk(nValue, tbItemObj)
    local nFaction = me.nFaction;
    local nRouteId = me.nRouteId;
    local nSex = me.nSex;
    local nMyMoney	= me.nCashMoney; --GetCash();
    	
    	if (nMyMoney < 1000000) then
    		Dialog:Say("Không đủ Tiền Vạn, có đủ rồi hãy quay lại.");
    		return 0;
    	end
    		
    	local tbItemList	= {};
    		
    	for _, pItem in pairs(tbItemObj) do
    		if (self:ChechItem(pItem, REQUIRE_ITEM[nValue], tbItemList) ~= 1) then
    			me.Msg("Có Vật Phẩm không đủ tiêu chuẩn.");
    			return 0;
    		end
    	end;
    
    	local bResult 	= false;
    	for i = 1, #REQUIRE_ITEM[nValue] do
    		if (REQUIRE_ITEM[nValue][i][2] ~= tbItemList[i]) then
    			bResult = true;
    		end
    	end;
    	
    	if (bResult) then
    		me.Msg("Số lượng Mảnh Ghép Cực Phẩm không đúng.");
    		return 0;
    	end;
    	
    	for _, pItem in pairs(tbItemObj) do
    		if me.DelItem(pItem[1]) ~= 1 then
    			return 0;
    		end;
    	end;
    if (nValue == 1) then
    	me.CostMoney(1000000,0);
    	local i = 0;
    	local nAdd = 0;
    	local nRand = 0;
    	local nIndex = 0;
    	-- random
    	nRand = MathRandom(1, 10000);
    	-- fill 3 rate	
    	local tbRate = {4000, 6000};
    	local tbAward = 
    {
    	[1] = {1, 16, 13, 1};
    	[2] = {1,16,16,2};
    }
    	
    	for i = 1, 2 do
    		nAdd = nAdd + tbRate[i];
    		if nAdd >= nRand then
    			nIndex = i;
    			break;
    		end
    	end
    	local pItem = me.AddItem(unpack(tbAward[nIndex]));
    	pItem.Bind(1);
    	if (nIndex == 2) then
    		local szMsg = string.format("Chúc mừng người chơi <color=cyan>%s<color> đã may mắn Hợp Thành thành công <color=cyan>%s<color>", me.szName, pItem.szName);
    	KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
    	KDialog.MsgToGlobal(szMsg);			
    	me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName 
    		.. "<color>] Hợp Thành thành công <color=cyan>"
    	.. pItem.szName .."<color>");                                  
    	me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");
    	elseif (nIndex == 1) then
    		me.Msg("Hợp thành thất bại nhận được <color=yellow>"..pItem.szName.."<color>.");
    
    	end
    	end;
    	
    	if (nValue == 2) then
    		me.CostMoney(2000000,0);
    	local i = 0;
    	local nAdd = 0;
    	local nRand = 0;
    	local nIndex = 0;
    	-- random
    	nRand = MathRandom(1, 10000);
    	-- fill 3 rate	
    	local tbRate = {4000, 6000};
    	local tbAward = 
    {
    	[1] = {1, 16, 13, 1};
    	[2] = {1,16,17,2};
    }
    	
    	for i = 1, 2 do
    		nAdd = nAdd + tbRate[i];
    		if nAdd >= nRand then
    			nIndex = i;
    			break;
    		end
    	end
    	local pItem = me.AddItem(unpack(tbAward[nIndex]));
    	pItem.Bind(1);
    	if (nIndex == 2) then
    		local szMsg = string.format("Chúc mừng người chơi <color=cyan>%s<color> đã may mắn Hợp Thành thành công <color=cyan>%s<color>", me.szName, pItem.szName);
    	KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
    	KDialog.MsgToGlobal(szMsg);			
    	me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName 
    		.. "<color>] Hợp Thành thành công <color=cyan>"
    	.. pItem.szName .."<color>");                                  
    	me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");
    	elseif (nIndex == 1) then
    		me.Msg("Hợp thành thất bại nhận được <color=yellow>"..pItem.szName.."<color>.");
    
    	end
    	end;
    	if (nValue == 3) then
    	me.CostMoney(3000000,0);
    	local i = 0;
    	local nAdd = 0;
    	local nRand = 0;
    	local nIndex = 0;
    	-- random
    	nRand = MathRandom(1, 10000);
    	-- fill 3 rate	
    	local tbRate = {4000, 6000};
    	local tbAward = 
    {
    	[1] = {1, 16, 13, 1};
    	[2] = {1,16,18,2};
    }
    	
    	for i = 1, 2 do
    		nAdd = nAdd + tbRate[i];
    		if nAdd >= nRand then
    			nIndex = i;
    			break;
    		end
    	end
    	local pItem = me.AddItem(unpack(tbAward[nIndex]));
    	pItem.Bind(1);
    	if (nIndex == 2) then
    		local szMsg = string.format("Chúc mừng người chơi <color=cyan>%s<color> đã may mắn Hợp Thành thành công <color=cyan>%s<color>", me.szName, pItem.szName);
    	KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
    	KDialog.MsgToGlobal(szMsg);			
    	me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName 
    		.. "<color>] Hợp Thành thành công <color=cyan>"
    	.. pItem.szName .."<color>");                                  
    	me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");
    	elseif (nIndex == 1) then
    		me.Msg("Hợp thành thất bại nhận được <color=yellow>"..pItem.szName.."<color>.");
    
    	end
    	end;
    	if (nValue == 4) then
    		me.CostMoney(4000000,0);
    	local i = 0;
    	local nAdd = 0;
    	local nRand = 0;
    	local nIndex = 0;
    	-- random
    	nRand = MathRandom(1, 10000);
    	-- fill 3 rate	
    	local tbRate = {4000, 6000};
    	local tbAward = 
    {
    	[1] = {1, 16, 13, 1};
    	[2] = {1,16,19,2};
    }
    	
    	for i = 1, 2 do
    		nAdd = nAdd + tbRate[i];
    		if nAdd >= nRand then
    			nIndex = i;
    			break;
    		end
    	end
    	local pItem = me.AddItem(unpack(tbAward[nIndex]));
    	pItem.Bind(1);
    	if (nIndex == 2) then
    		local szMsg = string.format("Chúc mừng người chơi <color=cyan>%s<color> đã may mắn Hợp Thành thành công <color=cyan>%s<color>", me.szName, pItem.szName);
    	KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
    	KDialog.MsgToGlobal(szMsg);			
    	me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName 
    		.. "<color>] Hợp Thành thành công <color=cyan>"
    	.. pItem.szName .."<color>");                                  
    	me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");
    	elseif (nIndex == 1) then
    		me.Msg("Hợp thành thất bại nhận được <color=yellow>"..pItem.szName.."<color>.");
    
    	end
    	end;
    	if (nValue == 5) then
    		me.CostMoney(5000000,0);
    	local i = 0;
    	local nAdd = 0;
    	local nRand = 0;
    	local nIndex = 0;
    	-- random
    	nRand = MathRandom(1, 10000);
    	-- fill 3 rate	
    	local tbRate = {4000, 6000};
    	local tbAward = 
    {
    	[1] = {1, 16, 13, 1};
    	[2] = {1,16,20,2};
    }
    	
    	for i = 1, 2 do
    		nAdd = nAdd + tbRate[i];
    		if nAdd >= nRand then
    			nIndex = i;
    			break;
    		end
    	end
    	local pItem = me.AddItem(unpack(tbAward[nIndex]));
    	pItem.Bind(1);
    	if (nIndex == 2) then
    		local szMsg = string.format("Chúc mừng người chơi <color=cyan>%s<color> đã may mắn Hợp Thành thành công <color=cyan>%s<color>", me.szName, pItem.szName);
    	KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
    	KDialog.MsgToGlobal(szMsg);		
    	me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");	
    	me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName 
    		.. "<color>] Hợp Thành thành công <color=cyan>"
    	.. pItem.szName .."<color>");                                  
    	me.Msg("Hợp thành thành công nhận được <color=yellow>"..pItem.szName.."<color>.");
    	elseif (nIndex == 1) then
    		me.Msg("Hợp thành thất bại nhận được <color=yellow>"..pItem.szName.."<color>.");
    
    	end
    	end;
    end;
    
    -- 檢測是否是需要的物品
    function tbNpc:ChechItem(pItem, tbItemList, tbCountList)
    	if (not pItem) then
    		return 0;
    	end;
    	local szItem		= string.format("%s,%s,%s,%s",pItem[1].nGenre, pItem[1].nDetail, pItem[1].nParticular, pItem[1].nLevel);
    	
    	for i = 1, #tbItemList do
    		local tbI = tbItemList[i];
    		for j = 1, #tbI[1] do
    			if (szItem == tbI[1][j]) then
    				tbCountList[i] = (tbCountList[i] or 0) + pItem[1].nCount;
    				return 1;
    			end;
    		end;
    	end;
    
    	return 0;
    end;
    Khách viếng thăm hãy cùng neverbackdown xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  6. #5
    Thành Viên Tâm Huyết satthupro95's Avatar
    Ngày tham gia
    Jan 2012
    Bài viết
    2,391
    Thanks
    2,566
    Thanked 1,821 Times in 865 Posts

    Ðề: HELP! Script check số lượng vật phẩm và item

    Bạn có thể dùng scipt này của mình để làm đổi thưởng . Nó k dài như scipt này :

    function tbTuiGuangYuan:TienNghiaQuanDoiVP()
    if me.CountFreeBagCell() < 20 then
    Dialog:Say("<color=yellow>Hành trang phải đủ 20 Ô Trống <color>");
    return 0;
    end
    local szMsg = "<color=gold>Chọn vật phẩm muốn đổi<color>";
    local tbOpt = {
    {"<color=yellow>5 Tiền Nghĩa Quân<color> - 1 Thức Ăn Cho Gà",self.TNQDoiMGVPA,self};
    };
    Dialog:Say(szMsg, tbOpt);
    end


    function tbTuiGuangYuan:TNQDoiMGVPA()
    local tbItemId2 = {18,1,25110,1,0,0}; -- Đây là vật phẩm dùng để đổi
    local nCount2 = me.GetItemCountInBags(18,1,25110,1); -- cái này để kiểm tra vật phẩm trong hành trang
    local i = 0;
    local nAdd = 0;
    local nRand = 0;
    local nIndex = 0;
    -- random
    nRand = MathRandom(1, 20000); -- 20000 là tổng rate của 5 vật phẩm
    -- fill 3 rate
    local tbRate = {10000,500,2000,5000,2500}; -- Rate của từng vật phẩm khi tổng vào bằng 20000
    local tbAward =
    {
    [1] = {18,1,25109,1}; -- Túi thức ăn gà
    [2] = {18,1,1,9}; -- Huyền Tinh 9
    [3] = {18,1,25108,1}; -- Búa Vàng
    [4] = {18,1,1,7}; -- Huyền Tinh 7
    [5] = {18,1,1,8}; -- Huyền Tinh 8
    }
    if me.CountFreeBagCell() < 10 then
    Dialog:Say("Phải Có 10 Ô Trống Trong Túi Hành Trang Mới Mua Được VP Nghĩa Quân !");
    return 0;
    end
    if nCount2 < 5 then -- Kiểm tra số lượng vật phẩm trong hành trang
    Dialog:Say("<color=yellow>Trong hành trang của bạn không có <color=cyan>5 Tiền Nghĩa Quân<color>");
    return 0;
    end
    for i = 1, 5 do -- Bao nhiêu vật phẩm thì i sẽ chạy từ 1 đến số vật phẩm đó
    nAdd = nAdd + tbRate[i];
    if nAdd >= nRand then
    nIndex = i;
    break;
    end
    end
    local pItem = me.AddItem(unpack(tbAward[nIndex]));
    pItem.Bind(1);
    if (nIndex == 2) or (nIndex == 3) or (nIndex == 4) or (nIndex == 5) then
    local szMsg = string.format("<color=cyan>%s<color> Khi giao dịch tại NPC Cổ Phong Hà may mắn nhận được <color=cyan>"
    .. pItem.szName .." ", me.szName, pItem.szName);
    KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
    KDialog.MsgToGlobal(szMsg);
    me.SendMsgToFriend("Hảo hữu của bạn [<color=cyan>" .. me.szName
    .. "<color>] Khi giao dịch tại NPC Cổ Phong Hà may mắn nhận được <color=cyan>"
    .. pItem.szName .." ");
    me.Msg("<color=yellow>Giao dịch với Cổ Phong Hà nhận được <color=cyan>"..pItem.szName.."<color><color>");
    TaskelItem(me, tbItemId2, 5); -- Xóa 5 vật phẩm ItemId2
    elseif (nIndex == 1)then
    me.Msg("<color=yellow>Đổi thành công Túi Thức Ăn<color>");
    TaskelItem(me, tbItemId2, 5); -- Xóa 5 vật phẩm ItemId2
    end
    end
    Lần sửa cuối bởi satthupro95, ngày 22-12-12 lúc 07:05 PM.
    Khách viếng thăm hãy cùng satthupro95 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  7. Các thành viên gởi lời cảm ơn đến satthupro95 vì bài viết này !

    neverbackdown (22-12-12)

  8. #6
    Thành Viên GameZone
    Ngày tham gia
    Jul 2012
    Đang ở
    TP HCM - Quận Bình Tân
    Bài viết
    96
    Thanks
    28
    Thanked 12 Times in 11 Posts

    Ðề: HELP! Script check số lượng vật phẩm và item

    Trích dẫn Gửi bởi satthupro95 [Only registered and activated users can see links. ]
    Bạn có thể dùng scipt này của mình để làm đổi thưởng . Nó k dài như scipt này :

    function tbTuiGuangYuan:TienNghiaQuanDoiVP()
    if me.CountFreeBagCell() < 20 then
    Dialog:Say("<color=yellow>Hành trang phải đủ 20 Ô Trống <color>");
    return 0;
    end
    local szMsg = "<color=gold>Chọn vật phẩm muốn đổi<color>";
    local tbOpt = {
    {"<color=yellow>5 Tiền Nghĩa Quân<color> - 1 Thức Ăn Cho Gà",self.TNQDoiMGVPA,self};
    };
    Dialog:Say(szMsg, tbOpt);
    end


    function tbTuiGuangYuan:TNQDoiMGVPA()
    local tbItemId2 = {18,1,25110,1,0,0}; -- Đây là vật phẩm dùng để đổi
    local nCount2 = me.GetItemCountInBags(18,1,25110,1); -- cái này để kiểm tra vật phẩm trong hành trang
    local i = 0;
    local nAdd = 0;
    local nRand = 0;
    local nIndex = 0;
    -- random
    nRand = MathRandom(1, 20000); -- 20000 là tổng rate của 5 vật phẩm
    -- fill 3 rate
    local tbRate = {10000,500,2000,5000,2500}; -- Rate của từng vật phẩm khi tổng vào bằng 20000
    local tbAward =
    {
    [1] = {18,1,25109,1}; -- Túi thức ăn gà
    [2] = {18,1,1,9}; -- Huyền Tinh 9
    [3] = {18,1,25108,1}; -- Búa Vàng
    [4] = {18,1,1,7}; -- Huyền Tinh 7
    [5] = {18,1,1,8}; -- Huyền Tinh 8
    }
    if me.CountFreeBagCell() < 10 then
    Dialog:Say("Phải Có 10 Ô Trống Trong Túi Hành Trang Mới Mua Được VP Nghĩa Quân !");
    return 0;
    end
    if nCount2 < 5 then -- Kiểm tra số lượng vật phẩm trong hành trang
    Dialog:Say("<color=yellow>Trong hành trang của bạn không có <color=cyan>5 Tiền Nghĩa Quân<color>");
    return 0;
    end
    for i = 1, 5 do -- Bao nhiêu vật phẩm thì i sẽ chạy từ 1 đến số vật phẩm đó
    nAdd = nAdd + tbRate[i];
    if nAdd >= nRand then
    nIndex = i;
    break;
    end
    end
    local pItem = me.AddItem(unpack(tbAward[nIndex]));
    pItem.Bind(1);
    if (nIndex == 2) or (nIndex == 3) or (nIndex == 4) or (nIndex == 5) then
    local szMsg = string.format("<color=cyan>%s<color> Khi giao dịch tại NPC Cổ Phong Hà may mắn nhận được <color=cyan>"
    .. pItem.szName .." ", me.szName, pItem.szName);
    KDialog.NewsMsg(1, Env.NEWSMSG_COUNT, szMsg);
    KDialog.MsgToGlobal(szMsg);
    me.SendMsgToFriend("Hảo hữu của bạn [<color=cyan>" .. me.szName
    .. "<color>] Khi giao dịch tại NPC Cổ Phong Hà may mắn nhận được <color=cyan>"
    .. pItem.szName .." ");
    me.Msg("<color=yellow>Giao dịch với Cổ Phong Hà nhận được <color=cyan>"..pItem.szName.."<color><color>");
    TaskelItem(me, tbItemId2, 5);
    elseif (nIndex == 1)then
    me.Msg("<color=yellow>Đổi thành công Túi Thức Ăn<color>");
    TaskelItem(me, tbItemId2, 5);
    end
    end
    Cảm ơn bạn rất nhiều, nhưng dạng của mình là
    vd: bấm vào thì nó sẽ hiện ra table bỏ vật phẩm vào.giống như dạng cường hóa trang bị. chứ không phải nó check thằng trong rương đồ của mình.
    cái dạng của mình bị lỗi gì ko bik nữa, mong bạn giúp mình
    Khách viếng thăm hãy cùng neverbackdown xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  9. #7
    Thành Viên Tâm Huyết satthupro95's Avatar
    Ngày tham gia
    Jan 2012
    Bài viết
    2,391
    Thanks
    2,566
    Thanked 1,821 Times in 865 Posts

    Ðề: HELP! Script check số lượng vật phẩm và item

    Trích dẫn Gửi bởi neverbackdown [Only registered and activated users can see links. ]
    Cảm ơn bạn rất nhiều, nhưng dạng của mình là
    vd: bấm vào thì nó sẽ hiện ra table bỏ vật phẩm vào.giống như dạng cường hóa trang bị. chứ không phải nó check thằng trong rương đồ của mình.
    cái dạng của mình bị lỗi gì ko bik nữa, mong bạn giúp mình
    Dạng hiện khung đây :
    function tbTuiGuangYuanoiTheThanhVienVip()
    local szMsg = "Ngươi muốn ghép <color=yellow>Thẻ Thành Viên V.I.P [Kiếm Thế Vạn Phúc]<color> ?";
    local tbOpt = {
    {"Ghép \n<color=yellow>Thẻ Thành Viên V.I.P [Kiếm Thế Vạn Phúc] <color>", self.ChangeItemThanhVienVIP, self, 1},
    {"Để Ta Suy Nghỉ"},
    };
    Dialog:Say(szMsg, tbOpt);
    end
    function tbTuiGuangYuan:ChangeItemThanhVienVIP(nLevel)
    local szContent = string.format("<color=yellow>Hãy đặt : \n<color=orange>150 Mảnh Ghép Thẻ Thành Viên V.I.P [Kiếm Thế Vạn Phúc]<color>\nỞ dưới này để ghép thành <color=orange>Thẻ Thành Viên V.I.P [Kiếm Thế Vạn Phúc]<color> ");
    Dialog:OpenGift(szContent, nil, {tbTuiGuangYuan.OnOpenGiftOkThanhVienVip, tbTuiGuangYuan, nLevel});
    end
    -------------------------------------- me.AddItem(18,1,1200,1)
    function tbTuiGuangYuan:OnOpenGiftOkThanhVienVip(nLevel, tbItemObj)
    --Vật phẩm dùng để đổi (Mảnh Ghép Thẻ Thành Viên V.I.P [Kiếm Thế Vạn Phúc])
    local vatpham = "18,1,25065,1";
    --Đếm số lượng nguyên liệu
    local nCount = 0;
    for i = 1, #tbItemObj do
    nCount = nCount + tbItemObj[i][1].nCount;
    end
    --Check đúng 150 Mảnh ghép hay không?
    if nCount ~= 150 then
    Dialog:Say("<color=pink>Chú ý : <color>Mỗi lần chỉ được đặt vào \n<color=yellow>150 Mảnh Ghép Thẻ Thành Viên V.I.P [Kiếm Thế Vạn Phúc]!<color>", {"Ta biết rồi !"});
    return 0;
    end
    --Check có phải là Mảnh Ghép Lệnh Bài Trùng Sinh không!
    for i = 1, #tbItemObj do
    local pItem = tbItemObj[i][1];
    local szKey = string.format("%s,%s,%s,%s",pItem.nGenre,pItem.nDe tail,pItem.nParticular,pItem.nLevel);
    if szKey ~= vatpham then
    Dialog:Say("<color=red>Chú Ý:<color> Đây không phải \n<color=yellow>Mảnh Ghép Thẻ Thành Viên V.I.P [Kiếm Thế Vạn Phúc]<color>", {"Xin lỗi ! Ta Nhầm !"});
    return 0;
    end
    end
    --Kiểm tra ô trống trong túi
    if me.CountFreeBagCell() < 10 then
    Dialog:Say("Cần sắp xếp lại túi!",{"Ta Biết rồi !"});
    return 0;
    end
    --Nếu đúng NAT và số lượng => xóa NAT
    for i = 1, #tbItemObj do
    local pItem = tbItemObj[i][1];
    pItem.Delete(me);
    end
    --Add số lượng vật phẩm mới vào
    for i=1,1 do
    local pItemEx = me.AddItem(18, 1, 25064, 1).Bind(1);--nhận được lệnh bài trùng sinh
    me.AddTitle(15,1,1,1);
    end
    local pItem = me.AddItem(18, 1, 25064, 1);
    GlobalExcute({"Dialog:GlobalNewsMsg_GS", "Người chơi [" ..me.szName.. "] đã ghép thành công [" ..pItem.szName.. "] xin chúc mừng !"});
    me.SendMsgToFriend("Hảo hữu của bạn [<color=yellow>" .. me.szName
    .. "<color>] đã ghép thành công <color=yellow>"
    .. pItem.szName .."<color>!");
    Dialog:Say("<color=wheat>Chúc mừng ngươi \n+đã đổi thành công <color=yellow>Thẻ Thành Viên V.I.P [Kiếm Thế Vạn Phúc]<color><color>\n<color=yellow>+Nhận được danh Hiệu : V.I.P Kiếm Thế Vạn Phúc<color>\n<color=yellow>Từ nay ngươi đã trở thành thành viên V.I.P của Kiếm Thế Vạn Phúc<color>", {"Cảm ơn !"});
    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é!

  10. Các thành viên gởi lời cảm ơn đến satthupro95 vì bài viết này !

    neverbackdown (22-12-12)

  11. #8
    Thành Viên GameZone
    Ngày tham gia
    Jul 2012
    Đang ở
    TP HCM - Quận Bình Tân
    Bài viết
    96
    Thanks
    28
    Thanked 12 Times in 11 Posts

    Ðề: HELP! Script check số lượng vật phẩm và item

    Cảm ơn satthupro rất nhiều, bạn rất nhiệt tình
    Khách viếng thăm hãy cùng neverbackdown xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  12. #9
    Thành Viên
    Ngày tham gia
    Dec 2012
    Bài viết
    62
    Thanks
    13
    Thanked 0 Times in 0 Posts

    Ðề: HELP! Script check số lượng vật phẩm và item

    ấn này ngoài cườn hóa với nhược hóa còn có mấy dùng phụ bên dưới hok bạn ^^!
    Khách viếng thăm hãy cùng canhchung89 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  13. #10
    Thành Viên GameZone
    Ngày tham gia
    Jul 2012
    Đang ở
    TP HCM - Quận Bình Tân
    Bài viết
    96
    Thanks
    28
    Thanked 12 Times in 11 Posts

    Ðề: HELP! Script check số lượng vật phẩm và item

    Trích dẫn Gửi bởi canhchung89 [Only registered and activated users can see links. ]
    ấn này ngoài cườn hóa với nhược hóa còn có mấy dùng phụ bên dưới hok bạn ^^!
    có luôn bạn ak
    ................................
    Khách viếng thăm hãy cùng neverbackdown xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

 

 
Trang 1 của 2 1 2 CuốiCuối

Các Chủ đề tương tự

  1. [KT] mấy pro check dùm script này
    Bởi nh0kk3n2310 trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 2
    Bài viết cuối: 19-12-12, 10:58 PM
  2. [KT] Viết script thế nào để check nhân vật đã nhận thưởng
    Bởi f-fantasy trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 0
    Bài viết cuối: 14-06-12, 05:51 AM
  3. Script Check Người Trong Map
    Bởi [S]ocola[S]an trong diễn đàn Scripts
    Trả lời: 5
    Bài viết cuối: 09-01-11, 01:56 PM
  4. Suorce Check Title- No check Launcher , main - No check Item
    Bởi cuocdoisp trong diễn đàn Releases
    Trả lời: 8
    Bài viết cuối: 26-06-10, 04:31 PM

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à 12:26 PM.
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ệ.