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

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

View File

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

View File

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

View File

@@ -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.