Ir para conteúdo
  • 0

Sistema AutoLooT


leonardo macedo

Pergunta

Boa noite galerinha do XTibia, alguem poderia me ajudar com sistema de autoloot ?

aonde o player adiciona itens que não precisa de bot ou puxar na mão?

com slots configuravel ?

queria liberar 3 slots apenas por player.

 

 

TFS 0.4

Editado por Leonardo Macedo
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

@@leonardo macedo,

Tenta esse mod, qualquer coisa me avisa:

 

<?xml version="1.0" encoding="ISO-8859-1"?>
<mod name="Loot System" version="1.0" author="Vodkart And Mkalo" contact="none.com" enabled="yes">
<config name="Loot_func"><![CDATA[

	info = {
		OnlyPremium = true, -- apenas premium account
		AutomaticDeposit = true, -- depositar automaticamente
		BlockMonsters = {}, -- monstros para serem bloqueados
		BlockItemsList = {2123,2515} -- id de items para serem bloqueados
	}

	function setPlayerStorageTable(cid, storage, tab)
		local tabstr = "&"
		for i,x in pairs(tab) do
			tabstr = tabstr .. i .. "," .. x .. ";"
		end
		setPlayerStorageValue(cid, storage, tabstr:sub(1, #tabstr-1))
	end

	function getPlayerStorageTable(cid, storage)
		local tabstr = getPlayerStorageValue(cid, storage)
		local tab = {}
		if type(tabstr) ~= "string" then
			return {}
		end
		if tabstr:sub(1,1) ~= "&" then
			return {}
		end
		local tabstr = tabstr:sub(2, #tabstr)
		local a = string.explode(tabstr, ";")
		for i,x in pairs(a) do
			local b = string.explode(x, ",")
			tab[tonumber(b[1]) or b[1]] = tonumber(b[2]) or b[2]
		end
		return tab
	end

	function isInTable(cid, item)
		for _,i in pairs(getPlayerStorageTable(cid, 27000))do
			if tonumber(i) == tonumber(item) then
				return true
			end
		end
		return false
	end

	function addItemTable(cid, item)
		local x = {}
		for i = 1,#getPlayerStorageTable(cid, 27000) do
			table.insert(x,getPlayerStorageTable(cid, 27000))
		end
		if x ~= 0 then
			table.insert(x,tonumber(item))
			setPlayerStorageTable(cid, 27000, x)
		else
			setPlayerStorageTable(cid, 27000, {item})
		end
	end
	
	function removeItemTable(cid, item)
		local x = {}
		for i = 1,#getPlayerStorageTable(cid, 27000) do
			table.insert(x,getPlayerStorageTable(cid, 27000))
		end
		for i,v in ipairs(x) do
			if tonumber(v) == tonumber(item) then
				table.remove(x,i)
			end
		end
		return setPlayerStorageTable(cid, 27000, x)
	end
	
	function ShowItemsTabble(cid)
		local str,n = "-- My Loot List --\n\n",0
		for i = 1,#getPlayerStorageTable(cid, 27000) do
			n = n + 1
			str = str..""..n.." - "..getItemNameById(getPlayerStorageTable(cid, 27000)).."\n"
		end
		return doShowTextDialog(cid, 2529, str)
	end
	
	function getContainerItems(containeruid)
		local items = {}
		local containers = {}
		if type(getContainerSize(containeruid)) ~= "number" then
			return false
		end
		for slot = 0, getContainerSize(containeruid)-1 do
			local item = getContainerItem(containeruid, slot)
			if item.itemid == 0 then
				break
			end
			if isContainer(item.uid) then
				table.insert(containers, item.uid)
			end
			table.insert(items, item)
		end
		if #containers > 0 then
			for i,x in ipairs(getContainerItems(containers[1])) do
				table.insert(items, x)
			end
			table.remove(containers, 1)
		end
		return items
	end
	
	function getItemsInContainerById(container, itemid) -- Function By Kydrai
		local items = {}
		if isContainer(container) and getContainerSize(container) > 0 then
			for slot=0, (getContainerSize(container)-1) do
				local item = getContainerItem(container, slot)
				if isContainer(item.uid) then
					local itemsbag = getItemsInContainerById(item.uid, itemid)
					for i=0, #itemsbag do
						table.insert(items, itemsbag)
					end
				else
					if itemid == item.itemid then
						table.insert(items, item.uid)
					end
				end
			end
		end
		return items
	end
	
	function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo
		local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid)
		local piles = 0
		if #item > 0 then
			for i,x in pairs(item) do
				if getThing(x).type < 100 then
					local it = getThing(x)
					doTransformItem(it.uid, itemid, it.type+quant)
					if it.type+quant > 100 then
						doPlayerAddItem(cid, itemid, it.type+quant-100)
					end
				else
					piles = piles+1
				end
			end
		else
			return doPlayerAddItem(cid, itemid, quant)
		end
		if piles == #item then
			doPlayerAddItem(cid, itemid, quant)
		end
	end
	
	function AutomaticDeposit(cid,item,n)
		local deposit = item == tonumber(2160) and (n*10000) or tonumber(item) == 2152 and (n*100) or (n*1)
		return doPlayerDepositMoney(cid, deposit)
	end
	
	function corpseRetireItems(cid, pos)
		local check = false
		for i = 0, 255 do
			pos.stackpos = i
			tile = getTileThingByPos(pos)
			if tile.uid > 0 and isCorpse(tile.uid) then
				check = true break
			end
		end
		if check == true then
			local items = getContainerItems(tile.uid)
			for i,x in pairs(items) do
				if isInArray(getPlayerStorageTable(cid, 27000), tonumber(x.itemid)) then
					if isItemStackable(x.itemid) then
						doPlayerAddItemStacking(cid, x.itemid, x.type)
						if info.AutomaticDeposit == true and isInArray({"2148","2152","2160"},tonumber(x.itemid)) then
							AutomaticDeposit(cid,x.itemid,x.type)
						end
					else
						doPlayerAddItem(cid, x.itemid)
					end
					doRemoveItem(x.uid)
				end
			end
		end
	end
]]></config>
<event type="login" name="LootLogin" event="script"><![CDATA[
function onLogin(cid)
registerCreatureEvent(cid, "MonsterAttack")
return true
end]]></event>
<event type="death" name="LootEventDeath" event="script"><![CDATA[
domodlib('Loot_func')
function onDeath(cid, corpse, deathList)
local killer,pos = deathList[1],getCreaturePosition(cid)
addEvent(corpseRetireItems,1,killer,pos)
return true
end]]></event>
<event type="combat" name="MonsterAttack" event="script"><![CDATA[
domodlib('Loot_func')
if isPlayer(cid) and isMonster(target) and not isInArray(info.BlockMonsters,string.lower(getCreatureName(target))) then
registerCreatureEvent(target, "LootEventDeath")
end
return true]]></event>
<talkaction words="!autoloot;/autoloot" event="buffer"><![CDATA[
domodlib('Loot_func')
local t = string.explode(string.lower(param), ",")
if info_OnlyPremium == true and not isPremium(cid) then
doPlayerSendCancel(cid, "you must be a premium account.") return true
elseif not t[1] then
ShowItemsTabble(cid) return true
elseif tonumber(t[1]) or tonumber(t[2]) then
doPlayerSendCancel(cid, "enter !autoloot add,name or !autoloot remove,name") return true
elseif isInArray({"add","remove"}, tostring(t[1])) then
local func,check = tostring(t[1]) == "add" and addItemTable or removeItemTable, tostring(t[1]) == "add" and true or false
local item = getItemIdByName(tostring(t[2]), false)
if not item then
doPlayerSendCancel(cid, "This item does not exist.") return true
elseif check == true and isInArray(info.BlockItemsList, item) then
doPlayerSendCancel(cid, "You can not add this item in the list!") return true
elseif isInTable(cid, item) == check then
doPlayerSendCancel(cid, "This Item "..(check == true and "already" or "is not").." in your list.") return true
end
func(cid, item)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,check == true and "you added the item "..t[2].." in the list" or "you removed the item "..t[2].." from the list") return true
end
return true]]></talkaction>
</mod>

 



Comandos:

/autoloot -- mostra a lista de loot
____________
/autoloot add,ITEM -- adiciona o item da lista de loot

Exemplo:
/autoloot add, gold coin
____________
/autoloot remove,ITEM -- remove o item da lista de loot
Link para o comentário
Compartilhar em outros sites

  • 0

@@leonardo macedo,

 

Tenta esse mod, qualquer coisa me avisa:

 

 

<?xml version="1.0" encoding="ISO-8859-1"?>
<mod name="Loot System" version="1.0" author="Vodkart And Mkalo" contact="none.com" enabled="yes">
<config name="Loot_func"><![CDATA[

	info = {
		OnlyPremium = true, -- apenas premium account
		AutomaticDeposit = true, -- depositar automaticamente
		BlockMonsters = {}, -- monstros para serem bloqueados
		BlockItemsList = {2123,2515} -- id de items para serem bloqueados
	}

	function setPlayerStorageTable(cid, storage, tab)
		local tabstr = "&"
		for i,x in pairs(tab) do
			tabstr = tabstr .. i .. "," .. x .. ";"
		end
		setPlayerStorageValue(cid, storage, tabstr:sub(1, #tabstr-1))
	end

	function getPlayerStorageTable(cid, storage)
		local tabstr = getPlayerStorageValue(cid, storage)
		local tab = {}
		if type(tabstr) ~= "string" then
			return {}
		end
		if tabstr:sub(1,1) ~= "&" then
			return {}
		end
		local tabstr = tabstr:sub(2, #tabstr)
		local a = string.explode(tabstr, ";")
		for i,x in pairs(a) do
			local b = string.explode(x, ",")
			tab[tonumber(b[1]) or b[1]] = tonumber(b[2]) or b[2]
		end
		return tab
	end

	function isInTable(cid, item)
		for _,i in pairs(getPlayerStorageTable(cid, 27000))do
			if tonumber(i) == tonumber(item) then
				return true
			end
		end
		return false
	end

	function addItemTable(cid, item)
		local x = {}
		for i = 1,#getPlayerStorageTable(cid, 27000) do
			table.insert(x,getPlayerStorageTable(cid, 27000))
		end
		if x ~= 0 then
			table.insert(x,tonumber(item))
			setPlayerStorageTable(cid, 27000, x)
		else
			setPlayerStorageTable(cid, 27000, {item})
		end
	end
	
	function removeItemTable(cid, item)
		local x = {}
		for i = 1,#getPlayerStorageTable(cid, 27000) do
			table.insert(x,getPlayerStorageTable(cid, 27000))
		end
		for i,v in ipairs(x) do
			if tonumber(v) == tonumber(item) then
				table.remove(x,i)
			end
		end
		return setPlayerStorageTable(cid, 27000, x)
	end
	
	function ShowItemsTabble(cid)
		local str,n = "-- My Loot List --\n\n",0
		for i = 1,#getPlayerStorageTable(cid, 27000) do
			n = n + 1
			str = str..""..n.." - "..getItemNameById(getPlayerStorageTable(cid, 27000)).."\n"
		end
		return doShowTextDialog(cid, 2529, str)
	end
	
	function getContainerItems(containeruid)
		local items = {}
		local containers = {}
		if type(getContainerSize(containeruid)) ~= "number" then
			return false
		end
		for slot = 0, getContainerSize(containeruid)-1 do
			local item = getContainerItem(containeruid, slot)
			if item.itemid == 0 then
				break
			end
			if isContainer(item.uid) then
				table.insert(containers, item.uid)
			end
			table.insert(items, item)
		end
		if #containers > 0 then
			for i,x in ipairs(getContainerItems(containers[1])) do
				table.insert(items, x)
			end
			table.remove(containers, 1)
		end
		return items
	end
	
	function getItemsInContainerById(container, itemid) -- Function By Kydrai
		local items = {}
		if isContainer(container) and getContainerSize(container) > 0 then
			for slot=0, (getContainerSize(container)-1) do
				local item = getContainerItem(container, slot)
				if isContainer(item.uid) then
					local itemsbag = getItemsInContainerById(item.uid, itemid)
					for i=0, #itemsbag do
						table.insert(items, itemsbag)
					end
				else
					if itemid == item.itemid then
						table.insert(items, item.uid)
					end
				end
			end
		end
		return items
	end
	
	function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo
		local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid)
		local piles = 0
		if #item > 0 then
			for i,x in pairs(item) do
				if getThing(x).type < 100 then
					local it = getThing(x)
					doTransformItem(it.uid, itemid, it.type+quant)
					if it.type+quant > 100 then
						doPlayerAddItem(cid, itemid, it.type+quant-100)
					end
				else
					piles = piles+1
				end
			end
		else
			return doPlayerAddItem(cid, itemid, quant)
		end
		if piles == #item then
			doPlayerAddItem(cid, itemid, quant)
		end
	end
	
	function AutomaticDeposit(cid,item,n)
		local deposit = item == tonumber(2160) and (n*10000) or tonumber(item) == 2152 and (n*100) or (n*1)
		return doPlayerDepositMoney(cid, deposit)
	end
	
	function corpseRetireItems(cid, pos)
		local check = false
		for i = 0, 255 do
			pos.stackpos = i
			tile = getTileThingByPos(pos)
			if tile.uid > 0 and isCorpse(tile.uid) then
				check = true break
			end
		end
		if check == true then
			local items = getContainerItems(tile.uid)
			for i,x in pairs(items) do
				if isInArray(getPlayerStorageTable(cid, 27000), tonumber(x.itemid)) then
					if isItemStackable(x.itemid) then
						doPlayerAddItemStacking(cid, x.itemid, x.type)
						if info.AutomaticDeposit == true and isInArray({"2148","2152","2160"},tonumber(x.itemid)) then
							AutomaticDeposit(cid,x.itemid,x.type)
						end
					else
						doPlayerAddItem(cid, x.itemid)
					end
					doRemoveItem(x.uid)
				end
			end
		end
	end
]]></config>
<event type="login" name="LootLogin" event="script"><![CDATA[
function onLogin(cid)
registerCreatureEvent(cid, "MonsterAttack")
return true
end]]></event>
<event type="death" name="LootEventDeath" event="script"><![CDATA[
domodlib('Loot_func')
function onDeath(cid, corpse, deathList)
local killer,pos = deathList[1],getCreaturePosition(cid)
addEvent(corpseRetireItems,1,killer,pos)
return true
end]]></event>
<event type="combat" name="MonsterAttack" event="script"><![CDATA[
domodlib('Loot_func')
if isPlayer(cid) and isMonster(target) and not isInArray(info.BlockMonsters,string.lower(getCreatureName(target))) then
registerCreatureEvent(target, "LootEventDeath")
end
return true]]></event>
<talkaction words="!autoloot;/autoloot" event="buffer"><![CDATA[
domodlib('Loot_func')
local t = string.explode(string.lower(param), ",")
if info_OnlyPremium == true and not isPremium(cid) then
doPlayerSendCancel(cid, "you must be a premium account.") return true
elseif not t[1] then
ShowItemsTabble(cid) return true
elseif tonumber(t[1]) or tonumber(t[2]) then
doPlayerSendCancel(cid, "enter !autoloot add,name or !autoloot remove,name") return true
elseif isInArray({"add","remove"}, tostring(t[1])) then
local func,check = tostring(t[1]) == "add" and addItemTable or removeItemTable, tostring(t[1]) == "add" and true or false
local item = getItemIdByName(tostring(t[2]), false)
if not item then
doPlayerSendCancel(cid, "This item does not exist.") return true
elseif check == true and isInArray(info.BlockItemsList, item) then
doPlayerSendCancel(cid, "You can not add this item in the list!") return true
elseif isInTable(cid, item) == check then
doPlayerSendCancel(cid, "This Item "..(check == true and "already" or "is not").." in your list.") return true
end
func(cid, item)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,check == true and "you added the item "..t[2].." in the list" or "you removed the item "..t[2].." from the list") return true
end
return true]]></talkaction>
</mod>

 

 

 

Comandos:

/autoloot -- mostra a lista de loot

____________

/autoloot add,ITEM -- adiciona o item da lista de loot

 

Exemplo:

/autoloot add, gold coin

____________

/autoloot remove,ITEM -- remove o item da lista de loot

Da esse erro

 

[21:3:12.206] [Error - TalkAction Interface]
[21:3:12.206] local cid = 268457776
[21:3:12.206] local words = "/autoloot"
[21:3:12.206] local param = ""
[21:3:12.206] local channel = 65534
[21:3:12.206] domodlib('Loot_func')
[21:3:12.206] local t = string.explode(string.lower(param), ",")
[21:3:12.206] if info_OnlyPremium == true and not isPremium(cid) then
[21:3:12.206] doPlayerSendCancel(cid, "you must be a premium account.") return t
rue
[21:3:12.206] elseif not t[1] then
[21:3:12.206] ShowItemsTabble(cid) return true
[21:3:12.206] elseif tonumber(t[1]) or tonumber(t[2]) then
[21:3:12.206] doPlayerSendCancel(cid, "enter !autoloot add,name or !autoloot rem
ove,name") return true
[21:3:12.206] elseif isInArray({"add","remove"}, tostring(t[1])) then
[21:3:12.206] local func,check = tostring(t[1]) == "add" and addItemTable or rem
oveItemTable, tostring(t[1]) == "add" and true or false
[21:3:12.206] local item = getItemIdByName(tostring(t[2]), false)
[21:3:12.206] if not item then
[21:3:12.206] doPlayerSendCancel(cid, "This item does not exist.") return true
[21:3:12.206] elseif check == true and isInArray(info.BlockItemsList, item) then


[21:3:12.206] doPlayerSendCancel(cid, "You can not add this item in the list!")
return true
[21:3:12.206] elseif isInTable(cid, item) == check then
[21:3:12.206] doPlayerSendCancel(cid, "This Item "..(check == true and "already"
 or "is not").." in your list.") return true
[21:3:12.222] end
[21:3:12.222] func(cid, item)
[21:3:12.222] doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,check ==
true and "you added the item "..t[2].." in the list" or "you removed the item ".
.t[2].." from the list") return true
[21:3:12.222] end
[21:3:12.222] return true
[21:3:12.222] Description:
[21:3:12.222] data/lib/050-function.lua:305: attempt to index a boolean value
Link para o comentário
Compartilhar em outros sites

  • 0

Da esse erro [...]

Teste assim:

 

<?xml version="1.0" encoding="ISO-8859-1"?>
<mod name="Loot System" version="1.0" author="Vodkart And Mkalo" contact="none.com" enabled="yes">
<config name="Loot_func"><![CDATA[

info = {
	OnlyPremium = true,
	AutomaticDeposit = false,
	BlockMonsters = {},
	BlockItemsList = {2123,2515},
	Limit = 3
}

function setPlayerStorageTable(cid, storage, tab)
	local tabstr = "&"
	for i,x in pairs(tab) do
		tabstr = tabstr .. i .. "," .. x .. ";"
	end
	setPlayerStorageValue(cid, storage, tabstr:sub(1, #tabstr-1))
end

function getPlayerStorageTable(cid, storage)
	local tabstr = getPlayerStorageValue(cid, storage)
	local tab = {}
	if type(tabstr) ~= "string" then
		return {}
	end
	if tabstr:sub(1,1) ~= "&" then
		return {}
	end
	local tabstr = tabstr:sub(2, #tabstr)
	local a = string.explode(tabstr, ";")
	for i,x in pairs(a) do
		local b = string.explode(x, ",")
		tab[tonumber(b[1]) or b[1]] = tonumber(b[2]) or b[2]
	end
	return tab
end

function isInTable(cid, item)
	for _,i in pairs(getPlayerStorageTable(cid, 27000))do
		if tonumber(i) == tonumber(item) then
			return true
		end
	end
	return false
end

function addItemTable(cid, item)
	local x = {}
	for i = 1,#getPlayerStorageTable(cid, 27000) do
		table.insert(x,getPlayerStorageTable(cid, 27000)[i])
	end
	if x ~= 0 then
		table.insert(x,tonumber(item))
		setPlayerStorageTable(cid, 27000, x)
	else
		setPlayerStorageTable(cid, 27000, {item})
	end
end

function removeItemTable(cid, item)
	local x = {}
	for i = 1,#getPlayerStorageTable(cid, 27000) do
		table.insert(x,getPlayerStorageTable(cid, 27000)[i])
	end
	for i,v in ipairs(x) do
		if tonumber(v) == tonumber(item) then
			table.remove(x,i)
		end
	end
	return setPlayerStorageTable(cid, 27000, x)
end

function ShowItemsTabble(cid)
	local str,n = "-- Items Adicionados em sua lista  --                      (: No-Delay \n\n",0
	for i = 1,#getPlayerStorageTable(cid, 27000) do
		n = n + 1
		str = str..""..n.." - "..getItemNameById(getPlayerStorageTable(cid, 27000)[i]).."\n"
	end
	return doShowTextDialog(cid, 2529, str)
end

function getContainerItems(containeruid)
	local items = {}
	local containers = {}
	if type(getContainerSize(containeruid)) ~= "number" then
		return false
	end
	for slot = 0, getContainerSize(containeruid)-1 do
		local item = getContainerItem(containeruid, slot)
		if item.itemid == 0 then
			break
		end
		if isContainer(item.uid) then
			table.insert(containers, item.uid)
		end
		table.insert(items, item)
	end
	if #containers > 0 then
		for i,x in ipairs(getContainerItems(containers[1])) do
			table.insert(items, x)
		end
		table.remove(containers, 1)
	end
	return items
end

function getItemsInContainerById(container, itemid) -- Function By Kydrai
	local items = {}
	if isContainer(container) and getContainerSize(container) > 0 then
		for slot=0, (getContainerSize(container)-1) do
			local item = getContainerItem(container, slot)
			if isContainer(item.uid) then
				local itemsbag = getItemsInContainerById(item.uid, itemid)
				for i=0, #itemsbag do
					table.insert(items, itemsbag[i])
				end
			else
				if itemid == item.itemid then
					table.insert(items, item.uid)
				end
			end
		end
	end
	return items
end

function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo
	local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid)
	local piles = 0
	if #item > 0 then
		for i,x in pairs(item) do
			if getThing(x).type < 100 then
				local it = getThing(x)
				doTransformItem(it.uid, itemid, it.type+quant)
				if it.type+quant > 5 then
					doPlayerAddItem(cid, itemid, it.type+quant-5)
				end
			else
				piles = piles+1
			end
		end
	else
		return doPlayerAddItem(cid, itemid, quant)
	end
	if piles == #item then
		doPlayerAddItem(cid, itemid, quant)
	end
end

function AutomaticDeposit(cid,item,n)
	local deposit = item == tonumber(2160) and (n*10000) or tonumber(item) == 2152 and (n*100) or (n*1)
	return doPlayerDepositMoney(cid, deposit)
end

function corpseRetireItems(cid, pos)
	local check = false
	for i = 0, 255 do
		pos.stackpos = i
		tile = getTileThingByPos(pos)
		if tile.uid > 0 and isCorpse(tile.uid) then
			check = true
			break
		end
	end
	if check == true then
		local items = getContainerItems(tile.uid)
		for i,x in pairs(items) do
			if isInArray(getPlayerStorageTable(cid, 27000), tonumber(x.itemid)) then
				if isItemStackable(x.itemid) then
					doPlayerAddItemStacking(cid, x.itemid, x.type)
					if info.AutomaticDeposit == true and isInArray({"2148","2152","2160"},tonumber(x.itemid)) then
						AutomaticDeposit(cid,x.itemid,x.type)
					end
				else
					doPlayerAddItem(cid, x.itemid)
				end
				doRemoveItem(x.uid)
			end
		end
	end
end
]]></config>
<event type="login" name="LootLogin" event="script"><![CDATA[
function onLogin(cid)
registerCreatureEvent(cid, "MonsterAttack")
return true
end]]></event>
<event type="death" name="LootEventDeath" event="script"><![CDATA[
domodlib('Loot_func')
function onDeath(cid, corpse, deathList)
local killer,pos = deathList[1],getCreaturePosition(cid)
addEvent(corpseRetireItems,1,killer,pos)
return true
end]]></event>
<event type="combat" name="MonsterAttack" event="script"><![CDATA[
domodlib('Loot_func')
if isPlayer(cid) and isMonster(target) and not isInArray(info.BlockMonsters,string.lower(getCreatureName(target))) then
registerCreatureEvent(target, "LootEventDeath")
end
return true]]></event>
<talkaction words="!autoloot" event="buffer"><![CDATA[
domodlib('Loot_func')
	local t = string.explode(string.lower(param), ",")
	if info.OnlyPremium and not isPremium(cid) then
		doPlayerSendCancel(cid, "you must be a premium account.") return true
	elseif not t[1] then
		ShowItemsTabble(cid) return true
	elseif tonumber(t[1]) or tonumber(t[2]) then
		doPlayerSendCancel(cid, "enter!autoloot add,name or !autoloot remove,name") return true
	elseif isInArray({"add","remove"}, tostring(t[1])) then
		local func,check = tostring(t[1]) == "add" and addItemTable or removeItemTable, tostring(t[1]) == "add" and true or false
		local item = getItemIdByName(tostring(t[2]), false)
		if not item then
			doPlayerSendCancel(cid, "This item does not exist.") return true
		elseif check == true and isInArray(info.BlockItemsList, item) then
			doPlayerSendCancel(cid, "You can not add this item in the list!") return true
		elseif isInTable(cid, item) == check then
			doPlayerSendCancel(cid, "This Item "..(check == true and "already" or "is not").." in your list.") return true
		elseif #getPlayerStorageTable(cid, 27000) >= info.Limit then
			doPlayerSendCancel(cid, "you can add max 3 items") return true
		end
		func(cid, item)
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,check == true and "Você adicionou o item -> "..t[2].." <- em sua lista" or "Você removeu o item -> "..t[2].." <- de sua lista") return true
		end
return true]]></talkaction>
</mod> 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Tem um bug nessa script, fui usar ela aqui e quando tento retirar um item adicionado aparece a mensagem dizendo que é no maximo 3 items, sendo que eu quero remove 1, para por outro '-'

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...