Spread Loot
Este é um pedido feito no tópico A Fábrica
Boa noite, galera.
Este é o primeiro pedido atendido no meu tópico A Fábrica, foi um pedido feito pelo usuário OriGM.
Consiste em um sistema de "espalhar" o loot do monstro em uma área delimitada de 1 sqm, torna o jogo bem real, afinal muitos MMORPGs, como Mu Online, Ragnarok, entre outros, "espalham" seu loot.
Não tive como fazer diferentes testes, mas acho que funciona muito bem e não tem bugs severos, como criar itens em tiles bloqueados.
A instalação é fácil como qualquer creaturescript.
spreadloot.lua
local function doSpreadLoot(fromPosition, toPosition, container)
for slot = (getContainerSize(container.uid) - 1), 0, -1 do
local item = getContainerItem(container.uid, slot)
if not isContainer(item.uid) then
local position = {
x = math.random(fromPosition.x, toPosition.x),
y = math.random(fromPosition.y, toPosition.y),
z = fromPosition.z,
}
local itemEx = doCreateItemEx(item.itemid, item.type)
if doTileAddItemEx(position, itemEx) then
doRemoveItem(item.uid)
end
else
doSpreadLoot(fromPosition, toPosition, item)
doRemoveItem(item.uid)
end
end
return true
end
function onKill(cid, target)
if isMonster(target) then
local position = getCreaturePosition(target)
local name = getCreatureName(target)
local fromPosition = {x = position.x - 1, y = position.y - 1, z = position.z}
local toPosition = {x = position.x + 1, y = position.y + 1, z = position.z}
addEvent(function()
local container = getTileItemById(position, getMonsterInfo(name).lookCorpse)
if container.uid > 0 then
doSpreadLoot(fromPosition, toPosition, container)
end
end, 100)
end
return true
end
login.lua
registerCreatureEvent(cid, "SpreadLoot")
creaturescripts.xml
<event type="kill" name="SpreadLoot" event="script" value="lootsystem.lua"/>
Bom, isso é tudo, minha galera.
Att,
Oneshot Garou













