Thread: [PI] Basic Use Item on Object Distance Check

Results 1 to 2 of 2
  1. #1 [PI] Basic Use Item on Object Distance Check 
    Registered Member Aleksandr's Avatar
    Join Date
    Sep 2006
    Age
    33
    Posts
    1,034
    Thanks given
    455
    Thanks received
    134
    Rep Power
    74
    hey guys, noticed that PI doesn't check if you are within distance when using item on object so i decided to post it here

    ItemOnObject.java
    Code:
    package server.model.players.packets;
    
    /**
     * @author Ryan / Lmctruck30 / Aleksandr
     */
    
    import server.model.items.UseItem;
    import server.model.players.Client;
    import server.model.players.PacketType;
    import server.util.Misc;
    
    public class ItemOnObject implements PacketType {
    
    	@Override
    	public void processPacket(Client c, int packetType, int packetSize) {
    		/*
    		 * a = ?
    		 * b = ?
    		 */
    		
    		int a = c.getInStream().readUnsignedWord();
    		c.objectId = c.getInStream().readSignedWordBigEndian();
    		c.objectY = c.getInStream().readSignedWordBigEndianA();
    		int b = c.getInStream().readUnsignedWord();
    		c.objectX = c.getInStream().readSignedWordBigEndianA();
    		c.usedItemID = c.getInStream().readUnsignedWord();
    		
    		if(c.playerRights >= 3) {
    			Misc.println("objectId: "+c.objectId+"  ObjectX: "+c.objectX+ "  objectY: "+c.objectY+" Xoff: "+ (c.getX() - c.objectX)+" Yoff: "+ (c.getY() - c.objectY)); 
    			c.sendMessage("objectId: " + c.objectId + " objectX: " + c.objectX + " objectY: " + c.objectY);
    		}
    		
    		switch(c.objectId) {
    
    			
    		default:
    			c.objectDistance = 1;
    			c.objectXOffset = 0;
    			c.objectYOffset = 0;
    			break;	
    				
    		}
    		
    		if(c.goodDistance(c.objectX+c.objectXOffset, c.objectY+c.objectYOffset, c.getX(), c.getY(), c.objectDistance)) {
    			c.turnPlayerTo(c.objectX, c.objectY);
    			UseItem.ItemonObject(c, c.objectId, c.objectX, c.objectY, c.usedItemID);
    		} else {
    			c.clickObjectType = 4;
    		}
    		
    	}
    
    }
    in Player.java declare
    Code:
    public int usedItemID;
    Then in UseItem.java search for
    Code:
    public static void ItemonObject(Client c, int objectID, int objectX, int objectY, int itemId) {
    and underneath add
    Code:
    		c.clickObjectType = 0;

    in Client.java search for
    Code:
    			if(clickObjectType == 3) {
    				getActions().thirdClickObject(objectId, objectX, objectY);
    			}
    and underneath add
    Code:
    			if(clickObjectType == 4) {
    				turnPlayerTo(objectX, objectY);
    				UseItem.ItemonObject(this, objectId, objectX, objectY, usedItemID);
    			}

    Hope i didn't miss anything. Now you will need to add object Offsets and object distance to ItemOnObject.java
    The default is
    Code:
    		default:
    			c.objectDistance = 1;
    			c.objectXOffset = 0;
    			c.objectYOffset = 0;
    			break;
    Al
    Attached image

    There is no RL, just AFK
    Reply With Quote  
     

  2. Thankful user:


  3. #2  
    Registered Member
    Join Date
    Dec 2010
    Age
    29
    Posts
    1,186
    Thanks given
    513
    Thanks received
    340
    Rep Power
    35
    Thanks, goodjob on this, i noticed this too, and this is a big addition to the castlewars rocks exploding thing you just released.
    Reply With Quote  
     

  4. Thankful user:



Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. [PI] Long-distance Object Click [HELP]
    By Compaq in forum Help
    Replies: 5
    Last Post: 03-20-2013, 06:21 PM
  2. Object Distance Offset calculation
    By Aleksandr in forum Requests
    Replies: 2
    Last Post: 09-17-2011, 11:31 PM
  3. PI Object Distance
    By Jason in forum Help
    Replies: 3
    Last Post: 05-22-2011, 05:18 AM
  4. How to check to see if an object is there or not?
    By Mister Maggot in forum Help
    Replies: 6
    Last Post: 05-22-2010, 01:00 AM
  5. Check if an object exists
    By FuglyNerd in forum Help
    Replies: 2
    Last Post: 11-30-2009, 06:49 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •