Some bugfixes

This commit is contained in:
Ceikry
2021-03-29 13:47:28 -05:00
parent 38225f343d
commit be4f6a9bec
13 changed files with 84 additions and 75 deletions
+4 -4
View File
@@ -2437,7 +2437,7 @@
"slayer_task": "30",
"melee_animation": "393",
"range_animation": "0",
"attack_speed": "5",
"attack_speed": "4",
"respawn_delay": "60",
"defence_animation": "0",
"weakness": "7",
@@ -2445,14 +2445,14 @@
"magic_animation": "0",
"death_animation": "836",
"name": "Earth warrior",
"defence_level": "56",
"defence_level": "42",
"safespot": null,
"lifepoints": "54",
"strength_level": "56",
"strength_level": "42",
"id": "124",
"aggressive": "true",
"range_level": "1",
"attack_level": "56"
"attack_level": "42"
},
{
"examine": "A cold-hearted elemental warrior.",
@@ -49,6 +49,7 @@ public final class PyramidPlunderActivity extends ActivityPlugin {
if (e instanceof Player) {
((Player) e).getInterfaceManager().closeOverlay();
((PlunderSession) ((Player) e).getAttribute("plunder-session",null)).setActive(false);
((Player) e).removeAttribute("plunder-session");
}
return super.leave(e, logout);
}
@@ -10,6 +10,7 @@ import core.game.node.entity.npc.NPC;
import core.game.node.entity.player.Player;
import core.game.node.item.Item;
import core.game.system.task.Pulse;
import kotlin.Unit;
import rs09.game.world.GameWorld;
import core.game.world.map.Location;
import core.game.world.update.flag.context.Animation;
@@ -284,6 +285,10 @@ public final class RugMerchantDialogue extends DialoguePlugin {
player.getInterfaceManager().hideTabs(0,1,2,3,4,5,6,7,8,9,10,11,12,13);
player.getEquipment().replace(new Item(Items.MAGIC_CARPET_5614),EquipmentContainer.SLOT_WEAPON);
player.getPacketDispatch().sendInterfaceConfig(548,69,true);
player.logoutListeners.put("magic-carpet", (pl) -> {
pl.getEquipment().replace(null,EquipmentContainer.SLOT_WEAPON);
return Unit.INSTANCE;
});
GameWorld.getPulser().submit(new Pulse(1, player) {
int count;
int index;
@@ -323,6 +328,7 @@ public final class RugMerchantDialogue extends DialoguePlugin {
player.unlock();
player.animate(new Animation(-1));
player.getConfigManager().set(499, 0);
player.logoutListeners.remove("magic-carpet");
break;
case 902:
player.moveStep();
@@ -19,6 +19,8 @@ class CookingRewrite : InteractionListener() {
init {
val list = CookableItems.values().map { it.raw }.toMutableList()
list.add(Items.COOKED_MEAT_2142)
list.add(RAW_BEEF_2132)
list.add(SEAWEED_401)
RAW_FOODS = list.toIntArray()
}
@@ -30,11 +32,11 @@ class CookingRewrite : InteractionListener() {
val range = obj.name.toLowerCase().contains("range")
when (item.id) {
RAW_BEEF_2132 -> if (range) {
player.dialogueInterpreter.open(CookingDialogue(item,9436,true,obj))
player.dialogueInterpreter.open(CookingDialogue(item.id,9436,true,obj))
return@onUseWith true
}
SEAWEED_401 -> if (range) {
player.dialogueInterpreter.open(CookingDialogue(item,1781,false,obj))
player.dialogueInterpreter.open(CookingDialogue(item.id,1781,false,obj))
return@onUseWith true
}
BREAD_DOUGH_2307, UNCOOKED_CAKE_1889 -> if (!range) {
@@ -33,7 +33,6 @@ class DukeHoracioDialogue(player: Player? = null) : DialoguePlugin(player) {
if (!sendChoices()) {
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Greetings. Welcome to my castle.")
}
stage = 0
// Speak to the Duke of Lumbridge
player.achievementDiaryManager.finishTask(player, DiaryType.LUMBRIDGE, 0, 2)
return true
@@ -1,5 +1,8 @@
package rs09.game.content.jobs
import GatheringJobs
import SlayingJob
import core.game.node.entity.npc.NPC
import core.game.node.item.Item
import rs09.game.content.dialogue.DialogueFile
import rs09.tools.END_DIALOGUE
@@ -7,14 +10,32 @@ import rs09.tools.END_DIALOGUE
class CancelJobDialogueFile : DialogueFile() {
override fun handle(componentID: Int, buttonID: Int) {
when(stage){
0 -> npc("Would you like to cancel your job?","It will cost 500 coins.").also { stage++ }
1 -> options("Yes, please.","No, thanks.").also { stage++ }
2 -> when(buttonID){
1 -> player("Yes, please.").also{ stage = 10 }
2 -> player("No, thanks.").also { stage = 20 }
0 -> options("Check Job Progress","Cancel Job").also { stage++ }
1 -> when(buttonID){
1 -> player("How am I doing on my job?").also { stage++ }
2 -> player("I'd like to cancel my job.").also { stage = 10 }
}
10 -> npc("Alright then, hand over the money.").also { stage++ }
11 -> if(player!!.inventory.contains(995,500)){
2 -> {
val amt = player!!.getAttribute("jobs:original_amount",0)
val type = player!!.getAttribute("jobs:type",0)
val jobId = player!!.getAttribute("jobs:id",0)
val needed = player!!.getAttribute("jobs:amount",0)
if(type == 0){
player!!.dialogueInterpreter.sendItemMessage(GatheringJobs.values()[jobId].itemId,"You still need to gather ${needed} more.")
} else {
player!!.dialogueInterpreter.sendDialogue("You still need to kill $needed more ${NPC(SlayingJob.values()[jobId].ids[0]).name.toLowerCase()}.")
}
stage = END_DIALOGUE
}
10 -> npc("It will cost 500 coins.").also { stage++ }
11 -> options("Yes, please.","No, thanks.").also { stage++ }
12 -> when(buttonID){
1 -> player("Yes, please.").also{ stage = 20 }
2 -> player("No, thanks.").also { stage = 30 }
}
20 -> npc("Alright then, hand over the money.").also { stage++ }
21 -> if(player!!.inventory.contains(995,500)){
player("Here you go.")
player!!.inventory.remove(Item(995,500))
player!!.removeAttribute("jobs:id")
@@ -27,8 +48,8 @@ class CancelJobDialogueFile : DialogueFile() {
stage++
}
12 -> npc("Ah, that sucks! Get to work.").also { stage = END_DIALOGUE }
20 -> npc("Alright then, get to work!").also { stage = END_DIALOGUE }
22 -> npc("Ah, that sucks! Get to work.").also { stage = END_DIALOGUE }
30 -> npc("Alright then, get to work!").also { stage = END_DIALOGUE }
}
}
}
@@ -89,6 +89,7 @@ object JobManager {
player.removeAttribute("jobs:original_amount")
player.removeAttribute("jobs:type")
player.incrementAttribute("/save:jobs:dailyAmt",1)
System.out.println("Complete amount: ${player.getAttribute("jobs:dailyAmt",0)}")
if(player.getAttribute("jobs:dailyAmt",0) == 3){
player.setAttribute("/save:jobs:reset_time",System.currentTimeMillis() + TimeUnit.HOURS.toMillis(24))
}
@@ -57,7 +57,7 @@ class WorkForInteractionListener : InteractionListener() {
var amount = 0
var jobId = 0
if(player.getAttribute("jobs:reset_time",0L) < System.currentTimeMillis()){
if(player.getAttribute("jobs:reset_time",Long.MAX_VALUE) < System.currentTimeMillis()){
player.setAttribute("/save:jobs:dailyAmt",0)
}
@@ -169,6 +169,17 @@ object UseWithPatchHandler{
return true
}
}
if(patch.type != PatchType.FRUIT_TREE && patch.type != PatchType.TREE){
if(!player.inventory.contains(Items.SEED_DIBBER_5343,1)){
player.sendMessage("You need a seed dibber to plant that.")
return true
}
} else {
if(!player.inventory.contains(Items.SPADE_952,1)){
player.sendMessage("You need a spade to plant that.")
return true
}
}
player.lock()
if(player.inventory.remove(plantItem)) {
player.animator.animate(Animation(2291))
@@ -101,6 +101,11 @@ class ModernListeners : SpellListener("modern"){
sendTeleport(player,74.0, Location.create(2754, 2784, 0))
}
onCast(Modern.TELEPORT_TO_HOUSE,NONE){player, _ ->
requires(player,40, arrayOf(Item(Items.LAW_RUNE_563), Item(Items.AIR_RUNE_556), Item(Items.EARTH_RUNE_557)))
attemptHouseTeleport(player)
}
onCast(Modern.LOW_ALCHEMY,ITEM){player, node ->
val item = node?.asItem() ?: return@onCast
requires(player,21, arrayOf(Item(Items.FIRE_RUNE_554,3),Item(Items.NATURE_RUNE_561)))
@@ -243,4 +248,17 @@ class ModernListeners : SpellListener("modern"){
addXP(player,xp)
setDelay(player,true)
}
private fun attemptHouseTeleport(player: Player){
val loc = player.houseManager.location.exitLocation
if(loc == null){
player.sendMessage("You do not have a house whose portal you can teleport to.")
return
}
player.teleporter.send(loc,TeleportManager.TeleportType.NORMAL)
removeRunes(player)
addXP(player,30.0)
setDelay(player,true)
}
}
@@ -29,6 +29,7 @@ enum class Pickpockets(val ids: IntArray, val requiredLevel: Int, val low: Doubl
WeightedItem(Items.HAM_HOOD_4302,1,1,0.25),
WeightedItem(Items.HAM_LOGO_4306,1,1,0.25),
WeightedItem(Items.HAM_ROBE_4300,1,1,0.25),
WeightedItem(Items.HAM_SHIRT_4298,1,1,0.25),
WeightedItem(Items.BOOTS_4310,1,1,1.0),
WeightedItem(Items.GLOVES_4308,1,1,1.0),
WeightedItem(Items.BRONZE_PICKAXE_1265,1,1,5.0),
@@ -55,6 +56,7 @@ enum class Pickpockets(val ids: IntArray, val requiredLevel: Int, val low: Doubl
WeightedItem(Items.HAM_CLOAK_4304,1,1,0.25),
WeightedItem(Items.HAM_HOOD_4302,1,1,0.25),
WeightedItem(Items.HAM_LOGO_4306,1,1,0.25),
WeightedItem(Items.HAM_SHIRT_4298,1,1,0.25),
WeightedItem(Items.HAM_ROBE_4300,1,1,0.25),
WeightedItem(Items.BOOTS_4310,1,1,1.0),
WeightedItem(Items.GLOVES_4308,1,1,1.0),
@@ -1,15 +1,15 @@
package rs09.game.node.entity.state.newsys.states
import core.game.node.entity.player.Player
import rs09.game.node.entity.skill.farming.Seedling
import rs09.game.node.entity.state.newsys.PlayerState
import rs09.game.node.entity.state.newsys.State
import core.game.node.item.Item
import core.game.system.task.Pulse
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import org.json.simple.JSONArray
import org.json.simple.JSONObject
import rs09.game.node.entity.skill.farming.Seedling
import rs09.game.node.entity.state.newsys.PlayerState
import rs09.game.node.entity.state.newsys.State
import java.util.concurrent.TimeUnit
@PlayerState("seedling")
@@ -17,7 +17,7 @@ class SeedlingState(player: Player? = null) : State(player) {
val seedlings = ArrayList<Seedling>()
fun addSeedling(seedling: Int){
seedlings.add(Seedling(seedling, System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(5),seedling + 6))
seedlings.add(Seedling(seedling, System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(5),seedling + if(seedling > 5400) 8 else 6))
}
override fun save(root: JSONObject) {
Executable → Regular
+2 -54
View File
@@ -1,54 +1,2 @@
#!/bin/sh
origDir=$(pwd)
if [ $# -eq 0 ]; then
echo "Usage: $0 type"
echo "Available types: client, server, ms, all"
exit
else type=$1
fi
build_server() {
echo "Building server..."
cd Server/ || exit
gradle build || exit
cd "$origDir" || exit
tar xvf Server/build/distributions/Server.tar || exit
}
build_client() {
echo "Building client..."
echo "Change IP from 127.0.0.1?(y/N)"
read -r changeIP
if [ "$changeIP" = "y" ]; then
echo "Enter desired IP address:"
read -r newIP
echo "target_ip_addr:$newIP" > Client/src/main/resources/client.conf
fi
cd Client/ || exit
gradle build || exit
cd "$origDir" || exit
tar xvf Client/build/distributions/Client.tar || exit
cp Client/build/libs/client-1.0.0.jar Client/bin/2009scape.jar || exit
echo "Client jarfile can be found at Client/bin/2009scape.jar"
}
build_ms() {
echo "Building management server..."
cd Management-Server/ || exit
gradle build || exit
cd "$origDir" || exit
tar xvf Management-Server/build/distributions/Management-Server.tar || exit
}
if [ "$type" = "client" ]; then
build_client
elif [ "$type" = "server" ]; then
build_server
elif [ "$type" = "ms" ]; then
build_ms
elif [ "$type" = "all" ]; then
build_ms
build_server
build_client
else echo "Invalid type. Should be one of: client, server, ms, all"
fi
cd Server
gradle jar