Jump to content

sqhizein

Members
  • Posts

    21
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

About sqhizein

Profile Information

  • Gender
    Male
  • Country
    Turkey

Recent Profile Visitors

746 profile views

sqhizein's Achievements

Newbie

Newbie (1/16)

  • Dedicated Rare
  • First Post Rare
  • Collaborator Rare
  • Week One Done Rare
  • One Month Later Rare

Recent Badges

0

Reputation

  1. Which Revision is this cracked source ? Changeset #28 | Revision #899 Changeset #27 | Revision #869 Changeset #24 | Revision #663 i couldn't find any info for that
  2. i am having trouble about .vote command. if one player type .vote, the entire players in the game have to wait 12 hours. how can i remove all Hwid record from this code without any error : i just want to use theese two checking code ACCOUNT_NAME, IP_ADRESS, HWID (this code have to gone) package handler.voicecommands; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import l2f.commons.util.Rnd; import l2f.gameserver.Config; import l2f.gameserver.ThreadPoolManager; import l2f.gameserver.database.DatabaseFactory; import l2f.gameserver.handler.voicecommands.IVoicedCommandHandler; import l2f.gameserver.handler.voicecommands.VoicedCommandHandler; import l2f.gameserver.model.GameObjectsStorage; import l2f.gameserver.model.Player; import l2f.gameserver.network.serverpackets.Say2; import l2f.gameserver.network.serverpackets.components.ChatType; import l2f.gameserver.scripts.Functions; import l2f.gameserver.scripts.ScriptFile; import l2f.gameserver.utils.BatchStatement; import l2f.gameserver.vote.VoteRead; public class RewardVote implements IVoicedCommandHandler, ScriptFile { private static enum ValueType { ACCOUNT_NAME, IP_ADRESS, HWID } private static final String[] COMMANDS_LIST = new String[] { "vote", "getreward", "getvote", "votereward", "voteme", "fuckvote", "rewardget", "reward", "votereward"}; // Rewards private static final int[][] BLESSED_ENCHANTS_CATEGORY = { { 6673, 1 } }; private static final int[] PERMANENT_CATEGORY = { 37004, // Vote Rune 1 }; private static final int[][] MISC_CATEGORY = { { 37007, 1 }, { 37007, 2 }, { 37007, 3 } }; private static final double[][] RANDOM_CATEGORY = { { 6577,// 1 Blessed Enchant Weapon S 1, 0.05 }, { 6578,// 1 Blessed Enchant Armor S 1, 0.05 }, { 13071,// 1 Red Soul Crystal - Stage 16 1, 0.05 }, { 13072,// 1 Blue Soul Crystal - Stage 16 1, 0.05 }, { 13073,// 1 Green Soul Crystal - Stage 16 1, 0.155 }, { 10480,// 1 Red Soul Crystal - Stage 15 1, 0.155 }, { 10481,// 1 Blue Soul Crystal - Stage 15 1, 0.155 }, { 10482,// 1 Green Soul Crystal - Stage 15 1, 0.566 }, { 14169,// 1 Top Life Stone Level 84 1, 1.25 }, { 14168,// 1 High Life Stone Level 84 1, 2.0 }, { 13073,// 1 Giant's Codex - Mastery 1, 3.333 }, { 959,// 1 Enchant Weapon S 1, 3.0 }, { 6622,// 1 Giant's Codex 3, 8.0 }, { 960,// 1 Enchant Armor S 1, 8.0 }, { 9552,// 1 Fire Crystal 1, 8.0 }, { 9553,// 1 Water Crystal 1, 8.0 }, { 9556,// 1 Dark Crystal 1, 8.0 }, { 9557,// 1 Holy Crystal 1, 8.0 }, { 9554,// 1 Earth Crystal 1, 8.0 }, { 9555,// 1 Wind Crystal 1, 8.0 }, { 9546,// 1 Fire Stone 2, 20.0 }, { 9547,// 1 Water Stone 2, 20.0 }, { 9548,// 1 Earth Stone 2, 20.0 }, { 9549,// 1 Wind Stone 2, 20.0 }, { 9550,// 1 Dark Stone 2, 20.0 }, { 9551,// 1 Holy Stone 2, 100.0 }, }; private static final long VOTE_COMMAND_REUSE = 1 * 3 * 1000L; // 5 Minutes private static final long VOTE_PENALTY = 12 * 60 * 60 * 1000L; // 12 Hours public static final Map<Integer, Long> _votePlayerReuses = new ConcurrentHashMap<Integer, Long>(); public static final Map<String, Long> _accountPenalties = new ConcurrentHashMap<String, Long>(); public static final Map<String, Long> _ipPenalties = new ConcurrentHashMap<String, Long>(); public static final Map<String, Long> _hwidPenalties = new ConcurrentHashMap<String, Long>(); public RewardVote() { // If there is a set vote reward message, schedule it if(!Config.VOTE_REWARD_MSG.isEmpty()) ThreadPoolManager.getInstance().scheduleAtFixedRate(new VoteAnnounceTask(), 1 * 60 * 1000, Config.ANNOUNCE_VOTE_DELAY * 1000); // Restore from the db all the penalties of the votes, it doesn't matter if its 0. So we can do it only once at start Connection con = null; PreparedStatement statement = null; ResultSet rset = null; try { con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("SELECT * FROM vote_system"); rset = statement.executeQuery(); while(rset.next()) { final String value = rset.getString("value"); final long time = rset.getLong("penalty_time"); switch(rset.getInt("value_type")) { // Account Name case 0: { _accountPenalties.put(value, time); break; } // Ip Address case 1: { _ipPenalties.put(value, time); break; } // Hwid case 2: { _hwidPenalties.put(value, time); break; } } } } catch(Exception e) {} } @Override public boolean useVoicedCommand(String command, Player activeChar, String params) { if(command.equalsIgnoreCase("vote")) { try { // No connection, no vote if(activeChar.getNetConnection() == null) return false; if(!Config.ENABLE_VOTE) { activeChar.sendMessage("Voting is currently disabled!"); return false; } // Min lvl 40 if(activeChar.getLevel() < 1) { activeChar.sendMessage("You need to be at least level 1 to use this command."); return false; } final long currentTime = System.currentTimeMillis(); // Synerge - Check if voting is not blocked. If a web connection ocurrs, then the vote will be block for everyone for 15 minutes if(VoteRead._siteBlockTime >= currentTime) { activeChar.sendMessage("There are problems with the connection to the vote site, so it has been disabled for some minutes. Try again later"); return false; } // Check player vote reuse if(activeChar.getAccessLevel() < 1 && _votePlayerReuses.containsKey(activeChar.getObjectId())) { if(_votePlayerReuses.get(activeChar.getObjectId()) > currentTime) { activeChar.sendMessage("You can use this command only once every 5 minutes."); return false; } } _votePlayerReuses.put(activeChar.getObjectId(), currentTime + VOTE_COMMAND_REUSE); // Getting IP of client, here we will have to check for HWID when we have LAMEGUARD final String IPClient = activeChar.getIP(); final String HWID = (activeChar.getHWID() != null ? activeChar.getHWID() : ""); // Check the penalties of the player to see if he can vote again if(!checkPlayerPenalties(activeChar, IPClient, HWID, true)) return false; // Return 0 if he didnt voted. Date when he voted on website /*final long dateHeVotedOnWebsite = VoteRead.checkVotedIP(IPClient); if(dateHeVotedOnWebsite < 1) { activeChar.sendMessage("To claim reward, you need to vote on all banners!"); return false; }*/ if (!hasVoted(activeChar)) { activeChar.sendMessage("To claim reward, you need to vote!"); return false; } // Add the vote penalty to the player addNewPlayerPenalty(activeChar, IPClient, HWID); // Give the rewards giveRewards(activeChar); activeChar.sendMessage("Successfully rewarded."); return true; } catch(Exception e) { e.printStackTrace(); } } return false; } // Thread to send to all players that didn't voted yet to vote for the server protected static class VoteAnnounceTask implements Runnable { @Override public void run() { if(Config.VOTE_REWARD_MSG.isEmpty()) return; final Say2 announce = new Say2(0, ChatType.ANNOUNCEMENT, "", Config.VOTE_REWARD_MSG); final Iterable<Player> world = GameObjectsStorage.getAllPlayersForIterate(); for(Player player : world) { if(player == null || player.getNetConnection() == null) continue; // No offline or store mode if(player.isInStoreMode()) continue; // If the player has an active penalty means that he already voted if(!checkPlayerPenalties(player, player.getIP(), player.getHWID(), false)) continue; player.sendPacket(announce); } } } /** * Gives to the player all the vote rewards * * @param player */ protected static void giveRewards(Player player) { // First give the permanent item Functions.addItem(player, PERMANENT_CATEGORY[0], PERMANENT_CATEGORY[1], "VoteReward Permanent"); // First give the vote main random reward final int[] reward = getReward(); Functions.addItem(player, reward[0], reward[1], "VoteReward Main"); // Then give some random rewards for(double[] item : RANDOM_CATEGORY) { if(Rnd.chance(item[2])) { Functions.addItem(player, (int) item[0], (long) item[1], "Vote Random Reward"); return; } } } /** * Puts new penalties for the account name, ip and hwid of the player after he succesfully voted * * @param activeChar * @param IPClient * @param HWID */ protected static void addNewPlayerPenalty(Player activeChar, String IPClient, String HWID) { final long newPenalty = System.currentTimeMillis() + VOTE_PENALTY; _accountPenalties.put(activeChar.getAccountName(), newPenalty); _ipPenalties.put(IPClient, newPenalty); _hwidPenalties.put(HWID, newPenalty); // Also store the penalties in the db Connection con = null; PreparedStatement statement = null; try { con = DatabaseFactory.getInstance().getConnection(); statement = BatchStatement.createPreparedStatement(con, "REPLACE INTO vote_system(value_type, value, penalty_time) VALUES (?, ?, ?)"); final String[] values = new String[] { activeChar.getAccountName(), IPClient, HWID }; for(ValueType type : ValueType.values()) { statement.setInt(1, type.ordinal()); statement.setString(2, values[type.ordinal()]); statement.setLong(3, newPenalty); statement.addBatch(); } statement.executeBatch(); } catch(Exception e) {} } /** * @param activeChar * @param IPClient * @param HwID * @param sendMessage * @return Returns true if the player doesn't have an active penalty after voting */ protected static boolean checkPlayerPenalties(Player activeChar, String IPClient, String HwID, boolean sendMessage) { final long accountPenalty = checkPenalty(ValueType.ACCOUNT_NAME, activeChar.getAccountName()); final long ipPenalty = checkPenalty(ValueType.IP_ADRESS, IPClient); final long hwidPenalty = checkPenalty(ValueType.HWID, HwID); final int penalty = (int) ((Math.max(accountPenalty, Math.max(ipPenalty, hwidPenalty)) - System.currentTimeMillis()) / (60 * 1000L)); if(penalty > 0) { if(sendMessage) { if(penalty > 60) { activeChar.sendMessage("You can vote only once every 12 hours. You still have to wait " + (penalty / 60) + " hours " + (penalty % 60) + " minutes."); } else { activeChar.sendMessage("You can vote only once every 12 hours. You still have to wait " + penalty + " minutes."); } } return false; } return true; } /** * @param type * @param value * @return Returns the penalty of a particular type and value if it exists */ private static long checkPenalty(ValueType type, String value) { switch(type) { case ACCOUNT_NAME: { if(_accountPenalties.containsKey(value)) return _accountPenalties.get(value); break; } case IP_ADRESS: { if(_ipPenalties.containsKey(value)) return _ipPenalties.get(value); break; } case HWID: { if(_hwidPenalties.containsKey(value)) return _hwidPenalties.get(value); break; } } return 0; } public static int[] getReward() { return MISC_CATEGORY[Rnd.get(MISC_CATEGORY.length)]; } @Override public void onLoad() { VoicedCommandHandler.getInstance().registerVoicedCommandHandler(this); } @Override public void onReload() { // } @Override public void onShutdown() { // } @Override public String[] getVoicedCommandList() { return COMMANDS_LIST; } // New Topzone Vote Reward System (API) public String getApiEndpoint(Player player) { return String.format("https://api.l2topzone.com/v1/vote?token=%s&ip=%s", Config.VOTE_TOPZONE_APIKEY, player.getIP()); } public boolean hasVoted(Player player) { try { String endpoint = getApiEndpoint(player); if (endpoint.startsWith("err")) return false; String voted = grabValue(getApiResponse(endpoint), "\"isVoted\":", ",\"serverTime\""); return tryParseBool(voted); } catch (Exception e) { player.sendMessage("Something went wrong. Please try again later."); e.printStackTrace(); } return false; } public boolean tryParseBool(String bool) { if (bool.startsWith("1")) return true; CharSequence cs = "voteTime"; if (bool.contains(cs)) { //System.out.println("Contains \"voteTime\""); String newbool = bool.substring(0, 4); //System.out.println("Bool to pass: " + newbool); return Boolean.parseBoolean(newbool); } return Boolean.parseBoolean(bool.trim()); } public String getApiResponse(String endpoint) { StringBuilder stringBuilder = new StringBuilder(); try { URL url = new URL(endpoint); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.addRequestProperty("User-Agent", "Mozilla/4.76"); connection.setRequestMethod("GET"); connection.setReadTimeout(5 * 1000); connection.connect(); try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) { String line = null; while ((line = reader.readLine()) != null) { stringBuilder.append(line + "\n"); } } connection.disconnect(); System.out.println(stringBuilder.toString());// return stringBuilder.toString(); } catch (Exception e) { System.out.println("Something went wrong in VoteBase::getApiResponse"); e.printStackTrace(); return "err"; } } private static String grabValue(String str, String open, String close) { final int INDEX_NOT_FOUND = -1; if (str == null || open == null || close == null) { return null; } int start = str.indexOf(open); if (start != INDEX_NOT_FOUND) { int end = str.indexOf(close, start + open.length()); if (end != INDEX_NOT_FOUND) { return str.substring(start + open.length(), end); } } return null; } }
  3. Is that really possible to see enemy player's HP MP CP bar in PvP or Normal. like in Olympiad? can it be done with only server side? because i dont know too much about Interface.u - .dat side.
  4. Server Start Date : 08.10.2020 10 August 2020 - 22:00 Web Site: http://l2olddragon.com Forum: http://forum.l2olddragon.com For All Features: http://forum.l2olddragon.com/index.php?forums/server-features.15/ L2OldDragon Stacksub Main + 1 Hello to all L2 lovers We have good news to all L2 community. We have been devoloping this project for 1 year We finally have finished our Interlude server project with great care. The first difference of our server is having a unique Stacksub system. Be ready for the long journey of your life just like old times. My team and I were thinking open a server similar to "old school" since long time ago. I can say that we all have growed up with this game's magic, love and friendship . My first meeting with this game started with Dragon 15x when it has C4 chronicle. We all have played for years this amazing server with full enjoy until it's upgrade the chronicle to H5. Unfortunately after that chronicle we couldn't adapt ourselves to game soul. I won't deny that the similarity of this server to Dragon 15x. The only reason that we wanted to open a server is this server anyway. Thus we have decided to open a new server that should be similar to Old Dragon server to catch all the feeling again. That is why the server name is "L2OldDragon" and why the system is Stacksub. I will continue to write the rest later. Until then take care. About Unique Stacksub System What makes our Stacksub system unique is it's has "Retailsub" system. You can only add 1 Stacksub to your main class. That means you can have max "Main + 1 Stacksub". The normal Subclass that you add from Grand Master doesnt count as a Stacksub. Your skills will be not combined with the other class, if you chose your Subclass from Grand Master You can add up to 3 Subclasses from Grand Master. To make your character Stacksub, you must talk to "Stacksub Manager" who is standing near of the Olympiad Statue in Aden Town.[/QUOTE] Methods There are two type of Stacksubs in this unique system. 1. Method Normal Stacksub: You can directly add a Stacksub to your character From "Stacksub Manager" when you finished your 3rd class quest and having 1 Longhorn by killing Longhorn Golkonda. 2. Method Retail Stacksub: You can add a Stacksub after adding a normal Subclass from a Grand Master. Thus you can access to the other classes which is they are normally inaccessible Examples For example: In first method your main class is Doomcryer. If you want to add a Stacksub to this class you can't choose any other class From "Stacksub Manager" except these classes "Titan , Grand Khavatari and Dominator". That's mean you cant leave from your Race circle. If you chose one of that classes you became directly a Stacksub with your chosen class. From now you can use two classes skills. Second example: Let's say your Main class is a Doomcryer again and you have spoken to one of "Human's Grand Master" not to "Stacksub Manager !!!!!". And you wanted to add a human Subclass. This time you have plenty of choices to make. You can choose a Necromancer, Hawkeye, or Sorcerer etc etc. Let's say you choose Necromancer as a second class. Your skills will not combine with that class. But When you go to "Stacksub Manager" as Necromancer and wanted to add Stacksub to your Subclass char. You be able to choose a Tiatan, Khavatari or a Dominator for your Necromancer class. Thus you will be able to do what is not possible in Method 1. you can make "Necromancer + Titan" etc etc. The second method may take more time than the first. But it's totally worth it. Usefull Links Mana Potions Laboratory Unique Tattoo System Stacksub Quest Location of Longhorn Golkondas About Stacksub Strong Mobs Treasure Chests Spellbooks [The things this server haven't No Auto Learn Skill No Free 3rd Class Quest No Autopick No Skill Learn without Spellbooks No Global Gatekeeper No Gm Shop No Absurd Custom No Scheme Buffer No Starting with ready items No Starting in custom location No Free Subclass without the Quest No Free Nobless without the Quest No Endless buff, dance and song time No Going to Grand Boss without the Quest About Server Rate Rates Exp : 15x SP : 15x Adena :15x Drop : 15x Spoil : 15x Quest Rate: 5x Quest Reward 1x Enchants All Rates are same with Retail Weapon : 66% Armor : 66% Jewel : 66% Blessed Weapon 70% Blessed Armor 70% Blessed Jewel 70% Weapon Max : 20 Armor Max : 20 Jewel Max : 20 Augments All Rates are same with Retail Low Skill Chance : 5% Mid Skill Chance :10% High Skill Chance : 15% Top Skill Chance : 20% Low Glow Chance : 20% Mid Glow Chance : 40% High Glow Chance : 70% Top Glow Chance : 100% ]Buffs All Buff Slots are same with Retail Buffs 20 min Dance and Songs 2 min Max Buff : 26+4 (Divine Insipration) Max Debuf : 6 Newbie Buffer to 80 Lv Voiced Commands .menu : Account Panel .sellbuffs : Sell Buff Panel .offline : Offline Shop .votereward .boss
  5. Whenever i want to do my nobless quest i am gettin this error. first of all i am taking the quest at lv 55 with my subclass character from Talien who is standing near of the stairs in Aden with . after taking the quest He is saying me to meet with Gabrielle in giran town i am arriving to gabrielle clicking her and whenever i clicked the quest button from the panel i am getting this code i am using L2jFrozen Interlude Rev 3160 [31/07 06:05:17] Client: [Character: dwarf - Account: rere - IP: 85.32.16.47] - Failed reading: [C] 21 RequestBypassToServer ; org/omg/PortableServer/POAManagerPackage/State java.lang.NoClassDefFoundError: org/omg/PortableServer/POAManagerPackage/State at l2jorion.game.model.actor.instance.L2NpcInstance.showQuestChooseWindow(L2NpcInstance.java:2174) at l2jorion.game.model.actor.instance.L2NpcInstance.showQuestWindowGeneral(L2NpcInstance.java:2319) at l2jorion.game.model.actor.instance.L2NpcInstance.onBypassFeedback(L2NpcInstance.java:1600) at l2jorion.game.network.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:471) at l2jorion.game.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:82) at l2jorion.game.network.L2GameClient.run(L2GameClient.java:1142) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:832) java.lang.NoClassDefFoundError: org/omg/PortableServer/POAManagerPackage/State at l2jorion.game.model.actor.instance.L2NpcInstance.showQuestChooseWindow(L2NpcInstance.java:2174) at l2jorion.game.model.actor.instance.L2NpcInstance.showQuestWindowGeneral(L2NpcInstance.java:2319) at l2jorion.game.model.actor.instance.L2NpcInstance.onBypassFeedback(L2NpcInstance.java:1600) at l2jorion.game.network.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:471) at l2jorion.game.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:82) at l2jorion.game.network.L2GameClient.run(L2GameClient.java:1142) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:832) ------------------------------------------------------------------------------------------------------------------------------------------- L2NpcInstance.java:2174 if ((qs == null) || qs.getState().equals(State.ACTIVE)) { state = ""; } else if (qs.isStarted() && (qs.getInt("cond") > 0)) { state = " (In Progress)"; ------------------------------------------------------------------------------------------------------------------------------------------- L2NpcInstance.java:2319 showQuestChooseWindow(player, options.toArray(new Quest[options.size()])); } else if (options.size() == 1) { showQuestWindowSingle(player, options.get(0).getName()); } else { showQuestWindowSingle(player, ""); ------------------------------------------------------------------------------------------------------------------------------------------- The Quest of Nobbless # Made by disKret import sys from l2jorion.game.model.quest import State from l2jorion.game.model.quest import QuestState from l2jorion.game.model.quest.jython import QuestJython as JQuest qn = "241_PossessorOfAPreciousSoul_1" #NPC STEDMIEL = 30692 GABRIELLE = 30753 GILMORE = 30754 KANTABILON = 31042 NOEL = 31272 RAHORAKTI = 31336 TALIEN = 31739 CARADINE = 31740 VIRGIL = 31742 KASSANDRA = 31743 OGMAR = 31744 #QUEST ITEM LEGEND_OF_SEVENTEEN = 7587 MALRUK_SUCCUBUS_CLAW = 7597 ECHO_CRYSTAL = 7589 POETRY_BOOK = 7588 CRIMSON_MOSS = 7598 RAHORAKTIS_MEDICINE = 7599 LUNARGENT = 6029 HELLFIRE_OIL = 6033 VIRGILS_LETTER = 7677 #CHANCE # CRIMSON_MOSS_CHANCE = 5 MALRUK_SUCCUBUS_CLAW_CHANCE = 10 #MOB BARAHAM = 27113 class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent (self,event,st) : htmltext = event cond = st.getInt("cond") if event == "31739-4.htm" : if cond == 0 and st.getPlayer().isSubClassActive() : st.setState(STARTED) st.set("cond","1") st.playSound("ItemSound.quest_accept") if event == "30753-2.htm" : if cond == 1 and st.getPlayer().isSubClassActive() : st.set("cond","2") st.playSound("ItemSound.quest_middle") if event == "30754-2.htm" : if cond == 2 and st.getPlayer().isSubClassActive() : st.set("cond","3") st.playSound("ItemSound.quest_middle") if event == "31739-8.htm" : if cond == 4 and st.getPlayer().isSubClassActive() : st.set("cond","5") st.takeItems(LEGEND_OF_SEVENTEEN,1) st.playSound("ItemSound.quest_middle") if event == "31042-2.htm" : if cond == 5 and st.getPlayer().isSubClassActive() : st.set("cond","6") st.playSound("ItemSound.quest_middle") if event == "31042-5.htm" : if cond == 7 and st.getPlayer().isSubClassActive() : st.set("cond","8") st.takeItems(MALRUK_SUCCUBUS_CLAW,10) st.giveItems(ECHO_CRYSTAL,1) st.playSound("ItemSound.quest_middle") if event == "31739-12.htm" : if cond == 8 and st.getPlayer().isSubClassActive() : st.set("cond","9") st.takeItems(ECHO_CRYSTAL,1) st.playSound("ItemSound.quest_accept") if event == "30692-2.htm" : if cond == 9 and st.getPlayer().isSubClassActive() : st.set("cond","10") st.giveItems(POETRY_BOOK,1) st.playSound("ItemSound.quest_accept") if event == "31739-15.htm" : if cond == 10 and st.getPlayer().isSubClassActive() : st.set("cond","11") st.takeItems(POETRY_BOOK,1) st.playSound("ItemSound.quest_accept") if event == "31742-2.htm" : if cond == 11 and st.getPlayer().isSubClassActive() : st.set("cond","12") st.playSound("ItemSound.quest_accept") if event == "31744-2.htm" : if cond == 12 and st.getPlayer().isSubClassActive() : st.set("cond","13") st.playSound("ItemSound.quest_accept") if event == "31336-2.htm" : if cond == 13 and st.getPlayer().isSubClassActive() : st.set("cond","14") st.playSound("ItemSound.quest_accept") if event == "31336-5.htm" : if cond == 15 and st.getPlayer().isSubClassActive() : st.set("cond","16") st.takeItems(CRIMSON_MOSS,5) st.giveItems(RAHORAKTIS_MEDICINE,1) st.playSound("ItemSound.quest_accept") if event == "31743-2.htm" : if cond == 16 and st.getPlayer().isSubClassActive() : st.set("cond","17") st.takeItems(RAHORAKTIS_MEDICINE,1) st.playSound("ItemSound.quest_accept") if event == "31742-5.htm" : if cond == 17 and st.getPlayer().isSubClassActive() : st.set("cond","18") st.playSound("ItemSound.quest_accept") if event == "31740-2.htm" : if cond == 18 and st.getPlayer().isSubClassActive() : st.set("cond","19") st.playSound("ItemSound.quest_accept") if event == "31272-2.htm" : if cond == 19 and st.getPlayer().isSubClassActive() : st.set("cond","20") st.playSound("ItemSound.quest_accept") if event == "31272-5.htm" : if (st.getPlayer().isProcessingRequest() or st.getPlayer().isProcessingTransaction()) : st.getPlayer().sendMessage("Another transaction in progress..") elif cond == 20 and st.getQuestItemsCount(LUNARGENT) >= 5 and st.getQuestItemsCount(HELLFIRE_OIL) and st.getPlayer().isSubClassActive() : st.takeItems(LUNARGENT,5) st.takeItems(HELLFIRE_OIL,1) st.set("cond","21") st.playSound("ItemSound.quest_accept") if event == "31740-5.htm" : if cond == 21 and st.getPlayer().isSubClassActive() : st.giveItems(VIRGILS_LETTER,1) st.addExpAndSp(263043,0) st.set("cond","0") st.playSound("ItemSound.quest_finish") st.setState(COMPLETED) return htmltext def onTalk (self,npc,player): htmltext = "<html><body>You are either not carrying out your quest or don't meet the criteria.</body></html>" st = player.getQuestState(qn) if not st : return htmltext npcId = npc.getNpcId() id = st.getState() if npcId != TALIEN and id != STARTED : return htmltext cond = st.getInt("cond") id = st.getState() if player.isSubClassActive() : if npcId == TALIEN : if cond == 0 : if id == COMPLETED : htmltext = "<html><body>This quest has already been completed.</body></html>" elif player.getLevel() < 50 : htmltext = "31739-2.htm" st.exitQuest(1) elif player.getLevel() >= 50 : htmltext = "31739-1.htm" elif cond == 1 : htmltext = "31739-5.htm" elif cond == 4 and st.getQuestItemsCount(LEGEND_OF_SEVENTEEN) == 1 : htmltext = "31739-6.htm" elif cond == 5 : htmltext = "31739-9.htm" elif cond == 8 and st.getQuestItemsCount(ECHO_CRYSTAL) == 1 : htmltext = "31739-11.htm" elif cond == 9 : htmltext = "31739-13.htm" elif cond == 10 and st.getQuestItemsCount(POETRY_BOOK) == 1 : htmltext = "31739-14.htm" elif cond == 11 : htmltext = "31739-16.htm" elif npcId == GABRIELLE : if cond == 1 : htmltext = "30753-1.htm" elif cond == 2 : htmltext = "30753-3.htm" elif npcId == GILMORE : if cond == 2 : htmltext = "30754-1.htm" elif cond == 3 : htmltext = "30754-3.htm" elif npcId == KANTABILON : if cond == 5 : htmltext = "31042-1.htm" elif cond == 6 : htmltext = "31042-4.htm" elif cond == 7 and st.getQuestItemsCount(MALRUK_SUCCUBUS_CLAW) == 10 : htmltext = "31042-3.htm" elif cond == 8 : htmltext = "31042-6.htm" elif npcId == STEDMIEL : if cond == 9 : htmltext = "30692-1.htm" elif cond == 10 : htmltext = "30692-3.htm" elif npcId == VIRGIL : if cond == 11 : htmltext = "31742-1.htm" elif cond == 12 : htmltext = "31742-3.htm" elif cond == 17 : htmltext = "31742-4.htm" elif cond == 18 : htmltext = "31742-6.htm" elif npcId == OGMAR : if cond == 12 : htmltext = "31744-1.htm" elif cond == 13 : htmltext = "31744-3.htm" elif npcId == RAHORAKTI : if cond == 13 : htmltext = "31336-1.htm" elif cond == 14 : htmltext = "31336-4.htm" elif cond == 15 and st.getQuestItemsCount(CRIMSON_MOSS) == 5 : htmltext = "31336-3.htm" elif cond == 16 : htmltext = "31336-6.htm" elif npcId == KASSANDRA : if cond == 16 and st.getQuestItemsCount(RAHORAKTIS_MEDICINE) == 1 : htmltext = "31743-1.htm" elif cond == 17 : htmltext = "31743-3.htm" elif npcId == CARADINE : if cond == 18 : htmltext = "31740-1.htm" elif cond == 19 : htmltext = "31740-3.htm" elif cond == 21 : htmltext = "31740-4.htm" elif npcId == NOEL : if cond == 19 : htmltext = "31272-1.htm" elif cond == 20 and st.getQuestItemsCount(LUNARGENT) < 5 and not st.getQuestItemsCount(HELLFIRE_OIL) : htmltext = "31272-4.htm" elif cond == 20 and st.getQuestItemsCount(LUNARGENT) >= 5 and st.getQuestItemsCount(HELLFIRE_OIL) : htmltext = "31272-3.htm" elif cond == 21 : htmltext = "31272-7.htm" else : htmltext = "31739-2.htm" return htmltext def onKill(self,npc,player,isPet): npcId = npc.getNpcId() if npcId == BARAHAM: # get a random party member who is doing this quest and is at cond == 3 partyMember = self.getRandomPartyMember(player, "3") if partyMember : st = partyMember.getQuestState(qn) st.set("cond","4") st.giveItems(LEGEND_OF_SEVENTEEN,1) st.playSound("ItemSound.quest_itemget") elif npcId in [20244,20245,20283,20284] : # get a random party member who is doing this quest and is at cond == 6 partyMember = self.getRandomPartyMember(player, "6") if partyMember : st = partyMember.getQuestState(qn) chance = st.getRandom(100) if MALRUK_SUCCUBUS_CLAW_CHANCE >= chance and st.getQuestItemsCount(MALRUK_SUCCUBUS_CLAW) < 10 : st.giveItems(MALRUK_SUCCUBUS_CLAW,1) st.playSound("ItemSound.quest_itemget") if st.getQuestItemsCount(MALRUK_SUCCUBUS_CLAW) == 10 : st.set("cond","7") st.playSound("ItemSound.quest_middle") elif npcId in range(21508,21513) : # get a random party member who is doing this quest and is at cond == 14 partyMember = self.getRandomPartyMember(player, "14") if partyMember : st = partyMember.getQuestState(qn) chance = st.getRandom(100) if CRIMSON_MOSS_CHANCE >= chance and st.getQuestItemsCount(CRIMSON_MOSS) < 5 : st.giveItems(CRIMSON_MOSS,1) st.playSound("ItemSound.quest_itemget") if st.getQuestItemsCount(CRIMSON_MOSS) == 5 : st.set("cond","15") st.playSound("ItemSound.quest_middle") return QUEST = Quest(241,qn,"Possessor Of A Precious Soul - 1") CREATED = State('Start', QUEST) STARTED = State('Started', QUEST) COMPLETED = State('Completed', QUEST) QUEST.setInitialState(CREATED) QUEST.addStartNpc(TALIEN) QUEST.addTalkId(TALIEN) QUEST.addTalkId(STEDMIEL) QUEST.addTalkId(GABRIELLE) QUEST.addTalkId(GILMORE) QUEST.addTalkId(KANTABILON) QUEST.addTalkId(NOEL) QUEST.addTalkId(RAHORAKTI) QUEST.addTalkId(CARADINE) QUEST.addTalkId(VIRGIL) QUEST.addTalkId(KASSANDRA) QUEST.addTalkId(OGMAR) QUEST.addKillId(BARAHAM) QUEST.addKillId(20244) QUEST.addKillId(20245) QUEST.addKillId(20283) QUEST.addKillId(21508) QUEST.addKillId(21509) QUEST.addKillId(21510) QUEST.addKillId(21511) QUEST.addKillId(21512) STARTED.addQuestDrop(BARAHAM,LEGEND_OF_SEVENTEEN,1) STARTED.addQuestDrop(BARAHAM,MALRUK_SUCCUBUS_CLAW,1) STARTED.addQuestDrop(BARAHAM,ECHO_CRYSTAL,1) STARTED.addQuestDrop(BARAHAM,POETRY_BOOK,1) STARTED.addQuestDrop(BARAHAM,CRIMSON_MOSS,1) STARTED.addQuestDrop(BARAHAM,RAHORAKTIS_MEDICINE,1) STARTED.addQuestDrop(BARAHAM,VIRGILS_LETTER,1)
  6. can i open a server with evaluate version of L2jFrozen.15 ? i am getting dc in every 15 mins sometime i cant login to my server i was using l2jmobious l2jbrasil l2jserver i haven't problem with these.
  7. L2StackSub No Donate (And will newer be) Main Site http://www.l2stacksub.com/ Comunity / Forum http://forum.l2stacksub.com/ Hello to everyone. This server we prepared with long labor. It has a slightly different structure than the others. Our server is H5. Stuck Sub (Multi Skill) system is used. Unlike many other exaggerated stuck sub servers, it has a more serious and balanced system. The Stuck Sub system is Main + 1. the class you open first and the next class's skills combine with each other. In the game you can combine the special abilities of your weapons. for example (Arcana Mace + Acumen + Mana Up + Empower). In order to achieve this feature, you have to acquire other special abilities of the weapon. The special abilities we see as unnecessary are changed and new special abilities have been added. several of them are examples. The (Draconic Bow + Cheap Shot) Cheap Shot feature allows you to shoot cheaply. but in our opinion this feature does not have much effect on Player vs Player. We changed this feature with Might. The (Might) feature gives you + 16% P.Atk. many such useless features have been rendered useful. There is a unique Tattoo System in our server. It can be upgraded from level 1 to level 5. and extremely balanced. it raises a feature, but on the other hand reduces it from a feature. for example. (Tatto Of Attack Speed - Sacriface P.Atk Lv.1) this tattoo gives you +2% Attack Speed. but also Decrease -8%. P.Atk. But if the level of the tattoo increases. The feature is increased. but minus value of the tattoo is decrease. for example. Tattoo Of Attack Speed - Sacriface Power Lv.5 this tattoo gives you +6% Attack Speed. -5% Power Atack. These tattoos can be used up to two. Available for Right and Left. A person wearing 2 Tattoo Of Attack Speed will get an Attack Speed +12%. And each tattoo has 2 different features. for example. (Tattoo Of Attack Speed - Sacriface P.Atk) (Tattoo Of Attack Speed - Sacriface P.Def and M.Def ) and many more beautiful features you will discover as you play. Server Rates XP - 12x SP - 14x Drop - 15x Spoil - 15x Quest - 5x Adena - 25x Max Enchant Rates Weapon - 16 Armor - 12 Jewel - 12 T-Shirt - 12 Enchant Chance Rates Normal Scroll Weapon - 66% Armor - 70% Jewel - 70% T-Shirt - 70% Enchant Chance Rates Blessed Scroll Weapon - 70% Armor - 75% Jewel - 75% T-Shirt - 75% Buff Features Dance & Song Limit = 16 Buff Limit = 36 Debuff Limit = 5 Olympiad Features Evey day at 18:00 Epic Boss Spawn Features Valakas - 48 Hours Antharas - 48 Hours Baium - 48 Hours Ant Queen - 48 Hours Zaken - 48 Hours Frintezza - 48 Hours Core - 48 Hours Orfen - 48 Hours Baylor - 48 Hours Sailren - 48 Hours Freya - 48 Hours
  8. Finaly i could edit interfere.u file with an decoder. i did change a few code. evventualy i can show enemy healt and mana bar. but when i hit the enemy Current hp doesnt decrease or increase. if I click on the enemy when i kill monster. enemy hp bar show empty stick. when i click a mob with full hp then after click the enemy. the enemy hp bar is full. i gues i need to configure .java codes too. but it is so hard who is dont know too much java developer.
  9. there is no L2PcInstance.java file in my source. i think the owner of this source did change this .java file. but content of the L2PcInstance.java is %90 same in Player.java which is have my source. i think i can handle TargetStatusWnd.uc HandleTargetUpdate() thing with UTPT i dont know. at least i will try.
  10. its realy good and enogh for me . but with mp and cp bar more good than this. i did search in russian and brazillian pages. they are found a few way to make this function easely. example : and here the codes https://forum.zone-game.info/showpost.php?p=424868&amp;postcount=83 but i am using different emulator. probably they are using l2jserver or their emulator. i dont know that how to Adapt that codes on my Emulator L2JMythras.
  11. its best way to make good thing in game if you have money :). but i dont have:) tnks for reply
  12. yes i want to use just in specifc cases. believe me i couldn't do it since morning :). i did look in olympiad.java files. StaticObject.Java. Player.java. but i coultn't make anything.
×
×
  • Create New...