Postado Maio 24, 2020 5 anos .Qual servidor ou website você utiliza como base? FTS 1.3 Qual o motivo deste tópico? Fala pessoal, boa tarde, tudo bem? Gostaria de saber se existe alguma maneira de criar um "utamo vita" parcial, onde eu consiga administrar a porcentagem para balanceamento. Basicamente, consiste em fazer a habilidade utamo vita distribuir o dano parte em sua MANA, e parte em sua VIDA, e não somente em mana. Seria possível? Está surgindo algum erro? Se sim coloque-o aqui. Citar Você tem o código disponível? Se tiver publique-o aqui: local combat = Combat() combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false) local condition = Condition(CONDITION_MANASHIELD) condition:setParameter(CONDITION_PARAM_TICKS, 200000) combat:addCondition(condition) function onCastSpell(creature, variant) return combat:execute(creature, variant) end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
Postado Maio 25, 2020 5 anos @theevilwish Você pode retornar um event com o dano que o player recebeu com o staus mana shield.
Postado Maio 25, 2020 5 anos Autor 5 minutos atrás, TrojanRat disse: @theevilwish Você pode retornar um event com o dano que o player recebeu com o staus mana shield. Perdão, Trojan, eu não entendi exatamente como seria.
Postado Maio 25, 2020 5 anos Solução Adicione este código em seu Data/Lib/Compact.lua Spoiler local barrierStorage = 10500 function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) local dam1 = primaryDamage/2 local dam2 = secondaryDamage/2 local manaLoss = math.floor(dam1+dam2) local barrier = creature:getStorageValue(barrierStorage) if barrier >= 1 then if manaLoss <= barrier then doCreatureSay(creature, manaLoss.. " damage absorbed", TALKTYPE_MONSTER_SAY) creature:setStorageValue(barrierStorage, barrier-manaLoss) creature:sendTextMessage(TALKTYPE_MONSTER_SAY, "barrier can absorb "..barrier-manaLoss.." damage more") return primaryDamage*0, primaryType, secondaryDamage*0, secondaryType else if dam1 > barrier then primaryDamage = primaryDamage - barrier*2 blocked1 = barrier else primaryDamage = barrier - dam1 blocked1 = dam1 end if dam2 > barrier then secondaryDamage = secondaryDamage - barrier*2 blocked2 = barrier else secondaryDamage = barrier - dam2 blocked2 = dam2 end doCreatureSay(creature, blocked1+blocked2.. " damage absorbed", TALKTYPE_MONSTER_SAY) creature:setStorageValue(barrierStorage, 0) creature:sendTextMessage(TALKTYPE_MONSTER_SAY, "BARRIER IS BROKEN") return primaryDamage, primaryType, secondaryDamage, secondaryType end end return primaryDamage, primaryType, secondaryDamage, secondaryType end Agora seu script de spell .lua Spoiler local barrierStorage = 10500 local amount = 110 Combat():setParameter(COMBAT_PARAM_AGGRESSIVE, 0) function onCastSpell(creature, var) creature:setStorageValue(barrierStorage, amount) Combat():execute(creature, var) creature:sendTextMessage(MESSAGE_STATUS_DEFAULT, "Mana shield Activated") creature:sendTextMessage(TALKTYPE_MONSTER_SAY, "barrier can absorb "..amount.." damage") return true end
Postado Maio 25, 2020 5 anos Autor 4 horas atrás, TrojanRat disse: Adicione este código em seu Data/Lib/Compact.lua Mostrar conteúdo oculto local barrierStorage = 10500 function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) local dam1 = primaryDamage/2 local dam2 = secondaryDamage/2 local manaLoss = math.floor(dam1+dam2) local barrier = creature:getStorageValue(barrierStorage) if barrier >= 1 then if manaLoss <= barrier then doCreatureSay(creature, manaLoss.. " damage absorbed", TALKTYPE_MONSTER_SAY) creature:setStorageValue(barrierStorage, barrier-manaLoss) creature:sendTextMessage(TALKTYPE_MONSTER_SAY, "barrier can absorb "..barrier-manaLoss.." damage more") return primaryDamage*0, primaryType, secondaryDamage*0, secondaryType else if dam1 > barrier then primaryDamage = primaryDamage - barrier*2 blocked1 = barrier else primaryDamage = barrier - dam1 blocked1 = dam1 end if dam2 > barrier then secondaryDamage = secondaryDamage - barrier*2 blocked2 = barrier else secondaryDamage = barrier - dam2 blocked2 = dam2 end doCreatureSay(creature, blocked1+blocked2.. " damage absorbed", TALKTYPE_MONSTER_SAY) creature:setStorageValue(barrierStorage, 0) creature:sendTextMessage(TALKTYPE_MONSTER_SAY, "BARRIER IS BROKEN") return primaryDamage, primaryType, secondaryDamage, secondaryType end end return primaryDamage, primaryType, secondaryDamage, secondaryType end Agora seu script de spell .lua Mostrar conteúdo oculto local barrierStorage = 10500 local amount = 110 Combat():setParameter(COMBAT_PARAM_AGGRESSIVE, 0) function onCastSpell(creature, var) creature:setStorageValue(barrierStorage, amount) Combat():execute(creature, var) creature:sendTextMessage(MESSAGE_STATUS_DEFAULT, "Mana shield Activated") creature:sendTextMessage(TALKTYPE_MONSTER_SAY, "barrier can absorb "..amount.." damage") return true end Cara, agradeço DEMAIS a sua ajuda, antes de qualquer coisa. Vamos lá, o script é funcional, porém foge um pouco do que nós precisávamos. Aparentemente a barreira define um "valor" fixo, e na verdade o que nossa plataforma precisaria seria algo exatamente como o UTAMO VITA, porém, que 30% do dano seja direto na LIFE, e 70% direto na MANA. No caso da magia original Utamo Vita, 100% do dano vai direto pra Mana do personagem. Não sei se fica fácil de interpretar. Se o personagem fosse tomar 1.000 de dano, o dano levado seria -300 direto da VIDA do personagem, e -700 de Mana. Você acha que esse sistema seria muito complexo?
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.