Pet loot CREDITS GO TO GROAT

🚫
Exiled
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 <[email protected]> 
                       Matthias Butz <[email protected]>
                       Jan Christian Meyer <[email protected]>

    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:
Re: [RELEASE] Pet loot CREDITS GO TO GROAT

Good job, you extracted this little piece of material quickly.
IlyGroat
 
Re: [RELEASE] Pet loot CREDITS GO TO GROAT

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

channel.handler.WHAT
 
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)
 
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.
 
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.
 
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)
 
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
 
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:
 
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 )
 
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