Fixed numerous interfaces, including Puro puro, Destroy item, Equipment, kept on death, Cooking (single prompts i.e. raw fish -> range), Fletching (make set i.e. fletching arrows, bow)
Rewrote herb cleaning to listener Fixed studded leather crafting level requirement and xp Fixed bow stringing stealing strings ::quest <player> can now be used to look up a player's completed quests
This commit is contained in:
@@ -1551,7 +1551,6 @@ public class ItemDefinition extends Definition<Item> {
|
||||
if (!player.getAttribute("equip_stats_open", false)) {
|
||||
return;
|
||||
}
|
||||
PacketRepository.send(WeightUpdate.class, player.getPacketDispatch().getContext());
|
||||
int index = 0;
|
||||
int[] bonuses = player.getProperties().getBonuses();
|
||||
for (int i = 36; i < 50; i++) {
|
||||
@@ -1563,8 +1562,6 @@ public class ItemDefinition extends Definition<Item> {
|
||||
player.getPacketDispatch().sendString(BONUS_NAMES[index++] + bonusValue, 667, i);
|
||||
}
|
||||
player.getPacketDispatch().sendString("Attack bonus", 667, 34);
|
||||
DecimalFormat dec = new DecimalFormat("#.#");
|
||||
player.getPacketDispatch().sendString(dec.format(player.getSettings().getWeight())+" kg", 667, 32);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -53,7 +53,7 @@ public enum InterfaceType {
|
||||
/**
|
||||
* Wilderness overlay
|
||||
*/
|
||||
WILDERNESS_OVERLAY(Components.TOPLEVEL_548, Components.TOPLEVEL_FULLSCREEN_746, 11, 3);
|
||||
OVERLAY_B(Components.TOPLEVEL_548, Components.TOPLEVEL_FULLSCREEN_746, 11, 3);
|
||||
|
||||
/**
|
||||
* The fixed window pane id.
|
||||
|
||||
@@ -363,7 +363,6 @@ public final class EquipmentContainer extends Container {
|
||||
if (!player.getInterfaceManager().hasMainComponent(667)) {
|
||||
return;
|
||||
}
|
||||
PacketRepository.send(WeightUpdate.class, player.getPacketDispatch().getContext());
|
||||
int index = 0;
|
||||
int[] bonuses = player.getProperties().getBonuses();
|
||||
for (int i = 36; i < 50; i++) {
|
||||
|
||||
@@ -11,8 +11,10 @@ import core.game.node.entity.npc.NPC;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.item.Item;
|
||||
import core.net.packet.PacketRepository;
|
||||
import core.net.packet.context.ChildPositionContext;
|
||||
import core.net.packet.context.ContainerContext;
|
||||
import core.net.packet.out.ContainerPacket;
|
||||
import core.net.packet.out.RepositionChild;
|
||||
import core.plugin.PluginManifest;
|
||||
import core.plugin.PluginType;
|
||||
import core.game.system.config.ItemConfigParser;
|
||||
@@ -263,8 +265,6 @@ public final class DialogueInterpreter {
|
||||
* @return The component.
|
||||
*/
|
||||
public Component sendDestroyItem(int id, String message) {
|
||||
player.getInterfaceManager().openChatbox(94);
|
||||
PacketRepository.send(ContainerPacket.class, new ContainerContext(player, 94, 93, 93, new Item[] { new Item(id) }, 1, false));
|
||||
String text = ItemDefinition.forId(id).getConfiguration(ItemConfigParser.DESTROY_MESSAGE, "Are you sure you want to destroy this object?");
|
||||
if (text.length() > 200) {
|
||||
String[] words = text.split(" ");
|
||||
@@ -279,11 +279,11 @@ public final class DialogueInterpreter {
|
||||
}
|
||||
text = sb.toString();
|
||||
}
|
||||
player.getPacketDispatch().sendString("Are you sure you want to destroy this object?", 94, 2);
|
||||
player.getPacketDispatch().sendString("Yes.", 94, 3);
|
||||
player.getPacketDispatch().sendString("No.", 94, 4);
|
||||
player.getPacketDispatch().sendString(text, 94, 7);
|
||||
player.getPacketDispatch().sendString(ItemDefinition.forId(id).getName(), 94, 8);
|
||||
player.getPacketDispatch().sendItemOnInterface(id, 1, 94, 9);
|
||||
|
||||
player.getInterfaceManager().openChatbox(94);
|
||||
return player.getInterfaceManager().getChatbox();
|
||||
}
|
||||
|
||||
|
||||
@@ -123,6 +123,37 @@ open class SkillDialogueHandler(
|
||||
}
|
||||
}
|
||||
},
|
||||
MAKE_SET_ONE_OPTION(582, 4, 1) {
|
||||
override fun display(player: Player, handler: SkillDialogueHandler) {
|
||||
val item = handler.data[0] as Item
|
||||
|
||||
// Send item + item name to interface
|
||||
player.packetDispatch.sendItemZoomOnInterface(item.id, 160, 582, 2)
|
||||
player.packetDispatch.sendString("<br><br><br><br>" + item.name, 582, 5)
|
||||
|
||||
// Re-format this interface because it is not formatted properly for the chat-box
|
||||
// Swords
|
||||
PacketRepository.send(RepositionChild::class.java, ChildPositionContext(player, 582, 0, 12, 15))
|
||||
PacketRepository.send(RepositionChild::class.java, ChildPositionContext(player, 582, 1, 431, 15))
|
||||
// "How many would you like to make?"
|
||||
PacketRepository.send(RepositionChild::class.java, ChildPositionContext(player, 582, 6, 0, 12))
|
||||
// Item displayed
|
||||
PacketRepository.send(RepositionChild::class.java, ChildPositionContext(player, 582, 2, 207, 23))
|
||||
// Right click context menu boxes
|
||||
PacketRepository.send(RepositionChild::class.java, ChildPositionContext(player, 582, 3, 58, 27))
|
||||
PacketRepository.send(RepositionChild::class.java, ChildPositionContext(player, 582, 4, 58, 27))
|
||||
PacketRepository.send(RepositionChild::class.java, ChildPositionContext(player, 582, 5, 58, 27))
|
||||
}
|
||||
|
||||
override fun getAmount(handler: SkillDialogueHandler, buttonId: Int): Int {
|
||||
return when(buttonId){
|
||||
4 -> 1
|
||||
3 -> 5
|
||||
2 -> 10
|
||||
else -> handler.getAll(getIndex(handler, buttonId))
|
||||
}
|
||||
}
|
||||
},
|
||||
TWO_OPTION(303, 7, 2) {
|
||||
override fun display(player: Player, handler: SkillDialogueHandler) {
|
||||
var item: Item
|
||||
|
||||
@@ -15,7 +15,6 @@ import core.net.packet.out.WindowsPane;
|
||||
import core.tools.Log;
|
||||
import org.rs09.consts.Components;
|
||||
import content.region.misc.tutisland.handlers.TutorialStage;
|
||||
import core.tools.SystemLogger;
|
||||
|
||||
import static core.api.ContentAPIKt.log;
|
||||
import static core.api.ContentAPIKt.*;
|
||||
@@ -612,7 +611,7 @@ public final class InterfaceManager {
|
||||
return;
|
||||
}
|
||||
overlay = component;
|
||||
if (overlay.getDefinition().getType() != InterfaceType.OVERLAY) {
|
||||
if (overlay.getDefinition().getType() != InterfaceType.OVERLAY && overlay.getDefinition().getType() != InterfaceType.OVERLAY_B) {
|
||||
log(this.getClass(), Log.WARN, "Set interface type to OVERLAY for component " + component.getId() + ", definition requires updating!");
|
||||
overlay.getDefinition().setType(InterfaceType.OVERLAY);
|
||||
overlay.getDefinition().setWalkable(true);
|
||||
@@ -620,23 +619,6 @@ public final class InterfaceManager {
|
||||
overlay.open(player);
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens the wilderness overlay.
|
||||
* @param component The component.
|
||||
*/
|
||||
public void openWildernessOverlay(Component component) {
|
||||
if (wildyOverlay != null && !wildyOverlay.close(player)) {
|
||||
return;
|
||||
}
|
||||
wildyOverlay = component;
|
||||
if (wildyOverlay.getDefinition().getType() != InterfaceType.WILDERNESS_OVERLAY) {
|
||||
log(this.getClass(), Log.WARN, "Set interface type to WILDERNESS_OVERLAY for component " + component.getId() + ", definition requires updating!");
|
||||
wildyOverlay.getDefinition().setType(InterfaceType.WILDERNESS_OVERLAY);
|
||||
wildyOverlay.getDefinition().setWalkable(true);
|
||||
}
|
||||
wildyOverlay.open(player);
|
||||
}
|
||||
|
||||
/**
|
||||
* Closes the current overlay.
|
||||
*/
|
||||
|
||||
@@ -428,6 +428,7 @@ public final class Settings {
|
||||
}
|
||||
weight += item.getDefinition().getConfiguration(ItemConfigParser.WEIGHT, 0.0);
|
||||
}
|
||||
player.getPacketDispatch().sendString((int) weight + " kg", 667, 32);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,9 +3,9 @@ package core.game.system.command.sets
|
||||
import core.game.component.Component
|
||||
import core.game.node.entity.player.Player
|
||||
import core.game.node.entity.player.link.quest.QuestRepository
|
||||
import core.game.system.command.Command
|
||||
import core.plugin.Initializable
|
||||
import core.game.system.command.Privilege
|
||||
import core.game.world.repository.Repository
|
||||
|
||||
@Initializable
|
||||
class QuestCommandSet : CommandSet(Privilege.ADMIN){
|
||||
@@ -22,8 +22,20 @@ class QuestCommandSet : CommandSet(Privilege.ADMIN){
|
||||
/**
|
||||
* Displays the currently implemented quests with debug information
|
||||
*/
|
||||
define("quest"){player,_ ->
|
||||
sendQuestsDebug(player)
|
||||
define("quest"){player,args ->
|
||||
if (args.size < 3) {
|
||||
val lookupP = if (args.size == 1) {
|
||||
player
|
||||
} else if (Repository.getPlayerByName(args[1]) != null) {
|
||||
Repository.getPlayerByName(args[1]) ?: return@define
|
||||
} else {
|
||||
reject(player, "ERROR: Username not found. Usage: ::quest <username>")
|
||||
return@define
|
||||
}
|
||||
sendQuestsDebug(player, lookupP)
|
||||
} else {
|
||||
reject(player, "Usage: ::quest || ::quest <username>")
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -71,20 +83,26 @@ class QuestCommandSet : CommandSet(Privilege.ADMIN){
|
||||
|
||||
/**
|
||||
* Sends the list of quests with debug information
|
||||
* @param player the player.
|
||||
* @param admin the player.
|
||||
*/
|
||||
private fun sendQuestsDebug(player: Player?) {
|
||||
player!!.interfaceManager.open(Component(275))
|
||||
private fun sendQuestsDebug(admin: Player?, lookupUser: Player?) {
|
||||
admin!!.interfaceManager.open(Component(275))
|
||||
for (i in 0..310) {
|
||||
player.packetDispatch.sendString("", 275, i)
|
||||
admin.packetDispatch.sendString("", 275, i)
|
||||
}
|
||||
var lineId = 11
|
||||
player.packetDispatch.sendString("<col=ecf0f1>" + "Quests Debug" + "</col>", 275, 2)
|
||||
admin.packetDispatch.sendString("<col=ecf0f1>${lookupUser!!.username}'s Quest Debug</col>", 275, 2)
|
||||
for (q in QuestRepository.getQuests().values) {
|
||||
// Add a space to beginning and end of string for the strikethrough
|
||||
player.packetDispatch.sendString("<col=ecf0f1>${q.name}</col>", 275, lineId++)
|
||||
player.packetDispatch.sendString("<col=ecf0f1>Index: </col><col=ff1f1f>${q.index}</col> | <col=ecf0f1>Stage:</col> <col=ff1f1f>${player.questRepository.getStage(q)}</col>", 275, lineId++)
|
||||
player.packetDispatch.sendString("<str> ", 275, lineId++)
|
||||
val stage = lookupUser.questRepository.getStage(q)
|
||||
val statusColor = when {
|
||||
stage >= 100 -> "80ff00"
|
||||
stage in 1..99 -> "ff8400"
|
||||
else -> "ff0000"
|
||||
}
|
||||
admin.packetDispatch.sendString("<col=ecf0f1>${q.name}</col>", 275, lineId++)
|
||||
admin.packetDispatch.sendString("<col=ecf0f1>Index: </col><col=ff1f1f><shad=2>${q.index}</shad></col> | <col=ecf0f1>Stage:</col> <col=$statusColor><shad=2>${lookupUser.questRepository.getStage(q)}</shad></col>", 275, lineId++)
|
||||
admin.packetDispatch.sendString("<str> ", 275, lineId++)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -232,7 +232,7 @@ public final class WildernessZone extends MapZone {
|
||||
if (p.getSkullManager().isWildernessDisabled()) {
|
||||
return;
|
||||
}
|
||||
p.getInterfaceManager().openWildernessOverlay(new Component(381));
|
||||
p.getInterfaceManager().openOverlay(new Component(381));
|
||||
p.getSkullManager().setLevel(getWilderness(p));
|
||||
p.getPacketDispatch().sendString("Level: " + p.getSkullManager().getLevel(), 381, 1);
|
||||
if(GameWorld.getSettings().getWild_pvp_enabled()) {
|
||||
|
||||
@@ -70,7 +70,7 @@ public final class PacketRepository {
|
||||
OUTGOING_PACKETS.put(CommunicationMessage.class, new CommunicationMessage()); //
|
||||
OUTGOING_PACKETS.put(UpdateClanChat.class, new UpdateClanChat()); //
|
||||
OUTGOING_PACKETS.put(UpdateGroundItemAmount.class, new UpdateGroundItemAmount()); //
|
||||
OUTGOING_PACKETS.put(WeightUpdate.class, new WeightUpdate()); //
|
||||
//OUTGOING_PACKETS.put(WeightUpdate.class, new WeightUpdate()); //
|
||||
OUTGOING_PACKETS.put(UpdateRandomFile.class, new UpdateRandomFile()); //
|
||||
OUTGOING_PACKETS.put(InstancedLocationUpdate.class, new InstancedLocationUpdate()); //
|
||||
OUTGOING_PACKETS.put(CSConfigPacket.class, new CSConfigPacket()); //
|
||||
|
||||
Reference in New Issue
Block a user