Jump to content

Ugleethyn

Legendary Member
  • Posts

    728
  • Joined

  • Last visited

  • Days Won

    17
  • Feedback

    100%

Everything posted by Ugleethyn

  1. έχεις το ίδιο code όμως?
  2. Ευχαριστώ αδελφέ μου! Το οτι δεν πεθαίνουν απο αυτό είναι?
  3. Αν παίζει κανα άλλο code για Multyfactionzone (ayto flag και no bp) πείτε γιατί αυτό είναι έχει κάτι buggakia...
  4. 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; } }
  5. Ίσως είναι κι'άλλα αλλά δεν θυμάμαι .. :Ρ αλλα νομίζω μόνο αυτά
  6. Ναι... multyfaction zone/rec item/custom lvl στα sub/pass/siege manager
  7. Τσεκάρετε μία την πικ ! Όταν πάει να πεθάνει το life πάει στο 0 και δεν πεθαίνει ! Σε PvP είναι μια χαρά στα mobs μόνο την παθαίνει .... Όποιος μπορεί να με help να απαντήσει εδώ η να στείλει PM Pack = L2JFrozen
  8. Ευχαριστώ... Αλλά δεν ξέρω γιατί αλλα δεν το βάζει ...... :/
  9. Το L2 Stunner έχω...
  10. Γεια σας παιδιά λοιπόν προσπαθώ να φτιάξω ένα npc χειροκίνητα αλλά όταν πάω να το βάλω στο db(Custom_Npc) μου διαγράφει κάτι άλλο... :/ πήγα να βάλω augumenter και μου έσβησε το Roy The Cat για τα Class όποιος ξέρει πώς φτιάχνω καινούριο φάκελο μέσα στο custom_npc χωρίς να διαγράψω κάτι άλλο ας μου πει... (Π.Σ. Χρειάζομαι έναν class manager η τα stat του για database να τον ξανά περάσω) Όποιος μπορεί ας με help! :-)
  11. pauler stile m ena minima me to skype sou
×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock