2013年5月17日 星期五

【Java教學】使用altsettings設定傳出等級過高玩家(Config設定)

使用altsettings設定傳出等級過高玩家
l1j\server\Config.java

找到:

public static boolean INIT_BOSS_SPAWN;



往下添加

    public static boolean LEVEL_FOR_MAP; // 等級過高傳出地圖開關 
    public static int LEVEL_IN_MAP; //地圖等級限制
    public static int MAPS_ID; //地圖編號
    public static int TELEPORT_TO_LOCX; //會被傳到地圖X點
    public static int TELEPORT_TO_LOCY; //會被傳到地圖Y點
    public static int TELEPORT_TO_MAPID; //會被傳到哪張地圖



再往下找到

  INIT_BOSS_SPAWN = Boolean.parseBoolean(altSettings.getProperty(
  "InitBossSpawn", "true"));



往下添加

  LEVEL_FOR_MAP = Boolean.parseBoolean(altSettings.getProperty(
  "LevelOnOrOff", "false")); //add 等級過高傳出地圖開關
  LEVEL_IN_MAP = Integer.parseInt(altSettings.getProperty(
  "TeleporttoMaxLevel", "52")); //add 地圖等級限制 
  MAPS_ID = Integer.parseInt(altSettings.getProperty(
  "MaxLeveLInMapId", "5801")); //add 地圖編號 
  TELEPORT_TO_LOCX = Integer.parseInt(altSettings.getProperty(
  "TeleportToLocX", "32833")); //add 會被傳到地圖X點 
  TELEPORT_TO_LOCY = Integer.parseInt(altSettings.getProperty(
  "TeleportToLocY", "32831")); //add 會被傳到地圖Y點 
  TELEPORT_TO_MAPID = Integer.parseInt(altSettings.getProperty(
  "TeleportToMapId", "8011")); //add 會被傳到哪張地圖 




在最下面找到

  } else {
  return false;
}
return true;
}
private Config() {
}
}



在這段的上面找個好位置插入以下


} else if (pName.equalsIgnoreCase("LevelOnOrOff")) {
  LEVEL_FOR_MAP = Boolean.valueOf(pValue); //add 等級過高傳出地圖開關
} else if (pName.equalsIgnoreCase("TeleporttoMaxLevel")) {
  LEVEL_IN_MAP = Integer.parseInt(pValue); //add 地圖等級限制
}else if (pName.equalsIgnoreCase("MaxLeveLInMapId")) {
  MAPS_ID = Integer.parseInt(pValue); //add 地圖編號
}else if (pName.equalsIgnoreCase("TeleportToLocX")) {
  TELEPORT_TO_LOCX = Integer.parseInt(pValue); //add 會被傳到地圖X點
}else if (pName.equalsIgnoreCase("TeleportToLocY")) {
  TELEPORT_TO_LOCY = Integer.parseInt(pValue); //add 會被傳到地圖Y點 
}else if (pName.equalsIgnoreCase("TeleportToMapId")) { 
  TELEPORT_TO_MAPID = Integer.parseInt(pValue); //add 會被傳到哪張地圖



記得,括號的位置要改一下喔~!!

修改完畢後轉檔壓入核心,再繼續以下修改。

l1j\server\server\model\Instance\L1MonsterInstance.java

找到這一段

  if (pc.getCurrentHp()     || pc.isMonitor() || pc.isGhost()) {
  continue;
  }



往下添加

  //等級過高傳出地圖開關
  if(Config.LEVEL_FOR_MAP) {
  if (pc.getMapId() == Config.MAPS_ID
  && pc.getLevel() >= Config.LEVEL_IN_MAP
  && !pc.isGm()) {
  L1Teleport.teleport(pc, Config.TELEPORT_TO_LOCX, 
  Config.TELEPORT_TO_LOCY, 
  (short) Config.TELEPORT_TO_MAPID, 5, true);
  }
  }
  //等級過高傳出地圖開關




核心部份完畢。

接著到altsettings.properties

找個好位置加入以下

# =================================================================
#玩家等級過高強制傳送驅離功能 ,此設定對GM沒有效
#地圖中只有主動攻擊的怪物才會傳出玩家
#必須先設定是否開啟開關 ,否則其他設定不會生效
#設定完基本等級條件後 ,再設定會被傳到哪裡
#設定開關 True = 開啟傳送機制,   False= 不開啟
LevelOnOrOff = True
#設定地圖編號
MaxLeveLInMapId = 5801
#設定最大等級
TeleporttoMaxLevel = 52
#設定被傳到哪張地圖
TeleportToMapId = 4
#設定該地圖X點
TeleportToLocX = 00000
#設定該地圖Y點
TeleportToLocY = 00000
# ================================================

沒有留言:

張貼留言