188 lines
5.0 KiB
Java
188 lines
5.0 KiB
Java
package constants;
|
|
|
|
import server.maps.MapleMapObject;
|
|
|
|
import java.util.Iterator;
|
|
|
|
import gui.Start;
|
|
import server.life.MapleMonster;
|
|
import server.maps.MapleMap;
|
|
|
|
public class MapConstants {
|
|
public static boolean isBlockFM(final int mapid) {
|
|
final int header = mapid / 100000;
|
|
if (isEventMap(mapid)) {
|
|
return true;
|
|
}
|
|
if (header == 9800 && (mapid % 10 == 1 || mapid % 1000 == 100)) {
|
|
return true;
|
|
}
|
|
if (mapid / 10000 == 92502) {
|
|
return true;
|
|
}
|
|
if (header == 7090) {
|
|
return true;
|
|
}
|
|
if (header == 1090) {
|
|
return true;
|
|
}
|
|
switch (mapid) {
|
|
case 702060000: {
|
|
return true;
|
|
}
|
|
default: {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static boolean isForceRespawn(final int mapid) {
|
|
switch (mapid) {
|
|
case 925100100: {
|
|
return true;
|
|
}
|
|
default: {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static boolean isCar(final int mapid) {
|
|
switch (mapid) {
|
|
case 680000000:
|
|
case 980000000:
|
|
case 980030000: {
|
|
return true;
|
|
}
|
|
default: {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static boolean isStartingEventMap(final int mapid) {
|
|
switch (mapid) {
|
|
case 109010000:
|
|
case 109020001:
|
|
case 109030001:
|
|
case 109030101:
|
|
case 109030201:
|
|
case 109030301:
|
|
case 109030401:
|
|
case 109040000:
|
|
case 109060001:
|
|
case 109060002:
|
|
case 109060003:
|
|
case 109060004:
|
|
case 109060005:
|
|
case 109060006:
|
|
case 109080000:
|
|
case 109080001:
|
|
case 109080002:
|
|
case 109080003: {
|
|
return true;
|
|
}
|
|
default: {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static boolean isEventMap(final int mapid) {
|
|
return (mapid >= 109010000 && mapid < 109050000) || (mapid > 109050001 && mapid < 109090000) || (mapid >= 809040000 && mapid <= 809040100);
|
|
}
|
|
|
|
public static boolean inBossMap(final int mapid) {//轮回相关,添加不可召唤地图
|
|
if (mapid / 10000 == 92502) {
|
|
return true;
|
|
}
|
|
if (mapid == 220040000) {
|
|
return true;
|
|
}
|
|
switch (mapid) {
|
|
case 105100300:
|
|
case 220080001:
|
|
case 230040420:
|
|
case 240060000:
|
|
case 240060100:
|
|
case 240060200:
|
|
case 270050100:
|
|
case 280030000:
|
|
case 551030200:
|
|
case 702060000:
|
|
case 740000000:
|
|
case 741020102:
|
|
case 749050301:
|
|
case 802000211:
|
|
case 922010900:
|
|
case 925020200:
|
|
case 930000600: {
|
|
return true;
|
|
}
|
|
default: {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static int isMonsterSpawn(final MapleMap map) {
|
|
if (isBossMap(map.getId()) || isEventMap(map.getId())) {
|
|
return 1;
|
|
}
|
|
for (final MapleMapObject obj : map.getAllMonstersThreadsafe()) {
|
|
final MapleMonster mob = (MapleMonster) obj;
|
|
if (mob.getStats().isBoss() && mob.getId() != 9990026) {
|
|
return 1;
|
|
}
|
|
}
|
|
boolean 判定 = false;
|
|
if (((Integer) Start.ConfigValuesMap.get("怪物多倍地图开关")).intValue() > 0) {
|
|
for (int i = 0; i < Start.mobmaptable.size(); ++i) {
|
|
if (map.getId() == Integer.parseInt((String) Start.mobmaptable.get(i)) || ((Integer) Start.ConfigValuesMap.get("怪物地图多倍怪物开关")).intValue() > 0) {
|
|
判定 = true;
|
|
break;
|
|
}
|
|
}
|
|
if (判定) {
|
|
return ((Integer) Start.ConfigValuesMap.get("怪物多倍地图倍率")).intValue();
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
public static boolean isBossMap(final int mapid) {
|
|
if (mapid / 10000 == 92502) {
|
|
return true;
|
|
}
|
|
switch (mapid) {
|
|
case 105100300:
|
|
case 220080001:
|
|
case 230040420:
|
|
case 240060000:
|
|
case 240060100:
|
|
case 240060200:
|
|
//case 270010500:
|
|
//case 270020500:
|
|
//case 270030500:
|
|
case 270050100:
|
|
case 280030000:
|
|
case 551030200:
|
|
case 740000000:
|
|
case 741020101:
|
|
case 741020102:
|
|
case 749040001:
|
|
case 749050301:
|
|
case 802000211:
|
|
case 802000611:
|
|
case 922010900:
|
|
case 925020200:
|
|
case 930000600: {
|
|
return true;
|
|
}
|
|
default: {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|