mirror of
https://github.com/Rogiel/l2jserver2
synced 2026-05-03 13:33:48 +00:00
Template classes for all NPC instances
Signed-off-by: Rogiel <rogiel@rogiel.com>
This commit is contained in:
@@ -23,7 +23,7 @@ import org.jboss.netty.buffer.ChannelBuffer;
|
||||
import com.google.inject.Inject;
|
||||
import com.l2jserver.game.net.Lineage2Connection;
|
||||
import com.l2jserver.game.net.packet.AbstractClientPacket;
|
||||
import com.l2jserver.service.admin.AdministratorService;
|
||||
import com.l2jserver.service.game.spawn.CharacterAlreadyTeleportingServiceException;
|
||||
import com.l2jserver.service.game.spawn.NotSpawnedServiceException;
|
||||
import com.l2jserver.service.game.spawn.SpawnService;
|
||||
import com.l2jserver.util.BufferUtils;
|
||||
@@ -43,7 +43,7 @@ public class AdminCommandPacket extends AbstractClientPacket {
|
||||
/**
|
||||
* The admin service
|
||||
*/
|
||||
private final AdministratorService adminService;
|
||||
// private final AdministratorService adminService;
|
||||
private final SpawnService spawnService;
|
||||
|
||||
/**
|
||||
@@ -52,9 +52,9 @@ public class AdminCommandPacket extends AbstractClientPacket {
|
||||
private String command;
|
||||
|
||||
@Inject
|
||||
public AdminCommandPacket(AdministratorService adminService,
|
||||
SpawnService spawnService) {
|
||||
this.adminService = adminService;
|
||||
public AdminCommandPacket(/* AdministratorService adminService, */
|
||||
SpawnService spawnService) {
|
||||
// this.adminService = adminService;
|
||||
this.spawnService = spawnService;
|
||||
}
|
||||
|
||||
@@ -75,8 +75,9 @@ public class AdminCommandPacket extends AbstractClientPacket {
|
||||
try {
|
||||
spawnService.teleport(conn.getCharacter(), coord);
|
||||
} catch (NotSpawnedServiceException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
conn.sendActionFailed();
|
||||
} catch (CharacterAlreadyTeleportingServiceException e) {
|
||||
conn.sendActionFailed();
|
||||
}
|
||||
}
|
||||
// TODO implement admin commands
|
||||
|
||||
@@ -21,7 +21,8 @@ import org.jboss.netty.buffer.ChannelBuffer;
|
||||
import com.google.inject.Inject;
|
||||
import com.l2jserver.game.net.Lineage2Connection;
|
||||
import com.l2jserver.game.net.packet.AbstractClientPacket;
|
||||
import com.l2jserver.service.game.character.CharacterService;
|
||||
import com.l2jserver.service.game.spawn.CharacterNotTeleportingServiceException;
|
||||
import com.l2jserver.service.game.spawn.SpawnService;
|
||||
|
||||
/**
|
||||
* Completes the creation of an character. Creates the object, inserts into the
|
||||
@@ -36,13 +37,13 @@ public class CharacterAppearingPacket extends AbstractClientPacket {
|
||||
public static final int OPCODE = 0x3a;
|
||||
|
||||
/**
|
||||
* The {@link CharacterService}
|
||||
* The {@link SpawnService}
|
||||
*/
|
||||
private final CharacterService charService;
|
||||
private final SpawnService spawnService;
|
||||
|
||||
@Inject
|
||||
public CharacterAppearingPacket(CharacterService charService) {
|
||||
this.charService = charService;
|
||||
public CharacterAppearingPacket(SpawnService spawnService) {
|
||||
this.spawnService = spawnService;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -51,6 +52,10 @@ public class CharacterAppearingPacket extends AbstractClientPacket {
|
||||
|
||||
@Override
|
||||
public void process(final Lineage2Connection conn) {
|
||||
charService.appearing(conn.getCharacter());
|
||||
try {
|
||||
spawnService.finishTeleport(conn.getCharacter());
|
||||
} catch (CharacterNotTeleportingServiceException e) {
|
||||
conn.sendActionFailed();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,8 +31,8 @@ import com.l2jserver.model.id.object.provider.CharacterIDProvider;
|
||||
import com.l2jserver.model.id.template.CharacterTemplateID;
|
||||
import com.l2jserver.model.id.template.provider.CharacterTemplateIDProvider;
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.Actor.Race;
|
||||
import com.l2jserver.model.world.Actor.Sex;
|
||||
import com.l2jserver.model.world.Actor.ActorRace;
|
||||
import com.l2jserver.model.world.Actor.ActorSex;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.CharacterAppearance.CharacterFace;
|
||||
import com.l2jserver.model.world.character.CharacterAppearance.CharacterHairColor;
|
||||
@@ -80,11 +80,11 @@ public class CharacterCreatePacket extends AbstractClientPacket {
|
||||
/**
|
||||
* The race of the new character
|
||||
*/
|
||||
private Race race;
|
||||
private ActorRace race;
|
||||
/**
|
||||
* The sex of the new character
|
||||
*/
|
||||
private Sex sex;
|
||||
private ActorSex sex;
|
||||
/**
|
||||
* The class of the new character
|
||||
*/
|
||||
@@ -146,8 +146,8 @@ public class CharacterCreatePacket extends AbstractClientPacket {
|
||||
@Override
|
||||
public void read(Lineage2Connection conn, ChannelBuffer buffer) {
|
||||
name = BufferUtils.readString(buffer);
|
||||
race = Race.fromOption(buffer.readInt());
|
||||
sex = Sex.fromOption(buffer.readInt());
|
||||
race = ActorRace.fromOption(buffer.readInt());
|
||||
sex = ActorSex.fromOption(buffer.readInt());
|
||||
characterClass = CharacterClass.fromID(buffer.readInt());
|
||||
|
||||
intelligence = buffer.readInt();
|
||||
@@ -252,7 +252,7 @@ public class CharacterCreatePacket extends AbstractClientPacket {
|
||||
/**
|
||||
* @return the race
|
||||
*/
|
||||
public Race getRace() {
|
||||
public ActorRace getRace() {
|
||||
return race;
|
||||
}
|
||||
|
||||
@@ -260,14 +260,14 @@ public class CharacterCreatePacket extends AbstractClientPacket {
|
||||
* @param race
|
||||
* the race to set
|
||||
*/
|
||||
public void setRace(Race race) {
|
||||
public void setRace(ActorRace race) {
|
||||
this.race = race;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the sex
|
||||
*/
|
||||
public Sex getSex() {
|
||||
public ActorSex getSex() {
|
||||
return sex;
|
||||
}
|
||||
|
||||
@@ -275,7 +275,7 @@ public class CharacterCreatePacket extends AbstractClientPacket {
|
||||
* @param sex
|
||||
* the sex to set
|
||||
*/
|
||||
public void setSex(Sex sex) {
|
||||
public void setSex(ActorSex sex) {
|
||||
this.sex = sex;
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ import org.jboss.netty.buffer.ChannelBuffer;
|
||||
|
||||
import com.l2jserver.game.net.Lineage2Connection;
|
||||
import com.l2jserver.game.net.packet.AbstractServerPacket;
|
||||
import com.l2jserver.model.world.Actor.Sex;
|
||||
import com.l2jserver.model.world.Actor.ActorSex;
|
||||
import com.l2jserver.model.world.Item;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.L2Character.CharacterMoveType;
|
||||
@@ -145,19 +145,19 @@ public class CharacterInformationBroadcastPacket extends AbstractServerPacket {
|
||||
|
||||
buffer.writeInt(0x00); // unk
|
||||
|
||||
buffer.writeInt((int) character.getAttributes().getMoveSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getMoveSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getMoveSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getMoveSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getMoveSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getMoveSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getMoveSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getMoveSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getRunSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getRunSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getRunSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getRunSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getRunSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getRunSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getRunSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getRunSpeed());
|
||||
|
||||
buffer.writeDouble(0x01); // move speed multiplier
|
||||
buffer.writeDouble(0x01); // attack speed multiplier
|
||||
|
||||
if (character.getSex() == Sex.MALE) {
|
||||
if (character.getSex() == ActorSex.MALE) {
|
||||
buffer.writeDouble(character.getTemplate().getMaleCollisionRadius());
|
||||
buffer.writeDouble(character.getTemplate().getMaleCollisionHeight());
|
||||
} else {
|
||||
|
||||
@@ -48,7 +48,7 @@ import com.l2jserver.game.net.Lineage2Connection;
|
||||
import com.l2jserver.game.net.packet.AbstractServerPacket;
|
||||
import com.l2jserver.model.world.Item;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.Actor.Sex;
|
||||
import com.l2jserver.model.world.Actor.ActorSex;
|
||||
import com.l2jserver.model.world.actor.ActorExperience;
|
||||
import com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll;
|
||||
import com.l2jserver.util.BufferUtils;
|
||||
@@ -189,32 +189,26 @@ public class CharacterInformationPacket extends AbstractServerPacket {
|
||||
|
||||
buffer.writeInt(0x00); // (max?) talismans count
|
||||
buffer.writeInt(0x00); // cloak sratus
|
||||
buffer.writeInt(character.getAttributes().getPhysicalAttack());
|
||||
buffer.writeInt((int) character.getAttributes().getPhysicalAttack());
|
||||
buffer.writeInt(character.getAttributes().getAttackSpeed());
|
||||
buffer.writeInt(character.getAttributes().getPhysicalDefense());
|
||||
buffer.writeInt((int) character.getAttributes().getPhysicalDefense());
|
||||
|
||||
buffer.writeInt(character.getAttributes().getEvasionChance()); // evasion
|
||||
buffer.writeInt(character.getAttributes().getAccuracy());
|
||||
buffer.writeInt(character.getAttributes().getCriticalChance());
|
||||
|
||||
buffer.writeInt(character.getAttributes().getMagicalAttack());
|
||||
buffer.writeInt((int) character.getAttributes().getMagicalAttack());
|
||||
buffer.writeInt(character.getAttributes().getCastSpeed());
|
||||
buffer.writeInt(character.getAttributes().getAttackSpeed());
|
||||
buffer.writeInt(character.getAttributes().getMagicalDefense());
|
||||
buffer.writeInt((int) character.getAttributes().getMagicalDefense());
|
||||
|
||||
buffer.writeInt(0x00); // 0-non-pvp 1-pvp = violett name
|
||||
buffer.writeInt(0x00); // karma
|
||||
|
||||
buffer.writeInt((int) character.getAttributes().getMoveSpeed()); // run
|
||||
// speed
|
||||
buffer.writeInt((int) character.getAttributes().getMoveSpeed()); // walk
|
||||
// speed
|
||||
buffer.writeInt((int) character.getAttributes().getMoveSpeed()); // swim
|
||||
// run
|
||||
// speed
|
||||
buffer.writeInt((int) character.getAttributes().getMoveSpeed()); // swim
|
||||
// walk
|
||||
// speed
|
||||
buffer.writeInt((int) character.getAttributes().getRunSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getWalkSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getRunSpeed());
|
||||
buffer.writeInt((int) character.getAttributes().getWalkSpeed());
|
||||
buffer.writeInt(0); // unk
|
||||
buffer.writeInt(0); // unk
|
||||
buffer.writeInt(0); // fly speed -only if flying
|
||||
@@ -234,7 +228,7 @@ public class CharacterInformationPacket extends AbstractServerPacket {
|
||||
// writeF(_activeChar.getCollisionRadius());
|
||||
// writeF(_activeChar.getCollisionHeight());
|
||||
// }
|
||||
if (character.getSex() == Sex.MALE) {
|
||||
if (character.getSex() == ActorSex.MALE) {
|
||||
buffer.writeDouble(character.getTemplate().getMaleCollisionRadius());
|
||||
buffer.writeDouble(character.getTemplate().getMaleCollisionHeight());
|
||||
} else {
|
||||
@@ -243,7 +237,7 @@ public class CharacterInformationPacket extends AbstractServerPacket {
|
||||
buffer.writeDouble(character.getTemplate()
|
||||
.getFemaleCollisionHeight());
|
||||
}
|
||||
|
||||
|
||||
buffer.writeInt(character.getAppearance().getHairStyle().option);
|
||||
buffer.writeInt(character.getAppearance().getHairColor().option);
|
||||
buffer.writeInt(character.getAppearance().getFace().option);
|
||||
@@ -252,10 +246,8 @@ public class CharacterInformationPacket extends AbstractServerPacket {
|
||||
String title = "Testing"; // title
|
||||
BufferUtils.writeString(buffer, title);
|
||||
|
||||
int clanid = 0;
|
||||
if (character.getClanID() != null)
|
||||
clanid = character.getClanID().getID();
|
||||
buffer.writeInt(clanid); // clanid
|
||||
buffer.writeInt((character.getClanID() != null ? character.getClanID()
|
||||
.getID() : 0x00)); // clanid
|
||||
buffer.writeInt(0x00); // clan crest id
|
||||
buffer.writeInt(0x00); // ally id
|
||||
buffer.writeInt(0x00); // ally crest id
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.l2jserver.game.net.Lineage2Connection;
|
||||
import com.l2jserver.game.net.packet.AbstractServerPacket;
|
||||
import com.l2jserver.game.net.packet.server.CharacterCreateFailPacket.Reason;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.util.dimensional.Point;
|
||||
|
||||
/**
|
||||
* This packet notifies the client that the chosen character has been
|
||||
@@ -40,19 +41,24 @@ public class CharacterTeleportPacket extends AbstractServerPacket {
|
||||
* The selected character
|
||||
*/
|
||||
private final L2Character character;
|
||||
/**
|
||||
* The teleportation point
|
||||
*/
|
||||
private final Point point;
|
||||
|
||||
public CharacterTeleportPacket(L2Character character) {
|
||||
public CharacterTeleportPacket(L2Character character, Point point) {
|
||||
super(OPCODE);
|
||||
this.character = character;
|
||||
this.point = point;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(Lineage2Connection conn, ChannelBuffer buffer) {
|
||||
buffer.writeInt(character.getID().getID());
|
||||
buffer.writeInt(character.getPoint().getX());
|
||||
buffer.writeInt(character.getPoint().getY());
|
||||
buffer.writeInt(character.getPoint().getZ());
|
||||
buffer.writeInt(point.getX());
|
||||
buffer.writeInt(point.getY());
|
||||
buffer.writeInt(point.getZ());
|
||||
buffer.writeInt(0x00); // isValidation ??
|
||||
buffer.writeInt((int) character.getPoint().getAngle()); // nYaw
|
||||
buffer.writeInt((int) point.getAngle()); // nYaw
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,21 +62,21 @@ public class NPCInformationPacket extends AbstractServerPacket {
|
||||
buffer.writeInt(0x00); // unk
|
||||
buffer.writeInt(template.getCastSpeed());
|
||||
buffer.writeInt(template.getAttackSpeed());
|
||||
buffer.writeInt((int) template.getMoveSpeed());
|
||||
buffer.writeInt((int) template.getMoveSpeed());
|
||||
buffer.writeInt((int) template.getMoveSpeed()); // swim run speed
|
||||
buffer.writeInt((int) template.getMoveSpeed()); // swim walk speed
|
||||
buffer.writeInt((int) template.getMoveSpeed()); // swim run speed
|
||||
buffer.writeInt((int) template.getMoveSpeed()); // swim walk speed
|
||||
buffer.writeInt((int) template.getMoveSpeed()); // fly run speed
|
||||
buffer.writeInt((int) template.getMoveSpeed()); // fly run speed
|
||||
buffer.writeInt((int) template.getRunSpeed());
|
||||
buffer.writeInt((int) template.getWalkSpeed());
|
||||
buffer.writeInt((int) template.getRunSpeed()); // swim run speed
|
||||
buffer.writeInt((int) template.getWalkSpeed()); // swim walk speed
|
||||
buffer.writeInt((int) template.getRunSpeed()); // swim run speed
|
||||
buffer.writeInt((int) template.getWalkSpeed()); // swim walk speed
|
||||
buffer.writeInt((int) template.getRunSpeed()); // fly run speed
|
||||
buffer.writeInt((int) template.getWalkSpeed()); // fly run speed
|
||||
buffer.writeDouble(template.getMovementSpeedMultiplier());
|
||||
buffer.writeDouble(template.getAttackSpeedMultiplier());
|
||||
buffer.writeDouble(template.getCollisionRadius());
|
||||
buffer.writeDouble(template.getCollisionHeight());
|
||||
buffer.writeInt(0x00); // right hand weapon
|
||||
buffer.writeInt(template.getRightHand().getID()); // right hand weapon
|
||||
buffer.writeInt(0x00); // chest
|
||||
buffer.writeInt(0x00); // left hand weapon
|
||||
buffer.writeInt(template.getLeftHand().getID()); // left hand weapon
|
||||
buffer.writeByte(1); // name above char 1=true ... ??
|
||||
buffer.writeByte(0x00); // is running
|
||||
buffer.writeByte(0x00); // is in combat
|
||||
|
||||
@@ -60,7 +60,8 @@ public class ServerObjectPacket extends AbstractServerPacket {
|
||||
buffer.writeDouble(template.getCollisionRadius()); // coll radius
|
||||
buffer.writeDouble(template.getCollisionHeight()); // coll height
|
||||
buffer.writeInt((template.isAttackable() ? npc.getHP() : 0x00));
|
||||
buffer.writeInt((template.isAttackable() ? template.getMaxHP() : 0x00));
|
||||
buffer.writeInt((int) (template.isAttackable() ? template.getMaxHP()
|
||||
: 0x00));
|
||||
buffer.writeInt(0x01); // object type
|
||||
buffer.writeInt(0x00); // special effects
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user