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

View File

@ -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);

View File

@ -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;
}