Gam3Master Posted April 29, 2016 Posted April 29, 2016 Hello. I share nothing special but i think many will use it right way. With this patch you can make zones with only craft,sell and buy. For example, on Giran, you can make right side only buy, left side only sell and back side only craft. [/img] ### Eclipse Workspace Patch 1.0 #P Hero-GS Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreBuy.java =================================================================== --- java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreBuy.java (revision 14) +++ java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreBuy.java (working copy) @@ -23,6 +23,7 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance.PrivateStoreType; import net.sf.l2j.gameserver.model.tradelist.TradeList; +import net.sf.l2j.gameserver.model.zone.ZoneId; import net.sf.l2j.gameserver.network.SystemMessageId; import net.sf.l2j.gameserver.util.Util; @@ -79,6 +80,12 @@ if (!player.isInsideRadius(storePlayer, 150, true, false)) return; + if(!player.isInsideZone(ZoneId.BUY)) + { + player.sendMessage("You can't buy items on this area."); + return; + } + if (!(storePlayer.getPrivateStoreType() == PrivateStoreType.SELL || storePlayer.getPrivateStoreType() == PrivateStoreType.PACKAGE_SELL)) return; Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopListSet.java =================================================================== --- java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopListSet.java (revision 14) +++ java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopListSet.java (working copy) @@ -61,13 +61,13 @@ player.sendPacket(SystemMessageId.CANT_OPERATE_PRIVATE_STORE_DURING_COMBAT); return; } - - if (player.isInsideZone(ZoneId.NO_STORE)) + + if(!player.isInsideZone(ZoneId.CRAFT)) { player.sendPacket(SystemMessageId.NO_PRIVATE_WORKSHOP_HERE); player.sendPacket(ActionFailed.STATIC_PACKET); return; - } + } if (_count == 0) player.forceStandUp(); Index: java/net/sf/l2j/gameserver/model/zone/type/L2CraftZone.java =================================================================== --- java/net/sf/l2j/gameserver/model/zone/type/L2CraftZone.java (revision 0) +++ java/net/sf/l2j/gameserver/model/zone/type/L2CraftZone.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 net.sf.l2j.gameserver.model.zone.type; + +import net.sf.l2j.gameserver.model.actor.L2Character; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.model.zone.L2ZoneType; +import net.sf.l2j.gameserver.model.zone.ZoneId; + +/** + * @author Leki + */ +public class L2CraftZone extends L2ZoneType +{ + public L2CraftZone(final int id) + { + super(id); + } + + @Override + protected void onEnter(final L2Character character) + { + if (character instanceof L2PcInstance) + character.setInsideZone(ZoneId.CRAFT, true); + } + + @Override + protected void onExit(final L2Character character) + { + if (character instanceof L2PcInstance) + character.setInsideZone(ZoneId.CRAFT, false); + } + + @Override + public void onDieInside(final L2Character character) + { + } + + @Override + public void onReviveInside(final L2Character character) + { + } +} \ No newline at end of file Index: java/net/sf/l2j/gameserver/model/zone/type/L2BuyZone.java =================================================================== --- java/net/sf/l2j/gameserver/model/zone/type/L2BuyZone.java (revision 0) +++ java/net/sf/l2j/gameserver/model/zone/type/L2BuyZone.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 net.sf.l2j.gameserver.model.zone.type; + +import net.sf.l2j.gameserver.model.actor.L2Character; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.model.zone.L2ZoneType; +import net.sf.l2j.gameserver.model.zone.ZoneId; + +/** + * @author Leki + */ +public class L2BuyZone extends L2ZoneType +{ + public L2BuyZone(final int id) + { + super(id); + } + + @Override + protected void onEnter(final L2Character character) + { + if (character instanceof L2PcInstance) + character.setInsideZone(ZoneId.BUY, true); + } + + @Override + protected void onExit(final L2Character character) + { + if (character instanceof L2PcInstance) + character.setInsideZone(ZoneId.BUY, false); + } + + @Override + public void onDieInside(final L2Character character) + { + } + + @Override + public void onReviveInside(final L2Character character) + { + } +} \ No newline at end of file Index: java/net/sf/l2j/gameserver/model/zone/ZoneId.java =================================================================== --- java/net/sf/l2j/gameserver/model/zone/ZoneId.java (revision 14) +++ java/net/sf/l2j/gameserver/model/zone/ZoneId.java (working copy) @@ -38,7 +38,10 @@ DANGER_AREA(15), CAST_ON_ARTIFACT(16), NO_RESTART(17), - SCRIPT(18); + SCRIPT(18), + SELL(19), + BUY(20), + CRAFT(21); private final int _id; Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreSell.java =================================================================== --- java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreSell.java (revision 14) +++ java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreSell.java (working copy) @@ -20,6 +20,7 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance.PrivateStoreType; import net.sf.l2j.gameserver.model.tradelist.TradeList; +import net.sf.l2j.gameserver.model.zone.ZoneId; import net.sf.l2j.gameserver.network.SystemMessageId; public final class RequestPrivateStoreSell extends L2GameClientPacket @@ -74,6 +75,12 @@ if (!player.isInsideRadius(storePlayer, 150, true, false)) return; + if(!player.isInsideZone(ZoneId.SELL)) + { + player.sendMessage("You can't sell items on this area."); + return; + } + if (storePlayer.getPrivateStoreType() != PrivateStoreType.BUY) return; Index: java/net/sf/l2j/gameserver/model/zone/type/L2SellZone.java =================================================================== --- java/net/sf/l2j/gameserver/model/zone/type/L2SellZone.java (revision 0) +++ java/net/sf/l2j/gameserver/model/zone/type/L2SellZone.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 net.sf.l2j.gameserver.model.zone.type; + +import net.sf.l2j.gameserver.model.actor.L2Character; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.model.zone.L2ZoneType; +import net.sf.l2j.gameserver.model.zone.ZoneId; + +/** + * @author Leki + */ +public class L2SellZone extends L2ZoneType +{ + public L2SellZone(final int id) + { + super(id); + } + + @Override + protected void onEnter(final L2Character character) + { + if (character instanceof L2PcInstance) + character.setInsideZone(ZoneId.SELL, true); + } + + @Override + protected void onExit(final L2Character character) + { + if (character instanceof L2PcInstance) + character.setInsideZone(ZoneId.SELL, false); + } + + @Override + public void onDieInside(final L2Character character) + { + } + + @Override + public void onReviveInside(final L2Character character) + { + } +} \ No newline at end of file After this go to data/xml/zones. Create files SellZone.xml, BuyZone.xml and CraftZone.xml and put inside <zone type="SellZone" shape="NPoly" minZ="-x" maxZ="-z"> <node X="-x" Y="y" /> <node X="-x" Y="y" /> </zone> Zone type put that type you want, and about making zone you can look on SweeTs Guide http://www.maxcheaters.com/topic/188679-how-to-check-remove-and-add-zone Thank you. Quote
HyperBlown Posted April 30, 2016 Posted April 30, 2016 Put credits mate --> +/** + * @author Leki + */ Quote
Irelia#1 Posted May 2, 2016 Posted May 2, 2016 (edited) PRO: This is good when you have entire Giran full of vendors. ;) CONS: This is NOT recommended for live servers, lol! You don't know where to add your vendors (as player) CONFUSED! :) Edited May 2, 2016 by Irelia#1 Quote
SweeTs Posted May 2, 2016 Posted May 2, 2016 This is NOT recommended for live servers, lol! You don't know where to add your vendors (as player) CONFUSED! :) What about reading server features? It's players stupidity :) Quote
AccessDenied Posted May 4, 2016 Posted May 4, 2016 What about reading server features? It's players stupidity :) LOL dafaq did i just read.. ye you gonna read things like PEOPLE the right side of aden (while you look the sun i mean right) is the sell zone xDDDDDDD xaaxxaxxaax Quote
Irelia#1 Posted May 4, 2016 Posted May 4, 2016 LOL dafaq did i just read.. ye you gonna read things like PEOPLE the right side of aden (while you look the sun i mean right) is the sell zone xDDDDDDD xaaxxaxxaax ^^ :)) Quote
SweeTs Posted May 4, 2016 Posted May 4, 2016 LOL dafaq did i just read.. ye you gonna read things like PEOPLE the right side of aden (while you look the sun i mean right) is the sell zone xDDDDDDD xaaxxaxxaax You try hard, but you are not funny. Sorry. It's like asking for enchant rate.. Read godamn features you lazy ass. :) Quote
rlfem123 Posted May 23, 2016 Posted May 23, 2016 Is there any wrong in my xml file? <?xml version="1.0" encoding="UTF-8"?> <list> <!-- SellZone --> <zone type="SellZone" shape="Cuboid" minZ="-3472" maxZ="0"><!-- Town of Giran Sell Area --> <node X="82713" Y="147909" /> <node X="81150" Y="149312" /> </zone> </list> Quote
SweeTs Posted May 23, 2016 Posted May 23, 2016 Is there any wrong in my xml file? http://www.maxcheaters.com/topic/188679-how-to-check-remove-and-add-zone/ Quote
AccessDenied Posted May 23, 2016 Posted May 23, 2016 http://www.maxcheaters.com/topic/188679-how-to-check-remove-and-add-zone/ whoever wrote Geometry exam yesterday and see your guide he will be like: NOOOOOOO fuck this.. im out Quote
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.