Autobanned yet again!! D:

Discussion in 'Ban Appeal' started by GOD, Jun 9, 2014.

  1. GOD
    Offline

    GOD Well-Known Member

    Joined:
    May 30, 2014
    Messages:
    52
    Likes Received:
    23
    IGN:
    Repentance
    Level:
    64
    Guild:
    Myth
    IGN: Repentance
    Last thing you did: Hunting at Luster Pixie. Experienced some lag and disconnected.
    Why do you think you got banned?: Seems to be autoban mistake.
    Ban message when attempting to log in: Your account has been blocked for hacking or illegal use of third-party programs. The ID has been permanently blocked. So you won't be able to use this account.
    What GM banned you (optional): I think it might be an autoban yet again...
     
    Last edited: Jun 9, 2014
  2. Dustin
    Offline

    Dustin Donator

    Joined:
    Aug 7, 2013
    Messages:
    1,079
    Likes Received:
    1,070
    Country Flag:
    Autoban Repentance: High damage 11871 on Luster Pixie

    That amount of damage at your level (55) concerns me. Would you be able to explain how this happened?
     
  3. GOD
    Offline

    GOD Well-Known Member

    Joined:
    May 30, 2014
    Messages:
    52
    Likes Received:
    23
    IGN:
    Repentance
    Level:
    64
    Guild:
    Myth
    The weird thing about this is that I have never done 11k damage ever. I have only seen my damage hit 5k (at most). I usually hit 3k-4k. I have noticed two similarities between this autoban and the previous autoban. I used Power Strike on Luster Pixies.

    EDIT: I am looking into the source code as we speak, and assuming I haven't made any mistakes, I think I may have found the reason behind the autoban.

    Below are the lines of code that check if the damage done to a monster is greater than the elemental max damage per monster multiplied by the multiplier. If so, a ban is given.
    Code:
       if (damageToMonster > elementalMaxDamagePerMonster * multiplyer) {
                                    player.getCheatTracker().registerOffense(CheatingOffense.HIGH_DAMAGE);
                                    // log.info("[h4x] Player {} is doing high damage to one monster: {} (maxdamage: {}, skill:
                                    // {})",
                                    // new Object[] { player.getName(), Integer.valueOf(totDamageToOneMonster),
                                    // Integer.valueOf(maxDamagePerMonster), Integer.valueOf(attack.skill) });
                                    if (damageToMonster > elementalMaxDamagePerMonster * multiplyer) { // * 3 until implementation of lagsafe pingchecks for buff expiration
    									log.warn(player.getName() +" is dealing " + damageToMonster + " to the poor monster... " + monster.getName());
    									try {
    										player.getClient().getChannelServer().getWorldInterface().broadcastGMMessage("", MaplePacketCreator.serverNotice(5, player.getName() + " is dealing " + damageToMonster + " to the poor monster.. " + monster.getName()).getBytes());
    									} catch (RemoteException ex) {
    										player.getClient().getChannelServer().reconnectWorld();
    									}
    									player.getClient().disconnect();
    									return;

    However, I was interested in seeing how damageToMonster is calculated. damageToMonster is an integer variable to the method checkHighDamage. It is the sixth parameter. I then checked for the usage of checkHighDamage.
    I found how the damageToMonster was calculated by checking a few lines above the calling of checkHighDamage.

    Code:
                                    checkHighDamage(player, monster, attack, theSkill, attackEffect, totDamageToOneMonster, maxDamagePerMonster);
    Code:
     for (Pair<Integer, List<Integer>> oned : attack.allDamage) {
                            MapleMonster monster = map.getMonsterByOid(oned.getLeft().intValue());
    
                            if (monster != null) {
                                    int totDamageToOneMonster = 0;
                                    for (Integer eachd : oned.getRight()) totDamageToOneMonster += eachd.intValue();
                                    totDamage += totDamageToOneMonster;
    Assuming I interpreted these lines of code correctly, it states that for the variable oned (which refers to a pair with two parameters: integer, and list which stores integer) will go through the list allDamage, and it states that monster's OID is equal to the left side of oned. Next, if monster doesn't equal null (the monster is existant), then make a new variable called totDamageToOneMonster and set it to 0. Next, make an integer, and have it go through the right side of oned (the list). Finally, it creates the variable totDamage, and add each totDamageToOneMonster everytime the loop repeats (which is for all values on the right side, which is the damage done every single time). So over time, the damage from two or three attacks would equal 11k.
     
    Last edited: Jun 9, 2014
  4. Matt
    Offline

    Matt Administrator

    Joined:
    May 8, 2013
    Messages:
    14,649
    Likes Received:
    18,781
    Gender:
    Male
    Location:
    United Kingdom
    Country Flag:
    IGN:
    Matt
    Level:
    N/A
    Guild:
    Staff
    Cautiously unbanned...

    I also am confused as to how you can presume we are using that source code.
     
  5. GOD
    Offline

    GOD Well-Known Member

    Joined:
    May 30, 2014
    Messages:
    52
    Likes Received:
    23
    IGN:
    Repentance
    Level:
    64
    Guild:
    Myth
    I can understand as to why you've done it with caution as you believe in your source code over my words. Let's just say automation can only be as intelligent as the person who created it. If a person makes a mistake, so will the autoban.

    As to how I know which source code you are using, the answer is I am secretly a magical creature. ~f2
    All jokes aside, I've read various posts on here and from RageZone which have stated that you used HurricaneMS as a source. Furthermore, I recognize the similar ban message from HurricaneMS.
     
  6. Gi
    Offline

    Gi Well-Known Member

    Joined:
    Mar 3, 2014
    Messages:
    451
    Likes Received:
    491
    Gender:
    Male
    IGN:
    Giceratops
    Level:
    30+
    Eh, totDamage isn't added by totDamageToOneMonster for every inner loop [oned.getRight()]. It's raised by the totDamageToOneMonster (which is the result of looping in the inner loop [oned.getRight()]) in the outerloop ([attack.allDamage]).

    What happened with you still looks very dodgy to me.
     
    Nicko and Ubogi like this.

Share This Page