Jump to content

Gries

Members
  • Posts

    817
  • Credits

  • Joined

  • Last visited

  • Days Won

    1
  • Feedback

    0%

Posts posted by Gries

  1. Hello,

     

    Just found something suspicious:

    http://www.maxcheaters.com/topic/190276-lameguard-301-interludekamaelgraciafreyagod/

    Topic is already closed, however the link to download the file is still there.

     

    I just scan it with VirusTotal and found 6/57

    SET-NOD32	a variant of MSIL/Injector.IOA	20150316
    Jiangmin	Trojan/Generic.ajwzf	20150316
    Kaspersky	HEUR:Trojan.Win32.Generic	20150316
    Qihoo-360	HEUR/QVM11.1.Malware.Gen	20150316
    Symantec	WS.Reputation.1	20150316
    TrendMicro-HouseCall	Suspici.8D175B40	20150316 
  2. It is some kind of protection l2j has. In order to disable it you have either to edit its AI script or change type to L2Monster.

     

    However if you have a server running, there shouldn't be any kind of problems since it happens only if you spawn it manually.

  3. Hello, i currently have this code:

    public static List<L2Effect> calcCancelStealEffects(L2Character activeChar, L2Character target, L2Skill skill, double power)
    {
      // Resists.
      int cancelMagicLvl = skill.getMagicLevel();
      int count = skill.getMaxNegatedEffects();
      final double vuln = target.calcStat(Stats.CANCEL_VULN, 0, target, null);
      final double prof = activeChar.calcStat(Stats.CANCEL_PROF, 0, target, null);
      double resMod = 1 + (((vuln + prof) * -1) / 100);
      double rate = power / resMod;
     
      if (activeChar.isDebug() || Config.DEVELOPER)
      {
       final StringBuilder stat = new StringBuilder(100);
       StringUtil.append(stat, skill.getName(), " Base Rate:", String.valueOf((int) power), " Magiclvl:", String.valueOf(cancelMagicLvl), " resMod:", String.format("%1.2f", resMod), "(", String.format("%1.2f", prof), "/", String.format("%1.2f", vuln), ") Rate:", String.valueOf(rate));
       final String result = stat.toString();
       if (activeChar.isDebug())
       {
        activeChar.sendDebugMessage(result);
       }
       if (Config.DEVELOPER)
       {
        _log.info(result);
       }
      }
     
      // Cancel for Abnormals.
      final L2Effect[] effects = target.getAllEffects();
      List<L2Effect> canceled = new ArrayList<>(count);
      if (skill.getNegateAbnormals() != null)
      {
       for (L2Effect eff : effects)
       {
        if (eff == null)
        {
         continue;
        }
       
        for (String negateAbnormalType : skill.getNegateAbnormals().keySet())
        {
         if (negateAbnormalType.equalsIgnoreCase(eff.getAbnormalType()) && (skill.getNegateAbnormals().get(negateAbnormalType) >= eff.getAbnormalLvl()))
         {
          if (calcCancelSuccess(eff, cancelMagicLvl, (int) rate, skill))
          {
           eff.exit();
          }
         }
        }
       }
      }
      // Common Cancel/Steal.
      else
      {
       // First Pass.
       int lastCanceledSkillId = 0;
       L2Effect effect;
       for (int i = effects.length; --i >= 0;) // reverse order
       {
        effect = effects[i];
        if (effect == null)
        {
         continue;
        }
       
        // remove effect if can't be stolen
        if (!effect.canBeStolen())
        {
         effects[i] = null;
         continue;
        }
       
        // if effect time is smaller than 5 seconds, will not be stolen, just to save CPU,
        // avoid synchronization(?) problems and NPEs
        if ((effect.getAbnormalTime() - effect.getTime()) < 5)
        {
         effects[i] = null;
         continue;
        }
       
        // Only Dances/Songs.
        if (!effect.getSkill().isDance())
        {
         continue;
        }
       
        if (!calcCancelSuccess(effect, cancelMagicLvl, (int) rate, skill))
        {
         continue;
        }
       
        if (effect.getSkill().getId() != lastCanceledSkillId)
        {
         lastCanceledSkillId = effect.getSkill().getId();
         count--;
        }
       
        canceled.add(effect);
        if (count == 0)
        {
         break;
        }
       }
       // Second Pass.
       if (count > 0)
       {
        lastCanceledSkillId = 0;
        for (int i = effects.length; --i >= 0;)
        {
         effect = effects[i];
         if (effect == null)
         {
          continue;
         }
        
         // All Except Dances/Songs.
         if (effect.getSkill().isDance())
         {
          continue;
         }
        
         if (!calcCancelSuccess(effect, cancelMagicLvl, (int) rate, skill))
         {
          continue;
         }
        
         if (effect.getSkill().getId() != lastCanceledSkillId)
         {
          lastCanceledSkillId = effect.getSkill().getId();
          count--;
         }
        
         canceled.add(effect);
         if (count == 0)
         {
          break;
         }
        }
       }
      }
      return canceled;
    }
    
    public static boolean calcCancelSuccess(L2Effect eff, int cancelMagicLvl, int rate, L2Skill skill)
    {
      // Lvl Bonus Modifier.
      rate *= (eff.getSkill().getMagicLevel() > 0) ? (cancelMagicLvl / eff.getSkill().getMagicLevel()) : 1;
     
      // Check the Rate Limits.
      rate = Math.min(Math.max(rate, skill.getMinChance()), skill.getMaxChance());
     
      return Rnd.get(100) < rate;
    }
    }

    to calculate the amount of stolen debuffs based on the character resists, however it appears that songs and dances are not being removed as first when a steal skill type is used.

  4. To describe why l2j servers are failing from time to time i am going to quote an upcoming MMO article:

    (probably some of you might have read this already)

    Every Thanksgiving, my family gets together for a game of RISK.  Only it’s not “let’s play Risk every thanksgiving” – it’s “let’s pick up from where we left last year, in the SAME game of Risk.”

    The same game.  The same conflict.  Year after year after year:
    Imagine that, in year 2, Uncle Bob starts winning.
    In year 3, Uncle Bob presses the advantage.  By the end of this game session, Bob basically owns the board.
    Fast forward 10 years.  We’re still playing that same game.  Uncle Bob is now an unassailable tyrant.
    The other players (i.e. everyone other than Uncle Bob) all wander away from the board to watch football or something – because they know they don’t stand a chance.  If a new player joins the game, Bob snuffs them out in their infancy, and they quit immediately.

    Everyone is bored.  Even Uncle Bob is bored – because he hasn’t faced a challenge in over a decade.  But he won’t give up by choice.  That isn’t human nature.

    The game is incredibly fun – right up until someone wins.  Then, without a server reset, the game stagnates and everyone quits.

     

    That's also what Fortuna previously said in his/her post.

  5. <augmentation id="15446"> <!-- Passive: Increases the critical attack rate of magic attacks. -->
      <skillId val="3250" /> <!-- Item Skill: Wild Magic: Passive: Increases the critical attack rate of magic attacks when equipped. -->
      <skillLevel val="5" />
      <type val="red" />
    </augmentation>

    "15446" is the augmentation ID

    "3250" is the skill ID

    "10" is the skill level (even if skill max level should be 5)

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock