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