Conflicts:
	src/resources/objects/creature/CreatureMessageBuilder.java
	src/resources/objects/creature/CreatureObject.java
	src/services/PlayerService.java
This commit is contained in:
Light2
2014-03-25 20:14:16 +01:00
434 changed files with 6253 additions and 1485 deletions
@@ -31,9 +31,8 @@ import com.sleepycat.persist.model.Persistent;
import engine.resources.common.CRC;
import resources.objects.Buff;
import resources.objects.ObjectMessageBuilder;
import resources.objects.SkillMod;
import engine.resources.objects.SWGObject;
import engine.resources.objects.SkillMod;
import resources.objects.player.PlayerObject;
import resources.objects.tangible.TangibleObject;
import resources.objects.weapon.WeaponObject;
@@ -158,18 +157,22 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
buffer.putInt(0);
} else {
buffer.putInt(creature.getSkillMods().size());
buffer.putInt(creature.getSkillModsUpdateCounter());
buffer.putInt(creature.getSkillMods().getUpdateCounter());
for(SkillMod skillMod : creature.getSkillMods().get()) {
for(SkillMod skillMod : creature.getSkillMods()) {
buffer.put((byte) 0);
buffer.put(getAsciiString(skillMod.getSkillModString()));
buffer.put(getAsciiString(skillMod.getName()));
buffer.putInt(skillMod.getBase());
buffer.putInt(skillMod.getModifier());
}
}
buffer.putFloat(creature.getSpeedMultiplierBase());
buffer.putFloat(creature.getSpeedMultiplierMod());
buffer.putLong(creature.getListenToId());
if(creature.getPerformanceListenee() != null)
buffer.putLong(creature.getPerformanceListenee().getObjectId());
else
buffer.putLong(0);
buffer.putFloat(creature.getRunSpeed());
@@ -196,7 +199,7 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
buffer.putInt(1);
}
}
buffer.putInt(0); // xp bar value
buffer.putInt(creature.getXpBarValue()); // xp bar value
int size = buffer.position();
buffer = bufferPool.allocate(size, false).put(buffer.array(), 0, size);
@@ -213,21 +216,23 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
IoBuffer buffer = bufferPool.allocate(100, false).order(ByteOrder.LITTLE_ENDIAN);
buffer.setAutoExpand(true);
buffer.putShort((short) 0x23);
buffer.putInt(0x43);
buffer.putInt(0x43); // serverId
buffer.putInt(0); // defenders list unused in NGE
buffer.putInt(0);
buffer.putShort((short) 0); // detaiLStfFilename
buffer.putInt(0); // detailStfSpacer
buffer.putShort((short) 0); // detailStfName
// TANO 6 lists TODO: research
buffer.put(creature.getCombatFlag());
buffer.putLong(0);
buffer.putLong(0);
buffer.putLong(0); // Vehicle vars or TANO 6 vars TODO: research
buffer.putLong(0);
buffer.putInt(0);
buffer.putLong(0); //List<Long> possibly defenders list
buffer.putInt(0); //Int
buffer.putLong(0); //List<Long>
buffer.putLong(0); //List<Int>
buffer.putLong(0); //List<Unknown>
buffer.putShort(creature.getLevel());
//buffer.putShort((short) 90);
buffer.putInt(creature.getGrantedHealth()); // From player_level.iff. Ranges from 0-2000 as you level, consistent with that table.
//0A
@@ -253,8 +258,9 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
buffer.putLong(creature.getInviteCounter());
buffer.putInt(creature.getGuildId());
//10
buffer.putLong(creature.getTargetId());
buffer.putLong(creature.getLookAtTarget()); // lookAtTarget 0x10
buffer.putLong(creature.getIntendedTarget()); // intendedTarget 0x11
buffer.put(creature.getMoodId());
buffer.putInt(creature.getPerformanceCounter());
/*
@@ -262,9 +268,6 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
* in the CREO, otherwise the evul note bubbles appear
*/
buffer.putInt((creature.getPerformanceType()) ? 0 : creature.getPerformanceId());
buffer.putInt(0); // unks
buffer.putInt(0);
buffer.putInt(6); // Current HAM
buffer.putInt(creature.getHamListCounter());
@@ -332,9 +335,9 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
}
buffer.putShort((short) 0);
buffer.putShort((short) 0); // costume
//buffer.put(getAsciiString("appearance/gungan_m.sat"));
buffer.put((byte) 1); // 0 = cloak
buffer.put((byte) 1); // visible boolean. default: true. cloaked if false.
if(creature.getBuffList().isEmpty()) {
buffer.putInt(0);
@@ -377,10 +380,15 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
}
buffer.put((byte) 0); // crashes if 1
buffer.put((byte) 0); // performing? boolean
buffer.put(creature.getDifficulty());
buffer.putInt(0xFFFFFFFF); // -1 normal appearance, 0 hologram
buffer.put((byte) 1); // crashes if 0
if(creature.isHologram())
buffer.putInt(0);
else
buffer.putInt(0xFFFFFFFF);
buffer.put((byte) 1); // visibleOnRadar? boolean
buffer.put((byte) 0); // no effect for 1?
buffer.put((byte) 0); // no effect for 1?
@@ -413,8 +421,7 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
}
}
buffer.putInt(0); // unk list
buffer.putInt(0);
buffer.putLong(0); // unk long
int size = buffer.position();
buffer = bufferPool.allocate(size, false).put(buffer.array(), 0, size);
@@ -665,16 +672,22 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
}
public IoBuffer buildTargetDelta(long targetId) {
public IoBuffer buildLookAtTargetDelta(long targetId) {
IoBuffer buffer = bufferPool.allocate(8, false).order(ByteOrder.LITTLE_ENDIAN);
buffer.putLong(targetId);
int size = buffer.position();
buffer.flip();
buffer = createDelta("CREO", (byte) 6, (short) 1, (short) 0x10, buffer, size + 4);
return buffer;
}
public IoBuffer buildIntendedTargetDelta(long targetId) {
IoBuffer buffer = bufferPool.allocate(8, false).order(ByteOrder.LITTLE_ENDIAN);
buffer.putLong(targetId);
int size = buffer.position();
buffer.flip();
buffer = createDelta("CREO", (byte) 6, (short) 1, (short) 0x11, buffer, size + 4);
return buffer;
}
public IoBuffer buildHealthDelta(int health) {
@@ -823,7 +836,7 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
}
public IoBuffer buildAddSkillModDelta(String name, int base) {
/*public IoBuffer buildAddSkillModDelta(String name, int base) {
CreatureObject creature = (CreatureObject) object;
@@ -841,9 +854,9 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
return buffer;
}
}*/
public IoBuffer buildRemoveSkillModDelta(String name, int base) {
/*public IoBuffer buildRemoveSkillModDelta(String name, int base) {
CreatureObject creature = (CreatureObject) object;
@@ -861,7 +874,7 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
return buffer;
}
}*/
public IoBuffer buildAddSkillDelta(String name) {
@@ -1050,13 +1063,7 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
buffer = createDelta("CREO", (byte) 6, (short) 1, (short) 0x1C, buffer, size + 4);
return buffer;
}
@Override
public void sendListDelta(byte viewType, short updateType, IoBuffer buffer) {
// TODO Auto-generated method stub
}
public IoBuffer buildAddEquipmentDelta(TangibleObject item) {
CreatureObject creature = (CreatureObject) object;
@@ -1168,11 +1175,36 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
}
public void sendListDelta(byte viewType, short updateType, IoBuffer buffer) {
switch (viewType) {
case 1:
case 3:
case 4: {
switch(updateType) {
case 3: {
buffer = createDelta("CREO", (byte) 4, (short) 1, (byte) 3, buffer.flip(), buffer.array().length + 4);
if (object.getClient() != null && object.getClient().getSession() != null) {
//object.getClient().getSession().write(buffer);
}
break;
}
}
}
case 6:
case 8:
case 9:
default:
{
return;
}
}
}
@Override
public void sendBaselines() {
}
}