Basically, this really simple script disallows the donators to enter some towns (Gludio & Dion by default). If they enter, it jails them for 10 minutes (once again you can change it as you wish!)
Of course the donators is just an idea you can edit it with anything you want.
Here are the town ids if you want to change them
1: Dark elf village
2: Talking Island
3: Elven village
4: Orc village
5: Gludin
6: Dwarven village
7: Gludio
8: Dion
9: Giran
10: Oren
11: Hunters village
12: Aden
13: Goddard
14: Rune
15: Heine
16: Floran
17: Schuttgart
I also added a protection, if a donator finds a way (dunno how, just a precaution) to enter the certain towns, on their exit (teleportation - or simple get out of the town) they will get jailed.
Someone requested from me to make it, so the idea is not mine!
Here's the script:
Index: I:/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/model/zone/type/L2TownZone.java
===================================================================
--- I:/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/model/zone/type/L2TownZone.java (revision 3615)
+++ I:/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/model/zone/type/L2TownZone.java (working copy)
@@ -95,12 +95,28 @@
{
if (character instanceof L2PcInstance)
{
+ // just a method, for efficiency
+ L2PcInstance activeChar = ((L2PcInstance)character);
+
// PVP possible during siege, now for siege participants only
// Could also check if this town is in siege, or if any siege is going on
- if (((L2PcInstance)character).getSiegeState() != 0 && Config.ZONE_TOWN == 1)
+ if (activeChar.getSiegeState() != 0 && Config.ZONE_TOWN == 1)
return;
//((L2PcInstance)character).sendMessage("You entered "+_townName);
+
+ if (activeChar.isDonator() && getTownId() == 7)
+ {
+ activeChar.sendMessage("Donators can't enter Gludio. You are now jailed.");
+ activeChar.setInJail(true, 10);
+ }
+ else if (activeChar.isDonator() && getTownId() == 8)
+ {
+ activeChar.sendMessage("Donators can't enter Dion. You are now jailed.");
+ activeChar.setInJail(true, 10);
+ }
+ else
+ activeChar.sendMessage("You have entered a non-restricted area.");
}
if (!_noPeace && Config.ZONE_TOWN != 2) character.setInsideZone(L2Character.ZONE_PEACE, true);
@@ -114,7 +130,15 @@
// if (character instanceof L2PcInstance)
//((L2PcInstance)character).sendMessage("You left "+_townName);
-
+
+ if (character instanceof L2PcInstance)
+ {
+ if (((L2PcInstance)character).isDonator() && (getTownId() == 7 || getTownId() == 8) && !((L2PcInstance)character).isInJail())
+ {
+ ((L2PcInstance)character).sendMessage("How you entered in first place? Oh i hate exploiters!");
+ ((L2PcInstance)character).setInJail(true, 60);
+ }
+ }
}
@Override
Here's another small patch disallowing them to totally use Gatekeepers, requested by Spidey*
Index: I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2TeleporterInstance.java
===================================================================
--- I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2TeleporterInstance.java (revision 4167)
+++ I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2TeleporterInstance.java (working copy)
@@ -227,6 +227,11 @@
player.sendMessage("Go away, you're not welcome here.");
return;
}
+ else if (player.isDonator())
+ {
+ player.sendMessage("Donators are not allowed to use GateKeepers.");
+ return;
+ }
else if (player.isCombatFlagEquipped())
{
player.sendMessage("You can't port with a Combat Flag or Territory Ward!");
You'll have an error at isDonator() just change it with the method made in your pack.
Have a nice day!