Jump to content

Pauler

Legendary Member
  • Posts

    1,390
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by Pauler

  1. Pauler

    Mind fucked

    Of course, all thanks to Jesus Christ, the only real god.
  2. I had in mind for years to start a x500 server, but never had the opportunity. :okey:
  3. You should remove completely soulshots and spiritshots from the game and just cast the effects on the player when he equips a weapon.
  4. Let's clarify some things, too bad I am not clicking on unread more often. This ain't gonna work, not just because the seller is 16 years old, and banned many times in the past. Stewie stop messing with things you don't know, you have a such big mouth for such limited amount of knowledge. Spend some time learning instead of spamming. It will be a favour not just to all of us, but to yourself, too. I am not sure who told you that "flood" and DDoS are something like two different kind of attacks. Flooding is a more generic term which includes many kinds of it. One kind/way of flooding is DDoS.
  5. I coded a custom feature for l2jpes the other day, but I don't think I am going to commit something so gameplay-related any time, soon. http://maxcheaters.com/forum/index.php?topic=280084.0
  6. Hello there, this is my latest share which with some editing by yourself can do many things. A player pays a fee set by you, and he places and a trap with a selected message. If someone steps on the trap, this message displays at the announcements. That means you can write something humiliating. Also by using %player in your message, the victim's name is being displayed in the message. If you have some basic knowledge you can make it do more stuff. For example, if user steps on the trap and he is not in combat, the player will be teleported to a location that the owner has set, or be paralyzed for some seconds. Coded and tested on l2jpes. (interlude) ### Eclipse Workspace Patch 1.0 #P gameserver Index: java/com/l2jpes/gameserver/handler/voicedcommandhandlers/TrapCmd.java =================================================================== --- java/com/l2jpes/gameserver/handler/voicedcommandhandlers/TrapCmd.java (revision 0) +++ java/com/l2jpes/gameserver/handler/voicedcommandhandlers/TrapCmd.java (working copy) @@ -0,0 +1,69 @@ +/* + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see <http://www.gnu.org/licenses/>. + */ +package com.l2jpes.gameserver.handler.voicedcommandhandlers; + +import com.l2jpes.Config; +import com.l2jpes.gameserver.custom.TrapEvent; +import com.l2jpes.gameserver.handler.IVoicedCommandHandler; +import com.l2jpes.gameserver.model.actor.instance.L2PlayerInstance; + +/** + * @author Pauler + */ +public class TrapCmd implements IVoicedCommandHandler +{ + + private String[] commands = { + "settrap" + }; + + @Override + public boolean useVoicedCommand(String command, L2PlayerInstance activeChar, String[] commandParams) + { + if (!TrapEvent.checkIfUserHasTooManytraps(activeChar)) { + if (activeChar.getInventory().getInventoryItemCount(Config.TRAP_COST_ID, 0) >= Config.TRAP_COST_QUANTITY) { + if (!activeChar.isInCombat()) { + if (commandParams != null && commandParams.length != 0) { + activeChar.getInventory().destroyItemByItemId("Buying Traps.", Config.TRAP_COST_ID, Config.TRAP_COST_QUANTITY, activeChar, activeChar); + + activeChar.sendMessage("You placed a trap."); + + String message = ""; + + for (String string: commandParams) { + message = message + " " + string; + } + + TrapEvent.placetrap(activeChar, message); + }else + activeChar.sendMessage("You have to write a message after the command"); + }else + activeChar.sendMessage("You cannot be in combat while you are placing a trap."); + }else + activeChar.sendMessage("You don't have enough items."); + }else + activeChar.sendMessage("You have already placed too many traps."); + + return false; + } + + + @Override + public String[] getVoicedCommandList() + { + return commands; + } + +} Index: java/com/l2jpes/Config.java =================================================================== --- java/com/l2jpes/Config.java (revision 5) +++ java/com/l2jpes/Config.java (working copy) @@ -223,6 +223,12 @@ public static int ALT_FISH_CHAMPIONSHIP_REWARD_4; public static int ALT_FISH_CHAMPIONSHIP_REWARD_5; + /** Traps */ + public static int TRAP_COST_ID; + public static int TRAP_COST_QUANTITY; + public static int TRAP_RADIUS; + public static int MAX_TRAPS_PER_USER; + // -------------------------------------------------- // HexID // -------------------------------------------------- @@ -875,6 +881,11 @@ ALT_FISH_CHAMPIONSHIP_REWARD_4 = events.getProperty("AltFishChampionshipReward4", 200000); ALT_FISH_CHAMPIONSHIP_REWARD_5 = events.getProperty("AltFishChampionshipReward5", 100000); + TRAP_COST_ID = events.getProperty("TrapCostId", 57); + TRAP_COST_QUANTITY = events.getProperty("TrapCostQuantity", 1000); + TRAP_RADIUS = events.getProperty("TrapRadius", 20); + MAX_TRAPS_PER_USER = events.getProperty("MaxTrapsPerUser", 5); + // FloodProtector ExProperties security = load(FLOOD_PROTECTOR_FILE); loadFloodProtectorConfig(security, FLOOD_PROTECTOR_ROLL_DICE, "RollDice", "42"); Index: java/com/l2jpes/gameserver/custom/Trap.java =================================================================== --- java/com/l2jpes/gameserver/custom/Trap.java (revision 0) +++ java/com/l2jpes/gameserver/custom/Trap.java (working copy) @@ -0,0 +1,55 @@ +/* + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see <http://www.gnu.org/licenses/>. + */ +package com.l2jpes.gameserver.custom; + +import com.l2jpes.gameserver.model.actor.instance.L2PlayerInstance; + +/** + * @author Pauler + */ +public class Trap +{ + private L2PlayerInstance _owner; + private int _x, _y, _z; + private String _message; + + public Trap(L2PlayerInstance owner, String message) { + _owner = owner; + _x = owner.getX(); + _y = owner.getY(); + _z = owner.getZ(); + _message = message; + } + + public L2PlayerInstance getOwner() { + return _owner; + } + + public int getX() { + return _x; + } + + public int getY() { + return _y; + } + + public int getZ() { + return _z; + } + + public String getMessage() { + return _message; + } +} Index: java/com/l2jpes/gameserver/handler/VoicedCommandHandler.java =================================================================== --- java/com/l2jpes/gameserver/handler/VoicedCommandHandler.java (revision 13) +++ java/com/l2jpes/gameserver/handler/VoicedCommandHandler.java (working copy) @@ -20,6 +20,7 @@ import com.l2jpes.Config; import com.l2jpes.gameserver.handler.voicedcommandhandlers.L2JPesCmd; +import com.l2jpes.gameserver.handler.voicedcommandhandlers.TrapCmd; public class VoicedCommandHandler { @@ -35,7 +36,7 @@ { _datatable = new TIntObjectHashMap<>(); registerVoicedCommandHandler(new L2JPesCmd()); - + registerVoicedCommandHandler(new TrapCmd()); } private void registerVoicedCommandHandler(IVoicedCommandHandler handler) Index: config/events.properties =================================================================== --- config/events.properties (revision 5) +++ config/events.properties (working copy) @@ -245,4 +245,21 @@ AltFishChampionshipReward2 = 500000 AltFishChampionshipReward3 = 300000 AltFishChampionshipReward4 = 200000 -AltFishChampionshipReward5 = 100000 \ No newline at end of file +AltFishChampionshipReward5 = 100000 + +#============================================================= +# Traps By Pauler +#============================================================= + +#The id of the item you need to give +#to set a trap. +TrapCostId = 57 + +#The quantity of this item. +TrapCostQuantity = 1000 + +#The max distance between you and the trap to activate it. +TrapRadius = 20 + +#Max traps that a user can place. +MaxTrapsPerUser = 5 Index: java/com/l2jpes/gameserver/GameServer.java =================================================================== --- java/com/l2jpes/gameserver/GameServer.java (revision 13) +++ java/com/l2jpes/gameserver/GameServer.java (working copy) @@ -20,6 +20,7 @@ import com.l2jpes.gameserver.cache.CrestCache; import com.l2jpes.gameserver.cache.HtmCache; import com.l2jpes.gameserver.communitybbs.Manager.ForumsBBSManager; +import com.l2jpes.gameserver.custom.TrapEvent; import com.l2jpes.gameserver.datatables.AccessLevels; import com.l2jpes.gameserver.datatables.AdminCommandAccessRights; import com.l2jpes.gameserver.datatables.ArmorSetsTable; @@ -181,6 +182,10 @@ GmListTable.getInstance(); RaidBossPointsManager.getInstance(); + Util.printSection("Custom"); + TrapEvent.getInstance(); + _log.info("Trap Event has started."); + Util.printSection("Community server"); if (Config.ENABLE_COMMUNITY_BOARD) // Forums has to be loaded before clan data ForumsBBSManager.getInstance().initRoot(); Index: java/com/l2jpes/gameserver/custom/TrapEvent.java =================================================================== --- java/com/l2jpes/gameserver/custom/TrapEvent.java (revision 0) +++ java/com/l2jpes/gameserver/custom/TrapEvent.java (working copy) @@ -0,0 +1,80 @@ +/* + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see <http://www.gnu.org/licenses/>. + */ +package com.l2jpes.gameserver.custom; + +import com.l2jpes.Config; +import com.l2jpes.gameserver.Announcements; +import com.l2jpes.gameserver.ThreadPoolManager; +import com.l2jpes.gameserver.model.L2World; +import com.l2jpes.gameserver.model.actor.instance.L2PlayerInstance; + +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +/** + * @author Pauler + */ +public class TrapEvent +{ + public static List<Trap> placedtraps; + + public static void getInstance() { + placedtraps = new CopyOnWriteArrayList<>(); + + ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable() { + + @Override + public void run() { + for (Trap trap:placedtraps) { + for (L2PlayerInstance player: L2World.getInstance().getAllPlayers().values()) { + if (player.isInsideRadius(trap.getX(), trap.getY(), Config.TRAP_RADIUS, false) && player != trap.getOwner()) { + player.sendMessage("You stepped on a trap."); + + String message = trap.getMessage(); + message = message.replaceAll("%player", player.getName()); + + Announcements.announceToAll(message); + + removetrap(trap); + } + } + } + } + + }, 10000, 1000); + } + + public static boolean checkIfUserHasTooManytraps(L2PlayerInstance player) { + int placedtrapsByUser = 0; + + for (Trap trap:placedtraps) { + if (trap.getOwner() == player) + placedtrapsByUser++; + } + + if (placedtrapsByUser < Config.MAX_TRAPS_PER_USER) + return false; + + return true; + } + + public static void placetrap(L2PlayerInstance player, String message) { + placedtraps.add(new Trap(player, message)); + } + + public static void removetrap(Trap trap) { + placedtraps.remove(trap); + } +} If I stop being so lazy, I will upload a video.
  7. Propably giving a better explanation of what the object represents from my point of view.
  8. Anyway the extra modifications, in case you want to know, have been done to:
  9. https://xp-dev.com/trac/l2jpes/changeset/13/l2jpes
  10. I wish you had the ability to read because the main post answers all your questions.
  11. Compiled Revision 12. L2JPes_Gamserver: http://www.4shared.com/zip/fGgdS0Ys/l2jpes_gameserver.html? L2JPes_Datapack: http://www.4shared.com/zip/-Hp8ZgH0/L2JPes_Datapack.html?
  12. Pauler

    Gay or not?

    You have a hot girl laid next to you, and you decided to visit MxC. Not gay at all.
  13. Pauler

    Gay or not?

    Not as gay as you, son.
  14. https://xp-dev.com/trac/l2jpes/changeset/12/l2jpes
×
×
  • Create New...