Thread: [PI] Improvements - Cleaning/Converting Process to Events.

Page 4 of 6 FirstFirst ... 23456 LastLast
Results 31 to 40 of 57
  1. #31  
    Donator

    Join Date
    Dec 2011
    Posts
    125
    Thanks given
    14
    Thanks received
    16
    Rep Power
    17
    Error:
    [spoil]
    Code:
    src\server\model\players\packets\MagicOnFloorItems.java:33: error: cannot find s
    ymbol
                    if ((((c.getItems().freeSlots() >= 1) || c.getItems().playerHasI
    tem(itemId, 1)) && Item.itemStackable[itemId]) || ((c.getItems().freeSlots() > 0
    ) && !Item.itemStackable[itemId])) {
    
                       ^
      symbol:   variable Item
      location: class MagicOnFloorItems
    src\server\model\players\packets\MagicOnFloorItems.java:33: error: cannot find s
    ymbol
                    if ((((c.getItems().freeSlots() >= 1) || c.getItems().playerHasI
    tem(itemId, 1)) && Item.itemStackable[itemId]) || ((c.getItems().freeSlots() > 0
    ) && !Item.itemStackable[itemId])) {
    
    
          ^
      symbol:   variable Item
      location: class MagicOnFloorItems
    src\server\model\players\packets\MagicOnFloorItems.java:56: error: local variabl
    e itemX is accessed from within inner class; needs to be declared final
                                                            if(Server.itemHandler.it
    emExists(c.teleGrabItem, c.teleGrabX, c.teleGrabY) && c.goodDistance(c.getX(), c
    .getY(), itemX, itemY, 12)) {
    
    
             ^
    src\server\model\players\packets\MagicOnFloorItems.java:56: error: local variabl
    e itemY is accessed from within inner class; needs to be declared final
                                                            if(Server.itemHandler.it
    emExists(c.teleGrabItem, c.teleGrabX, c.teleGrabY) && c.goodDistance(c.getX(), c
    .getY(), itemX, itemY, 12)) {
    
    
                    ^
    Note: Some input files use unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    4 errors
    Press any key to continue . . .
    [/spoil]

    Code:
    [spoil]
    Code:
    package server.model.players.packets;
    import server.Server;
    import server.model.players.Client;
    import server.model.players.PacketType;
    import server.event.CycleEvent;
    import server.event.CycleEventContainer;
    import server.event.CycleEventHandler;
    
    /**
     * Magic on floor items
     **/
    public class MagicOnFloorItems implements PacketType {
    
    	@Override
    	public void processPacket(final Client c, int packetType, int packetSize) {
    		int itemY = c.getInStream().readSignedWordBigEndian();
    		int itemId = c.getInStream().readUnsignedWord();
    		int itemX = c.getInStream().readSignedWordBigEndian();
    		int spellId = c.getInStream().readUnsignedWordA();
    
    		if(!Server.itemHandler.itemExists(itemId, itemX, itemY)) {
    			c.stopMovement();
    			return;
    		}
    		c.usingMagic = true;
    		if(!c.getCombat().checkMagicReqs(51)) {
    			c.stopMovement();
    			return;
    		}
    				/*
    		 * Telegrab spell
    		 */
    		if ((((c.getItems().freeSlots() >= 1) || c.getItems().playerHasItem(itemId, 1)) && Item.itemStackable[itemId]) || ((c.getItems().freeSlots() > 0) && !Item.itemStackable[itemId])) {
    			if(c.goodDistance(c.getX(), c.getY(), itemX, itemY, 12)) {
    				c.walkingToItem = true;
    				int offY = (c.getX() - itemX) * -1;
    				int offX = (c.getY() - itemY) * -1;
    				c.teleGrabX = itemX;
    				c.teleGrabY = itemY;
    				c.teleGrabItem = itemId;
    				c.turnPlayerTo(itemX, itemY);
    				c.teleGrabDelay = System.currentTimeMillis();
    				c.startAnimation(c.MAGIC_SPELLS[51][2]);
    				c.gfx100(c.MAGIC_SPELLS[51][3]);
    				c.getPA().createPlayersStillGfx(144, itemX, itemY, 0, 72);
    				c.getPA().createPlayersProjectile(c.getX(), c.getY(), offX, offY, 50, 70, c.MAGIC_SPELLS[51][4], 50, 10, 0, 50);
    				c.getPA().addSkillXP(c.MAGIC_SPELLS[51][7], 6);
    				c.getPA().refreshSkill(6);
    				c.stopMovement();
    				CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    					@Override
    					public void execute(CycleEventContainer container) {
    						if(!c.walkingToItem)
    							container.stop();
    						if(System.currentTimeMillis() - c.teleGrabDelay > 1550 && c.usingMagic) {
    							if(Server.itemHandler.itemExists(c.teleGrabItem, c.teleGrabX, c.teleGrabY) && c.goodDistance(c.getX(), c.getY(), itemX, itemY, 12)) {
    								Server.itemHandler.removeGroundItem(c, c.teleGrabItem, c.teleGrabX, c.teleGrabY, true);
    								c.usingMagic = false;
    								container.stop();
    							}
    						}
    					}
    					@Override
    					public void stop() {
    						c.walkingToItem = false;
    					}
    				}, 1);
    			}
    		} else {
    			c.sendMessage("You don't have enough space in your inventory.");
    			c.stopMovement();
    		}
    		/*if(c.goodDistance(c.getX(), c.getY(), itemX, itemY, 12)) {
    			int offY = (c.getX() - itemX) * -1;
    			int offX = (c.getY() - itemY) * -1;
    			c.teleGrabX = itemX;
    			c.teleGrabY = itemY;
    			c.teleGrabItem = itemId;
    			c.turnPlayerTo(itemX, itemY);
    			c.teleGrabDelay = System.currentTimeMillis();
    			c.startAnimation(c.MAGIC_SPELLS[51][2]);
    			c.gfx100(c.MAGIC_SPELLS[51][3]);
    			c.getPA().createPlayersStillGfx(144, itemX, itemY, 0, 72);
    			c.getPA().createPlayersProjectile(c.getX(), c.getY(), offX, offY, 50, 70, c.MAGIC_SPELLS[51][4], 50, 10, 0, 50);
    			c.getPA().addSkillXP(c.MAGIC_SPELLS[51][7], 6);
    			c.getPA().refreshSkill(6);
    			c.stopMovement();
    		}*/
    	}
    
    }
    [/spoil]

    Tried the above and didn't work.
    Reply With Quote  
     

  2. #32  
    Banned
    Join Date
    Dec 2011
    Posts
    63
    Thanks given
    1
    Thanks received
    8
    Rep Power
    0
    Quote Originally Posted by 1776 View Post
    Could you please explain why it is better, because I see no improvement over using process(). All this does is move from client.process to the server loop which is the same thing...


    Server => PlayerHandler => Loops through all players online => Player Process()
    Exactly you will not even notice the improvement, normally it would just go through some if statements at the 600ms loop which wouldn't even be a problem and certainly not the cause of the bad stability of PI.
    It wouldn't make a big difference if it would get executed by an event or by the process() call, so this is kind of useless.
    Reply With Quote  
     

  3. #33  
    Expect the Unexpected

    Acquittal's Avatar
    Join Date
    Jan 2011
    Age
    27
    Posts
    1,182
    Thanks given
    627
    Thanks received
    233
    Rep Power
    238
    Good work.
    Reply With Quote  
     

  4. #34  
    Endeavor

    Mikey`'s Avatar
    Join Date
    Dec 2007
    Posts
    4,421
    Thanks given
    693
    Thanks received
    1,425
    Rep Power
    1202
    You can't fix something so broken anyhow. But nice work.
    Reply With Quote  
     

  5. Thankful user:


  6. #35  
    Donator


    Join Date
    Jul 2011
    Posts
    922
    Thanks given
    196
    Thanks received
    169
    Rep Power
    189
    This is really nice, will release most of the lag
    Reply With Quote  
     

  7. #36  
    Donator

    Arithium's Avatar
    Join Date
    May 2010
    Age
    28
    Posts
    4,758
    Thanks given
    199
    Thanks received
    1,256
    Rep Power
    1114
    Quote Originally Posted by Mikey` View Post
    You can't fix something so broken anyhow. But nice work.
    Whats broken about it? I realise the way it loads items/npcs could be done better. But that is what uses the most and creates the most instances.

    but i'd like you to explain to me what exactly is " broken " about project insanity.
    Reply With Quote  
     

  8. #37  
    Registered Member
    Xynth's Avatar
    Join Date
    May 2009
    Posts
    2,222
    Thanks given
    226
    Thanks received
    259
    Rep Power
    1155
    This is literally the first thing I did when I worked on PI. Now that I'm working on Azure, it's done for me
    Reply With Quote  
     

  9. #38  
    Registered Member
    netzo's Avatar
    Join Date
    Feb 2008
    Age
    28
    Posts
    1,226
    Thanks given
    402
    Thanks received
    135
    Rep Power
    185
    Quote Originally Posted by Haptic View Post
    Error:
    [spoil]
    Code:
    src\server\model\players\packets\MagicOnFloorItems.java:33: error: cannot find s
    ymbol
                    if ((((c.getItems().freeSlots() >= 1) || c.getItems().playerHasI
    tem(itemId, 1)) && Item.itemStackable[itemId]) || ((c.getItems().freeSlots() > 0
    ) && !Item.itemStackable[itemId])) {
    
                       ^
      symbol:   variable Item
      location: class MagicOnFloorItems
    src\server\model\players\packets\MagicOnFloorItems.java:33: error: cannot find s
    ymbol
                    if ((((c.getItems().freeSlots() >= 1) || c.getItems().playerHasI
    tem(itemId, 1)) && Item.itemStackable[itemId]) || ((c.getItems().freeSlots() > 0
    ) && !Item.itemStackable[itemId])) {
    
    
          ^
      symbol:   variable Item
      location: class MagicOnFloorItems
    src\server\model\players\packets\MagicOnFloorItems.java:56: error: local variabl
    e itemX is accessed from within inner class; needs to be declared final
                                                            if(Server.itemHandler.it
    emExists(c.teleGrabItem, c.teleGrabX, c.teleGrabY) && c.goodDistance(c.getX(), c
    .getY(), itemX, itemY, 12)) {
    
    
             ^
    src\server\model\players\packets\MagicOnFloorItems.java:56: error: local variabl
    e itemY is accessed from within inner class; needs to be declared final
                                                            if(Server.itemHandler.it
    emExists(c.teleGrabItem, c.teleGrabX, c.teleGrabY) && c.goodDistance(c.getX(), c
    .getY(), itemX, itemY, 12)) {
    
    
                    ^
    Note: Some input files use unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    4 errors
    Press any key to continue . . .
    [/spoil]

    Code:
    [spoil]
    Code:
    package server.model.players.packets;
    import server.Server;
    import server.model.players.Client;
    import server.model.players.PacketType;
    import server.event.CycleEvent;
    import server.event.CycleEventContainer;
    import server.event.CycleEventHandler;
    
    /**
     * Magic on floor items
     **/
    public class MagicOnFloorItems implements PacketType {
    
    	@Override
    	public void processPacket(final Client c, int packetType, int packetSize) {
    		int itemY = c.getInStream().readSignedWordBigEndian();
    		int itemId = c.getInStream().readUnsignedWord();
    		int itemX = c.getInStream().readSignedWordBigEndian();
    		int spellId = c.getInStream().readUnsignedWordA();
    
    		if(!Server.itemHandler.itemExists(itemId, itemX, itemY)) {
    			c.stopMovement();
    			return;
    		}
    		c.usingMagic = true;
    		if(!c.getCombat().checkMagicReqs(51)) {
    			c.stopMovement();
    			return;
    		}
    				/*
    		 * Telegrab spell
    		 */
    		if ((((c.getItems().freeSlots() >= 1) || c.getItems().playerHasItem(itemId, 1)) && Item.itemStackable[itemId]) || ((c.getItems().freeSlots() > 0) && !Item.itemStackable[itemId])) {
    			if(c.goodDistance(c.getX(), c.getY(), itemX, itemY, 12)) {
    				c.walkingToItem = true;
    				int offY = (c.getX() - itemX) * -1;
    				int offX = (c.getY() - itemY) * -1;
    				c.teleGrabX = itemX;
    				c.teleGrabY = itemY;
    				c.teleGrabItem = itemId;
    				c.turnPlayerTo(itemX, itemY);
    				c.teleGrabDelay = System.currentTimeMillis();
    				c.startAnimation(c.MAGIC_SPELLS[51][2]);
    				c.gfx100(c.MAGIC_SPELLS[51][3]);
    				c.getPA().createPlayersStillGfx(144, itemX, itemY, 0, 72);
    				c.getPA().createPlayersProjectile(c.getX(), c.getY(), offX, offY, 50, 70, c.MAGIC_SPELLS[51][4], 50, 10, 0, 50);
    				c.getPA().addSkillXP(c.MAGIC_SPELLS[51][7], 6);
    				c.getPA().refreshSkill(6);
    				c.stopMovement();
    				CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    					@Override
    					public void execute(CycleEventContainer container) {
    						if(!c.walkingToItem)
    							container.stop();
    						if(System.currentTimeMillis() - c.teleGrabDelay > 1550 && c.usingMagic) {
    							if(Server.itemHandler.itemExists(c.teleGrabItem, c.teleGrabX, c.teleGrabY) && c.goodDistance(c.getX(), c.getY(), itemX, itemY, 12)) {
    								Server.itemHandler.removeGroundItem(c, c.teleGrabItem, c.teleGrabX, c.teleGrabY, true);
    								c.usingMagic = false;
    								container.stop();
    							}
    						}
    					}
    					@Override
    					public void stop() {
    						c.walkingToItem = false;
    					}
    				}, 1);
    			}
    		} else {
    			c.sendMessage("You don't have enough space in your inventory.");
    			c.stopMovement();
    		}
    		/*if(c.goodDistance(c.getX(), c.getY(), itemX, itemY, 12)) {
    			int offY = (c.getX() - itemX) * -1;
    			int offX = (c.getY() - itemY) * -1;
    			c.teleGrabX = itemX;
    			c.teleGrabY = itemY;
    			c.teleGrabItem = itemId;
    			c.turnPlayerTo(itemX, itemY);
    			c.teleGrabDelay = System.currentTimeMillis();
    			c.startAnimation(c.MAGIC_SPELLS[51][2]);
    			c.gfx100(c.MAGIC_SPELLS[51][3]);
    			c.getPA().createPlayersStillGfx(144, itemX, itemY, 0, 72);
    			c.getPA().createPlayersProjectile(c.getX(), c.getY(), offX, offY, 50, 70, c.MAGIC_SPELLS[51][4], 50, 10, 0, 50);
    			c.getPA().addSkillXP(c.MAGIC_SPELLS[51][7], 6);
    			c.getPA().refreshSkill(6);
    			c.stopMovement();
    		}*/
    	}
    
    }
    [/spoil]

    Tried the above and didn't work.
    parameter c to final c
    Reply With Quote  
     

  10. #39  
    Banned
    Join Date
    Jan 2012
    Posts
    89
    Thanks given
    20
    Thanks received
    5
    Rep Power
    0
    Hey man love this work. But however important things;
    That duel thing that handles the FIGHT force chat & being able to attack does not work. It will work for other player but not for you.
    Second, traderesetneeded causes a DUPE.
    Trade someone an item, after the trade is done relog. You will receive the item and he will aswell.
    You should consider fixing these, thanks.
    Reply With Quote  
     

  11. Thankful user:


  12. #40  
    🍕

    Linus's Avatar
    Join Date
    Dec 2008
    Age
    28
    Posts
    2,778
    Thanks given
    970
    Thanks received
    410
    Rep Power
    0
    Have fun recoding all the timers

    ╠╬╣
    ╦╦
    ╠╬╬╬╣
    ╠╬╬╬╬╬╬╣
    ╠╬╬╬╬╬╬╣
    ╚╩╩╩╩╩╩╝

    ╠╬╬╬╣

    [Only registered and activated users can see links. ]
    Reply With Quote  
     

Page 4 of 6 FirstFirst ... 23456 LastLast

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. rsps improvements
    By katastrophic in forum RS2 Server
    Replies: 80
    Last Post: 12-16-2011, 03:36 AM
  2. Improvements?
    By Kastro in forum Help
    Replies: 4
    Last Post: 12-16-2009, 01:21 AM
  3. Converting Process() To Events
    By Enjoi in forum Tutorials
    Replies: 35
    Last Post: 07-13-2009, 01:33 AM
  4. Turning my process into Events.
    By myK- in forum Help
    Replies: 5
    Last Post: 07-09-2009, 02:17 AM
  5. Replies: 7
    Last Post: 05-05-2009, 11:01 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
  •