forked from MagicBane/Server
remove hotzone form the game
This commit is contained in:
@@ -1,77 +0,0 @@
|
|||||||
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
|
|
||||||
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
|
|
||||||
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
|
|
||||||
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
|
|
||||||
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
|
|
||||||
// Magicbane Emulator Project © 2013 - 2022
|
|
||||||
// www.magicbane.com
|
|
||||||
|
|
||||||
|
|
||||||
package engine.devcmd.cmds;
|
|
||||||
|
|
||||||
import engine.devcmd.AbstractDevCmd;
|
|
||||||
import engine.gameManager.ZoneManager;
|
|
||||||
import engine.objects.AbstractGameObject;
|
|
||||||
import engine.objects.PlayerCharacter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ./hotzone <- display the current hotzone & time remaining
|
|
||||||
* ./hotzone random <- change hotzone to random new zone
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class HotzoneCmd extends AbstractDevCmd {
|
|
||||||
|
|
||||||
public HotzoneCmd() {
|
|
||||||
super("hotzone");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void _doCmd(PlayerCharacter playerCharacter, String[] words,
|
|
||||||
AbstractGameObject target) {
|
|
||||||
|
|
||||||
StringBuilder data = new StringBuilder();
|
|
||||||
String outString;
|
|
||||||
|
|
||||||
for (String s : words) {
|
|
||||||
data.append(s);
|
|
||||||
data.append(' ');
|
|
||||||
}
|
|
||||||
|
|
||||||
String input = data.toString().trim();
|
|
||||||
|
|
||||||
if (input.length() == 0) {
|
|
||||||
outString = "Current hotZone: " + ZoneManager.hotZone.getName() + "\r\n";
|
|
||||||
outString += "Available hotZones: " + ZoneManager.availableHotZones();
|
|
||||||
throwbackInfo(playerCharacter, outString);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (input.equalsIgnoreCase("random")) {
|
|
||||||
ZoneManager.generateAndSetRandomHotzone();
|
|
||||||
outString = "New hotZone: " + ZoneManager.hotZone.getName() + "\r\n";
|
|
||||||
outString += "Available hotZones: " + ZoneManager.availableHotZones();
|
|
||||||
throwbackInfo(playerCharacter, outString);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (input.equalsIgnoreCase("reset")) {
|
|
||||||
ZoneManager.resetHotZones();
|
|
||||||
throwbackInfo(playerCharacter, "Available hotZones: " + ZoneManager.availableHotZones());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String _getHelpString() {
|
|
||||||
return "Use no arguments to see the current hotzone or \"random\" to change it randomly.";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String _getUsageString() {
|
|
||||||
return "'./hotzone [random]";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -79,7 +79,6 @@ public enum DevCmdManager {
|
|||||||
DevCmdManager.registerDevCmd(new AddGoldCmd());
|
DevCmdManager.registerDevCmd(new AddGoldCmd());
|
||||||
DevCmdManager.registerDevCmd(new ZoneInfoCmd());
|
DevCmdManager.registerDevCmd(new ZoneInfoCmd());
|
||||||
DevCmdManager.registerDevCmd(new DebugMeleeSyncCmd());
|
DevCmdManager.registerDevCmd(new DebugMeleeSyncCmd());
|
||||||
DevCmdManager.registerDevCmd(new HotzoneCmd());
|
|
||||||
DevCmdManager.registerDevCmd(new MineActiveCmd());
|
DevCmdManager.registerDevCmd(new MineActiveCmd());
|
||||||
// Dev
|
// Dev
|
||||||
DevCmdManager.registerDevCmd(new ApplyStatModCmd());
|
DevCmdManager.registerDevCmd(new ApplyStatModCmd());
|
||||||
|
|||||||
@@ -19,14 +19,12 @@ import engine.objects.Building;
|
|||||||
import engine.objects.City;
|
import engine.objects.City;
|
||||||
import engine.objects.Zone;
|
import engine.objects.Zone;
|
||||||
import engine.server.MBServerStatics;
|
import engine.server.MBServerStatics;
|
||||||
import org.pmw.tinylog.Logger;
|
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Class contains methods and structures which
|
* Class contains methods and structures which
|
||||||
@@ -109,20 +107,6 @@ public enum ZoneManager {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the number of available hotZones
|
|
||||||
// remaining in this cycle (1am)
|
|
||||||
|
|
||||||
public static int availableHotZones() {
|
|
||||||
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
for (Zone zone : ZoneManager.macroZones)
|
|
||||||
if (ZoneManager.validHotZone(zone))
|
|
||||||
count = count + 1;
|
|
||||||
|
|
||||||
return count;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Resets the availability of hotZones
|
// Resets the availability of hotZones
|
||||||
// for this cycle
|
// for this cycle
|
||||||
|
|
||||||
@@ -217,63 +201,6 @@ public enum ZoneManager {
|
|||||||
ZoneManager.playerCityZones.add(zone);
|
ZoneManager.playerCityZones.add(zone);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final void generateAndSetRandomHotzone() {
|
|
||||||
|
|
||||||
Zone hotZone;
|
|
||||||
ArrayList<Integer> zoneArray = new ArrayList<>();
|
|
||||||
|
|
||||||
if (ZoneManager.macroZones.isEmpty())
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Reset hotZone availability if none are left.
|
|
||||||
|
|
||||||
if (ZoneManager.availableHotZones() == 0)
|
|
||||||
ZoneManager.resetHotZones();
|
|
||||||
|
|
||||||
for (Zone zone : ZoneManager.macroZones)
|
|
||||||
if (validHotZone(zone))
|
|
||||||
zoneArray.add(zone.getObjectUUID());
|
|
||||||
|
|
||||||
int entryIndex = ThreadLocalRandom.current().nextInt(zoneArray.size());
|
|
||||||
|
|
||||||
hotZone = ZoneManager.getZoneByUUID(zoneArray.get(entryIndex));
|
|
||||||
|
|
||||||
if (hotZone == null) {
|
|
||||||
Logger.error("Hotzone is null");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ZoneManager.setHotZone(hotZone);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final boolean validHotZone(Zone zone) {
|
|
||||||
|
|
||||||
if (zone.getSafeZone() == (byte) 1)
|
|
||||||
return false; // no safe zone hotzones// if (this.hotzone == null)
|
|
||||||
|
|
||||||
if (zone.getNodes().isEmpty())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (zone.equals(ZoneManager.seaFloor))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
//no duplicate hotZones
|
|
||||||
|
|
||||||
if (zone.hasBeenHotzone == true)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// Enforce min level
|
|
||||||
|
|
||||||
if (zone.minLvl < Integer.parseInt(ConfigManager.MB_HOTZONE_MIN_LEVEL.getValue()))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (ZoneManager.hotZone != null)
|
|
||||||
return ZoneManager.hotZone.getObjectUUID() != zone.getObjectUUID();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Converts world coordinates to coordinates local to a given zone.
|
// Converts world coordinates to coordinates local to a given zone.
|
||||||
|
|
||||||
public static Vector3fImmutable worldToLocal(Vector3fImmutable worldVector,
|
public static Vector3fImmutable worldToLocal(Vector3fImmutable worldVector,
|
||||||
|
|||||||
@@ -440,9 +440,6 @@ public class WorldServer {
|
|||||||
Logger.info("Loading Max Skills for Trainers");
|
Logger.info("Loading Max Skills for Trainers");
|
||||||
DbManager.SkillsBaseQueries.LOAD_ALL_MAX_SKILLS_FOR_CONTRACT();
|
DbManager.SkillsBaseQueries.LOAD_ALL_MAX_SKILLS_FOR_CONTRACT();
|
||||||
|
|
||||||
//pick a startup Hotzone
|
|
||||||
ZoneManager.generateAndSetRandomHotzone();
|
|
||||||
|
|
||||||
Logger.info("Loading All Players from database to Server Cache");
|
Logger.info("Loading All Players from database to Server Cache");
|
||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user