Sistema de Drop Personalizado
Esse sistema de loot foi projetado para adicionar um elemento de sorte e surpresa ao derrotar monstros. Sempre que um jogador derrota um monstro, há uma chance configurada para que ele solte entre 1 a 3 itens especiais, garantindo recompensas valiosas ao jogador.
O sistema realiza as seguintes ações:
Chance de Drop: A cada morte de um monstro, há uma chance configurada para dropar itens específicos. O sistema permite que sejam dropados entre 1 a 3 unidades do item, tornando o sistema mais dinâmico.
Efeito Visual: Quando o loot é bem-sucedido, um efeito visual especial (ID 231) é exibido na posição exata onde o monstro foi derrotado, criando uma animação visual que destaca a recompensa.
Notificação ao Jogador: Após o drop, o jogador recebe uma mensagem personalizada informando a quantidade de itens obtidos. Essa notificação aparece após 3 segundos, adicionando uma camada de imersão e evitando sobrecarregar o chat imediatamente após a morte do monstro.
*Ótimo para fazer eventos de dropar certo itens para alguma missão ou resgates.
*Uso no meu TIBIA HARRY POTTER ORIGIN
VAi em creaturescripts/scripts.lua
local function findCorpse(position)
for i = 1, 255 do
position.stackpos = i
local corpse = getThingfromPos(position)
if isCorpse(corpse.uid) then
return corpse.uid
end
end
return false
end
local function dropLoot(position, killer)
local corpse = findCorpse(position)
if not corpse then
return false
end
local itemId = 2160
local chance = 23
if math.random(100) <= chance then
local amountToDrop = math.random(1, 3)
doAddContainerItem(corpse, itemId, amountToDrop)
local corpsePosition = getThingPos(corpse)
doSendMagicEffect(corpsePosition, 7)
local function sendMessage()
if isPlayer(killer) then
local message = string.format("Você dropou %d Crystal Coin(s).", amountToDrop)
doPlayerSendTextMessage(killer, MESSAGE_INFO_DESCR, message)
end
end
addEvent(sendMessage, 2500)
end
return true
end
function onKill(cid, target)
local position = getCreaturePosition(target)
addEvent(dropLoot, 100, position, cid)
return true
end
creaturescripts.xml
<event type="kill" name="GlobalDrops" registerTo ="GlobalDrops" event="script" value="globalDrops.lua"/>
ou depende do tfs
<event type="kill" name="GlobalDrops" event="script" value="globalDrops.lua"/>
Para ambos TFS registra o evento no login.lua
registerTo ="GlobalDrops"
feito isso.. agora todos os monstros do mapa vai cair os crystal coins de 1 há 3.