Addition of boss announcements configuration.

This commit is contained in:
MobiusDevelopment
2022-03-18 23:56:59 +00:00
parent 0b7138a36e
commit 49d468dcd4
95 changed files with 2341 additions and 151 deletions
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -114,6 +114,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1050,6 +1051,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2556,6 +2563,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -1,5 +1,5 @@
/*
* This f finalile is part of the L2J Mobius project.
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -115,6 +115,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1060,6 +1061,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2579,6 +2586,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -115,6 +115,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1073,6 +1074,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2601,6 +2608,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -115,6 +115,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1060,6 +1061,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2575,6 +2582,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -116,6 +116,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1059,6 +1060,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2584,6 +2591,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -116,6 +116,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1066,6 +1067,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2596,6 +2603,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -116,6 +116,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1088,6 +1089,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2639,6 +2646,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -116,6 +116,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1096,6 +1097,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2655,6 +2662,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -115,6 +115,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1087,6 +1088,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2626,6 +2633,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -116,6 +116,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1098,6 +1099,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2662,6 +2669,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -116,6 +116,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1098,6 +1099,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2662,6 +2669,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -116,6 +116,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1098,6 +1099,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2662,6 +2669,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -15,9 +15,6 @@ OnlineOnLogin = False
# File is located in data/html/welcome.htm
WelcomeHtm = False
# Announce when a raidboss has spawned.
AnnounceToAllSpawnRb = False
# Announce when a player has ben banned.
AnnounceTryBannedAccount = False
@@ -29,7 +29,6 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.data.SkillTable;
import org.l2jmobius.gameserver.data.sql.AnnouncementsTable;
import org.l2jmobius.gameserver.geoengine.GeoEngine;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.Skill;
@@ -120,10 +119,6 @@ public class Baium extends Quest
{
// The time has already expired while the server was offline. Delete the saved time and immediately spawn the stone-baium. Also the state need not be changed from ASLEEP.
addSpawn(STONE_BAIUM, 116033, 17447, 10104, 40188, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss Baium Stone spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(LIVE_BAIUM, ASLEEP);
}
}
@@ -136,10 +131,6 @@ public class Baium extends Quest
final int hp = info.getInt("currentHP");
final int mp = info.getInt("currentMP");
final GrandBoss baium = (GrandBoss) addSpawn(LIVE_BAIUM, x, y, z, heading, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + baium.getName() + " spawned in world.");
}
GrandBossManager.getInstance().addBoss(baium);
ThreadPool.schedule(() ->
{
@@ -160,10 +151,6 @@ public class Baium extends Quest
else
{
addSpawn(STONE_BAIUM, 116033, 17447, 10104, 40188, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss Baium Stone spawned in world.");
}
}
}
@@ -174,10 +161,6 @@ public class Baium extends Quest
{
GrandBossManager.getInstance().setBossStatus(LIVE_BAIUM, ASLEEP);
addSpawn(STONE_BAIUM, 116033, 17447, 10104, 40188, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss Baium Stone spawned in world.");
}
}
else if (event.equals("skill_range") && (npc != null))
{
@@ -24,7 +24,6 @@ import java.util.concurrent.ConcurrentHashMap;
import org.l2jmobius.Config;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.data.sql.AnnouncementsTable;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.GlobalVariablesManager;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
@@ -114,10 +113,6 @@ public class Core extends Quest
{
// The time has already expired while the server was offline. Immediately spawn Core.
final GrandBoss core = (GrandBoss) addSpawn(CORE, 17726, 108915, -6480, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + core.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(CORE, ALIVE);
spawnBoss(core);
}
@@ -129,10 +124,6 @@ public class Core extends Quest
_firstAttacked = true;
}
final GrandBoss core = (GrandBoss) addSpawn(CORE, 17726, 108915, -6480, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + core.getName() + " spawned in world.");
}
spawnBoss(core);
}
}
@@ -165,10 +156,6 @@ public class Core extends Quest
if (event.equals("core_unlock"))
{
final GrandBoss core = (GrandBoss) addSpawn(CORE, 17726, 108915, -6480, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + core.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(CORE, ALIVE);
spawnBoss(core);
}
@@ -20,7 +20,6 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.SkillTable;
import org.l2jmobius.gameserver.data.sql.AnnouncementsTable;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Npc;
@@ -73,10 +72,6 @@ public class Orfen extends Quest
else
{
_orfen = (GrandBoss) addSpawn(ORFEN, 55024, 17368, -5412, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + _orfen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(ORFEN, LIVE);
GrandBossManager.getInstance().addBoss(_orfen);
}
@@ -87,10 +82,6 @@ public class Orfen extends Quest
final int hp = info.getInt("currentHP");
final int mp = info.getInt("currentMP");
_orfen = (GrandBoss) addSpawn(ORFEN, 55024, 17368, -5412, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + _orfen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().addBoss(_orfen);
_orfen.setCurrentHpMp(hp, mp);
break;
@@ -102,10 +93,6 @@ public class Orfen extends Quest
final int loc_z = -5412;
final int heading = 0;
_orfen = (GrandBoss) addSpawn(ORFEN, loc_x, loc_y, loc_z, heading, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + _orfen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(ORFEN, LIVE);
GrandBossManager.getInstance().addBoss(_orfen);
break;
@@ -127,10 +114,6 @@ public class Orfen extends Quest
final int loc_z = -5412;
final int heading = 0;
_orfen = (GrandBoss) addSpawn(ORFEN, loc_x, loc_y, loc_z, heading, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + _orfen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(ORFEN, LIVE);
GrandBossManager.getInstance().addBoss(_orfen);
break;
@@ -23,7 +23,6 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.SkillTable;
import org.l2jmobius.gameserver.data.sql.AnnouncementsTable;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@@ -101,10 +100,6 @@ public class QueenAnt extends Quest
else
{
final GrandBoss queen = (GrandBoss) addSpawn(QUEEN, -21610, 181594, -5734, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + queen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(QUEEN, LIVE);
GrandBossManager.getInstance().addBoss(queen);
spawnBoss(queen);
@@ -116,10 +111,6 @@ public class QueenAnt extends Quest
final int hp = info.getInt("currentHP");
final int mp = info.getInt("currentMP");
final GrandBoss queen = (GrandBoss) addSpawn(QUEEN, -21610, 181594, -5734, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + queen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().addBoss(queen);
queen.setCurrentHpMp(hp, mp);
spawnBoss(queen);
@@ -128,10 +119,6 @@ public class QueenAnt extends Quest
default:
{
final GrandBoss queen = (GrandBoss) addSpawn(QUEEN, -21610, 181594, -5734, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + queen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(QUEEN, LIVE);
GrandBossManager.getInstance().addBoss(queen);
spawnBoss(queen);
@@ -165,10 +152,6 @@ public class QueenAnt extends Quest
case QUEEN_SPAWN:
{
final GrandBoss queen = (GrandBoss) addSpawn(QUEEN, -21610, 181594, -5734, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + queen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(QUEEN, LIVE);
GrandBossManager.getInstance().addBoss(queen);
spawnBoss(queen);
@@ -81,6 +81,7 @@ public class Config
public static final String TELNET_CONFIG_FILE = "./config/Telnet.ini";
// custom
private static final String BANK_CONFIG_FILE = "./config/custom/Bank.ini";
private static final String BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/custom/BossAnnouncements.ini";
private static final String CANCEL_SKILL_RESTORE_BUFFS_CONFIG_FILE = "./config/custom/CancelSkillRestoreBuffs.ini";
private static final String CHAMPION_CONFIG_FILE = "./config/custom/Champion.ini";
public static final String CLASS_DAMAGE_CONFIG_FILE = "./config/custom/ClassDamage.ini";
@@ -528,6 +529,13 @@ public class Config
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static int RESTORE_CANCELLED_BUFFS_SECONDS;
public static int BUFFER_MAX_SCHEMES;
@@ -550,7 +558,6 @@ public class Config
public static boolean ONLINE_PLAYERS_ON_LOGIN;
public static boolean SUBSTUCK_SKILLS;
public static boolean ALT_SERVER_NAME_ENABLED;
public static boolean ANNOUNCE_TO_ALL_SPAWN_RB;
public static boolean ANNOUNCE_TRY_BANNED_ACCOUNT;
public static String ALT_Server_Name;
public static boolean DONATOR_NAME_COLOR_ENABLED;
@@ -1714,6 +1721,17 @@ public class Config
BANKING_SYSTEM_ADENA = bankConfig.getInt("BankingAdenaCount", 500000000);
}
public static void loadBossAnnouncementsConfig()
{
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
}
public static void loadCancelSkillRestoreBuffsConfig()
{
final PropertiesParser cancelSkillRestoreBuffsConfig = new PropertiesParser(CANCEL_SKILL_RESTORE_BUFFS_CONFIG_FILE);
@@ -1768,7 +1786,6 @@ public class Config
DONATOR_SPOIL_RATE = customServerConfig.getFloat("DonatorSpoilRate", 1.5f);
WELCOME_HTM = customServerConfig.getBoolean("WelcomeHtm", false);
ALT_SERVER_NAME_ENABLED = customServerConfig.getBoolean("ServerNameEnabled", false);
ANNOUNCE_TO_ALL_SPAWN_RB = customServerConfig.getBoolean("AnnounceToAllSpawnRb", false);
ANNOUNCE_TRY_BANNED_ACCOUNT = customServerConfig.getBoolean("AnnounceTryBannedAccount", false);
ALT_Server_Name = customServerConfig.getString("ServerName", "");
DIFFERENT_Z_CHANGE_OBJECT = customServerConfig.getInt("DifferentZchangeObject", 650);
@@ -2859,6 +2876,7 @@ public class Config
loadWeddingConfig();
loadRebirthConfig();
loadBankingConfig();
loadBossAnnouncementsConfig();
loadBufferConfig();
loadPCBPointConfig();
loadOfflineConfig();
@@ -31,7 +31,6 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.data.sql.AnnouncementsTable;
import org.l2jmobius.gameserver.data.sql.NpcTable;
import org.l2jmobius.gameserver.data.sql.SpawnTable;
import org.l2jmobius.gameserver.data.xml.AdminData;
@@ -155,13 +154,9 @@ public class RaidBossSpawnManager
info.set("currentMP", raidboss.getCurrentMp());
info.set("respawnTime", 0);
_storedInfo.put(bossId, info);
_bosses.put(bossId, raidboss);
AdminData.broadcastMessageToGMs("Spawning Raid Boss " + raidboss.getName() + ".");
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + raidboss.getName() + " spawned in world.");
}
_bosses.put(bossId, raidboss);
}
_schedules.remove(bossId);
@@ -122,6 +122,7 @@ import org.l2jmobius.gameserver.network.serverpackets.TargetUnselected;
import org.l2jmobius.gameserver.network.serverpackets.TeleportToLocation;
import org.l2jmobius.gameserver.network.serverpackets.ValidateLocationInVehicle;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -311,6 +312,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
{
super.onSpawn();
revalidateZone();
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcTable.getInstance().getTemplate(((Npc) this).getNpcId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcTable.getInstance().getTemplate(((Npc) this).getNpcId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public void onTeleported()
@@ -1812,6 +1836,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
// Update active skills in progress (In Use and Not In Use because stacked) icones on client
updateEffectIcons();
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcTable.getInstance().getTemplate(((Npc) this).getNpcId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcTable.getInstance().getTemplate(((Npc) this).getNpcId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -24,6 +24,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.serverpackets.CharInfo;
import org.l2jmobius.gameserver.network.serverpackets.CreatureSay;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.RelationChanged;
@@ -206,6 +207,11 @@ public class Broadcast
toAllOnlinePlayers(new CreatureSay(0, isCritical ? ChatType.CRITICAL_ANNOUNCE : ChatType.ANNOUNCEMENT, null, text));
}
public static void toAllOnlinePlayersOnScreen(String text)
{
toAllOnlinePlayers(new ExShowScreenMessage(text, 10000));
}
/**
* Send a packet to all players in a specific zone type.
* @param <T> ZoneType.
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -15,9 +15,6 @@ OnlineOnLogin = False
# File is located in data/html/welcome.htm
WelcomeHtm = False
# Announce when a raidboss has spawned.
AnnounceToAllSpawnRb = False
# Announce when a player has ben banned.
AnnounceTryBannedAccount = False
@@ -29,7 +29,6 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.data.SkillTable;
import org.l2jmobius.gameserver.data.sql.AnnouncementsTable;
import org.l2jmobius.gameserver.geoengine.GeoEngine;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.Skill;
@@ -120,10 +119,6 @@ public class Baium extends Quest
{
// The time has already expired while the server was offline. Delete the saved time and immediately spawn the stone-baium. Also the state need not be changed from ASLEEP.
addSpawn(STONE_BAIUM, 116033, 17447, 10104, 40188, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss Baium Stone spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(LIVE_BAIUM, ASLEEP);
}
}
@@ -136,10 +131,6 @@ public class Baium extends Quest
final int hp = info.getInt("currentHP");
final int mp = info.getInt("currentMP");
final GrandBoss baium = (GrandBoss) addSpawn(LIVE_BAIUM, x, y, z, heading, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + baium.getName() + " spawned in world.");
}
GrandBossManager.getInstance().addBoss(baium);
ThreadPool.schedule(() ->
{
@@ -160,10 +151,6 @@ public class Baium extends Quest
else
{
addSpawn(STONE_BAIUM, 116033, 17447, 10104, 40188, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss Baium Stone spawned in world.");
}
}
}
@@ -174,10 +161,6 @@ public class Baium extends Quest
{
GrandBossManager.getInstance().setBossStatus(LIVE_BAIUM, ASLEEP);
addSpawn(STONE_BAIUM, 116033, 17447, 10104, 40188, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss Baium Stone spawned in world.");
}
}
else if (event.equals("skill_range") && (npc != null))
{
@@ -24,7 +24,6 @@ import java.util.concurrent.ConcurrentHashMap;
import org.l2jmobius.Config;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.data.sql.AnnouncementsTable;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.GlobalVariablesManager;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
@@ -114,10 +113,6 @@ public class Core extends Quest
{
// The time has already expired while the server was offline. Immediately spawn Core.
final GrandBoss core = (GrandBoss) addSpawn(CORE, 17726, 108915, -6480, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + core.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(CORE, ALIVE);
spawnBoss(core);
}
@@ -129,10 +124,6 @@ public class Core extends Quest
_firstAttacked = true;
}
final GrandBoss core = (GrandBoss) addSpawn(CORE, 17726, 108915, -6480, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + core.getName() + " spawned in world.");
}
spawnBoss(core);
}
}
@@ -165,10 +156,6 @@ public class Core extends Quest
if (event.equals("core_unlock"))
{
final GrandBoss core = (GrandBoss) addSpawn(CORE, 17726, 108915, -6480, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + core.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(CORE, ALIVE);
spawnBoss(core);
}
@@ -20,7 +20,6 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.SkillTable;
import org.l2jmobius.gameserver.data.sql.AnnouncementsTable;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Npc;
@@ -73,10 +72,6 @@ public class Orfen extends Quest
else
{
_orfen = (GrandBoss) addSpawn(ORFEN, 55024, 17368, -5412, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + _orfen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(ORFEN, LIVE);
GrandBossManager.getInstance().addBoss(_orfen);
}
@@ -87,10 +82,6 @@ public class Orfen extends Quest
final int hp = info.getInt("currentHP");
final int mp = info.getInt("currentMP");
_orfen = (GrandBoss) addSpawn(ORFEN, 55024, 17368, -5412, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + _orfen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().addBoss(_orfen);
_orfen.setCurrentHpMp(hp, mp);
break;
@@ -102,10 +93,6 @@ public class Orfen extends Quest
final int loc_z = -5412;
final int heading = 0;
_orfen = (GrandBoss) addSpawn(ORFEN, loc_x, loc_y, loc_z, heading, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + _orfen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(ORFEN, LIVE);
GrandBossManager.getInstance().addBoss(_orfen);
break;
@@ -127,10 +114,6 @@ public class Orfen extends Quest
final int loc_z = -5412;
final int heading = 0;
_orfen = (GrandBoss) addSpawn(ORFEN, loc_x, loc_y, loc_z, heading, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + _orfen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(ORFEN, LIVE);
GrandBossManager.getInstance().addBoss(_orfen);
break;
@@ -23,7 +23,6 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.SkillTable;
import org.l2jmobius.gameserver.data.sql.AnnouncementsTable;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@@ -101,10 +100,6 @@ public class QueenAnt extends Quest
else
{
final GrandBoss queen = (GrandBoss) addSpawn(QUEEN, -21610, 181594, -5734, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + queen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(QUEEN, LIVE);
GrandBossManager.getInstance().addBoss(queen);
spawnBoss(queen);
@@ -116,10 +111,6 @@ public class QueenAnt extends Quest
final int hp = info.getInt("currentHP");
final int mp = info.getInt("currentMP");
final GrandBoss queen = (GrandBoss) addSpawn(QUEEN, -21610, 181594, -5734, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + queen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().addBoss(queen);
queen.setCurrentHpMp(hp, mp);
spawnBoss(queen);
@@ -128,10 +119,6 @@ public class QueenAnt extends Quest
default:
{
final GrandBoss queen = (GrandBoss) addSpawn(QUEEN, -21610, 181594, -5734, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + queen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(QUEEN, LIVE);
GrandBossManager.getInstance().addBoss(queen);
spawnBoss(queen);
@@ -165,10 +152,6 @@ public class QueenAnt extends Quest
case QUEEN_SPAWN:
{
final GrandBoss queen = (GrandBoss) addSpawn(QUEEN, -21610, 181594, -5734, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + queen.getName() + " spawned in world.");
}
GrandBossManager.getInstance().setBossStatus(QUEEN, LIVE);
GrandBossManager.getInstance().addBoss(queen);
spawnBoss(queen);
@@ -96,6 +96,7 @@ public class Config
public static final String TELNET_CONFIG_FILE = "./config/Telnet.ini";
// custom
private static final String BANK_CONFIG_FILE = "./config/custom/Bank.ini";
private static final String BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/custom/BossAnnouncements.ini";
private static final String CANCEL_SKILL_RESTORE_BUFFS_CONFIG_FILE = "./config/custom/CancelSkillRestoreBuffs.ini";
private static final String CHAMPION_CONFIG_FILE = "./config/custom/Champion.ini";
public static final String CLASS_DAMAGE_CONFIG_FILE = "./config/custom/ClassDamage.ini";
@@ -556,6 +557,13 @@ public class Config
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static int RESTORE_CANCELLED_BUFFS_SECONDS;
public static int BUFFER_MAX_SCHEMES;
@@ -578,7 +586,6 @@ public class Config
public static boolean ONLINE_PLAYERS_ON_LOGIN;
public static boolean SUBSTUCK_SKILLS;
public static boolean ALT_SERVER_NAME_ENABLED;
public static boolean ANNOUNCE_TO_ALL_SPAWN_RB;
public static boolean ANNOUNCE_TRY_BANNED_ACCOUNT;
public static String ALT_Server_Name;
public static boolean DONATOR_NAME_COLOR_ENABLED;
@@ -1767,6 +1774,17 @@ public class Config
BANKING_SYSTEM_ADENA = bankConfig.getInt("BankingAdenaCount", 500000000);
}
public static void loadBossAnnouncementsConfig()
{
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
}
public static void loadCancelSkillRestoreBuffsConfig()
{
final PropertiesParser cancelSkillRestoreBuffsConfig = new PropertiesParser(CANCEL_SKILL_RESTORE_BUFFS_CONFIG_FILE);
@@ -1821,7 +1839,6 @@ public class Config
DONATOR_SPOIL_RATE = customServerConfig.getFloat("DonatorSpoilRate", 1.5f);
WELCOME_HTM = customServerConfig.getBoolean("WelcomeHtm", false);
ALT_SERVER_NAME_ENABLED = customServerConfig.getBoolean("ServerNameEnabled", false);
ANNOUNCE_TO_ALL_SPAWN_RB = customServerConfig.getBoolean("AnnounceToAllSpawnRb", false);
ANNOUNCE_TRY_BANNED_ACCOUNT = customServerConfig.getBoolean("AnnounceTryBannedAccount", false);
ALT_Server_Name = customServerConfig.getString("ServerName", "");
DIFFERENT_Z_CHANGE_OBJECT = customServerConfig.getInt("DifferentZchangeObject", 650);
@@ -2929,6 +2946,7 @@ public class Config
loadWeddingConfig();
loadRebirthConfig();
loadBankingConfig();
loadBossAnnouncementsConfig();
loadBufferConfig();
loadPCBPointConfig();
loadOfflineConfig();
@@ -31,7 +31,6 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.data.sql.AnnouncementsTable;
import org.l2jmobius.gameserver.data.sql.NpcTable;
import org.l2jmobius.gameserver.data.sql.SpawnTable;
import org.l2jmobius.gameserver.data.xml.AdminData;
@@ -155,13 +154,9 @@ public class RaidBossSpawnManager
info.set("currentMP", raidboss.getCurrentMp());
info.set("respawnTime", 0);
_storedInfo.put(bossId, info);
_bosses.put(bossId, raidboss);
AdminData.broadcastMessageToGMs("Spawning Raid Boss " + raidboss.getName() + ".");
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{
AnnouncementsTable.getInstance().announceToAll("Raid boss " + raidboss.getName() + " spawned in world.");
}
_bosses.put(bossId, raidboss);
}
_schedules.remove(bossId);
@@ -124,6 +124,7 @@ import org.l2jmobius.gameserver.network.serverpackets.TargetUnselected;
import org.l2jmobius.gameserver.network.serverpackets.TeleportToLocation;
import org.l2jmobius.gameserver.network.serverpackets.ValidateLocationInVehicle;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -313,6 +314,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
{
super.onSpawn();
revalidateZone();
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcTable.getInstance().getTemplate(((Npc) this).getNpcId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcTable.getInstance().getTemplate(((Npc) this).getNpcId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public void onTeleported()
@@ -1855,6 +1879,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
// Update active skills in progress (In Use and Not In Use because stacked) icones on client
updateEffectIcons();
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcTable.getInstance().getTemplate(((Npc) this).getNpcId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcTable.getInstance().getTemplate(((Npc) this).getNpcId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -24,6 +24,7 @@ import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.serverpackets.CharInfo;
import org.l2jmobius.gameserver.network.serverpackets.CreatureSay;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.RelationChanged;
@@ -206,6 +207,11 @@ public class Broadcast
toAllOnlinePlayers(new CreatureSay(0, isCritical ? ChatType.CRITICAL_ANNOUNCE : ChatType.ANNOUNCEMENT, null, text));
}
public static void toAllOnlinePlayersOnScreen(String text)
{
toAllOnlinePlayers(new ExShowScreenMessage(text, 10000));
}
/**
* Send a packet to all players in a specific zone type.
* @param <T> ZoneType.
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -113,6 +113,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_COMMUNITY_BOARD_CONFIG_FILE = "./config/Custom/CommunityBoard.ini";
@@ -1119,6 +1120,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_WAREHOUSESORTING_CLAN;
public static boolean ENABLE_WAREHOUSESORTING_PRIVATE;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
@@ -2647,6 +2654,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -49,6 +49,7 @@ import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.ItemTable;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.FlyType;
import org.l2jmobius.gameserver.enums.InstanceType;
@@ -74,6 +75,7 @@ import org.l2jmobius.gameserver.model.TimeStamp;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.actor.instance.QuestGuard;
@@ -160,6 +162,7 @@ import org.l2jmobius.gameserver.network.serverpackets.TeleportToLocation;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -523,6 +526,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -2477,6 +2503,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -113,6 +113,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_COMMUNITY_BOARD_CONFIG_FILE = "./config/Custom/CommunityBoard.ini";
@@ -1119,6 +1120,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_WAREHOUSESORTING_CLAN;
public static boolean ENABLE_WAREHOUSESORTING_PRIVATE;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
@@ -2654,6 +2661,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -49,6 +49,7 @@ import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.ItemTable;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.FlyType;
import org.l2jmobius.gameserver.enums.InstanceType;
@@ -74,6 +75,7 @@ import org.l2jmobius.gameserver.model.TimeStamp;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.actor.instance.QuestGuard;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.TeleportToLocation;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -524,6 +527,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -2479,6 +2505,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && ((getInstanceId() == 0) || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -115,6 +115,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1009,6 +1010,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2485,6 +2492,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -115,6 +115,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1013,6 +1014,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2491,6 +2498,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -115,6 +115,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1013,6 +1014,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2491,6 +2498,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -115,6 +115,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1013,6 +1014,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2491,6 +2498,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -82,6 +83,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -162,6 +164,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -592,6 +595,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1735,6 +1761,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -115,6 +115,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1018,6 +1019,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2500,6 +2507,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -82,6 +83,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -162,6 +164,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -592,6 +595,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1735,6 +1761,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -116,6 +116,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1024,6 +1025,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2545,6 +2552,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -82,6 +83,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -162,6 +164,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -592,6 +595,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1735,6 +1761,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -116,6 +116,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1025,6 +1026,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2505,6 +2512,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -81,6 +82,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -161,6 +163,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -591,6 +594,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1734,6 +1760,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -118,6 +118,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1048,6 +1049,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2594,6 +2601,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -82,6 +83,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -162,6 +164,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -592,6 +595,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1738,6 +1764,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -118,6 +118,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1048,6 +1049,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2600,6 +2607,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -82,6 +83,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -162,6 +164,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -592,6 +595,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1745,6 +1771,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -118,6 +118,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1048,6 +1049,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2600,6 +2607,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -82,6 +83,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -162,6 +164,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -592,6 +595,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1745,6 +1771,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}
@@ -0,0 +1,21 @@
# ---------------------------------------------------------------------------
# Boss Announcement Settings
# ---------------------------------------------------------------------------
# Enable RaidBoss spawn announcements.
RaidBossSpawnAnnouncements = false
# Enable RaidBoss spawn announcements.
RaidBossDefeatAnnouncements = false
# Enable RaidBoss announcements in instances.
RaidBossInstanceAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossSpawnAnnouncements = false
# Enable GrandBoss spawn announcements.
GrandBossDefeatAnnouncements = false
# Enable GrandBoss announcements in instances.
RaidBossInstanceAnnouncements = false
@@ -118,6 +118,7 @@ public class Config
private static final String CUSTOM_ALLOWED_PLAYER_RACES_CONFIG_FILE = "./config/Custom/AllowedPlayerRaces.ini";
private static final String CUSTOM_AUTO_POTIONS_CONFIG_FILE = "./config/Custom/AutoPotions.ini";
private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
private static final String CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE = "./config/Custom/BossAnnouncements.ini";
private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
@@ -1048,6 +1049,12 @@ public class Config
public static boolean BANKING_SYSTEM_ENABLED;
public static int BANKING_SYSTEM_GOLDBARS;
public static int BANKING_SYSTEM_ADENA;
public static boolean RAIDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean RAIDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean RAIDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean GRANDBOSS_SPAWN_ANNOUNCEMENTS;
public static boolean GRANDBOSS_DEFEAT_ANNOUNCEMENTS;
public static boolean GRANDBOSS_INSTANCE_ANNOUNCEMENTS;
public static boolean ENABLE_NPC_STAT_MULTIPLIERS;
public static double MONSTER_HP_MULTIPLIER;
public static double MONSTER_MP_MULTIPLIER;
@@ -2600,6 +2607,15 @@ public class Config
BANKING_SYSTEM_GOLDBARS = bankingConfig.getInt("BankingGoldbarCount", 1);
BANKING_SYSTEM_ADENA = bankingConfig.getInt("BankingAdenaCount", 500000000);
// Load Boss Announcements config file (if exists)
final PropertiesParser bossAnnouncementsConfig = new PropertiesParser(CUSTOM_BOSS_ANNOUNCEMENTS_CONFIG_FILE);
RAIDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossSpawnAnnouncements", false);
RAIDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossDefeatAnnouncements", false);
RAIDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
GRANDBOSS_SPAWN_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossSpawnAnnouncements", false);
GRANDBOSS_DEFEAT_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("GrandBossDefeatAnnouncements", false);
GRANDBOSS_INSTANCE_ANNOUNCEMENTS = bossAnnouncementsConfig.getBoolean("RaidBossInstanceAnnouncements", false);
// Load BoostNpcStats config file (if exists)
final PropertiesParser boostNpcStatConfig = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPLIERS_CONFIG_FILE);
ENABLE_NPC_STAT_MULTIPLIERS = boostNpcStatConfig.getBoolean("EnableNpcStatMultipliers", false);
@@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.ai.CtrlEvent;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.cache.RelationCache;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TransformData;
import org.l2jmobius.gameserver.enums.AttributeType;
@@ -82,6 +83,7 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyNpc;
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
import org.l2jmobius.gameserver.model.actor.instance.Monster;
import org.l2jmobius.gameserver.model.actor.instance.Trap;
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
@@ -162,6 +164,7 @@ import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import org.l2jmobius.gameserver.taskmanager.CreatureSeeTaskManager;
import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
import org.l2jmobius.gameserver.util.Broadcast;
import org.l2jmobius.gameserver.util.Util;
/**
@@ -592,6 +595,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
{
super.onSpawn();
revalidateZone(true);
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_SPAWN_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has spawned!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has spawned!");
}
}
}
public synchronized void onTeleported()
@@ -1745,6 +1771,29 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
getSkillChannelized().abortChannelization();
}
// Custom boss announcements configuration.
if (this instanceof GrandBoss)
{
if (Config.GRANDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.GRANDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
}
else if (isRaid() && Config.RAIDBOSS_DEFEAT_ANNOUNCEMENTS && (!isInInstance() || Config.RAIDBOSS_INSTANCE_ANNOUNCEMENTS))
{
final String name = NpcData.getInstance().getTemplate(getId()).getName();
if (name != null)
{
Broadcast.toAllOnlinePlayers(name + " has been defeated!");
Broadcast.toAllOnlinePlayersOnScreen(name + " has been defeated!");
}
}
return true;
}