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!

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?
 
Newbie Spellweaver
Joined
May 21, 2008
Messages
99
Reaction score
0
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
 
Junior Spellweaver
Joined
Jun 25, 2008
Messages
172
Reaction score
0
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
 
Newbie Spellweaver
Joined
Jul 25, 2008
Messages
31
Reaction score
0
Re: [RELEASE]Wing Boots + Binocular

cool im going to try it
 
Experienced Elementalist
Joined
Jun 25, 2008
Messages
260
Reaction score
0
Re: [RELEASE]Wing Boots + Binocular

thank you!!
 
Newbie Spellweaver
Joined
Jun 17, 2008
Messages
46
Reaction score
0
Re: [RELEASE]Wing Boots + Binocular

Does it bug your character when you put those eqs on?
 
Newbie Spellweaver
Joined
Apr 17, 2008
Messages
53
Reaction score
2
Re: [RELEASE]Wing Boots + Binocular

Wow nice release.
anyone tried it?
 
Banned
Banned
Joined
Jun 24, 2008
Messages
723
Reaction score
1
Re: [RELEASE]Wing Boots + Binocular

Great release man

I needed this. Thanks so much!
 
Newbie Spellweaver
Joined
May 21, 2008
Messages
99
Reaction score
0
Re: [RELEASE]Wing Boots + Binocular

build successful..
ima restart my server name ><
ill tell u in 5 minutes =]
 
Junior Spellweaver
Joined
Jun 25, 2008
Messages
166
Reaction score
0
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..
 
Banned
Banned
Joined
Jun 24, 2008
Messages
723
Reaction score
1
Re: [RELEASE]Wing Boots + Binocular

Tell us what, this is a good release btw, 100% work :D
 
Experienced Elementalist
Joined
Jun 25, 2008
Messages
260
Reaction score
0
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
 
Newbie Spellweaver
Joined
May 21, 2008
Messages
99
Reaction score
0
Re: [RELEASE]Wing Boots + Binocular

IT WORKS PERFECTLY.. TY@

the pet is like.. vaccing the items :D
 
Junior Spellweaver
Joined
Jun 25, 2008
Messages
166
Reaction score
0
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
 
Banned
Banned
Joined
May 30, 2008
Messages
726
Reaction score
1
Re: [RELEASE]Wing Boots + Binocular

nice poop man, if this work then its awesome
 
Junior Spellweaver
Joined
Apr 29, 2008
Messages
199
Reaction score
0
Re: [RELEASE]Wing Boots + Binocular

if it looks like vac dont it ab then?
 
Experienced Elementalist
Joined
Jun 25, 2008
Messages
260
Reaction score
0
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