mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-09-29 14:12:52 -04:00
Merge branch 'master' of https://github.com/ProjectSWGCore/NGECore2
Conflicts: src/resources/objects/creature/CreatureMessageBuilder.java src/resources/objects/creature/CreatureObject.java src/services/PlayerService.java
This commit is contained in:
@@ -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() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user