|
Current way they used to load shops was - running an events for EVERY shop your server has, each shop event looped through all server players, which did cause lag.
The method they used to update all players, was just dumb.Code:/** * We've updated. */ public void updated() { for (Player p : GameEngine.getPlayerManager().getPlayers()) { if (p == null) continue; if (p.isActive && !p.disconnected) { Client c = (Client) p; if (c.getExtraData().containsKey("shop")) { if (((Integer) c.getExtraData().get("shop")) == id) { c.getActionSender().sendShopReset(this); } } } } }
There's a simple way of improving it, making every player checking if he uses shop, if yes - update his shop window.
Step 1.
Open Shop.java (src/com/rs2/model/)
find this line:
comment it out. So it will be likeCode:updated();
Step 2.Code://updated();
Open PlayerManager.java (src/com/rs2/World/)
Find these lines:
right bellow add:Code:players[i].getNextPlayerMovement();
add this import at the top of class.Code:if (client.getExtraData().containsKey("shop")) { Shop shop = (Shop) client.getExtraData().get("shop"); if (shop != null) { client.getActionSender().sendShopReset(shop); } }
Easy as that.import com.rs2.model.Shop;
REP for release and work appreciated.
Credits: R0cky 0wnz
good job rocky! i will test tommorrow!
Just finished adding, work's wonder's
Thanks for this
Code:[00:06:43]: at com.rs2.world.PlayerManager.process(PlayerManager.java:235) [00:06:43]: at com.rs2.Process.run(Process.java:68) [00:06:43]: at java.lang.Thread.run(Unknown Source) [00:06:43]: java.lang.ClassCastException: java.lang.Integer cannot be cast to com.rs2.model.Shop [00:06:43]: at com.rs2.world.PlayerManager.process(PlayerManager.java:235) [00:06:43]: at com.rs2.Process.run(Process.java:68) [00:06:43]: at java.lang.Thread.run(Unknown Source) [00:06:43]: java.lang.ClassCastException: java.lang.Integer cannot be cast to com.rs2.model.Shop [00:06:43]: at com.rs2.world.PlayerManager.process(PlayerManager.java:235) [00:06:43]: at com.rs2.Process.run(Process.java:68) [00:06:43]: at java.lang.Thread.run(Unknown Source) [00:06:43]: java.lang.ClassCastException: java.lang.Integer cannot be cast to com.rs2.model.Shop [00:06:43]: at com.rs2.world.PlayerManager.process(PlayerManager.java:235) [00:06:43]: at com.rs2.Process.run(Process.java:68) [00:06:43]: at java.lang.Thread.run(Unknown Source) [00:06:43]: java.lang.ClassCastException: java.lang.Integer cannot be cast to com.rs2.model.Shop [00:06:43]: at com.rs2.world.PlayerManager.process(PlayerManager.java:235) [00:06:43]: at com.rs2.Process.run(Process.java:68) [00:06:43]: at java.lang.Thread.run(Unknown Source)
Code:line 235 Shop shop = (Shop) client.getExtraData().get("shop");dc if u try to use shopsCode:line 68 getPlayerManager().process();
You did something wrong
I also get:Code:[00:02:17]: java.lang.ClassCastException: java.lang.Integer cannot be cast to com.rs2.model.Shop [00:02:17]: at com.rs2.world.PlayerManager.process(PlayerManager.java:235) [00:02:17]: at com.rs2.Process.run(Process.java:68) [00:02:17]: at java.lang.Thread.run(Unknown Source) [00:02:17]: java.lang.ClassCastException: java.lang.Integer cannot be cast to com.rs2.model.Shop [00:02:17]: at com.rs2.world.PlayerManager.process(PlayerManager.java:235) [00:02:17]: at com.rs2.Process.run(Process.java:68) [00:02:17]: at java.lang.Thread.run(Unknown Source) [00:02:17]: java.lang.ClassCastException: java.lang.Integer cannot be cast to com.rs2.model.Shop [00:02:17]: at com.rs2.world.PlayerManager.process(PlayerManager.java:235) [00:02:17]: at com.rs2.Process.run(Process.java:68) [00:02:17]: at java.lang.Thread.run(Unknown Source) [00:02:17]: java.lang.ClassCastException: java.lang.Integer cannot be cast to com.rs2.model.Shop [00:02:17]: at com.rs2.world.PlayerManager.process(PlayerManager.java:235) [00:02:17]: at com.rs2.Process.run(Process.java:68) [00:02:17]: at java.lang.Thread.run(Unknown Source) [00:02:17]: java.lang.ClassCastException: java.lang.Integer cannot be cast to com.rs2.model.Shop [00:02:17]: at com.rs2.world.PlayerManager.process(PlayerManager.java:235) [00:02:17]: at com.rs2.Process.run(Process.java:68) [00:02:17]: at java.lang.Thread.run(Unknown Source) [00:02:17]: java.lang.ClassCastException: java.lang.Integer cannot be cast to com.rs2.model.Shop [00:02:17]: at com.rs2.world.PlayerManager.process(PlayerManager.java:235) [00:02:17]: at com.rs2.Process.run(Process.java:68) [00:02:17]: at java.lang.Thread.run(Unknown Source) [00:02:17]: java.lang.ClassCastException: java.lang.Integer cannot be cast to com.rs2.model.Shop [00:02:17]: at com.rs2.world.PlayerManager.process(PlayerManager.java:235) [00:02:17]: at com.rs2.Process.run(Process.java:68) [00:02:17]: at java.lang.Thread.run(Unknown Source) [00:02:17]: java.lang.ClassCastException: java.lang.Integer cannot be cast to com.rs2.model.Shop [00:02:17]: at com.rs2.world.PlayerManager.process(PlayerManager.java:235) [00:02:17]: at com.rs2.Process.run(Process.java:68) [00:02:17]: at java.lang.Thread.run(Unknown Source) [00:02:17]: java.lang.ClassCastException: java.lang.Integer cannot be cast to com.rs2.model.Shop [00:02:17]: at com.rs2.world.PlayerManager.process(PlayerManager.java:235) [00:02:17]: at com.rs2.Process.run(Process.java:68) [00:02:17]: at java.lang.Thread.run(Unknown Source) [00:02:17]: java.lang.ClassCastException: java.lang.Integer cannot be cast to com.rs2.model.Shop [00:02:17]: at com.rs2.world.PlayerManager.process(PlayerManager.java:235) [00:02:17]: at com.rs2.Process.run(Process.java:68) [00:02:17]: at java.lang.Thread.run(Unknown Source)
« Previous Thread | Next Thread » |
Thread Information |
Users Browsing this ThreadThere are currently 1 users browsing this thread. (0 members and 1 guests) |