Bruno 536 Postado Junho 5, 2015 Share Postado Junho 5, 2015 Introdução Este script consiste em defender uma porcentagem dos ataques recebidos de acordo com o dodge level. Exemplo: Suponhamos que o player tenha Dodge Skill 100 e a porcentagem de defesa esteja configurado para defender 50%, o player terá 30% de chance de defender 50% dos ataques recebidos. Instalação O conteúdo da lib serve para o Dodge e Critical System, se você já fez este procedimento no outro script simplesmente ignore e vá para o próximo passo. Em data/lib/core/core.lua adicione o seguinte conteúdo em qualquer parte: dofile('data/lib/core/dclib.lua')Ainda em data/lib/core/core crie um arquivo chamado dclib.lua com o seguinte conteúdo: -- Configuração DODGE = { STORAGE = 48900, -- player storage do sistema LEVEL_MAX = 100, -- máximo de dodge level que o player pode alcançar PERCENT = 0.5 -- porcentagem que irá defender o ataque [padrão 50% = 0.5] } CRITICAL = { STORAGE = 48901, -- player storage do sistema LEVEL_MAX = 100, -- máximo de critical level que o player pode alcançar PERCENT = 0.5 -- porcentagem que irá aumentar o ataque [padrão 50% = 0.5] } function Player.getDodgeLevel(self) return self:getStorageValue(DODGE.STORAGE) end function Player.setDodgeLevel(self, value) return self:setStorageValue(DODGE.STORAGE, value) end function Player.getCriticalLevel(self) return self:getStorageValue(CRITICAL.STORAGE) end function Player.setCriticalLevel(self, value) return self:setStorageValue(CRITICAL.STORAGE, value) end Agora em data/actions/actions.xml adicione a seguinte tag: <action itemid="18413" script="other/dodge.lua"/>Depois em data/actions/scripts/other crie um arquivo chamado dodge.lua com o seguinte conteúdo: function onUse(player, item, fromPosition, target, toPosition, isHotkey) if player:getDodgeLevel() < DODGE.LEVEL_MAX then item:remove(1) player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS) player:setDodgeLevel(player:getDodgeLevel() + 1) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você aumentou sua skill de dodge para [" .. player:getDodgeLevel() .. "/" .. DODGE.LEVEL_MAX .. "].") elseif player:getDodgeLevel() >= DODGE.LEVEL_MAX then player:sendTextMessage(MESSAGE_STATUS_WARNING, "Você alcancou o máximo de seu DODGE Skill.\nParabéns!!!!") return false end return true end Pronto, já configuramos o item para atribuir o Dodge Skill, vamos configurar a parte dos ataques recebidos. Vá em data/creaturescripts/creaturescripts.xml e adicione a seguinte tag: <event type="healthchange" name="DodgeSystem" script="dodgeSystem.lua"/>Agora em data/creaturescripts/scripts crie um arquivo chamado dodgeSystem.lua com o seguinte conteúdo: function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) if not isPlayer(creature) then return false end if (creature:getDodgeLevel() * 3) >= math.random (0, 1000) and isCreature(attacker) then if isInArray({ORIGIN_MELEE, ORIGIN_RANGED, ORIGIN_SPELL}, origin) and primaryType ~= COMBAT_HEALING then primaryDamage = primaryDamage - math.ceil(primaryDamage * DODGE.PERCENT) creature:say("DODGE!", TALKTYPE_MONSTER_SAY) creature:getPosition():sendMagicEffect(CONST_ME_BLOCKHIT) end end return primaryDamage, primaryType, secondaryDamage, secondaryType end Ainda em data/creaturescripts/scripts abra o arquivo login.lua e Antes de: return trueAdicione: player:registerEvent("DodgeSystem") -- Dodge System if player:getDodgeLevel() == -1 then player:setDodgeLevel(0) endO sistema está finalizado, agora vamos criar as talkactions para que os players acompanhem seu skill. Em data/talkactions/talkactions.xml adicione a tag: <talkaction words="!dodge" script="dodge.lua"/>E para finalizar, em data/talkactions/scripts crie um arquivo chamado dodge.lua com o seguinte conteúdo: function onSay(player, words, param) local skill = player:getDodgeLevel() local message = "DODGE SYSTEM\nO sistema consiste em defender % dos ataques recebidos.\n\nPor Exemplo:\nCada pedra utilizada atribui 0,3% a mais de chance.\nCom 10 pedras, voce tera 3% de chance de defender 50% dos ataques recebidos.\nCom 100 pedras (maximo), voce tera 30% de chance de defender 50% dos ataques recebidos.\nCada pedra que voce usar, sua skill de dodge aumenta em 1 ponto.\n\nPara obter a pedra, voce pode comprar no NPC Hyperion, localizado no templo.\nOu atraves de nosso WebShop.\n------------------\nDodge Skill: [" .. skill .. "/100]" doPlayerPopupFYI(player, message) end Bom é isso ai! Créditos: Batat e CoehManeh reagiu a isso 2 Link para o comentário https://xtibia.com/forum/topic/234507-tfs-1x-dodge-system/ Compartilhar em outros sites More sharing options...
Krono 128 Postado Junho 5, 2015 Share Postado Junho 5, 2015 Gostei demais Bruno, estou montando um servidor, e esse sistema caiu como uma luva. Muito obrigado por este excelente sistema!! Link para o comentário https://xtibia.com/forum/topic/234507-tfs-1x-dodge-system/#findComment-1654568 Compartilhar em outros sites More sharing options...
Bruno 536 Postado Junho 5, 2015 Autor Share Postado Junho 5, 2015 Gostei demais Bruno, estou montando um servidor, e esse sistema caiu como uma luva. Muito obrigado por este excelente sistema!! Vlw Krono, fico feliz que gostou! Link para o comentário https://xtibia.com/forum/topic/234507-tfs-1x-dodge-system/#findComment-1654577 Compartilhar em outros sites More sharing options...
DaniF 0 Postado Janeiro 1, 2016 Share Postado Janeiro 1, 2016 Aonde fica essa pasta, core? Link para o comentário https://xtibia.com/forum/topic/234507-tfs-1x-dodge-system/#findComment-1679816 Compartilhar em outros sites More sharing options...
Desnecessario 59 Postado Janeiro 2, 2016 Share Postado Janeiro 2, 2016 (editado) Caso eu fosse adicionar o dodge em um item como faria? -Por exemplo uma bota aumentar 20% de dodge Ótimo script btw. Editado Janeiro 2, 2016 por Goren Link para o comentário https://xtibia.com/forum/topic/234507-tfs-1x-dodge-system/#findComment-1679833 Compartilhar em outros sites More sharing options...
Caronte 446 Postado Janeiro 2, 2016 Share Postado Janeiro 2, 2016 (editado) Caso eu fosse adicionar o dodge em um item como faria? -Por exemplo uma bota aumentar 20% de dodge Ótimo script btw. Bom, próximo de vinte, fazendo uma regra de três é 66, então: é só você fazer um script onEquip e outro onDeEquip. no onEquip, coloca isto: function onEquip(player) player:setDodgeLevel(player:getDodgeLevel() + 66) return true end no onDeEquip, coloca isto: function onDeEquip(player) player:setDodgeLevel(player:getDodgeLevel() - 66) return true end Ambos os scripts devem se colocados na pasta scripts, da pasta movements, e devem conter extensão .lua agora abra o movements.xml na pasta movements e adicione duas tags: <movevent type="Equip" itemid="ID_DA_BOTA_AQUI" slot="feet" event="script" value="nome do arquivo.lua"/> <movevent type="DeEquip" itemid="ID_DA_BOTA_AQUI" slot="feet" event="script" value="nome do arquivo.lua"/> Aonde fica essa pasta, core? Em lugar nenhum, você tem que criar... [titulo][/titulo] @Tópico: Bom script @Bruno, parabéns. Editado Janeiro 2, 2016 por Caronte Link para o comentário https://xtibia.com/forum/topic/234507-tfs-1x-dodge-system/#findComment-1679836 Compartilhar em outros sites More sharing options...
DaniF 0 Postado Janeiro 2, 2016 Share Postado Janeiro 2, 2016 Em lugar nenhum, você tem que criar... Eu tentei, criei um arquivo.lua, e joguei aquele dofile('data/lib/core/dclib.lua') dentro, mas ai na hora de executa o distro da erro, ele não consegue encontrar os arquivo lib.. Link para o comentário https://xtibia.com/forum/topic/234507-tfs-1x-dodge-system/#findComment-1679871 Compartilhar em outros sites More sharing options...
lemos99 1 Postado Outubro 28, 2017 Share Postado Outubro 28, 2017 (editado) Em 02/01/2016 at 14:40, DaniF disse: Eu tentei, criei um arquivo.lua, e joguei aquele dofile('data/lib/core/dclib.lua') dentro, mas ai na hora de executa o distro da erro, ele não consegue encontrar os arquivo lib.. É porque ele pediu para criar um arquivo chamado ddlib, e no documento ele coloca para procurar um arquivo chamado dcllib... é só arrumar os nomes Olá Bruno blz? cara to com TFS 1.3 aqui e coloquei o sistema, sem usar os itens os bixos não estão hitando com physical... Se sabe o que pode ser? Editado Outubro 28, 2017 por lemos99 Link para o comentário https://xtibia.com/forum/topic/234507-tfs-1x-dodge-system/#findComment-1723261 Compartilhar em outros sites More sharing options...
XxVinePeccixX 9 Postado Fevereiro 17, 2018 Share Postado Fevereiro 17, 2018 ótimo sistema!! estou usando em meu server, porém gostaria de por uma pagina do site explicando o sistema, alguém sabe como fazer?? E mais uma coisa ele buga o acento ai tenho que por sem acento quando ele fala "Você" ou "Parabéns" Link para o comentário https://xtibia.com/forum/topic/234507-tfs-1x-dodge-system/#findComment-1726481 Compartilhar em outros sites More sharing options...
CoehManeh 0 Postado Junho 14, 2018 Share Postado Junho 14, 2018 (editado) Olá, parabéns pelo script. Porém o único que funciona pra mim é o Crítico (apesar de em nenhum momento eu conseguir ver o crítico subir, pelo menos não deu erro). Mas o Dodge ele nem usa a pedra pra ganhar Skill. Edit.: Adaptei os 100 pontos de Dodge direto no banco de dados só pra testar, e agora meu personagem é imortal. Tem um morgaroth batendo nele e só da DODGE! Editado Junho 14, 2018 por CoehManeh Link para o comentário https://xtibia.com/forum/topic/234507-tfs-1x-dodge-system/#findComment-1741355 Compartilhar em outros sites More sharing options...
XxVinePeccixX 9 Postado Julho 20, 2018 Share Postado Julho 20, 2018 Alguém sabe como faz para o dodge desviar na mana também? sem ser só na vida Link para o comentário https://xtibia.com/forum/topic/234507-tfs-1x-dodge-system/#findComment-1742181 Compartilhar em outros sites More sharing options...
bilaux 0 Postado Janeiro 17, 2019 Share Postado Janeiro 17, 2019 eu instalei o dodge e critical, só q me embananei no login.lua e ficou dando esse erro [Warning - Event::checkScript] Can not load script: scripts/login.lua data/creaturescripts/scripts/login.lua:40: 'then' expected near char(239) Citar player:registerEvent("CriticalSystem") -- Critical System if player:getCriticalLevel() == -1 then player:setCriticalLevel(0) player:registerEvent("DodgeSystem") -- Dodge System if player:getDodgeLevel() == -1 then player:setDodgeLevel(0) end return true end Em 05/06/2015 em 17:48, Bruno disse: Introdução Este script consiste em defender uma porcentagem dos ataques recebidos de acordo com o dodge level. Exemplo: Suponhamos que o player tenha Dodge Skill 100 e a porcentagem de defesa esteja configurado para defender 50%, o player terá 30% de chance de defender 50% dos ataques recebidos. Instalação O conteúdo da lib serve para o Dodge e Critical System, se você já fez este procedimento no outro script simplesmente ignore e vá para o próximo passo. Em data/lib/core/core.lua adicione o seguinte conteúdo em qualquer parte: dofile('data/lib/core/dclib.lua') Ainda em data/lib/core/core crie um arquivo chamado dclib.lua com o seguinte conteúdo: Mostrar conteúdo oculto -- Configuração DODGE = { STORAGE = 48900, -- player storage do sistema LEVEL_MAX = 100, -- máximo de dodge level que o player pode alcançar PERCENT = 0.5 -- porcentagem que irá defender o ataque [padrão 50% = 0.5] } CRITICAL = { STORAGE = 48901, -- player storage do sistema LEVEL_MAX = 100, -- máximo de critical level que o player pode alcançar PERCENT = 0.5 -- porcentagem que irá aumentar o ataque [padrão 50% = 0.5] } function Player.getDodgeLevel(self) return self:getStorageValue(DODGE.STORAGE) end function Player.setDodgeLevel(self, value) return self:setStorageValue(DODGE.STORAGE, value) end function Player.getCriticalLevel(self) return self:getStorageValue(CRITICAL.STORAGE) end function Player.setCriticalLevel(self, value) return self:setStorageValue(CRITICAL.STORAGE, value) end Agora em data/actions/actions.xml adicione a seguinte tag: <action itemid="18413" script="other/dodge.lua"/> Depois em data/actions/scripts/other crie um arquivo chamado dodge.lua com o seguinte conteúdo: Ocultar conteúdo function onUse(player, item, fromPosition, target, toPosition, isHotkey) if player:getDodgeLevel() < DODGE.LEVEL_MAX then item:remove(1) player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS) player:setDodgeLevel(player:getDodgeLevel() + 1) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você aumentou sua skill de dodge para [" .. player:getDodgeLevel() .. "/" .. DODGE.LEVEL_MAX .. "].") elseif player:getDodgeLevel() >= DODGE.LEVEL_MAX then player:sendTextMessage(MESSAGE_STATUS_WARNING, "Você alcancou o máximo de seu DODGE Skill.\nParabéns!!!!") return false end return true end Pronto, já configuramos o item para atribuir o Dodge Skill, vamos configurar a parte dos ataques recebidos. Vá em data/creaturescripts/creaturescripts.xml e adicione a seguinte tag: <event type="healthchange" name="DodgeSystem" script="dodgeSystem.lua"/> Agora em data/creaturescripts/scripts crie um arquivo chamado dodgeSystem.lua com o seguinte conteúdo: Ocultar conteúdo function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) if not isPlayer(creature) then return false end if (creature:getDodgeLevel() * 3) >= math.random (0, 1000) and isCreature(attacker) then if isInArray({ORIGIN_MELEE, ORIGIN_RANGED, ORIGIN_SPELL}, origin) and primaryType ~= COMBAT_HEALING then primaryDamage = primaryDamage - math.ceil(primaryDamage * DODGE.PERCENT) creature:say("DODGE!", TALKTYPE_MONSTER_SAY) creature:getPosition():sendMagicEffect(CONST_ME_BLOCKHIT) end end return primaryDamage, primaryType, secondaryDamage, secondaryType end Ainda em data/creaturescripts/scripts abra o arquivo login.lua e Antes de: return true Adicione: player:registerEvent("DodgeSystem") -- Dodge System if player:getDodgeLevel() == -1 then player:setDodgeLevel(0) end O sistema está finalizado, agora vamos criar as talkactions para que os players acompanhem seu skill. Em data/talkactions/talkactions.xml adicione a tag: <talkaction words="!dodge" script="dodge.lua"/> E para finalizar, em data/talkactions/scripts crie um arquivo chamado dodge.lua com o seguinte conteúdo: Ocultar conteúdo function onSay(player, words, param) local skill = player:getDodgeLevel() local message = "DODGE SYSTEM\nO sistema consiste em defender % dos ataques recebidos.\n\nPor Exemplo:\nCada pedra utilizada atribui 0,3% a mais de chance.\nCom 10 pedras, voce tera 3% de chance de defender 50% dos ataques recebidos.\nCom 100 pedras (maximo), voce tera 30% de chance de defender 50% dos ataques recebidos.\nCada pedra que voce usar, sua skill de dodge aumenta em 1 ponto.\n\nPara obter a pedra, voce pode comprar no NPC Hyperion, localizado no templo.\nOu atraves de nosso WebShop.\n------------------\nDodge Skill: [" .. skill .. "/100]" doPlayerPopupFYI(player, message) end Bom é isso ai! Créditos: Link para o comentário https://xtibia.com/forum/topic/234507-tfs-1x-dodge-system/#findComment-1747207 Compartilhar em outros sites More sharing options...
RichardZago 0 Postado Março 11, 2019 Share Postado Março 11, 2019 Em 17/01/2019 em 17:15, bilaux disse: eu instalei o dodge e critical, só q me embananei no login.lua e ficou dando esse erro [Warning - Event::checkScript] Can not load script: scripts/login.lua data/creaturescripts/scripts/login.lua:40: 'then' expected near char(239) estou com o mesmo erro :\ e parece que o fórum parou 2 minutos atrás, RichardZago disse: estou com o mesmo erro :\ e parece que o fórum parou [20:51:43.399] data/creaturescripts/scripts/l aturescripts/scripts/login.lua:5> [20:51:43.496] Account Manager has logged out. O account manager no executável disse que logou, porém, no Tibia só dá carregando e nunca entra, agora se eu apago o teu script no login.lua, eu consigo logar, porém o dodge não funciona :\ Link para o comentário https://xtibia.com/forum/topic/234507-tfs-1x-dodge-system/#findComment-1749804 Compartilhar em outros sites More sharing options...
Posts Recomendados