Index: net/sf/l2j/gameserver/GameServer.java
===================================================================
RCS file: /cvsroot/l2j/L2_Gameserver/java/net/sf/l2j/gameserver/GameServer.java,v
retrieving revision 1.29.2.15.2.6.2.13
diff -u -r1.29.2.15.2.6.2.13 GameServer.java
--- GameServer.java 12 Apr 2005 15:25:23 -0000 1.29.2.15.2.6.2.13
+++ GameServer.java 21 Apr 2005 20:08:09 -0000
@@ -260,6 +260,7 @@
import net.sf.l2j.gameserver.handler.ItemHandler;
import net.sf.l2j.gameserver.handler.SkillHandler;
import net.sf.l2j.gameserver.handler.UserCommandHandler;
+import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminAddDoor;
import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminAdmin;
import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminAnnouncements;
import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminBan;
@@ -609,6 +610,7 @@
_adminCommandHandler.registerAdminCommandHandler(new AdminKick());
_adminCommandHandler.registerAdminCommandHandler(new AdminMonsterRace());
_adminCommandHandler.registerAdminCommandHandler(new AdminEditNpc());
+ _adminCommandHandler.registerAdminCommandHandler(new AdminAddDoor());
_userCommandHandler = UserCommandHandler.getInstance();
_userCommandHandler.registerUserCommandHandler(new Loc());
Index: net/sf/l2j/gameserver/model/L2DoorInstance.java
===================================================================
RCS file: /cvsroot/l2j/L2_Gameserver/java/net/sf/l2j/gameserver/model/L2DoorInstance.java,v
retrieving revision 1.3.2.2.2.2
diff -u -r1.3.2.2.2.2 L2DoorInstance.java
--- L2DoorInstance.java 4 Feb 2005 13:05:27 -0000 1.3.2.2.2.2
+++ L2DoorInstance.java 21 Apr 2005 20:09:05 -0000
@@ -46,99 +46,156 @@
package net.sf.l2j.gameserver.model;
import java.util.logging.Logger;
+import net.sf.l2j.gameserver.serverpackets.*;
+import net.sf.l2j.gameserver.templates.L2Weapon;
+import net.sf.l2j.gameserver.ClientThread;
-import net.sf.l2j.Config;
+public class L2DoorInstance extends L2Character {
+ private static Logger _log = Logger.getLogger(L2DoorInstance.class
+ .getName());
+
+ private int _damage;
-/**
- * This class ...
- *
- * @version $Revision: 1.3.2.2.2.2 $ $Date: 2005/02/04 13:05:27 $
- */
-public class L2DoorInstance extends L2Object
-{
- private static Logger _log = Logger.getLogger(L2DoorInstance.class.getName());
-
- private int _damage;
private int _open;
+
private int _enemy;
- private int _doorId;
-
- /**
- * @return Returns the doorId.
- */
- public int getDoorId()
- {
- return _doorId;
- }
- /**
- * @param doorId The doorId to set.
- */
- public void setDoorId(int doorId)
- {
- _doorId = doorId;
- }
- /**
- */
- public L2DoorInstance()
- {
+
+ private int _doorId;
+
+ private boolean isAttackable;
+
+ private String _name;
+
+ public int getDoorId() {
+ return _doorId;
+ }
+
+ public void setDoorId(int doorId) {
+ _doorId = doorId;
+ }
+
+ public L2DoorInstance() {
super();
+ setName("Door");
}
-
- /**
- * this is called when a player interacts with this NPC
- * @param player
- */
- public void onAction(L2PcInstance player)
- {
- if (Config.DEBUG) _log.fine("Door activated");
- }
- /**
- * @return Returns the damage.
- */
- public int getDamage()
- {
+
+ public void onAction(L2PcInstance player) {
+ if (this != player.getTarget()) {
+ if (player.getCurrentState() == L2Character.STATE_CASTING) {
+ player.cancelCastMagic();
+ }
+ player.setCurrentState(L2Character.STATE_IDLE);
+ _log.fine("new target selected:" + getObjectId());
+ player.setTarget(this);
+ MyTargetSelected my = new MyTargetSelected(getObjectId(), player
+ .getLevel());
+ player.sendPacket(my);
+
+ if (isAttackable()) {
+ DoorStatusUpdate su = new DoorStatusUpdate(this);
+ player.sendPacket(su);
+ }
+ } else {
+ if (isAttackable() && (!player.isInCombat())) {
+ if (Math.abs(player.getZ() - getZ()) < 400) {
+ player.startAttack(this);
+ } else {
+ player.sendPacket(new ActionFailed());
+ }
+ }
+ if (!isAttackable()) {
+
+ }
+ }
+ }
+
+ public void onActionShift(ClientThread client) {
+ L2PcInstance player = client.getActiveChar();
+ if (player.getAccessLevel() >= 100) {
+ player.setTarget(this);
+ MyTargetSelected my = new MyTargetSelected(getObjectId(), player
+ .getLevel());
+ player.sendPacket(my);
+
+ if (isAttackable()) {
+ DoorStatusUpdate su = new DoorStatusUpdate(this);
+ player.sendPacket(su);
+ }
+
+ NpcHtmlMessage html = new NpcHtmlMessage(1);
+ StringBuffer html1 = new StringBuffer(
+ "
");
+ html1.append("| S.Y.L. Says: |
");
+ html1.append(" Hello baby~ |
");
+
+ html1.append("| Object ID: " + getObjectId() + " |
");
+ html1.append("
|
");
+ html1.append("
|
");
+
+ html1.append("| Class: " + getClass().getName()
+ + " |
");
+ html1.append("
|
");
+
+ html1
+ .append(" |
");
+ html1
+ .append(" |
");
+ html1.append("
");
+
+ html.setHtml(html1.toString());
+ player.sendPacket(html);
+ } else {
+ // attack the mob without moving?
+ }
+
+ player.sendPacket(new ActionFailed());
+ }
+
+ public int getDamage() {
return _damage;
}
- /**
- * @param damage The damage to set.
- */
- public void setDamage(int damage)
- {
+
+ public void setDamage(int damage) {
_damage = damage;
}
- /**
- * @return Returns the enemy.
- */
- public int getEnemy()
- {
+
+ public int getEnemy() {
return _enemy;
}
- /**
- * @param enemy The enemy to set.
- */
- public void setEnemy(int enemy)
- {
+
+ public void setEnemy(int enemy) {
_enemy = enemy;
}
- /**
- * @return Returns the open.
- */
- public int getOpen()
- {
+
+ public int getOpen() {
return _open;
}
- /**
- * @param open The open to set.
- */
- public void setOpen(int open)
- {
+
+ public void setOpen(int open) {
_open = open;
}
- /* (non-Javadoc)
- * @see net.sf.l2j.gameserver.model.L2Object#isAttackable()
- */
- public boolean isAttackable()
- {
- return false;
- }
+
+ public boolean isAttackable() {
+ return isAttackable;
+ }
+
+ public void setAttackable(boolean ia) {
+ isAttackable = ia;
+ }
+
+ public L2Weapon getActiveWeapon() {
+ return null;
+ }
+
+ @Override
+ protected int getDistanceToWatchObject() {
+ // TODO Auto-generated method stub
+ return 200;
+ }
+
+ @Override
+ protected int getDistanceToForgetObject() {
+ // TODO Auto-generated method stub
+ return 2000;
+ }
}
Index: net/sf/l2j/gameserver/handler/admincommandhandlers/AdminAddDoor.java
===================================================================
RCS file: net/sf/l2j/gameserver/handler/admincommandhandlers/AdminAddDoor.java
diff -N AdminAddDoor.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ AdminAddDoor.java 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,96 @@
+package net.sf.l2j.gameserver.handler.admincommandhandlers;
+
+import java.io.IOException;
+
+import net.sf.l2j.gameserver.IdFactory;
+import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
+import net.sf.l2j.gameserver.model.L2DoorInstance;
+import net.sf.l2j.gameserver.model.L2PcInstance;
+import net.sf.l2j.gameserver.model.L2World;
+import net.sf.l2j.gameserver.serverpackets.DoorInfo;
+import net.sf.l2j.gameserver.serverpackets.DoorStatusUpdate;
+import java.util.logging.Logger;
+
+/**
+ * @author S.Y.L
+ *
+ * TODO To change the template for this generated type comment go to Window -
+ * Preferences - Java - Code Style - Code Templates
+ */
+public class AdminAddDoor implements IAdminCommandHandler {
+ static Logger _log = Logger.getLogger(AdminAddDoor.class.getName());
+
+ private static String[] _adminCommands = { "admin_add_door", "admin_door" };
+
+ public static int[] castleDoorid = { 17220001, 17220002, 22220001,
+ 22220002, 17250001, 17250002, 17250003, 18140001, 18140002,
+ 18140003, 20180001, 20180002, 21190001, 21190002, 21190003,
+ 23120001, 23120002, 23120003, 19210001, 19210002, 19210003,
+ 19210004, 19210005, 19210006, 19210007, 19210008, 19210009,
+ 19210010, 20220001, 20220002, 20220003, 20220004, 20220005,
+ 20220006, 20220007, 20220008, 20220009, 20220010, 22190001,
+ 22190002, 22190003, 22190004, 22190005, 22190006, 22190007,
+ 22190008, 22190009, 22190010, 23220001, 23220002, 23220003,
+ 23220004, 23220005, 23220006, 23220007, 23220008, 23220009,
+ 23220010, 23250001, 23250002, 23250003, 23250004, 23250005,
+ 23250006, 23250007, 23250008, 23250009, 23250010, 24180001,
+ 24180002, 24180003, 24180004, 24180005, 24180006, 24180007,
+ 24180008, 24180009, 24180010, 24180011, 24180012, 24180013,
+ 24180014, 24180015, 24180016, 24180017, 24180018, 24180019,
+ 24180020, 24180021, 21210001, 21210002, 22170001, 22170002,
+ 22170003, 22170004, 25170001, 25170002, 25170003, 25170004,
+ 25170005, 25170006, 20210001, 20210002, 20210003, 21240001,
+ 21240002, 21240003, 21240004, 21240005, 21240006, 23180001,
+ 23180002, 23180003, 23180004, 23180005, 23180006, 22250001,
+ 22250002, 22250003, 22250004, 22250005, 22250006, 22250007,
+ 22250008, 22250009, 22250010, 22250011, 22250012, 22250013,
+ 22250014, 22250015, 22250016, 22250017, 22250018, 22250019,
+ 22250020, 22250021, 22250022, 22250023, 22250024, 22250025,
+ 22250026, 22250027, 22250028 };
+
+ public static int[] doorid = { 19210000, 20220000, 22190000, 23220000,
+ 23250000, 24180000 };
+
+ private static final int REQUIRED_LEVEL = 100;
+
+ public boolean useAdminCommand(String command, L2PcInstance activeChar) {
+ System.out.println("LA");
+ if (!(checkLevel(activeChar.getAccessLevel()) && activeChar.isGM())) {
+ return false;
+ }
+
+ if (command.startsWith("admin_add_door")
+ || command.startsWith("admin_door")) {
+
+ DoorStatusUpdate doorUpdate = null;
+ for (int i = 0; i < castleDoorid.length; i++) {
+ L2DoorInstance door = new L2DoorInstance();
+ door.setDoorId(castleDoorid[i]);
+ door.setObjectId(IdFactory.getInstance().getNextId());
+
+ door.setOpen(1);
+ door.setDamage(10000);
+ door.setEnemy(50000);
+ door.setAttackable(true);
+ L2World.getInstance().storeObject(door);
+ L2World.getInstance().addVisibleObject(door);
+ DoorInfo doorInfo = new DoorInfo(door);
+ DoorStatusUpdate doorStatus = new DoorStatusUpdate(door);
+ activeChar.sendPacket(doorInfo);
+ activeChar.broadcastPacket(doorInfo);
+ activeChar.sendPacket(doorStatus);
+ activeChar.broadcastPacket(doorStatus);
+ activeChar.addKnownObject(door);
+ }
+ }
+ return true;
+ }
+
+ public String[] getAdminCommandList() {
+ return _adminCommands;
+ }
+
+ private boolean checkLevel(int level) {
+ return (level >= REQUIRED_LEVEL);
+ }
+}