Ir para conteúdo
  • Cadastre-se
  • 0

Problema com a classe sorcere


OwnerAnthonny

Pergunta

7 respostass a esta questão

Posts recomendados

  • 0
3 minutos atrás, OwnerAnthonny disse:

Olá, estou tendo problemas com a classe sorcerer, ela está dando críticas muito altas e altos também, alguém sabe como resolver isso?

unknown.png

critico deve ta 3x do dano principal, isso n é bug. pra baixar dano, vc coloca 2x q vai se duas veses 1612 q seria 3224

Link para o comentário
Compartilhar em outros sites


  • 0
hace 1 minuto, Christian-SDM dijo:

critico deve ta 3x do dano principal, isso n é bug. pra baixar dano, vc coloca 2x q vai se duas veses 1612 q seria 3224

image.png.ef719c375bb39d03f1885cbbd8bea291.png

Eu acho que está bem na classe principal. Isso só acontece com duas habilidades, prominence and fire vortex

@Christian-SDM

Eu já verifiquei o xml, as habilidades e não há incidentes.

Link para o comentário
Compartilhar em outros sites

  • 0
1 minuto atrás, OwnerAnthonny disse:

image.png.ef719c375bb39d03f1885cbbd8bea291.png

Eu acho que está bem na classe principal. Isso só acontece com duas habilidades, prominence and fire vortex

@Christian-SDM

Eu já verifiquei o xml, as habilidades e não há incidentes.

n é na skill q vc altera o dano e sim na propriedade das classSettings. Na sua acis n sei onde fica

Link para o comentário
Compartilhar em outros sites

  • 0

Não encontrei essa opção

MagicCriticalPower =  3.0 (que sera 3 veses o dano aumentado conforme o dano basico.

ai tem que ir no core e modificar manualmente.

Formulas.java

public static final double calcMagicDam(Creature attacker, Creature target, L2Skill skill, byte shld, boolean ss, boolean bss, boolean mcrit)
    {
        if (attacker instanceof Player)
        {
            Player pcInst = (Player) attacker;
            if (pcInst.isGM() && !pcInst.getAccessLevel().canGiveDamage())
                return 0;
        }
        
        double mDef = target.getMDef(attacker, skill);
        switch (shld)
        {
            case SHIELD_DEFENSE_SUCCEED:
                mDef += target.getShldDef();
                break;
            
            case SHIELD_DEFENSE_PERFECT_BLOCK: // perfect block
                return 1.;
        }
        
        double mAtk = attacker.getMAtk(target, skill);
        
        if (bss)
            mAtk *= 4;
        else if (ss)
            mAtk *= 2;
        
        double damage = 91 * Math.sqrt(mAtk) / mDef * skill.getPower(attacker);
        
        // Failure calculation
        if (Config.MAGIC_FAILURES && !calcMagicSuccess(attacker, target, skill))
        {
            if (attacker instanceof Player)
            {
                if (calcMagicSuccess(attacker, target, skill) && (target.getLevel() - attacker.getLevel()) <= 9)
                {
                    if (skill.getSkillType() == L2SkillType.DRAIN)
                        attacker.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.DRAIN_HALF_SUCCESFUL));
                    else
                        attacker.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.ATTACK_FAILED));
                    
                    damage /= 2;
                }
                else
                {
                    attacker.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_RESISTED_YOUR_S2).addCharName(target).addSkillName(skill));
                    damage = 1;
                }
            }
            
            if (target instanceof Player)
            {
                if (skill.getSkillType() == L2SkillType.DRAIN)
                    target.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.RESISTED_S1_DRAIN).addCharName(attacker));
                else
                    target.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.RESISTED_S1_MAGIC).addCharName(attacker));
            }
        }
        else if (mcrit)
        -    damage *= 4;

      +    damage *= 3;  seria pra aumenta 3 veses o dano nao 4 veses o critico.

ou cria uma config para altera na propriedade, em vez  de ir toda hora ao core, exemplo.

+else if (mcrit)
+       {
+          // damage *= 4;
+         damage *= Config.MAGIC_CRITICAL_POWER;
+    }

 

Config.java

+MAGIC_CRITICAL_POWER = Float.parseFloat(physicSettings.getProperty("MagicCriticalPower", "3.0"));
+public static float MAGIC_CRITICAL_POWER;

 

+# if critical, damage = mcriticalPower*damage
+MagicCriticalPower=3.0

 

Link para o comentário
Compartilhar em outros sites

  • 0
hace 1 hora, Christian-SDM dijo:

Não encontrei essa opção

MagicCriticalPower =  3.0 (que sera 3 veses o dano aumentado conforme o dano basico.

ai tem que ir no core e modificar manualmente.

Formulas.java

public static final double calcMagicDam(Creature attacker, Creature target, L2Skill skill, byte shld, boolean ss, boolean bss, boolean mcrit)
    {
        if (attacker instanceof Player)
        {
            Player pcInst = (Player) attacker;
            if (pcInst.isGM() && !pcInst.getAccessLevel().canGiveDamage())
                return 0;
        }
        
        double mDef = target.getMDef(attacker, skill);
        switch (shld)
        {
            case SHIELD_DEFENSE_SUCCEED:
                mDef += target.getShldDef();
                break;
            
            case SHIELD_DEFENSE_PERFECT_BLOCK: // perfect block
                return 1.;
        }
        
        double mAtk = attacker.getMAtk(target, skill);
        
        if (bss)
            mAtk *= 4;
        else if (ss)
            mAtk *= 2;
        
        double damage = 91 * Math.sqrt(mAtk) / mDef * skill.getPower(attacker);
        
        // Failure calculation
        if (Config.MAGIC_FAILURES && !calcMagicSuccess(attacker, target, skill))
        {
            if (attacker instanceof Player)
            {
                if (calcMagicSuccess(attacker, target, skill) && (target.getLevel() - attacker.getLevel()) <= 9)
                {
                    if (skill.getSkillType() == L2SkillType.DRAIN)
                        attacker.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.DRAIN_HALF_SUCCESFUL));
                    else
                        attacker.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.ATTACK_FAILED));
                    
                    damage /= 2;
                }
                else
                {
                    attacker.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_RESISTED_YOUR_S2).addCharName(target).addSkillName(skill));
                    damage = 1;
                }
            }
            
            if (target instanceof Player)
            {
                if (skill.getSkillType() == L2SkillType.DRAIN)
                    target.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.RESISTED_S1_DRAIN).addCharName(attacker));
                else
                    target.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.RESISTED_S1_MAGIC).addCharName(attacker));
            }
        }
        else if (mcrit)
        -    damage *= 4;

      +    damage *= 3;  seria pra aumenta 3 veses o dano nao 4 veses o critico.

Funcionou, obrigado.

Link para o comentário
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...




×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.