Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see <http://www.gnu.org/licenses/>.
- */
- package net.sf.l2j.commons.config;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.math.BigInteger;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.Properties;
- import java.util.StringTokenizer;
- import net.sf.l2j.commons.type.Server;
- import net.sf.l2j.commons.util.StringUtil;
- import net.sf.l2j.gameserver.model.Location;
- import net.sf.l2j.gameserver.model.holder.ItemHolder;
- import net.sf.l2j.gameserver.util.FloodProtectorConfig;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- public final class Config
- {
- protected static final Logger _log = LoggerFactory.getLogger(Config.class.getName());
- public static final String BANNED_IP_XML = "./config/banned.xml";
- public static final String GEODATA_FILE = "./config/server/geodata.properties";
- public static final String OLYMPIAD_FILE = "./config/server/olympiad.properties";
- public static final String CLANS_FILE = "./config/server/clans.properties";
- public static final String MANOR_FILE = "./config/server/manor.properties";
- public static final String FS_FILE = "./config/server/foursepulchers.properties";
- public static final String SEVENSINGS_FILE = "./config/server/sevensings.properties";
- public static final String RIFT_FILE = "./config/server/rift.properties";
- public static final String ALTSETTINGS_FILE = "./config/server/altsettings.properties";
- public static final String AUGMENT_FILE = "./config/server/augmentation.properties";
- public static final String NPCS_FILE = "./config/server/npcs.properties";
- public static final String ENCHANT_FILE = "./config/server/enchant.properties";
- public static final String SIEGE_FILE = "./config/server/siege.properties";
- public static final String RATES_FILE = "./config/server/rates.properties";
- public static final String FLOOD_FILE = "./config/protection/floodprotector.properties";
- public static final String PROTECT_FILE = "./config/protection/protection.properties";
- public static final String GUARD_FILE = "./config/protection/guard.properties";
- public static final String SKILLS_FILE = "./config/players/skills.properties";
- public static final String PLAYERS_FILE = "./config/players/players.properties";
- public static final String INVENTORY_FILE = "./config/players/inventory.properties";
- public static final String ADMIN_FILE = "./config/players/admins.properties";
- public static final String HEXID_FILE = "./config/network/hexid.txt";
- public static final String LOGIN_FILE = "./config/network/loginserver.properties";
- public static final String SERVER_FILE = "./config/network/gameserver.properties";
- public static final String SERVICES_FILE = "./config/mods/services.properties";
- public static final String CUSTOMS_FILE = "./config/mods/customs.properties";
- public static final String CHAMPIONS_FILE = "./config/mods/champions.properties";
- public static final String MARRIED_FILE = "./config/mods/married.properties";
- public static final String LOTTERY_FILE = "./config/mods/lottery.properties";
- public static final String FISHING_FILE = "./config/mods/fishing.properties";
- public static final String BUFFER_FILE = "./config/mods/buffer.properties";
- public static final String PCBANG_FILE = "./config/mods/events/pcbang.properties";
- public static final String MEDAL_FILE = "./config/mods/events/medals.properties";
- public static final String PVP_REWARD_FILE = "./config/mods/events/pvpreward.properties";
- public static final String EVENTS_CAPTURE_TEAM_FLAG_FILE = "./config/mods/fun_events/CaptureTeamFlag.properties";
- public static final String EVENTS_DEATH_MATCH_FILE = "./config/mods/fun_events/DeathMatch.properties";
- public static final String EVENTS_LAST_HERO_FILE = "./config/mods/fun_events/LastHero.properties";
- public static final String EVENTS_TEAM_VS_TEAM_FILE = "./config/mods/fun_events/TeamVsTeam.properties";
- // --------------------------------------------------
- // services.properties
- // --------------------------------------------------
- public static boolean NooblesEnabled;
- public static int NoblItemId;
- public static int NoblItemCount;
- public static int HeroItemId;
- public static Map<Integer, Integer> HeroService;
- public static boolean GenderEnabled;
- public static int GenderItemId;
- public static int GenderItemCount;
- public static boolean NullPkEnabled;
- public static int NullPkItemId;
- public static int NullPkItemCount;
- public static boolean ClanLvl6Enabled;
- public static int ClanLvl6ItemId;
- public static int ClanLvl6ItemCount;
- public static boolean ClanLvl7Enabled;
- public static int ClanLvl7ItemId;
- public static int ClanLvl7ItemCount;
- public static boolean ClanLvl8Enabled;
- public static int ClanLvl8ItemId;
- public static int ClanLvl8ItemCount;
- public static boolean ClanSkillEnabled;
- public static int ClanSkillItemId;
- public static int ClanSkillItemCount;
- public static boolean ClanRepEnabled;
- public static int ClanRepItemId;
- public static int ClanRepItemCount;
- public static int ClanRepCount;
- public static int ChangeNameItemId;
- public static int ChangeNameItemCount;
- public static String ChangeNamePattern;
- public static int ChangeNameColorItemId;
- public static int ChangeNameColorItemCount;
- public static int ChangeTitleColorItemId;
- public static int ChangeTitleColorItemCount;
- public static boolean LevelUpEnabled;
- public static int LevelUpItemId;
- public static int LevelUpItemCount;
- public static int LevelUpAdd;
- public static int LevelUpMinLevel;
- public static int LevelUpMaxLevel;
- public static boolean DelevelEnabled;
- public static int DelevelItemId;
- public static int DelevelItemCount;
- public static int DelevelMinLevel;
- public static int DelevelLvl;
- public static boolean ENABLE_MENU;
- public static boolean ALLOW_EXP;
- public static boolean ALLOW_PM;
- public static boolean ALLOW_TRADE;
- public static boolean ALLOW_LOOT;
- public static boolean ALLOW_REPAIR;
- public static boolean ALLOW_IPBLOCK;
- public static int UP_ONLINE;
- public static boolean OFFLINE_TRADE_ENABLE;
- public static boolean OFFLINE_CRAFT_ENABLE;
- public static boolean RESTORE_OFFLINERS;
- public static int OFFLINE_MAX_DAYS;
- public static boolean OFFLINE_DISCONNECT_FINISHED;
- public static boolean OFFLINE_SET_NAME_COLOR;
- public static int OFFLINE_NAME_COLOR;
- public static boolean OFFLINE_FAME;
- public static boolean OFFLINE_SLEEP_EFFECT;
- public static boolean L2TOPDEMON_ENABLED;
- public static int L2TOPDEMON_POLLINTERVAL;
- public static boolean L2TOPDEMON_IGNOREFIRST;
- public static int L2TOPDEMON_MIN;
- public static int L2TOPDEMON_MAX;
- public static int L2TOPDEMON_ITEM;
- public static String L2TOPDEMON_MESSAGE;
- public static String L2TOPDEMON_URL;
- public static String L2TOPDEMON_PREFIX;
- public static boolean MMOTopEnable;
- public static String MMOTopUrl;
- public static int MMOTopRefreshTime;
- public static int MMOTopRewardItemId;
- public static int MMOTopRewardItemCount;
- // --------------------------------------------------
- // customs.properties
- // --------------------------------------------------
- public static boolean UNLIM_SHOTS;
- public static boolean UNLIMITED_ARROWS;
- public static boolean ENABLE_CHANGE_PSWD;
- public static int PSWD_LEGHT_MIN;
- public static int PSWD_LEGHT_MAX;
- public static boolean ENABLE_CLAN_REP_ITEM;
- public static int CLAN_REP_COUNT;
- public static int ALT_SUBCLASS_MAX_SUB_COUNT;
- public static boolean ALT_SUBCLASS_WITH_CUSTOM_ITEM;
- public static int ALT_SUBCLASS_WITH_CUSTOM_ITEM_ID;
- public static int ALT_SUBCLASS_WITH_CUSTOM_ITEM_COUNT;
- public static boolean ALT_SUBCLASS_WITH_ITEM_AND_NO_QUEST;
- public static boolean ALT_SUBCLASS_WITHOUT_QUESTS;
- public static boolean ALT_NOBLE_ON_BARAKIEL_KILL;
- public static boolean ALT_SUB_ON_CUSTOM_RAID_KILL;
- public static String ALT_SUB_RAID_IDS;
- public static List<Integer> ALT_SUB_LIST_RAID_IDS;
- public static boolean NEW_CHAR_IS_NOBLE;
- public static int CRUMA_MAX_LEVEL_ENTER;
- public static boolean BUFF_CUSTOM_LEVELS;
- public static int BUFF_MIN_LEVEL;
- public static int BUFF_MAX_LEVEL;
- // --------------------------------------------------
- // pvpreward.properties
- // --------------------------------------------------
- public static boolean PVP_REWARD_ENABLED;
- public static int PVP_REWARD_PVP_LEVEL_DIF;
- public static int PVP_REWARD_PVP_UPDATE_TIME;
- public static int[] PVP_REWARD_ITEMS;
- public static int[] PVP_REWARD_ITEMS_COUNT;
- public static int[] PVP_REWARD_ITEMS_CHANCE;
- public static int PVP_REWARD_EXP_AMOUNT;
- public static int PVP_REWARD_SP_AMOUNT;
- public static boolean PVP_REWARD_BLOCK_SAME_IP;
- public static int PVP_REWARD_PK_LEVEL_DIF;
- public static int PVP_REWARD_PK_UPDATE_TIME;
- public static int[] PVP_REWARD_PK_ITEMS;
- public static int[] PVP_REWARD_PK_ITEMS_COUNT;
- public static int[] PVP_REWARD_PK_ITEMS_CHANCE;
- public static int PVP_REWARD_PK_EXP_AMOUNT;
- public static int PVP_REWARD_PK_SP_AMOUNT;
- public static boolean PVP_REWARD_PK_BLOCK_SAME_IP;
- // --------------------------------------------------
- // Clans settings
- // --------------------------------------------------
- public static int ALT_CLAN_JOIN_DAYS;
- public static int ALT_CLAN_CREATE_DAYS;
- public static int ALT_CLAN_DISSOLVE_DAYS;
- public static int ALT_ALLY_JOIN_DAYS_WHEN_LEAVED;
- public static int ALT_ALLY_JOIN_DAYS_WHEN_DISMISSED;
- public static int ALT_ACCEPT_CLAN_DAYS_WHEN_DISMISSED;
- public static int ALT_CREATE_ALLY_DAYS_WHEN_DISSOLVED;
- public static int ALT_MAX_NUM_OF_CLANS_IN_ALLY;
- public static int ALT_CLAN_MEMBERS_FOR_WAR;
- public static int ALT_CLAN_WAR_PENALTY_WHEN_ENDED;
- public static boolean ALT_MEMBERS_CAN_WITHDRAW_FROM_CLANWH;
- public static boolean REMOVE_CASTLE_CIRCLETS;
- public static int CH_BUY_ITEM_ID;
- public static String REGEX_CLAN_NAME;
- /** Manor */
- public static int ALT_MANOR_REFRESH_TIME;
- public static int ALT_MANOR_REFRESH_MIN;
- public static int ALT_MANOR_APPROVE_TIME;
- public static int ALT_MANOR_APPROVE_MIN;
- public static int ALT_MANOR_MAINTENANCE_PERIOD;
- public static boolean ALT_MANOR_SAVE_ALL_ACTIONS;
- public static int ALT_MANOR_SAVE_PERIOD_RATE;
- /** Clan Hall function */
- public static long CH_TELE_FEE_RATIO;
- public static int CH_TELE1_FEE;
- public static int CH_TELE2_FEE;
- public static long CH_ITEM_FEE_RATIO;
- public static int CH_ITEM1_FEE;
- public static int CH_ITEM2_FEE;
- public static int CH_ITEM3_FEE;
- public static long CH_MPREG_FEE_RATIO;
- public static int CH_MPREG1_FEE;
- public static int CH_MPREG2_FEE;
- public static int CH_MPREG3_FEE;
- public static int CH_MPREG4_FEE;
- public static int CH_MPREG5_FEE;
- public static long CH_HPREG_FEE_RATIO;
- public static int CH_HPREG1_FEE;
- public static int CH_HPREG2_FEE;
- public static int CH_HPREG3_FEE;
- public static int CH_HPREG4_FEE;
- public static int CH_HPREG5_FEE;
- public static int CH_HPREG6_FEE;
- public static int CH_HPREG7_FEE;
- public static int CH_HPREG8_FEE;
- public static int CH_HPREG9_FEE;
- public static int CH_HPREG10_FEE;
- public static int CH_HPREG11_FEE;
- public static int CH_HPREG12_FEE;
- public static int CH_HPREG13_FEE;
- public static long CH_EXPREG_FEE_RATIO;
- public static int CH_EXPREG1_FEE;
- public static int CH_EXPREG2_FEE;
- public static int CH_EXPREG3_FEE;
- public static int CH_EXPREG4_FEE;
- public static int CH_EXPREG5_FEE;
- public static int CH_EXPREG6_FEE;
- public static int CH_EXPREG7_FEE;
- public static long CH_SUPPORT_FEE_RATIO;
- public static int CH_SUPPORT1_FEE;
- public static int CH_SUPPORT2_FEE;
- public static int CH_SUPPORT3_FEE;
- public static int CH_SUPPORT4_FEE;
- public static int CH_SUPPORT5_FEE;
- public static int CH_SUPPORT6_FEE;
- public static int CH_SUPPORT7_FEE;
- public static int CH_SUPPORT8_FEE;
- public static long CH_CURTAIN_FEE_RATIO;
- public static int CH_CURTAIN1_FEE;
- public static int CH_CURTAIN2_FEE;
- public static long CH_FRONT_FEE_RATIO;
- public static int CH_FRONT1_FEE;
- public static int CH_FRONT2_FEE;
- // --------------------------------------------------
- // Events settings
- // --------------------------------------------------
- /** Olympiad */
- public static int ALT_OLY_START_TIME;
- public static int ALT_OLY_MIN;
- public static long ALT_OLY_CPERIOD;
- public static long ALT_OLY_BATTLE;
- public static long ALT_OLY_WPERIOD;
- public static long ALT_OLY_VPERIOD;
- public static int ALT_OLY_WAIT_TIME;
- public static int ALT_OLY_WAIT_BATTLE;
- public static int ALT_OLY_WAIT_END;
- public static int ALT_OLY_START_POINTS;
- public static int ALT_OLY_WEEKLY_POINTS;
- public static int ALT_OLY_MIN_MATCHES;
- public static int ALT_OLY_CLASSED;
- public static int ALT_OLY_NONCLASSED;
- public static int[][] ALT_OLY_CLASSED_REWARD;
- public static int[][] ALT_OLY_NONCLASSED_REWARD;
- public static int ALT_OLY_COMP_RITEM;
- public static int ALT_OLY_GP_PER_POINT;
- public static int ALT_OLY_HERO_POINTS;
- public static int ALT_OLY_RANK1_POINTS;
- public static int ALT_OLY_RANK2_POINTS;
- public static int ALT_OLY_RANK3_POINTS;
- public static int ALT_OLY_RANK4_POINTS;
- public static int ALT_OLY_RANK5_POINTS;
- public static int ALT_OLY_MAX_POINTS;
- public static int ALT_OLY_DIVIDER_CLASSED;
- public static int ALT_OLY_DIVIDER_NON_CLASSED;
- public static boolean ALT_OLY_ANNOUNCE_GAMES;
- public static int ALT_OLY_RESET_SKILL_REUSE;
- /** SevenSigns Festival */
- public static boolean ALT_GAME_REQUIRE_CLAN_CASTLE;
- public static boolean ALT_GAME_CASTLE_DAWN;
- public static boolean ALT_GAME_CASTLE_DUSK;
- public static int ALT_FESTIVAL_MIN_PLAYER;
- public static int ALT_MAXIMUM_PLAYER_CONTRIB;
- public static long ALT_FESTIVAL_MANAGER_START;
- public static long ALT_FESTIVAL_LENGTH;
- public static long ALT_FESTIVAL_CYCLE_LENGTH;
- public static long ALT_FESTIVAL_FIRST_SPAWN;
- public static long ALT_FESTIVAL_FIRST_SWARM;
- public static long ALT_FESTIVAL_SECOND_SPAWN;
- public static long ALT_FESTIVAL_SECOND_SWARM;
- public static long ALT_FESTIVAL_CHEST_SPAWN;
- public static boolean ALT_SEVENSIGNS_LAZY_UPDATE;
- /** Four Sepulchers */
- public static int FS_TIME_ATTACK;
- public static int FS_TIME_COOLDOWN;
- public static int FS_TIME_ENTRY;
- public static int FS_TIME_WARMUP;
- public static int FS_PARTY_MEMBER_COUNT;
- /** dimensional rift */
- public static int RIFT_MIN_PARTY_SIZE;
- public static int RIFT_SPAWN_DELAY;
- public static int RIFT_MAX_JUMPS;
- public static int RIFT_AUTO_JUMPS_TIME_MIN;
- public static int RIFT_AUTO_JUMPS_TIME_MAX;
- public static int RIFT_ENTER_COST_RECRUIT;
- public static int RIFT_ENTER_COST_SOLDIER;
- public static int RIFT_ENTER_COST_OFFICER;
- public static int RIFT_ENTER_COST_CAPTAIN;
- public static int RIFT_ENTER_COST_COMMANDER;
- public static int RIFT_ENTER_COST_HERO;
- public static double RIFT_BOSS_ROOM_TIME_MUTIPLY;
- /** Wedding system */
- public static boolean ALLOW_WEDDING;
- public static int WEDDING_PRICE;
- public static boolean WEDDING_SAMESEX;
- public static boolean WEDDING_FORMALWEAR;
- /** Lottery */
- public static int ALT_LOTTERY_PRIZE;
- public static int ALT_LOTTERY_TICKET_PRICE;
- public static double ALT_LOTTERY_5_NUMBER_RATE;
- public static double ALT_LOTTERY_4_NUMBER_RATE;
- public static double ALT_LOTTERY_3_NUMBER_RATE;
- public static int ALT_LOTTERY_2_AND_1_NUMBER_PRIZE;
- /** Fishing tournament */
- public static boolean ALT_FISH_CHAMPIONSHIP_ENABLED;
- public static int ALT_FISH_CHAMPIONSHIP_REWARD_ITEM;
- public static int ALT_FISH_CHAMPIONSHIP_REWARD_1;
- public static int ALT_FISH_CHAMPIONSHIP_REWARD_2;
- public static int ALT_FISH_CHAMPIONSHIP_REWARD_3;
- public static int ALT_FISH_CHAMPIONSHIP_REWARD_4;
- public static int ALT_FISH_CHAMPIONSHIP_REWARD_5;
- /** Buffer */
- public static int BUFFER_PRICE_ITEM;
- public static int BUFFER_REMOVE_COST;
- public static int BUFFER_CP_HP_RESTORE_COST;
- public static int BUFFER_MP_RESTORE_COST;
- public static String BUFFER_RESTRICTION;
- public static int BUFFER_RESTORE_DELAY;
- public static boolean BUFFER_ENABLED;
- public static boolean BUFFER_ANIMATION;
- public static int BUFFER_SCHEME_MAX_NAME_LENGTH;
- public static int BUFFER_SCHEME_MIN_NAME_LENGTH;
- public static int BUFFER_MAX_SCHEMES;
- // --------------------------------------------------
- // HexID
- // --------------------------------------------------
- public static int SERVER_ID;
- public static byte[] HEX_ID;
- // --------------------------------------------------
- // FloodProtectors
- // --------------------------------------------------
- public static FloodProtectorConfig FLOOD_PROTECTOR_ROLL_DICE;
- public static FloodProtectorConfig FLOOD_PROTECTOR_HERO_VOICE;
- public static FloodProtectorConfig FLOOD_PROTECTOR_SUBCLASS;
- public static FloodProtectorConfig FLOOD_PROTECTOR_DROP_ITEM;
- public static FloodProtectorConfig FLOOD_PROTECTOR_SERVER_BYPASS;
- public static FloodProtectorConfig FLOOD_PROTECTOR_MULTISELL;
- public static FloodProtectorConfig FLOOD_PROTECTOR_MANUFACTURE;
- public static FloodProtectorConfig FLOOD_PROTECTOR_MANOR;
- public static FloodProtectorConfig FLOOD_PROTECTOR_SENDMAIL;
- public static FloodProtectorConfig FLOOD_PROTECTOR_CHARACTER_SELECT;
- // --------------------------------------------------
- // Loginserver
- // --------------------------------------------------
- public static String LOGIN_BIND_ADDRESS;
- public static int PORT_LOGIN;
- public static boolean ACCEPT_NEW_GAMESERVER;
- public static int REQUEST_ID;
- public static boolean ACCEPT_ALTERNATE_ID;
- public static int LOGIN_TRY_BEFORE_BAN;
- public static int LOGIN_BLOCK_AFTER_BAN;
- public static boolean LOG_LOGIN_CONTROLLER;
- public static boolean SHOW_LICENCE;
- public static int IP_UPDATE_TIME;
- public static boolean FORCE_GGAUTH;
- // Login Server Crypted Guard
- public static boolean CRYPT_TOKEN;
- public static boolean AUTO_CREATE_ACCOUNTS;
- public static boolean FLOOD_PROTECTION;
- public static int FAST_CONNECTION_LIMIT;
- public static int NORMAL_CONNECTION_TIME;
- public static int FAST_CONNECTION_TIME;
- public static int MAX_CONNECTION_PER_IP;
- public static int ITEM_AUTO_DESTROY_TIME;
- // --------------------------------------------------
- // NPCs / Monsters
- // --------------------------------------------------
- public static int WAIT_TIME_FRINTEZZA;
- public static boolean CHAMPION_ENABLE;
- public static int CHAMPION_ADENAS_REWARDS_BLUE;
- public static int CHAMPION_ADENAS_REWARDS_RED;
- public static int CHAMPION_EXP_SP_BLUE;
- public static int CHAMPION_EXP_SP_RED;
- public static int CHAMPION_FREQUENCY_BLUE;
- public static int CHAMPION_FREQUENCY_RED;
- public static int CHAMPION_HP_BLUE;
- public static int CHAMPION_HP_RED;
- public static int CHAMPION_HP_REGEN_BLUE;
- public static int CHAMPION_HP_REGEN_RED;
- public static int CHAMPION_MATK_BLUE;
- public static int CHAMPION_MATK_RED;
- public static int CHAMPION_MAX_LVL_BLUE;
- public static int CHAMPION_MAX_LVL_RED;
- public static int CHAMPION_MCRT_RATE_BLUE;
- public static int CHAMPION_MCRT_RATE_RED;
- public static int CHAMPION_MDEF_BLUE;
- public static int CHAMPION_MDEF_RED;
- public static int CHAMPION_MIN_LVL_BLUE;
- public static int CHAMPION_MIN_LVL_RED;
- public static int CHAMPION_PATK_BLUE;
- public static int CHAMPION_PATK_RED;
- public static int CHAMPION_PCRT_RATE_BLUE;
- public static int CHAMPION_PCRT_RATE_RED;
- public static int CHAMPION_PDEF_BLUE;
- public static int CHAMPION_PDEF_RED;
- public static int CHAMPION_REWARD_BLUE;
- public static int CHAMPION_REWARD_ID_BLUE;
- public static int CHAMPION_REWARD_ID_RED;
- public static int CHAMPION_REWARD_QTY_BLUE;
- public static int CHAMPION_REWARD_QTY_RED;
- public static int CHAMPION_REWARD_RED;
- public static int CHAMPION_REWARDS_BLUE;
- public static int CHAMPION_REWARDS_RED;
- public static int CHAMPION_RUN_BLUE;
- public static int CHAMPION_RUN_RED;
- public static int CHAMPION_SPD_ATK_BLUE;
- public static int CHAMPION_SPD_ATK_RED;
- public static int CHAMPION_SPD_MATK_BLUE;
- public static int CHAMPION_SPD_MATK_RED;
- public static int CHAMPION_WALK_BLUE;
- public static int CHAMPION_WALK_RED;
- public static String CHAMPION_TITLE_BLUE;
- public static String CHAMPION_TITLE_RED;
- /** Misc */
- public static boolean ALLOW_CLASS_MASTERS;
- public static ClassMasterSettings CLASS_MASTER_SETTINGS;
- public static boolean ALLOW_ENTIRE_TREE;
- public static boolean ANNOUNCE_MAMMON_SPAWN;
- public static boolean ALT_MOB_AGRO_IN_PEACEZONE;
- public static boolean ALT_GAME_FREE_TELEPORT;
- public static boolean SHOW_NPC_LVL;
- public static boolean SHOW_NPC_CREST;
- public static boolean SHOW_SUMMON_CREST;
- public static boolean PET_CAN_FEEL_HUNGRY;
- public static int SKILLS_CAST_TIME_MIN;
- /** Wyvern Manager */
- public static boolean WYVERN_ALLOW_UPGRADER;
- public static int WYVERN_REQUIRED_LEVEL;
- public static int WYVERN_REQUIRED_CRYSTALS;
- /** Raid Boss */
- public static double RAID_HP_REGEN_MULTIPLIER;
- public static double RAID_MP_REGEN_MULTIPLIER;
- public static double RAID_DEFENCE_MULTIPLIER;
- public static double RAID_MINION_RESPAWN_TIMER;
- public static boolean RAID_DISABLE_CURSE;
- public static int RAID_CHAOS_TIME;
- public static int GRAND_CHAOS_TIME;
- public static int MINION_CHAOS_TIME;
- public static boolean RAID_RANGE_CHECK;
- public static boolean RAID_REVIVE_HP;
- public static int RAID_RANGE_VALUE;
- /** Grand Boss */
- public static int SPAWN_INTERVAL_AQ;
- public static int RANDOM_SPAWN_TIME_AQ;
- public static int SPAWN_INTERVAL_ANTHARAS;
- public static int RANDOM_SPAWN_TIME_ANTHARAS;
- public static int WAIT_TIME_ANTHARAS;
- public static int SPAWN_INTERVAL_BAIUM;
- public static int RANDOM_SPAWN_TIME_BAIUM;
- public static int SPAWN_INTERVAL_CORE;
- public static int RANDOM_SPAWN_TIME_CORE;
- public static int SPAWN_INTERVAL_FRINTEZZA;
- public static int RANDOM_SPAWN_TIME_FRINTEZZA;
- public static int SPAWN_INTERVAL_ORFEN;
- public static int RANDOM_SPAWN_TIME_ORFEN;
- public static int SPAWN_INTERVAL_SAILREN;
- public static int RANDOM_SPAWN_TIME_SAILREN;
- public static int WAIT_TIME_SAILREN;
- public static int SPAWN_INTERVAL_VALAKAS;
- public static int RANDOM_SPAWN_TIME_VALAKAS;
- public static int WAIT_TIME_VALAKAS;
- public static int SPAWN_INTERVAL_ZAKEN;
- public static int RANDOM_SPAWN_TIME_ZAKEN;
- public static int ZAKEN_MAX_ENTRY_LEVEL;
- /** IA */
- public static boolean GUARD_ATTACK_AGGRO_MOB;
- public static int MAX_DRIFT_RANGE;
- public static long KNOWNLIST_UPDATE_INTERVAL;
- public static int MIN_NPC_ANIMATION;
- public static int MAX_NPC_ANIMATION;
- public static int MIN_MONSTER_ANIMATION;
- public static int MAX_MONSTER_ANIMATION;
- public static boolean GRIDS_ALWAYS_ON;
- public static int GRID_NEIGHBOR_TURNON_TIME;
- public static int GRID_NEIGHBOR_TURNOFF_TIME;
- // --------------------------------------------------
- // Players
- // --------------------------------------------------
- /** Misc */
- public static boolean STARTING_CUSTOM_ITEMS;
- public static List<int[]> STARTING_CUSTOM_ITEMS_F = new ArrayList<>();
- public static List<int[]> STARTING_CUSTOM_ITEMS_M = new ArrayList<>();
- public static boolean ALLOW_MOD_TITLE_NCHAR;
- public static String MOD_TITLE_NCHAR;
- public static String REGEX_CHAR_NAME;
- public static String REGEX_PET_NAME;
- public static boolean ALLOW_NEW_CHAR_LEVEL;
- public static double NEW_CHAR_LEVEL;
- public static int STARTING_ADENA;
- public static boolean EFFECT_CANCELING;
- public static double HP_REGEN_MULTIPLIER;
- public static double MP_REGEN_MULTIPLIER;
- public static double CP_REGEN_MULTIPLIER;
- public static int PLAYER_SPAWN_PROTECTION;
- public static boolean PLAYER_SPAWN_PROTECTION_AURA;
- public static int PLAYER_FAKEDEATH_UP_PROTECTION;
- public static double RESPAWN_RESTORE_HP;
- public static int MAX_PVTSTORE_SLOTS_DWARF;
- public static int MAX_PVTSTORE_SLOTS_OTHER;
- public static boolean DEEPBLUE_DROP_RULES;
- public static boolean ALT_GAME_DELEVEL;
- public static int DEATH_PENALTY_CHANCE;
- public static int MAX_PATK_SPEED;
- public static int MAX_MATK_SPEED;
- public static boolean CHAR_CUSTOM_START_POINT;
- public static HashMap<String, Integer[]> HUMAN_CUSTOM_START_POINT = new HashMap<>();
- public static HashMap<String, Integer[]> ELF_CUSTOM_START_POINT = new HashMap<>();
- public static HashMap<String, Integer[]> DARKELF_CUSTOM_START_POINT = new HashMap<>();
- public static HashMap<String, Integer[]> ORC_CUSTOM_START_POINT = new HashMap<>();
- public static HashMap<String, Integer[]> DWARF_CUSTOM_START_POINT = new HashMap<>();
- public static HashMap<String, HashMap<String, Integer[]>> CUSTOM_START_POINT_HOLDER = new HashMap<>();
- public static int OLY_RESTRICTED_ENCHANT_VALUE;
- public static boolean CTF_ENABLED;
- public static boolean CTF_AURA;
- public static boolean CTF_IN_INSTANCE;
- public static boolean CTF_REVIVE_RECOVERY;
- public static boolean CTF_ALLOW_INTERFERENCE;
- public static boolean CTF_ALLOW_POTIONS;
- public static boolean CTF_ALLOW_SUMMON;
- public static boolean CTF_ON_START_REMOVE_ALL_EFFECTS;
- public static boolean CTF_ON_START_UNSUMMON_PET;
- public static boolean CTF_JOIN_CURSED;
- public static int CTF_REVIVE_DELAY;
- public static boolean CTF_CLOSE_COLISEUM_DOORS;
- public static boolean CTF_ALLOW_TEAM_CASTING;
- public static boolean CTF_RETURNORIGINAL;
- public static int CTF_MIN_LVL;
- public static int CTF_MAX_LVL;
- public static int CTF_JOIN_TIME;
- public static int CTF_EVENT_TIME;
- public static int CTF_MIN_PLAYERS;
- public static int CTF_MAX_PLAYERS;
- public static int[] CTF_REWARD_ID;
- public static int[] CTF_REWARD_AMOUNT;
- public static Location CTF_BLUE_TEAM_LOC;
- public static Location CTF_BLUE_FLAG_LOC;
- public static Location CTF_RED_TEAM_LOC;
- public static Location CTF_RED_FLAG_LOC;
- public static boolean DM_ENABLED;
- public static boolean DM_ON_START_REMOVE_ALL_EFFECTS;
- public static boolean DM_ON_START_UNSUMMON_PET;
- public static Location DM_EVENT_LOCATION;
- public static boolean DM_RESORE_HP_MP_CP;
- public static boolean DM_ALLOW_POTIONS;
- public static boolean DM_ALLOW_SUMMON;
- public static boolean DM_JOIN_CURSED;
- public static boolean DM_ALLOW_INTERFERENCE;
- public static boolean DM_RESET_SKILL_REUSE;
- public static boolean DM_RETURNORIGINAL;
- public static int DM_REVIVE_DELAY;
- public static int DM_REG_TIME;
- public static int DM_EVENT_TIME;
- public static int DM_MIN_PLAYERS;
- public static int DM_MAX_PLAYERS;
- public static int DM_MIN_LVL;
- public static int DM_MAX_LVL;
- public static int[] DM_REWARD_ITEM;
- public static int[] DM_REWARD_ITEM_COUNT;
- public static boolean LH_ENABLED;
- public static boolean LH_ON_START_REMOVE_ALL_EFFECTS;
- public static boolean LH_ON_START_UNSUMMON_PET;
- public static boolean LH_RESORE_HP_MP_CP;
- public static boolean LH_ALLOW_POTIONS;
- public static boolean LH_ALLOW_SUMMON;
- public static boolean LH_JOIN_CURSED;
- public static boolean LH_ALLOW_INTERFERENCE;
- public static boolean LH_REWARD_KILLS;
- public static boolean LH_GIVE_HERO;
- public static Location LH_LOC;
- public static int LH_HERO_DAYS;
- public static int LH_REG_TIME;
- public static int LH_EVENT_TIME;
- public static int[] LH_REWARD_ITEM;
- public static int[] LH_REWARD_ITEM_COUNT;
- public static int LH_MIN_PLAYERS;
- public static int LH_MAX_PLAYERS;
- public static int LH_MIN_LVL;
- public static int LH_MAX_LVL;
- public static int LH_SUPER_PRIZE_ID;
- public static int LH_SUPER_PRIZE_COUNT;
- public static boolean TVT_ALLOW_POTIONS;
- public static long TVT_REVIVE_DELAY;
- public static boolean TVT_ALLOW_SUMMON;
- public static boolean TVT_ALLOW_ENEMY_HEALING;
- public static boolean TVT_JOIN_CURSED;
- public static boolean TVT_ON_START_REMOVE_ALL_EFFECTS;
- public static boolean TVT_ON_START_RECOVERY;
- public static boolean TVT_ON_START_UNSUMMON_PET;
- public static boolean TVT_CLOSE_COLISEUM_DOORS;
- public static boolean TVT_ALLOW_INTERFERENCE;
- public static boolean TVT_REVIVE_RECOVERY;
- public static boolean TVT_PRICE_NO_KILLS;
- public static boolean TVT_ALLOW_TEAM_CASTING;
- public static boolean TVT_ALLOW_TEAM_ATTACKING;
- public static boolean TVT_ENABLED;
- public static boolean TVT_AURA;
- public static boolean TVT_ININSTANCE;
- public static boolean TVT_ORIGINALRETURN;
- public static int TVT_MIN_LVL;
- public static int TVT_MAX_LVL;
- public static int[] TVT_REWARD_ID;
- public static int[] TVT_REWARD_AMOUNT;
- public static int TVT_JOIN_TIME;
- public static int TVT_EVENT_TIME;
- public static int TVT_MIN_PLAYERS;
- public static int TVT_MAX_PLAYERS;
- public static int[] TVT_BLUE_TEAM_LOC;
- public static int[] TVT_RED_TEAM_LOC;
- public static boolean REMOVE_EFFECTS_AFTER_DEATH;
- public static boolean L2OFF_SHOTS;
- static
- {
- CUSTOM_START_POINT_HOLDER.put("HumanCharCustomStartPoint", HUMAN_CUSTOM_START_POINT);
- CUSTOM_START_POINT_HOLDER.put("ElfCharCustomStartPoint", ELF_CUSTOM_START_POINT);
- CUSTOM_START_POINT_HOLDER.put("DarkElfCharCustomStartPoint", DARKELF_CUSTOM_START_POINT);
- CUSTOM_START_POINT_HOLDER.put("OrcCharCustomStartPoint", ORC_CUSTOM_START_POINT);
- CUSTOM_START_POINT_HOLDER.put("DwarfCharCustomStartPoint", DWARF_CUSTOM_START_POINT);
- }
- /** Inventory & WH */
- public static int INVENTORY_MAXIMUM_NO_DWARF;
- public static int INVENTORY_MAXIMUM_DWARF;
- public static int INVENTORY_MAXIMUM_QUEST_ITEMS;
- public static int INVENTORY_MAXIMUM_PET;
- public static int MAX_ITEM_IN_PACKET;
- public static double ALT_WEIGHT_LIMIT;
- public static int WAREHOUSE_SLOTS_NO_DWARF;
- public static int WAREHOUSE_SLOTS_DWARF;
- public static int WAREHOUSE_SLOTS_CLAN;
- public static int FREIGHT_SLOTS;
- public static boolean ALT_GAME_FREIGHTS;
- public static int ALT_GAME_FREIGHT_PRICE;
- /** Enchant */
- public static double ENCHANT_CHANCE_WEAPON_MAGIC;
- public static double ENCHANT_CHANCE_WEAPON_MAGIC_15PLUS;
- public static double ENCHANT_CHANCE_WEAPON_NONMAGIC;
- public static double ENCHANT_CHANCE_WEAPON_NONMAGIC_15PLUS;
- public static double ENCHANT_CHANCE_ARMOR;
- public static int ENCHANT_MAX_WEAPON;
- public static int ENCHANT_MAX_ARMOR;
- public static int ENCHANT_SAFE_MAX;
- public static int ENCHANT_SAFE_MAX_FULL;
- public static boolean SCROLL_STACKABLE;
- public static int ENCHANT_FAILED_VALUE;
- /** Augmentations */
- public static int AUGMENTATION_NG_SKILL_CHANCE;
- public static int AUGMENTATION_NG_GLOW_CHANCE;
- public static int AUGMENTATION_MID_SKILL_CHANCE;
- public static int AUGMENTATION_MID_GLOW_CHANCE;
- public static int AUGMENTATION_HIGH_SKILL_CHANCE;
- public static int AUGMENTATION_HIGH_GLOW_CHANCE;
- public static int AUGMENTATION_TOP_SKILL_CHANCE;
- public static int AUGMENTATION_TOP_GLOW_CHANCE;
- public static int AUGMENTATION_BASESTAT_CHANCE;
- public static boolean AUGMENT_AVAILABLE_TRADE;
- /** Karma & PvP */
- public static boolean KARMA_PLAYER_CAN_BE_KILLED_IN_PZ;
- public static boolean KARMA_PLAYER_CAN_SHOP;
- public static boolean KARMA_PLAYER_CAN_USE_GK;
- public static boolean KARMA_PLAYER_CAN_TELEPORT;
- public static boolean KARMA_PLAYER_CAN_TRADE;
- public static boolean KARMA_PLAYER_CAN_USE_WH;
- public static boolean KARMA_DROP_GM;
- public static boolean KARMA_AWARD_PK_KILL;
- public static int KARMA_PK_LIMIT;
- public static String KARMA_NONDROPPABLE_PET_ITEMS;
- public static String KARMA_NONDROPPABLE_ITEMS;
- public static int[] KARMA_LIST_NONDROPPABLE_PET_ITEMS;
- public static int[] KARMA_LIST_NONDROPPABLE_ITEMS;
- public static int PVP_NORMAL_TIME;
- public static int PVP_PVP_TIME;
- /** Party */
- public static String PARTY_XP_CUTOFF_METHOD;
- public static int PARTY_XP_CUTOFF_LEVEL;
- public static double PARTY_XP_CUTOFF_PERCENT;
- public static int ALT_PARTY_RANGE;
- public static int ALT_PARTY_RANGE2;
- public static boolean ALT_LEAVE_PARTY_LEADER;
- /** GMs & Admin Stuff */
- public static String RESTRICTED_CHAR_NAMES;
- public static List<String> LIST_RESTRICTED_CHAR_NAMES = new ArrayList<>();
- public static boolean EVERYBODY_HAS_ADMIN_RIGHTS;
- public static int MASTERACCESS_LEVEL;
- public static int MASTERACCESS_NAME_COLOR;
- public static int MASTERACCESS_TITLE_COLOR;
- public static boolean GM_HERO_AURA;
- public static boolean GM_STARTUP_INVULNERABLE;
- public static boolean GM_STARTUP_INVISIBLE;
- public static boolean GM_STARTUP_SILENCE;
- public static boolean GM_STARTUP_AUTO_LIST;
- /** petitions */
- public static boolean PETITIONING_ALLOWED;
- public static int MAX_PETITIONS_PER_PLAYER;
- public static int MAX_PETITIONS_PENDING;
- /** Crafting **/
- public static boolean IS_CRAFTING_ENABLED;
- public static int DWARF_RECIPE_LIMIT;
- public static int COMMON_RECIPE_LIMIT;
- public static boolean ALT_BLACKSMITH_USE_RECIPES;
- /** Skills & Classes **/
- public static boolean ENABLE_MODIFY_SKILL_DURATION;
- public static Map<Integer, Integer> SKILL_DURATION_LIST;
- public static boolean AUTO_LEARN_SKILLS;
- public static boolean ALT_GAME_MAGICFAILURES;
- public static boolean ALT_GAME_SHIELD_BLOCKS;
- public static int ALT_PERFECT_SHLD_BLOCK;
- public static boolean LIFE_CRYSTAL_NEEDED;
- public static boolean SP_BOOK_NEEDED;
- public static boolean ES_SP_BOOK_NEEDED;
- public static boolean DIVINE_SP_BOOK_NEEDED;
- public static double NORMAL_BUFFS_TIME_MULTIPLIER;
- public static double CHANT_BUFFS_TIME_MULTIPLIER;
- public static double DANCE_BUFFS_TIME_MULTIPLIER;
- public static double SONG_BUFFS_TIME_MULTIPLIER;
- public static double SPECIAL_BUFFS_TIME_MULTIPLIER;
- public static double SUMMON_BUFFS_TIME_MULTIPLIER;
- public static double RESIST_BUFFS_TIME_MULTIPLIER;
- public static double PAAGRIO_BUFFS_TIME_MULTIPLIER;
- public static boolean STORE_SKILL_COOLTIME;
- public static int BUFFS_MAX_AMOUNT;
- public static boolean RANDOM_FEAR_MOVE;
- public static String STRIDER_CAST_ALLOW;
- public static String DEMONIC_SWORD_LEFT_SKILLS;
- public static Integer[] STRIDER_CAST_SKILL_LIST;
- public static Integer[] DEMONIC_SWORD_CAST_SKILL_LIST;
- // --------------------------------------------------
- // Server
- // --------------------------------------------------
- public static String GAMESERVER_HOSTNAME;
- public static int PORT_GAME;
- public static String EXTERNAL_HOSTNAME;
- public static String INTERNAL_HOSTNAME;
- public static int GAME_SERVER_LOGIN_PORT;
- public static String GAME_SERVER_LOGIN_HOST;
- /** serverList & Test */
- public static boolean SERVER_LIST_BRACKET;
- public static boolean SERVER_LIST_CLOCK;
- public static boolean SERVER_LIST_TESTSERVER;
- public static boolean SERVER_GMONLY;
- public static boolean TEST_SERVER;
- /** clients related */
- public static int DELETE_DAYS;
- public static int MAXIMUM_ONLINE_USERS;
- public static int MIN_PROTOCOL_REVISION;
- public static int MAX_PROTOCOL_REVISION;
- /** Jail & Punishements **/
- public static boolean JAIL_IS_PVP;
- public static int DEFAULT_PUNISH;
- public static int DEFAULT_PUNISH_PARAM;
- public static String DEFAULT_GLOBAL_CHAT;
- public static String DEFAULT_TRADE_CHAT;
- public static int CHAT_ALL_LEVEL;
- public static int CHAT_TELL_LEVEL;
- public static int CHAT_SHOUT_LEVEL;
- public static int CHAT_TRADE_LEVEL;
- /** Auto-loot */
- public static boolean AUTO_LOOT;
- public static boolean AUTO_LOOT_HERBS;
- public static boolean AUTO_LOOT_RAID;
- /** Items Management */
- public static boolean ALLOW_DISCARDITEM;
- public static boolean MULTIPLE_ITEM_DROP;
- public static int AUTODESTROY_ITEM_AFTER;
- public static int HERB_AUTO_DESTROY_TIME;
- public static String PROTECTED_ITEMS;
- public static List<Integer> LIST_PROTECTED_ITEMS;
- public static boolean DESTROY_DROPPED_PLAYER_ITEM;
- public static boolean DESTROY_EQUIPABLE_PLAYER_ITEM;
- public static boolean SAVE_DROPPED_ITEM;
- public static boolean EMPTY_DROPPED_ITEM_TABLE_AFTER_LOAD;
- public static int SAVE_DROPPED_ITEM_INTERVAL;
- public static boolean CLEAR_DROPPED_ITEM_TABLE;
- /** Rate control */
- public static double RATE_XP;
- public static double RATE_SP;
- public static double RATE_PARTY_XP;
- public static double RATE_PARTY_SP;
- public static double RATE_DROP_ADENA;
- public static double RATE_CONSUMABLE_COST;
- public static double RATE_DROP_ITEMS;
- public static double RATE_DROP_ITEMS_BY_RAID;
- public static double RATE_DROP_ITEMS_BY_GRAND_RAID;
- public static double RATE_DROP_SPOIL;
- public static int RATE_DROP_MANOR;
- public static double RATE_QUEST_DROP;
- public static double RATE_QUEST_REWARD;
- public static double RATE_QUEST_REWARD_XP;
- public static double RATE_QUEST_REWARD_SP;
- public static double RATE_QUEST_REWARD_ADENA;
- public static double RATE_KARMA_EXP_LOST;
- public static double RATE_SIEGE_GUARDS_PRICE;
- public static int PLAYER_DROP_LIMIT;
- public static int PLAYER_RATE_DROP;
- public static int PLAYER_RATE_DROP_ITEM;
- public static int PLAYER_RATE_DROP_EQUIP;
- public static int PLAYER_RATE_DROP_EQUIP_WEAPON;
- public static int KARMA_DROP_LIMIT;
- public static int KARMA_RATE_DROP;
- public static int KARMA_RATE_DROP_ITEM;
- public static int KARMA_RATE_DROP_EQUIP;
- public static int KARMA_RATE_DROP_EQUIP_WEAPON;
- public static double PET_XP_RATE;
- public static int PET_FOOD_RATE;
- public static double SINEATER_XP_RATE;
- public static double RATE_DROP_COMMON_HERBS;
- public static double RATE_DROP_HP_HERBS;
- public static double RATE_DROP_MP_HERBS;
- public static double RATE_DROP_SPECIAL_HERBS;
- /** Allow types */
- public static boolean ALLOW_FREIGHT;
- public static boolean ALLOW_WAREHOUSE;
- public static boolean ALLOW_WEAR;
- public static int WEAR_DELAY;
- public static int WEAR_PRICE;
- public static boolean ALLOW_LOTTERY;
- public static boolean ALLOW_RACE;
- public static boolean ALLOW_WATER;
- public static boolean ALLOWFISHING;
- public static boolean ALLOW_BOAT;
- public static boolean ALLOW_CURSED_WEAPONS;
- public static boolean ALLOW_MANOR;
- public static boolean ENABLE_FALLING_DAMAGE;
- /** Debug & Dev */
- public static boolean ALT_DEV_NO_SCRIPTS;
- public static boolean ALT_DEV_NO_SPAWNS;
- public static boolean DEBUG;
- public static boolean DEVELOPER;
- public static boolean PACKET_HANDLER_DEBUG;
- /** Deadlock Detector */
- public static boolean DEADLOCK_DETECTOR;
- public static int DEADLOCK_CHECK_INTERVAL;
- public static boolean RESTART_ON_DEADLOCK;
- /** Logs */
- public static boolean LOG_CHAT;
- public static boolean LOG_ITEMS;
- public static boolean GMAUDIT;
- /** Community Board */
- public static boolean ENABLE_COMMUNITY_BOARD;
- public static String BBS_DEFAULT;
- /** Geodata */
- public static int COORD_SYNCHRONIZE;
- public static int GEODATA;
- public static boolean FORCE_GEODATA;
- public static boolean GEODATA_CELLFINDING;
- public static String PATHFIND_BUFFERS;
- public static double LOW_WEIGHT;
- public static double MEDIUM_WEIGHT;
- public static double HIGH_WEIGHT;
- public static boolean ADVANCED_DIAGONAL_STRATEGY;
- public static double DIAGONAL_WEIGHT;
- public static int MAX_POSTFILTER_PASSES;
- public static boolean DEBUG_PATH;
- /** Misc */
- public static boolean L2WALKER_PROTECTION;
- public static boolean AUTODELETE_INVALID_QUEST_DATA;
- public static boolean GAMEGUARD_ENFORCE;
- public static boolean SERVER_NEWS;
- public static int ZONE_TOWN;
- public static boolean DISABLE_TUTORIAL;
- public static boolean NIGHT_GK;
- public static int GK_FREE_TELEPORT_LEVEL;
- public static boolean NOBLE_TELEPORT_FOR_ALL;
- // --------------------------------------------------
- // Those "hidden" settings haven't configs to avoid admins to fuck their server
- // You still can experiment changing values here. But don't say I didn't warn you.
- // --------------------------------------------------
- /** Threads & Packets size */
- public static int THREAD_P_EFFECTS = 6; // default 6
- public static int THREAD_P_GENERAL = 15; // default 15
- public static int GENERAL_PACKET_THREAD_CORE_SIZE = 4; // default 4
- public static int IO_PACKET_THREAD_CORE_SIZE = 2; // default 2
- public static int GENERAL_THREAD_CORE_SIZE = 4; // default 4
- public static int AI_MAX_THREAD = 10; // default 10
- /** Packet information */
- public static boolean COUNT_PACKETS = false; // default false
- public static boolean DUMP_PACKET_COUNTS = false; // default false
- public static int DUMP_INTERVAL_SECONDS = 60; // default 60
- /** IA settings */
- public static int MINIMUM_UPDATE_DISTANCE = 50; // default 50
- public static int MINIMUN_UPDATE_TIME = 500; // default 500
- public static int KNOWNLIST_FORGET_DELAY = 10000; // default 10000
- /** Time after which a packet is considered as lost */
- public static int PACKET_LIFETIME = 0; // default 0 (unlimited)
- /** Reserve Host on LoginServerThread */
- public static boolean RESERVE_HOST_ON_LOGIN = false; // default false
- /** MMO settings */
- public static int MMO_SELECTOR_SLEEP_TIME = 20; // default 20
- public static int MMO_MAX_SEND_PER_PASS = 12; // default 12
- public static int MMO_MAX_READ_PER_PASS = 12; // default 12
- public static int MMO_HELPER_BUFFER_COUNT = 20; // default 20
- /** Client Packets Queue settings */
- public static int CLIENT_PACKET_QUEUE_SIZE = 14; // default MMO_MAX_READ_PER_PASS + 2
- public static int CLIENT_PACKET_QUEUE_MAX_BURST_SIZE = 13; // default MMO_MAX_READ_PER_PASS + 1
- public static int CLIENT_PACKET_QUEUE_MAX_PACKETS_PER_SECOND = 80; // default 80
- public static int CLIENT_PACKET_QUEUE_MEASURE_INTERVAL = 5; // default 5
- public static int CLIENT_PACKET_QUEUE_MAX_AVERAGE_PACKETS_PER_SECOND = 40; // default 40
- public static int CLIENT_PACKET_QUEUE_MAX_FLOODS_PER_MIN = 2; // default 2
- public static int CLIENT_PACKET_QUEUE_MAX_OVERFLOWS_PER_MIN = 1; // default 1
- public static int CLIENT_PACKET_QUEUE_MAX_UNDERFLOWS_PER_MIN = 1; // default 1
- public static int CLIENT_PACKET_QUEUE_MAX_UNKNOWN_PER_MIN = 5; // default 5
- // --------------------------------------------------
- public static boolean HOT_DEBUFF_CLEANSE;
- /** Premium settings */
- public static boolean PREMIUM_ITEM_ENABLED; // OK
- public static boolean PREMIUM_FIRST_ITEM_BONUS; // OK
- public static int[] PREMIUM_ITEM_IDS; // OK
- public static int[] PREMIUM_ITEM_TIME;
- public static double[] PREMIUM_ITEM_XP_MULTIPLIERS; // OK
- public static double[] PREMIUM_ITEM_SP_MULTIPLIERS; // OK
- public static double[] PREMIUM_ITEM_PARTY_XP_MULTIPLIERS; // OK
- public static double[] PREMIUM_ITEM_PARTY_SP_MULTIPLIERS; // OK
- public static double[] PREMIUM_ITEM_DROP_ADENA_MULTIPLIERS; // OK
- public static double[] PREMIUM_ITEM_DROP_ITEMS_MULTIPLIERS; // OK
- public static double[] PREMIUM_ITEM_SPOIL_MULTIPLIERS; // OK
- public static double[] PREMIUM_ITEM_QUEST_ITEMS_MULTIPLIERS; // OK
- public static double[] PREMIUM_ITEM_BUFFS_TIME_MULTIPLIERS; // OK
- public static double[] PREMIUM_ITEM_ENCHANT_CHANCE_MULTIPLIERS; // OK
- public static double[] PREMIUM_ITEM_AUGMENT_CHANCE_MULTIPLIERS; // OK
- public static double[] PREMIUM_ITEM_DROP_SEAL_STONES_MULTIPLIERS;
- public static boolean REMOVE_AUGMENTATION_EFFECT;
- //======================
- // pcbang.properties
- //======================
- public static boolean PCB_ENABLE;
- public static boolean PCB_WINDOW_ONLINE;
- public static int PCB_MIN_LEVEL;
- public static boolean PCB_CHECK_HWID;
- public static int PCB_POINT_MIN;
- public static int PCB_POINT_MAX;
- public static int PCB_CHANCE_DUAL_POINT;
- public static int PCB_INTERVAL;
- public static int PCB_LIKE_WINDOW_ONLINE_RATE;
- public static int PCB_LIKE_WINDOW_INCREASE_RATE;
- //======================
- // medals.properties
- //======================
- public static boolean MEDAL_DROP;
- public static int MEDAL_SPAWN_NPC_ID;
- public static List<Location> MEDAL_SPAWN_NPC_LOC = new ArrayList<>();
- public static boolean MEDAL_SPAWN;
- public static int MEDAL_CHANCE1;
- public static int MEDAL_CHANCE2;
- //======================
- // protections.properties
- //======================
- public static boolean ENABLE_DEPOSIT_PROTECT;
- public static String NON_DEPOSIT_ITEMS;
- public static ArrayList<Integer> NOT_DEPOSITABLE_ITEMS = new ArrayList<>();
- public static boolean ENABLE_PASSKEY;
- public static boolean ALLOW_PRIVATE_ANTI_BOT;
- public static boolean ALLOW_SEQURITY_QUE;
- public static boolean ALLOW_ANTI_AFK;
- public static int ENCHANT_BOT_CHANCE;
- public static int MINUTES_AFK_PLAYERS;
- public static int SECURITY_QUE_TIME;
- public static void load()
- {
- if (Server.serverMode == Server.MODE_GAMESERVER)
- {
- _log.info("Loading flood protectors.");
- FLOOD_PROTECTOR_ROLL_DICE = new FloodProtectorConfig("RollDiceFloodProtector");
- FLOOD_PROTECTOR_HERO_VOICE = new FloodProtectorConfig("HeroVoiceFloodProtector");
- FLOOD_PROTECTOR_SUBCLASS = new FloodProtectorConfig("SubclassFloodProtector");
- FLOOD_PROTECTOR_DROP_ITEM = new FloodProtectorConfig("DropItemFloodProtector");
- FLOOD_PROTECTOR_SERVER_BYPASS = new FloodProtectorConfig("ServerBypassFloodProtector");
- FLOOD_PROTECTOR_MULTISELL = new FloodProtectorConfig("MultiSellFloodProtector");
- FLOOD_PROTECTOR_MANUFACTURE = new FloodProtectorConfig("ManufactureFloodProtector");
- FLOOD_PROTECTOR_MANOR = new FloodProtectorConfig("ManorFloodProtector");
- FLOOD_PROTECTOR_SENDMAIL = new FloodProtectorConfig("SendMailFloodProtector");
- FLOOD_PROTECTOR_CHARACTER_SELECT = new FloodProtectorConfig("CharacterSelectFloodProtector");
- _log.info("Loading gameserver configuration files.");
- ExProperties medalSettings = load(MEDAL_FILE);
- MEDAL_DROP = medalSettings.getProperty("MedalAddDrop", false);
- MEDAL_SPAWN = medalSettings.getProperty("MedalSpawnMeneger", false);
- MEDAL_CHANCE1 = medalSettings.getProperty("Medal1DropChance", 10);
- MEDAL_CHANCE2 = medalSettings.getProperty("Medal2DropChance", 2);
- MEDAL_SPAWN_NPC_ID = medalSettings.getProperty("MedalManagerNpcId", 31229);
- String[] locationMedalManager = medalSettings.getProperty("MedalManagerLocation", "").split(";");
- try
- {
- int h = 0;
- if (locationMedalManager != null)
- {
- for (String loc : locationMedalManager)
- {
- String[] pointFinalLoc = loc.split(",");
- if (pointFinalLoc.length > 3)
- {
- h = Integer.parseInt(pointFinalLoc[3]);
- }
- MEDAL_SPAWN_NPC_LOC.add(new Location(Integer.parseInt(pointFinalLoc[0]), Integer.parseInt(pointFinalLoc[1]), Integer.parseInt(pointFinalLoc[2]), h));
- }
- }
- }
- catch (Exception e)
- {
- }
- ExProperties pcbpSettings = load(PCBANG_FILE);
- PCB_ENABLE = Boolean.parseBoolean(pcbpSettings.getProperty("PcBangPointEnable", "true"));
- PCB_MIN_LEVEL = Integer.parseInt(pcbpSettings.getProperty("PcBangPointMinLevel", "20"));
- PCB_CHECK_HWID = Boolean.parseBoolean(pcbpSettings.getProperty("PcBangCheckHWID", "true"));
- PCB_POINT_MIN = Integer.parseInt(pcbpSettings.getProperty("PcBangPointMinCount", "20"));
- PCB_POINT_MAX = Integer.parseInt(pcbpSettings.getProperty("PcBangPointMaxCount", "1000000"));
- if (PCB_POINT_MAX < 1)
- {
- PCB_POINT_MAX = Integer.MAX_VALUE;
- }
- PCB_CHANCE_DUAL_POINT = Integer.parseInt(pcbpSettings.getProperty("PcBangPointDualChance", "20"));
- PCB_INTERVAL = Integer.parseInt(pcbpSettings.getProperty("PcBangPointTimeStamp", "900"));
- PCB_WINDOW_ONLINE = Boolean.parseBoolean(pcbpSettings.getProperty("PcBangShowOnlineForm", "false"));
- PCB_LIKE_WINDOW_ONLINE_RATE = Integer.parseInt(pcbpSettings.getProperty("PcBangShowOnlineFormInterval", "300"));
- PCB_LIKE_WINDOW_INCREASE_RATE = Integer.parseInt(pcbpSettings.getProperty("PcBangShiwOnlineIncriment", "10"));
- // Four Sepulchers config
- ExProperties foursepulchers = load(FS_FILE);
- FS_TIME_ATTACK = foursepulchers.getProperty("TimeOfAttack", 50);
- FS_TIME_COOLDOWN = foursepulchers.getProperty("TimeOfCoolDown", 5);
- FS_TIME_ENTRY = foursepulchers.getProperty("TimeOfEntry", 3);
- FS_TIME_WARMUP = foursepulchers.getProperty("TimeOfWarmUp", 2);
- FS_PARTY_MEMBER_COUNT = foursepulchers.getProperty("NumberOfNecessaryPartyMembers", 4);
- // Clans settings
- ExProperties clans = load(CLANS_FILE);
- ALT_CLAN_JOIN_DAYS = clans.getProperty("DaysBeforeJoinAClan", 5);
- ALT_CLAN_JOIN_DAYS = clans.getProperty("DaysBeforeJoinAClan", 5);
- ALT_CLAN_CREATE_DAYS = clans.getProperty("DaysBeforeCreateAClan", 10);
- ALT_MAX_NUM_OF_CLANS_IN_ALLY = clans.getProperty("AltMaxNumOfClansInAlly", 3);
- ALT_CLAN_MEMBERS_FOR_WAR = clans.getProperty("AltClanMembersForWar", 15);
- ALT_CLAN_WAR_PENALTY_WHEN_ENDED = clans.getProperty("AltClanWarPenaltyWhenEnded", 5);
- ALT_CLAN_DISSOLVE_DAYS = clans.getProperty("DaysToPassToDissolveAClan", 7);
- ALT_ALLY_JOIN_DAYS_WHEN_LEAVED = clans.getProperty("DaysBeforeJoinAllyWhenLeaved", 1);
- ALT_ALLY_JOIN_DAYS_WHEN_DISMISSED = clans.getProperty("DaysBeforeJoinAllyWhenDismissed", 1);
- ALT_ACCEPT_CLAN_DAYS_WHEN_DISMISSED = clans.getProperty("DaysBeforeAcceptNewClanWhenDismissed", 1);
- ALT_CREATE_ALLY_DAYS_WHEN_DISSOLVED = clans.getProperty("DaysBeforeCreateNewAllyWhenDissolved", 10);
- ALT_MEMBERS_CAN_WITHDRAW_FROM_CLANWH = clans.getProperty("AltMembersCanWithdrawFromClanWH", false);
- REMOVE_CASTLE_CIRCLETS = clans.getProperty("RemoveCastleCirclets", true);
- CH_BUY_ITEM_ID = clans.getProperty("ClanHallBuyItemId", 57);
- REGEX_CLAN_NAME = clans.getProperty("RegexClanName", "[A-Za-z0-9\\u0410-\\u042f\\u0430-\\u044f]{3,16}");
- ALT_MANOR_REFRESH_TIME = clans.getProperty("AltManorRefreshTime", 20);
- ALT_MANOR_REFRESH_MIN = clans.getProperty("AltManorRefreshMin", 0);
- ALT_MANOR_APPROVE_TIME = clans.getProperty("AltManorApproveTime", 6);
- ALT_MANOR_APPROVE_MIN = clans.getProperty("AltManorApproveMin", 0);
- ALT_MANOR_MAINTENANCE_PERIOD = clans.getProperty("AltManorMaintenancePeriod", 360000);
- ALT_MANOR_SAVE_ALL_ACTIONS = clans.getProperty("AltManorSaveAllActions", false);
- ALT_MANOR_SAVE_PERIOD_RATE = clans.getProperty("AltManorSavePeriodRate", 2);
- CH_TELE_FEE_RATIO = clans.getProperty("ClanHallTeleportFunctionFeeRatio", 86400000);
- CH_TELE1_FEE = clans.getProperty("ClanHallTeleportFunctionFeeLvl1", 7000);
- CH_TELE2_FEE = clans.getProperty("ClanHallTeleportFunctionFeeLvl2", 14000);
- CH_SUPPORT_FEE_RATIO = clans.getProperty("ClanHallSupportFunctionFeeRatio", 86400000);
- CH_SUPPORT1_FEE = clans.getProperty("ClanHallSupportFeeLvl1", 17500);
- CH_SUPPORT2_FEE = clans.getProperty("ClanHallSupportFeeLvl2", 35000);
- CH_SUPPORT3_FEE = clans.getProperty("ClanHallSupportFeeLvl3", 49000);
- CH_SUPPORT4_FEE = clans.getProperty("ClanHallSupportFeeLvl4", 77000);
- CH_SUPPORT5_FEE = clans.getProperty("ClanHallSupportFeeLvl5", 147000);
- CH_SUPPORT6_FEE = clans.getProperty("ClanHallSupportFeeLvl6", 252000);
- CH_SUPPORT7_FEE = clans.getProperty("ClanHallSupportFeeLvl7", 259000);
- CH_SUPPORT8_FEE = clans.getProperty("ClanHallSupportFeeLvl8", 364000);
- CH_MPREG_FEE_RATIO = clans.getProperty("ClanHallMpRegenerationFunctionFeeRatio", 86400000);
- CH_MPREG1_FEE = clans.getProperty("ClanHallMpRegenerationFeeLvl1", 14000);
- CH_MPREG2_FEE = clans.getProperty("ClanHallMpRegenerationFeeLvl2", 26250);
- CH_MPREG3_FEE = clans.getProperty("ClanHallMpRegenerationFeeLvl3", 45500);
- CH_MPREG4_FEE = clans.getProperty("ClanHallMpRegenerationFeeLvl4", 96250);
- CH_MPREG5_FEE = clans.getProperty("ClanHallMpRegenerationFeeLvl5", 140000);
- CH_HPREG_FEE_RATIO = clans.getProperty("ClanHallHpRegenerationFunctionFeeRatio", 86400000);
- CH_HPREG1_FEE = clans.getProperty("ClanHallHpRegenerationFeeLvl1", 4900);
- CH_HPREG2_FEE = clans.getProperty("ClanHallHpRegenerationFeeLvl2", 5600);
- CH_HPREG3_FEE = clans.getProperty("ClanHallHpRegenerationFeeLvl3", 7000);
- CH_HPREG4_FEE = clans.getProperty("ClanHallHpRegenerationFeeLvl4", 8166);
- CH_HPREG5_FEE = clans.getProperty("ClanHallHpRegenerationFeeLvl5", 10500);
- CH_HPREG6_FEE = clans.getProperty("ClanHallHpRegenerationFeeLvl6", 12250);
- CH_HPREG7_FEE = clans.getProperty("ClanHallHpRegenerationFeeLvl7", 14000);
- CH_HPREG8_FEE = clans.getProperty("ClanHallHpRegenerationFeeLvl8", 15750);
- CH_HPREG9_FEE = clans.getProperty("ClanHallHpRegenerationFeeLvl9", 17500);
- CH_HPREG10_FEE = clans.getProperty("ClanHallHpRegenerationFeeLvl10", 22750);
- CH_HPREG11_FEE = clans.getProperty("ClanHallHpRegenerationFeeLvl11", 26250);
- CH_HPREG12_FEE = clans.getProperty("ClanHallHpRegenerationFeeLvl12", 29750);
- CH_HPREG13_FEE = clans.getProperty("ClanHallHpRegenerationFeeLvl13", 36166);
- CH_EXPREG_FEE_RATIO = clans.getProperty("ClanHallExpRegenerationFunctionFeeRatio", 86400000);
- CH_EXPREG1_FEE = clans.getProperty("ClanHallExpRegenerationFeeLvl1", 21000);
- CH_EXPREG2_FEE = clans.getProperty("ClanHallExpRegenerationFeeLvl2", 42000);
- CH_EXPREG3_FEE = clans.getProperty("ClanHallExpRegenerationFeeLvl3", 63000);
- CH_EXPREG4_FEE = clans.getProperty("ClanHallExpRegenerationFeeLvl4", 105000);
- CH_EXPREG5_FEE = clans.getProperty("ClanHallExpRegenerationFeeLvl5", 147000);
- CH_EXPREG6_FEE = clans.getProperty("ClanHallExpRegenerationFeeLvl6", 163331);
- CH_EXPREG7_FEE = clans.getProperty("ClanHallExpRegenerationFeeLvl7", 210000);
- CH_ITEM_FEE_RATIO = clans.getProperty("ClanHallItemCreationFunctionFeeRatio", 86400000);
- CH_ITEM1_FEE = clans.getProperty("ClanHallItemCreationFunctionFeeLvl1", 210000);
- CH_ITEM2_FEE = clans.getProperty("ClanHallItemCreationFunctionFeeLvl2", 490000);
- CH_ITEM3_FEE = clans.getProperty("ClanHallItemCreationFunctionFeeLvl3", 980000);
- CH_CURTAIN_FEE_RATIO = clans.getProperty("ClanHallCurtainFunctionFeeRatio", 86400000);
- CH_CURTAIN1_FEE = clans.getProperty("ClanHallCurtainFunctionFeeLvl1", 2002);
- CH_CURTAIN2_FEE = clans.getProperty("ClanHallCurtainFunctionFeeLvl2", 2625);
- CH_FRONT_FEE_RATIO = clans.getProperty("ClanHallFrontPlatformFunctionFeeRatio", 86400000);
- CH_FRONT1_FEE = clans.getProperty("ClanHallFrontPlatformFunctionFeeLvl1", 3031);
- CH_FRONT2_FEE = clans.getProperty("ClanHallFrontPlatformFunctionFeeLvl2", 9331);
- //Manor config
- ExProperties manor = load(MANOR_FILE);
- ALLOW_MANOR = manor.getProperty("AllowManor", true);
- ALT_MANOR_REFRESH_TIME = manor.getProperty("AltManorRefreshTime", 20);
- ALT_MANOR_REFRESH_MIN = manor.getProperty("AltManorRefreshMin", 0);
- ALT_MANOR_APPROVE_TIME = manor.getProperty("AltManorApproveTime", 6);
- ALT_MANOR_APPROVE_MIN = manor.getProperty("AltManorApproveMin", 0);
- ALT_MANOR_MAINTENANCE_PERIOD = manor.getProperty("AltManorMaintenancePeriod", 360000);
- ALT_MANOR_SAVE_ALL_ACTIONS = manor.getProperty("AltManorSaveAllActions", false);
- ALT_MANOR_SAVE_PERIOD_RATE = manor.getProperty("AltManorSavePeriodRate", 2);
- // Seven Sings and Festival config
- ExProperties sevensings = load(SEVENSINGS_FILE);
- ALT_GAME_REQUIRE_CLAN_CASTLE = sevensings.getProperty("AltRequireClanCastle", false);
- ALT_GAME_CASTLE_DAWN = sevensings.getProperty("AltCastleForDawn", true);
- ALT_GAME_CASTLE_DUSK = sevensings.getProperty("AltCastleForDusk", true);
- ALT_FESTIVAL_MIN_PLAYER = sevensings.getProperty("AltFestivalMinPlayer", 5);
- ALT_MAXIMUM_PLAYER_CONTRIB = sevensings.getProperty("AltMaxPlayerContrib", 1000000);
- ALT_FESTIVAL_MANAGER_START = sevensings.getProperty("AltFestivalManagerStart", 120000);
- ALT_FESTIVAL_LENGTH = sevensings.getProperty("AltFestivalLength", 1080000);
- ALT_FESTIVAL_CYCLE_LENGTH = sevensings.getProperty("AltFestivalCycleLength", 2280000);
- ALT_FESTIVAL_FIRST_SPAWN = sevensings.getProperty("AltFestivalFirstSpawn", 120000);
- ALT_FESTIVAL_FIRST_SWARM = sevensings.getProperty("AltFestivalFirstSwarm", 300000);
- ALT_FESTIVAL_SECOND_SPAWN = sevensings.getProperty("AltFestivalSecondSpawn", 540000);
- ALT_FESTIVAL_SECOND_SWARM = sevensings.getProperty("AltFestivalSecondSwarm", 720000);
- ALT_FESTIVAL_CHEST_SPAWN = sevensings.getProperty("AltFestivalChestSpawn", 900000);
- ALT_SEVENSIGNS_LAZY_UPDATE = sevensings.getProperty("AltSevenSignsLazyUpdate", true);
- // Rift config
- ExProperties rift = load(RIFT_FILE);
- RIFT_MIN_PARTY_SIZE = rift.getProperty("RiftMinPartySize", 2);
- RIFT_MAX_JUMPS = rift.getProperty("MaxRiftJumps", 4);
- RIFT_SPAWN_DELAY = rift.getProperty("RiftSpawnDelay", 10000);
- RIFT_AUTO_JUMPS_TIME_MIN = rift.getProperty("AutoJumpsDelayMin", 480);
- RIFT_AUTO_JUMPS_TIME_MAX = rift.getProperty("AutoJumpsDelayMax", 600);
- RIFT_ENTER_COST_RECRUIT = rift.getProperty("RecruitCost", 18);
- RIFT_ENTER_COST_SOLDIER = rift.getProperty("SoldierCost", 21);
- RIFT_ENTER_COST_OFFICER = rift.getProperty("OfficerCost", 24);
- RIFT_ENTER_COST_CAPTAIN = rift.getProperty("CaptainCost", 27);
- RIFT_ENTER_COST_COMMANDER = rift.getProperty("CommanderCost", 30);
- RIFT_ENTER_COST_HERO = rift.getProperty("HeroCost", 33);
- RIFT_BOSS_ROOM_TIME_MUTIPLY = rift.getProperty("BossRoomTimeMultiply", 1.);
- // Married config
- ExProperties married = load(MARRIED_FILE);
- ALLOW_WEDDING = married.getProperty("AllowWedding", false);
- WEDDING_PRICE = married.getProperty("WeddingPrice", 1000000);
- WEDDING_SAMESEX = married.getProperty("WeddingAllowSameSex", false);
- WEDDING_FORMALWEAR = married.getProperty("WeddingFormalWear", true);
- // Lottery config
- ExProperties lottery = load(LOTTERY_FILE);
- ALLOW_LOTTERY = lottery.getProperty("AllowLottery", true);
- ALT_LOTTERY_PRIZE = lottery.getProperty("AltLotteryPrize", 50000);
- ALT_LOTTERY_TICKET_PRICE = lottery.getProperty("AltLotteryTicketPrice", 2000);
- ALT_LOTTERY_5_NUMBER_RATE = lottery.getProperty("AltLottery5NumberRate", 0.6);
- ALT_LOTTERY_4_NUMBER_RATE = lottery.getProperty("AltLottery4NumberRate", 0.2);
- ALT_LOTTERY_3_NUMBER_RATE = lottery.getProperty("AltLottery3NumberRate", 0.2);
- ALT_LOTTERY_2_AND_1_NUMBER_PRIZE = lottery.getProperty("AltLottery2and1NumberPrize", 200);
- // Fishing config
- ExProperties fishing = load(FISHING_FILE);
- ALT_FISH_CHAMPIONSHIP_ENABLED = fishing.getProperty("AltFishChampionshipEnabled", true);
- ALT_FISH_CHAMPIONSHIP_REWARD_ITEM = fishing.getProperty("AltFishChampionshipRewardItemId", 57);
- ALT_FISH_CHAMPIONSHIP_REWARD_1 = fishing.getProperty("AltFishChampionshipReward1", 800000);
- ALT_FISH_CHAMPIONSHIP_REWARD_2 = fishing.getProperty("AltFishChampionshipReward2", 500000);
- ALT_FISH_CHAMPIONSHIP_REWARD_3 = fishing.getProperty("AltFishChampionshipReward3", 300000);
- ALT_FISH_CHAMPIONSHIP_REWARD_4 = fishing.getProperty("AltFishChampionshipReward4", 200000);
- ALT_FISH_CHAMPIONSHIP_REWARD_5 = fishing.getProperty("AltFishChampionshipReward5", 100000);
- // Buffer config
- ExProperties buffer = load(BUFFER_FILE);
- BUFFER_ENABLED = buffer.getProperty("BufferEnabled", true);
- if (BUFFER_ENABLED)
- {
- BUFFER_PRICE_ITEM = buffer.getProperty("BufferPriceItem", 57);
- BUFFER_REMOVE_COST = buffer.getProperty("BufferRemoveBuffPrice", 0);
- BUFFER_CP_HP_RESTORE_COST = buffer.getProperty("BufferRestoreCPHPPrice", 0);
- BUFFER_MP_RESTORE_COST = buffer.getProperty("BufferRestoreMPPrice", 0);
- BUFFER_RESTRICTION = buffer.getProperty("BufferRestrictedWhen", "");
- BUFFER_RESTORE_DELAY = buffer.getProperty("BufferRestoreDelay", 0);
- BUFFER_ANIMATION = buffer.getProperty("BufferAnimation", false);
- BUFFER_SCHEME_MIN_NAME_LENGTH = buffer.getProperty("BufferSchemeMinNameLength", 2);
- BUFFER_SCHEME_MAX_NAME_LENGTH = buffer.getProperty("BufferSchemeMaxNameLength", 16);
- BUFFER_MAX_SCHEMES = buffer.getProperty("BufferMaxSchemes", 5);
- }
- // Events config
- ExProperties pr = Config.load(PVP_REWARD_FILE);
- PVP_REWARD_ENABLED = pr.getProperty("PvpRewardEnabled", false);
- PVP_REWARD_PVP_LEVEL_DIF = pr.getProperty("PvPLevelDifference", 10);
- PVP_REWARD_PVP_UPDATE_TIME = pr.getProperty("PvpProtectTime", 30);
- PVP_REWARD_ITEMS = pr.getProperty("PvPItemIds", new int[]
- {
- 0
- });
- PVP_REWARD_ITEMS_COUNT = pr.getProperty("PvPItemsCount", new int[]
- {
- 1
- });
- PVP_REWARD_ITEMS_CHANCE = pr.getProperty("PvpItemsDropChance", new int[]
- {
- 100
- });
- PVP_REWARD_EXP_AMOUNT = pr.getProperty("PvPExpAmount", 0);
- PVP_REWARD_SP_AMOUNT = pr.getProperty("PvPSpAmount", 0);
- PVP_REWARD_BLOCK_SAME_IP = pr.getProperty("PvPAllowSameIP", false);
- PVP_REWARD_PK_LEVEL_DIF = pr.getProperty("PkLevelDifference", 10);
- PVP_REWARD_PK_UPDATE_TIME = pr.getProperty("PkProtectTime", 30);
- PVP_REWARD_PK_ITEMS = pr.getProperty("PkItemsIds", new int[]
- {
- 0
- });
- PVP_REWARD_PK_ITEMS_COUNT = pr.getProperty("PkItemsCount", new int[]
- {
- 1
- });
- PVP_REWARD_PK_ITEMS_CHANCE = pr.getProperty("PkItemsDropChance", new int[]
- {
- 100
- });
- PVP_REWARD_PK_EXP_AMOUNT = pr.getProperty("PkExpAmount", 0);
- PVP_REWARD_PK_SP_AMOUNT = pr.getProperty("PkSpAmount", 0);
- PVP_REWARD_PK_BLOCK_SAME_IP = pr.getProperty("PkAllowSameIP", false);
- // Olympiad
- ExProperties olympiad = load(OLYMPIAD_FILE);
- ALT_OLY_START_TIME = olympiad.getProperty("AltOlyStartTime", 18);
- ALT_OLY_MIN = olympiad.getProperty("AltOlyMin", 0);
- ALT_OLY_CPERIOD = olympiad.getProperty("AltOlyCPeriod", 6);
- ALT_OLY_BATTLE = olympiad.getProperty("AltOlyBattle", 6);
- ALT_OLY_WPERIOD = olympiad.getProperty("AltOlyWPeriod", 604800000);
- ALT_OLY_VPERIOD = olympiad.getProperty("AltOlyVPeriod", 86400000);
- ALT_OLY_WAIT_TIME = olympiad.getProperty("AltOlyWaitTime", 30);
- ALT_OLY_WAIT_BATTLE = olympiad.getProperty("AltOlyWaitBattle", 60);
- ALT_OLY_WAIT_END = olympiad.getProperty("AltOlyWaitEnd", 40);
- ALT_OLY_START_POINTS = olympiad.getProperty("AltOlyStartPoints", 18);
- ALT_OLY_WEEKLY_POINTS = olympiad.getProperty("AltOlyWeeklyPoints", 3);
- ALT_OLY_MIN_MATCHES = olympiad.getProperty("AltOlyMinMatchesToBeClassed", 5);
- ALT_OLY_CLASSED = olympiad.getProperty("AltOlyClassedParticipants", 5);
- ALT_OLY_NONCLASSED = olympiad.getProperty("AltOlyNonClassedParticipants", 9);
- ALT_OLY_CLASSED_REWARD = parseItemsList(olympiad.getProperty("AltOlyClassedReward", "6651,50"));
- ALT_OLY_NONCLASSED_REWARD = parseItemsList(olympiad.getProperty("AltOlyNonClassedReward", "6651,30"));
- ALT_OLY_COMP_RITEM = olympiad.getProperty("AltOlyCompRewItem", 6651);
- ALT_OLY_GP_PER_POINT = olympiad.getProperty("AltOlyGPPerPoint", 1000);
- ALT_OLY_HERO_POINTS = olympiad.getProperty("AltOlyHeroPoints", 300);
- ALT_OLY_RANK1_POINTS = olympiad.getProperty("AltOlyRank1Points", 100);
- ALT_OLY_RANK2_POINTS = olympiad.getProperty("AltOlyRank2Points", 75);
- ALT_OLY_RANK3_POINTS = olympiad.getProperty("AltOlyRank3Points", 55);
- ALT_OLY_RANK4_POINTS = olympiad.getProperty("AltOlyRank4Points", 40);
- ALT_OLY_RANK5_POINTS = olympiad.getProperty("AltOlyRank5Points", 30);
- ALT_OLY_MAX_POINTS = olympiad.getProperty("AltOlyMaxPoints", 10);
- ALT_OLY_DIVIDER_CLASSED = olympiad.getProperty("AltOlyDividerClassed", 3);
- ALT_OLY_DIVIDER_NON_CLASSED = olympiad.getProperty("AltOlyDividerNonClassed", 3);
- ALT_OLY_ANNOUNCE_GAMES = olympiad.getProperty("AltOlyAnnounceGames", true);
- ALT_OLY_RESET_SKILL_REUSE = olympiad.getProperty("AltOlyResetSkillReuse", -1);
- OLY_RESTRICTED_ENCHANT_VALUE = olympiad.getProperty("OlyMaxAllowedEnchantValue", -1);
- ExProperties events = load(EVENTS_CAPTURE_TEAM_FLAG_FILE);
- CTF_ENABLED = events.getProperty("Enabled", true);
- CTF_AURA = events.getProperty("Aura", true);
- CTF_IN_INSTANCE = events.getProperty("InInstance", true);
- CTF_REVIVE_RECOVERY = events.getProperty("ReviveRecovery", true);
- CTF_ALLOW_INTERFERENCE = events.getProperty("AllowInterference", false);
- CTF_ALLOW_POTIONS = events.getProperty("AllowPotions", false);
- CTF_ALLOW_SUMMON = events.getProperty("AllowSummon", true);
- CTF_ON_START_REMOVE_ALL_EFFECTS = events.getProperty("OnStartRemoveAllEffects", true);
- CTF_ON_START_UNSUMMON_PET = events.getProperty("OnStartUnsummonPet", true);
- CTF_JOIN_CURSED = events.getProperty("JoinWithCursedWeapon", false);
- CTF_REVIVE_DELAY = events.getProperty("ReviveDelay", 10);
- CTF_CLOSE_COLISEUM_DOORS = events.getProperty("CloseColiseumDoors", true);
- CTF_ALLOW_TEAM_CASTING = events.getProperty("AllowTeamCasting", false);
- CTF_RETURNORIGINAL = events.getProperty("OriginalPosition", false);
- CTF_MIN_LVL = events.getProperty("MinLevel", 1);
- CTF_MAX_LVL = events.getProperty("MaxLevel", 80);
- CTF_JOIN_TIME = events.getProperty("JoinTime", 5);
- CTF_EVENT_TIME = events.getProperty("EventTime", 15);
- CTF_MIN_PLAYERS = events.getProperty("MinPlayers", 1);
- CTF_MAX_PLAYERS = events.getProperty("MaxPlayers", 50);
- CTF_REWARD_ID = events.getProperty("RewardId", new int[]
- {
- 57
- });
- CTF_REWARD_AMOUNT = events.getProperty("RewardId", new int[]
- {
- 57
- });
- CTF_BLUE_TEAM_LOC = new Location(events.getProperty("BlueTeamLoc", "150545 46734 -3415"));
- CTF_BLUE_FLAG_LOC = new Location(events.getProperty("BlueFlagLoc", "150399 46732 -3390"));
- CTF_RED_TEAM_LOC = new Location(events.getProperty("RedTeamLoc", "148386 46747 -3415"));
- CTF_RED_FLAG_LOC = new Location(events.getProperty("RedFlagLoc", "148501 46738 -3390"));
- events = load(EVENTS_DEATH_MATCH_FILE);
- DM_ENABLED = events.getProperty("Enabled", true);
- DM_ON_START_REMOVE_ALL_EFFECTS = events.getProperty("OnStartRemoveAllEffects", true);
- DM_ON_START_UNSUMMON_PET = events.getProperty("OnStartUnsummonPet", true);
- DM_RETURNORIGINAL = events.getProperty("OriginalPosition", false);
- DM_RESORE_HP_MP_CP = events.getProperty("OnStartRestoreHpMpCp", false);
- DM_ALLOW_POTIONS = events.getProperty("AllowPotion", false);
- DM_ALLOW_SUMMON = events.getProperty("AllowSummon", false);
- DM_JOIN_CURSED = events.getProperty("CursedWeapon", false);
- DM_ALLOW_INTERFERENCE = events.getProperty("AllowInterference", false);
- DM_RESET_SKILL_REUSE = events.getProperty("ResetAllSkill", false);
- DM_EVENT_LOCATION = new Location(events.getProperty("EventLocation", "149800 46800 -3412"));
- DM_REVIVE_DELAY = events.getProperty("ReviveDelay", 10);
- DM_REG_TIME = events.getProperty("RegTime", 10);
- DM_EVENT_TIME = events.getProperty("EventTime", 10);
- DM_MIN_PLAYERS = events.getProperty("MinPlayers", 1);
- DM_MAX_PLAYERS = events.getProperty("MaxPlayers", 50);
- DM_MIN_LVL = events.getProperty("MinLevel", 1);
- DM_MAX_LVL = events.getProperty("MaxLevel", 80);
- DM_REWARD_ITEM = events.getProperty("RewardItem", new int[]
- {
- 57
- });
- DM_REWARD_ITEM_COUNT = events.getProperty("RewardItemCount", new int[]
- {
- 50000
- });
- events = load(EVENTS_LAST_HERO_FILE);
- LH_ENABLED = events.getProperty("Enabled", true);
- LH_ON_START_REMOVE_ALL_EFFECTS = events.getProperty("OnStartRemoveAllEffects", true);
- LH_ON_START_UNSUMMON_PET = events.getProperty("OnStartUnsummonPet", true);
- LH_RESORE_HP_MP_CP = events.getProperty("OnStartRestoreHpMpCp", false);
- LH_ALLOW_POTIONS = events.getProperty("AllowPotion", false);
- LH_ALLOW_SUMMON = events.getProperty("AllowSummon", false);
- LH_JOIN_CURSED = events.getProperty("CursedWeapon", false);
- LH_ALLOW_INTERFERENCE = events.getProperty("TAllowInterference", false);
- LH_REWARD_KILLS = events.getProperty("RewardKills", true);
- LH_GIVE_HERO = events.getProperty("GiveHero", true);
- LH_LOC = new Location(events.getProperty("Location", "149800 46800 -3412"));
- LH_HERO_DAYS = events.getProperty("HeroDays", 0);
- LH_REG_TIME = events.getProperty("RegTime", 10);
- LH_EVENT_TIME = events.getProperty("EventTime", 10);
- LH_REWARD_ITEM = events.getProperty("RewardItem", new int[]
- {
- 57
- });
- LH_REWARD_ITEM_COUNT = events.getProperty("RewardItemCount", new int[]
- {
- 100000
- });
- LH_MIN_PLAYERS = events.getProperty("MinPlayers", 1);
- LH_MAX_PLAYERS = events.getProperty("MaxPlayers", 50);
- LH_MIN_LVL = events.getProperty("MinLevel", 1);
- LH_MAX_LVL = events.getProperty("MaxLevel", 80);
- LH_SUPER_PRIZE_ID = events.getProperty("PrizeId", 6392);
- LH_SUPER_PRIZE_COUNT = events.getProperty("PrizeCount", 5);
- events = load(EVENTS_TEAM_VS_TEAM_FILE);
- TVT_ENABLED = events.getProperty("Enabled", true);
- TVT_AURA = events.getProperty("Aura", true);
- TVT_ININSTANCE = events.getProperty("InInstance", true);
- TVT_JOIN_CURSED = events.getProperty("JoinWithCursedWeapon", false);
- TVT_ON_START_REMOVE_ALL_EFFECTS = events.getProperty("OnStartRemoveAllEffects", true);
- TVT_ON_START_RECOVERY = events.getProperty("OnStartRecovery", true);
- TVT_ON_START_UNSUMMON_PET = events.getProperty("OnStartUnsummonPet", true);
- TVT_CLOSE_COLISEUM_DOORS = events.getProperty("CloseColiseumDoors", true);
- TVT_ALLOW_INTERFERENCE = events.getProperty("AllowInterference", false);
- TVT_ALLOW_POTIONS = events.getProperty("AllowPotions", false);
- TVT_ALLOW_SUMMON = events.getProperty("AllowSummon", true);
- TVT_REVIVE_RECOVERY = events.getProperty("ReviveRecovery", true);
- TVT_REVIVE_DELAY = events.getProperty("ReviveDelay", 10);
- TVT_ALLOW_ENEMY_HEALING = events.getProperty("AllowEnemyHealing", false);
- TVT_ALLOW_TEAM_CASTING = events.getProperty("AllowTeamCasting", false);
- TVT_ALLOW_TEAM_ATTACKING = events.getProperty("AllowTeamAttacking", false);
- TVT_PRICE_NO_KILLS = events.getProperty("PriceNoKills", false);
- TVT_ORIGINALRETURN = events.getProperty("OriginalPosition", false);
- TVT_MIN_LVL = events.getProperty("MinLevel", 1);
- TVT_MAX_LVL = events.getProperty("MaxLevel", 80);
- TVT_REWARD_ID = events.getProperty("RewardId", new int[]
- {
- 57
- });
- TVT_REWARD_AMOUNT = events.getProperty("RewardAmount", new int[]
- {
- 100000
- });
- TVT_JOIN_TIME = events.getProperty("JoinTime", 5);
- TVT_EVENT_TIME = events.getProperty("EventTime", 15);
- TVT_MIN_PLAYERS = events.getProperty("MinPlayers", 1);
- TVT_MAX_PLAYERS = events.getProperty("MaxPlayers", 50);
- TVT_BLUE_TEAM_LOC = events.getProperty("BlueTeamLoc", new int[]
- {
- 150545,
- 46734,
- -3415
- });
- TVT_RED_TEAM_LOC = events.getProperty("RedTeamLoc", new int[]
- {
- 150545,
- 46734,
- -3415
- });
- // FloodProtector
- ExProperties security = load(FLOOD_FILE);
- loadFloodProtectorConfig(security, FLOOD_PROTECTOR_ROLL_DICE, "RollDice", "42");
- loadFloodProtectorConfig(security, FLOOD_PROTECTOR_HERO_VOICE, "HeroVoice", "100");
- loadFloodProtectorConfig(security, FLOOD_PROTECTOR_SUBCLASS, "Subclass", "20");
- loadFloodProtectorConfig(security, FLOOD_PROTECTOR_DROP_ITEM, "DropItem", "10");
- loadFloodProtectorConfig(security, FLOOD_PROTECTOR_SERVER_BYPASS, "ServerBypass", "5");
- loadFloodProtectorConfig(security, FLOOD_PROTECTOR_MULTISELL, "MultiSell", "1");
- loadFloodProtectorConfig(security, FLOOD_PROTECTOR_MANUFACTURE, "Manufacture", "3");
- loadFloodProtectorConfig(security, FLOOD_PROTECTOR_MANOR, "Manor", "30");
- loadFloodProtectorConfig(security, FLOOD_PROTECTOR_SENDMAIL, "SendMail", "100");
- loadFloodProtectorConfig(security, FLOOD_PROTECTOR_CHARACTER_SELECT, "CharacterSelect", "30");
- ExProperties protections = load(PROTECT_FILE);
- ENABLE_DEPOSIT_PROTECT = Boolean.parseBoolean(protections.getProperty("EnableDepositProtection", "false"));
- NON_DEPOSIT_ITEMS = protections.getProperty("ListNonDepositItems");
- NOT_DEPOSITABLE_ITEMS = new ArrayList<>();
- for (String id : NON_DEPOSIT_ITEMS.split(","))
- {
- NOT_DEPOSITABLE_ITEMS.add(Integer.parseInt(id));
- }
- ENABLE_PASSKEY = protections.getProperty("EnablePasskey", true);
- ALLOW_SEQURITY_QUE = protections.getProperty("AllowSecurityQuestion", false);
- SECURITY_QUE_TIME = protections.getProperty("SecurityTime", 20);
- ALLOW_ANTI_AFK = protections.getProperty("AllowAntiAfk", false);
- MINUTES_AFK_PLAYERS = protections.getProperty("AntiAfkMinutes", 20);
- ALLOW_PRIVATE_ANTI_BOT = protections.getProperty("AllowPrivateAntiBot", false);
- ENCHANT_BOT_CHANCE = protections.getProperty("PrivateBotChance", 15);
- // HexID
- ExProperties hexid = load(HEXID_FILE);
- SERVER_ID = Integer.parseInt(hexid.getProperty("ServerID"));
- HEX_ID = new BigInteger(hexid.getProperty("HexID"), 16).toByteArray();
- // Champions config
- ExProperties champions = load(CHAMPIONS_FILE);
- CHAMPION_ADENAS_REWARDS_BLUE = champions.getProperty("ChampionAdenasRewardsBlue", 1);
- CHAMPION_ADENAS_REWARDS_RED = champions.getProperty("ChampionAdenasRewardsRed", 2);
- CHAMPION_ENABLE = champions.getProperty("ChampionEnable", false);
- CHAMPION_EXP_SP_BLUE = champions.getProperty("ChampionExpSpBlue", 2);
- CHAMPION_EXP_SP_RED = champions.getProperty("ChampionExpSpRed", 4);
- CHAMPION_FREQUENCY_BLUE = champions.getProperty("ChampionFrequencyBlue", 0);
- CHAMPION_FREQUENCY_RED = champions.getProperty("ChampionFrequencyRed", 0);
- CHAMPION_HP_BLUE = champions.getProperty("ChampionHpBlue", 8);
- CHAMPION_HP_RED = champions.getProperty("ChampionHpRed", 16);
- CHAMPION_HP_REGEN_BLUE = champions.getProperty("ChampionHpRegenBlue", 1);
- CHAMPION_HP_REGEN_RED = champions.getProperty("ChampionHpRegenRed", 2);
- CHAMPION_MATK_BLUE = champions.getProperty("ChampionMagicAttackBlue", 1);
- CHAMPION_MATK_RED = champions.getProperty("ChampionMagicAttackRed", 2);
- CHAMPION_MAX_LVL_BLUE = champions.getProperty("ChampionMaxLevelBlue", 70);
- CHAMPION_MAX_LVL_RED = champions.getProperty("ChampionMaxLevelRed", 70);
- CHAMPION_MCRT_RATE_BLUE = champions.getProperty("ChampionMagicCriticalRateBlue", 1);
- CHAMPION_MCRT_RATE_RED = champions.getProperty("ChampionMagicCriticalRateRed", 2);
- CHAMPION_MDEF_BLUE = champions.getProperty("ChampionMagicDefenceBlue", 1);
- CHAMPION_MDEF_RED = champions.getProperty("ChampionMagicDefenceRed", 2);
- CHAMPION_MIN_LVL_BLUE = champions.getProperty("ChampionMinLevelBlue", 20);
- CHAMPION_MIN_LVL_RED = champions.getProperty("ChampionMinLevelRed", 20);
- CHAMPION_PATK_BLUE = champions.getProperty("ChampionAtkBlue", 1);
- CHAMPION_PATK_RED = champions.getProperty("ChampionAtkRed", 2);
- CHAMPION_PCRT_RATE_BLUE = champions.getProperty("ChampionPhysicalCriticalRateBlue", 1);
- CHAMPION_PCRT_RATE_RED = champions.getProperty("ChampionPhysicalCriticalRateRed", 2);
- CHAMPION_PDEF_BLUE = champions.getProperty("ChampionPhysicalDefenceBlue", 1);
- CHAMPION_PDEF_RED = champions.getProperty("ChampionPhysicalDefenceRed", 2);
- CHAMPION_REWARD_BLUE = champions.getProperty("ChampionRewardItemBlue", 0);
- CHAMPION_REWARD_ID_BLUE = champions.getProperty("ChampionRewardItemIDBlue", 6393);
- CHAMPION_REWARD_ID_RED = champions.getProperty("ChampionRewardItemIDRed", 6393);
- CHAMPION_REWARD_QTY_BLUE = champions.getProperty("ChampionRewardItemQtyBlue", 1);
- CHAMPION_REWARD_QTY_RED = champions.getProperty("ChampionRewardItemQtyRed", 2);
- CHAMPION_REWARD_RED = champions.getProperty("ChampionRewardItemRed", 0);
- CHAMPION_REWARDS_BLUE = champions.getProperty("ChampionRewardsBlue", 8);
- CHAMPION_REWARDS_RED = champions.getProperty("ChampionRewardsRed", 16);
- CHAMPION_RUN_BLUE = champions.getProperty("ChampionRunBlue", 1);
- CHAMPION_RUN_RED = champions.getProperty("ChampionRunRed", 2);
- CHAMPION_SPD_ATK_BLUE = champions.getProperty("ChampionSpdAtkBlue", 1);
- CHAMPION_SPD_ATK_RED = champions.getProperty("ChampionSpdAtkRed", 2);
- CHAMPION_SPD_MATK_BLUE = champions.getProperty("ChampionCastSpeedBlue", 1);
- CHAMPION_SPD_MATK_RED = champions.getProperty("ChampionCastSpeedRed", 2);
- CHAMPION_TITLE_BLUE = champions.getProperty("ChampionTitleBlue", "Easy Champ");
- CHAMPION_TITLE_RED = champions.getProperty("ChampionTitleRed", "Hard Champ");
- CHAMPION_WALK_BLUE = champions.getProperty("ChampionWalkBlue", 1);
- CHAMPION_WALK_RED = champions.getProperty("ChampionWalkRed", 2);
- //NPCS Config
- ExProperties npcs = load(NPCS_FILE);
- ALLOW_CLASS_MASTERS = npcs.getProperty("AllowClassMasters", false);
- ALLOW_ENTIRE_TREE = npcs.getProperty("AllowEntireTree", false);
- if (ALLOW_CLASS_MASTERS)
- {
- CLASS_MASTER_SETTINGS = new ClassMasterSettings(npcs.getProperty("ConfigClassMaster"));
- }
- ANNOUNCE_MAMMON_SPAWN = npcs.getProperty("AnnounceMammonSpawn", true);
- ALT_MOB_AGRO_IN_PEACEZONE = npcs.getProperty("AltMobAgroInPeaceZone", true);
- SHOW_NPC_LVL = npcs.getProperty("ShowNpcLevel", false);
- SHOW_NPC_CREST = npcs.getProperty("ShowNpcCrest", false);
- SHOW_SUMMON_CREST = npcs.getProperty("ShowSummonCrest", false);
- WAIT_TIME_FRINTEZZA = npcs.getProperty("FrintezzaWaitTime", 1) * 60000;
- WYVERN_ALLOW_UPGRADER = npcs.getProperty("AllowWyvernUpgrader", true);
- WYVERN_REQUIRED_LEVEL = npcs.getProperty("RequiredStriderLevel", 55);
- WYVERN_REQUIRED_CRYSTALS = npcs.getProperty("RequiredCrystalsNumber", 10);
- GUARD_ATTACK_AGGRO_MOB = npcs.getProperty("GuardAttackAggroMob", false);
- MAX_DRIFT_RANGE = npcs.getProperty("MaxDriftRange", 300);
- KNOWNLIST_UPDATE_INTERVAL = npcs.getProperty("KnownListUpdateInterval", 1250);
- MIN_NPC_ANIMATION = npcs.getProperty("MinNPCAnimation", 20);
- MAX_NPC_ANIMATION = npcs.getProperty("MaxNPCAnimation", 40);
- MIN_MONSTER_ANIMATION = npcs.getProperty("MinMonsterAnimation", 10);
- MAX_MONSTER_ANIMATION = npcs.getProperty("MaxMonsterAnimation", 40);
- RAID_RANGE_CHECK = npcs.getProperty("RaidRangeCheck", false);
- RAID_REVIVE_HP = npcs.getProperty("RaidReviveHpMp", false);
- RAID_RANGE_VALUE = npcs.getProperty("RaidRangeMaxValue", 350);
- GRIDS_ALWAYS_ON = npcs.getProperty("GridsAlwaysOn", false);
- GRID_NEIGHBOR_TURNON_TIME = npcs.getProperty("GridNeighborTurnOnTime", 1);
- GRID_NEIGHBOR_TURNOFF_TIME = npcs.getProperty("GridNeighborTurnOffTime", 90);
- RAID_HP_REGEN_MULTIPLIER = npcs.getProperty("RaidHpRegenMultiplier", 1.);
- RAID_MP_REGEN_MULTIPLIER = npcs.getProperty("RaidMpRegenMultiplier", 1.);
- RAID_DEFENCE_MULTIPLIER = npcs.getProperty("RaidDefenceMultiplier", 1.);
- RAID_MINION_RESPAWN_TIMER = npcs.getProperty("RaidMinionRespawnTime", 300000);
- RAID_DISABLE_CURSE = npcs.getProperty("DisableRaidCurse", false);
- RAID_CHAOS_TIME = npcs.getProperty("RaidChaosTime", 30);
- GRAND_CHAOS_TIME = npcs.getProperty("GrandChaosTime", 30);
- MINION_CHAOS_TIME = npcs.getProperty("MinionChaosTime", 30);
- SPAWN_INTERVAL_AQ = npcs.getProperty("AntQueenSpawnInterval", 36);
- RANDOM_SPAWN_TIME_AQ = npcs.getProperty("AntQueenRandomSpawn", 17);
- SPAWN_INTERVAL_ANTHARAS = npcs.getProperty("AntharasSpawnInterval", 264);
- RANDOM_SPAWN_TIME_ANTHARAS = npcs.getProperty("AntharasRandomSpawn", 72);
- WAIT_TIME_ANTHARAS = npcs.getProperty("AntharasWaitTime", 30) * 60000;
- SPAWN_INTERVAL_BAIUM = npcs.getProperty("BaiumSpawnInterval", 168);
- RANDOM_SPAWN_TIME_BAIUM = npcs.getProperty("BaiumRandomSpawn", 48);
- SPAWN_INTERVAL_CORE = npcs.getProperty("CoreSpawnInterval", 60);
- RANDOM_SPAWN_TIME_CORE = npcs.getProperty("CoreRandomSpawn", 23);
- SPAWN_INTERVAL_FRINTEZZA = npcs.getProperty("FrintezzaSpawnInterval", 48);
- RANDOM_SPAWN_TIME_FRINTEZZA = npcs.getProperty("FrintezzaRandomSpawn", 8);
- SPAWN_INTERVAL_ORFEN = npcs.getProperty("OrfenSpawnInterval", 48);
- RANDOM_SPAWN_TIME_ORFEN = npcs.getProperty("OrfenRandomSpawn", 20);
- SPAWN_INTERVAL_SAILREN = npcs.getProperty("SailrenSpawnInterval", 36);
- RANDOM_SPAWN_TIME_SAILREN = npcs.getProperty("SailrenRandomSpawn", 24);
- WAIT_TIME_SAILREN = npcs.getProperty("SailrenWaitTime", 5) * 60000;
- SPAWN_INTERVAL_VALAKAS = npcs.getProperty("ValakasSpawnInterval", 264);
- RANDOM_SPAWN_TIME_VALAKAS = npcs.getProperty("ValakasRandomSpawn", 72);
- WAIT_TIME_VALAKAS = npcs.getProperty("ValakasWaitTime", 30) * 60000;
- SPAWN_INTERVAL_ZAKEN = npcs.getProperty("ZakenSpawnInterval", 60);
- RANDOM_SPAWN_TIME_ZAKEN = npcs.getProperty("ZakenRandomSpawn", 20);
- ZAKEN_MAX_ENTRY_LEVEL = npcs.getProperty("ZakenMaxEntryLevel", 69);
- // Enchant config
- ExProperties enchant = load(ENCHANT_FILE);
- ENCHANT_CHANCE_WEAPON_MAGIC = enchant.getProperty("EnchantChanceMagicWeapon", 0.4);
- ENCHANT_CHANCE_WEAPON_MAGIC_15PLUS = enchant.getProperty("EnchantChanceMagicWeapon15Plus", 0.2);
- ENCHANT_CHANCE_WEAPON_NONMAGIC = enchant.getProperty("EnchantChanceNonMagicWeapon", 0.7);
- ENCHANT_CHANCE_WEAPON_NONMAGIC_15PLUS = enchant.getProperty("EnchantChanceNonMagicWeapon15Plus", 0.35);
- ENCHANT_CHANCE_ARMOR = enchant.getProperty("EnchantChanceArmor", 0.66);
- ENCHANT_MAX_WEAPON = enchant.getProperty("EnchantMaxWeapon", 0);
- ENCHANT_MAX_ARMOR = enchant.getProperty("EnchantMaxArmor", 0);
- ENCHANT_SAFE_MAX = enchant.getProperty("EnchantSafeMax", 3);
- ENCHANT_SAFE_MAX_FULL = enchant.getProperty("EnchantSafeMaxFull", 4);
- SCROLL_STACKABLE = enchant.getProperty("ScrollStackable", false);
- ENCHANT_FAILED_VALUE = enchant.getProperty("EnchantFailedValue", 0);
- // Augmentation config
- ExProperties augmentation = load(AUGMENT_FILE);
- AUGMENTATION_NG_SKILL_CHANCE = augmentation.getProperty("AugmentationNGSkillChance", 15);
- AUGMENTATION_NG_GLOW_CHANCE = augmentation.getProperty("AugmentationNGGlowChance", 0);
- AUGMENTATION_MID_SKILL_CHANCE = augmentation.getProperty("AugmentationMidSkillChance", 30);
- AUGMENTATION_MID_GLOW_CHANCE = augmentation.getProperty("AugmentationMidGlowChance", 40);
- AUGMENTATION_HIGH_SKILL_CHANCE = augmentation.getProperty("AugmentationHighSkillChance", 45);
- AUGMENTATION_HIGH_GLOW_CHANCE = augmentation.getProperty("AugmentationHighGlowChance", 70);
- AUGMENTATION_TOP_SKILL_CHANCE = augmentation.getProperty("AugmentationTopSkillChance", 60);
- AUGMENTATION_TOP_GLOW_CHANCE = augmentation.getProperty("AugmentationTopGlowChance", 100);
- AUGMENTATION_BASESTAT_CHANCE = augmentation.getProperty("AugmentationBaseStatChance", 1);
- REMOVE_AUGMENTATION_EFFECT = augmentation.getProperty("RemoveAugmentationEffect", false);
- AUGMENT_AVAILABLE_TRADE = augmentation.getProperty("AugmentAvailableTrade", false);
- // Skills config
- ExProperties skills = load(SKILLS_FILE);
- AUTO_LEARN_SKILLS = skills.getProperty("AutoLearnSkills", false);
- ALT_GAME_MAGICFAILURES = skills.getProperty("MagicFailures", true);
- ALT_GAME_SHIELD_BLOCKS = skills.getProperty("AltShieldBlocks", false);
- ALT_PERFECT_SHLD_BLOCK = skills.getProperty("AltPerfectShieldBlockRate", 10);
- LIFE_CRYSTAL_NEEDED = skills.getProperty("LifeCrystalNeeded", true);
- SP_BOOK_NEEDED = skills.getProperty("SpBookNeeded", true);
- ES_SP_BOOK_NEEDED = skills.getProperty("EnchantSkillSpBookNeeded", true);
- DIVINE_SP_BOOK_NEEDED = skills.getProperty("DivineInspirationSpBookNeeded", true);
- HOT_DEBUFF_CLEANSE = skills.getProperty("HotSpringsDebuffsCleanse", true);
- ENABLE_MODIFY_SKILL_DURATION = skills.getProperty("EnableModifySkillDuration", false);
- BUFFS_MAX_AMOUNT = skills.getProperty("MaxBuffsAmount", 20);
- RANDOM_FEAR_MOVE = skills.getProperty("RandomFearMove", false);
- STRIDER_CAST_ALLOW = skills.getProperty("StriderCastAllow", "Disable");
- DEMONIC_SWORD_LEFT_SKILLS = skills.getProperty("DemonicLeftSkills", "Disable");
- STRIDER_CAST_SKILL_LIST = skills.getProperty("StriderCastSkillList", new Integer[0]);
- DEMONIC_SWORD_CAST_SKILL_LIST = skills.getProperty("DemonicSwordCastSkillList", new Integer[0]);
- STORE_SKILL_COOLTIME = skills.getProperty("StoreSkillCooltime", true);
- NORMAL_BUFFS_TIME_MULTIPLIER = skills.getProperty("NormalBuffsTimeMultiplier", 1.0);
- CHANT_BUFFS_TIME_MULTIPLIER = skills.getProperty("ChantBuffsTimeMultiplier", 1.0);
- DANCE_BUFFS_TIME_MULTIPLIER = skills.getProperty("DanceBuffsTimeMultiplier", 1.0);
- SONG_BUFFS_TIME_MULTIPLIER = skills.getProperty("SongBuffsTimeMultiplier", 1.0);
- SPECIAL_BUFFS_TIME_MULTIPLIER = skills.getProperty("SpecialBuffsTimeMultiplier", 1.0);
- SUMMON_BUFFS_TIME_MULTIPLIER = skills.getProperty("SummonBuffsTimeMultiplier", 1.0);
- RESIST_BUFFS_TIME_MULTIPLIER = skills.getProperty("ResistBuffsTimeMultiplier", 1.0);
- PAAGRIO_BUFFS_TIME_MULTIPLIER = skills.getProperty("PaagrioBuffsTimeMultiplier", 1.0);
- if (ENABLE_MODIFY_SKILL_DURATION)
- {
- SKILL_DURATION_LIST = new HashMap<>();
- String[] propertySplit;
- propertySplit = skills.getProperty("SkillDurationList", "").split(";");
- for (String skill : propertySplit)
- {
- String[] skillSplit = skill.split(",");
- if (skillSplit.length != 2)
- {
- _log.warn("[SkillDurationList]: invalid config property -> SkillDurationList \"" + skill + "\"");
- }
- else
- {
- try
- {
- SKILL_DURATION_LIST.put(Integer.parseInt(skillSplit[0]), Integer.parseInt(skillSplit[1]));
- }
- catch (NumberFormatException nfe)
- {
- if (!skill.equals(""))
- {
- _log.warn("[SkillDurationList]: invalid config property -> SkillList \"" + skillSplit[0] + "\"" + skillSplit[1]);
- }
- }
- }
- }
- }
- // rates
- ExProperties rates = load(RATES_FILE);
- RATE_XP = rates.getProperty("RateXp", 1.);
- RATE_SP = rates.getProperty("RateSp", 1.);
- RATE_PARTY_XP = rates.getProperty("RatePartyXp", 1.);
- RATE_PARTY_SP = rates.getProperty("RatePartySp", 1.);
- RATE_DROP_ADENA = rates.getProperty("RateDropAdena", 1.);
- RATE_CONSUMABLE_COST = rates.getProperty("RateConsumableCost", 1.);
- RATE_DROP_ITEMS = rates.getProperty("RateDropItems", 1.);
- RATE_DROP_ITEMS_BY_RAID = rates.getProperty("RateRaidDropItems", 1.);
- RATE_DROP_ITEMS_BY_GRAND_RAID = rates.getProperty("RateGrandRaidItems", 1.);
- RATE_DROP_SPOIL = rates.getProperty("RateDropSpoil", 1.);
- RATE_DROP_MANOR = rates.getProperty("RateDropManor", 1);
- RATE_QUEST_DROP = rates.getProperty("RateQuestDrop", 1.);
- RATE_QUEST_REWARD = rates.getProperty("RateQuestReward", 1.);
- RATE_QUEST_REWARD_XP = rates.getProperty("RateQuestRewardXP", 1.);
- RATE_QUEST_REWARD_SP = rates.getProperty("RateQuestRewardSP", 1.);
- RATE_QUEST_REWARD_ADENA = rates.getProperty("RateQuestRewardAdena", 1.);
- RATE_KARMA_EXP_LOST = rates.getProperty("RateKarmaExpLost", 1.);
- RATE_SIEGE_GUARDS_PRICE = rates.getProperty("RateSiegeGuardsPrice", 1.);
- RATE_DROP_COMMON_HERBS = rates.getProperty("RateCommonHerbs", 1.);
- RATE_DROP_HP_HERBS = rates.getProperty("RateHpHerbs", 1.);
- RATE_DROP_MP_HERBS = rates.getProperty("RateMpHerbs", 1.);
- RATE_DROP_SPECIAL_HERBS = rates.getProperty("RateSpecialHerbs", 1.);
- PLAYER_DROP_LIMIT = rates.getProperty("PlayerDropLimit", 3);
- PLAYER_RATE_DROP = rates.getProperty("PlayerRateDrop", 5);
- PLAYER_RATE_DROP_ITEM = rates.getProperty("PlayerRateDropItem", 70);
- PLAYER_RATE_DROP_EQUIP = rates.getProperty("PlayerRateDropEquip", 25);
- PLAYER_RATE_DROP_EQUIP_WEAPON = rates.getProperty("PlayerRateDropEquipWeapon", 5);
- PET_XP_RATE = rates.getProperty("PetXpRate", 1.);
- PET_FOOD_RATE = rates.getProperty("PetFoodRate", 1);
- SINEATER_XP_RATE = rates.getProperty("SinEaterXpRate", 1.);
- KARMA_DROP_LIMIT = rates.getProperty("KarmaDropLimit", 10);
- KARMA_RATE_DROP = rates.getProperty("KarmaRateDrop", 70);
- KARMA_RATE_DROP_ITEM = rates.getProperty("KarmaRateDropItem", 50);
- KARMA_RATE_DROP_EQUIP = rates.getProperty("KarmaRateDropEquip", 40);
- KARMA_RATE_DROP_EQUIP_WEAPON = rates.getProperty("KarmaRateDropEquipWeapon", 10);
- ExProperties servicessettings = load(SERVICES_FILE);
- NooblesEnabled = servicessettings.getProperty("NooblesEnabled", false);
- NoblItemId = servicessettings.getProperty("NoblItemId", 4037);
- NoblItemCount = servicessettings.getProperty("NoblItemCount", 1);
- HeroItemId = servicessettings.getProperty("HeroItemId", 4037);
- HeroService = new HashMap<>();
- String[] propertySplit = servicessettings.getProperty("HeroPrice", "").split(";");
- for (String data : propertySplit)
- {
- String[] dataSplit = data.split(",");
- if (dataSplit.length != 2)
- {
- _log.warn("[HeroPrice]: invalid config property -> HeroPrice \"" + data + "\"");
- }
- else
- {
- try
- {
- HeroService.put(Integer.valueOf(Integer.parseInt(dataSplit[0])), Integer.valueOf(Integer.parseInt(dataSplit[1])));
- }
- catch (NumberFormatException nfe)
- {
- if (!data.equals(""))
- {
- _log.warn("[HeroPrice]: invalid config property -> PriceList \"" + dataSplit[0] + "\"" + dataSplit[1]);
- }
- }
- }
- }
- GenderEnabled = servicessettings.getProperty("GenderEnabled", false);
- GenderItemId = servicessettings.getProperty("GenderItemId", 4037);
- GenderItemCount = servicessettings.getProperty("GenderItemCount", 1);
- NullPkEnabled = servicessettings.getProperty("NullPkEnabled", false);
- NullPkItemId = servicessettings.getProperty("NullPkItemId", 4037);
- NullPkItemCount = servicessettings.getProperty("NullPkItemCount", 1);
- ClanLvl6Enabled = servicessettings.getProperty("ClanLvl6Enabled", false);
- ClanLvl6ItemId = servicessettings.getProperty("ClanLvl6ItemId", 4037);
- ClanLvl6ItemCount = servicessettings.getProperty("ClanLvl6ItemCount", 1);
- ClanLvl7Enabled = servicessettings.getProperty("ClanLvl7Enabled", false);
- ClanLvl7ItemId = servicessettings.getProperty("ClanLvl7ItemId", 4037);
- ClanLvl7ItemCount = servicessettings.getProperty("ClanLvl7ItemCount", 1);
- ClanLvl8Enabled = servicessettings.getProperty("ClanLvl8Enabled", false);
- ClanLvl8ItemId = servicessettings.getProperty("ClanLvl8ItemId", 4037);
- ClanLvl8ItemCount = servicessettings.getProperty("ClanLvl8ItemCount", 1);
- ClanSkillEnabled = servicessettings.getProperty("ClanSkillEnabled", false);
- ClanSkillItemId = servicessettings.getProperty("ClanSkillItemId", 4037);
- ClanSkillItemCount = servicessettings.getProperty("ClanSkillItemCount", 1);
- ClanRepEnabled = servicessettings.getProperty("ClanRepEnabled", false);
- ClanRepItemId = servicessettings.getProperty("ClanRepItemId", 4037);
- ClanRepItemCount = servicessettings.getProperty("ClanRepItemCount", 1);
- ClanRepCount = servicessettings.getProperty("ClanRepCount", 10000);
- ChangeNameItemId = servicessettings.getProperty("ChangeNameItemId", 4037);
- ChangeNameItemCount = servicessettings.getProperty("ChangeNameItemCount", 1);
- ChangeNamePattern = servicessettings.getProperty("ChangeNamePattern", ".*");
- ChangeNameColorItemId = servicessettings.getProperty("ChangeNameColorItemId", 4037);
- ChangeNameColorItemCount = servicessettings.getProperty("ChangeNameColorItemCount", 1);
- ChangeTitleColorItemId = servicessettings.getProperty("ChangeTitleColorItemId", 4037);
- ChangeTitleColorItemCount = servicessettings.getProperty("ChangeTitleColorItemCount", 1);
- LevelUpEnabled = servicessettings.getProperty("LevelUpEnabled", false);
- LevelUpItemId = servicessettings.getProperty("LevelUpItemId", 57);
- LevelUpItemCount = servicessettings.getProperty("LevelUpItemCount", 1);
- LevelUpAdd = servicessettings.getProperty("LevelUpAdd", 1);
- LevelUpMinLevel = servicessettings.getProperty("LevelUpMinLevel", 1);
- LevelUpMaxLevel = servicessettings.getProperty("LevelUpMaxLevel", 81);
- DelevelEnabled = servicessettings.getProperty("DelevelEnabled", false);
- DelevelItemId = servicessettings.getProperty("DelevelItemId", 57);
- DelevelItemCount = servicessettings.getProperty("DelevelItemCount", 1);
- DelevelLvl = servicessettings.getProperty("DelevelLvl", 1);
- DelevelMinLevel = servicessettings.getProperty("DelevelMinLevel", 40);
- L2TOPDEMON_ENABLED = servicessettings.getProperty("L2TopDeamonEnabled", false);
- L2TOPDEMON_URL = servicessettings.getProperty("L2TopDeamonURL", "");
- L2TOPDEMON_POLLINTERVAL = servicessettings.getProperty("L2TopDeamonPollInterval", 5);
- L2TOPDEMON_PREFIX = servicessettings.getProperty("L2TopDeamonPrefix", "");
- L2TOPDEMON_ITEM = servicessettings.getProperty("L2TopDeamonRewardItem", 0);
- L2TOPDEMON_MESSAGE = servicessettings.getProperty("L2TopDeamonMessage", "");
- L2TOPDEMON_MIN = servicessettings.getProperty("L2TopDeamonMin", 1);
- L2TOPDEMON_MAX = servicessettings.getProperty("L2TopDeamonMax", 1);
- L2TOPDEMON_IGNOREFIRST = servicessettings.getProperty("L2TopDeamonDoNotRewardAtFirstTime", false);
- MMOTopEnable = servicessettings.getProperty("MMOTopEnable", false);
- MMOTopUrl = servicessettings.getProperty("MMOTopUrl", "");
- MMOTopRefreshTime = servicessettings.getProperty("MMOTopRefreshTime", 10);
- MMOTopRewardItemId = servicessettings.getProperty("MMOTopRewardItemId", 0);
- MMOTopRewardItemCount = servicessettings.getProperty("MMOTopRewardItemCount", 1);
- ENABLE_MENU = servicessettings.getProperty("AllowMenu", false);
- ALLOW_EXP = servicessettings.getProperty("AllowExpMenu", false);
- ALLOW_PM = servicessettings.getProperty("AllowPmMenu", false);
- ALLOW_TRADE = servicessettings.getProperty("AllowTradeMenu", false);
- ALLOW_LOOT = servicessettings.getProperty("AllowLootMenu", false);
- ALLOW_REPAIR = servicessettings.getProperty("AllowRepairMenu", false);
- ALLOW_IPBLOCK = servicessettings.getProperty("AllowIpBlockMenu", false);
- UP_ONLINE = servicessettings.getProperty("UpOnline", 0);
- OFFLINE_TRADE_ENABLE = servicessettings.getProperty("OfflineTradeEnable", false);
- OFFLINE_CRAFT_ENABLE = servicessettings.getProperty("OfflineCraftEnable", false);
- OFFLINE_SET_NAME_COLOR = servicessettings.getProperty("OfflineSetNameColor", false);
- OFFLINE_NAME_COLOR = Integer.decode("0x" + servicessettings.getProperty("OfflineNameColor", "808080"));
- OFFLINE_FAME = servicessettings.getProperty("OfflineFame", true);
- RESTORE_OFFLINERS = servicessettings.getProperty("RestoreOffliners", false);
- OFFLINE_MAX_DAYS = servicessettings.getProperty("OfflineMaxDays", 10);
- OFFLINE_DISCONNECT_FINISHED = servicessettings.getProperty("OfflineDisconnectFinished", true);
- OFFLINE_SLEEP_EFFECT = servicessettings.getProperty("OfflineSleepEffect", true);
- PREMIUM_ITEM_ENABLED = servicessettings.getProperty("PremiumItemEnabled", false);
- PREMIUM_FIRST_ITEM_BONUS = servicessettings.getProperty("PremiumFirstItemBonus", false);
- String[] array = servicessettings.getProperty("PremiumItemIds", "0").trim().split(";");
- final int premium_count = array.length;
- PREMIUM_ITEM_IDS = new int[premium_count];
- for (int i = 0; i < array.length; i++)
- {
- PREMIUM_ITEM_IDS[i] = Integer.parseInt(array[i]);
- }
- array = servicessettings.getProperty("PremiumItemTime", "7").trim().split(";");
- PREMIUM_ITEM_TIME = new int[premium_count];
- for (int i = 0; i < array.length; i++)
- {
- PREMIUM_ITEM_TIME[i] = Integer.parseInt(array[i]);
- }
- array = servicessettings.getProperty("PremiumItemXP", "1").trim().split(";");
- PREMIUM_ITEM_XP_MULTIPLIERS = new double[premium_count];
- for (int i = 0; i < array.length; i++)
- {
- PREMIUM_ITEM_XP_MULTIPLIERS[i] = Double.parseDouble(array[i]);
- }
- array = servicessettings.getProperty("PremiumItemSP", "1").trim().split(";");
- PREMIUM_ITEM_SP_MULTIPLIERS = new double[premium_count];
- for (int i = 0; i < array.length; i++)
- {
- PREMIUM_ITEM_SP_MULTIPLIERS[i] = Double.parseDouble(array[i]);
- }
- array = servicessettings.getProperty("PremiumItemPartyXP", "1").trim().split(";");
- PREMIUM_ITEM_PARTY_XP_MULTIPLIERS = new double[premium_count];
- for (int i = 0; i < array.length; i++)
- {
- PREMIUM_ITEM_PARTY_XP_MULTIPLIERS[i] = Double.parseDouble(array[i]);
- }
- array = servicessettings.getProperty("PremiumItemPartySP", "1").trim().split(";");
- PREMIUM_ITEM_PARTY_SP_MULTIPLIERS = new double[premium_count];
- for (int i = 0; i < array.length; i++)
- {
- PREMIUM_ITEM_PARTY_SP_MULTIPLIERS[i] = Double.parseDouble(array[i]);
- }
- array = servicessettings.getProperty("PremiumItemDropAdena", "1").trim().split(";");
- PREMIUM_ITEM_DROP_ADENA_MULTIPLIERS = new double[premium_count];
- for (int i = 0; i < array.length; i++)
- {
- PREMIUM_ITEM_DROP_ADENA_MULTIPLIERS[i] = Double.parseDouble(array[i]);
- }
- array = servicessettings.getProperty("PremiumItemDropItems", "1").trim().split(";");
- PREMIUM_ITEM_DROP_ITEMS_MULTIPLIERS = new double[premium_count];
- for (int i = 0; i < array.length; i++)
- {
- PREMIUM_ITEM_DROP_ITEMS_MULTIPLIERS[i] = Double.parseDouble(array[i]);
- }
- array = servicessettings.getProperty("PremiumItemDropSpoil", "1").trim().split(";");
- PREMIUM_ITEM_SPOIL_MULTIPLIERS = new double[premium_count];
- for (int i = 0; i < array.length; i++)
- {
- PREMIUM_ITEM_SPOIL_MULTIPLIERS[i] = Double.parseDouble(array[i]);
- }
- array = servicessettings.getProperty("PremiumItemQuests", "1").trim().split(";");
- PREMIUM_ITEM_QUEST_ITEMS_MULTIPLIERS = new double[premium_count];
- for (int i = 0; i < array.length; i++)
- {
- PREMIUM_ITEM_QUEST_ITEMS_MULTIPLIERS[i] = Double.parseDouble(array[i]);
- }
- array = servicessettings.getProperty("PremiumItemBuffs", "1").trim().split(";");
- PREMIUM_ITEM_BUFFS_TIME_MULTIPLIERS = new double[premium_count];
- for (int i = 0; i < array.length; i++)
- {
- PREMIUM_ITEM_BUFFS_TIME_MULTIPLIERS[i] = Double.parseDouble(array[i]);
- }
- array = servicessettings.getProperty("PremiumItemEnchantChance", "1").trim().split(";");
- PREMIUM_ITEM_ENCHANT_CHANCE_MULTIPLIERS = new double[premium_count];
- for (int i = 0; i < array.length; i++)
- {
- PREMIUM_ITEM_ENCHANT_CHANCE_MULTIPLIERS[i] = Double.parseDouble(array[i]);
- }
- array = servicessettings.getProperty("PremiumItemAugmentChance", "1").trim().split(";");
- PREMIUM_ITEM_AUGMENT_CHANCE_MULTIPLIERS = new double[premium_count];
- for (int i = 0; i < array.length; i++)
- {
- PREMIUM_ITEM_AUGMENT_CHANCE_MULTIPLIERS[i] = Double.parseDouble(array[i]);
- }
- array = servicessettings.getProperty("PremiumItemDropSealStones", "1").trim().split(";");
- PREMIUM_ITEM_DROP_SEAL_STONES_MULTIPLIERS = new double[premium_count];
- for (int i = 0; i < array.length; i++)
- {
- PREMIUM_ITEM_DROP_SEAL_STONES_MULTIPLIERS[i] = Double.parseDouble(array[i]);
- }
- ExProperties inventory = load(INVENTORY_FILE);
- AUTO_LOOT = inventory.getProperty("AutoLoot", false);
- AUTO_LOOT_HERBS = inventory.getProperty("AutoLootHerbs", false);
- AUTO_LOOT_RAID = inventory.getProperty("AutoLootRaid", false);
- STARTING_CUSTOM_ITEMS = inventory.getProperty("AllowStartingCustomItems", false);
- propertySplit = inventory.getProperty("StartingCustomItemsMage", "57,0").split(";");
- for (String reward : propertySplit)
- {
- String[] rewardSplit = reward.split(",");
- if (rewardSplit.length != 2)
- {
- _log.warn(StringUtil.concat("StartingCustomItemsMage[Config.load()]: invalid config property -> StartingCustomItemsMage \"", reward, "\""));
- }
- else
- {
- try
- {
- STARTING_CUSTOM_ITEMS_M.add(new int[]
- {
- Integer.parseInt(rewardSplit[0]),
- Integer.parseInt(rewardSplit[1])
- });
- }
- catch (NumberFormatException nfe)
- {
- if (!reward.isEmpty())
- {
- _log.warn(StringUtil.concat("StartingCustomItemsMage[Config.load()]: invalid config property -> StartingCustomItemsMage \"", reward, "\""));
- }
- }
- }
- }
- propertySplit = inventory.getProperty("StartingCustomItemsFighter", "57,0").split(";");
- for (String reward : propertySplit)
- {
- String[] rewardSplit = reward.split(",");
- if (rewardSplit.length != 2)
- {
- _log.warn(StringUtil.concat("StartingCustomItemsFighter[Config.load()]: invalid config property -> StartingCustomItemsFighter \"", reward, "\""));
- }
- else
- {
- try
- {
- STARTING_CUSTOM_ITEMS_F.add(new int[]
- {
- Integer.parseInt(rewardSplit[0]),
- Integer.parseInt(rewardSplit[1])
- });
- }
- catch (NumberFormatException nfe)
- {
- if (!reward.isEmpty())
- {
- _log.warn(StringUtil.concat("StartingCustomItemsFighter[Config.load()]: invalid config property -> StartingCustomItemsFighter \"", reward, "\""));
- }
- }
- }
- }
- STARTING_ADENA = inventory.getProperty("StartingAdena", 100);
- INVENTORY_MAXIMUM_NO_DWARF = inventory.getProperty("MaximumSlotsForNoDwarf", 80);
- INVENTORY_MAXIMUM_DWARF = inventory.getProperty("MaximumSlotsForDwarf", 100);
- INVENTORY_MAXIMUM_QUEST_ITEMS = inventory.getProperty("MaximumSlotsForQuestItems", 100);
- INVENTORY_MAXIMUM_PET = inventory.getProperty("MaximumSlotsForPet", 12);
- MAX_ITEM_IN_PACKET = Math.max(INVENTORY_MAXIMUM_NO_DWARF, INVENTORY_MAXIMUM_DWARF);
- ALT_WEIGHT_LIMIT = inventory.getProperty("AltWeightLimit", 1);
- WAREHOUSE_SLOTS_NO_DWARF = inventory.getProperty("MaximumWarehouseSlotsForNoDwarf", 100);
- WAREHOUSE_SLOTS_DWARF = inventory.getProperty("MaximumWarehouseSlotsForDwarf", 120);
- WAREHOUSE_SLOTS_CLAN = inventory.getProperty("MaximumWarehouseSlotsForClan", 150);
- FREIGHT_SLOTS = inventory.getProperty("MaximumFreightSlots", 20);
- ALT_GAME_FREIGHTS = inventory.getProperty("AltGameFreights", false);
- ALT_GAME_FREIGHT_PRICE = inventory.getProperty("AltGameFreightPrice", 1000);
- ExProperties admin = load(ADMIN_FILE);
- RESTRICTED_CHAR_NAMES = admin.getProperty("ListOfRestrictedCharNames", "DoctorQ");
- LIST_RESTRICTED_CHAR_NAMES = new ArrayList<>();
- for (String name : RESTRICTED_CHAR_NAMES.split(","))
- {
- LIST_RESTRICTED_CHAR_NAMES.add(name.toLowerCase());
- }
- EVERYBODY_HAS_ADMIN_RIGHTS = admin.getProperty("EverybodyHasAdminRights", false);
- MASTERACCESS_LEVEL = admin.getProperty("MasterAccessLevel", 127);
- MASTERACCESS_NAME_COLOR = Integer.decode(StringUtil.concat("0x", admin.getProperty("MasterNameColor", "00FF00")));
- MASTERACCESS_TITLE_COLOR = Integer.decode(StringUtil.concat("0x", admin.getProperty("MasterTitleColor", "00FF00")));
- GM_HERO_AURA = admin.getProperty("GMHeroAura", false);
- GM_STARTUP_INVULNERABLE = admin.getProperty("GMStartupInvulnerable", true);
- GM_STARTUP_INVISIBLE = admin.getProperty("GMStartupInvisible", true);
- GM_STARTUP_SILENCE = admin.getProperty("GMStartupSilence", true);
- GM_STARTUP_AUTO_LIST = admin.getProperty("GMStartupAutoList", true);
- PETITIONING_ALLOWED = admin.getProperty("PetitioningAllowed", true);
- MAX_PETITIONS_PER_PLAYER = admin.getProperty("MaxPetitionsPerPlayer", 5);
- MAX_PETITIONS_PENDING = admin.getProperty("MaxPetitionsPending", 25);
- // players
- ExProperties players = load(PLAYERS_FILE);
- ALLOW_NEW_CHAR_LEVEL = players.getProperty("NewCharLvlMod", false);
- NEW_CHAR_LEVEL = players.getProperty("NewCharLvl", 1);
- ALLOW_MOD_TITLE_NCHAR = players.getProperty("NewCharTitleMod", false);
- MOD_TITLE_NCHAR = players.getProperty("NewCharTitle", "Welcome");
- REGEX_CHAR_NAME = players.getProperty("RegexCharName", "[0-9A-Za-z]]{3,16}");
- REGEX_PET_NAME = players.getProperty("RegexPetName", "[0-9A-Za-z]]{3,16}");
- EFFECT_CANCELING = players.getProperty("CancelLesserEffect", true);
- HP_REGEN_MULTIPLIER = players.getProperty("HpRegenMultiplier", 1.);
- MP_REGEN_MULTIPLIER = players.getProperty("MpRegenMultiplier", 1.);
- CP_REGEN_MULTIPLIER = players.getProperty("CpRegenMultiplier", 1.);
- PLAYER_SPAWN_PROTECTION = players.getProperty("PlayerSpawnProtection", 0);
- PLAYER_SPAWN_PROTECTION_AURA = players.getProperty("PlayerSpawnProtectionAura", false);
- PLAYER_FAKEDEATH_UP_PROTECTION = players.getProperty("PlayerFakeDeathUpProtection", 0);
- RESPAWN_RESTORE_HP = players.getProperty("RespawnRestoreHP", 0.7);
- MAX_PVTSTORE_SLOTS_DWARF = players.getProperty("MaxPvtStoreSlotsDwarf", 5);
- MAX_PVTSTORE_SLOTS_OTHER = players.getProperty("MaxPvtStoreSlotsOther", 4);
- DEEPBLUE_DROP_RULES = players.getProperty("UseDeepBlueDropRules", true);
- ALT_GAME_DELEVEL = players.getProperty("Delevel", true);
- DEATH_PENALTY_CHANCE = players.getProperty("DeathPenaltyChance", 20);
- MAX_PATK_SPEED = Integer.parseInt(players.getProperty("MaxPAtkSpeed", "1400"));
- MAX_MATK_SPEED = Integer.parseInt(players.getProperty("MaxMAtkSpeed", "1600"));
- NEW_CHAR_IS_NOBLE = players.getProperty("NewCharIsNoble", false);
- CRUMA_MAX_LEVEL_ENTER = players.getProperty("CrumaMaxLevelEnter", 56);
- L2OFF_SHOTS = players.getProperty("OfflikeShots", false);
- KARMA_PLAYER_CAN_BE_KILLED_IN_PZ = players.getProperty("KarmaPlayerCanBeKilledInPeaceZone", false);
- KARMA_PLAYER_CAN_SHOP = players.getProperty("KarmaPlayerCanShop", true);
- KARMA_PLAYER_CAN_USE_GK = players.getProperty("KarmaPlayerCanUseGK", false);
- KARMA_PLAYER_CAN_TELEPORT = players.getProperty("KarmaPlayerCanTeleport", true);
- KARMA_PLAYER_CAN_TRADE = players.getProperty("KarmaPlayerCanTrade", true);
- KARMA_PLAYER_CAN_USE_WH = players.getProperty("KarmaPlayerCanUseWareHouse", true);
- KARMA_DROP_GM = players.getProperty("CanGMDropEquipment", false);
- KARMA_AWARD_PK_KILL = players.getProperty("AwardPKKillPVPPoint", true);
- KARMA_PK_LIMIT = players.getProperty("MinimumPKRequiredToDrop", 5);
- KARMA_NONDROPPABLE_PET_ITEMS = players.getProperty("ListOfPetItems", "2375,3500,3501,3502,4422,4423,4424,4425,6648,6649,6650");
- KARMA_NONDROPPABLE_ITEMS = players.getProperty("ListOfNonDroppableItemsForPK", "1147,425,1146,461,10,2368,7,6,2370,2369");
- array = KARMA_NONDROPPABLE_PET_ITEMS.split(",");
- KARMA_LIST_NONDROPPABLE_PET_ITEMS = new int[array.length];
- for (int i = 0; i < array.length; i++)
- {
- KARMA_LIST_NONDROPPABLE_PET_ITEMS[i] = Integer.parseInt(array[i]);
- }
- array = KARMA_NONDROPPABLE_ITEMS.split(",");
- KARMA_LIST_NONDROPPABLE_ITEMS = new int[array.length];
- for (int i = 0; i < array.length; i++)
- {
- KARMA_LIST_NONDROPPABLE_ITEMS[i] = Integer.parseInt(array[i]);
- }
- // sorting so binarySearch can be used later
- Arrays.sort(KARMA_LIST_NONDROPPABLE_PET_ITEMS);
- Arrays.sort(KARMA_LIST_NONDROPPABLE_ITEMS);
- PVP_NORMAL_TIME = players.getProperty("PvPVsNormalTime", 15000);
- PVP_PVP_TIME = players.getProperty("PvPVsPvPTime", 30000);
- PARTY_XP_CUTOFF_METHOD = players.getProperty("PartyXpCutoffMethod", "level");
- PARTY_XP_CUTOFF_PERCENT = players.getProperty("PartyXpCutoffPercent", 3.);
- PARTY_XP_CUTOFF_LEVEL = players.getProperty("PartyXpCutoffLevel", 20);
- ALT_PARTY_RANGE = players.getProperty("AltPartyRange", 1600);
- ALT_PARTY_RANGE2 = players.getProperty("AltPartyRange2", 1400);
- ALT_LEAVE_PARTY_LEADER = players.getProperty("AltLeavePartyLeader", false);
- REMOVE_EFFECTS_AFTER_DEATH = players.getProperty("RemoveEffectsAfterDeath", true);
- IS_CRAFTING_ENABLED = players.getProperty("CraftingEnabled", true);
- DWARF_RECIPE_LIMIT = players.getProperty("DwarfRecipeLimit", 50);
- COMMON_RECIPE_LIMIT = players.getProperty("CommonRecipeLimit", 50);
- ALT_BLACKSMITH_USE_RECIPES = players.getProperty("AltBlacksmithUseRecipes", true);
- ExProperties customssettings = load(CUSTOMS_FILE);
- UNLIM_SHOTS = customssettings.getProperty("DontUseShots", false);
- UNLIMITED_ARROWS = customssettings.getProperty("DontUseArrows", false);
- ENABLE_CHANGE_PSWD = customssettings.getProperty("ChangePassword", false);
- PSWD_LEGHT_MIN = customssettings.getProperty("PasswordMinLeght", 4);
- PSWD_LEGHT_MAX = customssettings.getProperty("PasswordMaxLeght", 30);
- ENABLE_CLAN_REP_ITEM = customssettings.getProperty("ClanRepItem", false);
- CLAN_REP_COUNT = customssettings.getProperty("ClanReputationCount", 1000);
- ALT_SUBCLASS_MAX_SUB_COUNT = customssettings.getProperty("AltSubclassMaxSubCount", 3);
- ALT_SUBCLASS_WITH_CUSTOM_ITEM = customssettings.getProperty("AltSubclassWithCustomItem", false);
- ALT_SUBCLASS_WITH_CUSTOM_ITEM_ID = customssettings.getProperty("AltSubclassWithCustomItemId", 6319);
- ALT_SUBCLASS_WITH_CUSTOM_ITEM_COUNT = customssettings.getProperty("AltSubclassWithCustomItemCount", 1);
- ALT_SUBCLASS_WITH_ITEM_AND_NO_QUEST = customssettings.getProperty("AltSubclassWithItemAndNoQuest", false);
- ALT_SUBCLASS_WITHOUT_QUESTS = customssettings.getProperty("AltSubclassWithoutQuests", false);
- ALT_NOBLE_ON_BARAKIEL_KILL = customssettings.getProperty("AltNobleOnBarakielKill", false);
- ALT_SUB_ON_CUSTOM_RAID_KILL = customssettings.getProperty("AltSubOnCustomRaidKill", false);
- BUFF_CUSTOM_LEVELS = customssettings.getProperty("BuffCustomLevels", false);
- BUFF_MIN_LEVEL = customssettings.getProperty("BuffMinLevel", 7);
- BUFF_MAX_LEVEL = customssettings.getProperty("BuffMaxLevel", 25);
- ALT_SUB_RAID_IDS = customssettings.getProperty("AltSubRaidId", "25035,25220,25126,25054");
- ALT_SUB_LIST_RAID_IDS = new ArrayList<>();
- for (String obj : ALT_SUB_RAID_IDS.split(","))
- {
- ALT_SUB_LIST_RAID_IDS.add(Integer.parseInt(obj));
- }
- // Alt Settings config
- ExProperties altsettings = load(ALTSETTINGS_FILE);
- JAIL_IS_PVP = altsettings.getProperty("JailIsPvp", true);
- DEFAULT_PUNISH = altsettings.getProperty("DefaultPunish", 2);
- DEFAULT_PUNISH_PARAM = altsettings.getProperty("DefaultPunishParam", 0);
- DEFAULT_GLOBAL_CHAT = altsettings.getProperty("GlobalChat", "ON");
- DEFAULT_TRADE_CHAT = altsettings.getProperty("TradeChat", "ON");
- CHAT_ALL_LEVEL = altsettings.getProperty("AllChatLevel", 1);
- CHAT_TELL_LEVEL = altsettings.getProperty("TellChatLevel", 1);
- CHAT_SHOUT_LEVEL = altsettings.getProperty("ShoutChatLevel", 1);
- CHAT_TRADE_LEVEL = altsettings.getProperty("TradeChatLevel", 1);
- ZONE_TOWN = altsettings.getProperty("ZoneTown", 0);
- SERVER_NEWS = altsettings.getProperty("ShowServerNews", false);
- DISABLE_TUTORIAL = altsettings.getProperty("DisableTutorial", false);
- NIGHT_GK = altsettings.getProperty("NightGk", false);
- GK_FREE_TELEPORT_LEVEL = altsettings.getProperty("GkFree", 40);
- ALT_GAME_FREE_TELEPORT = altsettings.getProperty("AltFreeTeleporting", false);
- NOBLE_TELEPORT_FOR_ALL = altsettings.getProperty("AllowNobleTPToAll", false);
- PET_CAN_FEEL_HUNGRY = altsettings.getProperty("PetCanFeelHungry", true);
- SKILLS_CAST_TIME_MIN = altsettings.getProperty("SkillsCastTimeMin", 500);
- CHAR_CUSTOM_START_POINT = altsettings.getProperty("CharCustomStartPoint", false);
- if (CHAR_CUSTOM_START_POINT)
- {
- for (Map.Entry<String, HashMap<String, Integer[]>> mapItem : CUSTOM_START_POINT_HOLDER.entrySet())
- {
- for (String pointsInfo : altsettings.getProperty(mapItem.getKey(), "").split(";"))
- {
- if (pointsInfo.length() == 0)
- {
- continue;
- }
- final String[] parseInfo = pointsInfo.split(",");
- if (parseInfo.length < 4)
- {
- continue;
- }
- try
- {
- mapItem.getValue().put(parseInfo[0].equalsIgnoreCase("fighter") ? "Fighter" : "Mage", new Integer[]
- {
- Integer.parseInt(parseInfo[1]),
- Integer.parseInt(parseInfo[2]),
- Integer.parseInt(parseInfo[3])
- } //spawn coord: x,y,z
- );
- }
- catch (Exception ex)
- {
- _log.warn("CharCustomStartPoint [Config.load()]: invalid config property -> null string");
- }
- }
- }
- }
- // GeoData config
- ExProperties geodata = load(GEODATA_FILE);
- COORD_SYNCHRONIZE = geodata.getProperty("CoordSynchronize", -1);
- GEODATA = geodata.getProperty("GeoData", 0);
- FORCE_GEODATA = geodata.getProperty("ForceGeoData", true);
- GEODATA_CELLFINDING = geodata.getProperty("CellPathFinding", false);
- PATHFIND_BUFFERS = geodata.getProperty("PathFindBuffers", "100x6;128x6;192x6;256x4;320x4;384x4;500x2");
- LOW_WEIGHT = geodata.getProperty("LowWeight", 0.5);
- MEDIUM_WEIGHT = geodata.getProperty("MediumWeight", 2);
- HIGH_WEIGHT = geodata.getProperty("HighWeight", 3);
- ADVANCED_DIAGONAL_STRATEGY = geodata.getProperty("AdvancedDiagonalStrategy", true);
- DIAGONAL_WEIGHT = geodata.getProperty("DiagonalWeight", 0.707);
- MAX_POSTFILTER_PASSES = geodata.getProperty("MaxPostfilterPasses", 3);
- DEBUG_PATH = geodata.getProperty("DebugPath", false);
- // server
- ExProperties server = load(SERVER_FILE);
- GAMESERVER_HOSTNAME = server.getProperty("GameserverHostname");
- PORT_GAME = server.getProperty("GameserverPort", 7777);
- EXTERNAL_HOSTNAME = server.getProperty("ExternalHostname", "*");
- INTERNAL_HOSTNAME = server.getProperty("InternalHostname", "*");
- GAME_SERVER_LOGIN_PORT = server.getProperty("LoginPort", 9014);
- GAME_SERVER_LOGIN_HOST = server.getProperty("LoginHost", "127.0.0.1");
- REQUEST_ID = server.getProperty("RequestServerID", 0);
- ACCEPT_ALTERNATE_ID = server.getProperty("AcceptAlternateID", true);
- SERVER_LIST_BRACKET = server.getProperty("ServerListBrackets", false);
- SERVER_LIST_CLOCK = server.getProperty("ServerListClock", false);
- SERVER_GMONLY = server.getProperty("ServerGMOnly", false);
- TEST_SERVER = server.getProperty("TestServer", false);
- SERVER_LIST_TESTSERVER = server.getProperty("TestServer", false);
- DELETE_DAYS = server.getProperty("DeleteCharAfterDays", 7);
- MAXIMUM_ONLINE_USERS = server.getProperty("MaximumOnlineUsers", 100);
- MIN_PROTOCOL_REVISION = server.getProperty("MinProtocolRevision", 730);
- MAX_PROTOCOL_REVISION = server.getProperty("MaxProtocolRevision", 746);
- if (MIN_PROTOCOL_REVISION > MAX_PROTOCOL_REVISION)
- {
- throw new Error("MinProtocolRevision is bigger than MaxProtocolRevision in server.properties.");
- }
- ALLOW_DISCARDITEM = server.getProperty("AllowDiscardItem", true);
- MULTIPLE_ITEM_DROP = server.getProperty("MultipleItemDrop", true);
- AUTODESTROY_ITEM_AFTER = server.getProperty("AutoDestroyDroppedItemAfter", 0);
- HERB_AUTO_DESTROY_TIME = server.getProperty("AutoDestroyHerbTime", 15) * 1000;
- ITEM_AUTO_DESTROY_TIME = server.getProperty("AutoDestroyItemTime", 0) * 1000;
- PROTECTED_ITEMS = server.getProperty("ListOfProtectedItems");
- LIST_PROTECTED_ITEMS = new ArrayList<>();
- for (String id : PROTECTED_ITEMS.split(","))
- {
- LIST_PROTECTED_ITEMS.add(Integer.parseInt(id));
- }
- DESTROY_DROPPED_PLAYER_ITEM = server.getProperty("DestroyPlayerDroppedItem", false);
- DESTROY_EQUIPABLE_PLAYER_ITEM = server.getProperty("DestroyEquipableItem", false);
- SAVE_DROPPED_ITEM = server.getProperty("SaveDroppedItem", false);
- EMPTY_DROPPED_ITEM_TABLE_AFTER_LOAD = server.getProperty("EmptyDroppedItemTableAfterLoad", false);
- SAVE_DROPPED_ITEM_INTERVAL = server.getProperty("SaveDroppedItemInterval", 0) * 60000;
- CLEAR_DROPPED_ITEM_TABLE = server.getProperty("ClearDroppedItemTable", false);
- ALLOW_FREIGHT = server.getProperty("AllowFreight", true);
- ALLOW_WAREHOUSE = server.getProperty("AllowWarehouse", true);
- ALLOW_WEAR = server.getProperty("AllowWear", true);
- WEAR_DELAY = server.getProperty("WearDelay", 5);
- WEAR_PRICE = server.getProperty("WearPrice", 10);
- ALLOW_RACE = server.getProperty("AllowRace", true);
- ALLOW_WATER = server.getProperty("AllowWater", true);
- ALLOWFISHING = server.getProperty("AllowFishing", false);
- ALLOW_BOAT = server.getProperty("AllowBoat", true);
- ALLOW_CURSED_WEAPONS = server.getProperty("AllowCursedWeapons", true);
- String str = server.getProperty("EnableFallingDamage", "auto");
- ENABLE_FALLING_DAMAGE = "auto".equalsIgnoreCase(str) ? GEODATA > 0 : Boolean.parseBoolean(str);
- ALT_DEV_NO_SCRIPTS = server.getProperty("NoScripts", false);
- ALT_DEV_NO_SPAWNS = server.getProperty("NoSpawns", false);
- DEBUG = server.getProperty("Debug", false);
- DEVELOPER = server.getProperty("Developer", false);
- PACKET_HANDLER_DEBUG = server.getProperty("PacketHandlerDebug", false);
- DEADLOCK_DETECTOR = server.getProperty("DeadLockDetector", false);
- DEADLOCK_CHECK_INTERVAL = server.getProperty("DeadLockCheckInterval", 20);
- RESTART_ON_DEADLOCK = server.getProperty("RestartOnDeadlock", false);
- LOG_CHAT = server.getProperty("LogChat", false);
- LOG_ITEMS = server.getProperty("LogItems", false);
- GMAUDIT = server.getProperty("GMAudit", false);
- ENABLE_COMMUNITY_BOARD = server.getProperty("EnableCommunityBoard", false);
- BBS_DEFAULT = server.getProperty("BBSDefault", "_bbshome");
- L2WALKER_PROTECTION = server.getProperty("L2WalkerProtection", false);
- AUTODELETE_INVALID_QUEST_DATA = server.getProperty("AutoDeleteInvalidQuestData", false);
- GAMEGUARD_ENFORCE = server.getProperty("GameGuardEnforce", false);
- }
- else if (Server.serverMode == Server.MODE_LOGINSERVER)
- {
- _log.info("Loading loginserver configuration files.");
- ExProperties server = load(LOGIN_FILE);
- GAME_SERVER_LOGIN_HOST = server.getProperty("LoginHostname", "*");
- GAME_SERVER_LOGIN_PORT = server.getProperty("LoginPort", 9013);
- LOGIN_BIND_ADDRESS = server.getProperty("LoginserverHostname", "*");
- PORT_LOGIN = server.getProperty("LoginserverPort", 2106);
- DEBUG = server.getProperty("Debug", false);
- DEVELOPER = server.getProperty("Developer", false);
- PACKET_HANDLER_DEBUG = server.getProperty("PacketHandlerDebug", false);
- ACCEPT_NEW_GAMESERVER = server.getProperty("AcceptNewGameServer", true);
- REQUEST_ID = server.getProperty("RequestServerID", 0);
- ACCEPT_ALTERNATE_ID = server.getProperty("AcceptAlternateID", true);
- LOGIN_TRY_BEFORE_BAN = server.getProperty("LoginTryBeforeBan", 10);
- LOGIN_BLOCK_AFTER_BAN = server.getProperty("LoginBlockAfterBan", 600);
- LOG_LOGIN_CONTROLLER = server.getProperty("LogLoginController", false);
- INTERNAL_HOSTNAME = server.getProperty("InternalHostname", "localhost");
- EXTERNAL_HOSTNAME = server.getProperty("ExternalHostname", "localhost");
- SHOW_LICENCE = server.getProperty("ShowLicence", true);
- IP_UPDATE_TIME = server.getProperty("IpUpdateTime", 15);
- FORCE_GGAUTH = server.getProperty("ForceGGAuth", false);
- CRYPT_TOKEN = server.getProperty("CryptToken", false);
- AUTO_CREATE_ACCOUNTS = server.getProperty("AutoCreateAccounts", true);
- FLOOD_PROTECTION = server.getProperty("EnableFloodProtection", true);
- FAST_CONNECTION_LIMIT = server.getProperty("FastConnectionLimit", 15);
- NORMAL_CONNECTION_TIME = server.getProperty("NormalConnectionTime", 700);
- FAST_CONNECTION_TIME = server.getProperty("FastConnectionTime", 350);
- MAX_CONNECTION_PER_IP = server.getProperty("MaxConnectionPerIP", 50);
- }
- else
- {
- _log.error("Couldn't load configs: server mode wasn't set.");
- }
- }
- // It has no instances
- private Config()
- {
- }
- public static void saveHexid(int serverId, String string)
- {
- Config.saveHexid(serverId, string, HEXID_FILE);
- }
- public static void saveHexid(int serverId, String hexId, String fileName)
- {
- try
- {
- Properties hexSetting = new Properties();
- File file = new File(fileName);
- file.createNewFile();
- OutputStream out = new FileOutputStream(file);
- hexSetting.setProperty("ServerID", String.valueOf(serverId));
- hexSetting.setProperty("HexID", hexId);
- hexSetting.store(out, "the hexID to auth into login");
- out.close();
- }
- catch (Exception e)
- {
- _log.warn("Failed to save hex id to " + fileName + " file.");
- e.printStackTrace();
- }
- }
- /**
- * Loads single flood protector configuration.
- * @param properties L2Properties file reader
- * @param config flood protector configuration instance
- * @param configString flood protector configuration string that determines for which flood protector configuration should be read
- * @param defaultInterval default flood protector interval
- */
- private static void loadFloodProtectorConfig(final Properties properties, final FloodProtectorConfig config, final String configString, final String defaultInterval)
- {
- config.FLOOD_PROTECTION_INTERVAL = Integer.parseInt(properties.getProperty(StringUtil.concat("FloodProtector", configString, "Interval"), defaultInterval));
- config.LOG_FLOODING = Boolean.parseBoolean(properties.getProperty(StringUtil.concat("FloodProtector", configString, "LogFlooding"), "False"));
- config.PUNISHMENT_LIMIT = Integer.parseInt(properties.getProperty(StringUtil.concat("FloodProtector", configString, "PunishmentLimit"), "0"));
- config.PUNISHMENT_TYPE = properties.getProperty(StringUtil.concat("FloodProtector", configString, "PunishmentType"), "none");
- config.PUNISHMENT_TIME = Integer.parseInt(properties.getProperty(StringUtil.concat("FloodProtector", configString, "PunishmentTime"), "0"));
- }
- public static class ClassMasterSettings
- {
- private final Map<Integer, List<ItemHolder>> _claimItems;
- private final Map<Integer, List<ItemHolder>> _rewardItems;
- private final Map<Integer, Boolean> _allowedClassChange;
- public ClassMasterSettings(String configLine)
- {
- _allowedClassChange = new HashMap<>(3);
- _claimItems = new HashMap<>(3);
- _rewardItems = new HashMap<>(3);
- if (configLine != null)
- {
- parseConfigLine(configLine.trim());
- }
- }
- private void parseConfigLine(String configLine)
- {
- StringTokenizer st = new StringTokenizer(configLine, ";");
- while (st.hasMoreTokens())
- {
- // get allowed class change
- int job = Integer.parseInt(st.nextToken());
- _allowedClassChange.put(job, true);
- List<ItemHolder> items = new ArrayList<>();
- // parse items needed for class change
- if (st.hasMoreTokens())
- {
- StringTokenizer st2 = new StringTokenizer(st.nextToken(), "[],");
- while (st2.hasMoreTokens())
- {
- StringTokenizer st3 = new StringTokenizer(st2.nextToken(), "()");
- items.add(new ItemHolder(Integer.parseInt(st3.nextToken()), Integer.parseInt(st3.nextToken())));
- }
- }
- // Feed the map, and clean the list.
- _claimItems.put(job, items);
- items = new ArrayList<>();
- // parse gifts after class change
- if (st.hasMoreTokens())
- {
- StringTokenizer st2 = new StringTokenizer(st.nextToken(), "[],");
- while (st2.hasMoreTokens())
- {
- StringTokenizer st3 = new StringTokenizer(st2.nextToken(), "()");
- items.add(new ItemHolder(Integer.parseInt(st3.nextToken()), Integer.parseInt(st3.nextToken())));
- }
- }
- _rewardItems.put(job, items);
- }
- }
- public boolean isAllowed(int job)
- {
- if (_allowedClassChange == null)
- {
- return false;
- }
- if (_allowedClassChange.containsKey(job))
- {
- return _allowedClassChange.get(job);
- }
- return false;
- }
- public List<ItemHolder> getRewardItems(int job)
- {
- return _rewardItems.get(job);
- }
- public List<ItemHolder> getRequiredItems(int job)
- {
- return _claimItems.get(job);
- }
- }
- /**
- * itemId1,itemNumber1;itemId2,itemNumber2... to the int[n][2] = [itemId1][itemNumber1],[itemId2][itemNumber2]...
- * @param line
- * @return an array consisting of parsed items.
- */
- private static int[][] parseItemsList(String line)
- {
- final String[] propertySplit = line.split(";");
- if (propertySplit.length == 0)
- {
- return null;
- }
- int i = 0;
- String[] valueSplit;
- final int[][] result = new int[propertySplit.length][];
- for (String value : propertySplit)
- {
- valueSplit = value.split(",");
- if (valueSplit.length != 2)
- {
- _log.warn(StringUtil.concat("parseItemsList[Config.load()]: invalid entry -> \"", valueSplit[0], "\", should be itemId,itemNumber"));
- return null;
- }
- result[i] = new int[2];
- try
- {
- result[i][0] = Integer.parseInt(valueSplit[0]);
- }
- catch (NumberFormatException e)
- {
- _log.warn(StringUtil.concat("parseItemsList[Config.load()]: invalid itemId -> \"", valueSplit[0], "\""));
- return null;
- }
- try
- {
- result[i][1] = Integer.parseInt(valueSplit[1]);
- }
- catch (NumberFormatException e)
- {
- _log.warn(StringUtil.concat("parseItemsList[Config.load()]: invalid item number -> \"", valueSplit[1], "\""));
- return null;
- }
- i++;
- }
- return result;
- }
- public static ExProperties load(String filename)
- {
- return load(new File(filename));
- }
- public static ExProperties load(File file)
- {
- ExProperties result = new ExProperties();
- try
- {
- result.load(file);
- }
- catch (IOException e)
- {
- _log.warn("Error loading config : " + file.getName() + "!");
- }
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement