Histórico de Edições
Please note that revisions older than 15 days are pruned and will no longer show here
Não há histórico de edição para mostrar, ou este comentário foi editado por um moderador.
-
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)
-