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!

Pet loot CREDITS GO TO GROAT

Banned
Banned
Joined
Jun 8, 2007
Messages
165
Reaction score
8
ALL CREDITS GO TO GROAT@@@@@@@@@@@@

Replace net.sf.odinms.net.channel.handler.MovePetHandler with this:
Code:
/*
	This file is part of the OdinMS Maple Story Server
    Copyright (C) 2008 Patrick Huy <patrick.huy@frz.cc> 
                       Matthias Butz <matze@odinms.de>
                       Jan Christian Meyer <vimes@odinms.de>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License version 3
    as published by the Free Software Foundation. You may not use, modify
    or distribute this program under any other version of the
    GNU Affero General Public License.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

package net.sf.odinms.net.channel.handler;

import java.awt.Point;
import java.util.Arrays;
import java.util.List;

import net.sf.odinms.client.MapleCharacter;
import net.sf.odinms.client.MapleClient;
import net.sf.odinms.client.MapleInventoryType;
import net.sf.odinms.server.MapleInventoryManipulator;
import net.sf.odinms.server.maps.MapleMapItem;
import net.sf.odinms.server.maps.MapleMapObject;
import net.sf.odinms.server.maps.MapleMapObjectType;
import net.sf.odinms.server.movement.LifeMovementFragment;
import net.sf.odinms.tools.MaplePacketCreator;
import net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor;
import net.sf.odinms.tools.data.input.StreamUtil;

public class MovePetHandler extends AbstractMovementPacketHandler {

	//private static org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(MovePetHandler.class);
    
	@Override
	public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
		int petId = slea.readInt();
		slea.readInt();
		@SuppressWarnings("Unused")
		Point startPos = StreamUtil.readShortPoint(slea);
		List<LifeMovementFragment> res = parseMovement(slea);

		MapleCharacter player = c.getPlayer();
		player.getMap().broadcastMessage(player, MaplePacketCreator.movePet(player.getId(), petId, res), false);
                
                Boolean meso = false;
                Boolean item = false;
                if (c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).findById(1812001) != null) 
                        item = true;
                if (c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).findById(1812000) != null)
                        meso = true;
                
                if (meso || item) {
                        List<MapleMapObject> objects = player.getMap().getMapObjectsInRange(player.getPosition(), MapleCharacter.MAX_VIEW_RANGE_SQ, Arrays.asList(MapleMapObjectType.ITEM));

                        for (LifeMovementFragment move : res) {
                                Point petPos = move.findPosition();
                                double petX = petPos.getX();
                                double petY = petPos.getY();
                                for (MapleMapObject map_object : objects) {
                                        Point objectPos = map_object.getPosition();
                                        double objectX = objectPos.getX();
                                        double objectY = objectPos.getY();
                                        if (Math.abs(petX - objectX) <= 30 || Math.abs(objectX - petX) <= 30) {
                                                if (Math.abs(petY - objectY) <= 30 || Math.abs(objectY - petY) <= 30) {
                                                        if (map_object instanceof MapleMapItem) {
                                                                MapleMapItem mapitem = (MapleMapItem)map_object;
                                                                synchronized (mapitem) {
                                                                        if (mapitem.isPickedUp() || mapitem.getOwner().getId() != player.getId()) {
                                                                                continue;
                                                                        }
                                                                        if (mapitem.getMeso() > 0 && meso) {
                                                                                c.getPlayer().gainMeso(mapitem.getMeso(), true, true);
                                                                                c.getPlayer().getMap().broadcastMessage(
                                                                                        MaplePacketCreator.removeItemFromMap(mapitem.getObjectId(), 5, c.getPlayer().getId(), true),
                                                                                        mapitem.getPosition());
                                                                                c.getPlayer().getMap().removeMapObject(map_object);
                                                                                mapitem.setPickedUp(true);
                                                                        } 
                                                                        else {
                                                                                if (item) {
                                                                                        StringBuilder logInfo = new StringBuilder("Picked up by ");
                                                                                        logInfo.append(c.getPlayer().getName());
                                                                                        if (MapleInventoryManipulator.addFromDrop(c, mapitem.getItem(), logInfo.toString())) {
                                                                                                c.getPlayer().getMap().broadcastMessage(
                                                                                                        MaplePacketCreator.removeItemFromMap(mapitem.getObjectId(), 5, c.getPlayer().getId(), true),
                                                                                                        mapitem.getPosition());
                                                                                                c.getPlayer().getMap().removeMapObject(map_object);
                                                                                                mapitem.setPickedUp(true);
                                                                                        } 
                                                                                }
                                                                        }
                                                                }
                                                        }                                         
                                                }
                                        }
                                }                        
                        }
                }
	}
}

In net.sf.odinms.toold.maplepacketcreator:
replace
Code:
public static MaplePacket removeItemFromMap(int oid, int animation, int cid) {
		MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
		mplew.writeShort(SendPacketOpcode.REMOVE_ITEM_FROM_MAP.getValue());
		mplew.write(animation); // expire

		mplew.writeInt(oid);
		if (animation >= 2) {
			mplew.writeInt(cid);
		}
		return mplew.getPacket();
	}
with
Code:
public static MaplePacket removeItemFromMap(int oid, int animation, int cid) {
                return removeItemFromMap(oid, animation, cid, false);
        }
        
	public static MaplePacket removeItemFromMap(int oid, int animation, int cid, boolean pet) {
		MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
		mplew.writeShort(SendPacketOpcode.REMOVE_ITEM_FROM_MAP.getValue());
		mplew.write(animation); // expire

		mplew.writeInt(oid);
		if (animation >= 2) {
			mplew.writeInt(cid);
                        if (pet) {
                            mplew.write(0);
                        }
		}
		return mplew.getPacket();
	}

In net.sf.odinms.server.movement.AbstractLifeMovement:
add this:
Code:
public Point findPosition() {
                return position;
        }
after:
Code:
@Override
	public Point getPosition() {
		return position;
	}

and add:
Code:
import java.awt.Point;
after:
Code:
package net.sf.odinms.server.movement;

In net.sf.odinms.server.movement.ChangeEquipSpecialAwesome:
add:
Code:
import java.awt.Point;
after:
Code:
import net.sf.odinms.tools.data.output.LittleEndianWriter;

add:
Code:
@Override
        public Point findPosition() {
            return new Point(0,0);
        }
after:
Code:
public ChangeEquipSpecialAwesome(int wui) {
		this.wui = wui;
	}

In net.sf.odinms.server.movement.LifeMovementFragment:
add:
Code:
import java.awt.Point;
after:
Code:
import net.sf.odinms.tools.data.output.LittleEndianWriter;

add:
Code:
Point findPosition();
after:
Code:
void serialize(LittleEndianWriter lew);

In net.sf.odinms.server.movement.LifeMovement:
Add:
Code:
Point findPosition();
after:
Code:
int getType();

1812000:meso magnet
1812001: item pouch
This should do it. Correct me if I forgot something. Again:
ALL CREDITS GO TO GROAT@@@@@@@@@@@@
 
Last edited:
IHF
Joined
Apr 7, 2008
Messages
312
Reaction score
0
Re: [RELEASE] Pet loot CREDITS GO TO GROAT

Wow thanks will try it out later. So it must be equipped with Meso magnet ?
 
Newbie Spellweaver
Joined
Jul 24, 2008
Messages
22
Reaction score
3
Re: [RELEASE] Pet loot CREDITS GO TO GROAT

Replace net.sf.odinms.channel.handler with this:

channel.handler.WHAT
 
Newbie Spellweaver
Joined
Apr 17, 2008
Messages
53
Reaction score
2
Re: [RELEASE] Pet loot CREDITS GO TO GROAT

wow im gonna try it now
ty
 
Legendary Battlemage
Loyal Member
Joined
May 18, 2008
Messages
614
Reaction score
53
Re: [RELEASE] Pet loot CREDITS GO TO GROAT

lol, awesome release i needed this
 
Junior Spellweaver
Joined
May 26, 2008
Messages
195
Reaction score
0
Re: [RELEASE] Pet loot CREDITS GO TO GROAT

Compiling now ;o lets see what goes down :)
 
Newbie Spellweaver
Joined
May 17, 2008
Messages
82
Reaction score
0
Re: [RELEASE] Pet loot CREDITS GO TO GROAT

i got this error
Code:
init:
deps-jar:
Compiling 5 source files to C:\Documents and Settings\HP_Owner\My Documents\NetBeansProjects\odinms\build\classes
C:\Documents and Settings\HP_Owner\Desktop\private server\SeanPackV.5.9Beta\SeanPack V.5.9 Beta\SeanSource V.5.9\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:65: incompatible types
found   : java.lang.Object
required: net.sf.odinms.server.movement.LifeMovementFragment
                        for (LifeMovementFragment move : res) {
C:\Documents and Settings\HP_Owner\Desktop\private server\SeanPackV.5.9Beta\SeanPack V.5.9 Beta\SeanSource V.5.9\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:69: incompatible types
found   : java.lang.Object
required: net.sf.odinms.server.maps.MapleMapObject
                                for (MapleMapObject map_object : objects) {
Note: C:\Documents and Settings\HP_Owner\Desktop\private server\SeanPackV.5.9Beta\SeanPack V.5.9 Beta\SeanSource V.5.9\src\net\sf\odinms\net\channel\handler\MovePetHandler.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors
BUILD FAILED (total time: 11 seconds)
 
Banned
Banned
Joined
Jun 8, 2007
Messages
165
Reaction score
8
Re: [RELEASE] Pet loot CREDITS GO TO GROAT

i got this error
Code:
init:
deps-jar:
Compiling 5 source files to C:\Documents and Settings\HP_Owner\My Documents\NetBeansProjects\odinms\build\classes
C:\Documents and Settings\HP_Owner\Desktop\private server\SeanPackV.5.9Beta\SeanPack V.5.9 Beta\SeanSource V.5.9\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:65: incompatible types
found   : java.lang.Object
required: net.sf.odinms.server.movement.LifeMovementFragment
                        for (LifeMovementFragment move : res) {
C:\Documents and Settings\HP_Owner\Desktop\private server\SeanPackV.5.9Beta\SeanPack V.5.9 Beta\SeanSource V.5.9\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:69: incompatible types
found   : java.lang.Object
required: net.sf.odinms.server.maps.MapleMapObject
                                for (MapleMapObject map_object : objects) {
Note: C:\Documents and Settings\HP_Owner\Desktop\private server\SeanPackV.5.9Beta\SeanPack V.5.9 Beta\SeanSource V.5.9\src\net\sf\odinms\net\channel\handler\MovePetHandler.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors
BUILD FAILED (total time: 11 seconds)
Very odd. It may be seanpack's fault, I don't know.
 
Junior Spellweaver
Joined
May 26, 2008
Messages
195
Reaction score
0
Re: [RELEASE] Pet loot CREDITS GO TO GROAT

Mhm.
I got this ;o
init:
deps-jar:
Compiling 308 source files to D:\Testing\Zantetsuken Test 6 Pet loot\build\classes
D:\Testing\Sources\Zantetsukens Test Server\src\net\sf\odinms\client\MapleCharacter.java:1: illegal character: \65279
?/*
1 error
BUILD FAILED (total time: 1 second)
Hope someone helps before i wake up tomorrow :p
Nite everyone.
 
Newbie Spellweaver
Joined
Apr 17, 2008
Messages
53
Reaction score
2
Re: [RELEASE] Pet loot CREDITS GO TO GROAT

I get errors

Code:
init:
deps-jar:
Compiling 143 source files to E:\Maple\PCMaple_v2.0\build\classes
E:\Maple\PCMaple_v2.0\PCMaple v2.0\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:65: incompatible types
found   : java.lang.Object
required: net.sf.odinms.server.movement.LifeMovementFragment
                        for (LifeMovementFragment move : res) {
E:\Maple\PCMaple_v2.0\PCMaple v2.0\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:69: incompatible types
found   : java.lang.Object
required: net.sf.odinms.server.maps.MapleMapObject
                                for (MapleMapObject map_object : objects) {

                                                                                         ^
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors
2 warnings
BUILD FAILED (total time: 0 seconds)
 
Experienced Elementalist
Joined
Jul 10, 2008
Messages
299
Reaction score
3
Re: [RELEASE] Pet loot CREDITS GO TO GROAT

I get errors

Code:
init:
deps-jar:
Compiling 143 source files to E:\Maple\PCMaple_v2.0\build\classes
E:\Maple\PCMaple_v2.0\PCMaple v2.0\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:65: incompatible types
found   : java.lang.Object
required: net.sf.odinms.server.movement.LifeMovementFragment
                        for (LifeMovementFragment move : res) {
E:\Maple\PCMaple_v2.0\PCMaple v2.0\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:69: incompatible types
found   : java.lang.Object
required: net.sf.odinms.server.maps.MapleMapObject
                                for (MapleMapObject map_object : objects) {

                                                                                         ^
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors
2 warnings
BUILD FAILED (total time: 0 seconds)

I have the same 2 errors and im not using repacks :p
 
Newbie Spellweaver
Joined
May 17, 2008
Messages
82
Reaction score
0
Re: [RELEASE] Pet loot CREDITS GO TO GROAT

I get errors

Code:
init:
deps-jar:
Compiling 143 source files to E:\Maple\PCMaple_v2.0\build\classes
E:\Maple\PCMaple_v2.0\PCMaple v2.0\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:65: incompatible types
found   : java.lang.Object
required: net.sf.odinms.server.movement.LifeMovementFragment
                        for (LifeMovementFragment move : res) {
E:\Maple\PCMaple_v2.0\PCMaple v2.0\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:69: incompatible types
found   : java.lang.Object
required: net.sf.odinms.server.maps.MapleMapObject
                                for (MapleMapObject map_object : objects) {

                                                                                         ^
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors
2 warnings
BUILD FAILED (total time: 0 seconds)

same as my :eek:
 
Experienced Elementalist
Joined
Jun 25, 2008
Messages
260
Reaction score
0
Re: [RELEASE] Pet loot CREDITS GO TO GROAT

i get this please help

Code:
init:
deps-jar:
Compiling 8 source files to C:\Users\chris\Desktop\SeanPack V.5.9 Beta\build\classes
C:\Users\chris\Desktop\SeanPack V.5.9 Beta\SeanSource V.5.9\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:65: incompatible types
found   : java.lang.Object
required: net.sf.odinms.server.movement.LifeMovementFragment
                        for (LifeMovementFragment move : res) {
C:\Users\chris\Desktop\SeanPack V.5.9 Beta\SeanSource V.5.9\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:69: incompatible types
found   : java.lang.Object
required: net.sf.odinms.server.maps.MapleMapObject
                                for (MapleMapObject map_object : objects) {
Note: C:\Users\chris\Desktop\SeanPack V.5.9 Beta\SeanSource V.5.9\src\net\sf\odinms\net\channel\handler\MovePetHandler.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors
BUILD FAILED (total time: 9 )
 
Elite Diviner
Joined
Apr 7, 2008
Messages
494
Reaction score
66
Re: [RELEASE] Pet loot CREDITS GO TO GROAT

Ahh I Dont Know If You All Know This There Is A Bug With TimeStamp Pets Expired 2012 0.0,Does Not Follow Timestamp I Hope You Can Fix That ^^

Lolhamachi : Remove > ?

DannyK: You Did Not Add Properly.
 
Back
Top