diff --git a/Server/src/org/crandor/net/packet/out/CSConfigPacket.java b/Server/src/org/crandor/net/packet/out/CSConfigPacket.java index 5de848e44..950726256 100644 --- a/Server/src/org/crandor/net/packet/out/CSConfigPacket.java +++ b/Server/src/org/crandor/net/packet/out/CSConfigPacket.java @@ -7,11 +7,20 @@ import org.crandor.net.packet.context.CSConfigContext; /** * The outgoing packet for client script configs. * - * @author Torchic + * @author Snickerize */ public class CSConfigPacket implements OutgoingPacket { @Override + public void send(CSConfigContext context) { + IoBuffer buffer = new IoBuffer(65); + buffer.putLEShort(context.getPlayer().getInterfaceManager().getPacketCount(1)); + buffer.putC((byte) context.getValue()); + buffer.putLEShortA(context.getId()); + context.getPlayer().getDetails().getSession().write(buffer); + } + + /*@Override public void send(CSConfigContext context) { IoBuffer buffer = new IoBuffer(115); buffer.putShort(context.getId()); @@ -27,5 +36,5 @@ public class CSConfigPacket implements OutgoingPacket { buffer.putInt(context.getValue()); context.getPlayer().getDetails().getSession().write(buffer); - } + }*/ } \ No newline at end of file diff --git a/Server/src/org/crandor/net/packet/out/RunScriptPacket.java b/Server/src/org/crandor/net/packet/out/RunScriptPacket.java index 6b5cb35d4..615e1f945 100644 --- a/Server/src/org/crandor/net/packet/out/RunScriptPacket.java +++ b/Server/src/org/crandor/net/packet/out/RunScriptPacket.java @@ -7,11 +7,11 @@ import org.crandor.net.packet.context.RunScriptContext; /** * The run script outgoing packet. - * @author Emperor + * @author Snickerize */ public class RunScriptPacket implements OutgoingPacket { - @Override + /*@Override public void send(RunScriptContext context) { String string = context.getString(); Object[] objects = context.getObjects(); @@ -27,6 +27,27 @@ public class RunScriptPacket implements OutgoingPacket { } j++; } + buffer.putInt(context.getId()); + context.getPlayer().getDetails().getSession().write(buffer); + }*/ + @Override + public void send(RunScriptContext context) { + String types = context.getString(); + Object[] objects = context.getObjects(); + IoBuffer buffer = new IoBuffer(115, PacketHeader.SHORT); + buffer.putShort(context.getPlayer().getInterfaceManager().getPacketCount(1)); + + buffer.putString(types); + int j = 0; + for (int i = (types.length() - 1); i >= 0; i--) { + if (types.charAt(i) == 's') { + buffer.putString((String) objects[j]); + } else { + buffer.putInt((Integer) objects[j]); + } + j++; + } + buffer.putInt(context.getId()); context.getPlayer().getDetails().getSession().write(buffer); } diff --git a/Server/src/plugin/interaction/inter/GameInterface.java b/Server/src/plugin/interaction/inter/GameInterface.java index 2442fdcfc..95ffc5732 100644 --- a/Server/src/plugin/interaction/inter/GameInterface.java +++ b/Server/src/plugin/interaction/inter/GameInterface.java @@ -181,6 +181,21 @@ public final class GameInterface extends ComponentPlugin { return true; } + /** + * World map + * Thanks, Snickerize! + */ + private void configureWorldMap(Player player) { + if (player.inCombat()) { + player.getPacketDispatch().sendMessage("It wouldn't be very wise opening the world map during combat."); + return; + } + player.getInterfaceManager().openWindowsPane(new Component(755), 2); + int posHash = (player.getLocation().getZ() << 28) | (player.getLocation().getX() << 14) | player.getLocation().getY(); + player.getPacketDispatch().sendScriptConfigs(622, posHash, "", 0); + player.getPacketDispatch().sendScriptConfigs(674, posHash, "", 0); + } + /** * Method used to open the report interface. * @param player the player. @@ -216,27 +231,4 @@ public final class GameInterface extends ComponentPlugin { * Configures the world map for a player. * @param player The player. */ - private void configureWorldMap(Player player) { - if (player.inCombat()) { - player.getPacketDispatch().sendMessage("It wouldn't be very wise opening the world map during combat."); - return; - } -// player.getInterfaceManager().openWindowsPane(new Component(755), 1); -// player.getPacketDispatch().sendScriptConfig(1187, 0, "ii", 0); - int position = player.getLocation().getX() << 14 | player.getLocation().getY() | player.getLocation().getZ() << 28; - -// player.getPacketDispatch().sendScriptConfig(622, position, "ii"); -// player.getPacketDispatch().sendScriptConfig(674, position, "ii"); -// player.getPacketDispatch().sendScriptConfig(622, position); -// player.getPacketDispatch().sendScriptConfig(674, position); - System.out.println(position); - - - /*player.getPacketDispatch().sendWindowsPane(755, 1); - int hash = player.getLocation().getX() << 14 | player.getLocation().getY(); - player.getPacketDispatch().sendRunScript(622, "", hash); - player.getPacketDispatch().sendRunScript(674, "", hash); - PacketRepository.send(InterfaceConfig.class, new InterfaceConfigContext(player, 371, 25, true)); - player.setAttribute("worldMap:viewing", true);*/ - } } diff --git a/Server/src/plugin/interaction/inter/WorldMapInterface.java b/Server/src/plugin/interaction/inter/WorldMapInterface.java index 548652fe9..5238de42e 100644 --- a/Server/src/plugin/interaction/inter/WorldMapInterface.java +++ b/Server/src/plugin/interaction/inter/WorldMapInterface.java @@ -21,14 +21,19 @@ public final class WorldMapInterface extends ComponentPlugin { return this; } + //Thanks snicker! @Override public boolean handle(Player player, Component component, int opcode, int button, int slot, int itemId) { switch (button) { - case 3: -// player.getInterfaceManager().openWindowsPane(new Component(player.getInterfaceManager().isResizable() ? 746 : 548), 2); - return true; + case 3: + player.getInterfaceManager().openWindowsPane(new Component(player.getInterfaceManager().isResizable() ? 746 : 548), 2); + player.getPacketDispatch().sendRunScript(1187, "ii", 0, 0); + player.updateSceneGraph(true); + return true; + default: + System.err.println("World map: buttonid: " + button + ", opcode: " + opcode + ", slot: " + slot); + return true; } - return false; } }