-
Quem Está Navegando 0 membros estão online
Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
Por L3K0T
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.
-
Por hekan19
Olá pessoal,
Estou com um problema no sistema de autoloot.
Ao abrir um Pokémon, itens aparecem no chão. Recebo "0" no console do TFS.
Obrigado pela ajuda
-
Por wallaceg15
Sempre que mato o poke, cai um corpinho e o pokemon continua vivo, e aparece esse erro na distro... Alguém poderia me ajudar?
[Error - CreatureScript Interface]
data/creaturescripts/scripts/player/statsChange.lua:onStatsChange
Description:
data/lib/towerSystem.lua:931: attempt to index global 'magmaTP2' (a nil value)
stack traceback:
data/lib/towerSystem.lua:931: in function 'doKillBossTower'
data/lib/Death System.lua:599: in function 'doKillWildPoke'
data/creaturescripts/scripts/player/statsChange.lua:1461: in function <data/creaturescripts/scripts/player/statsChange.lua:6>
statsChange.lua towerSystem.lua Death System.lua
-
Por Featzen
Bom, vi por aqui e não achei nenhum autoloot igual o da pxg ou sem bugs, então decidi vir aqui postar o que eu fiz.
Vamos lá.
1º - Vá na pasta Lib, no arquivo some functions.lua e adicione isso depois do ultimo "end":
2º - Vá em actions/script e crie um arquivo.lua com nome de Autoloot, dentro coloque:
Agora, no actions.xml adicione a tag:
<action itemid="" event="script" value="Autoloot.lua"/> Dentro de itemid="", coloque o id dos corpses.
Para conseguir o id dos corpses, podemos fazer um pequeno script, que pegará o corpse de cada pokemon capturável.
Clique em: Execute Script e terá todos os corpses de pokemons capturáveis.
Créditos:
Mkalo -- Auto Stacking
Gabriel Sales(eu) -- Resto
-
Por Featzen
Bom, como um individuo(Vudi) não sabe cumprir o que fala, vou postar o sistema aqui.(não cabe ao post explicar aqui)
Bom, aqui está o smeargle system, igual o da PxG. Vamos lá.
1 - Vá na pasta Lib, substitua seu cooldown bar.lua por isso:
2 - Ainda no Lib, no fim(depois do ultimo end) do Some Functions.lua, adicione isso:
3 - Agora no order.lua, do Actions, em baixo de:
if getTileThingByPos(checkpos).uid <= 0 then return true end Adicione:
4 - Se seu servidor ja tiver os spells, sketch 1, sketch 2... Substitua por esses:
Se não, use os mesmos acima, não esqueça de adicionar no spells.xml.
5 - Agora, vá em talkactions/scripst, abra o move1.lua e substitua:
Pronto, se tiver feito tudo certo, funcionará.
Como ficará:
Como usar:
Créditos: Eu(Todo o script)
-