Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 06/01/26 em todas áreas
-
[Narutibia] Jinchuuriki System - Distro 0.4
Salve rápázyádá, recentemente estava de rolê pelo tk, e vi um tópico com o seguinte pedido: "Jinchuuriki System", pra que não conhece irei da um breve resumo. Para quem conhece o anime naruto sabe sobre as bijuus, e que elas foram seladas em shinobis destinados a carregar tamanha responsabilidade devido a cada biju ter um poder destruidor, como por exemplo a bijuu raposa de nove caldas(Kyuubi), selada dentro do personagem principal chamado de Naruto Uzumaki, a Kyuubi quando dominada, dá ao usuário uma grotesca quantidade de chakra, assim como jutsus e muito mais, cada bijuu tem sua especialidade, jutsus de defesa, assim como a própia defesa e resistência do usuário a tais jutsus, mas claro para você ter a bijuu, é necessário que você sele-a dentro de você, através de um dos jutsus proibidos, como o Shiki Fuujin usado por Minato o 4º Hokage e também pai de naruto, ao usar o selo ele consome a alma de quem usa levando-o a morte após o termino do jutsu, minato como hokage não poderia deixar a kyuubi destruir a vila, então ele invoca o Selo Consumidor do Demônio Morto(Shiki Fuujin) conhecido também como Selo Ceifeiro da Morte, e sela a kyuubi dentro de seu própio filho salvando a vila e morrendo como herói, e naruto desde então passa a ser o Jinchuuriki da raposa de nove caldas. Tendo uma ideia básica de como funciona, vamos a explicação do sistema, que não é diferente. Ao usar um jutsu(spell) de selo em algum bijuu(monstro), você terá ele selado dentro de você e obterá os jutsus de acordo com cada bijuu, mas para isso, a vida(hp) da bijuu deve está menor que 20%(configurável), e então você durante 2(configurável) dias, terá ele selado dentro de você e poderá usar os jutsus, ao acabar esse tempo você irá perdelo, assim como os jutsus. Sistema criado e testado na versão 8.60 usando uma distro na versão 0.4, mesmo assim pode funcionar em versões inferiores!! Siga os passos corretamente que é sucesso. Vá em data/lib e crie um arquivo chamado JinchuurikiSystem.lua e coloque o seguinte code dentro: A tabela está de acordo com a ordem de bijuus existente desde o bijuu de 1 calda, até a biju de nove caldas, então você irá mexer somente em qual ou quais jutsus(spells) cada bijuu irá usar, mais precisamente aqui: spells = {""} entre aspas coloque a quantidade que seja de jutsus(spell), como por exemplo: Tk no Jutsu 1- Tk no jutsu 2, separados por virgula, assim: spells = {"Tk no jutsu 1", "Tk no jutsu 2"} Lembrando que o nome das spells não é a que fica em words, é que fica em name na xml, por exemplo: eu tenho um jutsu chamado kai, quem joga narutibia sabe pra que serve, para usar ela, usamos o nome que está em words, e a que fica em name, será que vai ser mostrada quando for usar, entretanto a função que faz o player aprender a spell, segui pelo nome: <instant name="Kai!" words="kai" note que contém uma exclamação no nome da spell, então vai ter que ir exclamação e tudo junto, ficando assim: spells = {"Tk no jutsu 1", "Tk no jutsu 2", "Kai!"} e então quando o player for usar a spell pelo words kai, a spell será usada. Agora vá em data/spells/scripts crie um arquivo chamado selojin.lua e coloque o seguinte code dentro: Agora vá em data/spells/scripts crie um arquivo chamado buff bijuu.lua e coloque o seguinte code dentro: a tag que você irá colocar na spells.xml para esse jutsu(spell) será a seguinte: <instant name="Shiki Fuujin" words="shiki fuujin" lvl="1" mana="1" prem="0" exhaustion="10" enabled="1" needtarget="1" event="script" value="selojin.lua"> </instant> <instant name="Buff Jin" words="buff jin" lvl="1" mana="0" prem="0" selftarget="1" exhaustion="1000" enabled="1" event="script" value="buff bijuu.lua"> </instant> Agora vá em data/talkactions/scripts e crie um arquivo chamado jincheck.lua e coloque o seguinte code dentro: Nota: esse comando serve para você checar quanto tempo você tem de Jinchuuriki, e qual bijuu está selado dentro de você. A tag da talkactions.xml para esse jutsu(spell) é a seguinte: <talkaction words="!jincheck" event="script" value="jincheck.lua"/> Agora vá em data/globalevents/scripts e crie um arquivo chamado jincheck.lua e coloque o seguinte code dentro: Nota: esse script checa a cada um minuto, os players online na qual o tempo de Jinchuuriki já expirou, e então remove, para assim ele não continuar com os jutsus. A tag do globalevents.xml desse script é a seguinte: <globalevent name="JinSystem" interval="60000" script="jincheck.lua"/> Agora pra finalizar vá em data/creaturescripts/scripts e crie um arquivo chamado jinsystem.lua e adicione o seguinte code: e a tag do creaturescripts.xml desse script é a seguinte: <!-- Jinchuuriki System --> <event type="look" name="JinSystemLook" event="script" value="jinsystem.lua"/> <event type="death" name="JinSystemDeath" event="script" value="jinsystem.lua"/> <event type="login" name="JinSystemLogin" event="script" value="jinsystem.lua"/> <event type="logout" name="JinSystemLogout" event="script" value="jinsystem.lua"/> Nota: na spells.xml que não precisam ter uma vocação especifica para ser usada e devem conter a tag: needlearn="1" contendo essa tag, a spell não irá aparecer para nenhum player e não poderá ser usado até que o player sele a bijuu, após ser aprendida quando o player sela a bijuu, irá aparecer no comando !jutsus que em servidores normais é o spellbook e o !spells, em quanto o player não selar, ele não ver e nem pode usar. bijuu_outfit é o id da looktype que o player vai ganhar ao usar o buff(se você tem outro buff ou speel que faça o mesmo, remova-o ou então remova a função doSetCreatureOutfit da minha buff, assim não gerando conflito e ficando o outfit que deseja). skill_p é a quantidade de pontos que ao usar o buff da bijuu, vai add no player. time_buff é quanto tempo o buff vai ficar no player valendo também para a looktype. effBuff é o id do efeito que vai sair em cima do player quando ele usar o buff. Pronto, basta configura a spells que cada bijuu(monstro), e pronto. Acho que não preciso explicar como configurar, no própio script deixei umas observações. É totalmente proibido levar meu sistema para outro blog, site ou fórum, fiz esse sistema exclusivamente para membros da comunidade do TibiaKing. Quaisquer erros, sugestões, críticas(construtivas), fiquem a vontade, caso tenha alguma duvida sobre tal parte do script, ou não entendeu alguma parte de como configurar, basta comentar que estarei dando suporte. Script feito por mim. Abraços, bom uso, e boa noite! xD1 ponto
-
[MOD] Reflect System 0.1
1 pontoOlá Tibia King's! Reflect System[0.1] Função Ao ser obtido um item que possua o atributo Reflect o player será capaz de refletir danos Fisicos e Mágicos ao mesmo tempo. A idéia geral desse script é bem simples mesmo. Quando o player receber um damage de uma criatura (monstro ou player) esse attack será refletido em uma certa porcentagem. Exemplo: 22:46 You see a golden amulet. It weighs 8.30 oz. [Reflect: 80%] <?xml version="1.0" encoding="UTF-8"?> <mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes"> <description> Script que funciona para refletir danos para as creatures que o atacar. </description> <event type="login" name="regReflectDamage" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid,"ReflectDamage") return true end ]]></event> <event type="statschange" name="ReflectDamage" event="script"><![CDATA[ local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_RING} function onStatsChange(cid, attacker, type, combat, value) local reflectPercent = 0 local dmg = value local playerPos = getCreaturePosition(cid) local attackerPos = getCreaturePosition(attacker) for i = 1, #slotPos do if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then if getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) then reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) end end end if reflectPercent > 0 then dmg = math.ceil(-value*((100-reflectPercent)/100)) if (dmg < 0) then doCreatureAddHealth(cid, dmg) doSendAnimatedText(playerPos, -dmg, COLOR_RED) doSendMagicEffect(playerPos, 0) else doSendMagicEffect(playerPos, 3) end dmg = math.ceil(-value*(reflectPercent/100)) if (dmg < 0) then doCreatureAddHealth(attacker, dmg) doSendAnimatedText(attackerPos, -dmg, COLOR_RED) doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY) end else return true end end]]></event> </mod> function getItemReflectPercent(itemuid) return getItemAttribute(itemuid, "reflectPercent") end function doPlayerAddReflectedItem(cid, itemid, percent) local item = doPlayerAddItem(cid, itemid) doItemSetAttribute(item, "description", "[Reflect: "..percent.."%]") doItemSetAttribute(item, "reflectPercent", percent) end Obs³: Para adicionarmos novos items com o atributo Reflect usamos o comando doPlayerAddReflectedItem(cid,itemid,percent). {itemid = id do item escolhido / percent = porcentagem do reflect} Creio que não esqueci de nada. Qualquer dúvida é só postar! Sem mais, Aluccard. Edit: Npc que vende Reflect Item Obs¹: Os items pode ser acumulativo. Ou seja, se o amuleto der 10% de reflect e o ring der 35%. O player possuirá um Reflect = 45%. [MOD]reflectSystem.xml Obs²: O código está meio enferrujado, mas funciona. Como podes ver o sistema está na versão 0.1 e irá ser atualizada com o tempo. ReflectLib.lua1 ponto
Líderes está configurado para São Paulo/GMT-03:00