-
Posts
269 -
Credits
0 -
Joined
-
Last visited
-
Days Won
1 -
Feedback
0%
Content Type
Articles
Profiles
Forums
Store
Everything posted by ThelwHelpRePaidia
-
Help l2jacis 90level max
ThelwHelpRePaidia replied to ThelwHelpRePaidia's question in Request Server Development Help [L2J]
that? how? i cant understand it :P <set name="hpTable" val="80;91.83;103.79;115.88;128.1;140.45;152.93;165.54;178.28;191.15;204.15;217.28;230.54;243.93;257.45;271.1;284.88;298.79;312.83;327;354.5;382.25;410.25;438.5;467;495.75;524.75;554;583.5;613.25;643.25;673.5;704;734.75;765.75;797;828.5;860.25;892.25;924.5;966.1;1008.02;1050.26;1092.82;1135.7;1178.9;1222.42;1266.26;1310.42;1354.9;1399.7;1444.82;1490.26;1536.02;1582.1;1628.5;1675.22;1722.26;1769.62;1817.3;1865.3;1913.62;1962.26;2011.22;2060.5;2110.1;2160.02;2210.26;2260.82;2311.7;2362.9;2414.42;2466.26;2518.42;2570.9;2623.7;2676.82;2730.26;2784.02;2838.1" /> <set name="mpTable" val="30;35.46;40.98;46.56;52.2;57.9;63.66;69.48;75.36;81.3;87.3;93.36;99.48;105.66;111.9;118.2;124.56;130.98;137.46;144;153.9;163.89;173.97;184.14;194.4;204.75;215.19;225.72;236.34;247.05;257.85;268.74;279.72;290.79;301.95;313.2;324.54;335.97;347.49;359.1;378.6;398.25;418.05;438;458.1;478.35;498.75;519.3;540;560.85;581.85;603;624.3;645.75;667.35;689.1;711;733.05;755.25;777.6;800.1;822.75;845.55;868.5;891.6;914.85;938.25;961.8;985.5;1009.35;1033.35;1057.5;1081.8;1106.25;1130.85;1155.6;1180.5;1205.55;1230.75;1256.1" /> <set name="cpTable" val="32;36.732;41.516;46.352;51.24;56.18;61.172;66.216;71.312;76.46;81.66;86.912;92.216;97.572;102.98;108.44;113.952;119.516;125.132;130.8;141.8;152.9;164.1;175.4;186.8;198.3;209.9;221.6;233.4;245.3;257.3;269.4;281.6;293.9;306.3;318.8;331.4;344.1;356.9;369.8;386.44;403.208;420.104;437.128;454.28;471.56;488.968;506.504;524.168;541.96;559.88;577.928;596.104;614.408;632.84;651.4;670.088;688.904;707.848;726.92;746.12;765.448;784.904;804.488;824.2;844.04;864.008;884.104;904.328;924.68;945.16;965.768;986.504;1007.368;1028.36;1049.48;1070.728;1092.104;1113.608;1135.24" /> -
Help l2jacis 90level max
ThelwHelpRePaidia posted a question in Request Server Development Help [L2J]
Hello i'm trying to make acis pack max level 90 experience is edited like thi s package net.sf.l2j.gameserver.model.base; public class Experience { public static final long LEVEL[] = { -1L, // level 0 (unreachable) 0L, 68L, 363L, 1168L, 2884L, 6038L, 11287L, 19423L, 31378L, 48229L, // level 10 71201L, 101676L, 141192L, 191452L, 254327L, 331864L, 426284L, 539995L, 675590L, 835854L, // level 20 1023775L, 1242536L, 1495531L, 1786365L, 2118860L, 2497059L, 2925229L, 3407873L, 3949727L, 4555766L, // level 30 5231213L, 5981539L, 6812472L, 7729999L, 8740372L, 9850111L, 11066012L, 12395149L, 13844879L, 15422851L, // level 40 17137002L, 18995573L, 21007103L, 23180442L, 25524751L, 28049509L, 30764519L, 33679907L, 36806133L, 40153995L, // level 50 45524865L, 51262204L, 57383682L, 63907585L, 70852742L, 80700339L, 91162131L, 102265326L, 114038008L, 126509030L, // level 60 146307211L, 167243291L, 189363788L, 212716741L, 237351413L, 271973532L, 308441375L, 346825235L, 387197529L, 429632402L, // level 70 474205751L, 532692055L, 606319094L, 696376867L, 804219972L, 931275828L, 1151275834L, 1511275834L, 2099275834L, 4200000000L, // level 80 6299994999L, 10499905559L, 16800005559L, 27299995559L, 44100005559L, // level 85 71400000000L, 115500000000L, 186900000000L, 302400000000L, 489300000000L,// level 90 791700000000L }; /** * This is the first UNREACHABLE level.<BR> * ex: If you want a max at 90 & 99.99%, you have to put 91.<BR> * <BR> */ public static final byte MAX_LEVEL = 91; } but i cant figure out how to edit the classes <class id="93"><!-- Adventurer --> <set name="str" val="40" /> <set name="con" val="43" /> <set name="dex" val="30" /> <set name="int" val="21" /> <set name="wit" val="11" /> <set name="men" val="25" /> <set name="pAtk" val="4" /> <set name="pDef" val="80" /> <set name="mAtk" val="6" /> <set name="mDef" val="41" /> <set name="runSpd" val="115" /> <set name="walkSpd" val="80" /> <set name="swimSpd" val="50" /> <set name="spawnX" val="-71338" /> <set name="spawnY" val="258271" /> <set name="spawnZ" val="-3104" /> <set name="radius" val="9" /> <set name="radiusFemale" val="8" /> <set name="height" val="23" /> <set name="heightFemale" val="23.5" /> <set name="baseLvl" val="76" /> <set name="hpTable" val="80;91.83;103.79;115.88;128.1;140.45;152.93;165.54;178.28;191.15;204.15;217.28;230.54;243.93;257.45;271.1;284.88;298.79;312.83;327;354.5;382.25;410.25;438.5;467;495.75;524.75;554;583.5;613.25;643.25;673.5;704;734.75;765.75;797;828.5;860.25;892.25;924.5;966.1;1008.02;1050.26;1092.82;1135.7;1178.9;1222.42;1266.26;1310.42;1354.9;1399.7;1444.82;1490.26;1536.02;1582.1;1628.5;1675.22;1722.26;1769.62;1817.3;1865.3;1913.62;1962.26;2011.22;2060.5;2110.1;2160.02;2210.26;2260.82;2311.7;2362.9;2414.42;2466.26;2518.42;2570.9;2623.7;2676.82;2730.26;2784.02;2838.1" /> <set name="mpTable" val="30;35.46;40.98;46.56;52.2;57.9;63.66;69.48;75.36;81.3;87.3;93.36;99.48;105.66;111.9;118.2;124.56;130.98;137.46;144;153.9;163.89;173.97;184.14;194.4;204.75;215.19;225.72;236.34;247.05;257.85;268.74;279.72;290.79;301.95;313.2;324.54;335.97;347.49;359.1;378.6;398.25;418.05;438;458.1;478.35;498.75;519.3;540;560.85;581.85;603;624.3;645.75;667.35;689.1;711;733.05;755.25;777.6;800.1;822.75;845.55;868.5;891.6;914.85;938.25;961.8;985.5;1009.35;1033.35;1057.5;1081.8;1106.25;1130.85;1155.6;1180.5;1205.55;1230.75;1256.1" /> <set name="cpTable" val="32;36.732;41.516;46.352;51.24;56.18;61.172;66.216;71.312;76.46;81.66;86.912;92.216;97.572;102.98;108.44;113.952;119.516;125.132;130.8;141.8;152.9;164.1;175.4;186.8;198.3;209.9;221.6;233.4;245.3;257.3;269.4;281.6;293.9;306.3;318.8;331.4;344.1;356.9;369.8;386.44;403.208;420.104;437.128;454.28;471.56;488.968;506.504;524.168;541.96;559.88;577.928;596.104;614.408;632.84;651.4;670.088;688.904;707.848;726.92;746.12;765.448;784.904;804.488;824.2;844.04;864.008;884.104;904.328;924.68;945.16;965.768;986.504;1007.368;1028.36;1049.48;1070.728;1092.104;1113.608;1135.24" /> <skillTrees> <!-- Wisdom --> <skill id="328" lvl="1" sp="12500000" minLvl="76" /> <!-- Skill Mastery --> <skill id="330" lvl="1" sp="14670000" minLvl="77" /> <!-- Focus Skill Mastery --> <skill id="334" lvl="1" sp="16000000" minLvl="78" /> <!-- Lethal Blow --> <skill id="344" lvl="1" sp="12500000" minLvl="76" /> <!-- Focus Chance --> <skill id="356" lvl="1" sp="16000000" minLvl="78" /> <!-- Focus Power --> <skill id="357" lvl="1" sp="16000000" minLvl="78" /> <!-- Bluff --> <skill id="358" lvl="1" sp="14670000" minLvl="77" /> <!-- Battle Force --> <skill id="426" lvl="1" sp="14670000" minLvl="77" /> <!-- Assassination --> <skill id="432" lvl="1" sp="16000000" minLvl="78" /> <!-- Mirage --> <skill id="445" lvl="1" sp="80000000" minLvl="79" /> <!-- Symbol of the Assassin --> <skill id="460" lvl="1" sp="150000000" minLvl="80" /> <!-- Divine Inspiration --> <skill id="1405" lvl="3" sp="0" minLvl="76" /> <skill id="1405" lvl="4" sp="0" minLvl="76" /> </skillTrees> </class> -
Hello..read the code and you will understand what is it go to net.sf.l2j.gameserver.model.actor.instance.Player.java find this find final boolean hadHero and put this private int spreeKill = 0; private int spreeKills = 0; private int KILL_STEAK = 0; it will look like that find final boolean hadHero private int spreeKill = 0; private int spreeKills = 0; private int KILL_STEAK = 0; now find this setPvpKills(getPvpKills() + 1); and put this KILL_STEAK++; switch (KILL_STEAK) { case 20: sendMessage("You are almost on a killing spree 5 more kills"); break; case 25: Broadcast.announceToOnlinePlayers(getName() + " is on a killing spree!!"); startAbnormalEffect(AbnormalEffect.SLEEP); //SLEEP = VITALITY EFFECT setHero(true); PlaySound _snd25 = new PlaySound(1, "killing spree"); sendPacket(_snd25); break; } spreeKill++; switch (spreeKill) { case 1: sendPacket(new CreatureSay(0, 0, "PvP", getName() + " just got a First Blood!!")); break; case 2: sendPacket(new CreatureSay(0, 2, "PvP", getName() + " just got a Double Kill!!")); break; case 3: sendPacket(new CreatureSay(0, 3, "PvP", getName() + " just got a Triple Kill!!")); break; case 4: sendPacket(new CreatureSay(0, 4, "PvP", getName() + " has a Quadra kill!!!")); break; case 5: sendPacket(new CreatureSay(0, 0, "PvP", getName() + " has a Penta Kill!!")); break; case 6: sendPacket(new CreatureSay(0, 2, "PvP", getName() + " just got a Legendary!!")); break; } spreeKills++; switch (spreeKills) { case 1: PlaySound _snd1 = new PlaySound(1, "firstblood"); sendPacket(_snd1); break; case 2: PlaySound _snd2 = new PlaySound(1, "doublekill"); sendPacket(_snd2); break; case 3: PlaySound _snd3 = new PlaySound(1, "triplekill"); sendPacket(_snd3); break; case 4: PlaySound _snd4 = new PlaySound(1, "quadrakill"); sendPacket(_snd4); break; case 5: PlaySound _snd5 = new PlaySound(1, "pentakill"); sendPacket(_snd5); break; case 6: PlaySound _snd6 = new PlaySound(1, "legendary"); sendPacket(_snd6); break; default: } find this public boolean doDie(Creature killer) and put this if (KILL_STEAK > 0) { if (KILL_STEAK > 24) Broadcast.announceToOnlinePlayers(killer.getName() + " has stopped " + getName() + "'s killing spree of " + KILL_STEAK + " kills!!"); if (!hadHero) setHero(false); stopAbnormalEffect(AbnormalEffect.SLEEP); spreeKill = 0; spreeKills = 0; KILL_STEAK = 0; } Download this file Vitality Effect Interlude Download this file League of Legends Sounds (PUT THEM IN THE Music folder in you Lineage II) And you are done.
-
Code L2jacis pvp auto enchant
ThelwHelpRePaidia replied to ThelwHelpRePaidia's topic in Server Shares & Files [L2J]
@Elfocrash sorry for sharing you work without asking it..if you want i can take it down -
Code L2jacis pvp auto enchant
ThelwHelpRePaidia replied to ThelwHelpRePaidia's topic in Server Shares & Files [L2J]
Okay..credits added then. :) -
Code L2jacis pvp auto enchant
ThelwHelpRePaidia replied to ThelwHelpRePaidia's topic in Server Shares & Files [L2J]
yeap you are right...for the share idk where i got it i found it in my hdd -
Hello here is a pvp auto enchant code for acis when you kill some you have a chance to get a random item from yours by +1 http://prntscr.com/i451wk go to net/sf/l2j/gameserver/model/actor/instance/player.java find this protected int _classIndex; and put this /** Pvp enchant System **/ private int rewardConsecutiveKillCount = 0; like that protected int _classIndex; /** Pvp enchant System **/ private int rewardConsecutiveKillCount = 0; next find this // Add PvP point to attacker. setPvpKills(getPvpKills() + 1); and paste this rewardConsecutiveKillCount++; like that // Add PvP point to attacker. setPvpKills(getPvpKills() + 1); rewardConsecutiveKillCount++; and under this rewardConsecutiveKillCount++; paste all this final ItemInstance pvpwep = getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND); final ItemInstance pvphead = getInventory().getPaperdollItem(Inventory.PAPERDOLL_HEAD); final ItemInstance pvpgloves = getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES); final ItemInstance pvpchest = getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST); final ItemInstance pvplegs = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS); final ItemInstance pvpfeet = getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET); final ItemInstance pvpneck = getInventory().getPaperdollItem(Inventory.PAPERDOLL_NECK); final ItemInstance pvplf = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LFINGER); final ItemInstance pvprf = getInventory().getPaperdollItem(Inventory.PAPERDOLL_RFINGER); if (rewardConsecutiveKillCount >= Config.PVP_COUNT_TILL_ENCHANTMENT && Config.ENABLE_PVP_ENCHANTMENT) { switch (Rnd.get(9)) { case 0: { pvpwep.setEnchantLevel(pvpwep.getEnchantLevel() + 1); sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND) + "has been enchanted by +1 due to your pvp kills"); rewardConsecutiveKillCount = 0; break; } case 1: { pvphead.setEnchantLevel(pvphead.getEnchantLevel() + 1); sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_HEAD) + "has been enchanted by +1 due to your pvp kills"); rewardConsecutiveKillCount = 0; break; } case 2: { pvpgloves.setEnchantLevel(pvpgloves.getEnchantLevel() + 1); sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES) + "has been enchanted by +1 due to your pvp kills"); rewardConsecutiveKillCount = 0; break; } case 3: { pvpchest.setEnchantLevel(pvpchest.getEnchantLevel() + 1); sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST) + "has been enchanted by +1 due to your pvp kills"); rewardConsecutiveKillCount = 0; break; } case 4: { pvplegs.setEnchantLevel(pvplegs.getEnchantLevel() + 1); sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS) + "has been enchanted by +1 due to your pvp kills"); rewardConsecutiveKillCount = 0; break; } case 5: { pvpfeet.setEnchantLevel(pvpfeet.getEnchantLevel() + 1); sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET) + "has been enchanted by +1 due to your pvp kills"); rewardConsecutiveKillCount = 0; break; } case 6: { pvpneck.setEnchantLevel(pvpneck.getEnchantLevel() + 1); sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_NECK) + "has been enchanted by +1 due to your pvp kills"); rewardConsecutiveKillCount = 0; break; } case 7: { pvplf.setEnchantLevel(pvplf.getEnchantLevel() + 1); sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_LFINGER) + "has been enchanted by +1 due to your pvp kills"); rewardConsecutiveKillCount = 0; break; } case 8: { pvprf.setEnchantLevel(pvprf.getEnchantLevel() + 1); sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_RFINGER) + "has been enchanted by +1 due to your pvp kills"); rewardConsecutiveKillCount = 0; break; } } } go to net/sf/l2j find this public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; and paste this like that public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; /** PvP auto enchant system */ public static boolean ENABLE_PVP_ENCHANTMENT; public static int PVP_COUNT_TILL_ENCHANTMENT; find this ALT_GAME_SUBCLASS_WITHOUT_QUESTS = players.getProperty("AltSubClassWithoutQuests", false); and put this like that ALT_GAME_SUBCLASS_WITHOUT_QUESTS = players.getProperty("AltSubClassWithoutQuests", false); ENABLE_PVP_ENCHANTMENT = players.getProperty("EnablePvpEnchantSystem", false); PVP_COUNT_TILL_ENCHANTMENT = players.getProperty("PvpCountTillEnchanment", 20); go to config/players.properties #=================================# #== by thelwhelprepaidia ==# #== Pvp Enchant System ==# #=================================# #By enabling this then every X pvp #in a row the player will get randomly #a part of his armor,weapon or jewel that #is currently equiped automatically enchanted #To enable the system set True below EnablePvpEnchantSystem = True #Every how many kills you want the chars to be #awared with +1? PvpCountTillEnchanment = 20 And you are done. credits Elfocrash
-
Help enchant problem
ThelwHelpRePaidia replied to ThelwHelpRePaidia's question in Request Server Development Help [Greek]
nai einai palio pack to eixa ston sklhro kai eipa na asxolitho kai den thimamai pws to eixa valei -
Help enchant problem
ThelwHelpRePaidia replied to ThelwHelpRePaidia's question in Request Server Development Help [Greek]
frozen prospathisa na to valw -1 alla paei +65535 -
Help enchant problem
ThelwHelpRePaidia replied to ThelwHelpRePaidia's question in Request Server Development Help [Greek]
den uparxei ayto to config pou mou eipes...to thema mou einai na vgalw to normalfailenchant kai otan kanei fail to enchant se ena weapon na spaei se crystala kai oxi na pigenei sto normalfailenchant = 5 dhladh na ginete +5 -
Help box na exw parapano
ThelwHelpRePaidia replied to Symewn199's question in Request Server Development Help [Greek]
apo pvp system ayto edw moy fenete kalo -
Hello i want to remove NormalFailEnchant = 0 i want when my weapon gets enchanted with normal scrolls to be crystals..from data base i have it like this but when i have it like this NormalFailEnchant = 5 my weapon gets enchanted +5 when it breaks..
-
Discussion Γεια σας!
ThelwHelpRePaidia replied to Kapten1's topic in Server Development Discussion [Greek]
αυτο το πραγμα που λες γινετε μεσα σε 10 λεπτα το πολυ υπαρχουν παρα πολυ οδηγοι στο ιντερνετ εδω μπορεις να βρεις τι pack θελεις να ασχοληθεις και πως να τον φτιαξεις kai me video -
Help acis eclipse error
ThelwHelpRePaidia posted a question in Request Server Development Help [L2J]
Hello i have a problem i fixed the most part of the code but i have a problem i get that red line here log.warning(StringUtil.concat( under concat only here is the code package net.sf.l2j.gameserver.masteriopack.rankpvpsystem; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.logging.Logger; import net.sf.l2j.commons.lang.StringUtil; import net.sf.l2j.gameserver.masteriopack.imageconverter.ServerSideImage; /** * This class initializes all global variables for configuration.<br> * If the key doesn't appear in properties file, a default value is set by this class.<br> * @author Masterio */ public final class RankPvpSystemConfig { private static final Logger log = Logger.getLogger(RankPvpSystemConfig.class.getName()); // Rank PvP System: public static boolean RANK_PVP_SYSTEM_ENABLED; public static int LEGAL_KILL_MIN_LVL; public static boolean LEGAL_COUNTER_ALTT_ENABLED; public static boolean LEGAL_KILL_FOR_PK_KILLER_ENABLED; public static boolean LEGAL_KILL_FOR_INNOCENT_KILL_ENABLED; public static int PROTECTION_TIME_RESET; public static int LEGAL_KILL_PROTECTION; public static int DAILY_LEGAL_KILL_PROTECTION; public static boolean GM_IGNORE_ENABLED; // PvP + RPC Reward: public static boolean RPC_REWARD_ENABLED; public static long RPC_REWARD_AMOUNT; public static int RPC_REWARD_MIN_LVL; public static boolean PVP_REWARD_ENABLED; public static int PVP_REWARD_ID; public static long PVP_REWARD_AMOUNT; public static int PVP_REWARD_MIN_LVL; public static boolean REWARD_FOR_PK_KILLER_ENABLED; public static boolean REWARD_FOR_INNOCENT_KILL_ENABLED; public static boolean RANK_PVP_REWARD_ENABLED; public static int RANK_PVP_REWARD_MIN_LVL; public static boolean REWARD_LEGAL_KILL_ENABLED; public static boolean RANK_LEVEL_REWARD_ENABLED; // Ranks: public static boolean RANKS_ENABLED; public static int RANK_POINTS_MIN_LVL; public static boolean RANK_POINTS_CUT_ENABLED; public static boolean RANK_RPC_ENABLED; public static boolean RANK_POINTS_DOWN_COUNT_ENABLED; public static List<Integer> RANK_POINTS_DOWN_AMOUNTS = new ArrayList<>(); public static boolean RANK_SHOUT_INFO_ON_KILL_ENABLED; public static boolean RANK_SHOUT_BONUS_INFO_ON_KILL_ENABLED; public static boolean RPC_EXCHANGE_ENABLED; public static boolean RPC_EXCHANGE_CONFIRM_BOX_ENABLED; // War Kills: public static boolean WAR_KILLS_ENABLED; public static double WAR_RANK_POINTS_RATIO; // Combo Kill: public static boolean COMBO_KILL_ENABLED; public static boolean COMBO_KILL_PROTECTION_WITH_LEGAL_KILL_ENABLED; public static boolean COMBO_KILL_PROTECTION_NO_REPEAT_ENABLED; public static Map<Integer, String> COMBO_KILL_LOCAL_AREA_MESSAGES = new HashMap<>(); public static Map<Integer, String> COMBO_KILL_GLOBAL_AREA_MESSAGES = new HashMap<>(); public static boolean COMBO_KILL_ALT_MESSAGES_ENABLED; public static String COMBO_KILL_ALT_MESSAGE; public static int COMBO_KILL_ALT_GLOBAL_MESSAGE_LVL; public static boolean COMBO_KILL_DEFEAT_MESSAGE_ENABLED; public static int COMBO_KILL_DEFEAT_MESSAGE_MIN_LVL; public static String COMBO_KILL_DEFEAT_MESSAGE; public static int COMBO_KILL_RESETER; public static boolean COMBO_KILL_RANK_POINTS_RATIO_ENABLED; public static Map<Integer, Double> COMBO_KILL_RANK_POINTS_RATIO = new HashMap<>(); // Title & Nick Color: public static boolean NICK_COLOR_ENABLED; public static boolean TITLE_COLOR_ENABLED; // Zones: public static List<Integer> ALLOWED_ZONES_IDS = new ArrayList<>(); public static List<Integer> RESTRICTED_ZONES_IDS = new ArrayList<>(); public static List<Integer> DEATH_MANAGER_RESTRICTED_ZONES_IDS = new ArrayList<>(); public static Map<Integer, Double> RANK_POINTS_BONUS_ZONES_IDS = new HashMap<>(); // pvpinfo command, pvp status window, death manager: public static boolean PVP_INFO_COMMAND_ENABLED; public static boolean PVP_INFO_USER_COMMAND_ENABLED; public static int PVP_INFO_USER_COMMAND_ID; public static boolean PVP_INFO_COMMAND_ON_DEATH_ENABLED; public static boolean DEATH_MANAGER_DETAILS_ENABLED; public static boolean DEATH_MANAGER_SHOW_ITEMS_ENABLED; public static boolean TOTAL_KILLS_IN_SHOUT_ENABLED; public static boolean TOTAL_KILLS_IN_PVPINFO_ENABLED; public static boolean TOTAL_KILLS_ON_ME_IN_PVPINFO_ENABLED; public static boolean SHOW_PLAYER_LEVEL_IN_PVPINFO_ENABLED; // Anti-Farm: public static boolean ANTI_FARM_CLAN_ALLY_ENABLED; public static boolean ANTI_FARM_PARTY_ENABLED; public static boolean ANTI_FARM_IP_ENABLED; // Top List (Community Board): public static boolean TOP_LIST_ENABLED; public static long TOP_LIST_IGNORE_TIME_LIMIT; // Database: public static long PVP_TABLE_UPDATE_INTERVAL; public static List<Long> TOP_TABLE_UPDATE_TIMES = new ArrayList<>(); public static boolean RPC_TABLE_FORCE_UPDATE_ENABLED; public static boolean DATABASE_CLEANER_ENABLED; public static long DATABASE_CLEANER_REPEAT_TIME; // Image: public static boolean SERVER_SIDE_IMAGES_ENABLED; public static int IMAGE_PREFIX; // Button style: public static String BUTTON_UP; public static String BUTTON_DOWN; public static String BUTTON_W; public static String BUTTON_H; public static String BUTTON_BIG_W; public static String BUTTON_BIG_H; /** * All required tables are initialized here. */ public static void load() { log.info("> Initializing Rank PvP System ("+RANK_PVP_SYSTEM_VERSION+"):"); try { File cc = new File(RANK_PVP_SYSTEM_CONFIG_FILE); InputStream is = new FileInputStream(cc); Properties ccSettings = new Properties(); ccSettings.load(is); RANK_PVP_SYSTEM_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RankPvpSystemEnabled", "false")); LEGAL_COUNTER_ALTT_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("LegalCounterAltTEnabled", "false")); DATABASE_CLEANER_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("DatabaseCleanerEnabled", "false")); DATABASE_CLEANER_REPEAT_TIME = Integer.parseInt(ccSettings.getProperty("DatabaseCleanerRepeatTime", "0")); if (DATABASE_CLEANER_REPEAT_TIME <= 0) { DATABASE_CLEANER_ENABLED = false; log.warning("[DatabaseCleanerRepeatTime]: invalid config property -> \""+DATABASE_CLEANER_REPEAT_TIME+"\""); } else { DATABASE_CLEANER_REPEAT_TIME *= 86400000; } RPC_REWARD_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RpcRewardEnabled", "false")); RPC_REWARD_AMOUNT = Integer.parseInt(ccSettings.getProperty("RpcRewardAmmount", "1")); RPC_REWARD_MIN_LVL = Integer.parseInt(ccSettings.getProperty("RpcRewardMinLvl", "76")); PVP_REWARD_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("PvpRewardEnabled", "false")); PVP_REWARD_ID = Integer.parseInt(ccSettings.getProperty("PvpRewardId", "57")); PVP_REWARD_AMOUNT = Integer.parseInt(ccSettings.getProperty("PvpRewardAmount", "1")); PVP_REWARD_MIN_LVL = Integer.parseInt(ccSettings.getProperty("PvpRewardMinLvl", "76")); REWARD_FOR_PK_KILLER_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RewardForPkKillerEnabled", "true")); RANK_PVP_REWARD_MIN_LVL = Integer.parseInt(ccSettings.getProperty("RankPvpRewardMinLvl", "76")); REWARD_FOR_INNOCENT_KILL_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RewardForInnocentKillEnabled", "false")); RANK_PVP_REWARD_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RankPvpRewardEnabled", "true")); REWARD_LEGAL_KILL_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RewardLegalKillEnabled", "true")); RANK_LEVEL_REWARD_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RankLevelRewardEnabled", "true")); RANKS_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RanksEnabled", "false")); RANK_POINTS_MIN_LVL = Integer.parseInt(ccSettings.getProperty("RankPointsMinLvl", "76")); RANK_POINTS_CUT_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RankPointsCutEnabled", "true")); RANK_RPC_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RankRpcEnabled", "false")); // set rank's: String id1[] = ccSettings.getProperty("RankNames", "").split(","); String id2[] = ccSettings.getProperty("RankMinPoints", "").split(","); String id3[] = ccSettings.getProperty("RankPointsForKill", "").split(","); String id5[] = ccSettings.getProperty("RankRpcAmount", "").split(","); String id6[] = ccSettings.getProperty("NickColors", "").split(","); String id7[] = ccSettings.getProperty("TitleColors", "").split(","); if (RANK_PVP_SYSTEM_ENABLED || RANK_RPC_ENABLED || RANKS_ENABLED) { if (id1.length != id2.length || id1.length != id3.length || id1.length != id5.length || id1.length != id6.length || id1.length != id7.length) { log.info("[RankPvpSystemConfig]: Arrays sizes should be the same!"); log.info("RANK_NAMES :" + id1.length); log.info("RANK_MIN_POINTS :" + id2.length); log.info("RANK_POINTS_FOR_KILL :" + id3.length); log.info("RANK_RPC_AMOUNT :" + id5.length); log.info("RANK_NICK_COLORS :" + id6.length); log.info("RANK_TITLE_COLORS :" + id7.length); } else if(id1.length == 0 || id2.length == 0 || id3.length == 0 || id5.length == 0 || id6.length == 0 || id7.length == 0) { log.info("[RankPvpSystemConfig]: Arrays sizes must be greater than 0!"); log.info("RANK_NAMES :" + id1.length); log.info("RANK_MIN_POINTS :" + id2.length); log.info("RANK_POINTS_FOR_KILL :" + id3.length); log.info("RANK_RPC_AMOUNT :" + id5.length); log.info("RANK_NICK_COLORS :" + id6.length); log.info("RANK_TITLE_COLORS :" + id7.length); } else if(id2.length > 0 && Integer.parseInt(id2[id2.length - 1]) != 0) { log.info("[RankMinPoints]: Last value must equal 0! Example: ...,6,5,4,3,2,1,0"); } else { for (int i = 1; i <= id1.length; i++) { Rank rank = new Rank(); rank.setId(i); rank.setName(id1[id1.length - i]); rank.setMinPoints(Long.parseLong(id2[id1.length - i])); rank.setPointsForKill(Integer.parseInt(id3[id1.length - i])); rank.setRpc(Integer.parseInt(id5[id1.length - i])); rank.setNickColor(Integer.decode("0x" + id6[id1.length - i])); rank.setTitleColor(Integer.decode("0x" + id7[id1.length - i])); RankTable.getInstance().getRankList().put(i, rank); } } } NICK_COLOR_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("NickColorEnabled", "false")); TITLE_COLOR_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("TitleColorEnabled", "false")); RANK_POINTS_DOWN_COUNT_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RankPointsDownCountEnabled", "false")); RANK_POINTS_DOWN_AMOUNTS = new ArrayList<>(); for (String id : ccSettings.getProperty("RankPointsDownAmounts", "").split(",")) { RANK_POINTS_DOWN_AMOUNTS.add(Integer.parseInt(id)); } RANK_SHOUT_INFO_ON_KILL_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RankShoutInfoOnKillEnabled", "false")); RANK_SHOUT_BONUS_INFO_ON_KILL_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RankShoutBonusInfoOnKillEnabled", "false")); WAR_KILLS_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("WarKillsEnabled", "false")); if (WAR_KILLS_ENABLED) { WAR_RANK_POINTS_RATIO = Double.parseDouble(ccSettings.getProperty("WarRankPointsRatio", "1.0")); } else { WAR_RANK_POINTS_RATIO = 1.0; } COMBO_KILL_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("ComboKillEnabled", "false")); COMBO_KILL_PROTECTION_WITH_LEGAL_KILL_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("ComboKillProtectionWithLegalKillEnabled", "false")); COMBO_KILL_PROTECTION_NO_REPEAT_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("ComboKillProtectionNoRepeatEnabled", "false")); String propertyValue = ccSettings.getProperty("ComboKillLocalAreaMessages"); if ((propertyValue != null) && (propertyValue.length() > 0)) { String[] propertySplit = propertyValue.split(";"); if (propertySplit.length > 0) { for (String value : propertySplit) { String[] valueSplit = value.split(","); if (valueSplit.length != 2) { log.warning(StringUtil.concat("[ComboKillLocalAreaMessages]: invalid config property -> \"", value, "\"")); } else { try { COMBO_KILL_LOCAL_AREA_MESSAGES.put(Integer.parseInt(valueSplit[0]), valueSplit[1]); } catch (NumberFormatException nfe) { if (!value.isEmpty()) { log.warning(StringUtil.concat("[ComboKillLocalAreaMessages]: invalid config property -> \"", valueSplit[0], "\"", valueSplit[1])); } } } } } } propertyValue = ccSettings.getProperty("ComboKillGlobalAreaMessages", ""); if ((propertyValue != null) && (propertyValue.length() > 0)) { String[] propertySplit = ccSettings.getProperty("ComboKillGlobalAreaMessages").split(";"); if (propertySplit.length > 0) { for (String value : propertySplit) { String[] valueSplit = value.split(","); if (valueSplit.length != 2) { log.warning(StringUtil.concat("[ComboKillGlobalAreaMessages]: invalid config property -> \"", value, "\"")); } else { try { COMBO_KILL_GLOBAL_AREA_MESSAGES.put(Integer.parseInt(valueSplit[0]), valueSplit[1]); } catch (NumberFormatException nfe) { if (!value.isEmpty()) { log.warning(StringUtil.concat("[ComboKillGlobalAreaMessages]: invalid config property -> \"", valueSplit[0], "\"", valueSplit[1])); } } } } } } COMBO_KILL_ALT_MESSAGES_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("ComboKillAltMessagesEnabled", "false")); COMBO_KILL_ALT_MESSAGE = ccSettings.getProperty("ComboKillAltMessage", "%killer% have %combo_level% Combo kills!"); COMBO_KILL_ALT_GLOBAL_MESSAGE_LVL = Integer.parseInt(ccSettings.getProperty("ComboKillAltGlobalMessageMinLvl", "0")); COMBO_KILL_DEFEAT_MESSAGE_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("ComboKillDefeatMessageEnabled", "true")); COMBO_KILL_DEFEAT_MESSAGE_MIN_LVL = Integer.parseInt(ccSettings.getProperty("ComboKillDefeatMessageMinComboLvl", "0")); COMBO_KILL_DEFEAT_MESSAGE = ccSettings.getProperty("ComboKillDefeatMessage", "%killer% is defeated with %combo_level% combo lvl!!!"); COMBO_KILL_RESETER = Integer.parseInt(ccSettings.getProperty("ComboKillReseter", "0")); COMBO_KILL_RANK_POINTS_RATIO_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("ComboKillRankPointsRatioEnabled", "false")); propertyValue = ccSettings.getProperty("ComboKillRankPointsRatio", ""); if ((propertyValue != null) && (propertyValue.length() > 0)) { String[] propertySplit = ccSettings.getProperty("ComboKillRankPointsRatio").split(";"); if (propertySplit.length > 0) { for (String value : propertySplit) { String[] valueSplit = value.split(","); if (valueSplit.length != 2) { log.warning(StringUtil.concat("[ComboKillRankPointsRatio]: invalid config property -> \"", value, "\"")); } else { try { COMBO_KILL_RANK_POINTS_RATIO.put(Integer.parseInt(valueSplit[0]), Double.parseDouble(valueSplit[1])); } catch (NumberFormatException nfe) { if (!value.isEmpty()) { log.warning(StringUtil.concat("[ComboKillRankPointsRatio]: invalid config property -> \"", valueSplit[0], "\"", valueSplit[1])); } } } } } } // additional security for combo kill system: if ((COMBO_KILL_LOCAL_AREA_MESSAGES.size() == 0) && (COMBO_KILL_GLOBAL_AREA_MESSAGES.size() == 0)) { COMBO_KILL_ENABLED = false; } int i = 0; String tempStr = ccSettings.getProperty("AllowedZonesIds"); if ((tempStr != null) && (tempStr.length() > 0)) { for (String rZoneId : tempStr.split(",")) { try { ALLOWED_ZONES_IDS.add(i, Integer.parseInt(rZoneId)); } catch (Exception e) { log.info(e.getMessage()); } i++; } } i = 0; tempStr = ccSettings.getProperty("RestrictedZonesIds"); if ((tempStr != null) && (tempStr.length() > 0)) { for (String rZoneId : tempStr.split(",")) { try { RESTRICTED_ZONES_IDS.add(i, Integer.parseInt(rZoneId)); } catch (Exception e) { log.info(e.getMessage()); } i++; } } LEGAL_KILL_MIN_LVL = Integer.parseInt(ccSettings.getProperty("LegalKillMinLvl", "1")); LEGAL_KILL_FOR_PK_KILLER_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("LegalKillForPkKillerEnabled", "true")); LEGAL_KILL_FOR_INNOCENT_KILL_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("LegalKillForInnocentKillEnabled", "false")); PROTECTION_TIME_RESET = Integer.parseInt(ccSettings.getProperty("ProtectionTimeReset", "0")); LEGAL_KILL_PROTECTION = Integer.parseInt(ccSettings.getProperty("LegalKillProtection", "0")); DAILY_LEGAL_KILL_PROTECTION = Integer.parseInt(ccSettings.getProperty("DailyLegalKillProtection", "0")); GM_IGNORE_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("GMIgnoreEnabled", "true")); PVP_INFO_COMMAND_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("PvpInfoCommandEnabled", "true")); PVP_INFO_USER_COMMAND_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("PvpInfoUserCommandEnabled", "false")); PVP_INFO_USER_COMMAND_ID = Integer.parseInt(ccSettings.getProperty("PvpInfoUserCommandId", "114")); PVP_INFO_COMMAND_ON_DEATH_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("PvpInfoCommandShowOnDeathEnabled", "true")); DEATH_MANAGER_DETAILS_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("DeathManagerDetailsEnabled", "true")); DEATH_MANAGER_SHOW_ITEMS_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("DeathManagerShowItemsEnabled", "true")); i = 0; tempStr = ccSettings.getProperty("DeathManagerRestrictedZonesIds"); if ((tempStr != null) && (tempStr.length() > 0)) { for (String rZoneId : tempStr.split(",")) { try { DEATH_MANAGER_RESTRICTED_ZONES_IDS.add(i, Integer.parseInt(rZoneId)); } catch (Exception e) { log.info(e.getMessage()); } i++; } } propertyValue = ccSettings.getProperty("RankPointsBonusZonesIds", ""); if ((propertyValue != null) && (propertyValue.length() > 0)) { String[] propertySplit = ccSettings.getProperty("RankPointsBonusZonesIds", "").split(";"); if (propertySplit.length > 0) { for (String value : propertySplit) { String[] valueSplit = value.split(","); if (valueSplit.length != 2) { log.warning(StringUtil.concat("[RankPointsBonusZonesIds]: invalid config property -> \"", value, "\"")); } else { try { RANK_POINTS_BONUS_ZONES_IDS.put(Integer.parseInt(valueSplit[0]), Double.parseDouble(valueSplit[1])); } catch (NumberFormatException nfe) { if (!value.isEmpty()) { log.warning(StringUtil.concat("[RankPointsBonusZonesIds]: invalid config property -> \"", valueSplit[0], "\"", valueSplit[1])); } } } } } } TOTAL_KILLS_IN_SHOUT_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("TotalKillsInShoutEnabled", "true")); TOTAL_KILLS_IN_PVPINFO_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("TotalKillsInPvpInfoEnabled", "true")); TOTAL_KILLS_ON_ME_IN_PVPINFO_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("TotalKillsOnMeInPvpInfoEnabled", "true")); SHOW_PLAYER_LEVEL_IN_PVPINFO_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("ShowPlayerLevelInPvpInfoEnabled", "true")); RPC_EXCHANGE_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RpcExchangeEnabled", "true")); RPC_EXCHANGE_CONFIRM_BOX_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RpcExchangeConfirmBoxEnabled", "true")); ANTI_FARM_CLAN_ALLY_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("AntiFarmClanAllyEnabled", "true")); ANTI_FARM_PARTY_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("AntiFarmPartyEnabled", "true")); ANTI_FARM_IP_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("AntiFarmIpEnabled", "true")); PVP_TABLE_UPDATE_INTERVAL = (Integer.parseInt(ccSettings.getProperty("PvpTableUpdateInterval", "1")) * 60000); if (PVP_TABLE_UPDATE_INTERVAL < 1) { log.warning(StringUtil.concat("[PvpTableUpdateInterval]: invalid config property -> \"", Long.toString(PVP_TABLE_UPDATE_INTERVAL), "\"")); PVP_TABLE_UPDATE_INTERVAL = 60000; } RPC_TABLE_FORCE_UPDATE_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("RpcTableForceUpdate", "true")); // top table update times: propertyValue = ccSettings.getProperty("TopTableUpdateTimes", "3:00"); List<Long> temp_time_list = new ArrayList<>(); if ((propertyValue != null) && (propertyValue.length() > 0)) { String[] propertySplit = ccSettings.getProperty("TopTableUpdateTimes", "").split(","); if (propertySplit.length > 0) { for (String value : propertySplit) { String[] hm = value.split(":"); if (hm.length != 2) // hm table length { log.warning(StringUtil.concat("[TopTableUpdateTimes]: invalid config property -> \"", value, "\"")); } else { try { // prepare h & m: String h_s = hm[0]; String m_s = hm[1]; if(m_s.length() != 2) { log.warning(StringUtil.concat("[TopTableUpdateTimes]: invalid config property -> \"", value, "\" minutes format incorrect [hh:mm]")); break; } // check times like: [0]3:15, 3:[0]5. if(h_s.startsWith("0") && h_s.length() == 2) { h_s = h_s.substring(1); } if(m_s.startsWith("0") && m_s.length() == 2) { m_s = m_s.substring(1); } if(h_s.equals("0")) { h_s = "24"; } // calculate all times for times in ms from time 0:00. long h = Long.parseLong(h_s); long m = Long.parseLong(m_s); if(h < 0 || m < 0 || h > 24 || m > 59) { log.warning(StringUtil.concat("[TopTableUpdateTimes]: invalid config property -> \"", value, "\" minutes format incorrect [hh:mm]")); break; } long mili = (h * 60 + m) * 60000 - (3600000); // - 1h if(mili >= 0 && !temp_time_list.contains(mili)) temp_time_list.add(mili); } catch (NumberFormatException nfe) { } } } } } class LongComparator implements Comparator<Long> { @Override public int compare(Long v1, Long v2) { if (v1 > v2) { return 1; } else if (v1 == v2) { return 0; } else { return -1; } } } Comparator<Long> comp = new LongComparator(); Long[] aol = new Long[temp_time_list.size()]; Arrays.sort(temp_time_list.toArray(aol), comp); TOP_TABLE_UPDATE_TIMES = Arrays.asList(aol); TOP_LIST_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("TopListEnabled", "true")); TOP_LIST_IGNORE_TIME_LIMIT = Integer.parseInt(ccSettings.getProperty("TopListIgnoreTimeLimit", "0")); if (TOP_LIST_IGNORE_TIME_LIMIT > 0) { TOP_LIST_IGNORE_TIME_LIMIT *= 86400000; // in milliseconds } SERVER_SIDE_IMAGES_ENABLED = Boolean.parseBoolean(ccSettings.getProperty("ServerSideImagesEnabled", "true")); IMAGE_PREFIX = Integer.parseInt(ccSettings.getProperty("ImagePrefix", "1")); // Buttons style: BUTTON_UP = ccSettings.getProperty("ButtonFore", "L2UI_ch3.BigButton3_over"); BUTTON_DOWN = ccSettings.getProperty("ButtonBack", "L2UI_ch3.BigButton3"); BUTTON_W = ccSettings.getProperty("ButtonWidth", "134"); BUTTON_H = ccSettings.getProperty("ButtonHeight", "21"); BUTTON_BIG_W = ccSettings.getProperty("ButtonBigWidth", "180"); BUTTON_BIG_H = ccSettings.getProperty("ButtonBigHeight", "24"); log.warning(" - Rank Pvp System Config initialization complete."); } catch (Exception e) { log.warning("Config: " + e.getMessage()); throw new Error("Failed to Load " + RANK_PVP_SYSTEM_CONFIG_FILE + " File."); } // initializing system PvpTable.getInstance(); if(RPC_REWARD_ENABLED || RANK_RPC_ENABLED || RPC_TABLE_FORCE_UPDATE_ENABLED) RPCTable.getInstance(); else log.info(" - RPCTable: Disabled, players RPC will be not updated!"); if(RPC_REWARD_ENABLED || RPC_EXCHANGE_ENABLED) RPCRewardTable.getInstance(); else log.info(" - RPCRewardTable: Disabled."); if(PVP_REWARD_ENABLED || RANK_PVP_REWARD_ENABLED) RewardTable.getInstance(); else log.info(" - RewardTable: Disabled."); if(TOP_LIST_ENABLED) TopTable.getInstance(); else log.info(" - TopTable: Disabled."); ServerSideImage.getInstance(); } // -------------------------------------------------- // Constants - not placed in configuration file // -------------------------------------------------- public static final String RANK_PVP_SYSTEM_CONFIG_FILE = "./config/masterio/RankPvpSystemConfig.properties"; public static final String RANK_PVP_SYSTEM_VERSION = "3.8.7"; // CHAR_ID_COLUMN_NAME is not in configuration file. //public static final String CHAR_ID_COLUMN_NAME = "charId"; // H5 public static final String CHAR_ID_COLUMN_NAME = "obj_Id"; // IL } -
Help Hi5 level 95
ThelwHelpRePaidia replied to ThelwHelpRePaidia's question in Request Server Development Help [L2J]
do you know how can i mode it to 95? -
Hello i've searched alot but i didnt find anything does anyone know how can i make from 85 level max to 95? for hi5
-
Free Promo Movie For Your Project
ThelwHelpRePaidia replied to devaltor's topic in Graphics/GFX Resources/Tools
link still dead. -
Help gameserver error
ThelwHelpRePaidia replied to ThelwHelpRePaidia's question in Request Server Development Help [L2J]
Okay mate thanks for the try have a nice day :) -
Help gameserver error
ThelwHelpRePaidia replied to ThelwHelpRePaidia's question in Request Server Development Help [L2J]
if (oldRegion != null) { // Remove the object from the L2ObjectHashSet(L2Object) _visibleObjects of L2WorldRegion // If object is a L2PcInstance, remove it from the L2ObjectHashSet(L2PcInstance) _allPlayers of this L2WorldRegion oldRegion.removeVisibleObject(object); // Go through all surrounding L2WorldRegion L2Characters for (L2WorldRegion reg : oldRegion.getSurroundingRegions()) { //synchronized (KnownListUpdateTaskManager.getInstance().getSync()) { Collection<L2Object> vObj = reg.getVisibleObjects().values(); //synchronized (reg.getVisibleObjects()) { for (L2Object obj : vObj) { 485 line--->>> if (obj.getKnownList() != null) obj.getKnownList().removeKnownObject(object); /* if (object.getKnownList() != null) object.getKnownList().removeKnownObject(obj);*/ } } } } -
Help gameserver error
ThelwHelpRePaidia replied to ThelwHelpRePaidia's question in Request Server Development Help [L2J]
dk where this error is comming from to check it xD -
Hello some times when i have gameserver open i get this error nothing happens on the gameplay server runs smooth but i want to see if anyone knows how to fix it..i tried but nothing still the same http://prntscr.com/h5olk8 here is the error
-
Help dual daggers/blades/mace problem
ThelwHelpRePaidia replied to ThelwHelpRePaidia's topic in [Request] Client Dev Help
Okay fixed thanks for the help :) -
Hello i have a problem when i wear some custom dual daggers/blades and maces it wears it on 1 hand here is a picture i can wear shield with them Click Here couldnt upload 3 images
-
Help linux gameserver error
ThelwHelpRePaidia replied to ThelwHelpRePaidia's question in Request Server Development Help [L2J]
-
Help linux gameserver error
ThelwHelpRePaidia posted a question in Request Server Development Help [L2J]
Hello i have a problem when i try to run starGameServer.sh i get this error i have set the passwords correct but i dont know what is that problem...the startLoginServer .sh works fine here is