mirror of
				https://github.com/OTCv8/otclientv8.git
				synced 2025-10-31 19:06:23 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			130 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local context = G.botContext
 | |
| 
 | |
| context.NPC = {}
 | |
| 
 | |
| context.NPC.talk = function(text)
 | |
|   if g_game.getClientVersion() >= 810 then
 | |
|     g_game.talkChannel(11, 0, text) 
 | |
|   else
 | |
|     return context.say(text)
 | |
|   end
 | |
| end
 | |
| context.NPC.say = context.NPC.talk
 | |
| 
 | |
| context.NPC.isTrading = function()
 | |
|   return modules.game_npctrade.npcWindow and modules.game_npctrade.npcWindow:isVisible()
 | |
| end
 | |
| context.NPC.hasTrade = context.NPC.isTrading
 | |
| context.NPC.hasTradeWindow = context.NPC.isTrading
 | |
| context.NPC.isTradeOpen = context.NPC.isTrading
 | |
| 
 | |
| context.NPC.getSellItems = function()
 | |
|   if not context.NPC.isTrading() then return {} end
 | |
|   local items = {}
 | |
|   for i, item in ipairs(modules.game_npctrade.tradeItems[modules.game_npctrade.SELL]) do
 | |
|     table.insert(items, {
 | |
|       item = item.ptr,
 | |
|       id = item.ptr:getId(),
 | |
|       count = item.ptr:getCount(),
 | |
|       name = item.name,
 | |
|       subType = item.ptr:getSubType(),
 | |
|       weight = item.weight / 100,
 | |
|       price = item.price 
 | |
|     })
 | |
|   end
 | |
|   return items
 | |
| end
 | |
| 
 | |
| context.NPC.getBuyItems = function()
 | |
|   if not context.NPC.isTrading() then return {} end
 | |
|   local items = {}
 | |
|   for i, item in ipairs(modules.game_npctrade.tradeItems[modules.game_npctrade.BUY]) do
 | |
|     table.insert(items, {
 | |
|       item = item.ptr,
 | |
|       id = item.ptr:getId(),
 | |
|       count = item.ptr:getCount(),
 | |
|       name = item.name,
 | |
|       subType = item.ptr:getSubType(),
 | |
|       weight = item.weight / 100,
 | |
|       price = item.price 
 | |
|     })
 | |
|   end
 | |
|   return items
 | |
| end
 | |
| 
 | |
| context.NPC.getSellQuantity = function(item)
 | |
|   if not context.NPC.isTrading() then return 0 end
 | |
|   if type(item) == 'number' then
 | |
|      item = Item.create(item)
 | |
|   end
 | |
|   return modules.game_npctrade.getSellQuantity(item)
 | |
| end
 | |
| 
 | |
| context.NPC.canTradeItem = function(item)
 | |
|   if not context.NPC.isTrading() then return false end
 | |
|   if type(item) == 'number' then
 | |
|      item = Item.create(item)
 | |
|   end
 | |
|   return modules.game_npctrade.canTradeItem(item)
 | |
| end
 | |
| 
 | |
| context.NPC.sell = function(item, count, ignoreEquipped)
 | |
|   if type(item) == 'number' then
 | |
|     for i, entry in ipairs(context.NPC.getSellItems()) do
 | |
|        if entry.id == item then
 | |
|          item = entry.item
 | |
|          break
 | |
|        end
 | |
|     end
 | |
|     if type(item) == 'number' then
 | |
|      item = Item.create(item)
 | |
|     end
 | |
|   end
 | |
|   if count == 0 then
 | |
|     count = 1
 | |
|   end
 | |
|   if count == nil or count == -1 then
 | |
|     count = context.NPC.getSellQuantity(item)
 | |
|   end
 | |
|   if ignoreEquipped == nil then
 | |
|     ignoreEquipped = true
 | |
|   end
 | |
|   g_game.sellItem(item, count, ignoreEquipped)
 | |
| end
 | |
| 
 | |
| context.NPC.buy = function(item, count, ignoreCapacity, withBackpack)
 | |
|   if type(item) == 'number' then
 | |
|     for i, entry in ipairs(context.NPC.getBuyItems()) do
 | |
|        if entry.id == item then
 | |
|          item = entry.item
 | |
|          break
 | |
|        end
 | |
|     end
 | |
|     if type(item) == 'number' then
 | |
|      item = Item.create(item)
 | |
|     end
 | |
|   end
 | |
|   if count == nil or count <= 0 then
 | |
|     count = 1
 | |
|   end
 | |
|   if ignoreCapacity == nil then
 | |
|     ignoreCapacity = false
 | |
|   end
 | |
|   if withBackpack == nil then
 | |
|     withBackpack = false
 | |
|   end
 | |
|   g_game.buyItem(item, count, ignoreCapacity, withBackpack)
 | |
| end
 | |
| 
 | |
| context.NPC.sellAll = function()
 | |
|   if not context.NPC.isTrading() then return false end
 | |
|   modules.game_npctrade.sellAll()
 | |
| end
 | |
| 
 | |
| context.NPC.closeTrade = function()
 | |
|   modules.game_npctrade.closeNpcTrade()
 | |
| end
 | |
| context.NPC.close = context.NPC.closeTrade
 | |
| context.NPC.finish = context.NPC.closeTrade
 | |
| context.NPC.endTrade = context.NPC.closeTrade
 | |
| context.NPC.finishTrade = context.NPC.closeTrade | 
