Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - fissban

Páginas: [1] 2 3 4 5 6 ... 13
1
General / Re:Registro de skills sql
« en: Octubre 18, 2018, 02:37:50 pm »
no se registran skills en sql, en xml se crea el skill, si tienes un nuevo handler si deberás hacerlo en el core.

2
Issues / Re:Bugs Survive
« en: Octubre 16, 2018, 09:35:19 pm »
la consola no acusa ningun error al finalizar el evento no?

subi en un zip los los del servidor asi los reviso.

4
Issues / Re:Error con C4_Mods
« en: Octubre 16, 2018, 09:32:52 pm »
la solucion fue configurar el classpatch con la versión correcta de jre a usar por el pack.

5
Issues / Re:Bugs All vs All
« en: Octubre 16, 2018, 09:28:33 pm »
y es q esta echo para que se haga en el coliseo jeje pero vere como modificar esto

6
Issues / Re:Mana potion bug
« en: Octubre 16, 2018, 04:17:56 pm »

7
Issues / Re:Error con C4_Mods
« en: Octubre 15, 2018, 03:34:57 pm »
agregame al skype que figuro como fissban asi me pasas teamwiever y reviso tu problema

8
Issues / Re:Mana potion bug
« en: Octubre 15, 2018, 03:33:18 pm »
proba este parche y veamos si te sigue dando problemas al abusar de las pots.

Código
Index: dist/game/config/security.properties
===================================================================
--- dist/game/config/security.properties (revision 1128)
+++ dist/game/config/security.properties (working copy)
@@ -67,11 +67,11 @@
 # <font color=FFFF00>Default</font> = 50
 floodProtectorInitialSize = 50
 
-# Reuse delays for protected actions (in milliseconds)
+# Reuse delays for protected item (in milliseconds)
 # <font color=FFFF00>Default</font> = 100
 floodProtectorItem = 100
 
-# Reuse delays for protected actions (in milliseconds)
+# Reuse delays for protected roll dice (in milliseconds)
 # <font color=FFFF00>Default</font> = 4200
 floodProtectorRollDice = 4200
 
@@ -79,30 +79,34 @@
 # <font color=FFFF00>Default</font> = 4200
 floodProtectorFireWork = 4200
 
-# Reuse delays for protected actions (in milliseconds)
+# Reuse delays for protected pet summon (in milliseconds)
 # <font color=FFFF00>Default</font> = 1600
 floodProtectorItemPetSummon = 1600
 
-# Reuse delays for protected actions (in milliseconds)
+# Reuse delays for protected hero voice (in milliseconds)
 # <font color=FFFF00>Default</font> = 5000
 floodProtectorHeroVoice = 5000
 
-# Reuse delays for protected actions (in milliseconds)
+# Reuse delays for protected global chat (in milliseconds)
 # <font color=FFFF00>Default</font> = 5000
 floodProtectorGlobalChat = 5000
 
-# Reuse delays for protected actions (in milliseconds)
+# Reuse delays for protected multisell (in milliseconds)
 # <font color=FFFF00>Default</font> = 1000
 floodProtectorMultiSell = 1000
 
-# Reuse delays for protected actions (in milliseconds)
+# Reuse delays for protected subclass (in milliseconds)
 # <font color=FFFF00>Default</font> = 2000
 floodProtectorSubClass = 2000
 
-# Reuse delays for protected actions (in milliseconds)
+# Reuse delays for protected drop item (in milliseconds)
 # <font color=FFFF00>Default</font> = 1000
 floodProtectorDropItem = 1000
 
-# Reuse delays for protected actions (in milliseconds)
+# Reuse delays for protected bypass (in milliseconds)
 # <font color=FFFF00>Default</font> = 500
-floodProtectorBypass = 500
\ No newline at end of file
+floodProtectorBypass = 500
+
+# Reuse delays for protected actions (in milliseconds)
+# <font color=FFFF00>Default</font> = 200
+floodProtectorPotion = 200
\ No newline at end of file
Index: java/net/sf/l2j/Config.java
===================================================================
--- java/net/sf/l2j/Config.java (revision 1148)
+++ java/net/sf/l2j/Config.java (working copy)
@@ -595,6 +595,7 @@
  public static int PROTECTED_SUBCLASS;
  public static int PROTECTED_DROPITEM;
  public static int PROTECTED_BYPASS;
+ public static int PROTECTED_POTION;
 
  // ------------------------------------------------ //
  // XXX GM
@@ -2470,7 +2471,7 @@
  LOG_ITEMS = config.getBoolean("LogItems", false);
  GMAUDIT = config.getBoolean("GMAudit", false);
  ILLEGAL_ACTION_AUDIT = config.getBoolean("IllegalActionAudit", false);
- FLOODPROTECTOR_INITIALSIZE = config.getInteger("floodProtectorInitialSize", 5000);
+ FLOODPROTECTOR_INITIALSIZE = config.getInteger("floodProtectorInitialSize", 50);
  PROTECTED_ROLLDICE = config.getInteger("floodProtectorRollDice", 4200);
  PROTECTED_FIREWORK = config.getInteger("floodProtectorFireWork", 4200);
  PROTECTED_ITEMPETSUMMON = config.getInteger("floodProtectorItemPetSummon", 1600);
@@ -2480,6 +2481,7 @@
  PROTECTED_SUBCLASS = config.getInteger("floodProtectorSubClass", 2000);
  PROTECTED_DROPITEM = config.getInteger("floodProtectorDropItem", 1000);
  PROTECTED_BYPASS = config.getInteger("floodProtectorBypass", 500);
+ PROTECTED_POTION = config.getInteger("floodProtectorPotion", 200);
  }
 
  /**
Index: java/net/sf/l2j/gameserver/floodprotector/FloodProtector.java
===================================================================
--- java/net/sf/l2j/gameserver/floodprotector/FloodProtector.java (revision 1128)
+++ java/net/sf/l2j/gameserver/floodprotector/FloodProtector.java (working copy)
@@ -6,6 +6,7 @@
 
 import net.sf.l2j.Config;
 import net.sf.l2j.gameserver.floodprotector.enums.FloodProtectorType;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
 
 /**
  * Flood protector
@@ -15,7 +16,7 @@
 {
  private static final Logger LOG = Logger.getLogger(FloodProtector.class.getName());
 
- private final Map<Integer, long[]> floodClient;
+ private final Map<Integer, long[]> players;
 
  // reuse delays for protected actions (in game ticks 1 tick = 100ms)
  private static final int[] REUSEDELAY =
@@ -29,34 +30,32 @@
  Config.PROTECTED_SUBCLASS,
  Config.PROTECTED_DROPITEM,
  Config.PROTECTED_BYPASS,
+ Config.PROTECTED_POTION,
  };
 
  public FloodProtector()
  {
  LOG.info("Initializing FloodProtector");
- floodClient = new ConcurrentHashMap<>(Config.FLOODPROTECTOR_INITIALSIZE);
+ players = new ConcurrentHashMap<>(Config.FLOODPROTECTOR_INITIALSIZE);
  }
 
  /**
  * Add a new player to the flood protector (should be done for all players when they enter the world)
- * @param playerObjId
+ * @param player
  */
- public void registerNewPlayer(int playerObjId)
+ public void registerNewPlayer(L2PcInstance player)
  {
- // create a new array
- long[] array = new long[REUSEDELAY.length];
-
  // register the player with an empty array
- floodClient.put(playerObjId, array);
+ players.put(player.getObjectId(), new long[REUSEDELAY.length]);
  }
 
  /**
  * Remove a player from the flood protector (should be done if player loggs off)
- * @param playerObjId
+ * @param player
  */
- public void removePlayer(int playerObjId)
+ public void removePlayer(L2PcInstance player)
  {
- floodClient.remove(playerObjId);
+ players.remove(player.getObjectId());
  }
 
  /**
@@ -64,23 +63,20 @@
  */
  public int getSize()
  {
- return floodClient.size();
+ return players.size();
  }
 
  /**
  * Try to perform the requested action
- * @param playerObjId
+ * @param player
  * @param action
  * @return true if the action may be performed
  */
- public boolean tryPerformAction(int playerObjId, FloodProtectorType action)
+ public boolean tryPerformAction(L2PcInstance player, FloodProtectorType action)
  {
- long[] value = floodClient.get(playerObjId);
-
- if (value[action.ordinal()] < System.currentTimeMillis())
+ if (players.get(player.getObjectId())[action.ordinal()] < System.currentTimeMillis())
  {
- value[action.ordinal()] = System.currentTimeMillis() + REUSEDELAY[action.ordinal()];
- floodClient.put(playerObjId, value);
+ players.get(player.getObjectId())[action.ordinal()] = System.currentTimeMillis() + REUSEDELAY[action.ordinal()];
  return true;
  }
  return false;
Index: java/net/sf/l2j/gameserver/floodprotector/enums/FloodProtectorType.java
===================================================================
--- java/net/sf/l2j/gameserver/floodprotector/enums/FloodProtectorType.java (revision 1128)
+++ java/net/sf/l2j/gameserver/floodprotector/enums/FloodProtectorType.java (working copy)
@@ -5,13 +5,14 @@
  */
 public enum FloodProtectorType
 {
- PROTECTED_ROLLDICE,
- PROTECTED_FIREWORK,
- PROTECTED_ITEMPETSUMMON,
- PROTECTED_HEROVOICE,
- PROTECTED_GLOBALCHAT,
- PROTECTED_MULTISELL,
- PROTECTED_SUBCLASS,
- PROTECTED_DROPITEM,
- PROTECTED_BYPASS,
+ ROLLDICE,
+ FIREWORK,
+ ITEM_PET_SUMMON,
+ HERO_VOICE,
+ GLOBAL_CHAT,
+ MULTISELL,
+ SUBCLASS,
+ DROP_ITEM,
+ BYPASS,
+ POTION
 }
Index: java/net/sf/l2j/gameserver/handler/item/ItemFirework.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/item/ItemFirework.java (revision 1128)
+++ java/net/sf/l2j/gameserver/handler/item/ItemFirework.java (working copy)
@@ -39,7 +39,7 @@
  L2PcInstance activeChar = (L2PcInstance) playable;
  int itemId = item.getId();
 
- if (!FloodProtector.getInstance().tryPerformAction(activeChar.getObjectId(), FloodProtectorType.PROTECTED_FIREWORK))
+ if (!FloodProtector.getInstance().tryPerformAction(activeChar, FloodProtectorType.FIREWORK))
  {
  activeChar.sendPacket(new SystemMessage(SystemMessage.S1_CANNOT_BE_USED).addItemName(itemId));
  return;
Index: java/net/sf/l2j/gameserver/handler/item/ItemPotions.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/item/ItemPotions.java (revision 1128)
+++ java/net/sf/l2j/gameserver/handler/item/ItemPotions.java (working copy)
@@ -3,6 +3,8 @@
 import java.util.List;
 
 import net.sf.l2j.gameserver.data.SkillData;
+import net.sf.l2j.gameserver.floodprotector.FloodProtector;
+import net.sf.l2j.gameserver.floodprotector.enums.FloodProtectorType;
 import net.sf.l2j.gameserver.handler.ItemHandler.IItemHandler;
 import net.sf.l2j.gameserver.handler.SkillHandler;
 import net.sf.l2j.gameserver.handler.SkillHandler.ISkillHandler;
@@ -72,6 +74,12 @@
 
  int itemId = item.getId();
 
+ if (!FloodProtector.getInstance().tryPerformAction(activeChar, FloodProtectorType.POTION))
+ {
+ activeChar.sendPacket(new SystemMessage(SystemMessage.S1_CANNOT_BE_USED).addItemName(itemId));
+ return;
+ }
+
  switch (itemId)
  {
  case 65:
Index: java/net/sf/l2j/gameserver/handler/item/ItemRollingDice.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/item/ItemRollingDice.java (revision 1128)
+++ java/net/sf/l2j/gameserver/handler/item/ItemRollingDice.java (working copy)
@@ -47,14 +47,14 @@
  return;
  }
 
- int number = Rnd.get(1, 6);
-
- if (!FloodProtector.getInstance().tryPerformAction(activeChar.getObjectId(), FloodProtectorType.PROTECTED_ROLLDICE))
+ if (!FloodProtector.getInstance().tryPerformAction(activeChar, FloodProtectorType.ROLLDICE))
  {
  activeChar.sendPacket(new SystemMessage(SystemMessage.YOU_MAY_NOT_THROW_THE_DICE_AT_THIS_TIME_TRY_AGAIN_LATER));
  return;
  }
 
+ int number = Rnd.get(1, 6);
+
  Broadcast.toSelfAndKnownPlayers(activeChar, new Dice(activeChar, item.getId(), number, activeChar.getX() - 30, activeChar.getY() - 30, activeChar.getZ()));
 
  SystemMessage sm = new SystemMessage(SystemMessage.C1_ROLLED_S2).addString(activeChar.getName()).addNumber(number);
Index: java/net/sf/l2j/gameserver/handler/item/ItemSummonItems.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/item/ItemSummonItems.java (revision 1128)
+++ java/net/sf/l2j/gameserver/handler/item/ItemSummonItems.java (working copy)
@@ -42,7 +42,7 @@
 
  L2PcInstance activeChar = (L2PcInstance) playable;
 
- if (!FloodProtector.getInstance().tryPerformAction(activeChar.getObjectId(), FloodProtectorType.PROTECTED_ITEMPETSUMMON))
+ if (!FloodProtector.getInstance().tryPerformAction(activeChar, FloodProtectorType.ITEM_PET_SUMMON))
  {
  return;
  }
Index: java/net/sf/l2j/gameserver/handler/say/SayHeroe.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/say/SayHeroe.java (revision 1128)
+++ java/net/sf/l2j/gameserver/handler/say/SayHeroe.java (working copy)
@@ -28,7 +28,7 @@
  {
  if (activeChar.isHero())
  {
- if (!FloodProtector.getInstance().tryPerformAction(activeChar.getObjectId(), FloodProtectorType.PROTECTED_HEROVOICE))
+ if (!FloodProtector.getInstance().tryPerformAction(activeChar, FloodProtectorType.HERO_VOICE))
  {
  activeChar.sendMessage("Do not spam heroe channel.");
  return;
Index: java/net/sf/l2j/gameserver/handler/say/SayShout.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/say/SayShout.java (revision 1130)
+++ java/net/sf/l2j/gameserver/handler/say/SayShout.java (working copy)
@@ -27,7 +27,7 @@
  @Override
  public void handleSay(SayType type, L2PcInstance activeChar, String target, String text)
  {
- if (!FloodProtector.getInstance().tryPerformAction(activeChar.getObjectId(), FloodProtectorType.PROTECTED_GLOBALCHAT))
+ if (!FloodProtector.getInstance().tryPerformAction(activeChar, FloodProtectorType.GLOBAL_CHAT))
  {
  activeChar.sendMessage("Do not spam shout channel.");
  return;
Index: java/net/sf/l2j/gameserver/handler/say/SayTrade.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/say/SayTrade.java (revision 1130)
+++ java/net/sf/l2j/gameserver/handler/say/SayTrade.java (working copy)
@@ -27,7 +27,7 @@
  @Override
  public void handleSay(SayType type, L2PcInstance activeChar, String target, String text)
  {
- if (!FloodProtector.getInstance().tryPerformAction(activeChar.getObjectId(), FloodProtectorType.PROTECTED_GLOBALCHAT))
+ if (!FloodProtector.getInstance().tryPerformAction(activeChar, FloodProtectorType.GLOBAL_CHAT))
  {
  activeChar.sendMessage("Do not spam trade channel.");
  return;
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 1130)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy)
@@ -5972,7 +5972,7 @@
  setConnection(null);
 
  // Remove from flood protector
- FloodProtector.getInstance().removePlayer(getObjectId());
+ FloodProtector.getInstance().removePlayer(this);
 
  if (getClanId() > 0)
  {
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2VillageMasterInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2VillageMasterInstance.java (revision 1128)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2VillageMasterInstance.java (working copy)
@@ -293,7 +293,7 @@
  * If the character is less than level 75 on any of their previously chosen classes then disallow them to change to their most recently added sub-class choice.
  */
 
- if (!FloodProtector.getInstance().tryPerformAction(player.getObjectId(), FloodProtectorType.PROTECTED_SUBCLASS))
+ if (!FloodProtector.getInstance().tryPerformAction(player, FloodProtectorType.SUBCLASS))
  {
  LOG.warning("Player " + player.getName() + " has performed a subclass change too fast.");
  return;
@@ -358,7 +358,7 @@
  * If the character is less than level 75 on any of their previously chosen classes then disallow them to change to their most recently added sub-class choice. Note: paramOne = classIndex
  */
 
- if (!FloodProtector.getInstance().tryPerformAction(player.getObjectId(), FloodProtectorType.PROTECTED_SUBCLASS))
+ if (!FloodProtector.getInstance().tryPerformAction(player, FloodProtectorType.SUBCLASS))
  {
  LOG.warning("Player " + player.getName() + " has performed a subclass change too fast");
  return;
@@ -392,7 +392,7 @@
  /*
  * Warning: the information about this subclass will be removed from the subclass list even if false!
  */
- if (!FloodProtector.getInstance().tryPerformAction(player.getObjectId(), FloodProtectorType.PROTECTED_SUBCLASS))
+ if (!FloodProtector.getInstance().tryPerformAction(player, FloodProtectorType.SUBCLASS))
  {
  LOG.warning("Player " + player.getName() + " has performed a subclass change too fast");
  return;
@@ -670,8 +670,9 @@
  PlayerClass currClass = PlayerClass.values()[charClassId];
 
  /**
- * If the race of your main class is Elf or Dark Elf, you may not select each class as a subclass to the other class, and you may not select Overlord and Warsmith class as a subclass. You may not select a similar class as the subclass. The occupations classified as similar classes are as follows:
- * Treasure Hunter, Plainswalker and Abyss Walker Hawkeye, Silver Ranger and Phantom Ranger Paladin, Dark Avenger, Temple Knight and Shillien Knight Warlocks, Elemental Summoner and Phantom Summoner Elder and Shillien Elder Swordsinger and Bladedancer Sorcerer, Spellsinger and Spellhowler
+ * If the race of your main class is Elf or Dark Elf, you may not select each class as a subclass to the other class, and you may not select Overlord and Warsmith class as a subclass. You may not select a similar class as the subclass. The occupations classified as similar classes are as
+ * follows: Treasure Hunter, Plainswalker and Abyss Walker Hawkeye, Silver Ranger and Phantom Ranger Paladin, Dark Avenger, Temple Knight and Shillien Knight Warlocks, Elemental Summoner and Phantom Summoner Elder and Shillien Elder Swordsinger and Bladedancer Sorcerer, Spellsinger and
+ * Spellhowler
  */
  Set<PlayerClass> availSubs = currClass.getAvailableSubclasses(player);
 
Index: java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java (revision 1128)
+++ java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java (working copy)
@@ -83,7 +83,7 @@
  }
 
  // Register in flood protector
- FloodProtector.getInstance().registerNewPlayer(activeChar.getObjectId());
+ FloodProtector.getInstance().registerNewPlayer(activeChar);
 
  if (L2World.getInstance().findObject(activeChar.getObjectId()) != null)
  {
Index: java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java (revision 1128)
+++ java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java (working copy)
@@ -76,7 +76,7 @@
  return;
  }
 
- if (!FloodProtector.getInstance().tryPerformAction(player.getObjectId(), FloodProtectorType.PROTECTED_MULTISELL))
+ if (!FloodProtector.getInstance().tryPerformAction(player, FloodProtectorType.MULTISELL))
  {
  return;
  }
@@ -251,13 +251,13 @@
  // b) enchantment is not maintained. Get the instances with the LOWEST enchantment level
  {
  /*
- * NOTE: There are 2 ways to achieve the above goal. 1) Get all items that have the correct itemId, loop through them until the lowest enchantment level is found. Repeat all this for the next item until proper count of items is reached. 2) Get all items that have the correct itemId, sort them once
- * based on enchantment level, and get the range of items that is necessary. Method 1 is faster for a small number of items to be exchanged. Method 2 is faster for large amounts. EXPLANATION: Worst case scenario for algorithm 1 will make it run in a number of cycles given by: m*(2n-m+1)/2 where m is
- * the number of items to be exchanged and n is the total number of inventory items that have a matching id. With algorithm 2 (sort), sorting takes n*log(n) time and the choice is done in a single cycle for case b (just grab the m first items) or in linear time for case a (find the beginning of
- * items with correct enchantment, index x, and take all items from x to x+m). Basically, whenever m > log(n) we have: m*(2n-m+1)/2 = (2nm-m*m+m)/2 > (2nlogn-logn*logn+logn)/2 = nlog(n) - log(n*n) + log(n) = nlog(n) + log(n/n*n) = nlog(n) + log(1/n) = nlog(n) - log(n) = (n-1)log(n) So for m < log(n)
- * then m*(2n-m+1)/2 > (n-1)log(n) and m*(2n-m+1)/2 > nlog(n) IDEALLY: In order to best optimize the performance, choose which algorithm to run, based on whether 2^m > n if ( (2<<(e.getItemCount() * amount)) < inventoryContents.length ) // do Algorithm 1, no sorting else // do Algorithm 2, sorting
- * CURRENT IMPLEMENTATION: In general, it is going to be very rare for a person to do a massive exchange of non-stackable items For this reason, we assume that algorithm 1 will always suffice and we keep things simple. If, in the future, it becomes necessary that we optimize, the above discussion
- * should make it clear what optimization exactly is necessary (based on the comments under "IDEALLY").
+ * NOTE: There are 2 ways to achieve the above goal. 1) Get all items that have the correct itemId, loop through them until the lowest enchantment level is found. Repeat all this for the next item until proper count of items is reached. 2) Get all items that have the correct
+ * itemId, sort them once based on enchantment level, and get the range of items that is necessary. Method 1 is faster for a small number of items to be exchanged. Method 2 is faster for large amounts. EXPLANATION: Worst case scenario for algorithm 1 will make it run in a number
+ * of cycles given by: m*(2n-m+1)/2 where m is the number of items to be exchanged and n is the total number of inventory items that have a matching id. With algorithm 2 (sort), sorting takes n*log(n) time and the choice is done in a single cycle for case b (just grab the m first
+ * items) or in linear time for case a (find the beginning of items with correct enchantment, index x, and take all items from x to x+m). Basically, whenever m > log(n) we have: m*(2n-m+1)/2 = (2nm-m*m+m)/2 > (2nlogn-logn*logn+logn)/2 = nlog(n) - log(n*n) + log(n) = nlog(n) +
+ * log(n/n*n) = nlog(n) + log(1/n) = nlog(n) - log(n) = (n-1)log(n) So for m < log(n) then m*(2n-m+1)/2 > (n-1)log(n) and m*(2n-m+1)/2 > nlog(n) IDEALLY: In order to best optimize the performance, choose which algorithm to run, based on whether 2^m > n if ( (2<<(e.getItemCount()
+ * * amount)) < inventoryContents.length ) // do Algorithm 1, no sorting else // do Algorithm 2, sorting CURRENT IMPLEMENTATION: In general, it is going to be very rare for a person to do a massive exchange of non-stackable items For this reason, we assume that algorithm 1 will
+ * always suffice and we keep things simple. If, in the future, it becomes necessary that we optimize, the above discussion should make it clear what optimization exactly is necessary (based on the comments under "IDEALLY").
  */
 
  // choice 1. Small number of items exchanged. No sorting.
Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java (revision 1128)
+++ java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java (working copy)
@@ -52,7 +52,7 @@
  return;
  }
 
- if (!FloodProtector.getInstance().tryPerformAction(activeChar.getObjectId(), FloodProtectorType.PROTECTED_BYPASS))
+ if (!FloodProtector.getInstance().tryPerformAction(activeChar, FloodProtectorType.BYPASS))
  {
  return;
  }
Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestDropItem.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/RequestDropItem.java (revision 1128)
+++ java/net/sf/l2j/gameserver/network/clientpackets/RequestDropItem.java (working copy)
@@ -62,7 +62,7 @@
  return;
  }
 
- if (!FloodProtector.getInstance().tryPerformAction(activeChar.getObjectId(), FloodProtectorType.PROTECTED_DROPITEM))
+ if (!FloodProtector.getInstance().tryPerformAction(activeChar, FloodProtectorType.DROP_ITEM))
  {
  return;
  }

9
General / Re:Sistema nobles
« en: Octubre 15, 2018, 03:11:05 pm »
almenos en las pruebas que yo hice funciona bien este sistema, podrias indicarme con que npc fue tu prueba y cual fue la opcion que probaste.

10
General / Re:duda raid boss
« en: Octubre 15, 2018, 03:01:16 pm »
claro, para crear un nuevo raid debemos registrarlo en primera instancia en la tabla "raidboss_spawnlist"...el primer registro se debe hacer manual.

11
Issues / Re:Mana potion bug
« en: Octubre 15, 2018, 01:53:13 pm »
se pueden hacen varias cosas en este caso, podemos poner un flood protector para evitar el abuso q es casi lo mismo que ponerle delay, otra opcion seria modificar en "options.properties" el config "ThreadsPerInstantThreadPool" aunque no estoy seguro si sea solucion pero seria lo primero en probar.

Creo que por default pondre delay a todas las pots para evitar este tema :S

12
Issues / Re:PVP Reward
« en: Octubre 14, 2018, 02:41:48 am »
el config "PvPVsPvPTime" deberias cambiarlo a tu gusto, por default son solo 2000ms (2 seg)

13
General / Re:Bug en la animacion de los mobs
« en: Octubre 12, 2018, 11:01:19 pm »
Eh aqui el video:

https://youtu.be/oQcC-GZ98WE

no me deja verlo :S de echo es como si no cargara

14
Issues / Re:Bug teleport al morir en eventos
« en: Octubre 12, 2018, 03:14:43 pm »

15
General / Re:Bug en la animacion de los mobs
« en: Octubre 12, 2018, 03:11:15 pm »
entiendo pero un video seria genial :D

Páginas: [1] 2 3 4 5 6 ... 13