Fixed bug relating to tracking current slayer task

This commit is contained in:
Ceikry
2023-03-31 00:04:59 +00:00
committed by Ryan
parent ebebb05af3
commit d431fec1ed
4 changed files with 15 additions and 7 deletions
@@ -170,6 +170,13 @@ class SlayerManager(val player: Player? = null) : LoginListener, PersistPlayer,
flags.setTask(task!!) flags.setTask(task!!)
} }
var activeTask: Tasks? = null
get() {
if (hasTask())
return flags.getTask()
return null
}
var master: Master? var master: Master?
get() = flags.getMaster() get() = flags.getMaster()
set(master) { set(master) {
@@ -238,4 +245,4 @@ class SlayerManager(val player: Player? = null) : LoginListener, PersistPlayer,
return getAttribute(player, "slayer-manager", SlayerManager()) return getAttribute(player, "slayer-manager", SlayerManager())
} }
} }
} }
+2 -2
View File
@@ -1747,7 +1747,7 @@ fun getPathableRandomLocalCoordinate(target: Entity, radius: Int, center: Locati
* @return the slayer task. * @return the slayer task.
*/ */
fun getSlayerTask(player: Player): Tasks? { fun getSlayerTask(player: Player): Tasks? {
return SlayerManager.getInstance(player).task return SlayerManager.getInstance(player).activeTask
} }
/** /**
@@ -1805,7 +1805,7 @@ fun getSlayerMasterLocation(player: Player): String {
*/ */
fun getSlayerTip(player: Player): Array<out String> { fun getSlayerTip(player: Player): Array<out String> {
return if (hasSlayerTask(player)) { return if (hasSlayerTask(player)) {
SlayerManager.getInstance(player).task?.tip!! getSlayerTask(player)?.tip!!
} else { } else {
arrayOf("You need something new to hunt.") arrayOf("You need something new to hunt.")
} }
@@ -143,7 +143,7 @@ open class MeleeSwingHandler
val amuletName = (if(entity is Player) getItemFromEquipment(entity, EquipmentSlot.AMULET)?.name ?: "null" else "null").toLowerCase() val amuletName = (if(entity is Player) getItemFromEquipment(entity, EquipmentSlot.AMULET)?.name ?: "null" else "null").toLowerCase()
val victimName = entity.properties.combatPulse.getVictim()?.name ?: "none" val victimName = entity.properties.combatPulse.getVictim()?.name ?: "none"
if(entity is Player && SlayerManager.getInstance(entity).task?.ids?.contains((entity.properties.combatPulse?.getVictim()?.id ?: 0)) == true) if(entity is Player && getSlayerTask(entity)?.ids?.contains((entity.properties.combatPulse?.getVictim()?.id ?: 0)) == true)
effectiveAttackLevel *= SlayerEquipmentFlags.getDamAccBonus(entity) //Slayer Helm/ Black Mask/ Slayer cape effectiveAttackLevel *= SlayerEquipmentFlags.getDamAccBonus(entity) //Slayer Helm/ Black Mask/ Slayer cape
else if (entity is Player //Salve amulet else if (entity is Player //Salve amulet
@@ -176,7 +176,7 @@ open class MeleeSwingHandler
cumulativeStr *= getSetMultiplier(entity, Skills.STRENGTH) cumulativeStr *= getSetMultiplier(entity, Skills.STRENGTH)
if(entity is Player && SlayerManager.getInstance(entity).task?.ids?.contains((entity.properties.combatPulse?.getVictim()?.id ?: 0)) == true) if(entity is Player && getSlayerTask(entity)?.ids?.contains((entity.properties.combatPulse?.getVictim()?.id ?: 0)) == true)
cumulativeStr *= SlayerEquipmentFlags.getDamAccBonus(entity) //Slayer helm/black mask/skillcape cumulativeStr *= SlayerEquipmentFlags.getDamAccBonus(entity) //Slayer helm/black mask/skillcape
/*val hit = (16 + cumulativeStr + bonus / 8 + cumulativeStr * bonus * 0.016865) * modifier /*val hit = (16 + cumulativeStr + bonus / 8 + cumulativeStr * bonus * 0.016865) * modifier
@@ -1,6 +1,7 @@
package core.net.packet package core.net.packet
import content.global.skill.slayer.SlayerManager import content.global.skill.slayer.SlayerManager
import core.api.*
import core.cache.Cache import core.cache.Cache
import core.cache.def.impl.DataMap import core.cache.def.impl.DataMap
import core.cache.def.impl.ItemDefinition import core.cache.def.impl.ItemDefinition
@@ -89,7 +90,7 @@ object QCRepository {
//My current slayer assignment is //My current slayer assignment is
else if(qcString.contains("My current Slayer assignment is")){ else if(qcString.contains("My current Slayer assignment is")){
val amount = SlayerManager.getInstance(player!!).amount val amount = SlayerManager.getInstance(player!!).amount
val taskName = NPCDefinition.forId(SlayerManager.getInstance(player!!).task?.ids?.get(0) ?: 0).name.toLowerCase() val taskName = getSlayerTask(player)?.name?.toLowerCase() ?: "None"
if(amount ?: 0 > 0){ if(amount ?: 0 > 0){
qcString = qcString.replace("complete", "$amount $taskName") qcString = qcString.replace("complete", "$amount $taskName")
} }
@@ -317,4 +318,4 @@ object QCRepository {
private fun getQCString(index: Int): String{ private fun getQCString(index: Int): String{
return ByteBufferUtils.getString(ByteBuffer.wrap(quickChatIndex.getFileData(1, index))) return ByteBufferUtils.getString(ByteBuffer.wrap(quickChatIndex.getFileData(1, index)))
} }
} }