L2JLisvus

Would you like to react to this message? Create an account in a few clicks or log in to continue.

    Enabling trick to remove target from player

    avatar
    confejulian


    Posts : 254
    Join date : 2016-08-27

    Enabling trick to remove target from player Empty Enabling trick to remove target from player

    Post  confejulian 5th September 2020, 05:27

    Well, im working on trick skill to enable to pull out target from another enemy character.

    This is the original skill code

    Code:
    <skill id="11" levels="12" name="Trick">
      <table name="#mpConsume"> 54 56 61 65 68 69 72 74 77 79 81 83 </table>
      <table name="#magicLvl"> 49 52 55 58 60 62 64 66 68 70 72 74 </table>
      <set name="mpConsume" val="#mpConsume"/>
      <set name="magicLvl" val="#magicLvl"/>
      <set name="power" val="80"/>
      <set name="target" val="TARGET_ONE"/>
      <set name="hitTime" val="300"/>
      <set name="reuseDelay" val="20000"/>
      <set name="skillType" val="AGGREDUCE_CHAR"/>
      <set name="operateType" val="OP_ACTIVE"/>
      <set name="castRange" val="400"/>
      <set name="effectRange" val="900"/>
    </skill>

    well to enable the remove target. i added this lines at the end.

    Code:
      <for>
      <effect count="1" name="RemoveTarget" time="1" val="0"/>
      </for>

    staying of this way

    Code:
    <skill id="11" levels="12" name="Trick">
      <table name="#mpConsume"> 54 56 61 65 68 69 72 74 77 79 81 83 </table>
      <table name="#magicLvl"> 49 52 55 58 60 62 64 66 68 70 72 74 </table>
      <set name="mpConsume" val="#mpConsume"/>
      <set name="magicLvl" val="#magicLvl"/>
      <set name="power" val="80"/>
      <set name="target" val="TARGET_ONE"/>
      <set name="hitTime" val="300"/>
      <set name="reuseDelay" val="20000"/>
      <set name="skillType" val="AGGREDUCE_CHAR"/>
      <set name="operateType" val="OP_ACTIVE"/>
      <set name="castRange" val="400"/>
      <set name="effectRange" val="900"/>
        <for>
      <effect count="1" name="RemoveTarget" time="1" val="0"/>
      </for>
    </skill>

    well, from this way that work but only "entry" to one char 1 time from 200. So... maybe you say, if you want more chance, you need to increase skill power. well you can increase that how much how you want. and nothing change.

    So, to can modify the chance of these skill, i changed the skilltype from
    Code:
    <set name="skillType" val="AGGREDUCE_CHAR"/>
    to
    Code:
    <set name="skillType" val="DEBUFF"/>

    Well, from this way work awesome, you can modify the power, and you can increase or reduce the chance. Maybe you say, already, perfect.

    But no. With this method, when you use the skill on some mob, not work fine, is how the mob lose her target, but keep agresive to you, altought if you are using silent move. Its like he understand you are hiting to him.

    Nothing critical but... if we come to the core, on the Disablers.java we have this for
    Code:
     <set name="skillType" val="AGGREDUCE_CHAR"/>

    Code:
                case AGGREDUCE_CHAR:
                {
                   // these skills needs to be rechecked
                   if (Formulas.getInstance().calcSkillSuccess(activeChar, target, skill, ss, sps, bss))
                   {
                      if (target instanceof L2MonsterInstance)
                      {
                         target.getAI().notifyEvent(CtrlEvent.EVT_AGGRESSION, activeChar, -((L2MonsterInstance) target).getHating(activeChar));
                      }

                      skill.getEffects(activeChar, target);
                   }
                   else
                   {
                      if (activeChar instanceof L2PcInstance)
                      {
                         SystemMessage sm = new SystemMessage(SystemMessage.S1_WAS_UNAFFECTED_BY_S2);
                         sm.addString(target.getName());
                         sm.addSkillName(skill);
                         activeChar.sendPacket(sm);
                      }
                   }
                   break;
                }


    Well, the thing is why the power not increase the chance when the skilltype is AGGREDUCE_CHAR. Because i followed the calcSkillSuccess function and that used the power as variable. so really i dont understand how to do that from the right way.

    Anyone have any idea of how can i do work that from the right way?

      Current date/time is 19th May 2024, 13:47