Ugleethyn Posted January 27, 2014 Posted January 27, 2014 (edited) Τσεκάρετε μία την πικ ! Όταν πάει να πεθάνει το life πάει στο 0 και δεν πεθαίνει ! Σε PvP είναι μια χαρά στα mobs μόνο την παθαίνει .... Όποιος μπορεί να με help να απαντήσει εδώ η να στείλει PM Pack = L2JFrozen Edited January 27, 2014 by DukeAwesome Quote
0 Ugleethyn Posted January 28, 2014 Author Posted January 28, 2014 Ναι... multyfaction zone/rec item/custom lvl στα sub/pass/siege manager Quote
0 Ugleethyn Posted January 28, 2014 Author Posted January 28, 2014 Ίσως είναι κι'άλλα αλλά δεν θυμάμαι .. :Ρ αλλα νομίζω μόνο αυτά Quote
0 Aphelion Posted January 29, 2014 Posted January 29, 2014 Δειξε λιγο τον κωδικα του: multyfaction zone (Μultifaction zone) Quote
0 Ugleethyn Posted January 29, 2014 Author Posted January 29, 2014 package com.l2jfrozen.gameserver.model.zone.type; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.List; import java.util.Properties; import com.l2jfrozen.gameserver.datatables.SkillTable; import com.l2jfrozen.gameserver.model.L2Character; import com.l2jfrozen.gameserver.model.L2Skill; import com.l2jfrozen.gameserver.model.L2Summon; import com.l2jfrozen.gameserver.model.PcInventory; import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.model.zone.L2ZoneType; import com.l2jfrozen.gameserver.thread.ThreadPoolManager; import com.l2jfrozen.util.random.Rnd; import javolution.util.FastList; /** * * @author Wyatt * @version 1.3 * */ public class L2MultiFunctionZone extends L2ZoneType { public L2MultiFunctionZone(int id) { super(id); loadConfigs(); } public static boolean pvp_enabled, restart_zone, store_zone, logout_zone, revive_noblesse, revive_heal, revive, remove_buffs, remove_pets, give_noblesse; static int radius, enchant, revive_delay; static int[][] spawn_loc; L2Skill noblesse = SkillTable.getInstance().getInfo(1323, 1); private static List<String> items = new FastList<String>(); private static List<String> classes = new FastList<String>(), grades = new FastList<String>(); public static List<int[]> rewards = new ArrayList<int[]>(); static String[] gradeNames = {"","D","C","B","A","S","S80","S84"}; @Override protected void onEnter(L2Character character) { character.setInsideZone(L2Character.ZONE_NOSUMMONFRIEND, true); character.setInsideZone(L2Character.ZONE_MULTIFUNCTION, true); if (character instanceof L2PcInstance) { L2PcInstance activeChar = ((L2PcInstance) character); if(classes != null && classes.contains(""+activeChar.getClassId().getId())) { activeChar.teleToLocation(10468,-25303,-3697); activeChar.sendMessage("Your class is not allowed in the MultiFunction zone."); return; } for(L2ItemInstance o : activeChar.getInventory()._items) { if(o.isEquipable() && o.isEquipped() && !checkItem(o)) { int slot = activeChar.getInventory().getSlotFromItem(o); activeChar.getInventory().unEquipItemInBodySlotAndRecord(slot); activeChar.sendMessage(o.getItemName()+" unequiped because is not allowed inside this zone."); } } activeChar.sendMessage("You entered in a MultiFunction zone."); clear(activeChar); if(give_noblesse) noblesse.getEffects(activeChar, activeChar); if(pvp_enabled) activeChar.updatePvPFlag(1); } } @Override protected void onExit(L2Character character) { character.setInsideZone(L2Character.ZONE_NOSUMMONFRIEND, false); character.setInsideZone(L2Character.ZONE_MULTIFUNCTION, false); if (character instanceof L2PcInstance) { L2PcInstance activeChar = ((L2PcInstance) character); activeChar.sendMessage("You left from a MultiFunction zone."); if(pvp_enabled) activeChar.stopPvPFlag(); } } @Override public void onDieInside(final L2Character character) { if (character instanceof L2PcInstance) { final L2PcInstance activeChar = ((L2PcInstance) character); if(revive) { ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() { @Override public void run() { activeChar.doRevive(); heal(activeChar); int[] loc = spawn_loc[Rnd.get(spawn_loc.length)]; activeChar.teleToLocation(loc[0]+Rnd.get(-radius,radius), loc[1]+Rnd.get(-radius,radius), loc[2]); } },revive_delay*1000); } } } @Override public void onReviveInside(L2Character character) { if (character instanceof L2PcInstance) { L2PcInstance activeChar = ((L2PcInstance) character); if(revive_noblesse) noblesse.getEffects(activeChar, activeChar); if(revive_heal) heal(activeChar); } } static void heal(L2PcInstance activeChar) { activeChar.setCurrentHp(activeChar.getMaxHp()); activeChar.setCurrentCp(activeChar.getMaxCp()); activeChar.setCurrentMp(activeChar.getMaxMp()); } private void clear (L2PcInstance player) { if(remove_buffs) { player.stopAllEffects(); if(remove_pets) { L2Summon pet = player.getPet(); if(pet!= null) { pet.stopAllEffects(); pet.unSummon(player); } } } else { if(remove_pets) { L2Summon pet = player.getPet(); if(pet!= null) { pet.unSummon(player); } } } } public static void givereward(L2PcInstance player) { if(player.isInsideZone(L2Character.ZONE_MULTIFUNCTION)) { for (int[] reward : rewards) { PcInventory inv = player.getInventory(); inv.addItem("Custom Reward", reward[0], reward[1], player, player); } } } public static boolean checkItem (L2ItemInstance item) { int o = item.getItem().getCrystalType(); int e = item.getEnchantLevel(); if(enchant != 0 && e >= enchant) { return false; } if(grades.contains(gradeNames[o])) return false; if(items != null && items.contains(""+item.getItemId())) return false; return true; } private static void loadConfigs() { try { Properties prop = new Properties(); prop.load(new FileInputStream(new File("./config/MultiFunctionZone.properties"))); pvp_enabled = Boolean.parseBoolean(prop.getProperty("EnablePvP", "False")); spawn_loc = parseItemsList(prop.getProperty("SpawnLoc", "150111,144740,-12248")); revive_delay = Integer.parseInt(prop.getProperty("ReviveDelay", "10")); if(revive_delay != 0) { revive = true; } give_noblesse = Boolean.parseBoolean(prop.getProperty("GiveNoblesse", "False")); String[] propertySplit = prop.getProperty("Items", "").split(","); if (propertySplit.length != 0) { for(String i : propertySplit) { items.add(i); } } propertySplit = prop.getProperty("Grades", "").split(","); if (propertySplit.length != 0) { for(String i : propertySplit) { if(i.equals("D") || i.equals("C") || i.equals("B") || i.equals("A") || i.equals("S") || i.equals("S80") || i.equals("S84")) grades.add(i); } } propertySplit = prop.getProperty("Classes", "").split(","); if (propertySplit.length != 0) { for(String i : propertySplit) { classes.add(i); } } radius = Integer.parseInt(prop.getProperty("RespawnRadius", "500")); enchant = Integer.parseInt(prop.getProperty("Enchant", "0")); remove_buffs = Boolean.parseBoolean(prop.getProperty("RemoveBuffs", "False")); remove_pets = Boolean.parseBoolean(prop.getProperty("RemovePets", "False")); restart_zone = Boolean.parseBoolean(prop.getProperty("NoRestartZone", "False")); store_zone = Boolean.parseBoolean(prop.getProperty("NoStoreZone", "False")); logout_zone = Boolean.parseBoolean(prop.getProperty("NoLogoutZone", "False")); revive_noblesse = Boolean.parseBoolean(prop.getProperty("ReviveNoblesse", "False")); revive_heal = Boolean.parseBoolean(prop.getProperty("ReviveHeal", "False")); propertySplit = prop.getProperty("Rewards", "57,100000").split(";"); for (String reward : propertySplit) { String[] rewardSplit = reward.split(","); if (rewardSplit.length == 2) { try { rewards.add(new int[]{Integer.parseInt(rewardSplit[0]), Integer.parseInt(rewardSplit[1])}); } catch (NumberFormatException nfe) { } } } } catch(Exception e) { e.printStackTrace(); } } 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 != 3) { return null; } result = new int[3]; try { result[0] = Integer.parseInt(valueSplit[0]); } catch (NumberFormatException e) { return null; } try { result[1] = Integer.parseInt(valueSplit[1]); } catch (NumberFormatException e) { return null; } try { result[2] = Integer.parseInt(valueSplit[2]); } catch (NumberFormatException e) { return null; } i++; } return result; } } Quote
0 Ugleethyn Posted January 29, 2014 Author Posted January 29, 2014 Αν παίζει κανα άλλο code για Multyfactionzone (ayto flag και no bp) πείτε γιατί αυτό είναι έχει κάτι buggakia... Quote
0 Aphelion Posted January 29, 2014 Posted January 29, 2014 Συμβαινει σε ολα τα class/με-χωρις αρμορ κτλπ; Θα στειλω ενα PM στον Wyatt να το κοιταξει, ειμαι σιγουρος οτι θα σε βοηθησει. Quote
0 Ugleethyn Posted January 29, 2014 Author Posted January 29, 2014 Ευχαριστώ αδελφέ μου! Το οτι δεν πεθαίνουν απο αυτό είναι? Quote
0 ExCaLiBuR® Posted January 30, 2014 Posted January 30, 2014 den exei kamia sxesi to multifaction zone. to exw perasei kai egw sto l2jfrozen kai den uparxei kapoio provlima.... Quote
0 Dante44® Posted January 31, 2014 Posted January 31, 2014 MultiFunctionZone.properties Edo pera mipos sou exei kapia rithmisi sxetika me ta RB??? Quote
0 Ugleethyn Posted January 31, 2014 Author Posted January 31, 2014 # --------------------------------------------------------------------------- # MultiFunctionZone - custom addon for your server # --------------------------------------------------------------------------- # This option will turn on PvP flag to all people when entering to the zone EnablePvP = True # If set to false, zone will be no-restart zone NoRestartZone = True # If set to false, zone will be no-logout zone NoLogoutZone = False # If set to false, zone will be no-store zone NoStoreZone = False # Give noblesse after revive? ReviveNoblesse = False # Heal after revive? ReviveHeal = True # Delay, in seconds, to wait before revive # 0 to disable ReviveDelay = # Set the spawn points where players will be teleported on revive, if enabled # example:150111,144740,-12248;143665,144418,-12022;144443,147685,-12139 SpawnLoc = 150111,144740,-12248;143665,144418,-12022;144443,147685,-12139 # Random respawn radius RespawnRadius = 500 # If set to true, players will take noblesse blessing when entering GiveNoblesse = True # Remove buffs when entering to the zone RemoveBuffs = False # Remove pets when entering to the zone RemovePets = False # Special rewards when hunting inside this zone # example: 57,100000;14720,1 Rewards = 57,100000;14720,1 # List of Items(id's) that won't be usable inside this area and also will be unequiped when entering # (armor, weapons, scrolls, potions, etc), example: 728,7575, 6383, 1538 Items = # List of Grades that won't be usable inside this area and also will be unequiped when entering # example: D,C,B,A,S,S80,S84 Grades = # Items with this enchant or more won't be usable inside this area and also will be unequiped when entering # 0 to disable Enchant = 0 # Players with one of that classes won't be able to enter to the zone # example: 93,85,12 Classes = 97 Όχι .... Quote
0 ExCaLiBuR® Posted February 1, 2014 Posted February 1, 2014 i perioxi apo to multifaction zone einai to valakas. den nomizw na vgazei provlima me to baium. ektos kai ean einai se ola ta RB. opws eipa poio epanw exw kai egw to multifactionzone kai den vgazei tetoio provlima alakse tin perioxi apo to multifaction zone kai ksana dokimasetw. Quote
Question
Ugleethyn
Τσεκάρετε μία την πικ ! Όταν πάει να πεθάνει το life πάει στο 0 και δεν πεθαίνει ! Σε PvP είναι μια χαρά στα mobs μόνο την παθαίνει ....
Όποιος μπορεί να με help να απαντήσει εδώ η να στείλει PM Pack = L2JFrozen
Edited by DukeAwesome14 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.