fefuxd 2 Postado Agosto 2, 2017 Share Postado Agosto 2, 2017 ola pessoal .. eu gostaria de implementar no meu otserver um sistema de ataque critico por vocação por exemplo.. knight tem 30% de chance de dar um dano critico (2x maior) paladin 40% .. e por ai vai.. somente nos ataques basicos de armas.. wands/rods .. alguem pode me ajudar? Link para o comentário https://xtibia.com/forum/topic/245912-resolvido-chance-de-critico-em-ataque-b%C3%A1sico-por-voca%C3%A7%C3%A3o/ Compartilhar em outros sites More sharing options...
1 Leoxtibia 137 Postado Agosto 3, 2017 Share Postado Agosto 3, 2017 (editado) @Edit Bom, com relação a esse erro que você tá falando, não sei qual o problema, se você colocou como eu disse acima, deveria funcionar. Testei aqui no tfs 0.4 e funcionou. No entanto, ao testar percebi outras coisas. Tenta com esse aqui, @fefuxd Spoiler local hit = {mage = 1.2, knight = 2.0, paladin = 1.4} -- porcentagem de aumento do hit, 1.2 = 20%, 2.0 = 100%, 1.4 = 40% e aí vai... local protect = {} function onStatsChange(cid, attacker, type, combat, value) if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) then if (getPlayerStorageValue(attacker, 19830)) >= math.random (0,100) then if protect[attacker] then protect[attacker] = nil return true end if isSorcerer(cid) or isDruid(cid) then critical = math.ceil(value*hit.mage) elseif isKnight(cid) then critical = math.ceil(value*hit.knight) elseif isPaladin(cid) then critical = math.ceil(value*hit.paladin) end protect[attacker] = true doTargetCombatHealth(attacker, cid, combat, -critical, -critical, 255) doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144) doSendMagicEffect(getCreaturePos(cid), 9) return false end end return true end Confira se você colocou certinho no login.lua. Editado Agosto 3, 2017 por Leoxtibia Link para o comentário https://xtibia.com/forum/topic/245912-resolvido-chance-de-critico-em-ataque-b%C3%A1sico-por-voca%C3%A7%C3%A3o/#findComment-1720502 Compartilhar em outros sites More sharing options...
1 Leoxtibia 137 Postado Agosto 3, 2017 Share Postado Agosto 3, 2017 (editado) Para players. Não testado. Em creaturescripts/scripts: CriticalVocs.lua local hit = {mage = 1.2, knight = 2.0, paladin = 1.4} -- porcentagem de aumento do hit, 1.2 = 20%, 2.0 = 100%, 1.4 = 40% e por aí vai...function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS and isCreature(attacker) then if (getPlayerStorageValue(attacker, 19830)) >= math.random (0,100) then if isSorcerer(cid) or isDruid(cid) then critical = math.ceil(value*hit.mage) elseif isKnight(cid) then critical = math.ceil(value*hit.knight) elseif isPaladin(cid) then critical = math.ceil(value*hit.paladin) end doTargetCombatHealth(attacker, cid, combat, -critical, -critical, 255) doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144) doSendMagicEffect(getCreaturePos(cid), 9) return false end endreturn trueend No login.lua: local chance = {mage = 20, knight = 10, paladin = 30} -- a chance de cada vocação para que aconteça um hit críticoregisterCreatureEvent(cid, "CriticalHit")if getPlayerStorageValue(cid, 19830) == -1 then if isSorcerer(cid) or isDruid(cid) then setPlayerStorageValue(cid, 19830, chance.mage) elseif isKnight(cid) then setPlayerStorageValue(cid, 19830, chance.knight) elseif isPaladin(cid) then setPlayerStorageValue(cid, 19830, chance.paladin) endend Em creaturescripts.xml: <event type="statschange" name="CriticalHit" event="script" value="CriticalVocs.lua"/> Editado Agosto 3, 2017 por Leoxtibia Link para o comentário https://xtibia.com/forum/topic/245912-resolvido-chance-de-critico-em-ataque-b%C3%A1sico-por-voca%C3%A7%C3%A3o/#findComment-1720477 Compartilhar em outros sites More sharing options...
1 Leoxtibia 137 Postado Agosto 3, 2017 Share Postado Agosto 3, 2017 (editado) 5 horas atrás, fefuxd disse: desculpe a minha ignorância.. é que eu não entendo muito de lua.. quanto ao erro nao apareceu mais.. não sei se foi alguma ação de algum player que ocasionou aquele erro.. mas faz uns 30 minutos que esta rodando e esta limpo de erros.. eu tive que colocar 6.0 de critico.. pra notar diferença... pois coloquei 2.0 o critico parecia mais fraco do que o ataque normal kk .. mas ficou bacana.. pena que não serve pra monstros tbm.. valeu pela força @fefuxd Vou ver essa questão de ter que colocar um valor tão alto pra notar a diferença. Tinha feito esse daí sem testar e às pressas, então tem alguns erros. Postei lá: Não tem erros. Dá uma conferida. Editado Agosto 4, 2017 por Leoxtibia Link para o comentário https://xtibia.com/forum/topic/245912-resolvido-chance-de-critico-em-ataque-b%C3%A1sico-por-voca%C3%A7%C3%A3o/#findComment-1720508 Compartilhar em outros sites More sharing options...
0 Leoxtibia 137 Postado Agosto 2, 2017 Share Postado Agosto 2, 2017 Esse ataque crítico é somente para players, certo? Link para o comentário https://xtibia.com/forum/topic/245912-resolvido-chance-de-critico-em-ataque-b%C3%A1sico-por-voca%C3%A7%C3%A3o/#findComment-1720471 Compartilhar em outros sites More sharing options...
0 fefuxd 2 Postado Agosto 3, 2017 Autor Share Postado Agosto 3, 2017 (editado) 2 horas atrás, Leoxtibia disse: Esse ataque crítico é somente para players, certo? @Leoxtibia a idéia é que funcionasse tanto para pvp quanto com monster.. mas se não foi possivel fazer servir para os 2 só pra player já fica interessante também.. ou vc quis dizer que se o Monster tbm vai atacar critico? se for essa a pergunta dai é não.. Editado Agosto 3, 2017 por fefuxd Link para o comentário https://xtibia.com/forum/topic/245912-resolvido-chance-de-critico-em-ataque-b%C3%A1sico-por-voca%C3%A7%C3%A3o/#findComment-1720476 Compartilhar em outros sites More sharing options...
0 fefuxd 2 Postado Agosto 3, 2017 Autor Share Postado Agosto 3, 2017 6 horas atrás, Leoxtibia disse: Para players. Não testado. Em creaturescripts/scripts: CriticalVocs.lua local hit = {mage = 1.2, knight = 2.0, paladin = 1.4} -- porcentagem de aumento do hit, 1.2 = 20%, 2.0 = 100%, 1.4 = 40% e por aí vai... function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS and isCreature(attacker) then if (getPlayerStorageValue(attacker, 19830)) >= math.random (0,100) then if isSorcerer(cid) or isDruid(cid) then critical = math.ceil(value*hit.mage) elseif isKnight(cid) then critical = math.ceil(value*hit.knight) elseif isPaladin(cid) then critical = math.ceil(value*hit.paladin) end doTargetCombatHealth(attacker, cid, combat, -critical, -critical, 255) doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144) doSendMagicEffect(getCreaturePos(cid), 9) return false end end return true end No login.lua: local chance = {mage = 20, knight = 10, paladin = 30} -- a chance de cada vocação para que aconteça um hit crítico registerCreatureEvent(cid, "CriticalHit") if getPlayerStorageValue(cid, 19830) == -1 then if isSorcerer(cid) or isDruid(cid) then setPlayerStorageValue(cid, 19830, chance.mage) elseif isKnight(cid) then setPlayerStorageValue(cid, 19830, chance.knight) elseif isPaladin(cid) then setPlayerStorageValue(cid, 19830, chance.paladin) end end Em creaturescripts.xml: <event type="statschange" name="CriticalHit" event="script" value="CriticalVocs. @Leoxtibia assim que eu chegar em casa umas 15hs vou testar.. quanto ao Critico que da pra configurar pelo config.lua eu preciso desativar o de la? Link para o comentário https://xtibia.com/forum/topic/245912-resolvido-chance-de-critico-em-ataque-b%C3%A1sico-por-voca%C3%A7%C3%A3o/#findComment-1720480 Compartilhar em outros sites More sharing options...
0 Leoxtibia 137 Postado Agosto 3, 2017 Share Postado Agosto 3, 2017 1 hora atrás, fefuxd disse: @Leoxtibia assim que eu chegar em casa umas 15hs vou testar.. quanto ao Critico que da pra configurar pelo config.lua eu preciso desativar o de la? Não Link para o comentário https://xtibia.com/forum/topic/245912-resolvido-chance-de-critico-em-ataque-b%C3%A1sico-por-voca%C3%A7%C3%A3o/#findComment-1720481 Compartilhar em outros sites More sharing options...
0 fefuxd 2 Postado Agosto 3, 2017 Autor Share Postado Agosto 3, 2017 (editado) @Leoxtibia ta dando um erro loco aqui.. mas o server nao crasha.. mas tbm nao ta funcionando o critico olha a imagem: eu reabri o server o erro parou de aparecer.. sinceramente não sei exatamente em que momento que o erro apareceu.. mas de qualquer forma o critico nao esta funcionando :[ esquece.. eu estava vacilando.. estava testando em Monster..mas só ta funcionando em players.. é possivel deixar nos 2? o erro da imagem acima nao aconteceu mais.. Editado Agosto 3, 2017 por fefuxd Link para o comentário https://xtibia.com/forum/topic/245912-resolvido-chance-de-critico-em-ataque-b%C3%A1sico-por-voca%C3%A7%C3%A3o/#findComment-1720501 Compartilhar em outros sites More sharing options...
0 fefuxd 2 Postado Agosto 3, 2017 Autor Share Postado Agosto 3, 2017 1 hora atrás, Leoxtibia disse: @Edit Bom, com relação a esse erro que você tá falando, não sei qual o problema, se você colocou como eu disse acima, deveria funcionar. Testei aqui no tfs 0.4 e funcionou. No entanto, ao testar percebi outras coisas. Tenta com esse aqui, @fefuxd Mostrar conteúdo oculto local hit = {mage = 1.2, knight = 2.0, paladin = 1.4} -- porcentagem de aumento do hit, 1.2 = 20%, 2.0 = 100%, 1.4 = 40% e aí vai... local protect = {} function onStatsChange(cid, attacker, type, combat, value) if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) then if (getPlayerStorageValue(attacker, 19830)) >= math.random (0,100) then if protect[attacker] then protect[attacker] = nil return true end if isSorcerer(cid) or isDruid(cid) then critical = math.ceil(value*hit.mage) elseif isKnight(cid) then critical = math.ceil(value*hit.knight) elseif isPaladin(cid) then critical = math.ceil(value*hit.paladin) end protect[attacker] = true doTargetCombatHealth(attacker, cid, combat, -critical, -critical, 255) doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144) doSendMagicEffect(getCreaturePos(cid), 9) return false end end return true end Confira se você colocou certinho no login.lua. coloquei.. nao notei diferença do primeiro.. o que mudou? eu deixei o critico do config.lua ligado junto com esse que vc me passou... soh assim pra funcionar tanto em monster qto em pvp.. só que se juntar os 2 criticos de uma vez no player vai dar um dano absurdo imagino Link para o comentário https://xtibia.com/forum/topic/245912-resolvido-chance-de-critico-em-ataque-b%C3%A1sico-por-voca%C3%A7%C3%A3o/#findComment-1720505 Compartilhar em outros sites More sharing options...
0 Leoxtibia 137 Postado Agosto 3, 2017 Share Postado Agosto 3, 2017 Como assim "o que mudou?". Só é você olhar as linhas que foram adicionadas. Sobre o config.lua, eu deixei o meu assim: criticalHitChance = 7 criticalHitMultiplier = 1 displayCriticalHitNotify = false Aquele erro ainda aparece? Testei aqui e tá funcionando. Se outro erro estiver aparecendo, fale qual é. Link para o comentário https://xtibia.com/forum/topic/245912-resolvido-chance-de-critico-em-ataque-b%C3%A1sico-por-voca%C3%A7%C3%A3o/#findComment-1720506 Compartilhar em outros sites More sharing options...
0 fefuxd 2 Postado Agosto 3, 2017 Autor Share Postado Agosto 3, 2017 desculpe a minha ignorância.. é que eu não entendo muito de lua.. quanto ao erro nao apareceu mais.. não sei se foi alguma ação de algum player que ocasionou aquele erro.. mas faz uns 30 minutos que esta rodando e esta limpo de erros.. eu tive que colocar 6.0 de critico.. pra notar diferença... pois coloquei 2.0 o critico parecia mais fraco do que o ataque normal kk .. mas ficou bacana.. pena que não serve pra monstros tbm.. valeu pela força Link para o comentário https://xtibia.com/forum/topic/245912-resolvido-chance-de-critico-em-ataque-b%C3%A1sico-por-voca%C3%A7%C3%A3o/#findComment-1720507 Compartilhar em outros sites More sharing options...
0 fefuxd 2 Postado Agosto 5, 2017 Autor Share Postado Agosto 5, 2017 @Leoxtibia testado e aprovado o código.. valeu pela força =D Link para o comentário https://xtibia.com/forum/topic/245912-resolvido-chance-de-critico-em-ataque-b%C3%A1sico-por-voca%C3%A7%C3%A3o/#findComment-1720576 Compartilhar em outros sites More sharing options...
0 Poccnn 385 Postado Agosto 5, 2017 Share Postado Agosto 5, 2017 O pedido neste tópico de foi atendido e/ou o autor do tópico resolveu sua duvida. Este tópico está fechado e foi movido para Pedidos - Resolvidos. Se você tiver outros pedidos, crie um novo tópico. Link para o comentário https://xtibia.com/forum/topic/245912-resolvido-chance-de-critico-em-ataque-b%C3%A1sico-por-voca%C3%A7%C3%A3o/#findComment-1720581 Compartilhar em outros sites More sharing options...
Pergunta
fefuxd 2
ola pessoal .. eu gostaria de implementar no meu otserver um sistema de ataque critico por vocação por exemplo..
knight tem 30% de chance de dar um dano critico (2x maior)
paladin 40% .. e por ai vai..
somente nos ataques basicos de armas.. wands/rods .. alguem pode me ajudar?
Link para o comentário
https://xtibia.com/forum/topic/245912-resolvido-chance-de-critico-em-ataque-b%C3%A1sico-por-voca%C3%A7%C3%A3o/Compartilhar em outros sites
13 respostass a esta questão
Posts Recomendados