Bruno 536 Postado Junho 5, 2015 Share Postado Junho 5, 2015 Introdução Este script consiste em aumentar uma porcentagem dos ataques de acordo com o critical level. Exemplo: Suponhamos que o player tenha Critical Skill 100 e a porcentagem de ataque esteja configurado para aumentar 50%, o player terá 30% de chance de au 50% dos ataques. Instalação O conteúdo da lib serve para o Critical e Dodge 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="18415" script="other/critical.lua"/>Depois em data/actions/scripts/other crie um arquivo chamado critical.lua com o seguinte conteúdo: function onUse(player, item, fromPosition, target, toPosition, isHotkey) if player:getCriticalLevel() < CRITICAL.LEVEL_MAX then item:remove(1) player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS) player:setCriticalLevel(player:getCriticalLevel() + 1) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você aumentou sua skill de critical para [" .. player:getCriticalLevel() .. "/" .. CRITICAL.LEVEL_MAX .. "].") elseif player:getCriticalLevel() >= CRITICAL.LEVEL_MAX then player:sendTextMessage(MESSAGE_STATUS_WARNING, "Você alcancou o máximo de seu CRITICAL Skill.\nParabéns!!!!") return false end return true end Pronto, já configuramos o item para atribuir o Critical Skill, vamos configurar a parte dos ataques. Vá em data/creaturescripts/creaturescripts.xml e adicione a seguinte tag: <event type="healthchange" name="CriticalSystem" script="criticalSystem.lua"/>Agora em data/creaturescripts/scripts crie um arquivo chamado criticalSystem.lua com o seguinte conteúdo: function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) if not isPlayer(attacker) then return false end if (attacker:getCriticalLevel() * 3) >= math.random (0, 1000) then if isInArray({ORIGIN_MELEE, ORIGIN_RANGED, ORIGIN_SPELL}, origin) and primaryType ~= COMBAT_HEALING then primaryDamage = primaryDamage + math.ceil(primaryDamage * CRITICAL.PERCENT) attacker:say("CRITICAL!", TALKTYPE_MONSTER_SAY) creature:getPosition():sendMagicEffect(CONST_ME_EXPLOSIONHIT) 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("CriticalSystem") -- Critical System if player:getCriticalLevel() == -1 then player:setCriticalLevel(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="!critical" script="critical.lua"/>E para finalizar, em data/talkactions/scripts crie um arquivo chamado critical.lua com o seguinte conteúdo: function onSay(player, words, param) local skill = player:getCriticalLevel() local message = "CRITICAL SYSTEM\nO sistema consiste em ter % de chance de dar um dano critico.\n\nPor Exemplo:\nCada pedra utilizada atribui 0,3% a mais de chance.\nCom 10 pedras, voce tera 3% de chance de hitar um dano critico dos ataques desferidos ao seu oponente.\nCom 100 pedras (maximo), voce tera 30% de chance de hitar um dano critico dos ataques desferidos ao seu oponente.\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------------------\nCritical Skill: [" .. skill .. "/100]" doPlayerPopupFYI(player, message) end Bom é isso ai! Créditos: CoehManeh reagiu a isso 1 Link para o comentário https://xtibia.com/forum/topic/234508-tfs-1x-critical-system/ Compartilhar em outros sites More sharing options...
Janmix 10 Postado Junho 5, 2015 Share Postado Junho 5, 2015 funciona em tfs 0.4? Link para o comentário https://xtibia.com/forum/topic/234508-tfs-1x-critical-system/#findComment-1654552 Compartilhar em outros sites More sharing options...
Bruno 536 Postado Junho 5, 2015 Autor Share Postado Junho 5, 2015 funciona em tfs 0.4? Não, apenas em tfs 1.1 e 1.2... Link para o comentário https://xtibia.com/forum/topic/234508-tfs-1x-critical-system/#findComment-1654553 Compartilhar em outros sites More sharing options...
Administrador Administrador 1436 Postado Junho 5, 2015 Administrador Share Postado Junho 5, 2015 Boa, acho muito interessante esse sistema. Link para o comentário https://xtibia.com/forum/topic/234508-tfs-1x-critical-system/#findComment-1654557 Compartilhar em outros sites More sharing options...
Bruno 536 Postado Junho 5, 2015 Autor Share Postado Junho 5, 2015 Boa, acho muito interessante esse sistema. Vlw man! Quando eu vi a primeira vez, gostei muito ai atualizei kkkk Link para o comentário https://xtibia.com/forum/topic/234508-tfs-1x-critical-system/#findComment-1654559 Compartilhar em outros sites More sharing options...
shept 11 Postado Junho 5, 2015 Share Postado Junho 5, 2015 gostei muito do seu sistema, mas tenho uma duvida, no caso o hit que sairá critico, será o mesmo hit que seria se não fosse, o que eu quero dizer, o dano não vira com alguma corsinha diferente? vi em algum lugar que quando o cara bate o critico o dano sai laranja Link para o comentário https://xtibia.com/forum/topic/234508-tfs-1x-critical-system/#findComment-1654567 Compartilhar em outros sites More sharing options...
Bruno 536 Postado Junho 5, 2015 Autor Share Postado Junho 5, 2015 Laranja é apenas a mensagem, o efeito é uma explosão que sai do adversário, seja monstro ou player. Link para o comentário https://xtibia.com/forum/topic/234508-tfs-1x-critical-system/#findComment-1654579 Compartilhar em outros sites More sharing options...
shept 11 Postado Junho 5, 2015 Share Postado Junho 5, 2015 Laranja é apenas a mensagem, o efeito é uma explosão que sai do adversário, seja monstro ou player. não a mensagem de "critical!" mas sim o dano, em vez de ser vermelho no caso de um hit de physical damage, o NUMERO do valor do dano Link para o comentário https://xtibia.com/forum/topic/234508-tfs-1x-critical-system/#findComment-1654582 Compartilhar em outros sites More sharing options...
Bruno 536 Postado Junho 5, 2015 Autor Share Postado Junho 5, 2015 não a mensagem de "critical!" mas sim o dano, em vez de ser vermelho no caso de um hit de physical damage, o NUMERO do valor do dano Daria para fazer, é só colocar: creature:say(primaryDamage, TALKTYPE_MONSTER_SAY) E alterar para o efeito desejado. Link para o comentário https://xtibia.com/forum/topic/234508-tfs-1x-critical-system/#findComment-1654584 Compartilhar em outros sites More sharing options...
shept 11 Postado Junho 5, 2015 Share Postado Junho 5, 2015 Daria para fazer, é só colocar: creature:say(primaryDamage, TALKTYPE_MONSTER_SAY) E alterar para o efeito desejado. obrigado querido Link para o comentário https://xtibia.com/forum/topic/234508-tfs-1x-critical-system/#findComment-1654592 Compartilhar em outros sites More sharing options...
Bruno 536 Postado Junho 5, 2015 Autor Share Postado Junho 5, 2015 obrigado querido Por nada disponha Link para o comentário https://xtibia.com/forum/topic/234508-tfs-1x-critical-system/#findComment-1654593 Compartilhar em outros sites More sharing options...
curruwilliam 28 Postado Junho 6, 2015 Share Postado Junho 6, 2015 Da erro na talkaction: Provavelmente não vai funcionar, pode atualizar o script por favor Com base nos script do: https://github.com/orts/server Link para o comentário https://xtibia.com/forum/topic/234508-tfs-1x-critical-system/#findComment-1654690 Compartilhar em outros sites More sharing options...
Bruno 536 Postado Junho 6, 2015 Autor Share Postado Junho 6, 2015 Da erro na talkaction: Provavelmente não vai funcionar, pode atualizar o script por favor Com base nos script do: https://github.com/orts/server A base é a mesma amigo, se fosse erro no script, não iria funcionar as actions e o próprio sistema, não só a talkaction. Tem ctz que é só esse erro que está gerando? Link para o comentário https://xtibia.com/forum/topic/234508-tfs-1x-critical-system/#findComment-1654697 Compartilhar em outros sites More sharing options...
curruwilliam 28 Postado Junho 6, 2015 Share Postado Junho 6, 2015 (editado) A base é a mesma amigo, se fosse erro no script, não iria funcionar as actions e o próprio sistema, não só a talkaction. Tem ctz que é só esse erro que está gerando? Não testei o sistema todo, só a talkaction por enquanto. O comando !critical funcionou: http://i.imgur.com/LPXfl05.png Editado Junho 6, 2015 por curruwilliam Link para o comentário https://xtibia.com/forum/topic/234508-tfs-1x-critical-system/#findComment-1654699 Compartilhar em outros sites More sharing options...
Lumus 254 Postado Junho 6, 2015 Share Postado Junho 6, 2015 Não testei o sistema todo, só a talkaction por enquanto. Tu instalou a lib certinho? Link para o comentário https://xtibia.com/forum/topic/234508-tfs-1x-critical-system/#findComment-1654701 Compartilhar em outros sites More sharing options...
Posts Recomendados