Сказка, не могли бы вы добавить в сборку:
Что бы избежать юзанья бага с саб классом я использую этот скрип что бы обезвредить всё оружие и доспехи с заменой класса.
model/actor/instance/L2PcInstance.java
Решение со Лже Гмами.
Этот патч позволит вам банить гма если он будет пытаться дать права тому кто не гм.
Что бы избежать юзанья бага с саб классом я использую этот скрип что бы обезвредить всё оружие и доспехи с заменой класса.
model/actor/instance/L2PcInstance.java
- Код:
/**
* Changes the character's class based on the given class index.
* <BR><BR>
* An index of zero specifies the character's original (base) class,
* while indexes 1-3 specifies the character's sub-classes respectively.
*
* @param classIndex
*/
public boolean setActiveClass(int classIndex)
{
+ L2ItemInstance chest = getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST);
+ if (chest != null)
+ {
+
+ L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(chest.getItem().getBodyPart());
+ InventoryUpdate iu = new InventoryUpdate();
+ for (L2ItemInstance element : unequipped)
+ iu.addModifiedItem(element);
+ sendPacket(iu);
+
+ }
+
+ L2ItemInstance head = getInventory().getPaperdollItem(Inventory.PAPERDOLL_HEAD);
+ if (head != null)
+ {
+
+ L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(head.getItem().getBodyPart());
+ InventoryUpdate iu = new InventoryUpdate();
+ for (L2ItemInstance element : unequipped)
+ iu.addModifiedItem(element);
+ sendPacket(iu);
+
+ }
+
+ L2ItemInstance gloves = getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES);
+ if (gloves != null)
+ {
+
+ L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(gloves.getItem().getBodyPart());
+ InventoryUpdate iu = new InventoryUpdate();
+ for (L2ItemInstance element : unequipped)
+ iu.addModifiedItem(element);
+ sendPacket(iu);
+
+ }
+
+ L2ItemInstance feet = getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET);
+ if (feet != null)
+ {
+
+ L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(feet.getItem().getBodyPart());
+ InventoryUpdate iu = new InventoryUpdate();
+ for (L2ItemInstance element : unequipped)
+ iu.addModifiedItem(element);
+ sendPacket(iu);
+
+ }
+
+ L2ItemInstance legs = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS);
+ if (legs != null)
+ {
+
+ L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(legs.getItem().getBodyPart());
+ InventoryUpdate iu = new InventoryUpdate();
+ for (L2ItemInstance element : unequipped)
+ iu.addModifiedItem(element);
+ sendPacket(iu);
+
+ }
+
+ L2ItemInstance rhand = getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
+ if (rhand != null)
+ {
+
+ L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(rhand.getItem().getBodyPart());
+ InventoryUpdate iu = new InventoryUpdate();
+ for (L2ItemInstance element : unequipped)
+ iu.addModifiedItem(element);
+ sendPacket(iu);
+
+ }
+
+ L2ItemInstance lhand = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND);
+ if (lhand != null)
+ {
+
+ L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(lhand.getItem().getBodyPart());
+ InventoryUpdate iu = new InventoryUpdate();
+ for (L2ItemInstance element : unequipped)
+ iu.addModifiedItem(element);
+ sendPacket(iu);
+
+ }
Решение со Лже Гмами.
Этот патч позволит вам банить гма если он будет пытаться дать права тому кто не гм.
- Код:
Index: D:/Workspace/GameServer_Clean/java/config/options.properties
===================================================================
--- D:/Workspace/GameServer_Clean/java/config/options.properties (revision 708)
+++ D:/Workspace/GameServer_Clean/java/config/options.properties (working copy)
@@ -168,6 +168,8 @@
L2WalkerRevision = 552
# Ban account if account using l2walker and is not GM, AllowL2Walker = False
AutobanL2WalkerAcc = False
+# Ban Edited Player and Corrupt GM if a GM edits a NON GM character.
+GMEdit = False
# =================================================================
Index: D:/Workspace/GameServer_Clean/java/net/sf/l2j/Config.java
===================================================================
--- D:/Workspace/GameServer_Clean/java/net/sf/l2j/Config.java (revision 708)
+++ D:/Workspace/GameServer_Clean/java/net/sf/l2j/Config.java (working copy)
@@ -520,6 +520,9 @@
public static boolean AUTOBAN_L2WALKER_ACC;
/** Revision of L2Walker */
public static int L2WALKER_REVISION;
+
+ /** GM Edit allowed on Non Gm players? */
+ public static boolean GM_EDIT;
/** Allow Discard item ?*/
public static boolean ALLOW_DISCARDITEM;
@@ -1127,6 +1130,7 @@
ALLOW_L2WALKER_CLIENT = L2WalkerAllowed.valueOf(optionsSettings.getProperty("AllowL2Walker", "False"));
L2WALKER_REVISION = Integer.parseInt(optionsSettings.getProperty("L2WalkerRevision", "537"));
AUTOBAN_L2WALKER_ACC = Boolean.valueOf(optionsSettings.getProperty("AutobanL2WalkerAcc", "False"));
+ GM_EDIT = Boolean.valueOf(optionsSettings.getProperty("GMEdit", "False"));
ACTIVATE_POSITION_RECORDER = Boolean.valueOf(optionsSettings.getProperty("ActivatePositionRecorder", "False"));
Index: D:/Workspace/GameServer_Clean/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminExpSp.java
===================================================================
--- D:/Workspace/GameServer_Clean/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminExpSp.java (revision 708)
+++ D:/Workspace/GameServer_Clean/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminExpSp.java (working copy)
@@ -29,6 +29,8 @@
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage;
import net.sf.l2j.gameserver.serverpackets.SystemMessage;
+import net.sf.l2j.gameserver.util.IllegalPlayerAction;
+import net.sf.l2j.gameserver.util.Util;
/**
* This class handles following admin commands:
@@ -222,8 +224,24 @@
smA.addString("Wrong Number Format");
activeChar.sendPacket(smA);
}
- if(expval != 0 || spval != 0)
+ /**
+ * Anti-Corrupt GMs Protection.
+ * If GMEdit enabled, a GM won't be able to Add Exp or SP to any other
+ * player that's NOT a GM character. And in addition.. both player and
+ * GM WILL be banned.
+ */
+ if(Config.GM_EDIT && (expval != 0 || spval != 0)&& !player.isGM())
{
+ //Warn the player about his inmediate ban.
+ player.sendMessage("A GM tried to edit you in "+expval+" exp points and in "+spval+" sp points.You will both be banned.");
+ Util.handleIllegalPlayerAction(player,"The player "+player.getName()+" has been edited. BAN!!", IllegalPlayerAction.PUNISH_KICKBAN);
+ //Warn the GM about his inmediate ban.
+ player.sendMessage("You tried to edit "+player.getName()+" by "+expval+" exp points and "+spval+". You both be banned now.");
+ Util.handleIllegalPlayerAction(activeChar,"El GM "+activeChar.getName()+" ha editado a alguien. BAN!!", IllegalPlayerAction.PUNISH_KICKBAN);
+ _log.severe("GM "+activeChar.getName()+" tried to edit "+player.getName()+". They both have been Banned.");
+ }
+ else if(expval != 0 || spval != 0)
+ {
//Common character information
SystemMessage sm = new SystemMessage(614);
sm.addString("Admin is adding you "+expval+" xp and "+spval+" sp.");
Последний раз редактировалось: ArtiShok (Вт Мар 16, 2010 4:55 pm), всего редактировалось 1 раз(а)