public void ObjectHitInfo( ObjectRayHit hit, ref ObjectHitInfo hitInfo ) { // this never needs to be called hit.SetObject.Set.ObjectHitInfo(hit, ref hitInfo); }
public static byte[] getCode4SyncData(List <ObjectHitInfo> objs) { using (SendPacket s = new SendPacket()) { for (int i = 0; i < objs.Count; i++) { ObjectHitInfo obj = objs[i]; if (obj.syncType == 1) { if (obj.objSyncId == 0) { s.writeC((byte)P2P_SUB_HEAD.OBJECT_STATIC); s.writeH((ushort)obj.objId); s.writeH(8); s.writeH((ushort)obj.objLife); s.writeC((byte)obj.killerId); } else { s.writeC((byte)P2P_SUB_HEAD.OBJECT_ANIM); s.writeH((ushort)obj.objId); s.writeH(13); s.writeH((ushort)obj.objLife); s.writeC((byte)obj._animId1); s.writeC((byte)obj._animId2); s.writeT(obj._specialUse); } } else if (obj.syncType == 2) { Events events = Events.LifeSync; int tamanho = 11; if (obj.objLife == 0) { events |= Events.Death; tamanho += 12; } s.writeC((byte)P2P_SUB_HEAD.USER); s.writeH((ushort)obj.objId); s.writeH((ushort)tamanho); s.writeD((uint)events); s.writeH((ushort)obj.objLife); if (events.HasFlag(Events.Death)) { s.writeC((byte)(obj.deathType + (obj.objId * 16))); s.writeC((byte)obj.hitPart); s.writeH(0); //obj.Position.X.RawValue); s.writeH(0); //obj.Position.Y.RawValue); s.writeH(0); //obj.Position.Z.RawValue); s.writeD(obj.weaponId); //Logger.warning("[Death] X: " + obj.Position.X + "; Y: " + obj.Position.Y + "; Z: " + obj.Position.Z); } } else if (obj.syncType == 3) { if (obj.objSyncId == 0) { s.writeC((byte)P2P_SUB_HEAD.STAGEINFO_OBJ_STATIC); s.writeH((ushort)obj.objId); s.writeH(6); s.writeC((obj.objLife == 0)); } else { s.writeC((byte)P2P_SUB_HEAD.STAGEINFO_OBJ_ANIM); s.writeH((ushort)obj.objId); s.writeH(14); s.writeC((byte)obj._destroyState); s.writeH((ushort)obj.objLife); s.writeT(obj._specialUse); s.writeC((byte)obj._animId1); s.writeC((byte)obj._animId2); } } else if (obj.syncType == 4) { s.writeC((byte)P2P_SUB_HEAD.STAGEINFO_CHARA); s.writeH((ushort)obj.objId); s.writeH(11); s.writeD(256); s.writeH((ushort)obj.objLife); } else if (obj.syncType == 5) { s.writeC((byte)P2P_SUB_HEAD.USER); s.writeH((short)obj.objId); s.writeH(11); s.writeD(524288); s.writeC((byte)(obj.killerId + ((int)obj.deathType * 16))); s.writeC((byte)obj.objLife); } } return(s.mstream.ToArray()); } }
public static byte[] getCode4SyncData(List <ObjectHitInfo> objs) { using (SendPacket sendPacket = new SendPacket()) { for (int index = 0; index < objs.Count; ++index) { ObjectHitInfo objectHitInfo = objs[index]; if (objectHitInfo.syncType == 1) { if (objectHitInfo.objSyncId == 0) { sendPacket.writeC((byte)3); sendPacket.writeH((ushort)objectHitInfo.objId); sendPacket.writeH((short)8); sendPacket.writeH((ushort)objectHitInfo.objLife); sendPacket.writeC((byte)objectHitInfo.killerId); } else { sendPacket.writeC((byte)6); sendPacket.writeH((ushort)objectHitInfo.objId); sendPacket.writeH((short)13); sendPacket.writeH((ushort)objectHitInfo.objLife); sendPacket.writeC((byte)objectHitInfo._animId1); sendPacket.writeC((byte)objectHitInfo._animId2); sendPacket.writeT(objectHitInfo._specialUse); } } else if (objectHitInfo.syncType == 2) { Events events = Events.LifeSync; int num = 11; if (objectHitInfo.objLife == 0) { events |= Events.Death; num += 12; } sendPacket.writeC((byte)0); sendPacket.writeH((ushort)objectHitInfo.objId); sendPacket.writeH((ushort)num); sendPacket.writeD((uint)events); sendPacket.writeH((ushort)objectHitInfo.objLife); if (events.HasFlag((Enum)Events.Death)) { sendPacket.writeC((byte)(objectHitInfo.deathType + objectHitInfo.objId * 16)); sendPacket.writeC((byte)objectHitInfo.hitPart); sendPacket.writeH((short)0); sendPacket.writeH((short)0); sendPacket.writeH((short)0); sendPacket.writeD(objectHitInfo.weaponId); } } else if (objectHitInfo.syncType == 3) { if (objectHitInfo.objSyncId == 0) { sendPacket.writeC((byte)9); sendPacket.writeH((ushort)objectHitInfo.objId); sendPacket.writeH((short)6); sendPacket.writeC(objectHitInfo.objLife == 0); } else { sendPacket.writeC((byte)12); sendPacket.writeH((ushort)objectHitInfo.objId); sendPacket.writeH((short)14); sendPacket.writeC((byte)objectHitInfo._destroyState); sendPacket.writeH((ushort)objectHitInfo.objLife); sendPacket.writeT(objectHitInfo._specialUse); sendPacket.writeC((byte)objectHitInfo._animId1); sendPacket.writeC((byte)objectHitInfo._animId2); } } else if (objectHitInfo.syncType == 4) { sendPacket.writeC((byte)8); sendPacket.writeH((ushort)objectHitInfo.objId); sendPacket.writeH((short)11); sendPacket.writeD(256); sendPacket.writeH((ushort)objectHitInfo.objLife); } else if (objectHitInfo.syncType == 5) { sendPacket.writeC((byte)0); sendPacket.writeH((short)objectHitInfo.objId); sendPacket.writeH((short)11); sendPacket.writeD(524288); sendPacket.writeC((byte)(objectHitInfo.killerId + (int)objectHitInfo.deathType * 16)); sendPacket.writeC((byte)objectHitInfo.objLife); } } return(sendPacket.mstream.ToArray()); } }