Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

LeaderMS v.62 | The Best Brazil MapleStory | GMS-like

Joined
Apr 25, 2010
Messages
479
Reaction score
49
GabrielSin your packet is so off (like most sources) so if you're asking for the last byte in your SpawnPlayer it is in your rings.

The current structure (of v83 at least) is like so:

PHP:
CUser.EncodeCoupleInfo(mplew, pUser);
        CUser.EncodeFriendshipInfo(mplew, pUser);
        CUser.EncodeMarriageInfo(mplew, pUser);
        CUser.EncodeNewYearCardInfo(mplew, pUser);
        int mask = 0;
        if (pUser.getCharacterData().characterStat.nJob >= 2200) {
            mask |= 0x2;
        } else if (pUser.getCharacterData().characterStat.nJob == 132) {
            mask |= 0x1;
        }/* else {//v95
            mask |= 0x4;
        }*/
        mplew.write(mask);// nBerserk and GetDragon masks
        mplew.write(pUser.getTeam());

So, replace:
Code:
} else {
			mplew.writeInt(0);
		}

with:
Code:
} else {
			mplew.writeShort(0);
		}
mplew.write(0);
mplew.write(chr.getTeam());

and that should be the proper bytes.

Code:
Collections.sort(rings);
		if (rings.size() > 0) {
			mplew.write(0);
			for (MapleRing ring : rings) {
				if (ring != null) {
					mplew.write(1);
					mplew.writeInt(ring.getRingId());
					mplew.writeInt(0);
					mplew.writeInt(ring.getPartnerRingId());
					mplew.writeInt(0);
					mplew.writeInt(ring.getItemId());
				}
			}
			mplew.writeShort(0);
		} else {
			mplew.writeShort(0);
		}
               mplew.write(0);
               mplew.write(chr.getTeam());

		return mplew.getPacket();
	}
chunkarama?
 
Custom Title Activated
Loyal Member
Joined
Jan 18, 2010
Messages
3,109
Reaction score
1,139
Code:
Collections.sort(rings);
		if (rings.size() > 0) {
			mplew.write(0);
			for (MapleRing ring : rings) {
				if (ring != null) {
					mplew.write(1);
					mplew.writeInt(ring.getRingId());
					mplew.writeInt(0);
					mplew.writeInt(ring.getPartnerRingId());
					mplew.writeInt(0);
					mplew.writeInt(ring.getItemId());
				}
			}
			mplew.writeShort(0);
		} else {
			mplew.writeShort(0);
		}
               mplew.write(0);
               mplew.write(chr.getTeam());

		return mplew.getPacket();
	}
chunkarama?

Yes, now code chr.getTeam and handle it in Monster Carnival. (0 = red, 1 = blue), this will let 3rd person parties see your Maple-Team.
 
Joined
Apr 25, 2010
Messages
479
Reaction score
49
Yes, now code chr.getTeam and handle it in Monster Carnival. (0 = red, 1 = blue), this will let 3rd person parties see your Maple-Team.

Strange , CPQ continues bug groups , to teleport to the CPQ map, my characters begin to shed millions of exceptionCaught .

Things like:
Code:
Excecao causada por: Character: cpqhud
java.lang.NullPointerException
	at server.MonsterCarnival.dispose(MonsterCarnival.java:160)
	at server.MonsterCarnival.earlyFinish(MonsterCarnival.java:132)
	at server.MonsterCarnival.playerDisconnected(MonsterCarnival.java:102)
	at client.MapleClient.disconnect(MapleClient.java:725)
	at net.MapleServerHandler.sessionClosed(MapleServerHandler.java:79)
	at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.sessionClosed(AbstractIoFilterChain.java:550)
	at org.apache.mina.common.support.AbstractIoFilterChain.callNextSessionClosed(AbstractIoFilterChain.java:269)
	at org.apache.mina.common.support.AbstractIoFilterChain.access$800(AbstractIoFilterChain.java:53)
	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.sessionClosed(AbstractIoFilterChain.java:633)
	at org.apache.mina.filter.codec.ProtocolCodecFilter.sessionClosed(ProtocolCodecFilter.java:254)
	at org.apache.mina.common.support.AbstractIoFilterChain.callNextSessionClosed(AbstractIoFilterChain.java:269)
	at org.apache.mina.common.support.AbstractIoFilterChain.access$800(AbstractIoFilterChain.java:53)
	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.sessionClosed(AbstractIoFilterChain.java:633)
	at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:230)
	at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
	at java.lang.Thread.run(Unknown Source)
 
Joined
Apr 25, 2010
Messages
479
Reaction score
49
GabrielSin That has nothing to do with 3rd party Monster Carnival Teams within that packet. That's just a null pointer exception within your "dispose" method of MonsterCarnival.java on line 160.
chunkarama

Line 160:
Code:
for (MaplePartyCharacter mpc : leader1.getParty().getMembers()) {

Function getParty
Code:
   public MapleParty getParty() {
	return party;
   }

Function getMembers
Code:
private List<MaplePartyCharacter> members = new LinkedList<MaplePartyCharacter>();

    public Collection<MaplePartyCharacter> getMembers() {
        return new LinkedList<MaplePartyCharacter>(members);
    }

I tried to upgrade to a newer reference, type :
Code:
private List<MaplePartyCharacter> members = new LinkedList<>();
 
   public Collection<MaplePartyCharacter> getMembers() {
        return new LinkedList<>(members);
    }

Yet it returns me with person null. :/
 
Elite Diviner
Joined
Apr 7, 2008
Messages
494
Reaction score
66
@chunkarama

Line 160:
Code:
for (MaplePartyCharacter mpc : leader1.getParty().getMembers()) {

Function getParty
Code:
   public MapleParty getParty() {
    return party;
   }

Function getMembers
Code:
private List<MaplePartyCharacter> members = new LinkedList<MaplePartyCharacter>();

    public Collection<MaplePartyCharacter> getMembers() {
        return new LinkedList<MaplePartyCharacter>(members);
    }

I tried to upgrade to a newer reference, type :
Code:
private List<MaplePartyCharacter> members = new LinkedList<>();
 
   public Collection<MaplePartyCharacter> getMembers() {
        return new LinkedList<>(members);
    }

Yet it returns me with person null. :/


this isnt it the mc class is returning a nullpointerexception

try this following code

Code:
protected void dispose(boolean warpout) {
		int chnl = p1.getLeader().getChannel();
		ChannelServer cs = ChannelServer.getInstance(chnl);
		MapleMap out = cs.getMapFactory().getMap(980000000);
		for (MaplePartyCharacter mpc : leader1.getParty().getMembers()) {
			MapleCharacter mc = cs.getPlayerStorage().getCharacterByName(mpc.getName());
			if (mc != null) {
				mc.setCpqRanking(getRankByCP(this.redTotalCP));
				mc.resetCP();
				if (warpout) {
					mc.changeMap(out, out.getPortal(0));
				}
			}
		}
		for (MaplePartyCharacter mpc : leader2.getParty().getMembers()) {
			 MapleCharacter mc = cs.getPlayerStorage().getCharacterByName(mpc.getName());
			if (mc != null) {
				mc.setCpqRanking(getRankByCP(this.blueTotalCP));
				mc.resetCP();
				if (warpout) {
					mc.changeMap(out, out.getPortal(0));
				}
			}
		}
 
Joined
Apr 25, 2010
Messages
479
Reaction score
49
this isnt it the mc class is returning a nullpointerexception

try this following code

Code:
protected void dispose(boolean warpout) {
		int chnl = p1.getLeader().getChannel();
		ChannelServer cs = ChannelServer.getInstance(chnl);
		MapleMap out = cs.getMapFactory().getMap(980000000);
		for (MaplePartyCharacter mpc : leader1.getParty().getMembers()) {
			MapleCharacter mc = cs.getPlayerStorage().getCharacterByName(mpc.getName());
			if (mc != null) {
				mc.setCpqRanking(getRankByCP(this.redTotalCP));
				mc.resetCP();
				if (warpout) {
					mc.changeMap(out, out.getPortal(0));
				}
			}
		}
		for (MaplePartyCharacter mpc : leader2.getParty().getMembers()) {
			 MapleCharacter mc = cs.getPlayerStorage().getCharacterByName(mpc.getName());
			if (mc != null) {
				mc.setCpqRanking(getRankByCP(this.blueTotalCP));
				mc.resetCP();
				if (warpout) {
					mc.changeMap(out, out.getPortal(0));
				}
			}
		}

Multo Thanks For Help.

Furthermore the error continues ...
I tried using this code also :
Code:
 protected void dispose(boolean warpout) {
             ChannelServer cs = ChannelServer.getInstance(p1.getLeader().getChannel());
             MapleMap out = cs.getMapFactory().getMap(980000000);
	      for (MapleMapObject o : c.getPlayer().getMap().getAllPlayer()) {
                                ((MapleCharacter)o).changeMap(out, out.getPortal(0));
				((MapleCharacter)o).setCpqRanking(getRankByCP(this.redTotalCP));
				((MapleCharacter)o).resetCP();
               }
                timer.cancel(false);
		effectTimer.cancel(false);
		redTotalCP = 0;
		blueTotalCP = 0;
		leader1.getParty().setEnemy(null);
		leader2.getParty().setEnemy(null);
                leader1.setMonsterCarnival(null);
                leader2.setMonsterCarnival(null);
		}

More also not succeeded. :/

Error line:
Code:
for (MapleMapObject o : c.getPlayer().getMap().getAllPlayer()) {
 
Elite Diviner
Joined
Apr 7, 2008
Messages
494
Reaction score
66
Multo Thanks For Help.

Furthermore the error continues ...
I tried using this code also :
Code:
 protected void dispose(boolean warpout) {
             ChannelServer cs = ChannelServer.getInstance(p1.getLeader().getChannel());
             MapleMap out = cs.getMapFactory().getMap(980000000);
          for (MapleMapObject o : c.getPlayer().getMap().getAllPlayer()) {
                                ((MapleCharacter)o).changeMap(out, out.getPortal(0));
                ((MapleCharacter)o).setCpqRanking(getRankByCP(this.redTotalCP));
                ((MapleCharacter)o).resetCP();
               }
                timer.cancel(false);
        effectTimer.cancel(false);
        redTotalCP = 0;
        blueTotalCP = 0;
        leader1.getParty().setEnemy(null);
        leader2.getParty().setEnemy(null);
                leader1.setMonsterCarnival(null);
                leader2.setMonsterCarnival(null);
        }

More also not succeeded. :/

Error line:
Code:
for (MapleMapObject o : c.getPlayer().getMap().getAllPlayer()) {

 
Newbie Spellweaver
Joined
Jul 22, 2014
Messages
5
Reaction score
0
What JAVA version for this port?
(Sorry, my English is bad :( )
 
Initiate Mage
Joined
Sep 12, 2015
Messages
3
Reaction score
0
Hey,How can I enable autoregister?

This repack include the serveproperties,and there is a line that can be choice enable/disable autoregister.
I rewrote false to true,but it doesn't work.
 
Junior Spellweaver
Joined
Apr 18, 2008
Messages
108
Reaction score
46
Hey,How can I enable autoregister?

This repack include the serveproperties,and there is a line that can be choice enable/disable autoregister.
I rewrote false to true,but it doesn't work.
That's because it was hardcoded into the source as disabled. Why? Because auto-register doesn't work. LeaderMS is full of these situations where the devs saw a hole and nailed some planks on to board it up. Rather than properly fixing things, they largely used hackish tricks to make things semi-work.

I spent a few months trying to clean up and improve on this code base, but the deeper I got the more problems I ran into that were not properly solved. LeaderMS devs were not remotely consistent with their code "design" and often hard-coded things that should have been configurable settings or stored in the database. Granted, Maplestory server emulators have never been praised for their beautiful code... So the problem does not rest entirely on LeaderMS devs, but stems back to the source code it was built off of.

When I saw this and people were commenting "hey, this looks pretty good" I was hoping for an improvement on XiuzSource... Unfortunately, what I found is that while it may have fixed and got "working" several things that were not in Xiuz, it also did a lot of things improperly which simply need to be rewritten altogether. For anyone seriously trying to run a GMS-like server, I can't recommend this source (or any other public v62).
 
Newbie Spellweaver
Joined
Jan 25, 2013
Messages
29
Reaction score
10
That's because it was hardcoded into the source as disabled. Why? Because auto-register doesn't work. LeaderMS is full of these situations where the devs saw a hole and nailed some planks on to board it up. Rather than properly fixing things, they largely used hackish tricks to make things semi-work.

I spent a few months trying to clean up and improve on this code base, but the deeper I got the more problems I ran into that were not properly solved. LeaderMS devs were not remotely consistent with their code "design" and often hard-coded things that should have been configurable settings or stored in the database. Granted, Maplestory server emulators have never been praised for their beautiful code... So the problem does not rest entirely on LeaderMS devs, but stems back to the source code it was built off of.

When I saw this and people were commenting "hey, this looks pretty good" I was hoping for an improvement on XiuzSource... Unfortunately, what I found is that while it may have fixed and got "working" several things that were not in Xiuz, it also did a lot of things improperly which simply need to be rewritten altogether. For anyone seriously trying to run a GMS-like server, I can't recommend this source (or any other public v62).

So whats wrong with it then?
 
Joined
Apr 25, 2010
Messages
479
Reaction score
49
That's because it was hardcoded into the source as disabled. Why? Because auto-register doesn't work. LeaderMS is full of these situations where the devs saw a hole and nailed some planks on to board it up. Rather than properly fixing things, they largely used hackish tricks to make things semi-work.

I spent a few months trying to clean up and improve on this code base, but the deeper I got the more problems I ran into that were not properly solved. LeaderMS devs were not remotely consistent with their code "design" and often hard-coded things that should have been configurable settings or stored in the database. Granted, Maplestory server emulators have never been praised for their beautiful code... So the problem does not rest entirely on LeaderMS devs, but stems back to the source code it was built off of.

When I saw this and people were commenting "hey, this looks pretty good" I was hoping for an improvement on XiuzSource... Unfortunately, what I found is that while it may have fixed and got "working" several things that were not in Xiuz, it also did a lot of things improperly which simply need to be rewritten altogether. For anyone seriously trying to run a GMS-like server, I can't recommend this source (or any other public v62).

When I started LeaderMS used Xiuz, sooner I saw that the problems in Xiuz were the same as all other src. Oh you ask me, what? Maplemap / MapleQuest, I believe that the problem with drops and respawn has always been the problem worse versions v.62 / 83. Both me like no other member of this forum would post a public source that is completely stable, more on all sources posted here, I think LeaderMS and the complete set of all sources already posted here, with a little of each. If someone willing to organize further, and strive to correct problems such as drops and respawn would have a totally stable server. I'm working on a v.62 source, who soon want to post here, where all correct quest system used a different system in respawn, something mirrored in +100, using locks and so many other things, and some betas run had only errors script. LeaderMS and based in Valhalla, you can download the source V83 of Valhalla and correct many things in LeaderMS.
 
Back
Top