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
+32 -15
View File
@@ -11200,10 +11200,9 @@
"attack_speed": "7", "attack_speed": "7",
"respawn_delay": "60", "respawn_delay": "60",
"defence_animation": "285", "defence_animation": "285",
"magic_animation": "284",
"death_animation": "287",
"weakness": "7", "weakness": "7",
"magic_animation": "0", "magic_animation": "0",
"death_animation": "287",
"name": "Stick", "name": "Stick",
"defence_level": "60", "defence_level": "60",
"safespot": null, "safespot": null,
@@ -11219,42 +11218,42 @@
"examine": "A nasty looking troll.", "examine": "A nasty looking troll.",
"melee_animation": "284", "melee_animation": "284",
"range_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", "name": "Pee Hat",
"defence_level": "50", "defence_level": "50",
"safespot": null, "safespot": null,
"lifepoints": "120", "lifepoints": "120",
"strength_level": "100", "strength_level": "100",
"attack_speed": "6",
"defence_animation": "285",
"weakness": "7",
"magic_animation": "284",
"death_animation": "287",
"id": "1097", "id": "1097",
"aggressive": "true", "aggressive": "true",
"bonuses": "40,40,40,0,0,25,25,40,200,200,0,70,0,0,0", "bonuses": "40,40,40,0,0,25,25,40,200,200,0,70,0,0,0",
"range_level": "1", "range_level": "1",
"respawn_delay": "60",
"attack_level": "50" "attack_level": "50"
}, },
{ {
"examine": "A nasty looking troll.", "examine": "A nasty looking troll.",
"melee_animation": "284", "melee_animation": "284",
"range_animation": "284", "range_animation": "284",
"attack_speed": "6",
"respawn_delay": "60",
"defence_animation": "285",
"weakness": "7",
"magic_animation": "284",
"death_animation": "287",
"name": "Kraka", "name": "Kraka",
"defence_level": "50", "defence_level": "50",
"safespot": null, "safespot": null,
"lifepoints": "120", "lifepoints": "120",
"strength_level": "100", "strength_level": "100",
"attack_speed": "6",
"defence_animation": "285",
"weakness": "7",
"magic_animation": "284",
"death_animation": "287",
"id": "1098", "id": "1098",
"aggressive": "true", "aggressive": "true",
"bonuses": "40,40,40,0,0,25,25,40,200,400,0,70,0,0,0", "bonuses": "40,40,40,0,0,25,25,40,200,400,0,70,0,0,0",
"range_level": "1", "range_level": "1",
"respawn_delay": "60",
"attack_level": "50" "attack_level": "50"
}, },
{ {
@@ -67854,6 +67853,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8349", "id": "8349",
@@ -67879,6 +67879,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8350", "id": "8350",
@@ -67904,6 +67905,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8351", "id": "8351",
@@ -67929,6 +67931,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8352", "id": "8352",
@@ -67954,6 +67957,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8353", "id": "8353",
@@ -67979,6 +67983,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8354", "id": "8354",
@@ -68004,6 +68009,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8355", "id": "8355",
@@ -68029,6 +68035,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8356", "id": "8356",
@@ -68054,6 +68061,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8357", "id": "8357",
@@ -68079,6 +68087,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8358", "id": "8358",
@@ -68104,6 +68113,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8359", "id": "8359",
@@ -68129,6 +68139,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8360", "id": "8360",
@@ -68154,6 +68165,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8361", "id": "8361",
@@ -68179,6 +68191,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8362", "id": "8362",
@@ -68204,6 +68217,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8363", "id": "8363",
@@ -68229,6 +68243,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8364", "id": "8364",
@@ -68254,6 +68269,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8365", "id": "8365",
@@ -68279,6 +68295,7 @@
"defence_level": "85", "defence_level": "85",
"poison_immune": "true", "poison_immune": "true",
"safespot": "true", "safespot": "true",
"movement_radius": "40",
"lifepoints": "326", "lifepoints": "326",
"strength_level": "85", "strength_level": "85",
"id": "8366", "id": "8366",
@@ -71622,4 +71639,4 @@
"id": "6062", "id": "6062",
"respawn_delay": "9999" "respawn_delay": "9999"
} }
] ]
@@ -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 @JvmField
var MAX_PATHFIND_DISTANCE = 25 var MAX_PATHFIND_DISTANCE = 25
@JvmField
var IRONMAN_ICONS = false
} }
} }
@@ -1,6 +1,7 @@
package core.game.node.entity.player.info; package core.game.node.entity.player.info;
import core.game.node.entity.player.Player; import core.game.node.entity.player.Player;
import core.ServerConstants;
/** /**
* Represent the rights of a player. * Represent the rights of a player.
@@ -24,9 +25,11 @@ public enum Rights {
if (c != Rights.REGULAR_PLAYER && c != null) { if (c != Rights.REGULAR_PLAYER && c != null) {
return c.toInteger(); return c.toInteger();
} }
if (player.getIronmanManager().isIronman()) { if (ServerConstants.IRONMAN_ICONS) {
return player.getIronmanManager().getMode().getIcon(); if (player.getIronmanManager().isIronman()) {
} return player.getIronmanManager().getMode().getIcon();
}
}
return 0; return 0;
} }
@@ -6,6 +6,7 @@ import core.api.sendMessage
import core.api.setAttribute import core.api.setAttribute
import core.game.system.command.Privilege import core.game.system.command.Privilege
import core.game.world.repository.Repository import core.game.world.repository.Repository
import core.game.node.entity.player.info.Rights
import core.tools.colorize import core.tools.colorize
class GlobalChat : Commands { class GlobalChat : Commands {
@@ -20,9 +21,9 @@ class GlobalChat : Commands {
companion object { companion object {
val ATTR_GLOBAL_MUTE = "/save:globalmute" val ATTR_GLOBAL_MUTE = "/save:globalmute"
fun process(sender: String, message: String) { fun process(sender: String, message: String, rights: Int) {
val msgSD = prepare(sender, message, false) val msgSD = prepare(sender, message, false, rights)
val msgHD = prepare(sender, message, true) val msgHD = prepare(sender, message, true, rights)
for (player in Repository.players.filter { !getAttribute(it, ATTR_GLOBAL_MUTE, false) }) { for (player in Repository.players.filter { !getAttribute(it, ATTR_GLOBAL_MUTE, false) }) {
if (player.interfaceManager.isResizable) if (player.interfaceManager.isResizable)
sendMessage(player, msgHD) 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 baseColor = if (isResizable) "%f1b04c" else "%7512ff"
val bracketColor = if (isResizable) "%ffffff" else "%000000" 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.DISCORD_OPENRSC_HOOK = data.getString("server.openrsc_integration_webhook", "")
ServerConstants.ENABLE_GLOBALCHAT = data.getBoolean("world.enable_globalchat", true) ServerConstants.ENABLE_GLOBALCHAT = data.getBoolean("world.enable_globalchat", true)
ServerConstants.MAX_PATHFIND_DISTANCE = data.getLong("server.max_pathfind_dist", 25L).toInt() 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() val logLevel = data.getString("server.log_level", "VERBOSE").uppercase()
ServerConstants.LOG_LEVEL = parseEnumEntry<LogLevel>(logLevel) ?: LogLevel.VERBOSE 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) val messages = splitChatMessage(pkt.message.substring(2), pkt.player.name.length + 3, false)
for (message in messages) { for (message in messages) {
if (message.isNotBlank()) if (message.isNotBlank())
GlobalChat.process(pkt.player.username, message) GlobalChat.process(pkt.player.username, message, Rights.getChatIcon(pkt.player))
} }
return return
} }
@@ -222,7 +222,7 @@ object PacketProcessor {
builder.sender = pkt.player.name builder.sender = pkt.player.name
builder.clanName = pkt.player.communication.clan.owner.lowercase().replace(" ", "_") builder.clanName = pkt.player.communication.clan.owner.lowercase().replace(" ", "_")
builder.message = message builder.message = message
builder.rank = pkt.player.rights.ordinal builder.rank = Rights.getChatIcon(pkt.player)
ManagementEvents.publish(builder.build()) ManagementEvents.publish(builder.build())
} }
return return
@@ -366,4 +366,4 @@ object ManagementEvents {
private fun shouldWaitForClanInfo(clanName: String): Boolean { private fun shouldWaitForClanInfo(clanName: String): Boolean {
return ClanRepository.get(clanName) == null && hasRequestedClanInfo[clanName] == null return ClanRepository.get(clanName) == null && hasRequestedClanInfo[clanName] == null
} }
} }