Compare commits
No commits in common. "main" and "hcim-backup" have entirely different histories.
main
...
hcim-backu
@ -43,5 +43,5 @@ I would strongly recommend contributing code to the [2009Scape project](https://
|
|||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Like 2009Scape, this is AGPLv3. This is, in my opinion, the only proper license for an open source RSPS. The key term of the license being if you wish to use this code to host your own server, you must also offer the source code for people to inspect and use, and allow them to make modifications to it as I did with 2009Scape's code.
|
Like 2009Scape, this is AGPLv3. This is, in my opinion, the only proper license for an open source RSPS. The key term of the license being if you wish to use this code, you must also offer the source code for people to inspect and use! (eg no private, for profit RSPS).
|
||||||
|
|
||||||
|
@ -15,11 +15,6 @@ fun kidnapPlayer(player: Player, loc: Location, type: TeleportType) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun returnPlayer(player: Player) {
|
fun returnPlayer(player: Player) {
|
||||||
// Prevent returning more than once and sending the player back to HOME_LOCATION
|
|
||||||
if (getAttribute<Location?>(player, "kidnapped-by-random", null) == null) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
player.locks.unlockTeleport()
|
player.locks.unlockTeleport()
|
||||||
val destination = getAttribute(player, "/save:original-loc", ServerConstants.HOME_LOCATION ?: Location.create(3222, 3218, 0))
|
val destination = getAttribute(player, "/save:original-loc", ServerConstants.HOME_LOCATION ?: Location.create(3222, 3218, 0))
|
||||||
teleport(player, destination)
|
teleport(player, destination)
|
||||||
|
@ -46,23 +46,23 @@ enum class RandomEvents(val npc: RandomEventNPC, val loot: WeightBasedTable? = n
|
|||||||
WeightedItem(Items.TOOTH_HALF_OF_A_KEY_985,1,1,0.1),
|
WeightedItem(Items.TOOTH_HALF_OF_A_KEY_985,1,1,0.1),
|
||||||
WeightedItem(Items.LOOP_HALF_OF_A_KEY_987,1,1,0.1)
|
WeightedItem(Items.LOOP_HALF_OF_A_KEY_987,1,1,0.1)
|
||||||
)),
|
)),
|
||||||
// MAZE(npc = MazeNPC()),
|
MAZE(npc = MazeNPC()),
|
||||||
DRILL_DEMON(npc = SergeantDamienNPC()),
|
DRILL_DEMON(npc = SergeantDamienNPC()),
|
||||||
EVIL_CHICKEN(npc = EvilChickenNPC()),
|
EVIL_CHICKEN(npc = EvilChickenNPC()),
|
||||||
// STRANGE_PLANT(npc = StrangePlantNPC()),
|
STRANGE_PLANT(npc = StrangePlantNPC()),
|
||||||
// SWARM(npc = SwarmNPC()),
|
SWARM(npc = SwarmNPC()),
|
||||||
// EVIL_BOB(npc = EvilBobNPC(), skillIds = intArrayOf(Skills.FISHING, Skills.MAGIC)),
|
EVIL_BOB(npc = EvilBobNPC(), skillIds = intArrayOf(Skills.FISHING, Skills.MAGIC)),
|
||||||
DRUNKEN_DWARF(npc = DrunkenDwarfNPC()),
|
DRUNKEN_DWARF(npc = DrunkenDwarfNPC()),
|
||||||
RICK_TURPENTINE(npc = RickTurpentineNPC(), loot = CERTER.loot),
|
RICK_TURPENTINE(npc = RickTurpentineNPC(), loot = CERTER.loot),
|
||||||
SURPRISE_EXAM(npc = MysteriousOldManNPC(), type = "sexam"),
|
SURPRISE_EXAM(npc = MysteriousOldManNPC(), type = "sexam"),
|
||||||
FREAKY_FORESTER(npc = FreakyForesterNPC(), skillIds = intArrayOf(Skills.WOODCUTTING)),
|
FREAKY_FORESTER(npc = FreakyForesterNPC(), skillIds = intArrayOf(Skills.WOODCUTTING)),
|
||||||
// PILLORY(npc = PilloryNPC(), skillIds = intArrayOf(Skills.THIEVING)),
|
PILLORY(npc = PilloryNPC(), skillIds = intArrayOf(Skills.THIEVING)),
|
||||||
TREE_SPIRIT(npc = TreeSpiritRENPC(), skillIds = intArrayOf(Skills.WOODCUTTING)),
|
TREE_SPIRIT(npc = TreeSpiritRENPC(), skillIds = intArrayOf(Skills.WOODCUTTING)),
|
||||||
QUIZ_MASTER(npc = QuizMasterNPC()),
|
QUIZ_MASTER(npc = QuizMasterNPC()),
|
||||||
RIVER_TROLL(RiverTrollRENPC(), skillIds = intArrayOf(Skills.FISHING)),
|
RIVER_TROLL(RiverTrollRENPC(), skillIds = intArrayOf(Skills.FISHING)),
|
||||||
// ROCK_GOLEM(RockGolemRENPC(), skillIds = intArrayOf(Skills.MINING)),
|
ROCK_GOLEM(RockGolemRENPC(), skillIds = intArrayOf(Skills.MINING)),
|
||||||
SHADE(ShadeRENPC(), skillIds = intArrayOf(Skills.PRAYER));
|
SHADE(ShadeRENPC(), skillIds = intArrayOf(Skills.PRAYER)),
|
||||||
// ZOMBIE(ZombieRENPC(), skillIds = intArrayOf(Skills.PRAYER));
|
ZOMBIE(ZombieRENPC(), skillIds = intArrayOf(Skills.PRAYER));
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@JvmField
|
@JvmField
|
||||||
|
@ -8,18 +8,21 @@ import core.game.interaction.InterfaceListener
|
|||||||
object RulesAndInfo {
|
object RulesAndInfo {
|
||||||
val RULES = arrayOf(
|
val RULES = arrayOf(
|
||||||
"<col=ffffff>1. Basically just don't be an asshole</col>",
|
"<col=ffffff>1. Basically just don't be an asshole</col>",
|
||||||
" -No spamming, harassment, or other",
|
" -Spamming, serious harassment, and other disruptive behaviors",
|
||||||
" disruptive behaviors",
|
" are not okay, and will be addressed appropriately.",
|
||||||
"<col=ffffff>2. No exploitation of bugs.</col>",
|
"<col=ffffff>1. Be respectful to your fellow players.</col>",
|
||||||
|
" -No harassment, etc.",
|
||||||
|
" -Keep arguments private.",
|
||||||
|
"<col=ffffff>2. Do not exploit bugs.</col>",
|
||||||
" -Zero tolerance. Can result in account deletion.",
|
" -Zero tolerance. Can result in account deletion.",
|
||||||
" -If you discover a bug, report it to Emo/admins.",
|
" -If you discover a bug, report it to Emo or other admins.",
|
||||||
"<col=ffffff>3. Discuss or Advertising.</col>",
|
"<col=ffffff>3. Do not discuss or advertise.</col>",
|
||||||
" -Discussion of the live jagex games is fine.",
|
" -Discussion of the live jagex games is fine.",
|
||||||
" -Discussion of open source projects is fine.",
|
" -Discussion of open source projects is fine.",
|
||||||
" -No advertising of non-open source RSPSs.",
|
" -Advertising of non-open source RSPSs is not okay.",
|
||||||
"<col=ffffff>4. No unfair advantages.</col>",
|
"<col=ffffff>4. No unfair advantages.</col>",
|
||||||
" -No botting, autoclickers, AHKing, etc...",
|
" -No botting, autoclickers, AHKing, etc...",
|
||||||
" -Again, just don't be an asshole."
|
" -Again, basically just don't be an asshole."
|
||||||
)
|
)
|
||||||
val SEPARATOR = "<str> </str>"
|
val SEPARATOR = "<str> </str>"
|
||||||
val INFO = arrayOf(
|
val INFO = arrayOf(
|
||||||
|
@ -90,7 +90,7 @@ public class PortalChamberPlugin extends OptionHandler {
|
|||||||
for (Locations l : Locations.values()) {
|
for (Locations l : Locations.values()) {
|
||||||
if (l.name().contains(identifier)) {
|
if (l.name().contains(identifier)) {
|
||||||
if (l == Locations.ARDOUGNE){
|
if (l == Locations.ARDOUGNE){
|
||||||
if (!player.getAttribute(ARDOUGNE_TELE_ATTRIBUTE, false)) {
|
if (player.getAttribute(ARDOUGNE_TELE_ATTRIBUTE, false)){
|
||||||
player.sendMessage("You do not have the requirements to direct the portal there");
|
player.sendMessage("You do not have the requirements to direct the portal there");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -138,6 +138,12 @@ public class PortalChamberPlugin extends OptionHandler {
|
|||||||
case "enter":
|
case "enter":
|
||||||
String objectName = object.getName();
|
String objectName = object.getName();
|
||||||
for (Locations l : Locations.values()) {
|
for (Locations l : Locations.values()) {
|
||||||
|
if (l == Locations.ARDOUGNE){
|
||||||
|
if (player.getAttribute(ARDOUGNE_TELE_ATTRIBUTE, false)){
|
||||||
|
player.sendMessage("You do not have the requirements to enter this portal.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (objectName.toLowerCase().contains(l.name().toLowerCase())) {
|
if (objectName.toLowerCase().contains(l.name().toLowerCase())) {
|
||||||
player.teleport(l.location);
|
player.teleport(l.location);
|
||||||
if (player.getHouseManager().isInHouse(player) && node.getId() == 13635) {
|
if (player.getHouseManager().isInHouse(player) && node.getId() == 13635) {
|
||||||
|
@ -44,30 +44,29 @@ public final class CookingRecipePlugin extends UseWithHandler {
|
|||||||
@Override
|
@Override
|
||||||
public boolean handle(NodeUsageEvent event) {
|
public boolean handle(NodeUsageEvent event) {
|
||||||
Recipe recipe = null;
|
Recipe recipe = null;
|
||||||
Item part = null;
|
|
||||||
// TODO: Transitioning to a Listener would save an O(n) pass through the recipes list on every use-with
|
// TODO: Transitioning to a Listener would save an O(n) pass through the recipes list on every use-with
|
||||||
recipeloop:
|
|
||||||
for (Recipe temp : Recipe.RECIPES) {
|
for (Recipe temp : Recipe.RECIPES) {
|
||||||
if (temp.isSingular()) {
|
if (temp.isSingular()) {
|
||||||
if (temp.getBase().getId() == event.getUsedItem().getId() || temp.getBase().getId() == event.getBaseItem().getId()) {
|
if (temp.getBase().getId() == event.getUsedItem().getId() || temp.getBase().getId() == event.getBaseItem().getId()) {
|
||||||
for (Item ingredient : temp.getIngredients()) {
|
for (Item ingredient : temp.getIngredients()) {
|
||||||
if (ingredient.getId() == event.getBaseItem().getId() || ingredient.getId() == event.getUsedItem().getId()) {
|
if (ingredient.getId() == event.getBaseItem().getId() || ingredient.getId() == event.getUsedItem().getId()) {
|
||||||
recipe = temp;
|
recipe = temp;
|
||||||
break recipeloop;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Item part = null;
|
||||||
|
Item ingredient = null;
|
||||||
for (int k = 0; k < temp.getParts().length; k++) {
|
for (int k = 0; k < temp.getParts().length; k++) {
|
||||||
for (int i = 0; i < temp.getIngredients().length; i++) {
|
for (int i = 0; i < temp.getIngredients().length; i++) {
|
||||||
Item tempPart = temp.getParts()[k];
|
part = temp.getParts()[k];
|
||||||
Item ingredient = temp.getIngredients()[i];
|
ingredient = temp.getIngredients()[i];
|
||||||
if (tempPart.getId() == event.getUsedItem().getId() && ingredient.getId() == event.getBaseItem().getId() || tempPart.getId() == event.getBaseItem().getId() && ingredient.getId() == event.getUsedItem().getId()) {
|
if (part.getId() == event.getUsedItem().getId() && ingredient.getId() == event.getBaseItem().getId() || part.getId() == event.getBaseItem().getId() && ingredient.getId() == event.getUsedItem().getId()) {
|
||||||
if (k == i) {// represents that this ingredient can
|
if (k == i) {// represents that this ingredient can
|
||||||
// mix with the other.
|
// mix with the other.
|
||||||
recipe = temp;
|
recipe = temp;
|
||||||
part = tempPart;
|
break;
|
||||||
break recipeloop;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -77,7 +76,6 @@ public final class CookingRecipePlugin extends UseWithHandler {
|
|||||||
if (recipe != null) {
|
if (recipe != null) {
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
final Recipe recipe_ = recipe;
|
final Recipe recipe_ = recipe;
|
||||||
final Item part_ = part;
|
|
||||||
SkillDialogueHandler handler = new SkillDialogueHandler(player, SkillDialogue.ONE_OPTION, recipe.getProduct()) {
|
SkillDialogueHandler handler = new SkillDialogueHandler(player, SkillDialogue.ONE_OPTION, recipe.getProduct()) {
|
||||||
@Override
|
@Override
|
||||||
public void create(final int amount, int index) {
|
public void create(final int amount, int index) {
|
||||||
@ -93,7 +91,7 @@ public final class CookingRecipePlugin extends UseWithHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAll(int index) {
|
public int getAll(int index) {
|
||||||
return player.getInventory().getAmount(part_ != null ? part_ : recipe_.getBase());
|
return player.getInventory().getAmount(recipe_.getBase());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (player.getInventory().getAmount(recipe.getBase()) == 1) {
|
if (player.getInventory().getAmount(recipe.getBase()) == 1) {
|
||||||
|
@ -119,9 +119,6 @@ public abstract class Recipe {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (index != -1) {
|
if (index != -1) {
|
||||||
if (!player.getInventory().containItems(event.getBaseItem().getId(), event.getUsedItem().getId())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (player.getInventory().remove(event.getBaseItem()) && player.getInventory().remove(event.getUsedItem())) {
|
if (player.getInventory().remove(event.getBaseItem()) && player.getInventory().remove(event.getUsedItem())) {
|
||||||
player.getInventory().add(getParts()[index + 1]);
|
player.getInventory().add(getParts()[index + 1]);
|
||||||
String message = getMixMessage(event);
|
String message = getMixMessage(event);
|
||||||
|
@ -128,12 +128,7 @@ public final class FamiliarManager {
|
|||||||
}
|
}
|
||||||
if (currentPet != -1) {
|
if (currentPet != -1) {
|
||||||
int last = this.petDetails.get(currentPet).size() - 1;
|
int last = this.petDetails.get(currentPet).size() - 1;
|
||||||
PetDetails details;
|
PetDetails details = this.petDetails.get(currentPet).get(last);
|
||||||
if (last < 0) { //missing data in save due to historical bug (see GL !2077)
|
|
||||||
details = new PetDetails(0);
|
|
||||||
} else {
|
|
||||||
details = this.petDetails.get(currentPet).get(last);
|
|
||||||
}
|
|
||||||
Pets pets = Pets.forId(currentPet);
|
Pets pets = Pets.forId(currentPet);
|
||||||
familiar = new Pet(player, details, currentPet, pets.getNpcId(currentPet));
|
familiar = new Pet(player, details, currentPet, pets.getNpcId(currentPet));
|
||||||
} else if (familiarData.containsKey("familiar")) {
|
} else if (familiarData.containsKey("familiar")) {
|
||||||
@ -419,9 +414,6 @@ public final class FamiliarManager {
|
|||||||
* @param details The new pet details.
|
* @param details The new pet details.
|
||||||
*/
|
*/
|
||||||
public void addDetails(int itemId, PetDetails details) {
|
public void addDetails(int itemId, PetDetails details) {
|
||||||
if (petDetails.get(itemId) == null) {
|
|
||||||
petDetails.put(itemId, new ArrayList<>());
|
|
||||||
}
|
|
||||||
petDetails.get(itemId).add(details);
|
petDetails.get(itemId).add(details);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,8 +129,8 @@ public final class Pet extends Familiar {
|
|||||||
if (pet.isKitten(itemId)) {
|
if (pet.isKitten(itemId)) {
|
||||||
owner.incrementAttribute("/save:stats_manager:cats_raised");
|
owner.incrementAttribute("/save:stats_manager:cats_raised");
|
||||||
}
|
}
|
||||||
owner.getFamiliarManager().addDetails(newItemId, details);
|
|
||||||
owner.getFamiliarManager().removeDetails(getItemId());
|
owner.getFamiliarManager().removeDetails(getItemId());
|
||||||
|
owner.getFamiliarManager().addDetails(newItemId, details);
|
||||||
owner.getFamiliarManager().morphPet(new Item(newItemId), false, location, details.getHunger(), 0);
|
owner.getFamiliarManager().morphPet(new Item(newItemId), false, location, details.getHunger(), 0);
|
||||||
owner.getPacketDispatch().sendMessage("<col=ff0000>Your pet has grown larger.</col>");
|
owner.getPacketDispatch().sendMessage("<col=ff0000>Your pet has grown larger.</col>");
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ public final class PCLanderZone extends MapZone {
|
|||||||
for (PestControlActivityPlugin a : activities) {
|
for (PestControlActivityPlugin a : activities) {
|
||||||
if (a.getWaitingPlayers().remove(e)) {
|
if (a.getWaitingPlayers().remove(e)) {
|
||||||
if (logout) {
|
if (logout) {
|
||||||
e.setLocation(a.getLeaveLocation());
|
e.getProperties().setTeleportLocation(a.getLeaveLocation());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -109,9 +109,15 @@ class HaroldDialogueFile : DialogueFile() {
|
|||||||
21 -> playerl(FacialExpression.ASKING, "What?").also { stage++ }
|
21 -> playerl(FacialExpression.ASKING, "What?").also { stage++ }
|
||||||
22 -> npcl(FacialExpression.FRIENDLY, "I really fancy one of those Blurberry Specials. I never get over to the Gnome Stronghold so I haven't had one for ages!").also { stage++ }
|
22 -> npcl(FacialExpression.FRIENDLY, "I really fancy one of those Blurberry Specials. I never get over to the Gnome Stronghold so I haven't had one for ages!").also { stage++ }
|
||||||
23 -> {
|
23 -> {
|
||||||
if (removeItem(player!!, Items.BLURBERRY_SPECIAL_2064) || removeItem(player!!, Items.PREMADE_BLURB_SP_2028)) {
|
if (removeItem(player!!, Items.BLURBERRY_SPECIAL_2064)) {
|
||||||
sendMessage(player!!, "You give Harold a Blurberry Special.")
|
sendMessage(player!!, "You give Harold a Blurberry Special.")
|
||||||
sendItemDialogue(player!!, Items.BLURBERRY_SPECIAL_2064, "You give Harold a Blurberry Special.").also { stage++ }
|
sendItemDialogue(player!!, Items.BLURBERRY_SPECIAL_2064, "You give Harold a Blurberry Special.").also { stage++ }
|
||||||
|
} else if (removeItem(player!!, Items.BLURBERRY_SPECIAL_9520)) { // This should not be here since 9520 is used by the gnome restaurant minigame.
|
||||||
|
sendMessage(player!!, "You give Harold a Blurberry Special.")
|
||||||
|
sendItemDialogue(player!!, Items.BLURBERRY_SPECIAL_2064, "You give Harold a Blurberry Special.").also { stage++ }
|
||||||
|
} else if (removeItem(player!!, Items.PREMADE_BLURB_SP_2028)) {
|
||||||
|
sendMessage(player!!, "You give Harold a Blurberry Special.")
|
||||||
|
sendItemDialogue(player!!, Items.PREMADE_BLURB_SP_2028, "You give Harold a Blurberry Special.").also { stage++ }
|
||||||
} else {
|
} else {
|
||||||
player(FacialExpression.FRIENDLY, "I'll go and get you one.").also { stage = END_DIALOGUE }
|
player(FacialExpression.FRIENDLY, "I'll go and get you one.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
|
@ -10,15 +10,10 @@ import core.game.node.entity.player.Player
|
|||||||
import core.plugin.Initializable
|
import core.plugin.Initializable
|
||||||
import org.rs09.consts.Items
|
import org.rs09.consts.Items
|
||||||
import org.rs09.consts.NPCs
|
import org.rs09.consts.NPCs
|
||||||
import core.game.node.item.Item
|
|
||||||
|
|
||||||
@Initializable
|
@Initializable
|
||||||
class AchiettiesDialogue(player: Player? = null) : DialoguePlugin(player){
|
class AchiettiesDialogue(player: Player? = null) : DialoguePlugin(player){
|
||||||
|
|
||||||
companion object {
|
|
||||||
const val BRIBE_PRICE = 1_000_000
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||||
openDialogue(player, AchiettiesDialogueFile(), npc)
|
openDialogue(player, AchiettiesDialogueFile(), npc)
|
||||||
return true
|
return true
|
||||||
@ -39,28 +34,30 @@ class AchiettiesDialogueFile : DialogueBuilderFile() {
|
|||||||
|
|
||||||
b.onQuestStages(Quests.HEROES_QUEST, 0,1)
|
b.onQuestStages(Quests.HEROES_QUEST, 0,1)
|
||||||
.branch { player ->
|
.branch { player ->
|
||||||
// Return the current quest stage.
|
return@branch getQuestStage(player, Quests.HEROES_QUEST)
|
||||||
getQuestStage(player, Quests.HEROES_QUEST)
|
}.let{ branch ->
|
||||||
}
|
|
||||||
.let { branch ->
|
|
||||||
branch.onValue(0)
|
branch.onValue(0)
|
||||||
.npcl(FacialExpression.FRIENDLY, "Greetings. Welcome to the Heroes' Guild.")
|
.npcl(FacialExpression.FRIENDLY, "Greetings. Welcome to the Heroes' Guild.")
|
||||||
.npcl("Only the greatest heroes of this land may gain entrance to this guild.")
|
.npcl("Only the greatest heroes of this land may gain entrance to this guild.")
|
||||||
|
// - If the player's skill levels are lower than the quest requirements. (I think this is after 2009)
|
||||||
|
// linel("Before starting this quest, be aware that one or more of your skill levels are lower than what is required to fully complete it.")
|
||||||
.options()
|
.options()
|
||||||
.let { optionBuilder ->
|
.let { optionBuilder ->
|
||||||
optionBuilder.option("I'm a hero, may I apply to join?")
|
optionBuilder.option("I'm a hero, may I apply to join?")
|
||||||
.playerl("I'm a hero. May I apply to join?")
|
.playerl("I'm a hero. May I apply to join?")
|
||||||
.branch { player ->
|
.branch { player ->
|
||||||
if (HeroesQuest.hasRequirements(player)) 1 else 0
|
return@branch if (HeroesQuest.hasRequirements(player)) {
|
||||||
|
1
|
||||||
|
} else {
|
||||||
|
0
|
||||||
}
|
}
|
||||||
.let { branch ->
|
}.let { branch ->
|
||||||
branch.onValue(0)
|
branch.onValue(0)
|
||||||
.npcl("You're a hero? I've never heard of YOU. You are required to possess at least 55 quest points to file an application.")
|
.npcl("You're a hero? I've never heard of YOU. You are required to possess at least 55 quest points to file an application.")
|
||||||
.npcl("Additionally you must have completed the Shield of Arrav, Lost City, Merlin's Crystal and Dragon Slayer quests.")
|
.npcl("Additionally you must have completed the Shield of Arrav, Lost City, Merlin's Crystal and Dragon Slayer quests.")
|
||||||
.end()
|
.end()
|
||||||
branch
|
return@let branch
|
||||||
}
|
}.onValue(1)
|
||||||
.onValue(1)
|
|
||||||
.betweenStage { df, player, _, _ ->
|
.betweenStage { df, player, _, _ ->
|
||||||
if(getQuestStage(player, Quests.HEROES_QUEST) == 0) {
|
if(getQuestStage(player, Quests.HEROES_QUEST) == 0) {
|
||||||
setQuestStage(player, Quests.HEROES_QUEST, 1)
|
setQuestStage(player, Quests.HEROES_QUEST, 1)
|
||||||
@ -82,30 +79,8 @@ class AchiettiesDialogueFile : DialogueBuilderFile() {
|
|||||||
optionBuilder2.option_playerl("I'll start looking for all those things then.")
|
optionBuilder2.option_playerl("I'll start looking for all those things then.")
|
||||||
.npcl("Good luck with that.")
|
.npcl("Good luck with that.")
|
||||||
.end()
|
.end()
|
||||||
optionBuilder2.option_playerl("Or perhaps the guild needs a bit of financing?")
|
|
||||||
.npcl("Perhaps a small 'Loan' of 1 million coins?")
|
|
||||||
// Bribery branch
|
|
||||||
.options()
|
|
||||||
.let { optionBuilder3 ->
|
|
||||||
optionBuilder3.option_playerl("That sounds good")
|
|
||||||
.branch { player ->
|
|
||||||
if (inInventory(player!!, 995, AchiettiesDialogue.BRIBE_PRICE)) 1 else 0
|
|
||||||
}
|
|
||||||
.let { branch ->
|
|
||||||
branch.onValue(1)
|
|
||||||
.playerl(FacialExpression.FRIENDLY, "Here you go!")
|
|
||||||
.endWith { _, player ->
|
|
||||||
removeItem(player, Item(995, AchiettiesDialogue.BRIBE_PRICE), Container.INVENTORY)
|
|
||||||
finishQuest(player, Quests.HEROES_QUEST)
|
|
||||||
}
|
|
||||||
branch.onValue(0)
|
|
||||||
.playerl(FacialExpression.HALF_GUILTY, "Actually, I don't have that much.")
|
|
||||||
.end()
|
|
||||||
}
|
|
||||||
optionBuilder3.option_playerl("1 million coins for this dump? No way")
|
|
||||||
.end()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
optionBuilder.option_playerl("Good for the foremost heroes of the land.")
|
optionBuilder.option_playerl("Good for the foremost heroes of the land.")
|
||||||
.npcl("Yes. Yes it is.")
|
.npcl("Yes. Yes it is.")
|
||||||
.end()
|
.end()
|
||||||
@ -115,7 +90,7 @@ class AchiettiesDialogueFile : DialogueBuilderFile() {
|
|||||||
.npcl("How goes thy quest adventurer?")
|
.npcl("How goes thy quest adventurer?")
|
||||||
.playerl("It's tough. I've not done it yet.")
|
.playerl("It's tough. I've not done it yet.")
|
||||||
.npcl("Remember, the items you need to enter are:")
|
.npcl("Remember, the items you need to enter are:")
|
||||||
.npcl("An Entranan Firebird's feather, A Master Thieves' armband, and a cooked Lava Eel.")
|
.npcl("An Entranan Firebirds' feather, A Master Thieves armband, and a cooked Lava Eel.")
|
||||||
.options()
|
.options()
|
||||||
.let { optionBuilder2 ->
|
.let { optionBuilder2 ->
|
||||||
optionBuilder2.option_playerl("Any hints on getting the thieves armband?")
|
optionBuilder2.option_playerl("Any hints on getting the thieves armband?")
|
||||||
@ -130,29 +105,6 @@ class AchiettiesDialogueFile : DialogueBuilderFile() {
|
|||||||
optionBuilder2.option_playerl("I'll start looking for all those things then.")
|
optionBuilder2.option_playerl("I'll start looking for all those things then.")
|
||||||
.npcl("Good luck with that.")
|
.npcl("Good luck with that.")
|
||||||
.end()
|
.end()
|
||||||
optionBuilder2.option_playerl("Or perhaps the guild needs a bit of financing?")
|
|
||||||
.npcl("Perhaps a small 'Loan' of 1 million coins?")
|
|
||||||
// Bribery branch
|
|
||||||
.options()
|
|
||||||
.let { optionBuilder3 ->
|
|
||||||
optionBuilder3.option_playerl("That sounds good")
|
|
||||||
.branch { player ->
|
|
||||||
if (inInventory(player!!, 995, AchiettiesDialogue.BRIBE_PRICE)) 1 else 0
|
|
||||||
}
|
|
||||||
.let { branch ->
|
|
||||||
branch.onValue(1)
|
|
||||||
.playerl(FacialExpression.FRIENDLY, "Here you go!")
|
|
||||||
.endWith { _, player ->
|
|
||||||
removeItem(player, Item(995, AchiettiesDialogue.BRIBE_PRICE), Container.INVENTORY)
|
|
||||||
finishQuest(player, Quests.HEROES_QUEST)
|
|
||||||
}
|
|
||||||
branch.onValue(0)
|
|
||||||
.playerl(FacialExpression.HALF_GUILTY, "Actually, I don't have that much.")
|
|
||||||
.end()
|
|
||||||
}
|
|
||||||
optionBuilder3.option_playerl("1 million coins for this dump? No way")
|
|
||||||
.end()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -161,14 +113,14 @@ class AchiettiesDialogueFile : DialogueBuilderFile() {
|
|||||||
.npcl("How goes thy quest adventurer?")
|
.npcl("How goes thy quest adventurer?")
|
||||||
.playerl("It's tough. I've not done it yet.")
|
.playerl("It's tough. I've not done it yet.")
|
||||||
.npcl("Remember, the items you need to enter are:")
|
.npcl("Remember, the items you need to enter are:")
|
||||||
.npcl("An Entranan Firebird's feather, A Master Thieves' armband, and a cooked Lava Eel.")
|
.npcl("An Entranan Firebirds' feather, A Master Thieves armband, and a cooked Lava Eel.")
|
||||||
.options()
|
.options()
|
||||||
.let { optionBuilder2 ->
|
.let { optionBuilder2 ->
|
||||||
optionBuilder2.option_playerl("Any hints on getting the thieves armband?")
|
optionBuilder2.option_playerl("Any hints on getting the thieves armband?")
|
||||||
.npcl("I'm sure you have the relevant contacts to find out about that.")
|
.npcl("I'm sure you have the relevant contacts to find out about that.")
|
||||||
.end()
|
.end()
|
||||||
optionBuilder2.option_playerl("Any hints on getting the feather?")
|
optionBuilder2.option_playerl("Any hints on getting the feather?")
|
||||||
.npcl("Not really - other than Entranan Firebirds tend to live on Entrana.")
|
.npcl("Not really - other than Entranan firebirds tend to live on Entrana.")
|
||||||
.end()
|
.end()
|
||||||
optionBuilder2.option_playerl("Any hints on getting the eel?")
|
optionBuilder2.option_playerl("Any hints on getting the eel?")
|
||||||
.npcl("Maybe go and find someone who knows a lot about fishing?")
|
.npcl("Maybe go and find someone who knows a lot about fishing?")
|
||||||
@ -176,49 +128,25 @@ class AchiettiesDialogueFile : DialogueBuilderFile() {
|
|||||||
optionBuilder2.option_playerl("I'll start looking for all those things then.")
|
optionBuilder2.option_playerl("I'll start looking for all those things then.")
|
||||||
.npcl("Good luck with that.")
|
.npcl("Good luck with that.")
|
||||||
.end()
|
.end()
|
||||||
optionBuilder2.option_playerl("Or perhaps the guild needs a bit of financing?")
|
|
||||||
.npcl("Perhaps a small 'Loan' of 1 million coins?")
|
|
||||||
// Bribery branch
|
|
||||||
.options()
|
|
||||||
.let { optionBuilder3 ->
|
|
||||||
optionBuilder3.option_playerl("That sounds good")
|
|
||||||
.branch { player ->
|
|
||||||
if (inInventory(player!!, 995, AchiettiesDialogue.BRIBE_PRICE)) 1 else 0
|
|
||||||
}
|
|
||||||
.let { branch ->
|
|
||||||
branch.onValue(1)
|
|
||||||
.playerl(FacialExpression.FRIENDLY, "Here you go!")
|
|
||||||
.endWith { _, player ->
|
|
||||||
removeItem(player, Item(995, AchiettiesDialogue.BRIBE_PRICE), Container.INVENTORY)
|
|
||||||
finishQuest(player, Quests.HEROES_QUEST)
|
|
||||||
}
|
|
||||||
branch.onValue(0)
|
|
||||||
.playerl(FacialExpression.HALF_GUILTY, "Actually, I don't have that much.")
|
|
||||||
.end()
|
|
||||||
}
|
|
||||||
optionBuilder3.option_playerl("1 million coins for this dump? No way")
|
|
||||||
.end()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
b.onQuestStages(Quests.HEROES_QUEST, 6)
|
b.onQuestStages(Quests.HEROES_QUEST, 6)
|
||||||
.npcl("Greetings. Welcome to the Heroes' Guild.")
|
.npcl("Greetings. Welcome to the Heroes' Guild.")
|
||||||
.npcl("How goes thy quest adventurer?")
|
.npcl("How goes thy quest adventurer?")
|
||||||
.branch { player ->
|
.branch { player ->
|
||||||
if (HeroesQuest.allItemsInInventory(player)) 1 else 0
|
return@branch if (HeroesQuest.allItemsInInventory(player)) { 1 } else { 0 }
|
||||||
}
|
}.let { branch ->
|
||||||
.let { branch ->
|
|
||||||
branch.onValue(0)
|
branch.onValue(0)
|
||||||
.playerl("It's tough. I've not done it yet.")
|
.playerl("It's tough. I've not done it yet.")
|
||||||
.npcl("Remember, the items you need to enter are:")
|
.npcl("Remember, the items you need to enter are:")
|
||||||
.npcl("An Entranan Firebird's feather, A Master Thieves' armband, and a cooked Lava Eel.")
|
.npcl("An Entranan Firebirds' feather, A Master Thieves armband, and a cooked Lava Eel.")
|
||||||
.options()
|
.options()
|
||||||
.let { optionBuilder2 ->
|
.let { optionBuilder2 ->
|
||||||
optionBuilder2.option_playerl("Any hints on getting the thieves armband?")
|
optionBuilder2.option_playerl("Any hints on getting the thieves armband?")
|
||||||
.npcl("I'm sure you have the relevant contacts to find out about that.")
|
.npcl("I'm sure you have the relevant contacts to find out about that.")
|
||||||
.end()
|
.end()
|
||||||
optionBuilder2.option_playerl("Any hints on getting the feather?")
|
optionBuilder2.option_playerl("Any hints on getting the feather?")
|
||||||
.npcl("Not really - other than Entranan Firebirds tend to live on Entrana.")
|
.npcl("Not really - other than Entranan firebirds tend to live on Entrana.")
|
||||||
.end()
|
.end()
|
||||||
optionBuilder2.option_playerl("Any hints on getting the eel?")
|
optionBuilder2.option_playerl("Any hints on getting the eel?")
|
||||||
.npcl("Maybe go and find someone who knows a lot about fishing?")
|
.npcl("Maybe go and find someone who knows a lot about fishing?")
|
||||||
@ -226,30 +154,8 @@ class AchiettiesDialogueFile : DialogueBuilderFile() {
|
|||||||
optionBuilder2.option_playerl("I'll start looking for all those things then.")
|
optionBuilder2.option_playerl("I'll start looking for all those things then.")
|
||||||
.npcl("Good luck with that.")
|
.npcl("Good luck with that.")
|
||||||
.end()
|
.end()
|
||||||
optionBuilder2.option_playerl("Or perhaps the guild needs a bit of financing?")
|
|
||||||
.npcl("Perhaps a small 'Loan' of 1 million coins?")
|
|
||||||
// Bribery branch
|
|
||||||
.options()
|
|
||||||
.let { optionBuilder3 ->
|
|
||||||
optionBuilder3.option_playerl("That sounds good")
|
|
||||||
.branch { player ->
|
|
||||||
if (inInventory(player!!, 995, AchiettiesDialogue.BRIBE_PRICE)) 1 else 0
|
|
||||||
}
|
|
||||||
.let { branch ->
|
|
||||||
branch.onValue(1)
|
|
||||||
.playerl(FacialExpression.FRIENDLY, "Here you go!")
|
|
||||||
.endWith { _, player ->
|
|
||||||
removeItem(player, Item(995, AchiettiesDialogue.BRIBE_PRICE), Container.INVENTORY)
|
|
||||||
finishQuest(player, Quests.HEROES_QUEST)
|
|
||||||
}
|
|
||||||
branch.onValue(0)
|
|
||||||
.playerl(FacialExpression.HALF_GUILTY, "Actually, I don't have that much.")
|
|
||||||
.end()
|
|
||||||
}
|
|
||||||
optionBuilder3.option_playerl("1 million coins for this dump? No way")
|
|
||||||
.end()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
branch.onValue(1)
|
branch.onValue(1)
|
||||||
.playerl("I have all the required items.")
|
.playerl("I have all the required items.")
|
||||||
.npcl("I see that you have. Well done. Now, to complete the quest, and gain entry to the Heroes' Guild in your final task all that you have to do is...")
|
.npcl("I see that you have. Well done. Now, to complete the quest, and gain entry to the Heroes' Guild in your final task all that you have to do is...")
|
||||||
|
@ -124,7 +124,6 @@ class CivilianDialogue(player: Player? = null) : DialoguePlugin(player) {
|
|||||||
if (removeItem(player, cat)){
|
if (removeItem(player, cat)){
|
||||||
player.familiarManager.removeDetails(cat)
|
player.familiarManager.removeDetails(cat)
|
||||||
addItem(player, Items.DEATH_RUNE_560, 100)
|
addItem(player, Items.DEATH_RUNE_560, 100)
|
||||||
player.incrementAttribute("/save:stats_manager:cats_sold");
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -173,7 +172,6 @@ class CatTrade : InteractionListener{
|
|||||||
// Remove the cat
|
// Remove the cat
|
||||||
player.familiarManager.removeDetails(used.id)
|
player.familiarManager.removeDetails(used.id)
|
||||||
addItem(player, Items.DEATH_RUNE_560, 100)
|
addItem(player, Items.DEATH_RUNE_560, 100)
|
||||||
player.incrementAttribute("/save:stats_manager:cats_sold");
|
|
||||||
openDialogue(player, dialogue, with as NPC)
|
openDialogue(player, dialogue, with as NPC)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,6 @@ import content.data.Quests
|
|||||||
import core.api.*
|
import core.api.*
|
||||||
import org.rs09.consts.Items
|
import org.rs09.consts.Items
|
||||||
import core.game.dialogue.DialogueFile
|
import core.game.dialogue.DialogueFile
|
||||||
import core.game.dialogue.FacialExpression
|
|
||||||
import core.tools.END_DIALOGUE
|
import core.tools.END_DIALOGUE
|
||||||
|
|
||||||
class CommanderMontaiDialogue : DialogueFile(){
|
class CommanderMontaiDialogue : DialogueFile(){
|
||||||
@ -13,19 +12,19 @@ class CommanderMontaiDialogue : DialogueFile(){
|
|||||||
if (questStage == 10) {
|
if (questStage == 10) {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello.").also { stage++ }
|
0 -> playerl("Hello.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Hello traveller, are you here to help or just to watch?").also { stage++ }
|
1 -> npcl("Hello traveller, are you here to help or just to watch?").also { stage++ }
|
||||||
2 -> playerl("I've been sent by King Bolren to retrieve the orb of protection.").also { stage++ }
|
2 -> playerl("I've been sent by King Bolren to retrieve the orb of protection.").also { stage++ }
|
||||||
3 -> npcl(FacialExpression.OLD_NORMAL, "Excellent we need all the help we can get.").also { stage++ }
|
3 -> npcl("Excellent we need all the help we can get.").also { stage++ }
|
||||||
4 -> npcl(FacialExpression.OLD_NORMAL, "I'm Commander Montai. The orb is in the Khazard stronghold to the north, but until we weaken their defences we can't get close.").also { stage++ }
|
4 -> npcl("I'm Commander Montai. The orb is in the Khazard stronghold to the north, but until we weaken their defences we can't get close.").also { stage++ }
|
||||||
5 -> playerl("What can I do?").also { stage++ }
|
5 -> playerl("What can I do?").also { stage++ }
|
||||||
6 -> npcl(FacialExpression.OLD_NORMAL, "Firstly we need to strengthen our own defences. We desperately need wood to make more battlements, once the battlements are gone it's all over. Six loads of normal logs should do it.").also { stage++ }
|
6 -> npcl("Firstly we need to strengthen our own defences. We desperately need wood to make more battlements, once the battlements are gone it's all over. Six loads of normal logs should do it.").also { stage++ }
|
||||||
7 -> options("Ok, I'll gather some wood.", "Sorry, I no longer want to be involved.").also { stage++ }
|
7 -> options("Ok, I'll gather some wood.", "Sorry, I no longer want to be involved.").also { stage++ }
|
||||||
8 -> when (buttonID) {
|
8 -> when (buttonID) {
|
||||||
1 -> playerl("Ok, I'll gather some wood.").also { stage = 10 }
|
1 -> playerl("Ok, I'll gather some wood.").also { stage = 10 }
|
||||||
2 -> playerl("Sorry, I no longer want to be involved.").also { stage = 9 }
|
2 -> playerl("Sorry, I no longer want to be involved.").also { stage = 9 }
|
||||||
}
|
}
|
||||||
9 -> npcl(FacialExpression.OLD_NORMAL, "That's a shame, we could have done with your help.").also { stage = END_DIALOGUE }
|
9 -> npcl("That's a shame, we could have done with your help.").also { stage = END_DIALOGUE }
|
||||||
10 -> npcl(FacialExpression.OLD_NORMAL, "Please be as quick as you can, I don't know how much longer we can hold out.").also {
|
10 -> npcl("Please be as quick as you can, I don't know how much longer we can hold out.").also {
|
||||||
setQuestStage(player!!, Quests.TREE_GNOME_VILLAGE, 20)
|
setQuestStage(player!!, Quests.TREE_GNOME_VILLAGE, 20)
|
||||||
stage = END_DIALOGUE
|
stage = END_DIALOGUE
|
||||||
}
|
}
|
||||||
@ -34,43 +33,43 @@ class CommanderMontaiDialogue : DialogueFile(){
|
|||||||
if(inInventory(player!!, Items.LOGS_1511,6)){
|
if(inInventory(player!!, Items.LOGS_1511,6)){
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello.").also { stage++ }
|
0 -> playerl("Hello.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Hello again, we're still desperate for wood soldier.").also { stage++ }
|
1 -> npcl("Hello again, we're still desperate for wood soldier.").also { stage++ }
|
||||||
2 -> playerl("I have some here. (You give six loads of logs to the commander.)").also{ stage++ }
|
2 -> playerl("I have some here. (You give six loads of logs to the commander.)").also{ stage++ }
|
||||||
3 -> {
|
3 -> {
|
||||||
// Remove the 6 normal logs
|
// Remove the 6 normal logs
|
||||||
for(i in 1..6) { removeItem(player!!,Items.LOGS_1511) }
|
for(i in 1..6) { removeItem(player!!,Items.LOGS_1511) }
|
||||||
setQuestStage(player!!, Quests.TREE_GNOME_VILLAGE, 25)
|
setQuestStage(player!!, Quests.TREE_GNOME_VILLAGE, 25)
|
||||||
npcl(FacialExpression.OLD_NORMAL, "That's excellent, now we can make more defensive battlements. Give me a moment to organize the troops and then come speak to me. I'll inform you of our next phase of attack.")
|
npcl("That's excellent, now we can make more defensive battlements. Give me a moment to organize the troops and then come speak to me. I'll inform you of our next phase of attack.")
|
||||||
stage = END_DIALOGUE
|
stage = END_DIALOGUE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello.").also { stage++ }
|
0 -> playerl("Hello.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Hello again, we're still desperate for wood soldier. We need six loads of normal logs.").also { stage++ }
|
1 -> npcl("Hello again, we're still desperate for wood soldier. We need six loads of normal logs.").also { stage++ }
|
||||||
2 -> playerl("I'll see what I can do.").also { stage++ }
|
2 -> playerl("I'll see what I can do.").also { stage++ }
|
||||||
3 -> npcl(FacialExpression.OLD_NORMAL, "Thank you.").also { stage = END_DIALOGUE }
|
3 -> npcl("Thank you.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (questStage == 25) {
|
} else if (questStage == 25) {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("How are you doing Montai?").also { stage++ }
|
0 -> playerl("How are you doing Montai?").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "We're hanging in there soldier. For the next phase of our attack we need to breach their stronghold.").also { stage++ }
|
1 -> npcl("We're hanging in there soldier. For the next phase of our attack we need to breach their stronghold.").also { stage++ }
|
||||||
2 -> npcl(FacialExpression.OLD_NORMAL, "The ballista can break through the stronghold wall, and then we can advance and seize back the orb.").also { stage++ }
|
2 -> npcl("The ballista can break through the stronghold wall, and then we can advance and seize back the orb.").also { stage++ }
|
||||||
3 -> playerl("So what's the problem?").also { stage++ }
|
3 -> playerl("So what's the problem?").also { stage++ }
|
||||||
4 -> npcl(FacialExpression.OLD_NORMAL, "From this distance we can't get an accurate enough shot. We need the correct coordinates of the stronghold for a direct hit. I've sent out three tracker gnomes to gather them.").also { stage++ }
|
4 -> npcl("From this distance we can't get an accurate enough shot. We need the correct coordinates of the stronghold for a direct hit. I've sent out three tracker gnomes to gather them.").also { stage++ }
|
||||||
5 -> playerl("Have they returned?").also { stage++ }
|
5 -> playerl("Have they returned?").also { stage++ }
|
||||||
6 -> npcl(FacialExpression.OLD_NORMAL, "I'm afraid not, and we're running out of time. I need you to go into the heart of the battlefield, find the trackers, and bring back the coordinates.").also { stage++ }
|
6 -> npcl("I'm afraid not, and we're running out of time. I need you to go into the heart of the battlefield, find the trackers, and bring back the coordinates.").also { stage++ }
|
||||||
7 -> npcl(FacialExpression.OLD_NORMAL, "Do you think you can do it?").also { stage++ }
|
7 -> npcl("Do you think you can do it?").also { stage++ }
|
||||||
8 -> options("No, I've had enough of your battle.", "I'll try my best.").also { stage++ }
|
8 -> options("No, I've had enough of your battle.", "I'll try my best.").also { stage++ }
|
||||||
9 -> when(buttonID) {
|
9 -> when(buttonID) {
|
||||||
1 -> playerl("No, I've had enough of your battle.").also { stage = 10 }
|
1 -> playerl("No, I've had enough of your battle.").also { stage = 10 }
|
||||||
2 -> playerl("I'll try my best.").also { stage = 11 }
|
2 -> playerl("I'll try my best.").also { stage = 11 }
|
||||||
}
|
}
|
||||||
10 -> npcl(FacialExpression.OLD_NORMAL, "I understand, this isn't your fight.").also { stage = END_DIALOGUE }
|
10 -> npcl("I understand, this isn't your fight.").also { stage = END_DIALOGUE }
|
||||||
11 -> npcl(FacialExpression.OLD_NORMAL, "Thank you, you're braver than most.").also { stage++ }
|
11 -> npcl("Thank you, you're braver than most.").also { stage++ }
|
||||||
12 -> npcl(FacialExpression.OLD_NORMAL, "I don't know how long I will be able to hold out. Once you have the coordinates come back and fire the ballista right into those monsters.").also { stage++ }
|
12 -> npcl("I don't know how long I will be able to hold out. Once you have the coordinates come back and fire the ballista right into those monsters.").also { stage++ }
|
||||||
13 -> npcl(FacialExpression.OLD_NORMAL, "If you can retrieve the orb and bring safety back to my people, none of the blood spilled on this field will be in vain.").also {
|
13 -> npcl("If you can retrieve the orb and bring safety back to my people, none of the blood spilled on this field will be in vain.").also {
|
||||||
setQuestStage(player!!, Quests.TREE_GNOME_VILLAGE, 30)
|
setQuestStage(player!!, Quests.TREE_GNOME_VILLAGE, 30)
|
||||||
stage = END_DIALOGUE
|
stage = END_DIALOGUE
|
||||||
}
|
}
|
||||||
@ -78,29 +77,29 @@ class CommanderMontaiDialogue : DialogueFile(){
|
|||||||
} else if (questStage == 30) {
|
} else if (questStage == 30) {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello.").also { stage++ }
|
0 -> playerl("Hello.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Hello warrior. We need the coordinates for a direct hit from the ballista.").also { stage++ }
|
1 -> npcl("Hello warrior. We need the coordinates for a direct hit from the ballista.").also { stage++ }
|
||||||
2 -> npcl(FacialExpression.OLD_NORMAL, "Once you have a direct hit you will be able to enter the stronghold and retrieve the orb.").also { stage = END_DIALOGUE }
|
2 -> npcl("Once you have a direct hit you will be able to enter the stronghold and retrieve the orb.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
} else if (questStage == 31) {
|
} else if (questStage == 31) {
|
||||||
if(inInventory(player!!,Items.ORB_OF_PROTECTION_587)){
|
if(inInventory(player!!,Items.ORB_OF_PROTECTION_587)){
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("I have the orb of protection.").also { stage++ }
|
0 -> playerl("I have the orb of protection.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_HAPPY, "Incredible, for a human you really are something.").also { stage++ }
|
1 -> npcl("Incredible, for a human you really are something.").also { stage++ }
|
||||||
2 -> playerl("Thanks... I think!").also { stage++ }
|
2 -> playerl("Thanks... I think!").also { stage++ }
|
||||||
3 -> npcl(FacialExpression.OLD_NORMAL, "I'll stay here with my troops and try and hold Khazard's men back. You return the orb to the gnome village. Go as quick as you can, the village is still unprotected.").also { stage = END_DIALOGUE }
|
3 -> npcl("I'll stay here with my troops and try and hold Khazard's men back. You return the orb to the gnome village. Go as quick as you can, the village is still unprotected.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("I've breached the stronghold.").also { stage++ }
|
0 -> playerl("I've breached the stronghold.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "I saw, that was a beautiful sight. The Khazard troops didn't know what hit them.").also { stage++ }
|
1 -> npcl("I saw, that was a beautiful sight. The Khazard troops didn't know what hit them.").also { stage++ }
|
||||||
2 -> npcl(FacialExpression.OLD_NORMAL, "Now is the time to retrieve the orb. It's all in your hands. I'll be praying for you.").also { stage = END_DIALOGUE }
|
2 -> npcl("Now is the time to retrieve the orb. It's all in your hands. I'll be praying for you.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (questStage != 0){
|
} else if (questStage != 0){
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello Montai, how are you?").also { stage++ }
|
0 -> playerl("Hello Montai, how are you?").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "I'm ok, this battle is going to take longer to win than I expected. The Khazard troops won't give up even without the orb.").also { stage++ }
|
1 -> npcl("I'm ok, this battle is going to take longer to win than I expected. The Khazard troops won't give up even without the orb.").also { stage++ }
|
||||||
2 -> playerl("Hang in there.").also { stage = END_DIALOGUE }
|
2 -> playerl("Hang in there.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,6 @@ import org.rs09.consts.Items
|
|||||||
import core.game.dialogue.DialogueFile
|
import core.game.dialogue.DialogueFile
|
||||||
import content.region.kandarin.quest.tree.TreeGnomeVillage.Companion.mazeEntrance
|
import content.region.kandarin.quest.tree.TreeGnomeVillage.Companion.mazeEntrance
|
||||||
import content.region.kandarin.quest.tree.TreeGnomeVillage.Companion.mazeVillage
|
import content.region.kandarin.quest.tree.TreeGnomeVillage.Companion.mazeVillage
|
||||||
import core.game.dialogue.FacialExpression
|
|
||||||
import core.game.world.GameWorld.Pulser
|
import core.game.world.GameWorld.Pulser
|
||||||
import core.tools.END_DIALOGUE
|
import core.tools.END_DIALOGUE
|
||||||
|
|
||||||
@ -46,30 +45,30 @@ class ElkoyDialogue : DialogueFile(){
|
|||||||
inInventory(player!!, Items.ORBS_OF_PROTECTION_588) && followLocation == "exit" -> {
|
inInventory(player!!, Items.ORBS_OF_PROTECTION_588) && followLocation == "exit" -> {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello Elkoy. I have the orb.").also { stage++ }
|
0 -> playerl("Hello Elkoy. I have the orb.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_HAPPY, "Take it to King Bolren, I'm sure he'll be pleased to see you.").also { stage++ }
|
1 -> npcl("Take it to King Bolren, I'm sure he'll be pleased to see you.").also { stage++ }
|
||||||
2 -> options("Alright, I'll do that.", "Can you guide me out of the maze now?").also { stage++ }
|
2 -> options("Alright, I'll do that.", "Can you guide me out of the maze now?").also { stage++ }
|
||||||
3 -> when(buttonID) {
|
3 -> when(buttonID) {
|
||||||
1 -> playerl("Alright, I'll do that.").also { stage = END_DIALOGUE }
|
1 -> playerl("Alright, I'll do that.").also { stage = END_DIALOGUE }
|
||||||
2 -> playerl("Can you guide me out of the maze now?").also { stage = 4 }
|
2 -> playerl("Can you guide me out of the maze now?").also { stage = 4 }
|
||||||
}
|
}
|
||||||
4 -> npcl(FacialExpression.OLD_NORMAL, "If you like, but please take the orb to King Bolren soon.").also { stage++ }
|
4 -> npcl("If you like, but please take the orb to King Bolren soon.").also { stage++ }
|
||||||
5 -> {
|
5 -> {
|
||||||
travelCutscene(player!!, mazeEntrance)
|
travelCutscene(player!!, mazeEntrance)
|
||||||
stage++
|
stage++
|
||||||
}
|
}
|
||||||
6 -> npcl(FacialExpression.OLD_NORMAL, "Here we are. Please don't lose the orb!").also { stage = END_DIALOGUE }
|
6 -> npcl("Here we are. Please don't lose the orb!").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
inInventory(player!!, Items.ORB_OF_PROTECTION_587) -> {
|
inInventory(player!!, Items.ORB_OF_PROTECTION_587) -> {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello Elkoy.").also { stage++ }
|
0 -> playerl("Hello Elkoy.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "You're back! And the orb?").also { stage++ }
|
1 -> npcl("You're back! And the orb?").also { stage++ }
|
||||||
2 -> playerl("I have it here.").also { stage++ }
|
2 -> playerl("I have it here.").also { stage++ }
|
||||||
3 -> {
|
3 -> {
|
||||||
if(locY > 3161){
|
if(locY > 3161){
|
||||||
npcl(FacialExpression.OLD_NORMAL, "You're our saviour. Please return it to the village and we are all saved. Would you like me to show you the way to the village?").also { stage++ }
|
npcl("You're our saviour. Please return it to the village and we are all saved. Would you like me to show you the way to the village?").also { stage++ }
|
||||||
} else {
|
} else {
|
||||||
npcl(FacialExpression.OLD_NORMAL, "Take the orb to King Bolren, I'm sure he'll be pleased to see you.").also { stage = END_DIALOGUE }
|
npcl("Take the orb to King Bolren, I'm sure he'll be pleased to see you.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
4 -> options("Yes please.", "No thanks Elkoy.").also { stage++ }
|
4 -> options("Yes please.", "No thanks Elkoy.").also { stage++ }
|
||||||
@ -77,24 +76,24 @@ class ElkoyDialogue : DialogueFile(){
|
|||||||
1 -> playerl("Yes please.").also { stage = 7 }
|
1 -> playerl("Yes please.").also { stage = 7 }
|
||||||
2 -> playerl("No thanks Elkoy.").also { stage = 6 }
|
2 -> playerl("No thanks Elkoy.").also { stage = 6 }
|
||||||
}
|
}
|
||||||
6 -> npcl(FacialExpression.OLD_NORMAL, "Ok then, take care.").also { stage = END_DIALOGUE }
|
6 -> npcl("Ok then, take care.").also { stage = END_DIALOGUE }
|
||||||
7 -> travelCutscene(player!!, mazeVillage).also { stage++ }
|
7 -> travelCutscene(player!!, mazeVillage).also { stage++ }
|
||||||
8 -> npcl(FacialExpression.OLD_NORMAL, "Here we are. Take the orb to King Bolren, I'm sure he'll be pleased to see you.").also { stage = END_DIALOGUE }
|
8 -> npcl("Here we are. Take the orb to King Bolren, I'm sure he'll be pleased to see you.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
inInventory(player!!, Items.ORBS_OF_PROTECTION_588) || questStage == 100 -> {
|
inInventory(player!!, Items.ORBS_OF_PROTECTION_588) || questStage == 100 -> {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello Elkoy.").also { stage++ }
|
0 -> playerl("Hello Elkoy.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_HAPPY, "You truly are a hero.").also { stage++ }
|
1 -> npcl("You truly are a hero.").also { stage++ }
|
||||||
2 -> playerl("Thanks.").also { stage++ }
|
2 -> playerl("Thanks.").also { stage++ }
|
||||||
3 -> npcl(FacialExpression.OLD_NORMAL, "You saved us by defeating the warlord. I'm humbled and wish you well.").also { stage++ }
|
3 -> npcl("You saved us by defeating the warlord. I'm humbled and wish you well.").also { stage++ }
|
||||||
4 -> npcl(FacialExpression.OLD_NORMAL, "Would you like me to show you the way to the ${followLocation}?").also { stage++ }
|
4 -> npcl("Would you like me to show you the way to the ${followLocation}?").also { stage++ }
|
||||||
5 -> options("Yes please.", "No thanks Elkoy.").also { stage++ }
|
5 -> options("Yes please.", "No thanks Elkoy.").also { stage++ }
|
||||||
6 -> when(buttonID) {
|
6 -> when(buttonID) {
|
||||||
1 -> playerl("Yes please.").also { stage = 8 }
|
1 -> playerl("Yes please.").also { stage = 8 }
|
||||||
2 -> playerl("No thanks Elkoy.").also { stage = 7 }
|
2 -> playerl("No thanks Elkoy.").also { stage = 7 }
|
||||||
}
|
}
|
||||||
7 -> npcl(FacialExpression.OLD_NORMAL, "Ok then, take care.").also { stage = END_DIALOGUE }
|
7 -> npcl("Ok then, take care.").also { stage = END_DIALOGUE }
|
||||||
8 -> {
|
8 -> {
|
||||||
if(followLocation == "village") {
|
if(followLocation == "village") {
|
||||||
travelCutscene(player!!, mazeVillage)
|
travelCutscene(player!!, mazeVillage)
|
||||||
@ -105,33 +104,33 @@ class ElkoyDialogue : DialogueFile(){
|
|||||||
stage++
|
stage++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
9 -> npcl(FacialExpression.OLD_NORMAL, "Here we are. Have a safe journey.").also { stage = END_DIALOGUE }
|
9 -> npcl("Here we are. Have a safe journey.").also { stage = END_DIALOGUE }
|
||||||
10 -> npcl(FacialExpression.OLD_NORMAL, "Here we are. Feel free to have a look around.").also { stage = END_DIALOGUE }
|
10 -> npcl("Here we are. Feel free to have a look around.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
questStage == 0 -> {
|
questStage == 0 -> {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello there.").also { stage++ }
|
0 -> playerl("Hello there.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Hello, welcome to our maze. I'm Elkoy the tree gnome.").also { stage++ }
|
1 -> npcl("Hello, welcome to our maze. I'm Elkoy the tree gnome.").also { stage++ }
|
||||||
2 -> playerl("I haven't heard of your sort.").also { stage++ }
|
2 -> playerl("I haven't heard of your sort.").also { stage++ }
|
||||||
3 -> npcl(FacialExpression.OLD_SAD, "There's not many of us left. Once you could find tree gnomes anywhere in the world, now we hide in small groups to avoid capture.").also { stage++ }
|
3 -> npcl("There's not many of us left. Once you could find tree gnomes anywhere in the world, now we hide in small groups to avoid capture.").also { stage++ }
|
||||||
4 -> playerl("Capture from whom?").also { stage++ }
|
4 -> playerl("Capture from whom?").also { stage++ }
|
||||||
5 -> npcl(FacialExpression.OLD_NORMAL, "Tree gnomes have been hunted for so called 'fun' since as long as I can remember.").also { stage++ }
|
5 -> npcl("Tree gnomes have been hunted for so called 'fun' since as long as I can remember.").also { stage++ }
|
||||||
6 -> npcl(FacialExpression.OLD_NORMAL, "Our main threat nowadays are General Khazard's troops. They know no mercy, but are also very dense. They'll never find their way through our maze.").also { stage++ }
|
6 -> npcl("Our main threat nowadays are General Khazard's troops. They know no mercy, but are also very dense. They'll never find their way through our maze.").also { stage++ }
|
||||||
7 -> npcl(FacialExpression.OLD_NORMAL, "Have fun.").also { stage = END_DIALOGUE }
|
7 -> npcl("Have fun.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
questStage in 1..39 -> {
|
questStage in 1..39 -> {
|
||||||
when (stage) {
|
when (stage) {
|
||||||
0 -> npcl(FacialExpression.OLD_DISTRESSED, "Oh my! The orb, they have the orb. We're doomed.").also { stage++ }
|
0 -> npcl("Oh my! The orb, they have the orb. We're doomed.").also { stage++ }
|
||||||
1 -> playerl("Perhaps I'll be able to get it back for you.").also { stage++ }
|
1 -> playerl("Perhaps I'll be able to get it back for you.").also { stage++ }
|
||||||
2 -> npcl(FacialExpression.OLD_NORMAL, "Would you like me to show you the way to the ${followLocation}?").also { stage++ }
|
2 -> npcl("Would you like me to show you the way to the ${followLocation}?").also { stage++ }
|
||||||
3 -> options("Yes please.", "No thanks Elkoy.").also { stage++ }
|
3 -> options("Yes please.", "No thanks Elkoy.").also { stage++ }
|
||||||
4 -> when (buttonID) {
|
4 -> when (buttonID) {
|
||||||
1 -> playerl("Yes please.").also { stage = 6 }
|
1 -> playerl("Yes please.").also { stage = 6 }
|
||||||
2 -> playerl("No thanks Elkoy.").also { stage = 5 }
|
2 -> playerl("No thanks Elkoy.").also { stage = 5 }
|
||||||
}
|
}
|
||||||
5 -> npcl(FacialExpression.OLD_NORMAL, "Ok then, take care.").also { stage = END_DIALOGUE }
|
5 -> npcl("Ok then, take care.").also { stage = END_DIALOGUE }
|
||||||
6 -> {
|
6 -> {
|
||||||
if(followLocation == "village")
|
if(followLocation == "village")
|
||||||
travelCutscene(player!!, mazeVillage)
|
travelCutscene(player!!, mazeVillage)
|
||||||
@ -139,20 +138,20 @@ class ElkoyDialogue : DialogueFile(){
|
|||||||
travelCutscene(player!!, mazeEntrance)
|
travelCutscene(player!!, mazeEntrance)
|
||||||
stage++
|
stage++
|
||||||
}
|
}
|
||||||
7 -> npcl(FacialExpression.OLD_NORMAL, "Here we are. I hope you get the orb back soon.").also { stage = END_DIALOGUE }
|
7 -> npcl("Here we are. I hope you get the orb back soon.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
questStage == 40 -> {
|
questStage == 40 -> {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello Elkoy.").also { stage++ }
|
0 -> playerl("Hello Elkoy.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Did you hear? Khazard's men have pillaged the village! They slaughtered many, and took the other orbs in an attempt to lead us out of the maze. When will the misery end?").also { stage++ }
|
1 -> npcl("Did you hear? Khazard's men have pillaged the village! They slaughtered many, and took the other orbs in an attempt to lead us out of the maze. When will the misery end?").also { stage++ }
|
||||||
2 -> npcl(FacialExpression.OLD_NORMAL, "Would you like me to show you the way to the ${followLocation}?").also { stage++ }
|
2 -> npcl("Would you like me to show you the way to the ${followLocation}?").also { stage++ }
|
||||||
3 -> options("Yes please.", "No thanks Elkoy.").also { stage++ }
|
3 -> options("Yes please.", "No thanks Elkoy.").also { stage++ }
|
||||||
4 -> when(buttonID) {
|
4 -> when(buttonID) {
|
||||||
1 -> playerl("Yes please.").also { stage = 6 }
|
1 -> playerl("Yes please.").also { stage = 6 }
|
||||||
2 -> playerl("No thanks Elkoy.").also { stage = 5 }
|
2 -> playerl("No thanks Elkoy.").also { stage = 5 }
|
||||||
}
|
}
|
||||||
5 -> npcl(FacialExpression.OLD_NORMAL, "Ok then, take care.").also { stage = END_DIALOGUE }
|
5 -> npcl("Ok then, take care.").also { stage = END_DIALOGUE }
|
||||||
6 -> {
|
6 -> {
|
||||||
if(followLocation == "village") {
|
if(followLocation == "village") {
|
||||||
travelCutscene(player!!, mazeVillage)
|
travelCutscene(player!!, mazeVillage)
|
||||||
@ -162,8 +161,8 @@ class ElkoyDialogue : DialogueFile(){
|
|||||||
stage++
|
stage++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
7 -> npcl(FacialExpression.OLD_NORMAL, "Please try to get our orbs back for us, otherwise the village is doomed!").also { stage = END_DIALOGUE }
|
7 -> npcl("Please try to get our orbs back for us, otherwise the village is doomed!").also { stage = END_DIALOGUE }
|
||||||
8 -> npcl(FacialExpression.OLD_NORMAL, "Here we are. Despite what has happened here, I hope you feel welcome.").also { stage = END_DIALOGUE }
|
8 -> npcl("Here we are. Despite what has happened here, I hope you feel welcome.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,6 @@ import org.rs09.consts.Items
|
|||||||
import org.rs09.consts.NPCs
|
import org.rs09.consts.NPCs
|
||||||
import core.game.dialogue.DialogueFile
|
import core.game.dialogue.DialogueFile
|
||||||
import content.region.kandarin.quest.tree.TreeGnomeVillage.Companion.mazeEntrance
|
import content.region.kandarin.quest.tree.TreeGnomeVillage.Companion.mazeEntrance
|
||||||
import core.game.dialogue.FacialExpression
|
|
||||||
import core.game.world.GameWorld
|
import core.game.world.GameWorld
|
||||||
import core.tools.END_DIALOGUE
|
import core.tools.END_DIALOGUE
|
||||||
|
|
||||||
@ -21,37 +20,37 @@ class KingBolrenDialogue : DialogueFile() {
|
|||||||
questStage < 10 -> {
|
questStage < 10 -> {
|
||||||
when (stage) {
|
when (stage) {
|
||||||
0 -> playerl("Hello.").also { stage++ }
|
0 -> playerl("Hello.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Well hello stranger. My name's Bolren, I'm the king of the tree gnomes.").also { stage++ }
|
1 -> npcl("Well hello stranger. My name's Bolren, I'm the king of the tree gnomes.").also { stage++ }
|
||||||
2 -> npcl(FacialExpression.OLD_NORMAL, "I'm surprised you made it in, maybe I made the maze too easy.").also { stage++ }
|
2 -> npcl("I'm surprised you made it in, maybe I made the maze too easy.").also { stage++ }
|
||||||
3 -> playerl("Maybe.").also { stage++ }
|
3 -> playerl("Maybe.").also { stage++ }
|
||||||
4 -> npcl(FacialExpression.OLD_NORMAL, "I'm afraid I have more serious concerns at the moment. Very serious.").also { stage++ }
|
4 -> npcl("I'm afraid I have more serious concerns at the moment. Very serious.").also { stage++ }
|
||||||
5 -> options("I'll leave you to it then.", "Can I help at all?").also { stage++ }
|
5 -> options("I'll leave you to it then.", "Can I help at all?").also { stage++ }
|
||||||
6 -> when (buttonID) {
|
6 -> when (buttonID) {
|
||||||
1 -> playerl("I'll leave you to it then.").also { stage = 7 }
|
1 -> playerl("I'll leave you to it then.").also { stage = 7 }
|
||||||
2 -> playerl("Can I help at all?").also { stage = 8 }
|
2 -> playerl("Can I help at all?").also { stage = 8 }
|
||||||
}
|
}
|
||||||
7 -> npcl(FacialExpression.OLD_NORMAL, "Ok, take care.").also { stage = END_DIALOGUE }
|
7 -> npcl("Ok, take care.").also { stage = END_DIALOGUE }
|
||||||
8 -> npcl(FacialExpression.OLD_NORMAL, "I'm glad you asked.").also { stage++ }
|
8 -> npcl("I'm glad you asked.").also { stage++ }
|
||||||
9 -> npcl(FacialExpression.OLD_SAD, "The truth is my people are in grave danger. We have always been protected by the Spirit Tree. No creature of dark can harm us while its three orbs are in place.").also { stage++ }
|
9 -> npcl("The truth is my people are in grave danger. We have always been protected by the Spirit Tree. No creature of dark can harm us while its three orbs are in place.").also { stage++ }
|
||||||
10 -> npcl(FacialExpression.OLD_SAD, "We are not a violent race, but we fight when we must. Many gnomes have fallen battling the dark forces of Khazard to the North.").also { stage++ }
|
10 -> npcl("We are not a violent race, but we fight when we must. Many gnomes have fallen battling the dark forces of Khazard to the North.").also { stage++ }
|
||||||
11 -> npcl(FacialExpression.OLD_SAD, "We became desperate, so we took one orb of protection to the battlefield. It was a foolish move.").also { stage++ }
|
11 -> npcl("We became desperate, so we took one orb of protection to the battlefield. It was a foolish move.").also { stage++ }
|
||||||
12 -> npcl(FacialExpression.OLD_NORMAL, "Khazard troops seized the orb. Now we are completely defenceless.").also { stage++ }
|
12 -> npcl("Khazard troops seized the orb. Now we are completely defenceless.").also { stage++ }
|
||||||
13 -> playerl("How can I help?").also { stage++ }
|
13 -> playerl("How can I help?").also { stage++ }
|
||||||
14 -> npcl(FacialExpression.OLD_NORMAL,"You would be a huge benefit on the battlefield. If you would go there and try to retrieve the orb, my people and I will be forever grateful.").also { stage++ }
|
14 -> npcl("You would be a huge benefit on the battlefield. If you would go there and try to retrieve the orb, my people and I will be forever grateful.").also { stage++ }
|
||||||
15 -> options("I would be glad to help.", "I'm sorry but I won't be involved.").also { stage++ }
|
15 -> options("I would be glad to help.", "I'm sorry but I won't be involved.").also { stage++ }
|
||||||
16 -> when (buttonID) {
|
16 -> when (buttonID) {
|
||||||
1 -> playerl("I would be glad to help.").also { stage = 18 }
|
1 -> playerl("I would be glad to help.").also { stage = 18 }
|
||||||
2 -> playerl("I'm sorry but I won't be involved.").also { stage = 17 }
|
2 -> playerl("I'm sorry but I won't be involved.").also { stage = 17 }
|
||||||
}
|
}
|
||||||
17 -> npcl(FacialExpression.OLD_NORMAL, "Ok then, travel safe.").also { stage = END_DIALOGUE }
|
17 -> npcl("Ok then, travel safe.").also { stage = END_DIALOGUE }
|
||||||
18 -> npcl(FacialExpression.OLD_NORMAL, "Thank you. The battlefield is to the north of the maze. Commander Montai will inform you of their current situation.").also { stage++ }
|
18 -> npcl("Thank you. The battlefield is to the north of the maze. Commander Montai will inform you of their current situation.").also { stage++ }
|
||||||
19 -> npcl(FacialExpression.OLD_NORMAL, "That is if he's still alive.").also { stage++ }
|
19 -> npcl("That is if he's still alive.").also { stage++ }
|
||||||
20 -> npcl(FacialExpression.OLD_NORMAL, "My assistant shall guide you out. Good luck friend, try your best to return the orb.").also {
|
20 -> npcl("My assistant shall guide you out. Good luck friend, try your best to return the orb.").also {
|
||||||
stage++
|
stage++
|
||||||
}
|
}
|
||||||
21 -> {
|
21 -> {
|
||||||
teleport(player!!, mazeEntrance)
|
teleport(player!!, mazeEntrance)
|
||||||
sendNPCDialogue(player!!, NPCs.ELKOY_5179, "We're out of the maze now. Please hurry, we must have the orb if we are to survive.", FacialExpression.OLD_NORMAL)
|
sendNPCDialogue(player!!, NPCs.ELKOY_5179, "We're out of the maze now. Please hurry, we must have the orb if we are to survive.")
|
||||||
setQuestStage(player!!, Quests.TREE_GNOME_VILLAGE, 10)
|
setQuestStage(player!!, Quests.TREE_GNOME_VILLAGE, 10)
|
||||||
stage = END_DIALOGUE
|
stage = END_DIALOGUE
|
||||||
}
|
}
|
||||||
@ -60,7 +59,7 @@ class KingBolrenDialogue : DialogueFile() {
|
|||||||
questStage < 31 -> {
|
questStage < 31 -> {
|
||||||
when (stage) {
|
when (stage) {
|
||||||
0 -> playerl("Hello Bolren.").also { stage++ }
|
0 -> playerl("Hello Bolren.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Hello traveller, we must retrieve the orb. It's being held by Khazard troops north of here.").also { stage++ }
|
1 -> npcl("Hello traveller, we must retrieve the orb. It's being held by Khazard troops north of here.").also { stage++ }
|
||||||
2 -> playerl("Ok, I'll try my best.").also { stage = END_DIALOGUE }
|
2 -> playerl("Ok, I'll try my best.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -68,32 +67,32 @@ class KingBolrenDialogue : DialogueFile() {
|
|||||||
if(inInventory(player!!,Items.ORB_OF_PROTECTION_587)){
|
if(inInventory(player!!,Items.ORB_OF_PROTECTION_587)){
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("I have the orb.").also { stage++ }
|
0 -> playerl("I have the orb.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_DISTRESSED, "Oh my... The misery, the horror!").also { stage++ }
|
1 -> npcl("Oh my... The misery, the horror!").also { stage++ }
|
||||||
2 -> playerl("King Bolren, are you OK?").also { stage++ }
|
2 -> playerl("King Bolren, are you OK?").also { stage++ }
|
||||||
3 -> npcl(FacialExpression.OLD_DISTRESSED, "Thank you traveller, but it's too late. We're all doomed.").also { stage++ }
|
3 -> npcl("Thank you traveller, but it's too late. We're all doomed.").also { stage++ }
|
||||||
4 -> playerl("What happened?").also { stage++ }
|
4 -> playerl("What happened?").also { stage++ }
|
||||||
5 -> npcl(FacialExpression.OLD_DISTRESSED, "They came in the night. I don't know how many, but enough.").also { stage++ }
|
5 -> npcl("They came in the night. I don't know how many, but enough.").also { stage++ }
|
||||||
6 -> playerl("Who?").also { stage++ }
|
6 -> playerl("Who?").also { stage++ }
|
||||||
7 -> npcl(FacialExpression.OLD_DISTRESSED, "Khazard troops. They slaughtered anyone who got in their way. Women, children, my wife.").also { stage++ }
|
7 -> npcl("Khazard troops. They slaughtered anyone who got in their way. Women, children, my wife.").also { stage++ }
|
||||||
8 -> playerl("I'm sorry.").also { stage++ }
|
8 -> playerl("I'm sorry.").also { stage++ }
|
||||||
9 -> npcl(FacialExpression.OLD_BOWS_HEAD_SAD, "They took the other orbs, now we are defenceless.").also { stage++ }
|
9 -> npcl("They took the other orbs, now we are defenceless.").also { stage++ }
|
||||||
10 -> playerl("Where did they take them?").also { stage++ }
|
10 -> playerl("Where did they take them?").also { stage++ }
|
||||||
11 -> npcl(FacialExpression.OLD_NORMAL, "They headed north of the stronghold. A warlord carries the orbs.").also { stage++ }
|
11 -> npcl("They headed north of the stronghold. A warlord carries the orbs.").also { stage++ }
|
||||||
12 -> options("I will find the warlord and bring back the orbs.", "I'm sorry but I can't help.").also { stage++ }
|
12 -> options("I will find the warlord and bring back the orbs.", "I'm sorry but I can't help.").also { stage++ }
|
||||||
13 -> when(buttonID) {
|
13 -> when(buttonID) {
|
||||||
1 -> playerl("I will find the warlord and bring back the orbs.").also { stage = 15 }
|
1 -> playerl("I will find the warlord and bring back the orbs.").also { stage = 15 }
|
||||||
2 -> playerl("I'm sorry but I can't help.").also { stage = 14 }
|
2 -> playerl("I'm sorry but I can't help.").also { stage = 14 }
|
||||||
}
|
}
|
||||||
14 -> npcl(FacialExpression.OLD_NORMAL, "I understand, this isn't your battle.").also { stage = END_DIALOGUE }
|
14 -> npcl("I understand, this isn't your battle.").also { stage = END_DIALOGUE }
|
||||||
15 -> npcl(FacialExpression.OLD_NORMAL, "You are brave, but this task will be tough even for you. I wish you the best of luck. Once again you are our only hope.").also { stage++ }
|
15 -> npcl("You are brave, but this task will be tough even for you. I wish you the best of luck. Once again you are our only hope.").also { stage++ }
|
||||||
16 -> npcl(FacialExpression.OLD_NORMAL, "I will safeguard this orb and pray for your safe return. My assistant will guide you out.").also {
|
16 -> npcl("I will safeguard this orb and pray for your safe return. My assistant will guide you out.").also {
|
||||||
stage++
|
stage++
|
||||||
}
|
}
|
||||||
17 -> {
|
17 -> {
|
||||||
if(removeItem(player!!,Items.ORB_OF_PROTECTION_587)){
|
if(removeItem(player!!,Items.ORB_OF_PROTECTION_587)){
|
||||||
teleport(player!!,mazeEntrance)
|
teleport(player!!,mazeEntrance)
|
||||||
setQuestStage(player!!, Quests.TREE_GNOME_VILLAGE, 40)
|
setQuestStage(player!!, Quests.TREE_GNOME_VILLAGE, 40)
|
||||||
sendNPCDialogue(player!!, NPCs.ELKOY_5179, "Good luck friend.", FacialExpression.OLD_NORMAL)
|
sendNPCDialogue(player!!, NPCs.ELKOY_5179, "Good luck friend.")
|
||||||
}
|
}
|
||||||
stage = END_DIALOGUE
|
stage = END_DIALOGUE
|
||||||
}
|
}
|
||||||
@ -101,9 +100,9 @@ class KingBolrenDialogue : DialogueFile() {
|
|||||||
} else {
|
} else {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello Bolren.").also { stage++ }
|
0 -> playerl("Hello Bolren.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Do you have the orb?").also { stage++ }
|
1 -> npcl("Do you have the orb?").also { stage++ }
|
||||||
2 -> playerl("No, I'm afraid not.").also { stage++ }
|
2 -> playerl("No, I'm afraid not.").also { stage++ }
|
||||||
3 -> npcl(FacialExpression.OLD_NORMAL, "Please, we must have the orb if we are to survive.").also { stage = END_DIALOGUE }
|
3 -> npcl("Please, we must have the orb if we are to survive.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -111,12 +110,12 @@ class KingBolrenDialogue : DialogueFile() {
|
|||||||
if(inInventory(player!!,Items.ORBS_OF_PROTECTION_588)){
|
if(inInventory(player!!,Items.ORBS_OF_PROTECTION_588)){
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Bolren, I have returned.").also { stage++ }
|
0 -> playerl("Bolren, I have returned.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "You made it back! Do you have the orbs?").also { stage++ }
|
1 -> npcl("You made it back! Do you have the orbs?").also { stage++ }
|
||||||
2 -> playerl("I have them here.").also { stage++ }
|
2 -> playerl("I have them here.").also { stage++ }
|
||||||
3 -> npcl(FacialExpression.OLD_HAPPY, "Hooray, you're amazing. I didn't think it was possible but you've saved us.").also { stage++ }
|
3 -> npcl("Hooray, you're amazing. I didn't think it was possible but you've saved us.").also { stage++ }
|
||||||
4 -> npcl(FacialExpression.OLD_NORMAL, "Once the orbs are replaced we will be safe once more. We must begin the ceremony immediately.").also { stage++ }
|
4 -> npcl("Once the orbs are replaced we will be safe once more. We must begin the ceremony immediately.").also { stage++ }
|
||||||
5 -> playerl("What does the ceremony involve?").also { stage++ }
|
5 -> playerl("What does the ceremony involve?").also { stage++ }
|
||||||
6 -> npcl(FacialExpression.OLD_NORMAL, "The spirit tree has looked over us for centuries. Now we must pay our respects.").also { stage++ }
|
6 -> npcl("The spirit tree has looked over us for centuries. Now we must pay our respects.").also { stage++ }
|
||||||
7 -> sendDialogue(player!!,"The gnomes begin to chant. Meanwhile, King Bolren holds the orbs of protection out in front of him.").also { stage++ }
|
7 -> sendDialogue(player!!,"The gnomes begin to chant. Meanwhile, King Bolren holds the orbs of protection out in front of him.").also { stage++ }
|
||||||
8 -> {
|
8 -> {
|
||||||
// Orbs fly up, gnomes chant, spirit tree animates
|
// Orbs fly up, gnomes chant, spirit tree animates
|
||||||
@ -167,20 +166,20 @@ class KingBolrenDialogue : DialogueFile() {
|
|||||||
} else {
|
} else {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Bolren, I have returned.").also { stage++ }
|
0 -> playerl("Bolren, I have returned.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "You made it back! Do you have the orbs?").also { stage++ }
|
1 -> npcl("You made it back! Do you have the orbs?").also { stage++ }
|
||||||
2 -> playerl("No, I'm afraid not.").also { stage++ }
|
2 -> playerl("No, I'm afraid not.").also { stage++ }
|
||||||
3 -> npcl(FacialExpression.OLD_NORMAL, "Please, we must have the orb if we are to survive.").also { stage = END_DIALOGUE }
|
3 -> npcl("Please, we must have the orb if we are to survive.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
questStage == 99 -> {
|
questStage == 99 -> {
|
||||||
when(stage){
|
when(stage){
|
||||||
0 -> npcl(FacialExpression.OLD_NORMAL, "Now at last my people are safe once more. We can live in peace again.").also { stage++ }
|
0 -> npcl("Now at last my people are safe once more. We can live in peace again.").also { stage++ }
|
||||||
1 -> playerl("I'm pleased I could help.").also { stage++ }
|
1 -> playerl("I'm pleased I could help.").also { stage++ }
|
||||||
2 -> npcl(FacialExpression.OLD_NORMAL, "You are modest brave traveller.").also { stage++ }
|
2 -> npcl("You are modest brave traveller.").also { stage++ }
|
||||||
3 -> npcl(FacialExpression.OLD_NORMAL, "Please, for your efforts take this amulet. It's made from the same sacred stone as the orbs of protection. It will help keep you safe on your journeys.").also { stage++ }
|
3 -> npcl("Please, for your efforts take this amulet. It's made from the same sacred stone as the orbs of protection. It will help keep you safe on your journeys.").also { stage++ }
|
||||||
4 -> playerl("Thank you King Bolren.").also { stage++ }
|
4 -> playerl("Thank you King Bolren.").also { stage++ }
|
||||||
5 -> npcl(FacialExpression.OLD_NORMAL, "The tree has many other powers, some of which I cannot reveal. As a friend of the gnome people, I can now allow you to use the tree's magic to teleport to other trees grown from related seeds.").also {
|
5 -> npcl("The tree has many other powers, some of which I cannot reveal. As a friend of the gnome people, I can now allow you to use the tree's magic to teleport to other trees grown from related seeds.").also {
|
||||||
finishQuest(player!!, Quests.TREE_GNOME_VILLAGE)
|
finishQuest(player!!, Quests.TREE_GNOME_VILLAGE)
|
||||||
stage = END_DIALOGUE
|
stage = END_DIALOGUE
|
||||||
}
|
}
|
||||||
@ -189,9 +188,9 @@ class KingBolrenDialogue : DialogueFile() {
|
|||||||
isQuestComplete(player!!, Quests.TREE_GNOME_VILLAGE) -> {
|
isQuestComplete(player!!, Quests.TREE_GNOME_VILLAGE) -> {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello again Bolren.").also { stage++ }
|
0 -> playerl("Hello again Bolren.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Well hello, it's good to see you again.").also { stage = if (hasAnItem(player!!, Items.GNOME_AMULET_589).container != null) END_DIALOGUE else 2 }
|
1 -> npcl("Well hello, it's good to see you again.").also { stage = if (hasAnItem(player!!, Items.GNOME_AMULET_589).container != null) END_DIALOGUE else 2 }
|
||||||
2 -> playerl("I've lost my amulet.").also { stage++ }
|
2 -> playerl("I've lost my amulet.").also { stage++ }
|
||||||
3 -> npcl(FacialExpression.OLD_NORMAL, "Oh dear. Here, take another. We are truly indebted to you.").also {
|
3 -> npcl("Oh dear. Here, take another. We are truly indebted to you.").also {
|
||||||
addItemOrDrop(player!!, Items.GNOME_AMULET_589)
|
addItemOrDrop(player!!, Items.GNOME_AMULET_589)
|
||||||
stage = END_DIALOGUE
|
stage = END_DIALOGUE
|
||||||
}
|
}
|
||||||
|
@ -1,18 +1,17 @@
|
|||||||
package content.region.kandarin.quest.tree
|
package content.region.kandarin.quest.tree
|
||||||
|
|
||||||
import core.game.dialogue.DialogueFile
|
import core.game.dialogue.DialogueFile
|
||||||
import core.game.dialogue.FacialExpression
|
|
||||||
import core.tools.END_DIALOGUE
|
import core.tools.END_DIALOGUE
|
||||||
|
|
||||||
class LieutenantSchepburDialogue : DialogueFile(){
|
class LieutenantSchepburDialogue : DialogueFile(){
|
||||||
override fun handle(componentID: Int, buttonID: Int) {
|
override fun handle(componentID: Int, buttonID: Int) {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> npcl(FacialExpression.OLD_NORMAL, "Move into position lads! eh? Who are you and what do you want?").also { stage++ }
|
0 -> npcl("Move into position lads! eh? Who are you and what do you want?").also { stage++ }
|
||||||
1 -> playerl("Who are you then?").also { stage++ }
|
1 -> playerl("Who are you then?").also { stage++ }
|
||||||
2 -> npcl(FacialExpression.OLD_NORMAL, "Lieutenant Schepbur, commanding officer of the new Armoured Tortoise Regiment.").also { stage++ }
|
2 -> npcl("Lieutenant Schepbur, commanding officer of the new Armoured Tortoise Regiment.").also { stage++ }
|
||||||
3 -> playerl("There's only two tortoises here, that's hardly a regiment.").also { stage++ }
|
3 -> playerl("There's only two tortoises here, that's hardly a regiment.").also { stage++ }
|
||||||
4 -> npcl(FacialExpression.OLD_NORMAL, "This is just the beginning! Gnome breeders and trainers are already working to expand the number of units. Soon we'll have hundreds of these beauties, nay thousands! And they will not only carry mages and").also { stage++ }
|
4 -> npcl("This is just the beginning! Gnome breeders and trainers are already working to expand the number of units. Soon we'll have hundreds of these beauties, nay thousands! And they will not only carry mages and").also { stage++ }
|
||||||
5 -> npcl(FacialExpression.OLD_NORMAL, "archers but other fiendish weapons of destruction of gnome devising. An army of giant tortoises will march upon this battlefield and rain the fire of our wrath upon all our enemies! Nothing will be able to stop us!").also { stage++ }
|
5 -> npcl("archers but other fiendish weapons of destruction of gnome devising. An army of giant tortoises will march upon this battlefield and rain the fire of our wrath upon all our enemies! Nothing will be able to stop us!").also { stage++ }
|
||||||
6 -> playerl("Oooookayy...... I'll leave you to it then....").also { stage = END_DIALOGUE }
|
6 -> playerl("Oooookayy...... I'll leave you to it then....").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,13 @@
|
|||||||
package content.region.kandarin.quest.tree
|
package content.region.kandarin.quest.tree
|
||||||
|
|
||||||
import core.game.dialogue.DialogueFile
|
import core.game.dialogue.DialogueFile
|
||||||
import core.game.dialogue.FacialExpression
|
|
||||||
import core.tools.END_DIALOGUE
|
import core.tools.END_DIALOGUE
|
||||||
|
|
||||||
class LocalGnomeDialogue : DialogueFile() {
|
class LocalGnomeDialogue : DialogueFile() {
|
||||||
override fun handle(componentID: Int, buttonID: Int) {
|
override fun handle(componentID: Int, buttonID: Int) {
|
||||||
when (stage) {
|
when (stage) {
|
||||||
0 -> playerl("Hello little man.").also { stage++ }
|
0 -> playerl("Hello little man.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_LAUGH1, "Little man stronger than big man. Hee hee, lardi dee, lardi da.").also { stage = END_DIALOGUE }
|
1 -> npcl("Little man stronger than big man. Hee hee, lardi dee, lardi da.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,7 +5,6 @@ import core.api.inInventory
|
|||||||
import core.api.getQuestStage
|
import core.api.getQuestStage
|
||||||
import org.rs09.consts.Items
|
import org.rs09.consts.Items
|
||||||
import core.game.dialogue.DialogueFile
|
import core.game.dialogue.DialogueFile
|
||||||
import core.game.dialogue.FacialExpression
|
|
||||||
import core.tools.END_DIALOGUE
|
import core.tools.END_DIALOGUE
|
||||||
|
|
||||||
class RemsaiDialogue : DialogueFile(){
|
class RemsaiDialogue : DialogueFile(){
|
||||||
@ -15,35 +14,35 @@ class RemsaiDialogue : DialogueFile(){
|
|||||||
inInventory(player!!,Items.ORBS_OF_PROTECTION_588) -> {
|
inInventory(player!!,Items.ORBS_OF_PROTECTION_588) -> {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("I've returned.").also { stage++ }
|
0 -> playerl("I've returned.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "You're back, well done brave adventurer. Now the orbs are safe we can perform the ritual for the spirit tree. We can live in peace once again.").also { stage = END_DIALOGUE }
|
1 -> npcl("You're back, well done brave adventurer. Now the orbs are safe we can perform the ritual for the spirit tree. We can live in peace once again.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
inInventory(player!!, Items.ORB_OF_PROTECTION_587) -> {
|
inInventory(player!!, Items.ORB_OF_PROTECTION_587) -> {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello Remsai.").also { stage++ }
|
0 -> playerl("Hello Remsai.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Hello, did you find the orb?").also { stage++ }
|
1 -> npcl("Hello, did you find the orb?").also { stage++ }
|
||||||
2 -> playerl("I have it here.").also { stage++ }
|
2 -> playerl("I have it here.").also { stage++ }
|
||||||
3 -> npcl(FacialExpression.OLD_HAPPY, "You're our saviour.").also { stage = END_DIALOGUE }
|
3 -> npcl("You're our saviour.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
questStage < 40 -> {
|
questStage < 40 -> {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello Remsai.").also { stage++ }
|
0 -> playerl("Hello Remsai.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Hello, did you find the orb?").also { stage++ }
|
1 -> npcl("Hello, did you find the orb?").also { stage++ }
|
||||||
2 -> playerl("No, I'm afraid not.").also { stage++ }
|
2 -> playerl("No, I'm afraid not.").also { stage++ }
|
||||||
3 -> npcl(FacialExpression.OLD_NORMAL, "Please, we must have the orb if we are to survive.").also { stage = END_DIALOGUE }
|
3 -> npcl("Please, we must have the orb if we are to survive.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
questStage == 40 -> {
|
questStage == 40 -> {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Are you ok?").also { stage++ }
|
0 -> playerl("Are you ok?").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_DISTRESSED, "Khazard's men came. Without the orb we were defenceless. They killed many and then took our last hope, the other orbs. Now surely we're all doomed. Without them the spirit tree is useless.").also { stage = END_DIALOGUE }
|
1 -> npcl("Khazard's men came. Without the orb we were defenceless. They killed many and then took our last hope, the other orbs. Now surely we're all doomed. Without them the spirit tree is useless.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
questStage > 40 -> {
|
questStage > 40 -> {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("I've returned.").also { stage++ }
|
0 -> playerl("I've returned.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "You're back, well done brave adventurer. Now the orbs are safe we can perform the ritual for the spirit tree. We can live in peace once again.").also { stage = END_DIALOGUE }
|
1 -> npcl("You're back, well done brave adventurer. Now the orbs are safe we can perform the ritual for the spirit tree. We can live in peace once again.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@ import content.data.Quests
|
|||||||
import core.api.*
|
import core.api.*
|
||||||
import org.rs09.consts.Items
|
import org.rs09.consts.Items
|
||||||
import core.game.dialogue.DialogueFile
|
import core.game.dialogue.DialogueFile
|
||||||
import core.game.dialogue.FacialExpression
|
|
||||||
import core.tools.END_DIALOGUE
|
import core.tools.END_DIALOGUE
|
||||||
|
|
||||||
class TrackerGnomeOneDialogue : DialogueFile(){
|
class TrackerGnomeOneDialogue : DialogueFile(){
|
||||||
@ -14,32 +13,32 @@ class TrackerGnomeOneDialogue : DialogueFile(){
|
|||||||
questStage >= 40 -> {
|
questStage >= 40 -> {
|
||||||
when (stage) {
|
when (stage) {
|
||||||
0 -> playerl("Hello").also { stage++ }
|
0 -> playerl("Hello").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_BOWS_HEAD_SAD, "When will this battle end? I feel like I've been fighting forever.").also { stage = END_DIALOGUE }
|
1 -> npcl("When will this battle end? I feel like I've been fighting forever.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
questStage > 30 -> {
|
questStage > 30 -> {
|
||||||
if(inInventory(player!!, Items.ORB_OF_PROTECTION_587)){
|
if(inInventory(player!!, Items.ORB_OF_PROTECTION_587)){
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("How are you tracker?").also { stage++ }
|
0 -> playerl("How are you tracker?").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Now we have the orb I'm much better. They won't stand a chance without it.").also { stage = END_DIALOGUE }
|
1 -> npcl("Now we have the orb I'm much better. They won't stand a chance without it.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello again.").also { stage++ }
|
0 -> playerl("Hello again.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Well done, you've broken down their defences. This battle must be ours.").also { stage = END_DIALOGUE }
|
1 -> npcl("Well done, you've broken down their defences. This battle must be ours.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
questStage == 30 -> {
|
questStage == 30 -> {
|
||||||
when (stage) {
|
when (stage) {
|
||||||
0 -> playerl("Do you know the coordinates of the Khazard stronghold?").also { stage++ }
|
0 -> playerl("Do you know the coordinates of the Khazard stronghold?").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "I managed to get one, although it wasn't easy.").also { stage++ }
|
1 -> npcl("I managed to get one, although it wasn't easy.").also { stage++ }
|
||||||
2 -> sendDialogue(player!!, "The gnome tells you the height coordinate.").also {
|
2 -> sendDialogue(player!!, "The gnome tells you the height coordinate.").also {
|
||||||
setAttribute(player!!, "/save:treegnome:tracker1", true)
|
setAttribute(player!!, "/save:treegnome:tracker1", true)
|
||||||
stage++
|
stage++
|
||||||
}
|
}
|
||||||
3 -> playerl("Well done.").also { stage++ }
|
3 -> playerl("Well done.").also { stage++ }
|
||||||
4 -> npcl(FacialExpression.OLD_NORMAL, "The other two tracker gnomes should have the other coordinates if they're still alive.").also { stage++ }
|
4 -> npcl("The other two tracker gnomes should have the other coordinates if they're still alive.").also { stage++ }
|
||||||
5 -> playerl("OK, take care.").also { stage = END_DIALOGUE }
|
5 -> playerl("OK, take care.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ package content.region.kandarin.quest.tree
|
|||||||
import content.data.Quests
|
import content.data.Quests
|
||||||
import core.api.*
|
import core.api.*
|
||||||
import core.game.dialogue.DialogueFile
|
import core.game.dialogue.DialogueFile
|
||||||
import core.game.dialogue.FacialExpression
|
|
||||||
import core.tools.END_DIALOGUE
|
import core.tools.END_DIALOGUE
|
||||||
|
|
||||||
class TrackerGnomeThreeDialogue : DialogueFile(){
|
class TrackerGnomeThreeDialogue : DialogueFile(){
|
||||||
@ -20,31 +19,31 @@ class TrackerGnomeThreeDialogue : DialogueFile(){
|
|||||||
questStage == 30 -> {
|
questStage == 30 -> {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Are you OK?").also { stage++ }
|
0 -> playerl("Are you OK?").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_LAUGH1, "OK? Who's OK? Not me! Hee hee!").also { stage++ }
|
1 -> npcl("OK? Who's OK? Not me! Hee hee!").also { stage++ }
|
||||||
2 -> playerl("What's wrong?").also { stage++ }
|
2 -> playerl("What's wrong?").also { stage++ }
|
||||||
3 -> npcl(FacialExpression.OLD_LAUGH1, "You can't see me, no one can. Monsters, demons, they're all around me!").also { stage++ }
|
3 -> npcl("You can't see me, no one can. Monsters, demons, they're all around me!").also { stage++ }
|
||||||
4 -> playerl("What do you mean?").also { stage++ }
|
4 -> playerl("What do you mean?").also { stage++ }
|
||||||
5 -> npcl(FacialExpression.OLD_LAUGH1, "They're dancing, all of them, hee hee.").also { stage++ }
|
5 -> npcl("They're dancing, all of them, hee hee.").also { stage++ }
|
||||||
6 -> sendDialogue(player!!,"He's clearly lost the plot.").also { stage++ }
|
6 -> sendDialogue(player!!,"He's clearly lost the plot.").also { stage++ }
|
||||||
7 -> playerl("Do you have the coordinate for the Khazard stronghold?").also { stage++ }
|
7 -> playerl("Do you have the coordinate for the Khazard stronghold?").also { stage++ }
|
||||||
8 -> npcl(FacialExpression.OLD_NORMAL, "Who holds the stronghold?").also { stage++ }
|
8 -> npcl("Who holds the stronghold?").also { stage++ }
|
||||||
9 -> playerl("What?").also { stage++ }
|
9 -> playerl("What?").also { stage++ }
|
||||||
10 -> {
|
10 -> {
|
||||||
// Generate the x coordinate answer
|
// Generate the x coordinate answer
|
||||||
if(getAttribute(player!!,"treegnome:xcoord",0) == 0){
|
if(getAttribute(player!!,"treegnome:xcoord",0) == 0){
|
||||||
val answer = (1..4).random()
|
val answer = (1..4).random()
|
||||||
npcl(FacialExpression.OLD_NORMAL, xcoordMap[answer])
|
npcl(xcoordMap[answer])
|
||||||
setAttribute(player!!,"/save:treegnome:xcoord",answer)
|
setAttribute(player!!,"/save:treegnome:xcoord",answer)
|
||||||
} else {
|
} else {
|
||||||
npcl(FacialExpression.OLD_NORMAL, xcoordMap[getAttribute(player!!,"treegnome:xcoord",1)])
|
npcl(xcoordMap[getAttribute(player!!,"treegnome:xcoord",1)])
|
||||||
}
|
}
|
||||||
stage++
|
stage++
|
||||||
}
|
}
|
||||||
11 -> playerl("You're mad").also { stage++ }
|
11 -> playerl("You're mad").also { stage++ }
|
||||||
12 -> npcl(FacialExpression.OLD_LAUGH1, "Dance with me, and Khazard's men are beat.").also { stage++ }
|
12 -> npcl("Dance with me, and Khazard's men are beat.").also { stage++ }
|
||||||
13 -> sendDialogue(player!!,"The toll of war has affected his mind.").also { stage++ }
|
13 -> sendDialogue(player!!,"The toll of war has affected his mind.").also { stage++ }
|
||||||
14 -> playerl("I'll pray for you little man.").also { stage++ }
|
14 -> playerl("I'll pray for you little man.").also { stage++ }
|
||||||
15 -> npcl(FacialExpression.OLD_LAUGH1, "All day we pray in the hay, hee hee.").also {
|
15 -> npcl("All day we pray in the hay, hee hee.").also {
|
||||||
setAttribute(player!!, "/save:treegnome:tracker3", true)
|
setAttribute(player!!, "/save:treegnome:tracker3", true)
|
||||||
stage = END_DIALOGUE
|
stage = END_DIALOGUE
|
||||||
}
|
}
|
||||||
@ -53,13 +52,13 @@ class TrackerGnomeThreeDialogue : DialogueFile(){
|
|||||||
questStage == 31 -> {
|
questStage == 31 -> {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello again.").also { stage++ }
|
0 -> playerl("Hello again.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_BOWS_HEAD_SAD, "Don't talk to me, you can't see me. No one can, just the demons.").also { stage = END_DIALOGUE }
|
1 -> npcl("Don't talk to me, you can't see me. No one can, just the demons.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
questStage > 31 -> {
|
questStage > 31 -> {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello").also { stage++ }
|
0 -> playerl("Hello").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "I feel dizzy, where am I? Oh dear, oh dear I need some rest.").also { stage++ }
|
1 -> npcl("I feel dizzy, where am I? Oh dear, oh dear I need some rest.").also { stage++ }
|
||||||
2 -> playerl("I think you do.").also { stage = END_DIALOGUE }
|
2 -> playerl("I think you do.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@ import content.data.Quests
|
|||||||
import core.api.*
|
import core.api.*
|
||||||
import org.rs09.consts.Items
|
import org.rs09.consts.Items
|
||||||
import core.game.dialogue.DialogueFile
|
import core.game.dialogue.DialogueFile
|
||||||
import core.game.dialogue.FacialExpression
|
|
||||||
import core.tools.END_DIALOGUE
|
import core.tools.END_DIALOGUE
|
||||||
|
|
||||||
class TrackerGnomeTwoDialogue : DialogueFile(){
|
class TrackerGnomeTwoDialogue : DialogueFile(){
|
||||||
@ -14,36 +13,36 @@ class TrackerGnomeTwoDialogue : DialogueFile(){
|
|||||||
questStage == 30 -> {
|
questStage == 30 -> {
|
||||||
when (stage) {
|
when (stage) {
|
||||||
0 -> playerl("Are you OK?").also { stage++ }
|
0 -> playerl("Are you OK?").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_DISTRESSED, "They caught me spying on the stronghold. They beat and tortured me.").also { stage++ }
|
1 -> npcl("They caught me spying on the stronghold. They beat and tortured me.").also { stage++ }
|
||||||
2 -> npcl(FacialExpression.OLD_LAUGH1, "But I didn't crack. I told them nothing. They can't break me!").also { stage++ }
|
2 -> npcl("But I didn't crack. I told them nothing. They can't break me!").also { stage++ }
|
||||||
3 -> playerl("I'm sorry little man.").also { stage++ }
|
3 -> playerl("I'm sorry little man.").also { stage++ }
|
||||||
4 -> npcl(FacialExpression.OLD_LAUGH1, "Don't be. I have the position of the stronghold!").also { stage++ }
|
4 -> npcl("Don't be. I have the position of the stronghold!").also { stage++ }
|
||||||
5 -> sendDialogue(player!!, "The gnome tells you the y coordinate.").also {
|
5 -> sendDialogue(player!!, "The gnome tells you the y coordinate.").also {
|
||||||
setAttribute(player!!, "/save:treegnome:tracker2", true)
|
setAttribute(player!!, "/save:treegnome:tracker2", true)
|
||||||
stage++
|
stage++
|
||||||
}
|
}
|
||||||
6 -> playerl("Well done.").also { stage++ }
|
6 -> playerl("Well done.").also { stage++ }
|
||||||
7 -> npcl(FacialExpression.OLD_NORMAL, "Now leave before they find you and all is lost.").also { stage++ }
|
7 -> npcl("Now leave before they find you and all is lost.").also { stage++ }
|
||||||
8 -> playerl("Hang in there.").also { stage++ }
|
8 -> playerl("Hang in there.").also { stage++ }
|
||||||
9 -> npcl(FacialExpression.OLD_NORMAL, "Go!").also { stage = END_DIALOGUE }
|
9 -> npcl("Go!").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
questStage >= 40 -> {
|
questStage >= 40 -> {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello").also { stage++ }
|
0 -> playerl("Hello").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_DISTRESSED, "When will this battle end? I feel like I've been locked up my whole life.").also { stage = END_DIALOGUE }
|
1 -> npcl("When will this battle end? I feel like I've been locked up my whole life.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
questStage > 30 -> {
|
questStage > 30 -> {
|
||||||
if(inInventory(player!!,Items.ORB_OF_PROTECTION_587)){
|
if(inInventory(player!!,Items.ORB_OF_PROTECTION_587)){
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("How are you tracker?").also { stage++ }
|
0 -> playerl("How are you tracker?").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Now we have the orb I'm much better. Soon my comrades will come and free me.").also { stage = END_DIALOGUE }
|
1 -> npcl("Now we have the orb I'm much better. Soon my comrades will come and free me.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
when(stage) {
|
when(stage) {
|
||||||
0 -> playerl("Hello again.").also { stage++ }
|
0 -> playerl("Hello again.").also { stage++ }
|
||||||
1 -> npcl(FacialExpression.OLD_NORMAL, "Well done, you've broken down their defences. This battle must be ours.").also { stage = END_DIALOGUE }
|
1 -> npcl("Well done, you've broken down their defences. This battle must be ours.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,22 +1,22 @@
|
|||||||
package content.region.misc.tutisland.dialogue
|
package content.region.misc.tutisland.dialogue
|
||||||
|
|
||||||
|
import content.global.handlers.iface.RulesAndInfo
|
||||||
import content.region.misc.tutisland.handlers.*
|
import content.region.misc.tutisland.handlers.*
|
||||||
|
import core.ServerConstants
|
||||||
import core.api.*
|
import core.api.*
|
||||||
import core.game.node.entity.npc.NPC
|
import core.game.node.entity.npc.NPC
|
||||||
import core.game.node.entity.player.Player
|
import core.game.node.entity.player.Player
|
||||||
import core.game.node.entity.player.link.IronmanMode
|
import core.game.node.entity.player.link.IronmanMode
|
||||||
import core.game.node.entity.player.link.TeleportManager
|
import core.game.node.entity.player.link.TeleportManager
|
||||||
import core.game.node.item.Item
|
import core.game.node.item.Item
|
||||||
|
import core.game.world.GameWorld
|
||||||
import core.game.world.map.Location
|
import core.game.world.map.Location
|
||||||
import core.plugin.Initializable
|
import core.plugin.Initializable
|
||||||
|
import core.tools.END_DIALOGUE
|
||||||
|
import core.worker.ManagementEvents
|
||||||
import org.rs09.consts.Items
|
import org.rs09.consts.Items
|
||||||
import org.rs09.consts.NPCs
|
import org.rs09.consts.NPCs
|
||||||
import proto.management.JoinClanRequest
|
import proto.management.JoinClanRequest
|
||||||
import core.ServerConstants
|
|
||||||
import content.global.handlers.iface.RulesAndInfo
|
|
||||||
import core.game.world.GameWorld
|
|
||||||
import core.tools.END_DIALOGUE
|
|
||||||
import core.worker.ManagementEvents
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the magic tutor's dialogue
|
* Handles the magic tutor's dialogue
|
||||||
@ -44,29 +44,20 @@ class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.Di
|
|||||||
Item(557, 4),
|
Item(557, 4),
|
||||||
Item(559, 2)
|
Item(559, 2)
|
||||||
)
|
)
|
||||||
private val STARTER_BANK = arrayOf(Item(995, 2500))
|
private val STARTER_BANK = arrayOf(Item(995, 25))
|
||||||
// Helper function to convert a numeric XP rate to a descriptive string.
|
|
||||||
private fun xpRateText(rate: Double): String {
|
|
||||||
return when(rate) {
|
|
||||||
1.0 -> "Normal (100%)"
|
|
||||||
2.5 -> "2.5x"
|
|
||||||
5.0 -> "5x"
|
|
||||||
10.0 -> "10x"
|
|
||||||
0.1 -> "Scale up to 10x at level 99"
|
|
||||||
0.2 -> "Scale up to 5x at level 99"
|
|
||||||
else -> "${rate}x"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin {
|
override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin {
|
||||||
return TutorialMagicTutorDialogue(player)
|
return TutorialMagicTutorDialogue(player)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun open(vararg args: Any?): Boolean {
|
override fun open(vararg args: Any?): Boolean {
|
||||||
npc = args[0] as NPC
|
npc = args[0] as NPC
|
||||||
when(getAttribute(player, "tutorial:stage", 0)) {
|
when(getAttribute(player, "tutorial:stage", 0))
|
||||||
|
{
|
||||||
67 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Hello.")
|
67 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Hello.")
|
||||||
69 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Good. This is a list of your spells. Currently you can only cast one offensive spell called Wind Strike. Let's try it out on one of those chickens.")
|
69 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Good. This is a list of your spells. Currently you can only cast one offensive spell called Wind Strike. Let's try it out on one of those chickens.")
|
||||||
70 -> if(!inInventory(player, Items.AIR_RUNE_556) && !inInventory(player, Items.MIND_RUNE_558)) {
|
70 -> if(!inInventory(player, Items.AIR_RUNE_556) && !inInventory(player, Items.MIND_RUNE_558))
|
||||||
|
{
|
||||||
player.dialogueInterpreter.sendDoubleItemMessage(Items.AIR_RUNE_556, Items.MIND_RUNE_558, "You receive some spare runes.")
|
player.dialogueInterpreter.sendDoubleItemMessage(Items.AIR_RUNE_556, Items.MIND_RUNE_558, "You receive some spare runes.")
|
||||||
addItem(player, Items.AIR_RUNE_556, 15)
|
addItem(player, Items.AIR_RUNE_556, 15)
|
||||||
addItem(player, Items.MIND_RUNE_558, 15)
|
addItem(player, Items.MIND_RUNE_558, 15)
|
||||||
@ -79,7 +70,8 @@ class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.Di
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||||
when(getAttribute(player, "tutorial:stage", 0)) {
|
when(getAttribute(player, "tutorial:stage", 0))
|
||||||
|
{
|
||||||
67 -> when(stage++){
|
67 -> when(stage++){
|
||||||
0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Good day, newcomer. My name is Terrova. I'm here to tell you about Magic. Let's start by opening your spell list.")
|
0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Good day, newcomer. My name is Terrova. I'm here to tell you about Magic. Let's start by opening your spell list.")
|
||||||
1 -> {
|
1 -> {
|
||||||
@ -101,44 +93,42 @@ class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.Di
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
71 -> when(stage){
|
71 -> when(stage){
|
||||||
0 -> options(
|
0 -> options("Set Ironman Mode (current: ${player.ironmanManager.mode.name})", "Change XP Rate (current: ${player.skills.experienceMultiplier}x)", "I'm ready now.").also { stage++ }
|
||||||
"Set Ironman Mode (current: ${player.ironmanManager.mode.name})",
|
|
||||||
"Change XP Rate (current: ${xpRateText(player.skills.experienceMultiplier)})",
|
|
||||||
"I'm ready now."
|
|
||||||
).also { stage++ }
|
|
||||||
1 -> when(buttonId){
|
1 -> when(buttonId){
|
||||||
1 -> options("None", "Standard", "Hardcore (Permadeath!)", "Ultimate", "Nevermind.").also { stage = 10 }
|
1 -> options("None","Standard","Ultimate","Nevermind.").also { stage = 10 }
|
||||||
2 -> options("Flat XP Rate Multiplier", "Scaled XP Rate Multiplier", "Back").also { stage = 21 }
|
2 -> options("1.0x","2.5x","5.0x").also { stage = 20 }
|
||||||
3 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Well, you're all finished here now. I'll give you a reasonable number of starting items when you leave.").also { stage = 30 }
|
3 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Well, you're all finished here now. I'll give you a reasonable number of starting items when you leave.").also { stage = 30 }
|
||||||
}
|
}
|
||||||
// Modified submenu branch for XP rate options
|
|
||||||
21 -> when(buttonId) {
|
|
||||||
1 -> options("1.0x", "2.5x", "5.0x", "10x").also { stage = 22 }
|
|
||||||
2 -> options("1.0x", "Scale to 10x", "Scale to 5x").also { stage = 23 }
|
|
||||||
3 -> options(
|
|
||||||
"Set Ironman Mode (current: ${player.ironmanManager.mode.name})",
|
|
||||||
"Change XP Rate (current: ${xpRateText(player.skills.experienceMultiplier)})",
|
|
||||||
"I'm ready now."
|
|
||||||
).also { stage = 1 }
|
|
||||||
else -> return false
|
|
||||||
}
|
|
||||||
10 -> {
|
10 -> {
|
||||||
stage = 0
|
stage = 0
|
||||||
if(buttonId < 5) {
|
if(buttonId < 5)
|
||||||
val mode = IronmanMode.values()[buttonId - 1]
|
{
|
||||||
|
val mode = when (buttonId - 1)
|
||||||
|
{
|
||||||
|
0 -> IronmanMode.NONE
|
||||||
|
1 -> IronmanMode.STANDARD
|
||||||
|
2 -> IronmanMode.ULTIMATE
|
||||||
|
else -> IronmanMode.NONE
|
||||||
|
}
|
||||||
|
if (mode != IronmanMode.NONE) stage = 11
|
||||||
player.dialogueInterpreter.sendDialogue("You set your ironman mode to: ${mode.name}.")
|
player.dialogueInterpreter.sendDialogue("You set your ironman mode to: ${mode.name}.")
|
||||||
player.ironmanManager.mode = mode
|
player.ironmanManager.mode = mode
|
||||||
if (player.skills.experienceMultiplier == 10.0 && mode != IronmanMode.HARDCORE)
|
if (player.skills.experienceMultiplier == 10.0) player.skills.experienceMultiplier = 5.0
|
||||||
player.skills.experienceMultiplier = 5.0
|
}
|
||||||
} else {
|
else
|
||||||
|
{
|
||||||
handle(interfaceId, 0)
|
handle(interfaceId, 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
22 -> {
|
11 -> player.dialogueInterpreter.sendPlainMessage(false, *splitLines("WARNING: You have selected an ironman mode. This is an uncompromising mode that WILL completely restrict your ability to trade. This MAY leave you unable to complete certain content, including quests.")).also { stage = 0 }
|
||||||
val rates = arrayOf(1.0, 2.5, 5.0, 10.0)
|
|
||||||
|
20 -> {
|
||||||
|
val rates = arrayOf(1.0,2.5,5.0)
|
||||||
val rate = rates[buttonId - 1]
|
val rate = rates[buttonId - 1]
|
||||||
if(rate == 10.0 && player.ironmanManager.mode != IronmanMode.HARDCORE) {
|
if(rate == 10.0) {
|
||||||
player.dialogueInterpreter.sendDialogue("10.0x is only available to Hardcore Ironmen!")
|
player.dialogueInterpreter.sendDialogue("10.0x is no longer available!")
|
||||||
|
player.skills.experienceMultiplier = 5.0
|
||||||
stage = 0
|
stage = 0
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@ -146,24 +136,14 @@ class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.Di
|
|||||||
player.skills.experienceMultiplier = rate
|
player.skills.experienceMultiplier = rate
|
||||||
stage = 0
|
stage = 0
|
||||||
}
|
}
|
||||||
23 -> {
|
|
||||||
val rates = arrayOf(1.0, 0.1, 0.2)
|
|
||||||
val rate = rates[buttonId - 1]
|
|
||||||
if(rate == 0.1) {
|
|
||||||
player.dialogueInterpreter.sendDialogue("You set your XP rate to scale to be 10x at level 99.")
|
|
||||||
} else if (rate == 0.2) {
|
|
||||||
player.dialogueInterpreter.sendDialogue("You set your XP rate to scale to be 5x at level 99.")
|
|
||||||
} else {
|
|
||||||
player.dialogueInterpreter.sendDialogue("You set your XP rate to: ${rate}x.")
|
|
||||||
}
|
|
||||||
player.skills.experienceMultiplier = rate
|
|
||||||
stage = 0
|
|
||||||
}
|
|
||||||
30 -> player.dialogueInterpreter.sendOptions("Leave Tutorial Island?", "Yes, I'm ready.", "No, not yet.").also { stage++ }
|
30 -> player.dialogueInterpreter.sendOptions("Leave Tutorial Island?", "Yes, I'm ready.", "No, not yet.").also { stage++ }
|
||||||
31 -> when(buttonId) {
|
31 -> when(buttonId)
|
||||||
|
{
|
||||||
1 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I'm ready to go now, thank you.").also { stage = 40 }
|
1 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I'm ready to go now, thank you.").also { stage = 40 }
|
||||||
2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I'm not quite ready to go yet, thank you.").also { stage = END_DIALOGUE }
|
2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I'm not quite ready to go yet, thank you.").also { stage = END_DIALOGUE }
|
||||||
}
|
}
|
||||||
|
|
||||||
40 -> {
|
40 -> {
|
||||||
setAttribute(player, "/save:tutorial:complete", true)
|
setAttribute(player, "/save:tutorial:complete", true)
|
||||||
setVarbit(player, 3756, 0)
|
setVarbit(player, 3756, 0)
|
||||||
@ -179,13 +159,14 @@ class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.Di
|
|||||||
player.inventory.add(*STARTER_PACK)
|
player.inventory.add(*STARTER_PACK)
|
||||||
player.bank.add(*STARTER_BANK)
|
player.bank.add(*STARTER_BANK)
|
||||||
|
|
||||||
if(player.ironmanManager.mode == IronmanMode.HARDCORE) {
|
if(player.skills.experienceMultiplier == 10.0)
|
||||||
setAttribute(player, "/save:permadeath", true)
|
{
|
||||||
} else if(player.skills.experienceMultiplier == 10.0) {
|
|
||||||
player.skills.experienceMultiplier = 5.0
|
player.skills.experienceMultiplier = 5.0
|
||||||
}
|
}
|
||||||
|
|
||||||
// Overwrites the stuck dialogue after teleporting to Lumbridge
|
//This overwrites the stuck dialogue after teleporting to Lumbridge for some reason
|
||||||
|
//Dialogue from 2007 or thereabouts
|
||||||
|
//Original is five lines, but if the same is done here it will break. Need to find another way of showing all this information.
|
||||||
interpreter.sendDialogue(
|
interpreter.sendDialogue(
|
||||||
"Welcome to Lumbridge! To get more help, simply click on the",
|
"Welcome to Lumbridge! To get more help, simply click on the",
|
||||||
"Lumbridge Guide or one of the Tutors - these can be found by looking",
|
"Lumbridge Guide or one of the Tutors - these can be found by looking",
|
||||||
@ -213,6 +194,7 @@ class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.Di
|
|||||||
ManagementEvents.publish(clanJoin.build())
|
ManagementEvents.publish(clanJoin.build())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
12 -> {
|
12 -> {
|
||||||
player.setAttribute("close_c_", true)
|
player.setAttribute("close_c_", true)
|
||||||
end()
|
end()
|
||||||
@ -225,4 +207,5 @@ class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.Di
|
|||||||
override fun getIds(): IntArray {
|
override fun getIds(): IntArray {
|
||||||
return intArrayOf(NPCs.MAGIC_INSTRUCTOR_946)
|
return intArrayOf(NPCs.MAGIC_INSTRUCTOR_946)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ class KingRoaldDialogue(player: Player? = null) : DialoguePlugin(player) {
|
|||||||
addOption("Priest in Peril", KingRoaldPIPDialogue(player.questRepository.getStage(Quests.PRIEST_IN_PERIL)))
|
addOption("Priest in Peril", KingRoaldPIPDialogue(player.questRepository.getStage(Quests.PRIEST_IN_PERIL)))
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.questRepository.getQuest(Quests.SHIELD_OF_ARRAV).isCompleted(player)) {
|
if (player.questRepository.getQuest(Quests.SHIELD_OF_ARRAV).isStarted(player) && !player.questRepository.getQuest(Quests.SHIELD_OF_ARRAV).isCompleted(player)) {
|
||||||
addOption("Shield of Arrav", KingRoaldArravDialogue())
|
addOption("Shield of Arrav", KingRoaldArravDialogue())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,20 +6,12 @@ import core.game.dialogue.DialogueFile
|
|||||||
import core.tools.END_DIALOGUE
|
import core.tools.END_DIALOGUE
|
||||||
import core.tools.START_DIALOGUE
|
import core.tools.START_DIALOGUE
|
||||||
import content.data.Quests
|
import content.data.Quests
|
||||||
import core.game.dialogue.FacialExpression
|
|
||||||
import core.api.Container
|
|
||||||
import core.api.inInventory
|
|
||||||
import core.api.removeItem
|
|
||||||
import core.game.dialogue.DialoguePlugin
|
|
||||||
|
|
||||||
|
|
||||||
private val CERTIFICATE = Item(769)
|
private val CERTIFICATE = Item(769)
|
||||||
|
|
||||||
|
|
||||||
class KingRoaldArravDialogue() : DialogueFile() {
|
class KingRoaldArravDialogue() : DialogueFile() {
|
||||||
companion object {
|
|
||||||
const val BRIBE_PRICE = 6000
|
|
||||||
}
|
|
||||||
override fun handle(componentID: Int, buttonID: Int) {
|
override fun handle(componentID: Int, buttonID: Int) {
|
||||||
|
|
||||||
if (player!!.inventory.containsItem(ShieldofArrav.PHOENIX_SHIELD) || player!!.inventory.containsItem(ShieldofArrav.BLACKARM_SHIELD)) {
|
if (player!!.inventory.containsItem(ShieldofArrav.PHOENIX_SHIELD) || player!!.inventory.containsItem(ShieldofArrav.BLACKARM_SHIELD)) {
|
||||||
@ -62,29 +54,7 @@ class KingRoaldArravDialogue() : DialogueFile() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
when (stage) {
|
abandonFile()
|
||||||
START_DIALOGUE -> player("I would like to contribute to one of", "your Political Action Committees").also{ stage++ }
|
|
||||||
1 -> npcl("Which one?").also { stage++ }
|
|
||||||
2 -> playerl("The Citizens Who Can't Be Bothered To Do Shield of Arrav").also { stage++ }
|
|
||||||
3 -> npcl(FacialExpression.HALF_THINKING, "I see... that will be 6,000 coins").also { stage++ }
|
|
||||||
4 -> options("Here you go!", "Nevermind.").also { stage++ }
|
|
||||||
5 -> when (buttonID) {
|
|
||||||
1 -> {
|
|
||||||
if (inInventory(player!!, 995, BRIBE_PRICE))
|
|
||||||
playerl(FacialExpression.FRIENDLY, "Here you go!").also { stage = 20 }
|
|
||||||
else
|
|
||||||
playerl(FacialExpression.HALF_GUILTY, "Actually, I don't have that much.").also { stage = END_DIALOGUE }
|
|
||||||
}
|
|
||||||
2 -> playerl(FacialExpression.FRIENDLY, "On second thought, never mind.").also { stage = END_DIALOGUE }
|
|
||||||
}
|
|
||||||
20 -> {
|
|
||||||
npcl("Thank you so much, dear donor. The government of Varrock now has higher priorities than the Shield of Arrav.")
|
|
||||||
if (removeItem(player!!, Item(995, BRIBE_PRICE), Container.INVENTORY)) {
|
|
||||||
player!!.questRepository.getQuest(Quests.SHIELD_OF_ARRAV).finish(player)
|
|
||||||
}
|
|
||||||
stage = END_DIALOGUE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -18,7 +18,7 @@ class ServerConstants {
|
|||||||
var NOAUTH_DEFAULT_ADMIN: Boolean = true
|
var NOAUTH_DEFAULT_ADMIN: Boolean = true
|
||||||
|
|
||||||
@JvmField
|
@JvmField
|
||||||
var CURRENT_SAVEFILE_VERSION = 4
|
var CURRENT_SAVEFILE_VERSION = 3
|
||||||
|
|
||||||
@JvmField
|
@JvmField
|
||||||
var DAILY_ACCOUNT_LIMIT = 3
|
var DAILY_ACCOUNT_LIMIT = 3
|
||||||
|
@ -130,8 +130,8 @@ public final class BankContainer extends Container {
|
|||||||
});
|
});
|
||||||
player.getInterfaceManager().openSingleTab(new Component(763));
|
player.getInterfaceManager().openSingleTab(new Component(763));
|
||||||
super.refresh();
|
super.refresh();
|
||||||
player.getInventory().refresh();
|
|
||||||
player.getInventory().getListeners().add(listener);
|
player.getInventory().getListeners().add(listener);
|
||||||
|
player.getInventory().refresh();
|
||||||
setVarp(player, 1249, lastAmountX);
|
setVarp(player, 1249, lastAmountX);
|
||||||
int settings = new IfaceSettingsBuilder().enableOptions(new IntRange(0, 5)).enableExamine().enableSlotSwitch().build();
|
int settings = new IfaceSettingsBuilder().enableOptions(new IntRange(0, 5)).enableExamine().enableSlotSwitch().build();
|
||||||
player.getPacketDispatch().sendIfaceSettings(settings, 0, 763, 0, 27);
|
player.getPacketDispatch().sendIfaceSettings(settings, 0, 763, 0, 27);
|
||||||
|
@ -81,22 +81,6 @@ class SaveVersionHooks : LoginListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player.version < 4) { //GL !2065
|
|
||||||
replaceAllItems(player, Items.BLURBERRY_SPECIAL_9520, Items.BLURBERRY_SPECIAL_2064)
|
|
||||||
replaceAllItems(player, Items.BLURBERRY_SPECIAL_9521, Items.BLURBERRY_SPECIAL_2065)
|
|
||||||
replaceAllItems(player, Items.LAMP_6796, Items.LAMP_2528)
|
|
||||||
replaceAllItems(player, Items.RUNE_SHIELDH1_10667, Items.RUNE_SHIELDH1_7336)
|
|
||||||
replaceAllItems(player, Items.RUNE_SHIELDH2_10670, Items.RUNE_SHIELDH2_7342)
|
|
||||||
replaceAllItems(player, Items.RUNE_SHIELDH3_10673, Items.RUNE_SHIELDH3_7348)
|
|
||||||
replaceAllItems(player, Items.RUNE_SHIELDH4_10676, Items.RUNE_SHIELDH4_7354)
|
|
||||||
replaceAllItems(player, Items.RUNE_SHIELDH5_10679, Items.RUNE_SHIELDH5_7360)
|
|
||||||
replaceAllItems(player, Items.ADAMANT_SHIELDH1_10666, Items.ADAMANT_SHIELDH1_7334)
|
|
||||||
replaceAllItems(player, Items.ADAMANT_SHIELDH2_10669, Items.ADAMANT_SHIELDH2_7340)
|
|
||||||
replaceAllItems(player, Items.ADAMANT_SHIELDH3_10672, Items.ADAMANT_SHIELDH3_7346)
|
|
||||||
replaceAllItems(player, Items.ADAMANT_SHIELDH4_10675, Items.ADAMANT_SHIELDH4_7352)
|
|
||||||
replaceAllItems(player, Items.ADAMANT_SHIELDH5_10678, Items.ADAMANT_SHIELDH5_7358)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Finish up
|
// Finish up
|
||||||
player.version = ServerConstants.CURRENT_SAVEFILE_VERSION
|
player.version = ServerConstants.CURRENT_SAVEFILE_VERSION
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ public final class Skills {
|
|||||||
/**
|
/**
|
||||||
* Represents the constant modifier of experience.
|
* Represents the constant modifier of experience.
|
||||||
*/
|
*/
|
||||||
public double experienceMultiplier = 0.1; // Note in EmoScape this sets the default to be the scaling to 10x at 99
|
public double experienceMultiplier = 5.0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The maximum experience multiplier.
|
* The maximum experience multiplier.
|
||||||
@ -287,30 +287,9 @@ public final class Skills {
|
|||||||
* @return The experience mod.
|
* @return The experience mod.
|
||||||
*/
|
*/
|
||||||
private double getExperienceMod(int slot, double experience, boolean playerMod, boolean multiplyer) {
|
private double getExperienceMod(int slot, double experience, boolean playerMod, boolean multiplyer) {
|
||||||
// Emo has hijacked this method to enable the scaling of the exp multiplier
|
|
||||||
//Keywords for people ctrl + Fing the project
|
//Keywords for people ctrl + Fing the project
|
||||||
//xprate xp rate xp multiplier skilling rate
|
//xprate xp rate xp multiplier skilling rate
|
||||||
if (experienceMultiplier == 0.1) { // exp multiplier placeholder for 10x at 100
|
|
||||||
double mult = (1 + ((this.experience[slot] * 9) / 13034431)); // 13034431 is the exp for 99, meaning this formula hits 10x at 99
|
|
||||||
if (mult < 1.0) {
|
|
||||||
return 1.0;
|
|
||||||
} else if (mult > 10.0) {
|
|
||||||
return 10.0;
|
|
||||||
} else {
|
|
||||||
return mult;
|
|
||||||
}
|
|
||||||
} else if (experienceMultiplier == 0.2) { // exp multiplier placeholder for 5x at 100
|
|
||||||
double mult = (1 + ((this.experience[slot] * 4) / 13034431)); // 13034431 is the exp for 99, meaning this formula hits 5x at 99
|
|
||||||
if (mult < 1.0) {
|
|
||||||
return 1.0;
|
|
||||||
} else if (mult > 5.0) {
|
|
||||||
return 5.0;
|
|
||||||
} else {
|
|
||||||
return mult;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return experienceMultiplier;
|
return experienceMultiplier;
|
||||||
}
|
|
||||||
/*if (!(entity instanceof Player)) {
|
/*if (!(entity instanceof Player)) {
|
||||||
return 1.0;
|
return 1.0;
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,6 @@ const val STATS_ROCKS = "rocks_mined"
|
|||||||
const val STATS_RC = "essence_crafted"
|
const val STATS_RC = "essence_crafted"
|
||||||
const val STATS_FOOD_COOKED = "food_cooked"
|
const val STATS_FOOD_COOKED = "food_cooked"
|
||||||
const val STATS_CATS_RAISED = "cats_raised"
|
const val STATS_CATS_RAISED = "cats_raised"
|
||||||
const val STATS_CATS_SOLD = "cats_sold"
|
|
||||||
const val STATS_PK_KILLS = "player_kills"
|
const val STATS_PK_KILLS = "player_kills"
|
||||||
const val STATS_PK_DEATHS = "player_deaths"
|
const val STATS_PK_DEATHS = "player_deaths"
|
||||||
const val STATS_ALKHARID_GATE = "alkharid_gate"
|
const val STATS_ALKHARID_GATE = "alkharid_gate"
|
||||||
|
@ -62,7 +62,7 @@ class StatsCommandSet : CommandSet(Privilege.STANDARD) {
|
|||||||
72 -> sendLine(player,"Quest Points: ${queryPlayer.questRepository.points}",i)
|
72 -> sendLine(player,"Quest Points: ${queryPlayer.questRepository.points}",i)
|
||||||
73 -> sendLine(player,"Ironman Mode: ${queryPlayer.ironmanManager.mode.name.lowercase(Locale.getDefault())}",i)
|
73 -> sendLine(player,"Ironman Mode: ${queryPlayer.ironmanManager.mode.name.lowercase(Locale.getDefault())}",i)
|
||||||
74 -> sendLine(player,"Deaths: ${queryPlayer.getAttribute("$STATS_BASE:$STATS_DEATHS",0)}",i)
|
74 -> sendLine(player,"Deaths: ${queryPlayer.getAttribute("$STATS_BASE:$STATS_DEATHS",0)}",i)
|
||||||
75 -> sendLine(player, "Cats Sold: ${queryPlayer.getAttribute("$STATS_BASE:$STATS_CATS_SOLD", 0)}", i)
|
75 -> sendLine(player, SPACER,i)
|
||||||
76 -> sendLine(player,"Logs Chopped: ${queryPlayer.getAttribute("$STATS_BASE:$STATS_LOGS",0)}",i)
|
76 -> sendLine(player,"Logs Chopped: ${queryPlayer.getAttribute("$STATS_BASE:$STATS_LOGS",0)}",i)
|
||||||
77 -> sendLine(player,"Rocks Mined: ${queryPlayer.getAttribute("$STATS_BASE:$STATS_ROCKS",0)}",i)
|
77 -> sendLine(player,"Rocks Mined: ${queryPlayer.getAttribute("$STATS_BASE:$STATS_ROCKS",0)}",i)
|
||||||
78 -> sendLine(player,"Fish Caught: ${queryPlayer.getAttribute("$STATS_BASE:$STATS_FISH",0)}",i)
|
78 -> sendLine(player,"Fish Caught: ${queryPlayer.getAttribute("$STATS_BASE:$STATS_FISH",0)}",i)
|
||||||
|
@ -23,13 +23,13 @@ noauth_default_admin = false #NOTE: If we are not using auth, this determines wh
|
|||||||
#The limit on how many different accounts a player can log into per day.
|
#The limit on how many different accounts a player can log into per day.
|
||||||
daily_accounts_per_ip = 3
|
daily_accounts_per_ip = 3
|
||||||
watchdog_enabled = true
|
watchdog_enabled = true
|
||||||
connectivity_check_url = "https://google.com,https://emoscape.org"
|
connectivity_check_url = "https://duckduckgo.com,https://emoscape.org"
|
||||||
connectivity_timeout = 500
|
connectivity_timeout = 500
|
||||||
|
|
||||||
[database]
|
[database]
|
||||||
database_name = "global"
|
database_name = "global"
|
||||||
database_username = "scape"
|
database_username = "root"
|
||||||
database_password = "TestPass"
|
database_password = ""
|
||||||
database_address = "127.0.0.1"
|
database_address = "127.0.0.1"
|
||||||
database_port = "3306"
|
database_port = "3306"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user