Merge remote-tracking branch 'runelite/master'
This commit is contained in:
@@ -80,7 +80,9 @@ enum Pet
|
||||
LITTLE_NIGHTMARE("Little nightmare", ItemID.LITTLE_NIGHTMARE),
|
||||
LIL_CREATOR("Lil' creator", ItemID.LIL_CREATOR),
|
||||
TINY_TEMPOR("Tiny tempor", ItemID.TINY_TEMPOR),
|
||||
NEXLING("Nexling", ItemID.NEXLING);
|
||||
NEXLING("Nexling", ItemID.NEXLING),
|
||||
ABYSSAL_PROTECTOR("Abyssal protector", ItemID.ABYSSAL_PROTECTOR),
|
||||
;
|
||||
|
||||
private final String name;
|
||||
private final Integer iconID;
|
||||
|
||||
@@ -116,7 +116,7 @@ public class EmoteClue extends ClueScroll implements TextClueScroll, LocationClu
|
||||
new EmoteClue("Panic on the pier where you catch the Fishing trawler. Have nothing equipped at all when you do.", "Fishing trawler", null, new WorldPoint(2676, 3169, 0), PANIC, emptySlot("Nothing at all", HEAD, CAPE, AMULET, WEAPON, BODY, SHIELD, LEGS, GLOVES, BOOTS, RING, AMMO)),
|
||||
new EmoteClue("Panic in the heart of the Haunted Woods. Beware of double agents! Have no items equipped when you do.", "Haunted Woods (ALQ)", null, new WorldPoint(3611, 3492, 0), DOUBLE_AGENT_108, PANIC, emptySlot("Nothing at all", HEAD, CAPE, AMULET, WEAPON, BODY, SHIELD, LEGS, GLOVES, BOOTS, RING, AMMO)),
|
||||
new EmoteClue("Show your anger towards the Statue of Saradomin in Ellamaria's garden. Beware of double agents! Equip a zamorak godsword.", "Varrock Castle", BY_THE_BEAR_CAGE_IN_VARROCK_PALACE_GARDENS, new WorldPoint(3230, 3478, 0), DOUBLE_AGENT_141, ANGRY, any("Zamorak godsword", item(ZAMORAK_GODSWORD), item(ZAMORAK_GODSWORD_OR))),
|
||||
new EmoteClue("Show your anger at the Wise old man. Beware of double agents! Equip an abyssal whip, a legend's cape and some spined chaps.", "Draynor Village", BEHIND_MISS_SCHISM_IN_DRAYNOR_VILLAGE, new WorldPoint(3088, 3254, 0), DOUBLE_AGENT_141, ANGRY, any("Abyssal whip", item(ABYSSAL_WHIP), item(VOLCANIC_ABYSSAL_WHIP), item(FROZEN_ABYSSAL_WHIP)), item(CAPE_OF_LEGENDS), item(SPINED_CHAPS)),
|
||||
new EmoteClue("Show your anger at the Wise old man. Beware of double agents! Equip an abyssal whip, a legend's cape and some spined chaps.", "Draynor Village", BEHIND_MISS_SCHISM_IN_DRAYNOR_VILLAGE, new WorldPoint(3088, 3254, 0), DOUBLE_AGENT_141, ANGRY, any("Abyssal whip", item(ABYSSAL_WHIP), item(VOLCANIC_ABYSSAL_WHIP), item(FROZEN_ABYSSAL_WHIP), item(ABYSSAL_WHIP_OR)), item(CAPE_OF_LEGENDS), item(SPINED_CHAPS)),
|
||||
new EmoteClue("Beckon by a collection of crystalline maple trees. Beware of double agents! Equip Bryophyta's staff and a nature tiara.", "North of Prifddinas", CRYSTALLINE_MAPLE_TREES, new WorldPoint(2211, 3427, 0), DOUBLE_AGENT_141, BECKON, range("Bryophyta's staff", BRYOPHYTAS_STAFF_UNCHARGED, BRYOPHYTAS_STAFF), item(NATURE_TIARA)),
|
||||
new EmoteClue("Beckon in the Digsite, near the eastern winch. Bow before you talk to me. Equip a green gnome hat, snakeskin boots and an iron pickaxe.", "Digsite", DIGSITE, new WorldPoint(3370, 3425, 0), BECKON, BOW, item(GREEN_HAT), item(SNAKESKIN_BOOTS), item(IRON_PICKAXE)),
|
||||
new EmoteClue("Beckon in Tai Bwo Wannai. Clap before you talk to me. Equip green dragonhide chaps, a ring of dueling and a mithril medium helmet.", "Tai Bwo Wannai", SOUTH_OF_THE_SHRINE_IN_TAI_BWO_WANNAI_VILLAGE, new WorldPoint(2803, 3073, 0), BECKON, CLAP, item(GREEN_DHIDE_CHAPS), any("Ring of dueling", item(RING_OF_DUELING1), item(RING_OF_DUELING2), item(RING_OF_DUELING3), item(RING_OF_DUELING4), item(RING_OF_DUELING5), item(RING_OF_DUELING6), item(RING_OF_DUELING7), item(RING_OF_DUELING8)), item(MITHRIL_MED_HELM)),
|
||||
|
||||
@@ -203,7 +203,7 @@ public class SkillChallengeClue extends ClueScroll implements NpcClueScroll, Nam
|
||||
new SkillChallengeClue("Activate the Chivalry prayer."),
|
||||
new SkillChallengeClue("Hand in a Tier 2 or higher set of Shayzien supply armour. (Requires 11 lovakite bars)", "take the lovakengj armourers a boxed set of shayzien supply armour at tier 2 or above.", any("Shayzien Supply Set (Tier 2 or higher)", item(ItemID.SHAYZIEN_SUPPLY_SET_2), item(ItemID.SHAYZIEN_SUPPLY_SET_3), item(ItemID.SHAYZIEN_SUPPLY_SET_4), item(ItemID.SHAYZIEN_SUPPLY_SET_5))),
|
||||
// Master Sherlock Tasks
|
||||
new SkillChallengeClue("Equip an abyssal whip in front of the abyssal demons of the Slayer Tower.", true, any("Abyssal Whip", item(ItemID.ABYSSAL_WHIP), item(ItemID.FROZEN_ABYSSAL_WHIP), item(ItemID.VOLCANIC_ABYSSAL_WHIP))),
|
||||
new SkillChallengeClue("Equip an abyssal whip in front of the abyssal demons of the Slayer Tower.", true, any("Abyssal Whip", item(ItemID.ABYSSAL_WHIP), item(ItemID.FROZEN_ABYSSAL_WHIP), item(ItemID.VOLCANIC_ABYSSAL_WHIP), item(ItemID.ABYSSAL_WHIP_OR))),
|
||||
new SkillChallengeClue("Smith a runite med helm.", ANY_HAMMER, item(ItemID.RUNITE_BAR)),
|
||||
new SkillChallengeClue("Teleport to a spirit tree you planted yourself."),
|
||||
new SkillChallengeClue("Create a Barrows teleport tablet.", item(ItemID.DARK_ESSENCE_BLOCK), xOfItem(ItemID.BLOOD_RUNE, 1), xOfItem(ItemID.LAW_RUNE, 2), xOfItem(ItemID.SOUL_RUNE, 2)),
|
||||
|
||||
@@ -355,6 +355,8 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
|
||||
System.setProperty("jogl.debug", "true");
|
||||
}
|
||||
|
||||
System.setProperty("jogamp.gluegen.TestTempDirExec", "false");
|
||||
|
||||
GLProfile.initSingleton();
|
||||
|
||||
invokeOnMainThread(() ->
|
||||
|
||||
@@ -46,8 +46,7 @@ public interface GroundItemsConfig extends Config
|
||||
@ConfigSection(
|
||||
name = "Item Lists",
|
||||
description = "The highlighted and hidden item lists",
|
||||
position = 0,
|
||||
closedByDefault = true
|
||||
position = 0
|
||||
)
|
||||
String itemLists = "itemLists";
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,431 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2019 Spudjb <https://github.com/spudjb>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.plugins.questlist;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Comparator;
|
||||
import java.util.EnumMap;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import javax.inject.Inject;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.ScriptID;
|
||||
import net.runelite.api.SoundEffectID;
|
||||
import net.runelite.api.SpriteID;
|
||||
import net.runelite.api.VarClientInt;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.ScriptPostFired;
|
||||
import net.runelite.api.events.VarClientIntChanged;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.api.widgets.JavaScriptCallback;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.widgets.WidgetPositionMode;
|
||||
import net.runelite.api.widgets.WidgetType;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.game.chatbox.ChatboxPanelManager;
|
||||
import net.runelite.client.game.chatbox.ChatboxTextInput;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.util.Text;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Quest List",
|
||||
description = "Adds searching and filtering to the quest list"
|
||||
)
|
||||
public class QuestListPlugin extends Plugin
|
||||
{
|
||||
private static final int ENTRY_PADDING = 8;
|
||||
private static final List<String> QUEST_HEADERS = ImmutableList.of("Free Quests", "Members' Quests", "Miniquests");
|
||||
|
||||
private static final String MENU_OPEN = "Open";
|
||||
private static final String MENU_CLOSE = "Close";
|
||||
|
||||
private static final String MENU_TOGGLE = "Toggle";
|
||||
|
||||
private static final String MENU_SEARCH = "Search";
|
||||
private static final String MENU_SHOW = "Show";
|
||||
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
private ChatboxPanelManager chatboxPanelManager;
|
||||
|
||||
@Inject
|
||||
private ClientThread clientThread;
|
||||
|
||||
private ChatboxTextInput searchInput;
|
||||
private Widget questSearchButton;
|
||||
private Widget questHideButton;
|
||||
|
||||
private EnumMap<QuestContainer, Collection<QuestWidget>> questSet;
|
||||
|
||||
private QuestState currentFilterState;
|
||||
|
||||
@Override
|
||||
protected void startUp()
|
||||
{
|
||||
currentFilterState = QuestState.ALL;
|
||||
clientThread.invoke(this::addQuestButtons);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown()
|
||||
{
|
||||
currentFilterState = null;
|
||||
Widget header = client.getWidget(WidgetInfo.QUESTLIST_BOX);
|
||||
if (header != null)
|
||||
{
|
||||
header.deleteAllChildren();
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged e)
|
||||
{
|
||||
if (e.getGameState() == GameState.LOGGING_IN)
|
||||
{
|
||||
currentFilterState = QuestState.ALL;
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onScriptPostFired(ScriptPostFired event)
|
||||
{
|
||||
if (event.getScriptId() != ScriptID.QUESTLIST_PROGRESS_LIST_SHOW)
|
||||
{
|
||||
return;
|
||||
}
|
||||
addQuestButtons();
|
||||
}
|
||||
|
||||
private void addQuestButtons()
|
||||
{
|
||||
Widget header = client.getWidget(WidgetInfo.QUESTLIST_BOX);
|
||||
if (header != null)
|
||||
{
|
||||
header.deleteAllChildren();
|
||||
|
||||
questSearchButton = header.createChild(-1, WidgetType.GRAPHIC);
|
||||
questSearchButton.setSpriteId(SpriteID.GE_SEARCH);
|
||||
questSearchButton.setOriginalWidth(18);
|
||||
questSearchButton.setOriginalHeight(17);
|
||||
questSearchButton.setXPositionMode(WidgetPositionMode.ABSOLUTE_RIGHT);
|
||||
questSearchButton.setOriginalX(5);
|
||||
questSearchButton.setOriginalY(0);
|
||||
questSearchButton.setHasListener(true);
|
||||
questSearchButton.setAction(1, MENU_OPEN);
|
||||
questSearchButton.setOnOpListener((JavaScriptCallback) e -> openSearch());
|
||||
questSearchButton.setName(MENU_SEARCH);
|
||||
questSearchButton.revalidate();
|
||||
|
||||
questHideButton = header.createChild(-1, WidgetType.GRAPHIC);
|
||||
redrawHideButton();
|
||||
|
||||
questHideButton.setOriginalWidth(13);
|
||||
questHideButton.setOriginalHeight(13);
|
||||
questHideButton.setXPositionMode(WidgetPositionMode.ABSOLUTE_RIGHT);
|
||||
questHideButton.setOriginalX(24);
|
||||
questHideButton.setOriginalY(2);
|
||||
questHideButton.setHasListener(true);
|
||||
questHideButton.setOnOpListener((JavaScriptCallback) e -> toggleHidden());
|
||||
questHideButton.setAction(1, MENU_TOGGLE);
|
||||
questHideButton.revalidate();
|
||||
|
||||
questSet = new EnumMap<>(QuestContainer.class);
|
||||
|
||||
updateFilter();
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onVarbitChanged(VarbitChanged varbitChanged)
|
||||
{
|
||||
if (isChatboxOpen() && !isOnQuestTab())
|
||||
{
|
||||
chatboxPanelManager.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onVarClientIntChanged(VarClientIntChanged varClientIntChanged)
|
||||
{
|
||||
if (varClientIntChanged.getIndex() == VarClientInt.INVENTORY_TAB.getIndex())
|
||||
{
|
||||
if (isChatboxOpen() && !isOnQuestTab())
|
||||
{
|
||||
chatboxPanelManager.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void toggleHidden()
|
||||
{
|
||||
QuestState[] questStates = QuestState.values();
|
||||
int nextState = (currentFilterState.ordinal() + 1) % questStates.length;
|
||||
currentFilterState = questStates[nextState];
|
||||
|
||||
redrawHideButton();
|
||||
|
||||
updateFilter();
|
||||
client.playSoundEffect(SoundEffectID.UI_BOOP);
|
||||
}
|
||||
|
||||
private void redrawHideButton()
|
||||
{
|
||||
questHideButton.setSpriteId(currentFilterState.getSpriteId());
|
||||
questHideButton.setName(MENU_SHOW + " " + currentFilterState.getName());
|
||||
}
|
||||
|
||||
private boolean isOnQuestTab()
|
||||
{
|
||||
return client.getVar(Varbits.QUEST_TAB) == 0 && client.getVar(VarClientInt.INVENTORY_TAB) == 2;
|
||||
}
|
||||
|
||||
private boolean isChatboxOpen()
|
||||
{
|
||||
return searchInput != null && chatboxPanelManager.getCurrentInput() == searchInput;
|
||||
}
|
||||
|
||||
private void closeSearch()
|
||||
{
|
||||
updateFilter("");
|
||||
chatboxPanelManager.close();
|
||||
client.playSoundEffect(SoundEffectID.UI_BOOP);
|
||||
}
|
||||
|
||||
private void openSearch()
|
||||
{
|
||||
updateFilter("");
|
||||
client.playSoundEffect(SoundEffectID.UI_BOOP);
|
||||
questSearchButton.setAction(1, MENU_CLOSE);
|
||||
questSearchButton.setOnOpListener((JavaScriptCallback) e -> closeSearch());
|
||||
searchInput = chatboxPanelManager.openTextInput("Search quest list")
|
||||
.onChanged(s -> clientThread.invokeLater(() -> updateFilter(s)))
|
||||
.onDone(s -> false)
|
||||
.onClose(() ->
|
||||
{
|
||||
clientThread.invokeLater(() -> updateFilter(""));
|
||||
questSearchButton.setOnOpListener((JavaScriptCallback) e -> openSearch());
|
||||
questSearchButton.setAction(1, MENU_OPEN);
|
||||
})
|
||||
.build();
|
||||
}
|
||||
|
||||
private void updateFilter()
|
||||
{
|
||||
String filter = "";
|
||||
if (isChatboxOpen())
|
||||
{
|
||||
filter = searchInput.getValue();
|
||||
}
|
||||
|
||||
updateFilter(filter);
|
||||
}
|
||||
|
||||
private void updateFilter(String filter)
|
||||
{
|
||||
filter = filter.toLowerCase();
|
||||
final Widget container = client.getWidget(WidgetInfo.QUESTLIST_CONTAINER);
|
||||
|
||||
final Widget freeList = client.getWidget(QuestContainer.FREE_QUESTS.widgetInfo);
|
||||
final Widget memberList = client.getWidget(QuestContainer.MEMBER_QUESTS.widgetInfo);
|
||||
final Widget miniList = client.getWidget(QuestContainer.MINI_QUESTS.widgetInfo);
|
||||
|
||||
if (container == null || freeList == null || memberList == null || miniList == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
updateList(QuestContainer.FREE_QUESTS, filter);
|
||||
updateList(QuestContainer.MEMBER_QUESTS, filter);
|
||||
updateList(QuestContainer.MINI_QUESTS, filter);
|
||||
|
||||
memberList.setOriginalY(freeList.getOriginalY() + freeList.getOriginalHeight() + ENTRY_PADDING);
|
||||
miniList.setOriginalY(memberList.getOriginalY() + memberList.getOriginalHeight() + ENTRY_PADDING);
|
||||
|
||||
// originalHeight is changed within updateList so revalidate all lists
|
||||
freeList.revalidate();
|
||||
memberList.revalidate();
|
||||
miniList.revalidate();
|
||||
|
||||
int y = miniList.getRelativeY() + miniList.getHeight() + 10;
|
||||
|
||||
int newHeight;
|
||||
if (container.getScrollHeight() > 0)
|
||||
{
|
||||
newHeight = (container.getScrollY() * y) / container.getScrollHeight();
|
||||
}
|
||||
else
|
||||
{
|
||||
newHeight = 0;
|
||||
}
|
||||
|
||||
container.setScrollHeight(y);
|
||||
container.revalidateScroll();
|
||||
|
||||
clientThread.invokeLater(() ->
|
||||
client.runScript(
|
||||
ScriptID.UPDATE_SCROLLBAR,
|
||||
WidgetInfo.QUESTLIST_SCROLLBAR.getId(),
|
||||
WidgetInfo.QUESTLIST_CONTAINER.getId(),
|
||||
newHeight
|
||||
));
|
||||
}
|
||||
|
||||
private void updateList(QuestContainer questContainer, String filter)
|
||||
{
|
||||
Widget list = client.getWidget(questContainer.widgetInfo);
|
||||
if (list == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Collection<QuestWidget> quests = questSet.get(questContainer);
|
||||
|
||||
if (quests != null)
|
||||
{
|
||||
// Check to make sure the list hasn't been rebuild since we were last her
|
||||
// Do this by making sure the list's dynamic children are the same as when we last saw them
|
||||
if (quests.stream().noneMatch(w ->
|
||||
{
|
||||
Widget codeWidget = w.getQuest();
|
||||
if (codeWidget == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return list.getChild(codeWidget.getIndex()) == codeWidget;
|
||||
}))
|
||||
{
|
||||
quests = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (quests == null)
|
||||
{
|
||||
// Find all of the widgets that we care about, sorting by their Y value
|
||||
quests = Arrays.stream(list.getDynamicChildren())
|
||||
.sorted(Comparator.comparingInt(Widget::getRelativeY))
|
||||
.filter(w -> !QUEST_HEADERS.contains(w.getText()))
|
||||
.map(w -> new QuestWidget(w, Text.removeTags(w.getText()).toLowerCase()))
|
||||
.collect(Collectors.toList());
|
||||
questSet.put(questContainer, quests);
|
||||
}
|
||||
|
||||
// offset because of header
|
||||
int y = 20;
|
||||
for (QuestWidget questInfo : quests)
|
||||
{
|
||||
Widget quest = questInfo.getQuest();
|
||||
QuestState questState = QuestState.getByColor(quest.getTextColor());
|
||||
|
||||
boolean hidden;
|
||||
if (!filter.isEmpty())
|
||||
{
|
||||
// If searching, show result regardless of filtered state
|
||||
hidden = !questInfo.getTitle().contains(filter);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Otherwise hide if it doesn't match the filter state
|
||||
if (currentFilterState == QuestState.NOT_COMPLETED)
|
||||
{
|
||||
hidden = questState == QuestState.COMPLETE;
|
||||
}
|
||||
else
|
||||
{
|
||||
hidden = currentFilterState != QuestState.ALL && questState != currentFilterState;
|
||||
}
|
||||
}
|
||||
|
||||
quest.setHidden(hidden);
|
||||
quest.setOriginalY(y);
|
||||
quest.revalidate();
|
||||
|
||||
if (!hidden)
|
||||
{
|
||||
y += quest.getHeight();
|
||||
}
|
||||
}
|
||||
|
||||
list.setOriginalHeight(y);
|
||||
}
|
||||
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
private enum QuestContainer
|
||||
{
|
||||
FREE_QUESTS(WidgetInfo.QUESTLIST_FREE_CONTAINER),
|
||||
MEMBER_QUESTS(WidgetInfo.QUESTLIST_MEMBERS_CONTAINER),
|
||||
MINI_QUESTS(WidgetInfo.QUESTLIST_MINIQUEST_CONTAINER);
|
||||
|
||||
private final WidgetInfo widgetInfo;
|
||||
}
|
||||
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
private enum QuestState
|
||||
{
|
||||
NOT_STARTED(0xff0000, "Not started", SpriteID.MINIMAP_ORB_HITPOINTS),
|
||||
IN_PROGRESS(0xffff00, "In progress", SpriteID.MINIMAP_ORB_HITPOINTS_DISEASE),
|
||||
COMPLETE(0xdc10d, "Completed", SpriteID.MINIMAP_ORB_HITPOINTS_POISON),
|
||||
ALL(0, "All", SpriteID.MINIMAP_ORB_PRAYER),
|
||||
NOT_COMPLETED(0, "Not Completed", SpriteID.MINIMAP_ORB_RUN);
|
||||
|
||||
private final int color;
|
||||
private final String name;
|
||||
private final int spriteId;
|
||||
|
||||
static QuestState getByColor(int color)
|
||||
{
|
||||
for (QuestState value : values())
|
||||
{
|
||||
if (value.getColor() == color)
|
||||
{
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
private static class QuestWidget
|
||||
{
|
||||
private Widget quest;
|
||||
private String title;
|
||||
}
|
||||
}
|
||||
@@ -253,16 +253,10 @@
|
||||
282,
|
||||
283
|
||||
],
|
||||
"notes": [
|
||||
"research notes": [
|
||||
291,
|
||||
20770,
|
||||
20771,
|
||||
20772,
|
||||
21056,
|
||||
21057,
|
||||
21058,
|
||||
26276,
|
||||
26596
|
||||
10492,
|
||||
25824
|
||||
],
|
||||
"glarials urn": [
|
||||
296,
|
||||
@@ -3282,7 +3276,25 @@
|
||||
3682,
|
||||
3683,
|
||||
3684,
|
||||
3685
|
||||
3685,
|
||||
26656,
|
||||
26657,
|
||||
26658,
|
||||
26659,
|
||||
26660,
|
||||
26661,
|
||||
26662,
|
||||
26663,
|
||||
26664,
|
||||
26665,
|
||||
26666,
|
||||
26667,
|
||||
26668,
|
||||
26669,
|
||||
26670,
|
||||
26671,
|
||||
26672,
|
||||
26673
|
||||
],
|
||||
"enchanted lyre": [
|
||||
3690,
|
||||
@@ -3561,7 +3573,9 @@
|
||||
12017,
|
||||
12018,
|
||||
25250,
|
||||
25278
|
||||
25278,
|
||||
26763,
|
||||
26782
|
||||
],
|
||||
"sled": [
|
||||
4083,
|
||||
@@ -4959,23 +4973,27 @@
|
||||
6731,
|
||||
11770,
|
||||
23624,
|
||||
25258
|
||||
25258,
|
||||
26767
|
||||
],
|
||||
"archers ring": [
|
||||
6733,
|
||||
11771,
|
||||
25260
|
||||
25260,
|
||||
26768
|
||||
],
|
||||
"warrior ring": [
|
||||
6735,
|
||||
11772,
|
||||
25262
|
||||
25262,
|
||||
26769
|
||||
],
|
||||
"berserker ring": [
|
||||
6737,
|
||||
11773,
|
||||
23595,
|
||||
25264
|
||||
25264,
|
||||
26770
|
||||
],
|
||||
"dragon axe": [
|
||||
6739,
|
||||
@@ -6313,7 +6331,18 @@
|
||||
25273,
|
||||
25274,
|
||||
25275,
|
||||
25276
|
||||
25276,
|
||||
26771,
|
||||
26772,
|
||||
26773,
|
||||
26774,
|
||||
26775,
|
||||
26776,
|
||||
26777,
|
||||
26778,
|
||||
26779,
|
||||
26780,
|
||||
26781
|
||||
],
|
||||
"bandana eyepatch": [
|
||||
8924,
|
||||
@@ -6791,10 +6820,6 @@
|
||||
10340,
|
||||
20577
|
||||
],
|
||||
"research notes": [
|
||||
10492,
|
||||
25824
|
||||
],
|
||||
"avas accumulator": [
|
||||
10499,
|
||||
23609
|
||||
@@ -7466,9 +7491,30 @@
|
||||
11820,
|
||||
11822
|
||||
],
|
||||
"armadyl helmet": [
|
||||
11826,
|
||||
26714
|
||||
],
|
||||
"armadyl chestplate": [
|
||||
11828,
|
||||
26715
|
||||
],
|
||||
"armadyl chainskirt": [
|
||||
11830,
|
||||
26716
|
||||
],
|
||||
"bandos chestplate": [
|
||||
11832,
|
||||
26718
|
||||
],
|
||||
"bandos tassets": [
|
||||
11834,
|
||||
23646
|
||||
23646,
|
||||
26719
|
||||
],
|
||||
"bandos boots": [
|
||||
11836,
|
||||
26720
|
||||
],
|
||||
"dragon boots": [
|
||||
11840,
|
||||
@@ -7643,7 +7689,18 @@
|
||||
25908,
|
||||
25910,
|
||||
25912,
|
||||
25914
|
||||
25914,
|
||||
26674,
|
||||
26675,
|
||||
26676,
|
||||
26677,
|
||||
26678,
|
||||
26679,
|
||||
26680,
|
||||
26681,
|
||||
26682,
|
||||
26683,
|
||||
26684
|
||||
],
|
||||
"slayer ring": [
|
||||
11866,
|
||||
@@ -7735,17 +7792,20 @@
|
||||
"ring of the gods": [
|
||||
12601,
|
||||
13202,
|
||||
25252
|
||||
25252,
|
||||
26764
|
||||
],
|
||||
"tyrannical ring": [
|
||||
12603,
|
||||
12691,
|
||||
25254
|
||||
25254,
|
||||
26765
|
||||
],
|
||||
"treasonous ring": [
|
||||
12605,
|
||||
12692,
|
||||
25256
|
||||
25256,
|
||||
26766
|
||||
],
|
||||
"book of war": [
|
||||
12608,
|
||||
@@ -8438,7 +8498,8 @@
|
||||
],
|
||||
"dragon warhammer": [
|
||||
13576,
|
||||
20785
|
||||
20785,
|
||||
26710
|
||||
],
|
||||
"seed box": [
|
||||
13639,
|
||||
@@ -8467,7 +8528,8 @@
|
||||
],
|
||||
"dragon claws": [
|
||||
13652,
|
||||
20784
|
||||
20784,
|
||||
26708
|
||||
],
|
||||
"bag of gems": [
|
||||
19473,
|
||||
@@ -8476,7 +8538,8 @@
|
||||
],
|
||||
"heavy ballista": [
|
||||
19481,
|
||||
23630
|
||||
23630,
|
||||
26712
|
||||
],
|
||||
"dragon javelin": [
|
||||
19484,
|
||||
@@ -8516,7 +8579,9 @@
|
||||
20655,
|
||||
20657,
|
||||
25246,
|
||||
25248
|
||||
25248,
|
||||
26761,
|
||||
26762
|
||||
],
|
||||
"amulet of torture": [
|
||||
19553,
|
||||
@@ -8655,6 +8720,16 @@
|
||||
20769,
|
||||
21055
|
||||
],
|
||||
"notes": [
|
||||
20770,
|
||||
20771,
|
||||
20772,
|
||||
21056,
|
||||
21057,
|
||||
21058,
|
||||
26276,
|
||||
26596
|
||||
],
|
||||
"killers knife": [
|
||||
20781,
|
||||
21059
|
||||
@@ -8911,7 +8986,8 @@
|
||||
"granite ring": [
|
||||
21739,
|
||||
21752,
|
||||
25193
|
||||
25193,
|
||||
26685
|
||||
],
|
||||
"royal accord of twill": [
|
||||
21758,
|
||||
@@ -9212,6 +9288,10 @@
|
||||
22500,
|
||||
22502
|
||||
],
|
||||
"escape crystal": [
|
||||
22517,
|
||||
25961
|
||||
],
|
||||
"coin pouch": [
|
||||
22521,
|
||||
22522,
|
||||
@@ -10397,5 +10477,153 @@
|
||||
26653,
|
||||
26654,
|
||||
26655
|
||||
],
|
||||
"maomas med helm": [
|
||||
26686,
|
||||
26743,
|
||||
26744
|
||||
],
|
||||
"maomas helm": [
|
||||
26687,
|
||||
26745,
|
||||
26746
|
||||
],
|
||||
"maomas great helm": [
|
||||
26688,
|
||||
26747,
|
||||
26748
|
||||
],
|
||||
"calamity chest": [
|
||||
26689,
|
||||
26749,
|
||||
26750
|
||||
],
|
||||
"superior calamity chest": [
|
||||
26690,
|
||||
26751,
|
||||
26752
|
||||
],
|
||||
"elite calamity chest": [
|
||||
26691,
|
||||
26753,
|
||||
26754
|
||||
],
|
||||
"calamity breeches": [
|
||||
26692,
|
||||
26755,
|
||||
26756
|
||||
],
|
||||
"superior calamity breeches": [
|
||||
26693,
|
||||
26757,
|
||||
26758
|
||||
],
|
||||
"elite calamity breeches": [
|
||||
26694,
|
||||
26759,
|
||||
26760
|
||||
],
|
||||
"centurion cuirass": [
|
||||
26695,
|
||||
26721,
|
||||
26722
|
||||
],
|
||||
"wristbands of the arena": [
|
||||
26696,
|
||||
26723,
|
||||
26724,
|
||||
26725,
|
||||
26726,
|
||||
26727,
|
||||
26728,
|
||||
26729,
|
||||
26730
|
||||
],
|
||||
"koriffs headband": [
|
||||
26698,
|
||||
26737,
|
||||
26738
|
||||
],
|
||||
"koriffs cowl": [
|
||||
26699,
|
||||
26739,
|
||||
26740
|
||||
],
|
||||
"koriffs coif": [
|
||||
26700,
|
||||
26741,
|
||||
26742
|
||||
],
|
||||
"saikas hood": [
|
||||
26701,
|
||||
26731,
|
||||
26732
|
||||
],
|
||||
"saikas veil": [
|
||||
26702,
|
||||
26733,
|
||||
26734
|
||||
],
|
||||
"saikas shroud": [
|
||||
26703,
|
||||
26735,
|
||||
26736
|
||||
],
|
||||
"colossal pouch": [
|
||||
26784,
|
||||
26786,
|
||||
26906
|
||||
],
|
||||
"ring of the elements": [
|
||||
26815,
|
||||
26818
|
||||
],
|
||||
"abyssal lantern": [
|
||||
26822,
|
||||
26824,
|
||||
26826,
|
||||
26828,
|
||||
26830,
|
||||
26832,
|
||||
26834,
|
||||
26836,
|
||||
26838,
|
||||
26840,
|
||||
26842,
|
||||
26844,
|
||||
26846,
|
||||
26848
|
||||
],
|
||||
"hat of the eye": [
|
||||
26850,
|
||||
26858,
|
||||
26864,
|
||||
26870
|
||||
],
|
||||
"robe top of the eye": [
|
||||
26852,
|
||||
26860,
|
||||
26866,
|
||||
26872
|
||||
],
|
||||
"robe bottoms of the eye": [
|
||||
26854,
|
||||
26862,
|
||||
26868,
|
||||
26874
|
||||
],
|
||||
"portal talisman": [
|
||||
26887,
|
||||
26888,
|
||||
26889,
|
||||
26890,
|
||||
26891,
|
||||
26892,
|
||||
26893,
|
||||
26894,
|
||||
26895,
|
||||
26896,
|
||||
26897,
|
||||
26898
|
||||
]
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
95E7960E289ECA35DEADD35BC5A34AEBAA1C9F367AC42A71A5F3EFCCA0600D10
|
||||
9DD950503D89B0A449488A4642B4810F076835EAEDB21AAB69544B359A35CD8A
|
||||
@@ -6,7 +6,7 @@
|
||||
get_varbit 4394
|
||||
iconst 1
|
||||
if_icmpeq LABEL4
|
||||
jump LABEL23
|
||||
jump LABEL24
|
||||
LABEL4:
|
||||
iload 0
|
||||
iconst 1
|
||||
@@ -30,41 +30,43 @@ LABEL16:
|
||||
join_string 5
|
||||
mes
|
||||
LABEL23:
|
||||
return
|
||||
LABEL24:
|
||||
invoke 5262
|
||||
iconst 0
|
||||
if_icmpeq LABEL27
|
||||
jump LABEL33
|
||||
LABEL27:
|
||||
if_icmpeq LABEL28
|
||||
jump LABEL34
|
||||
LABEL28:
|
||||
iload 3
|
||||
iconst 4
|
||||
if_icmpeq LABEL31
|
||||
jump LABEL33
|
||||
LABEL31:
|
||||
if_icmpeq LABEL32
|
||||
jump LABEL34
|
||||
LABEL32:
|
||||
get_varc_int 945
|
||||
istore 3
|
||||
LABEL33:
|
||||
LABEL34:
|
||||
iload 3
|
||||
iconst -1
|
||||
if_icmpne LABEL37
|
||||
jump LABEL70
|
||||
LABEL37:
|
||||
if_icmpne LABEL38
|
||||
jump LABEL71
|
||||
LABEL38:
|
||||
iload 3
|
||||
iconst 4
|
||||
if_icmple LABEL41
|
||||
jump LABEL70
|
||||
LABEL41:
|
||||
if_icmple LABEL42
|
||||
jump LABEL71
|
||||
LABEL42:
|
||||
iload 3
|
||||
get_varc_int 945
|
||||
if_icmpne LABEL45
|
||||
jump LABEL70
|
||||
LABEL45:
|
||||
if_icmpne LABEL46
|
||||
jump LABEL71
|
||||
LABEL46:
|
||||
iload 3
|
||||
set_varc_int 945
|
||||
iload 3
|
||||
iconst 0
|
||||
if_icmpne LABEL51
|
||||
jump LABEL61
|
||||
LABEL51:
|
||||
if_icmpne LABEL52
|
||||
jump LABEL62
|
||||
LABEL52:
|
||||
sconst "Your chatbox mode is now set to "
|
||||
iconst 105
|
||||
iconst 115
|
||||
@@ -74,8 +76,8 @@ LABEL51:
|
||||
sconst " chat, to reset your mode type /@p"
|
||||
join_string 3
|
||||
mes
|
||||
jump LABEL70
|
||||
LABEL61:
|
||||
jump LABEL71
|
||||
LABEL62:
|
||||
sconst "Your chatbox mode has been reset to "
|
||||
iconst 105
|
||||
iconst 115
|
||||
@@ -85,28 +87,28 @@ LABEL61:
|
||||
sconst " chat."
|
||||
join_string 3
|
||||
mes
|
||||
LABEL70:
|
||||
LABEL71:
|
||||
iload 2
|
||||
iconst 1
|
||||
if_icmpeq LABEL74
|
||||
jump LABEL112
|
||||
LABEL74:
|
||||
if_icmpeq LABEL75
|
||||
jump LABEL113
|
||||
LABEL75:
|
||||
get_varc_int 945
|
||||
switch
|
||||
1: LABEL77
|
||||
2: LABEL98
|
||||
3: LABEL103
|
||||
4: LABEL108
|
||||
jump LABEL112
|
||||
LABEL77:
|
||||
1: LABEL78
|
||||
2: LABEL99
|
||||
3: LABEL104
|
||||
4: LABEL109
|
||||
jump LABEL113
|
||||
LABEL78:
|
||||
iconst 2
|
||||
istore 0
|
||||
sload 0
|
||||
string_length
|
||||
iconst 0
|
||||
if_icmpgt LABEL84
|
||||
jump LABEL97
|
||||
LABEL84:
|
||||
if_icmpgt LABEL85
|
||||
jump LABEL98
|
||||
LABEL85:
|
||||
sload 0
|
||||
iconst 0
|
||||
iconst 1
|
||||
@@ -114,33 +116,33 @@ LABEL84:
|
||||
sconst "/"
|
||||
compare
|
||||
iconst 0 ;
|
||||
if_icmpne LABEL93
|
||||
jump LABEL97
|
||||
LABEL93:
|
||||
if_icmpne LABEL94
|
||||
jump LABEL98
|
||||
LABEL94:
|
||||
sconst "/"
|
||||
sload 0
|
||||
append
|
||||
sstore 0
|
||||
LABEL97:
|
||||
jump LABEL112
|
||||
LABEL98:
|
||||
jump LABEL113
|
||||
LABEL99:
|
||||
iconst 3
|
||||
iconst 0
|
||||
istore 1
|
||||
istore 0
|
||||
jump LABEL112
|
||||
LABEL103:
|
||||
jump LABEL113
|
||||
LABEL104:
|
||||
iconst 4
|
||||
iconst 0
|
||||
istore 1
|
||||
istore 0
|
||||
jump LABEL112
|
||||
LABEL108:
|
||||
jump LABEL113
|
||||
LABEL109:
|
||||
iconst 3
|
||||
iconst 1
|
||||
istore 1
|
||||
istore 0
|
||||
LABEL112:
|
||||
LABEL113:
|
||||
sload 0 ; load input
|
||||
iload 0 ; load chat type
|
||||
iload 1 ; load clan target
|
||||
@@ -157,31 +159,31 @@ CONTINUE:
|
||||
sstore 1
|
||||
iload 0
|
||||
iconst 2
|
||||
if_icmpeq LABEL124
|
||||
if_icmpeq LABEL125
|
||||
iload 0
|
||||
iconst 3
|
||||
if_icmpeq LABEL124
|
||||
if_icmpeq LABEL125
|
||||
iload 0
|
||||
iconst 4
|
||||
if_icmpeq LABEL124
|
||||
jump LABEL164
|
||||
LABEL124:
|
||||
if_icmpeq LABEL125
|
||||
jump LABEL175
|
||||
LABEL125:
|
||||
sload 0
|
||||
invoke 5501
|
||||
iconst 1
|
||||
if_icmpeq LABEL129
|
||||
jump LABEL133
|
||||
LABEL129:
|
||||
if_icmpeq LABEL130
|
||||
jump LABEL134
|
||||
LABEL130:
|
||||
sload 0
|
||||
invoke 632
|
||||
sstore 0
|
||||
sstore 1
|
||||
LABEL133:
|
||||
LABEL134:
|
||||
iload 1
|
||||
iconst 1
|
||||
if_icmpeq LABEL137
|
||||
jump LABEL153
|
||||
LABEL137:
|
||||
if_icmpeq LABEL138
|
||||
jump LABEL164
|
||||
LABEL138:
|
||||
sload 0
|
||||
iconst 0
|
||||
iconst 1
|
||||
@@ -198,20 +200,17 @@ LABEL137:
|
||||
sload 0
|
||||
append
|
||||
sstore 0
|
||||
LABEL153:
|
||||
sload 0
|
||||
string_length
|
||||
iconst 0
|
||||
if_icmple LABEL158
|
||||
jump LABEL159
|
||||
LABEL158:
|
||||
return
|
||||
iconst 80
|
||||
if_icmpgt LABEL159
|
||||
jump LABEL164
|
||||
LABEL159:
|
||||
sload 0
|
||||
iload 0
|
||||
iload 1
|
||||
chat_sendclan
|
||||
jump LABEL173
|
||||
iconst 0
|
||||
iconst 80
|
||||
substring
|
||||
sstore 0
|
||||
LABEL164:
|
||||
sload 0
|
||||
string_length
|
||||
@@ -221,10 +220,24 @@ LABEL164:
|
||||
LABEL169:
|
||||
return
|
||||
LABEL170:
|
||||
sload 0
|
||||
iload 0
|
||||
iload 1
|
||||
chat_sendclan
|
||||
jump LABEL184
|
||||
LABEL175:
|
||||
sload 0
|
||||
string_length
|
||||
iconst 0
|
||||
if_icmple LABEL180
|
||||
jump LABEL181
|
||||
LABEL180:
|
||||
return
|
||||
LABEL181:
|
||||
sload 0
|
||||
iload 0
|
||||
chat_sendpublic
|
||||
LABEL173:
|
||||
LABEL184:
|
||||
clientclock
|
||||
set_varc_int 61
|
||||
return
|
||||
|
||||
@@ -1 +1 @@
|
||||
E4001956B7EAAB914D97C392358D20A95B1EFD929278D8CBC380C7354418D345
|
||||
7D493EF06AAA3BE49BCCB9E0A5F4EC5A4EDC5280D4965D3C0140CC691F8946F4
|
||||
@@ -47,7 +47,7 @@ LABEL23:
|
||||
get_varbit 8119
|
||||
iconst 1
|
||||
if_icmpeq LABEL42
|
||||
jump LABEL184
|
||||
jump LABEL201
|
||||
LABEL42:
|
||||
invoke 3160
|
||||
iconst 1
|
||||
@@ -127,11 +127,17 @@ LABEL96:
|
||||
join_string 4
|
||||
append
|
||||
sstore 2
|
||||
get_varc_string 335
|
||||
invoke 1353
|
||||
iconst 1
|
||||
if_icmpeq LABEL109
|
||||
jump LABEL121
|
||||
LABEL109:
|
||||
iload 2
|
||||
iconst 80
|
||||
if_icmplt LABEL108
|
||||
jump LABEL115
|
||||
LABEL108:
|
||||
iconst 79
|
||||
if_icmplt LABEL113
|
||||
jump LABEL120
|
||||
LABEL113:
|
||||
sload 2
|
||||
sload 0
|
||||
sconst "*"
|
||||
@@ -139,7 +145,22 @@ LABEL108:
|
||||
join_string 3
|
||||
append
|
||||
sstore 2
|
||||
LABEL115:
|
||||
LABEL120:
|
||||
jump LABEL132
|
||||
LABEL121:
|
||||
iload 2
|
||||
iconst 80
|
||||
if_icmplt LABEL125
|
||||
jump LABEL132
|
||||
LABEL125:
|
||||
sload 2
|
||||
sload 0
|
||||
sconst "*"
|
||||
sconst "</col>"
|
||||
join_string 3
|
||||
append
|
||||
sstore 2
|
||||
LABEL132:
|
||||
sload 2
|
||||
iconst 2147483647
|
||||
iconst 495
|
||||
@@ -147,9 +168,9 @@ LABEL115:
|
||||
istore 3
|
||||
iload 4
|
||||
iconst 1
|
||||
if_icmpeq LABEL124
|
||||
jump LABEL141
|
||||
LABEL124:
|
||||
if_icmpeq LABEL141
|
||||
jump LABEL158
|
||||
LABEL141:
|
||||
iconst 60
|
||||
iconst 5
|
||||
iload 3
|
||||
@@ -166,8 +187,8 @@ LABEL124:
|
||||
iconst 2
|
||||
iconst 10616868
|
||||
if_setposition
|
||||
jump LABEL153
|
||||
LABEL141:
|
||||
jump LABEL170
|
||||
LABEL158:
|
||||
iconst 0
|
||||
iconst 30
|
||||
iconst 0
|
||||
@@ -180,26 +201,26 @@ LABEL141:
|
||||
iconst 2
|
||||
iconst 10616868
|
||||
if_setposition
|
||||
LABEL153:
|
||||
LABEL170:
|
||||
iload 3
|
||||
iconst 10616887
|
||||
if_getwidth
|
||||
if_icmpgt LABEL158
|
||||
jump LABEL164
|
||||
LABEL158:
|
||||
if_icmpgt LABEL175
|
||||
jump LABEL181
|
||||
LABEL175:
|
||||
iconst 2
|
||||
iconst 2
|
||||
iconst 0
|
||||
iconst 10616887
|
||||
if_settextalign
|
||||
jump LABEL169
|
||||
LABEL164:
|
||||
jump LABEL186
|
||||
LABEL181:
|
||||
iconst 0
|
||||
iconst 2
|
||||
iconst 0
|
||||
iconst 10616887
|
||||
if_settextalign
|
||||
LABEL169:
|
||||
LABEL186:
|
||||
iconst 10616887
|
||||
if_clearops
|
||||
iconst -1
|
||||
@@ -214,19 +235,19 @@ LABEL169:
|
||||
sconst ""
|
||||
iconst 10616887
|
||||
if_setonop
|
||||
jump LABEL234
|
||||
LABEL184:
|
||||
jump LABEL251
|
||||
LABEL201:
|
||||
invoke 3160
|
||||
iconst 1
|
||||
if_icmpeq LABEL188
|
||||
jump LABEL193
|
||||
LABEL188:
|
||||
if_icmpeq LABEL205
|
||||
jump LABEL210
|
||||
LABEL205:
|
||||
sconst "<img=22>"
|
||||
sconst " You must set a name before you can chat."
|
||||
join_string 2
|
||||
sstore 2
|
||||
jump LABEL201
|
||||
LABEL193:
|
||||
jump LABEL218
|
||||
LABEL210:
|
||||
iconst 105
|
||||
iconst 115
|
||||
iconst 1894
|
||||
@@ -235,7 +256,7 @@ LABEL193:
|
||||
sconst " You must set a name before you can chat."
|
||||
join_string 2
|
||||
sstore 2
|
||||
LABEL201:
|
||||
LABEL218:
|
||||
iconst 1
|
||||
iconst 2
|
||||
iconst 0
|
||||
@@ -269,7 +290,7 @@ LABEL201:
|
||||
sconst "ii"
|
||||
iconst 10616887
|
||||
if_setonop
|
||||
LABEL234:
|
||||
LABEL251:
|
||||
sload 2
|
||||
iconst 10616887
|
||||
if_settext
|
||||
|
||||
@@ -1 +1 @@
|
||||
7A4628DC7933B4340CEC5F1B3C75ED1857FEDB5E683829499A07E5C364F633FA
|
||||
9B38CB6BF195C49B10D856C5F571AFDEC7BBEF96A4E3532F5B23E9341066144C
|
||||
@@ -90,13 +90,13 @@ LABEL60:
|
||||
iload 0
|
||||
iconst 84
|
||||
if_icmpeq LABEL76
|
||||
jump LABEL829
|
||||
jump LABEL822
|
||||
LABEL76:
|
||||
invoke 1984
|
||||
iload 2
|
||||
iconst 0
|
||||
if_icmpgt LABEL81
|
||||
jump LABEL828
|
||||
jump LABEL821
|
||||
LABEL81:
|
||||
iload 3
|
||||
iconst 1
|
||||
@@ -699,44 +699,39 @@ LABEL587:
|
||||
sconst "You are not chatting as a guest in a clan channel at the moment."
|
||||
mes
|
||||
LABEL589:
|
||||
jump LABEL824
|
||||
jump LABEL817
|
||||
LABEL590:
|
||||
iload 5
|
||||
iconst 41
|
||||
if_icmpeq LABEL594
|
||||
jump LABEL665
|
||||
jump LABEL658
|
||||
LABEL594:
|
||||
iload 8
|
||||
iconst 0
|
||||
if_icmpeq LABEL598
|
||||
jump LABEL636
|
||||
jump LABEL629
|
||||
LABEL598:
|
||||
iconst 0
|
||||
activeclanchannel_find_affined
|
||||
iconst 1
|
||||
if_icmpeq LABEL603
|
||||
jump LABEL636
|
||||
jump LABEL629
|
||||
LABEL603:
|
||||
get_varbit 931
|
||||
iconst 0
|
||||
if_icmpeq LABEL607
|
||||
jump LABEL633
|
||||
LABEL607:
|
||||
chat_playername
|
||||
removetags
|
||||
activeclanchannel_getuserslot
|
||||
istore 7
|
||||
iload 7
|
||||
iconst -1
|
||||
if_icmpne LABEL615
|
||||
jump LABEL630
|
||||
LABEL615:
|
||||
if_icmpne LABEL611
|
||||
jump LABEL626
|
||||
LABEL611:
|
||||
iload 7
|
||||
activeclanchannel_getuserrank
|
||||
activeclanchannel_getranktalk
|
||||
if_icmpge LABEL620
|
||||
jump LABEL630
|
||||
LABEL620:
|
||||
if_icmpge LABEL616
|
||||
jump LABEL626
|
||||
LABEL616:
|
||||
get_varc_string 335
|
||||
iload 6
|
||||
iload 2
|
||||
@@ -746,29 +741,24 @@ LABEL620:
|
||||
iconst 0
|
||||
iload 9
|
||||
invoke 5517
|
||||
jump LABEL632
|
||||
LABEL630:
|
||||
jump LABEL628
|
||||
LABEL626:
|
||||
sconst "You do not have the required rank to talk in the clan's channel."
|
||||
mes
|
||||
LABEL632:
|
||||
jump LABEL635
|
||||
LABEL633:
|
||||
sconst "You have muted your clan's channel. Unmute it if you wish to talk in it."
|
||||
mes
|
||||
LABEL635:
|
||||
jump LABEL664
|
||||
LABEL636:
|
||||
LABEL628:
|
||||
jump LABEL657
|
||||
LABEL629:
|
||||
iload 8
|
||||
iconst 1
|
||||
if_icmpeq LABEL640
|
||||
jump LABEL655
|
||||
LABEL640:
|
||||
if_icmpeq LABEL633
|
||||
jump LABEL648
|
||||
LABEL633:
|
||||
iconst 1
|
||||
activeclanchannel_find_affined
|
||||
iconst 1
|
||||
if_icmpeq LABEL645
|
||||
jump LABEL655
|
||||
LABEL645:
|
||||
if_icmpeq LABEL638
|
||||
jump LABEL648
|
||||
LABEL638:
|
||||
get_varc_string 335
|
||||
iload 6
|
||||
iload 2
|
||||
@@ -778,56 +768,56 @@ LABEL645:
|
||||
iconst 0
|
||||
iload 9
|
||||
invoke 5517
|
||||
jump LABEL664
|
||||
LABEL655:
|
||||
jump LABEL657
|
||||
LABEL648:
|
||||
iload 8
|
||||
iconst 1
|
||||
if_icmpeq LABEL659
|
||||
jump LABEL662
|
||||
LABEL659:
|
||||
if_icmpeq LABEL652
|
||||
jump LABEL655
|
||||
LABEL652:
|
||||
sconst "You are not chatting in the channel of your Iron Group at the moment."
|
||||
mes
|
||||
jump LABEL664
|
||||
LABEL662:
|
||||
sconst "You are not chatting in the channel of your own Iron Group at the moment."
|
||||
jump LABEL657
|
||||
LABEL655:
|
||||
sconst "You are not chatting in the channel of your Clan at the moment."
|
||||
mes
|
||||
LABEL664:
|
||||
jump LABEL824
|
||||
LABEL665:
|
||||
LABEL657:
|
||||
jump LABEL817
|
||||
LABEL658:
|
||||
iload 5
|
||||
iconst 9
|
||||
if_icmpeq LABEL669
|
||||
jump LABEL713
|
||||
LABEL669:
|
||||
if_icmpeq LABEL662
|
||||
jump LABEL706
|
||||
LABEL662:
|
||||
clan_getchatcount
|
||||
iconst 0
|
||||
if_icmpgt LABEL673
|
||||
jump LABEL706
|
||||
LABEL673:
|
||||
if_icmpgt LABEL666
|
||||
jump LABEL699
|
||||
LABEL666:
|
||||
get_varbit 4394
|
||||
iconst 1
|
||||
if_icmpeq LABEL677
|
||||
jump LABEL679
|
||||
LABEL677:
|
||||
if_icmpeq LABEL670
|
||||
jump LABEL672
|
||||
LABEL670:
|
||||
clan_leavechat
|
||||
jump LABEL705
|
||||
LABEL679:
|
||||
jump LABEL698
|
||||
LABEL672:
|
||||
iload 6
|
||||
iconst 1
|
||||
if_icmplt LABEL683
|
||||
jump LABEL688
|
||||
LABEL683:
|
||||
if_icmplt LABEL676
|
||||
jump LABEL681
|
||||
LABEL676:
|
||||
sconst "/"
|
||||
get_varc_string 335
|
||||
append
|
||||
set_varc_string 335
|
||||
jump LABEL699
|
||||
LABEL688:
|
||||
jump LABEL692
|
||||
LABEL681:
|
||||
iload 6
|
||||
iconst 3
|
||||
if_icmpge LABEL692
|
||||
jump LABEL699
|
||||
LABEL692:
|
||||
if_icmpge LABEL685
|
||||
jump LABEL692
|
||||
LABEL685:
|
||||
sconst "/"
|
||||
get_varc_string 335
|
||||
iload 6
|
||||
@@ -835,30 +825,30 @@ LABEL692:
|
||||
substring
|
||||
append
|
||||
set_varc_string 335
|
||||
LABEL699:
|
||||
LABEL692:
|
||||
get_varc_string 335
|
||||
iconst 2
|
||||
iconst -1
|
||||
iconst 0
|
||||
iload 9
|
||||
invoke 5517
|
||||
LABEL705:
|
||||
jump LABEL712
|
||||
LABEL706:
|
||||
LABEL698:
|
||||
jump LABEL705
|
||||
LABEL699:
|
||||
get_varc_string 335
|
||||
iconst 0
|
||||
iconst -1
|
||||
iconst 0
|
||||
iconst -1
|
||||
invoke 5517
|
||||
LABEL712:
|
||||
jump LABEL824
|
||||
LABEL713:
|
||||
LABEL705:
|
||||
jump LABEL817
|
||||
LABEL706:
|
||||
iload 5
|
||||
iconst 2
|
||||
if_icmpeq LABEL717
|
||||
jump LABEL727
|
||||
LABEL717:
|
||||
if_icmpeq LABEL710
|
||||
jump LABEL720
|
||||
LABEL710:
|
||||
get_varc_string 335
|
||||
iload 6
|
||||
iload 2
|
||||
@@ -868,98 +858,98 @@ LABEL717:
|
||||
iconst 0
|
||||
iload 9
|
||||
invoke 5517
|
||||
jump LABEL824
|
||||
LABEL727:
|
||||
jump LABEL817
|
||||
LABEL720:
|
||||
iload 4
|
||||
iconst 1
|
||||
if_icmpeq LABEL731
|
||||
jump LABEL818
|
||||
LABEL731:
|
||||
if_icmpeq LABEL724
|
||||
jump LABEL811
|
||||
LABEL724:
|
||||
iload 2
|
||||
iconst 2
|
||||
if_icmpgt LABEL735
|
||||
jump LABEL811
|
||||
LABEL735:
|
||||
if_icmpgt LABEL728
|
||||
jump LABEL804
|
||||
LABEL728:
|
||||
get_varc_string 335
|
||||
sconst "::toggleroof"
|
||||
iconst 0
|
||||
string_indexof_string
|
||||
iconst 0
|
||||
if_icmpeq LABEL742
|
||||
jump LABEL770
|
||||
LABEL742:
|
||||
if_icmpeq LABEL735
|
||||
jump LABEL763
|
||||
LABEL735:
|
||||
getremoveroofs
|
||||
iconst 1
|
||||
if_icmpeq LABEL746
|
||||
jump LABEL758
|
||||
LABEL746:
|
||||
if_icmpeq LABEL739
|
||||
jump LABEL751
|
||||
LABEL739:
|
||||
iconst 0
|
||||
setremoveroofs
|
||||
get_varbit 12378
|
||||
iconst 0
|
||||
if_icmpeq LABEL752
|
||||
jump LABEL755
|
||||
LABEL752:
|
||||
if_icmpeq LABEL745
|
||||
jump LABEL748
|
||||
LABEL745:
|
||||
sconst "Roofs will only be removed selectively."
|
||||
mes
|
||||
jump LABEL757
|
||||
LABEL755:
|
||||
jump LABEL750
|
||||
LABEL748:
|
||||
sconst "Roofs will only be removed selectively. This setting will not be saved."
|
||||
mes
|
||||
LABEL757:
|
||||
jump LABEL769
|
||||
LABEL758:
|
||||
LABEL750:
|
||||
jump LABEL762
|
||||
LABEL751:
|
||||
iconst 1
|
||||
setremoveroofs
|
||||
get_varbit 12378
|
||||
iconst 1
|
||||
if_icmpeq LABEL764
|
||||
jump LABEL767
|
||||
LABEL764:
|
||||
if_icmpeq LABEL757
|
||||
jump LABEL760
|
||||
LABEL757:
|
||||
sconst "Roofs are now all hidden."
|
||||
mes
|
||||
jump LABEL769
|
||||
LABEL767:
|
||||
jump LABEL762
|
||||
LABEL760:
|
||||
sconst "Roofs are now all hidden. This setting will not be saved."
|
||||
mes
|
||||
LABEL769:
|
||||
jump LABEL810
|
||||
LABEL770:
|
||||
LABEL762:
|
||||
jump LABEL803
|
||||
LABEL763:
|
||||
get_varc_string 335
|
||||
sconst "::wiki "
|
||||
iconst 0
|
||||
string_indexof_string
|
||||
iconst 0
|
||||
if_icmpeq LABEL782
|
||||
if_icmpeq LABEL775
|
||||
get_varc_string 335
|
||||
sconst "::wiki"
|
||||
compare
|
||||
iconst 0
|
||||
if_icmpeq LABEL782
|
||||
if_icmpeq LABEL775
|
||||
sconst "runeliteCommand" ; load callback name
|
||||
runelite_callback ; invoke callback
|
||||
jump LABEL785
|
||||
LABEL782:
|
||||
jump LABEL778
|
||||
LABEL775:
|
||||
get_varc_string 335
|
||||
invoke 3299
|
||||
jump LABEL810
|
||||
LABEL785:
|
||||
jump LABEL803
|
||||
LABEL778:
|
||||
get_varc_string 335
|
||||
sconst "::bank"
|
||||
iconst 0
|
||||
string_indexof_string
|
||||
iconst 0
|
||||
if_icmpeq LABEL792
|
||||
jump LABEL799
|
||||
LABEL792:
|
||||
if_icmpeq LABEL785
|
||||
jump LABEL792
|
||||
LABEL785:
|
||||
sconst "Hey, everyone, I just tried to do something very silly!"
|
||||
iconst 0
|
||||
iconst -1
|
||||
iconst 0
|
||||
iconst -1
|
||||
invoke 5517
|
||||
jump LABEL810
|
||||
LABEL799:
|
||||
jump LABEL803
|
||||
LABEL792:
|
||||
get_varc_string 335
|
||||
invoke 224
|
||||
set_varc_string 335
|
||||
@@ -971,97 +961,97 @@ LABEL799:
|
||||
iload 2
|
||||
substring
|
||||
docheat
|
||||
LABEL803:
|
||||
jump LABEL810
|
||||
LABEL804:
|
||||
get_varc_string 335
|
||||
iconst 0
|
||||
iconst -1
|
||||
iconst 0
|
||||
iconst -1
|
||||
invoke 5517
|
||||
LABEL810:
|
||||
jump LABEL817
|
||||
LABEL811:
|
||||
get_varc_string 335
|
||||
iconst 0
|
||||
iconst -1
|
||||
iconst 0
|
||||
iconst -1
|
||||
invoke 5517
|
||||
LABEL817:
|
||||
jump LABEL824
|
||||
LABEL818:
|
||||
get_varc_string 335
|
||||
iconst 0
|
||||
iconst -1
|
||||
iconst 1
|
||||
iload 9
|
||||
invoke 5517
|
||||
LABEL824:
|
||||
LABEL817:
|
||||
get_varc_string 335
|
||||
invoke 77
|
||||
sconst ""
|
||||
set_varc_string 335
|
||||
LABEL828:
|
||||
jump LABEL904
|
||||
LABEL829:
|
||||
LABEL821:
|
||||
jump LABEL897
|
||||
LABEL822:
|
||||
iload 0
|
||||
iconst 104
|
||||
if_icmpeq LABEL833
|
||||
jump LABEL839
|
||||
LABEL833:
|
||||
if_icmpeq LABEL826
|
||||
jump LABEL832
|
||||
LABEL826:
|
||||
iload 3
|
||||
iconst 1
|
||||
if_icmpeq LABEL837
|
||||
jump LABEL838
|
||||
LABEL837:
|
||||
if_icmpeq LABEL830
|
||||
jump LABEL831
|
||||
LABEL830:
|
||||
invoke 75
|
||||
LABEL838:
|
||||
jump LABEL904
|
||||
LABEL839:
|
||||
LABEL831:
|
||||
jump LABEL897
|
||||
LABEL832:
|
||||
iload 0
|
||||
iconst 105
|
||||
if_icmpeq LABEL843
|
||||
jump LABEL849
|
||||
LABEL843:
|
||||
if_icmpeq LABEL836
|
||||
jump LABEL842
|
||||
LABEL836:
|
||||
iload 3
|
||||
iconst 1
|
||||
if_icmpeq LABEL847
|
||||
jump LABEL848
|
||||
LABEL847:
|
||||
if_icmpeq LABEL840
|
||||
jump LABEL841
|
||||
LABEL840:
|
||||
invoke 76
|
||||
LABEL848:
|
||||
jump LABEL904
|
||||
LABEL849:
|
||||
LABEL841:
|
||||
jump LABEL897
|
||||
LABEL842:
|
||||
iload 0
|
||||
iconst 80
|
||||
if_icmpeq LABEL853
|
||||
jump LABEL898
|
||||
LABEL853:
|
||||
if_icmpeq LABEL846
|
||||
jump LABEL891
|
||||
LABEL846:
|
||||
iconst 40697936
|
||||
iconst 1
|
||||
cc_find
|
||||
iconst 1
|
||||
if_icmpeq LABEL859
|
||||
jump LABEL860
|
||||
LABEL859:
|
||||
if_icmpeq LABEL852
|
||||
jump LABEL853
|
||||
LABEL852:
|
||||
return
|
||||
LABEL860:
|
||||
LABEL853:
|
||||
get_varc_string 356
|
||||
string_length
|
||||
iconst 0
|
||||
if_icmpgt LABEL865
|
||||
jump LABEL885
|
||||
LABEL865:
|
||||
if_icmpgt LABEL858
|
||||
jump LABEL878
|
||||
LABEL858:
|
||||
get_varc_string 356
|
||||
friend_test
|
||||
iconst 1
|
||||
if_icmpeq LABEL870
|
||||
jump LABEL873
|
||||
LABEL870:
|
||||
if_icmpeq LABEL863
|
||||
jump LABEL866
|
||||
LABEL863:
|
||||
get_varc_string 356
|
||||
invoke 107
|
||||
return
|
||||
LABEL873:
|
||||
LABEL866:
|
||||
get_varc_int 60
|
||||
clientclock
|
||||
if_icmpgt LABEL877
|
||||
jump LABEL878
|
||||
LABEL877:
|
||||
if_icmpgt LABEL870
|
||||
jump LABEL871
|
||||
LABEL870:
|
||||
return
|
||||
LABEL878:
|
||||
LABEL871:
|
||||
clientclock
|
||||
iconst 50
|
||||
add
|
||||
@@ -1069,14 +1059,14 @@ LABEL878:
|
||||
sconst "That player was not found on your Friends list."
|
||||
mes
|
||||
return
|
||||
LABEL885:
|
||||
LABEL878:
|
||||
get_varc_int 60
|
||||
clientclock
|
||||
if_icmpgt LABEL889
|
||||
jump LABEL890
|
||||
LABEL889:
|
||||
if_icmpgt LABEL882
|
||||
jump LABEL883
|
||||
LABEL882:
|
||||
return
|
||||
LABEL890:
|
||||
LABEL883:
|
||||
clientclock
|
||||
iconst 50
|
||||
add
|
||||
@@ -1084,8 +1074,8 @@ LABEL890:
|
||||
sconst "You haven't received any messages to which you can reply."
|
||||
mes
|
||||
return
|
||||
jump LABEL904
|
||||
LABEL898:
|
||||
jump LABEL897
|
||||
LABEL891:
|
||||
get_varc_string 335
|
||||
iconst 0
|
||||
iload 0
|
||||
@@ -1097,9 +1087,9 @@ LABEL898:
|
||||
runelite_callback ;
|
||||
if_icmpeq SKIPSETVARC ; skip setting varc with input
|
||||
set_varc_string 335
|
||||
jump LABEL904 ; jump over SKIPSETVARC
|
||||
jump LABEL897 ; jump over SKIPSETVARC
|
||||
SKIPSETVARC:
|
||||
pop_string ; pop message
|
||||
LABEL904:
|
||||
LABEL897:
|
||||
invoke 223
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user