Wing Boots + Binocular

Junior Spellweaver
Joined
Jun 25, 2008
Messages
166
Reaction score
0
i dont think someone did it.. o.o
credits to GROAT for pet looting
you'll need this to use wing boots and binocular
so i know its not like GMS and really easy to do, but still better then nothing..
ok. go to your movepethandler
and find this line
Code:
Boolean item = false;

add after
Code:
Boolean boots = false;
Boolean bino = false;
bino = binocular
boot = wing boots..

now find those lines
Code:
if (c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).findById(1812000) != null)
    meso = true;

add after
Code:
if (c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).findById(1812004) != null)
    boots = true;
if (c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).findById(1812005) != null)
    bino = true;

now find those lines o.o
Code:
                                                                                }
                                                                        }
                                                                }
                                                        }                                         
                                                }
                                        }
                                }                        
                        } 
                } <<<<< [B]add here the new scripts[/B]
	} 
}

add the new scripts
Code:
 if (boots && 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) <= 200 || Math.abs(objectX - petX) <= 200) {
                                                if (Math.abs(petY - objectY) <= 200 || Math.abs(objectY - petY) <= 200) {
                                                        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);
                                                                                        } 
                                                                                }
                                                                        }
                                                                }
                                                        }                                         
                                                }
                                        }
                                }                        
                        } 
                } if (bino && boots && 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) <= 270 || Math.abs(objectX - petX) <= 270) {
                                                if (Math.abs(petY - objectY) <= 270 || Math.abs(objectY - petY) <= 270) {
                                                        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);
                                                                                        } 
                                                                                }
                                                                        }
                                                                }
                                                        }                                         
                                                }
                                        }
                                }                        
                        } 
                }

enjoy your new binocular and wing boots..
if you want to change the distance
change those lines
Code:
if (Math.abs(petX - objectX) <= 30 || Math.abs(objectX - petX) <= 30) {
                                                if (Math.abs(petY - objectY) <= 30 || Math.abs(objectY - petY) <= 30) {

change the 30/250/270 to w/e you want..
now i try to make hp and mp pouch..
oh and can someone explain me what magic scales do in GMS?
 
Re: [RELEASE]Wing Boots + Binocular

Yay.. looks good.. :D
im gonna test it now

thanks for releasing

oh and can someone explain me what magic scales do in GMS?

your pet can also take other players' items

GL with mp and hp pouch thing
 
Re: [RELEASE]Wing Boots + Binocular

Ok.. when you say it's not like gms.. what do you mean by that.. um can you explain.. and also.. doesn't magic scale lets your pet know when you can pick up other people's items? O_o
 
Re: [RELEASE]Wing Boots + Binocular

cool im going to try it
 
Re: [RELEASE]Wing Boots + Binocular

Does it bug your character when you put those eqs on?
 
Re: [RELEASE]Wing Boots + Binocular

Wow nice release.
anyone tried it?
 
Re: [RELEASE]Wing Boots + Binocular

Great release man

I needed this. Thanks so much!
 
Re: [RELEASE]Wing Boots + Binocular

build successful..
ima restart my server name ><
ill tell u in 5 minutes =]
 
Re: [RELEASE]Wing Boots + Binocular

hmm your char wont bug and you wont dc.. i use it right now..
and when i say not like gms:
wing boots is not like gms.. your pet wont go to the items.. o.o
what i did is when youe equip magic boots with the combination of item pouch and meso magnet your pet will pickup items for different distance..
 
Re: [RELEASE]Wing Boots + Binocular

Tell us what, this is a good release btw, 100% work :D
 
Re: [RELEASE]Wing Boots + Binocular

Code:
init:
deps-jar:
Compiling 1 source file 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:115: objects is already defined in handlePacket(net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor,net.sf.odinms.client.MapleClient)
                    List<MapleMapObject> objects = player.getMap().getMapObjectsInRange(player.getPosition(), MapleCharacter.MAX_VIEW_RANGE_SQ, Arrays.asList(MapleMapObjectType.ITEM));
C:\Users\chris\Desktop\SeanPack V.5.9 Beta\SeanSource V.5.9\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:161: objects is already defined in handlePacket(net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor,net.sf.odinms.client.MapleClient)
                    List<MapleMapObject> objects = player.getMap().getMapObjectsInRange(player.getPosition(), MapleCharacter.MAX_VIEW_RANGE_SQ, Arrays.asList(MapleMapObjectType.ITEM));
C:\Users\chris\Desktop\SeanPack V.5.9 Beta\SeanSource V.5.9\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:207: objects is already defined in handlePacket(net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor,net.sf.odinms.client.MapleClient)
                    List<MapleMapObject> objects = player.getMap().getMapObjectsInRange(player.getPosition(), MapleCharacter.MAX_VIEW_RANGE_SQ, Arrays.asList(MapleMapObjectType.ITEM));
C:\Users\chris\Desktop\SeanPack V.5.9 Beta\SeanSource V.5.9\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:253: objects is already defined in handlePacket(net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor,net.sf.odinms.client.MapleClient)
                    List<MapleMapObject> objects = player.getMap().getMapObjectsInRange(player.getPosition(), MapleCharacter.MAX_VIEW_RANGE_SQ, Arrays.asList(MapleMapObjectType.ITEM));
4 errors
BUILD FAILED (total time: 3 seconds)
pls need help
 
Re: [RELEASE]Wing Boots + Binocular

IT WORKS PERFECTLY.. TY@

the pet is like.. vaccing the items :D
 
Re: [RELEASE]Wing Boots + Binocular

Code:
init:
deps-jar:
Compiling 1 source file 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:115: objects is already defined in handlePacket(net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor,net.sf.odinms.client.MapleClient)
                    List<MapleMapObject> objects = player.getMap().getMapObjectsInRange(player.getPosition(), MapleCharacter.MAX_VIEW_RANGE_SQ, Arrays.asList(MapleMapObjectType.ITEM));
C:\Users\chris\Desktop\SeanPack V.5.9 Beta\SeanSource V.5.9\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:161: objects is already defined in handlePacket(net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor,net.sf.odinms.client.MapleClient)
                    List<MapleMapObject> objects = player.getMap().getMapObjectsInRange(player.getPosition(), MapleCharacter.MAX_VIEW_RANGE_SQ, Arrays.asList(MapleMapObjectType.ITEM));
C:\Users\chris\Desktop\SeanPack V.5.9 Beta\SeanSource V.5.9\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:207: objects is already defined in handlePacket(net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor,net.sf.odinms.client.MapleClient)
                    List<MapleMapObject> objects = player.getMap().getMapObjectsInRange(player.getPosition(), MapleCharacter.MAX_VIEW_RANGE_SQ, Arrays.asList(MapleMapObjectType.ITEM));
C:\Users\chris\Desktop\SeanPack V.5.9 Beta\SeanSource V.5.9\src\net\sf\odinms\net\channel\handler\MovePetHandler.java:253: objects is already defined in handlePacket(net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor,net.sf.odinms.client.MapleClient)
                    List<MapleMapObject> objects = player.getMap().getMapObjectsInRange(player.getPosition(), MapleCharacter.MAX_VIEW_RANGE_SQ, Arrays.asList(MapleMapObjectType.ITEM));
4 errors
BUILD FAILED (total time: 3 seconds)
pls need help

hmmm you did it wrong or you dont use pet loot... if you dont go to this page http://forum.ragezone.com/showthread.php?t=448005
 
Re: [RELEASE]Wing Boots + Binocular

nice poop man, if this work then its awesome
 
Re: [RELEASE]Wing Boots + Binocular

if it looks like vac dont it ab then?
 
Re: [RELEASE]Wing Boots + Binocular

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;
                Boolean boots = false;
                Boolean bino = false;
                if (c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).findById(1812001) != null) 
                        item = true;
                if (c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).findById(1812000) != null)
                        meso = true;
                if (c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).findById(1812004) != null)
                        boots = true;
                if (c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).findById(1812005) != null)
                        bino = true;
                
                if (meso || item || boots || bino ) {
                        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);
                                                                                        } 
                                                                                }
                                                                        }
                                                                }
                                                        }                                         
                                                }
                                        }
                                }                        
                        }
                }
	}
}
will this work?
 
Back
Top