diff --git a/Server/src/main/java/core/net/packet/out/Varbit.java b/Server/src/main/java/core/net/packet/out/Varbit.java index c99509d7e..e8cfc6823 100644 --- a/Server/src/main/java/core/net/packet/out/Varbit.java +++ b/Server/src/main/java/core/net/packet/out/Varbit.java @@ -7,8 +7,14 @@ import core.net.packet.context.VarbitContext; public class Varbit implements OutgoingPacket { @Override public void send(VarbitContext varbitContext) { - IoBuffer buffer = new IoBuffer(37); - buffer.put((byte) varbitContext.value); + IoBuffer buffer; + if(varbitContext.value > 255){ + buffer = new IoBuffer(84); + buffer.putLEInt((128 | varbitContext.value) & 255); + } else { + buffer = new IoBuffer(37); + buffer.put((byte) 128 | varbitContext.value); + } buffer.putLEShort(varbitContext.varbitId); varbitContext.getPlayer().getSession().write(buffer); } diff --git a/Server/src/main/kotlin/rs09/game/system/command/oldsys/VisualCommand.kt b/Server/src/main/kotlin/rs09/game/system/command/oldsys/VisualCommand.kt index 5fd398914..7ee4bad1f 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/oldsys/VisualCommand.kt +++ b/Server/src/main/kotlin/rs09/game/system/command/oldsys/VisualCommand.kt @@ -261,6 +261,15 @@ class VisualCommand : CommandPlugin() { PacketRepository.send(Varbit::class.java, VarbitContext(player, value, val2)) return true } + "setbits" -> { + args ?: return false + val start = toInteger(args[1]!!) + val end = toInteger(args[2]!!) + val value = toInteger(args[3]!!) + for(i in start until end){ + player?.varpManager?.setVarbit(i, value) + } + } "loop_anim_on_i" -> { var anim = toInteger(args!![1]!!) ContentAPI.submitWorldPulse(object : Pulse(3){