Update
This commit is contained in:
@@ -30,7 +30,7 @@ public enum WorldType
|
||||
PVP,
|
||||
BOUNTY,
|
||||
SKILL_TOTAL,
|
||||
PVP_HIGH_RISK,
|
||||
HIGH_RISK,
|
||||
LAST_MAN_STANDING,
|
||||
TOURNAMENT,
|
||||
DEADMAN,
|
||||
|
||||
@@ -32,7 +32,7 @@ enum ServiceWorldType
|
||||
PVP(WorldType.PVP, 1 << 2),
|
||||
BOUNTY(WorldType.BOUNTY, 1 << 5),
|
||||
SKILL_TOTAL(WorldType.SKILL_TOTAL, 1 << 7),
|
||||
PVP_HIGH_RISK(WorldType.PVP_HIGH_RISK, 1 << 10),
|
||||
HIGH_RISK(WorldType.HIGH_RISK, 1 << 10),
|
||||
LAST_MAN_STANDING(WorldType.LAST_MAN_STANDING, 1 << 14),
|
||||
TOURNAMENT(WorldType.TOURNAMENT, 1 << 25),
|
||||
DEADMAN_TOURNAMENT(WorldType.DEADMAN_TOURNAMENT, 1 << 26),
|
||||
|
||||
@@ -49,9 +49,9 @@ public enum WorldType
|
||||
*/
|
||||
SKILL_TOTAL(1 << 7),
|
||||
/**
|
||||
* Pvp high risk world type.
|
||||
* High risk world type.
|
||||
*/
|
||||
PVP_HIGH_RISK(1 << 10),
|
||||
HIGH_RISK(1 << 10),
|
||||
/**
|
||||
* Last man standing world type.
|
||||
*/
|
||||
@@ -84,7 +84,6 @@ public enum WorldType
|
||||
DEADMAN,
|
||||
DEADMAN_TOURNAMENT,
|
||||
PVP,
|
||||
PVP_HIGH_RISK,
|
||||
SEASONAL_DEADMAN
|
||||
);
|
||||
|
||||
|
||||
@@ -135,6 +135,7 @@ public class WidgetID
|
||||
public static final int MUSICTAB_GROUP_ID = 239;
|
||||
public static final int BARROWS_PUZZLE_GROUP_ID = 25;
|
||||
public static final int ITEMS_KEPT_ON_DEATH_GROUP_ID = 4;
|
||||
public static final int FISHING_TRAWLER_GROUP_ID = 366;
|
||||
|
||||
static class WorldMap
|
||||
{
|
||||
|
||||
@@ -420,6 +420,8 @@ public enum WidgetInfo
|
||||
EXPERIENCE_TRACKER_WIDGET(WidgetID.EXPERIENCE_TRACKER_GROUP_ID, WidgetID.ExperienceTracker.WIDGET),
|
||||
EXPERIENCE_TRACKER_BOTTOM_BAR(WidgetID.EXPERIENCE_TRACKER_GROUP_ID, WidgetID.ExperienceTracker.BOTTOM_BAR),
|
||||
|
||||
FISHING_TRAWLER_TIMER(WidgetID.FISHING_TRAWLER_GROUP_ID, 37),
|
||||
|
||||
TITHE_FARM(WidgetID.TITHE_FARM_GROUP_ID, 1),
|
||||
|
||||
BARROWS_INFO(WidgetID.BARROWS_GROUP_ID, 0),
|
||||
|
||||
@@ -81,14 +81,14 @@ class LapCounterOverlay extends Overlay
|
||||
|
||||
panelComponent.getChildren().clear();
|
||||
panelComponent.getChildren().add(LineComponent.builder()
|
||||
.left("Total Laps")
|
||||
.left("Total Laps:")
|
||||
.right(Integer.toString(session.getTotalLaps()))
|
||||
.build());
|
||||
|
||||
if (session.getLapsTillLevel() > 0)
|
||||
{
|
||||
panelComponent.getChildren().add(LineComponent.builder()
|
||||
.left("Laps till level")
|
||||
.left("Laps until level:")
|
||||
.right(Integer.toString(session.getLapsTillLevel()))
|
||||
.build());
|
||||
}
|
||||
|
||||
@@ -303,7 +303,7 @@ public class CrypticClue extends ClueScroll implements TextClueScroll, NpcClueSc
|
||||
new CrypticClue("Search the drawers, upstairs in the bank to the East of Varrock.", DRAWERS_7194, new WorldPoint(3250, 3420, 1), "Search the drawers upstairs in Varrock east bank."),
|
||||
new CrypticClue("Speak to Hazelmere.", "Hazelmere", new WorldPoint(2677, 3088, 1), "Located upstairs in the house to the north of fairy ring CLS. Answer: 6859"),
|
||||
new CrypticClue("The effects of this fire are magnified.", new WorldPoint(1179, 3626, 0), "Dig by the fire beside Ket'sal K'uk in the westernmost part of the Kebos Swamp. "),
|
||||
new CrypticClue("Always walking around the castle grounds and somehow everyone's age.", "Hans", new WorldPoint(3221, 3218, 0), "Talk to Hans walking around Lumbridge Castle."),
|
||||
new CrypticClue("Always walking around the castle grounds and somehow knows everyone's age.", "Hans", new WorldPoint(3221, 3218, 0), "Talk to Hans walking around Lumbridge Castle."),
|
||||
new CrypticClue("In the place Duke Horacio calls home, talk to a man with a hat dropped by goblins.", "Cook", new WorldPoint(3208, 3213, 0), "Talk to the Cook in Lumbridge Castle."),
|
||||
new CrypticClue("In a village of barbarians, I am the one who guards the village from up high.", "Hunding", new WorldPoint(3097, 3432, 2), "Talk to Hunding atop the tower on the east side of Barbarian Village."),
|
||||
new CrypticClue("Talk to Charlie the Tramp in Varrock.", "Charlie the Tramp", new WorldPoint(3209, 3390, 0), "Talk to Charlie the Tramp by the southern entrance to Varrock. He will give you a task."),
|
||||
|
||||
@@ -143,8 +143,9 @@ public enum HotColdLocation
|
||||
WILDERNESS_5(new WorldPoint(3169, 3558, 0), WILDERNESS, "North of the Grand Exchange, level 5 Wilderness."),
|
||||
WILDERNESS_12(new WorldPoint(3038, 3612, 0), WILDERNESS, "South-east of the Dark Warriors' Fortress, level 12 Wilderness."),
|
||||
WILDERNESS_20(new WorldPoint(3225, 3676, 0), WILDERNESS, "East of the Corporeal Beast's lair, level 20 Wilderness."),
|
||||
WILDERNESS_27(new WorldPoint(3174, 3735, 0), WILDERNESS, "North-west of the Corporeal Beast cave, in the ruins at level 27 Wilderness."),
|
||||
WILDERNESS_27(new WorldPoint(3174, 3735, 0), WILDERNESS, "Inside the Ruins north of the Graveyard of Shadows, level 27 Wilderness."),
|
||||
WILDERNESS_28(new WorldPoint(3374, 3734, 0), WILDERNESS, "East of Venenatis' nest, level 28 Wilderness."),
|
||||
WILDERNESS_32(new WorldPoint(3311, 3773, 0), WILDERNESS, "North of Venenatis' nest, level 32 Wilderness."),
|
||||
WILDERNESS_35(new WorldPoint(3153, 3795, 0), WILDERNESS, "East of the Wilderness canoe exit, level 35 Wilderness."),
|
||||
WILDERNESS_37(new WorldPoint(2975, 3811, 0), WILDERNESS, "South-east of the Chaos Temple, level 37 Wilderness."),
|
||||
WILDERNESS_38(new WorldPoint(3294, 3817, 0), WILDERNESS, "South of Callisto, level 38 Wilderness."),
|
||||
|
||||
@@ -406,10 +406,7 @@ public class DiscordPlugin extends Plugin
|
||||
final EnumSet<WorldType> worldType = client.getWorldType();
|
||||
|
||||
// Do not show location in PVP activities
|
||||
if (worldType.contains(WorldType.SEASONAL_DEADMAN) ||
|
||||
worldType.contains(WorldType.DEADMAN) ||
|
||||
worldType.contains(WorldType.PVP) ||
|
||||
worldType.contains(WorldType.PVP_HIGH_RISK))
|
||||
if (WorldType.isPvpWorld(worldType))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -118,4 +118,15 @@ public interface FishingConfig extends Config
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
position = 8,
|
||||
keyName = "trawlerTimer",
|
||||
name = "Trawler timer in MM:SS",
|
||||
description = "Trawler Timer will display a more accurate timer in MM:SS format."
|
||||
)
|
||||
default boolean trawlerTimer()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,6 +57,10 @@ import net.runelite.api.events.ItemContainerChanged;
|
||||
import net.runelite.api.events.NpcDespawned;
|
||||
import net.runelite.api.events.NpcSpawned;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.api.events.WidgetLoaded;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.Notifier;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
@@ -78,9 +82,11 @@ public class FishingPlugin extends Plugin
|
||||
{
|
||||
private static final int TRAWLER_SHIP_REGION_NORMAL = 7499;
|
||||
private static final int TRAWLER_SHIP_REGION_SINKING = 8011;
|
||||
|
||||
private static final int TRAWLER_TIME_LIMIT_IN_SECONDS = 614;
|
||||
private static final int TRAWLER_ACTIVITY_THRESHOLD = Math.round(0.15f * 255);
|
||||
|
||||
private Instant trawlerStartTime;
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private final FishingSession session = new FishingSession();
|
||||
|
||||
@@ -142,6 +148,7 @@ public class FishingPlugin extends Plugin
|
||||
minnowSpots.clear();
|
||||
trawlerNotificationSent = false;
|
||||
currentSpot = null;
|
||||
trawlerStartTime = null;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
@@ -296,6 +303,11 @@ public class FishingPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (config.trawlerTimer())
|
||||
{
|
||||
updateTrawlerTimer();
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
@@ -351,6 +363,66 @@ public class FishingPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWidgetLoaded(WidgetLoaded event)
|
||||
{
|
||||
if (event.getGroupId() == WidgetID.FISHING_TRAWLER_GROUP_ID)
|
||||
{
|
||||
trawlerStartTime = Instant.now();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes the Fishing Trawler timer widget from minutes to minutes and seconds
|
||||
*/
|
||||
private void updateTrawlerTimer()
|
||||
{
|
||||
if (trawlerStartTime == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int regionID = client.getLocalPlayer().getWorldLocation().getRegionID();
|
||||
if (regionID != TRAWLER_SHIP_REGION_NORMAL && regionID != TRAWLER_SHIP_REGION_SINKING)
|
||||
{
|
||||
log.debug("Trawler session ended");
|
||||
return;
|
||||
}
|
||||
|
||||
Widget trawlerTimerWidget = client.getWidget(WidgetInfo.FISHING_TRAWLER_TIMER);
|
||||
if (trawlerTimerWidget == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
long timeLeft = TRAWLER_TIME_LIMIT_IN_SECONDS - Duration.between(trawlerStartTime, Instant.now()).getSeconds();
|
||||
int minutes = (int) timeLeft / 60;
|
||||
int seconds = (int) timeLeft % 60;
|
||||
|
||||
final StringBuilder trawlerText = new StringBuilder();
|
||||
trawlerText.append("Time Left: ");
|
||||
|
||||
if (minutes > 0)
|
||||
{
|
||||
trawlerText.append(minutes);
|
||||
}
|
||||
else
|
||||
{
|
||||
trawlerText.append("00");
|
||||
}
|
||||
|
||||
trawlerText.append(':');
|
||||
|
||||
if (seconds < 10)
|
||||
{
|
||||
trawlerText.append("0");
|
||||
}
|
||||
|
||||
trawlerText.append(seconds);
|
||||
|
||||
trawlerTimerWidget.setText(trawlerText.toString());
|
||||
}
|
||||
|
||||
private void inverseSortSpotDistanceFromPlayer()
|
||||
{
|
||||
final LocalPoint cameraPoint = new LocalPoint(client.getCameraX(), client.getCameraY());
|
||||
|
||||
@@ -36,12 +36,14 @@ import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||
class NpcAggroAreaNotWorkingOverlay extends Overlay
|
||||
{
|
||||
private final NpcAggroAreaPlugin plugin;
|
||||
private final NpcAggroAreaConfig config;
|
||||
private final PanelComponent panelComponent;
|
||||
|
||||
@Inject
|
||||
private NpcAggroAreaNotWorkingOverlay(NpcAggroAreaPlugin plugin)
|
||||
private NpcAggroAreaNotWorkingOverlay(NpcAggroAreaPlugin plugin, NpcAggroAreaConfig config)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
this.config = config;
|
||||
|
||||
panelComponent = new PanelComponent();
|
||||
panelComponent.setPreferredSize(new Dimension(150, 0));
|
||||
@@ -56,7 +58,7 @@ class NpcAggroAreaNotWorkingOverlay extends Overlay
|
||||
@Override
|
||||
public Dimension render(Graphics2D graphics)
|
||||
{
|
||||
if (!plugin.isActive() || plugin.getSafeCenters()[1] != null)
|
||||
if (!plugin.isActive() || plugin.getSafeCenters()[1] != null || config.hideOverlayHint())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -36,12 +36,11 @@ 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.ScriptCallbackEvent;
|
||||
import net.runelite.api.events.VarClientIntChanged;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.api.events.WidgetLoaded;
|
||||
import net.runelite.api.widgets.JavaScriptCallback;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.widgets.WidgetPositionMode;
|
||||
import net.runelite.api.widgets.WidgetType;
|
||||
@@ -104,46 +103,45 @@ public class QuestListPlugin extends Plugin
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWidgetLoaded(WidgetLoaded widgetLoaded)
|
||||
public void onScriptCallbackEvent(ScriptCallbackEvent event)
|
||||
{
|
||||
if (widgetLoaded.getGroupId() == WidgetID.QUESTLIST_GROUP_ID)
|
||||
if (!event.getEventName().equals("questProgressUpdated"))
|
||||
{
|
||||
Widget header = client.getWidget(WidgetInfo.QUESTLIST_BOX);
|
||||
if (header != null)
|
||||
{
|
||||
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();
|
||||
return;
|
||||
}
|
||||
|
||||
questHideButton = header.createChild(-1, WidgetType.GRAPHIC);
|
||||
redrawHideButton();
|
||||
Widget header = client.getWidget(WidgetInfo.QUESTLIST_BOX);
|
||||
if (header != null)
|
||||
{
|
||||
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.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();
|
||||
questHideButton = header.createChild(-1, WidgetType.GRAPHIC);
|
||||
redrawHideButton();
|
||||
|
||||
questSet = new EnumMap<>(QuestContainer.class);
|
||||
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();
|
||||
|
||||
if (!header.isHidden())
|
||||
{
|
||||
updateFilter();
|
||||
}
|
||||
}
|
||||
questSet = new EnumMap<>(QuestContainer.class);
|
||||
|
||||
updateFilter();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -259,21 +257,26 @@ public class QuestListPlugin extends Plugin
|
||||
|
||||
int y = miniList.getRelativeY() + miniList.getHeight() + 10;
|
||||
|
||||
int newHeight = 0;
|
||||
int newHeight;
|
||||
if (container.getScrollHeight() > 0)
|
||||
{
|
||||
newHeight = (container.getScrollY() * y) / container.getScrollHeight();
|
||||
}
|
||||
else
|
||||
{
|
||||
newHeight = 0;
|
||||
}
|
||||
|
||||
container.setScrollHeight(y);
|
||||
container.revalidateScroll();
|
||||
|
||||
client.runScript(
|
||||
ScriptID.UPDATE_SCROLLBAR,
|
||||
WidgetInfo.QUESTLIST_SCROLLBAR.getId(),
|
||||
WidgetInfo.QUESTLIST_CONTAINER.getId(),
|
||||
newHeight
|
||||
);
|
||||
clientThread.invokeLater(() ->
|
||||
client.runScript(
|
||||
ScriptID.UPDATE_SCROLLBAR,
|
||||
WidgetInfo.QUESTLIST_SCROLLBAR.getId(),
|
||||
WidgetInfo.QUESTLIST_CONTAINER.getId(),
|
||||
newHeight
|
||||
));
|
||||
}
|
||||
|
||||
private void updateList(QuestContainer questContainer, String filter)
|
||||
@@ -309,7 +312,7 @@ public class QuestListPlugin extends Plugin
|
||||
// Find all of the widgets that we care about, sorting by their Y value
|
||||
quests = Arrays.stream(list.getDynamicChildren())
|
||||
.sorted(Comparator.comparing(Widget::getRelativeY))
|
||||
.filter(w -> !w.isSelfHidden() && !QUEST_HEADERS.contains(w.getText()))
|
||||
.filter(w -> !QUEST_HEADERS.contains(w.getText()))
|
||||
.map(w -> new QuestWidget(w, Text.removeTags(w.getText()).toLowerCase()))
|
||||
.collect(Collectors.toList());
|
||||
questSet.put(questContainer, quests);
|
||||
|
||||
@@ -554,7 +554,7 @@ public class WorldHopperPlugin extends Plugin
|
||||
if (config.quickhopOutOfDanger())
|
||||
{
|
||||
currentWorldTypes.remove(WorldType.PVP);
|
||||
currentWorldTypes.remove(WorldType.PVP_HIGH_RISK);
|
||||
currentWorldTypes.remove(WorldType.HIGH_RISK);
|
||||
}
|
||||
// Don't regard these worlds as a type that must be hopped between
|
||||
currentWorldTypes.remove(WorldType.BOUNTY);
|
||||
|
||||
@@ -245,7 +245,7 @@ class WorldTableRow extends JPanel
|
||||
return;
|
||||
}
|
||||
else if (world.getTypes().contains(WorldType.PVP)
|
||||
|| world.getTypes().contains(WorldType.PVP_HIGH_RISK)
|
||||
|| world.getTypes().contains(WorldType.HIGH_RISK)
|
||||
|| world.getTypes().contains(WorldType.DEADMAN)
|
||||
|| world.getTypes().contains(WorldType.SEASONAL_DEADMAN))
|
||||
{
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
A6B3A7BFE7B688A08F69B91A7FD5C7184D71147D3DAF74B1262369D85DBB3A03
|
||||
198
runelite-client/src/main/scripts/QuestListShowProgress.rs2asm
Normal file
198
runelite-client/src/main/scripts/QuestListShowProgress.rs2asm
Normal file
@@ -0,0 +1,198 @@
|
||||
.id 1354
|
||||
.int_stack_count 3
|
||||
.string_stack_count 0
|
||||
.int_var_count 7
|
||||
.string_var_count 0
|
||||
iconst 0
|
||||
istore 3
|
||||
iconst 0
|
||||
istore 4
|
||||
iconst 0
|
||||
istore 5
|
||||
invoke 1340
|
||||
istore 6
|
||||
LABEL8:
|
||||
iload 5
|
||||
iload 6
|
||||
if_icmplt LABEL12
|
||||
jump LABEL56
|
||||
LABEL12:
|
||||
iload 0
|
||||
iload 5
|
||||
cc_find
|
||||
iconst 1
|
||||
if_icmpeq LABEL18
|
||||
jump LABEL51
|
||||
LABEL18:
|
||||
iload 5
|
||||
invoke 1357
|
||||
istore 3
|
||||
iload 3
|
||||
iconst 2
|
||||
if_icmpeq LABEL25
|
||||
jump LABEL28
|
||||
LABEL25:
|
||||
iconst 901389
|
||||
istore 4
|
||||
jump LABEL37
|
||||
LABEL28:
|
||||
iload 3
|
||||
iconst 0
|
||||
if_icmpeq LABEL32
|
||||
jump LABEL35
|
||||
LABEL32:
|
||||
iconst 16776960
|
||||
istore 4
|
||||
jump LABEL37
|
||||
LABEL35:
|
||||
iconst 16711680
|
||||
istore 4
|
||||
LABEL37:
|
||||
iload 4
|
||||
cc_setcolour
|
||||
iconst 85
|
||||
iconst -2147483645
|
||||
iconst -2147483643
|
||||
iconst 16777215
|
||||
sconst "Iii"
|
||||
cc_setonmouseover
|
||||
iconst 85
|
||||
iconst -2147483645
|
||||
iconst -2147483643
|
||||
iload 4
|
||||
sconst "Iii"
|
||||
cc_setonmouseleave
|
||||
LABEL51:
|
||||
iload 5
|
||||
iconst 1
|
||||
add
|
||||
istore 5
|
||||
jump LABEL8
|
||||
LABEL56:
|
||||
iconst 0
|
||||
invoke 2245
|
||||
istore 6
|
||||
istore 5
|
||||
LABEL60:
|
||||
iload 5
|
||||
iload 6
|
||||
if_icmplt LABEL64
|
||||
jump LABEL108
|
||||
LABEL64:
|
||||
iload 1
|
||||
iload 5
|
||||
cc_find
|
||||
iconst 1
|
||||
if_icmpeq LABEL70
|
||||
jump LABEL103
|
||||
LABEL70:
|
||||
iload 5
|
||||
invoke 1358
|
||||
istore 3
|
||||
iload 3
|
||||
iconst 2
|
||||
if_icmpeq LABEL77
|
||||
jump LABEL80
|
||||
LABEL77:
|
||||
iconst 901389
|
||||
istore 4
|
||||
jump LABEL89
|
||||
LABEL80:
|
||||
iload 3
|
||||
iconst 0
|
||||
if_icmpeq LABEL84
|
||||
jump LABEL87
|
||||
LABEL84:
|
||||
iconst 16776960
|
||||
istore 4
|
||||
jump LABEL89
|
||||
LABEL87:
|
||||
iconst 16711680
|
||||
istore 4
|
||||
LABEL89:
|
||||
iload 4
|
||||
cc_setcolour
|
||||
iconst 85
|
||||
iconst -2147483645
|
||||
iconst -2147483643
|
||||
iconst 16777215
|
||||
sconst "Iii"
|
||||
cc_setonmouseover
|
||||
iconst 85
|
||||
iconst -2147483645
|
||||
iconst -2147483643
|
||||
iload 4
|
||||
sconst "Iii"
|
||||
cc_setonmouseleave
|
||||
LABEL103:
|
||||
iload 5
|
||||
iconst 1
|
||||
add
|
||||
istore 5
|
||||
jump LABEL60
|
||||
LABEL108:
|
||||
iconst 0
|
||||
invoke 2265
|
||||
istore 6
|
||||
istore 5
|
||||
LABEL112:
|
||||
iload 5
|
||||
iload 6
|
||||
if_icmplt LABEL116
|
||||
jump LABEL160
|
||||
LABEL116:
|
||||
iload 2
|
||||
iload 5
|
||||
cc_find
|
||||
iconst 1
|
||||
if_icmpeq LABEL122
|
||||
jump LABEL155
|
||||
LABEL122:
|
||||
iload 5
|
||||
invoke 1359
|
||||
istore 3
|
||||
iload 3
|
||||
iconst 2
|
||||
if_icmpeq LABEL129
|
||||
jump LABEL132
|
||||
LABEL129:
|
||||
iconst 901389
|
||||
istore 4
|
||||
jump LABEL141
|
||||
LABEL132:
|
||||
iload 3
|
||||
iconst 0
|
||||
if_icmpeq LABEL136
|
||||
jump LABEL139
|
||||
LABEL136:
|
||||
iconst 16776960
|
||||
istore 4
|
||||
jump LABEL141
|
||||
LABEL139:
|
||||
iconst 16711680
|
||||
istore 4
|
||||
LABEL141:
|
||||
iload 4
|
||||
cc_setcolour
|
||||
iconst 85
|
||||
iconst -2147483645
|
||||
iconst -2147483643
|
||||
iconst 16777215
|
||||
sconst "Iii"
|
||||
cc_setonmouseover
|
||||
iconst 85
|
||||
iconst -2147483645
|
||||
iconst -2147483643
|
||||
iload 4
|
||||
sconst "Iii"
|
||||
cc_setonmouseleave
|
||||
LABEL155:
|
||||
iload 5
|
||||
iconst 1
|
||||
add
|
||||
istore 5
|
||||
jump LABEL112
|
||||
LABEL160:
|
||||
sconst "questProgressUpdated"
|
||||
runelite_callback
|
||||
return
|
||||
Reference in New Issue
Block a user