Help needed [MoopleDev Rev120]

Page 1 of 3 123 LastLast
Results 1 to 15 of 36
  1. #1
    Enthusiast ZyriC is offline
    MemberRank
    Jan 2014 Join Date
    41Posts

    sad Help needed [MoopleDev Rev120]

    Hi, there's a few issues that I've been searching for but to no avail.

    1. Players can double click on ANY GameMaster and see their character's information, Level/Equips/Fame etc.
    (How do I change it such that players cannot double click and check on a GM)

    2. GMs cannot see each other in "Hide", all GM levels are the same.
    (How do I change it so that every GM can see each other in "Hide")

    3. Leveling up crashes other players on the same map except yourself with Error code 38 (Packet error I believe)
    (When I'm in GM's hide and level up, players will not dc)

    Help would be much appreciated!
    Last edited by ZyriC; 16-12-14 at 05:53 PM.


  2. #2
    Moderator Eric is offline
    ModeratorRank
    Jan 2010 Join Date
    DEV CityLocation
    3,188Posts

    Re: Help needed [MoopleDev Rev120]

    In Moople (if handlers are still the same as Odin), find CharInfoRequestHandler. Add your checks there.

    For Hide.. I'm not quite sure what that problem is. It could be something with broadcastMessage in MapleMap possibly.

  3. #3
    Moongran Saii is offline
    MemberRank
    Jan 2012 Join Date
    510Posts

    Re: Help needed [MoopleDev Rev120]

    when a player enters the map, it sends packets to the map that display someone is there. this allows viewing the player, monster movement, etc.
    what hide does is just, doesn't send those packets.
    so what you have to do is make hide send packets only to GM's that are higher than your GM level.

  4. #4
    Enthusiast ZyriC is offline
    MemberRank
    Jan 2014 Join Date
    41Posts

    Re: Help needed [MoopleDev Rev120]

    @chunkarama Thanks! Now it worked!

    Now I'm left with the Hide problem, @chunkarama there are a lot of brocastMessage related lines in MapleMap... @Saii How do I do that? I'm new sorry,,,

    Found a new fatal bug...whenever someone in a map levels up, other players on the same map crashes with Error code 38, I read that it's invalid packets being sent or something? How do I check that?
    Last edited by ZyriC; 16-12-14 at 03:54 PM.

  5. #5
    Moongran Saii is offline
    MemberRank
    Jan 2012 Join Date
    510Posts

    Re: Help needed [MoopleDev Rev120]

    its the level up animation packet that other players see.
    i forgot how its called. probably showForeignEffect or something similar

  6. #6
    Enthusiast ZyriC is offline
    MemberRank
    Jan 2014 Join Date
    41Posts

    Re: Help needed [MoopleDev Rev120]

    Yes, I have that. Its in the packets etc, how do I change it such that it wont crash people?

  7. #7
    Moongran Saii is offline
    MemberRank
    Jan 2012 Join Date
    510Posts

    Re: Help needed [MoopleDev Rev120]

    well you have to get the correct structure. this is done either by sniffing, guessing, checking IDA, or leeching other sources.
    if I remember correctly the packet has a byte that indicates the type of the effect? sometimes the bytes change so you can just guess that.
    for instance if level up byte in v75 was 2, and broke only in v83, you can try 3/4/etc.
    otherwise if the structure changed, you can probably find it in other sources.

  8. #8
    Enthusiast ZyriC is offline
    MemberRank
    Jan 2014 Join Date
    41Posts

    Re: Help needed [MoopleDev Rev120]

    Structure? As in? And how do I guess/leech from other sources. What do I change/find in other sources?

  9. #9
    Moongran Saii is offline
    MemberRank
    Jan 2012 Join Date
    510Posts

    Re: Help needed [MoopleDev Rev120]

    example for a packet:

    mplew.write(0);
    mplew.writeInt(5);

    structure is [byte] [int]. total of 5 bytes(int is 4, so 1 + 4).
    when nexon updates versions sometimes structures change. updating structures is how people update from one version to another.
    sometimes values change as well. like the int(5) I have can be int(4) for different jobs/versions/etc, depends on which packet it is.
    this might be confusing, there's a more detailed guide about packets, by SuperLol.(stickied).

    anyways obviously from what you say your Level Up effect packet that is sent to the map is causing the crash so what you have to do is:
    1. find the packet in your source.
    2. look for other sources of the same version as yours(or at least a close version), and find that packet. see if there are any differences. if there are, edit your accordingly and see if it works.
    3. if 2 didn't work, try to understand the values of the packet and think what could be missing/wrong. this requires game knowledge and is not always easy.

  10. #10
    Enthusiast ZyriC is offline
    MemberRank
    Jan 2014 Join Date
    41Posts

    Re: Help needed [MoopleDev Rev120]

    Fixed the Level Up problem, if anyone else is having the same issue as me, PM or comment below. I'll tell you what changes I made to solve it!
    And Thanks @Saii for taking up his/her time to explain everything in detailed to me!
    Last edited by ZyriC; 17-12-14 at 05:47 AM.

  11. #11
    Enthusiast ZyriC is offline
    MemberRank
    Jan 2014 Join Date
    41Posts

    Re: Help needed [MoopleDev Rev120]

    bump. Need help with Hide visible for all GMs

  12. #12
    Proficient Member Tenchio is offline
    MemberRank
    Jan 2013 Join Date
    162Posts

    Re: Help needed [MoopleDev Rev120]

    Here you go:

    Code:
        public void Hide(boolean hide, boolean login) {
            if (isGM() && hide != this.hidden) {
                if (!hide) {
                    this.hidden = false;
                    announce(MaplePacketCreator.getGMEffect(0x10, (byte) 0));
                    getMap().broadcastMessage(this, MaplePacketCreator.spawnPlayerMapobject(this), false);
                    updatePartyMemberHP();
                } else if (ServerConstants.GM_HIDE_SHOW_OTHERS) {
                    this.hidden = true;
                    announce(MaplePacketCreator.getGMEffect(0x10, (byte) 1));
                    for (MapleMapObject mmo : getMap().getAllPlayer()) {
                        MapleCharacter character = (MapleCharacter) mmo;
                        if (character.isGM()) {
                            character.announce(MaplePacketCreator.spawnPlayerMapobject(this));
                            //character.announce(MaplePacketCreator.getGMEffect(0x10, (byte) 1));  If it fails try using this.
                            updatePartyMemberHP();
                        }
                    }
                } else {
                    this.hidden = true;
                    announce(MaplePacketCreator.getGMEffect(0x10, (byte) 1));
                    if (!login) {
                        getMap().broadcastMessage(this, MaplePacketCreator.removePlayerFromMap(getId()), false);
                    }
                }
                announce(MaplePacketCreator.enableActions());
            }        
        }
    ServerConstants.GM_HIDE_SHOW_OTHERS is true if you want it to work.

    Since, you can't really filter for GM Hide, I made it so that when your character is loaded it will display itself on to other GM's within the map. I didn't test if it works after changing maps or tested if another gm appears in the map afterwards.
    I've tested this only once, let me know if it works for you and it be great if anyone else can do a full test on this.

    - - - Updated - - -

    Sorry, I made a mistake for adding this: character.announce(MaplePacketCreator.getGMEffect(0x10, (byte) 1));
    I'll update this later, after work to show the gm hide effect too or if anyone wants to try :D
    Last edited by Tenchio; 18-12-14 at 03:19 PM.

  13. #13
    Enthusiast ZyriC is offline
    MemberRank
    Jan 2014 Join Date
    41Posts

    Re: Help needed [MoopleDev Rev120]

    So do i have to remove that line?

  14. #14
    Proficient Member Tenchio is offline
    MemberRank
    Jan 2013 Join Date
    162Posts

    Re: Help needed [MoopleDev Rev120]

    Well, I recommend you do since it will just make your character look invisible again. For now this should show the other gm's that are in hide. The problem is that they don't appear with the effect or looking invisible. I'll deal with that after work, or if anyone wants to fix that. but it should work, since I tested this awhile ago. Anyway I gtg.

  15. #15
    Enthusiast ZyriC is offline
    MemberRank
    Jan 2014 Join Date
    41Posts

    Re: Help needed [MoopleDev Rev120]

    Alright, I'll try it later on.

    - - - Updated - - -

    Tested, working for the GM part, but...when I hide. My character won't disappear from the map, instead, it keeps my character there. (Like a fake character)



Page 1 of 3 123 LastLast

Advertisement