Made ironman icons visible in clan and global chat (requires world.ironman_icons to be true)

Authentic tormented demon safe spotting
Added cannon restriction to tormented demon area
This commit is contained in:
Ceikry
2023-05-27 13:59:48 +00:00
committed by Ryan
parent c3c836de4d
commit 5404ef849d
8 changed files with 62 additions and 27 deletions
+31 -14
View File
@@ -11200,10 +11200,9 @@
"attack_speed": "7",
"respawn_delay": "60",
"defence_animation": "285",
"magic_animation": "284",
"death_animation": "287",
"weakness": "7",
"magic_animation": "0",
"death_animation": "287",
"name": "Stick",
"defence_level": "60",
"safespot": null,
@@ -11219,42 +11218,42 @@
"examine": "A nasty looking troll.",
"melee_animation": "284",
"range_animation": "284",
"attack_speed": "6",
"respawn_delay": "60",
"defence_animation": "285",
"weakness": "7",
"magic_animation": "284",
"death_animation": "287",
"name": "Pee Hat",
"defence_level": "50",
"safespot": null,
"lifepoints": "120",
"strength_level": "100",
"attack_speed": "6",
"defence_animation": "285",
"weakness": "7",
"magic_animation": "284",
"death_animation": "287",
"id": "1097",
"aggressive": "true",
"bonuses": "40,40,40,0,0,25,25,40,200,200,0,70,0,0,0",
"range_level": "1",
"respawn_delay": "60",
"attack_level": "50"
},
{
"examine": "A nasty looking troll.",
"melee_animation": "284",
"range_animation": "284",
"attack_speed": "6",
"respawn_delay": "60",
"defence_animation": "285",
"weakness": "7",
"magic_animation": "284",
"death_animation": "287",
"name": "Kraka",
"defence_level": "50",
"safespot": null,
"lifepoints": "120",
"strength_level": "100",
"attack_speed": "6",
"defence_animation": "285",
"weakness": "7",
"magic_animation": "284",
"death_animation": "287",
"id": "1098",
"aggressive": "true",
"bonuses": "40,40,40,0,0,25,25,40,200,400,0,70,0,0,0",
"range_level": "1",
"respawn_delay": "60",
"attack_level": "50"
},
{
@@ -67854,6 +67853,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8349",
@@ -67879,6 +67879,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8350",
@@ -67904,6 +67905,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8351",
@@ -67929,6 +67931,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8352",
@@ -67954,6 +67957,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8353",
@@ -67979,6 +67983,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8354",
@@ -68004,6 +68009,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8355",
@@ -68029,6 +68035,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8356",
@@ -68054,6 +68061,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8357",
@@ -68079,6 +68087,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8358",
@@ -68104,6 +68113,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8359",
@@ -68129,6 +68139,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8360",
@@ -68154,6 +68165,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8361",
@@ -68179,6 +68191,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8362",
@@ -68204,6 +68217,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8363",
@@ -68229,6 +68243,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8364",
@@ -68254,6 +68269,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8365",
@@ -68279,6 +68295,7 @@
"defence_level": "85",
"poison_immune": "true",
"safespot": "true",
"movement_radius": "40",
"lifepoints": "326",
"strength_level": "85",
"id": "8366",
@@ -0,0 +1,10 @@
package content.region.misthalin.lumbridge
import core.api.*
import core.game.world.map.zone.ZoneBorders
import core.game.world.map.zone.ZoneRestriction
class TormentedDemonArea : MapArea {
override fun defineAreaBorders() : Array<ZoneBorders> { return arrayOf (ZoneBorders.forRegion(10329)) }
override fun getRestrictions() : Array<ZoneRestriction> { return arrayOf (ZoneRestriction.CANNON) }
}
+3
View File
@@ -281,5 +281,8 @@ class ServerConstants {
@JvmField
var MAX_PATHFIND_DISTANCE = 25
@JvmField
var IRONMAN_ICONS = false
}
}
@@ -1,6 +1,7 @@
package core.game.node.entity.player.info;
import core.game.node.entity.player.Player;
import core.ServerConstants;
/**
* Represent the rights of a player.
@@ -24,9 +25,11 @@ public enum Rights {
if (c != Rights.REGULAR_PLAYER && c != null) {
return c.toInteger();
}
if (ServerConstants.IRONMAN_ICONS) {
if (player.getIronmanManager().isIronman()) {
return player.getIronmanManager().getMode().getIcon();
}
}
return 0;
}
@@ -6,6 +6,7 @@ import core.api.sendMessage
import core.api.setAttribute
import core.game.system.command.Privilege
import core.game.world.repository.Repository
import core.game.node.entity.player.info.Rights
import core.tools.colorize
class GlobalChat : Commands {
@@ -20,9 +21,9 @@ class GlobalChat : Commands {
companion object {
val ATTR_GLOBAL_MUTE = "/save:globalmute"
fun process(sender: String, message: String) {
val msgSD = prepare(sender, message, false)
val msgHD = prepare(sender, message, true)
fun process(sender: String, message: String, rights: Int) {
val msgSD = prepare(sender, message, false, rights)
val msgHD = prepare(sender, message, true, rights)
for (player in Repository.players.filter { !getAttribute(it, ATTR_GLOBAL_MUTE, false) }) {
if (player.interfaceManager.isResizable)
sendMessage(player, msgHD)
@@ -31,10 +32,10 @@ class GlobalChat : Commands {
}
}
private fun prepare(sender: String, message: String, isResizable: Boolean): String {
private fun prepare(sender: String, message: String, isResizable: Boolean, rights: Int): String {
val baseColor = if (isResizable) "%f1b04c" else "%7512ff"
val bracketColor = if (isResizable) "%ffffff" else "%000000"
return colorize("$bracketColor[${baseColor}G$bracketColor] $sender: ${baseColor}$message")
return colorize("$bracketColor[${baseColor}G$bracketColor] ${if (rights > 0) "<img=${rights - 1}>" else ""}$sender: ${baseColor}$message")
}
}
}
@@ -151,6 +151,7 @@ object ServerConfigParser {
ServerConstants.DISCORD_OPENRSC_HOOK = data.getString("server.openrsc_integration_webhook", "")
ServerConstants.ENABLE_GLOBALCHAT = data.getBoolean("world.enable_globalchat", true)
ServerConstants.MAX_PATHFIND_DISTANCE = data.getLong("server.max_pathfind_dist", 25L).toInt()
ServerConstants.IRONMAN_ICONS = data.getBoolean("world.ironman_icons", false)
val logLevel = data.getString("server.log_level", "VERBOSE").uppercase()
ServerConstants.LOG_LEVEL = parseEnumEntry<LogLevel>(logLevel) ?: LogLevel.VERBOSE
@@ -210,7 +210,7 @@ object PacketProcessor {
val messages = splitChatMessage(pkt.message.substring(2), pkt.player.name.length + 3, false)
for (message in messages) {
if (message.isNotBlank())
GlobalChat.process(pkt.player.username, message)
GlobalChat.process(pkt.player.username, message, Rights.getChatIcon(pkt.player))
}
return
}
@@ -222,7 +222,7 @@ object PacketProcessor {
builder.sender = pkt.player.name
builder.clanName = pkt.player.communication.clan.owner.lowercase().replace(" ", "_")
builder.message = message
builder.rank = pkt.player.rights.ordinal
builder.rank = Rights.getChatIcon(pkt.player)
ManagementEvents.publish(builder.build())
}
return