[Help] Putting two functions together v83

Results 1 to 3 of 3
  1. #1
    Elite Member Modify is offline
    Member +Rank
    Dec 2013 Join Date
    636f6f6b696573Location
    140Posts

    [Help] Putting two functions together v83

    Hi there...First off, I'm not sure how often or if there is, a limit on how many help posts a person is allowed to make for a certain duration of time. I've noticed that I've been making quite a few for the past week T.T. If there is a limit, I'll try to keep it to a minimum.

    I've been trying to add

    Code:
    killMonster(monster, chr, true);
     List<MapleMapObject> items = chr.getMap().getMapObjectsInRange(chr.getPosition(), Double.POSITIVE_INFINITY, Arrays.asList(MapleMapObjectType.ITEM));
                if (items.size() >= 500) {
                     for (MapleMapObject i : items) {
                chr.getMap().removeMapObject(i);
                chr.getMap().broadcastMessage(MaplePacketCreator.removeItemFromMap(i.getObjectId(), 0, chr.getId()));
                     }    
                     chr.dropMessage("[Map] - 500 drops on map reached. Drops cleared.");
                }
    Which can be found here because it seems like a nice efficient thing to have. But I'm not sure how to add it to

    Code:
        public boolean damageMonster(MapleCharacter chr, MapleMonster monster, int damage) {        if (monster.getId() == 8800000) {
                for (MapleMapObject object : chr.getMap().getMapObjects()) {
                    MapleMonster mons = chr.getMap().getMonsterByOid(object.getObjectId());
                    if (mons != null) {
                        if (mons.getId() >= 8800003 && mons.getId() <= 8800010) {
                            return true;
                        }
                    }
                }
            }
                if (monster.isAlive()) {
            boolean killMonster = false;
            synchronized (monster) {
            if (!monster.isAlive()) {
                return false;
            }
            if (damage > 0) {
                int monsterhp = monster.getHp();
                monster.damage(chr, damage, true);
                if (!monster.isAlive()) { // monster just died
                killMonster(monster, chr, true);
                if (monster.getId() >= 8810002 && monster.getId() <= 8810009) {
                    for (MapleMapObject object : chr.getMap().getMapObjects()) {
                    MapleMonster mons = chr.getMap().getMonsterByOid(object.getObjectId());
                    if (mons != null) {
                        if (mons.getId() == 8810018 || mons.getId() == 8810026) {
                        damageMonster(chr, mons, monsterhp);
                        }
                    }
                    }
                }
                } else if (monster.getId() >= 8810002 && monster.getId() <= 8810009) {//zakum
                for (MapleMapObject object : chr.getMap().getMapObjects()) {
                    MapleMonster mons = chr.getMap().getMonsterByOid(object.getObjectId());
                    if (mons != null) {
                    if (mons.getId() == 8810018 || mons.getId() == 8810026) {
                        damageMonster(chr, mons, damage);
                    }
                    }
                }
                }
            }
            }
            if (killMonster) {
            killMonster(monster, chr, true);
                }
            return true;
        }
        return false;
        }
    Without getting them to work together. I've tried:

    Code:
        public boolean damageMonster(MapleCharacter chr, MapleMonster monster, int damage) {        if (monster.getId() == 8800000) {
                for (MapleMapObject object : chr.getMap().getMapObjects()) {
                    MapleMonster mons = chr.getMap().getMonsterByOid(object.getObjectId());
                    if (mons != null) {
                        if (mons.getId() >= 8800003 && mons.getId() <= 8800010) {
                            return true;
                        }
                    }
                }
            }
                if (monster.isAlive()) {
            boolean killMonster = false;
            synchronized (monster) {
            if (!monster.isAlive()) {
                return false;
            }
            if (damage > 0) {
                int monsterhp = monster.getHp();
                monster.damage(chr, damage, true);
                if (!monster.isAlive()) { // monster just died
                killMonster(monster, chr, true);
                if (monster.getId() >= 8810002 && monster.getId() <= 8810009) {
                    for (MapleMapObject object : chr.getMap().getMapObjects()) {
                    MapleMonster mons = chr.getMap().getMonsterByOid(object.getObjectId());
                    if (mons != null) {
                        if (mons.getId() == 8810018 || mons.getId() == 8810026) {
                        damageMonster(chr, mons, monsterhp);
                        }
                    }
                    }
                }
                } else if (monster.getId() >= 8810002 && monster.getId() <= 8810009) {//zakum
                for (MapleMapObject object : chr.getMap().getMapObjects()) {
                    MapleMonster mons = chr.getMap().getMonsterByOid(object.getObjectId());
                    if (mons != null) {
                    if (mons.getId() == 8810018 || mons.getId() == 8810026) {
                        damageMonster(chr, mons, damage);
                    }
                    }
                }
                }
            }         if (damage > 0) {
                int monsterhp = monster.getHp();
                monster.damage(chr, damage, true);
                if (!monster.isAlive()) { // monster just died
                    killMonster(monster, chr, true);
                 List<MapleMapObject> items = chr.getMap().getMapObjectsInRange(chr.getPosition(), Double.POSITIVE_INFINITY, Arrays.asList(MapleMapObjectType.ITEM));
                if (items.size() >= 1500) {
                     for (MapleMapObject i : items) {
                chr.getMap().removeMapObject(i);
                chr.getMap().broadcastMessage(MaplePacketCreator.removeItemFromMap(i.getObjectId(), 0, chr.getId()));
                     }    
                     chr.dropMessage("The maximum amount of drops has been reached. 1500 items have been cleared.");
                }
            }
            }
                }
            if (killMonster) {
            killMonster(monster, chr, true);
                }
            return true;
        }
        return false;
        }
    It doesn't give any errors (Thank goodness), but the clearing drops part doesn't work. Only the original first part of it works. If there's a way to make these two function together, how can I do it?


    Thanks in advance!
    Last edited by Modify; 25-11-14 at 10:25 PM.


  2. #2
    Grand Master kevintjuh93 is offline
    Grand MasterRank
    Jun 2008 Join Date
    The NetherlandsLocation
    4,119Posts

    Re: [Help] Putting two functions together v83

    Replace this line (which is under if (killMonster) {
    Code:
    killMonster(monster, chr, true);
    With that new piece of code.

  3. #3
    Elite Member Modify is offline
    Member +Rank
    Dec 2013 Join Date
    636f6f6b696573Location
    140Posts

    Re: [Help] Putting two functions together v83

    Thank you for replying kevintjuh93!

    As a clarification, would

    Code:
        public boolean damageMonster(MapleCharacter chr, MapleMonster monster, int damage) {        if (monster.getId() == 8800000) {
                for (MapleMapObject object : chr.getMap().getMapObjects()) {
                    MapleMonster mons = chr.getMap().getMonsterByOid(object.getObjectId());
                    if (mons != null) {
                        if (mons.getId() >= 8800003 && mons.getId() <= 8800010) {
                            return true;
                        }
                    }
                }
            }
                if (monster.isAlive()) {
            boolean killMonster = false;
            synchronized (monster) {
            if (!monster.isAlive()) {
                return false;
            }
            if (damage > 0) {
                int monsterhp = monster.getHp();
                monster.damage(chr, damage, true);
                if (!monster.isAlive()) { // monster just died
                killMonster(monster, chr, true);
                if (monster.getId() >= 8810002 && monster.getId() <= 8810009) {
                    for (MapleMapObject object : chr.getMap().getMapObjects()) {
                    MapleMonster mons = chr.getMap().getMonsterByOid(object.getObjectId());
                    if (mons != null) {
                        if (mons.getId() == 8810018 || mons.getId() == 8810026) {
                        damageMonster(chr, mons, monsterhp);
                        }
                    }
                    }
                }
                } else if (monster.getId() >= 8810002 && monster.getId() <= 8810009) {//zakum
                for (MapleMapObject object : chr.getMap().getMapObjects()) {
                    MapleMonster mons = chr.getMap().getMonsterByOid(object.getObjectId());
                    if (mons != null) {
                    if (mons.getId() == 8810018 || mons.getId() == 8810026) {
                        damageMonster(chr, mons, damage);
                    }
                    }
                }
                }
            }
            }
            if (killMonster) {
            killMonster(monster, chr, true);
     List<MapleMapObject> items = chr.getMap().getMapObjectsInRange(chr.getPosition(), Double.POSITIVE_INFINITY, Arrays.asList(MapleMapObjectType.ITEM));
                if (items.size() >= 1500) {
                     for (MapleMapObject i : items) {
                chr.getMap().removeMapObject(i);
                chr.getMap().broadcastMessage(MaplePacketCreator.removeItemFromMap(i.getObjectId(), 0, chr.getId()));
                     }    
                     chr.dropMessage("The maximum amount of drops has been reached. 1500 items have been cleared.");
                }
                }
    if (killMonster) { 
    killMonster(monster, chr, true);
     }
            return true;
        }
        return false;
        }
    be correct?

    Edit: If it is correct, when I try it out, similar to the first situation, only the original first part of it works o.o (Didn't get any errors)
    Last edited by Modify; 27-11-14 at 04:14 PM.



Advertisement