Jump to content

Recommended Posts

Posted

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.

 

market_map_giran.thumb.png.63990d2e02b14[/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
 
Thank you.

 

Posted (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 by Irelia#1
Posted

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 :)

Posted

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

Posted

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

^^ :))

Posted

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. :)

  • 3 weeks later...
Posted

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>

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Provide proofs not providing any kind of proofs i will just issue warnings
    • For the odbc you have to run the Instalador.exe and click crear dsn, but you have to rename them so the lin2clancomm.dsn for example becomes l2c4_lin2clancomm but also check if the file inside has as database value the correct file name, about the client i also wanted a clean client because i had a problem with the monsters because the character didn't have collision with the monsters and he was running through them but i fixed it with files from a normal interlude client, also my client is now c3 😛 i changed the maps, staticmeshes, systextures so now i do not have the fortresses at antharas lair for example but i also have the c3 sounds and login screen. Where is @GX-Ext
    • I really wonder if they launched the server without testing it even once. All players are creating new characters and transferring the level 20 reward to their main ones. It seems banning people is much easier than sending them a direct message in-game. If you can’t do your job properly, get in touch with people who can help you. I made 17 million in 10 minutes on a 1x Adena rate server and got an Icarus weapon. My suggestion to you — as it's written on the character you banned — is to wipe the server and run a proper OBT. Good luck with your time as administrators; although it doesn't look like it will last very long.  
    • all the reports vanished into thin air  
    • 🔥L2 INTERPRIDE - Pride Style  OPENING THIS NOVEMBER! 🔥  ✅ Grand Opening - November 15th! ✅ ❤️ Open Beta - October 08th! ❤️  🩵  The most up-to date client on the market! ▶️  Retail Pride Style Interlude with the new Client! 💡Discord: https://discord.gg/l2interpride 🌍 General Information Client: Interlude Type: Custom PvP Server Rates: High Rates Starting Level: 56 Balanced PvP Environment Unique PvP Enchant System PvP Synergy System: Support Classes earn PvP Score when assisting DDs in kills Toggle Skills → Now Passive Killing Spree: Every 25 kills grants Hero Aura + Hero Skills until death 🐉 Raid Boss System If you are within 1500 radius when a Raid Boss dies, you automatically receive 1 Raid Boss Chest in your inventory! 💫 Join the Battle ⚔️ Experience modern PvP gameplay on a classic Interlude foundation! 🔥 Build your power. Earn glory. Dominate Aden. 🧙 Custom Items Armors: 🛡️ Tier 1: Dread ⚔️ Tier 2: Titanium 👑 Tier 3: Pride Weapons: 🔱 Tier 1: Unique (PvP / PvE) ⚔️ Tier 2: Pride 💀 Tier 3: Abyssal Accessories: Up to 30 custom accessories with unique stats Legendary Dyes: +5 / -2 Belts: Various special stats ⚔️ Custom PvP Skills PvPs Name Color Reward Skill 500 Blue Firework CP Heal +800 1000 Violet Firework Cleanse 1500 Green Blessed Body 2000 Yellow MP Recharge 2500 Light Blue Special Focus 3000 Orange Death Whisper Debuff 3500 Dark Purple Might 4000 Red Empower 4500 Red Increase Weight Debuff 5000 Red Wind Walk 6000 Red Berserker Spirit 7000 Red Recall NPC 🛒 Shops & NPCs Item Store: Up to A/S grade, Potions, Consumables & more Mysterious Merchant: Custom Armors, Weapons, Accessories NPC Buffer: All Buffs + Scheme System Class Master: Free Class Change 🔥 Enchant System Safe Enchant: +7 Max Enchant: +25 Weapon Rate: Custom (higher enchant = lower rate) Armor Rate: Custom (higher enchant = lower rate) Jewel Rate: Custom (higher enchant = lower rate) ⚙️ Rates Experience: x5000 Skill Points: x5000 Drop Rate: x1 Adena: x500 🏆 Events Team vs Team (TvT) Capture the Flag (CTF) Death Match Castle Siege Hunting Grounds URF TvT 💎 Custom Features ALT + Left Click → Remove selected Buff ALT + F → Teleport System Shift + Left Click → View Monster Droplist
  • Topics

×
×
  • 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