Thread: [PI] Making Game Save when an Item is Dropped

Results 1 to 7 of 7
  1. #1 [PI] Making Game Save when an Item is Dropped 
    Registered Member
    Join Date
    May 2012
    Posts
    64
    Thanks given
    4
    Thanks received
    2
    Rep Power
    11
    How can I do this? I know I need to find the drop case or something, and then add c.saveGame() to it or something. Where would I place it?
    Reply With Quote  
     

  2. #2  
    Registered Member Stewie1million's Avatar
    Join Date
    Jun 2011
    Posts
    588
    Thanks given
    2
    Thanks received
    56
    Rep Power
    14
    dropitem.java
    Reply With Quote  
     

  3. #3  
    Registered Member
    Join Date
    May 2012
    Posts
    64
    Thanks given
    4
    Thanks received
    2
    Rep Power
    11
    Yea, I found that. Where would I place it in that file?

    Just not sure where the actual dropping part is in that file.
    Code:
    package server.model.players.packets;
    
    import server.Config;
    import server.Server;
    import server.model.players.Client;
    import server.model.players.PacketType;
    
    /**
     * Drop Item
     **/
    public class DropItem implements PacketType {
    
    	@Override
    	public void processPacket(Client c, int packetType, int packetSize) {
    		int itemId = c.getInStream().readUnsignedWordA();
    		c.getInStream().readUnsignedByte();
    		c.getInStream().readUnsignedByte();
    		int slot = c.getInStream().readUnsignedWordA();
    		if (c.inTrade) {
    			c.sendMessage("You cannot drop items in the trade screen.");
    			return;
    		}
    		if(c.arenas()) {
    			c.sendMessage("You can't drop items inside the arena!");
    			return;
    		}
    		if(c.InDung()) {
    			c.sendMessage("You can't drop items inside Dung!");
    			return;
    		}	
    		if(!c.getItems().playerHasItem(itemId,1,slot)) {
    			return;
    		}
    		if (System.currentTimeMillis() - c.alchDelay < 1800)
    			return;
    		boolean droppable = true;
    		for (int i : Config.UNDROPPABLE_ITEMS) {
    			if (i == itemId) {
    				droppable = false;
    				break;
    			}
    		}
    		if(c.playerItemsN[slot] != 0 && itemId != -1 && c.playerItems[slot] == itemId + 1) {
    			if(droppable) {
    if (c.getShops().getItemShopValue(itemId) > 5000000) {
    					c.droppedItem = itemId;
    					Server.itemHandler.createGroundItem(c, itemId, c.getX(), c.getY(), c.playerItemsN[slot], c.getId());
    					c.getItems().deleteItem(itemId, slot, c.playerItemsN[slot]);
    					c.SaveGame();
    					return;
    				}
    				if (c.underAttackBy > 0) {
    					if (c.getShops().getItemShopValue(itemId) > 10000) {
    						c.sendMessage("You may not drop items worth more than 10,000gp while in combat.");
    						return;
    					}
    				}
    
    				Server.itemHandler.createGroundItem(c, itemId, c.getX(), c.getY(), c.playerItemsN[slot], c.getId());
    				c.getItems().deleteItem(itemId, slot, c.playerItemsN[slot]);
    			} else {
    				c.sendMessage("This item cannot be dropped.");
    			}
    		}
    			if(c.playerItemsN[slot] != 0 && itemId != -1 && c.playerItems[slot] == itemId + 1) {
    if(!c.getItems().playerHasItem(itemId,1,slot)) {
    			c.sendMessage("Stop cheating!");
    			return;
    			}
    		}
    	}
    }
    Reply With Quote  
     

  4. #4  
    Registered Member
    Join Date
    May 2012
    Posts
    64
    Thanks given
    4
    Thanks received
    2
    Rep Power
    11
    Bump.
    Reply With Quote  
     

  5. #5  
    Registered Member I'mAGeek's Avatar
    Join Date
    Jan 2012
    Age
    28
    Posts
    504
    Thanks given
    146
    Thanks received
    44
    Rep Power
    16
    under
    Code:
    c.getItems().deleteItem(itemId, slot, c.playerItemsN[slot]);
    add:
    Code:
    PlayerSave.saveGame(c);
    and import:
    Code:
    import server.model.players.PlayerSave;
    Reply With Quote  
     

  6. #6  
    Registered Member
    Join Date
    May 2012
    Posts
    64
    Thanks given
    4
    Thanks received
    2
    Rep Power
    11
    So I add
    Code:
    PlayerSave.saveGame(c);
    import server.model.players.PlayerSave;
    under
    Code:
    c.getItems().deleteItem(itemId, slot, c.playerItemsN[slot]);
    Edit: Also, there are two instances of
    Code:
    c.getItems().deleteItem(itemId, slot, c.playerItemsN[slot]);
    in the file. Do I add it in under both?
    Reply With Quote  
     

  7. #7  
    Registered Member
    Sieu's Avatar
    Join Date
    Dec 2011
    Age
    30
    Posts
    1,167
    Thanks given
    186
    Thanks received
    131
    Rep Power
    160
    that would be hella lag.
    Reply With Quote  
     


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. Replies: 6
    Last Post: 11-09-2010, 07:12 PM
  2. Replies: 10
    Last Post: 09-02-2010, 11:41 PM
  3. Item glitch when item is dropped
    By Paketa in forum Help
    Replies: 5
    Last Post: 11-30-2009, 03:36 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •