internal SpawnProjectileServerMessage(TeraMessageReader reader) : base(reader) { Id = reader.ReadEntityId(); reader.Skip(37); OwnerId = reader.ReadEntityId(); }
internal EachSkillResultServerMessage(TeraMessageReader reader) : base(reader) { reader.Skip(4); Source = reader.ReadEntityId(); reader.Skip(8); Target = reader.ReadEntityId(); //I think it s some kind of source ID. //When I use a skill against any monstrer, it s always the same value //When I pick up a mana mote, differente ID Unknow1 = reader.ReadBytes(4); SkillId = new SkillId(reader).Id; //Not sure if it s a int32. or int16 or int64 or other thing //When using a skill with many hit, each hit seem to have a different number (ex: 0, 1, 2, or 3) HitId = reader.ReadInt32(); //No f*****g idea. I think I see 3 different part in that thing Unknow2 = reader.ReadBytes(12); //unknown, id, time Amount = reader.ReadInt64(); // KR now use 64 bit FlagsDebug = reader.ReadInt32(); Flags = (SkillResultFlags)FlagsDebug; IsCritical = (reader.ReadByte() & 1) != 0; ConsumeEdge = (reader.ReadByte() & 1) != 0; Blocked = (reader.ReadByte() & 1) != 0; reader.Skip(reader.Factory.ReleaseVersion >= 7401 ? 8 : 12); //KR removed something Position = reader.ReadVector3f(); Heading = reader.ReadAngle(); //if (Position.X!=0) // Trace.WriteLine($"{Time.Ticks} {BitConverter.ToString(BitConverter.GetBytes(Target.Id))} {SkillId} {Position} {Heading}"); }
internal S_ACTION_STAGE(TeraMessageReader reader) : base(reader) { reader.Skip(4); //Effects array count and offset Entity = reader.ReadEntityId(); Position = reader.ReadVector3f(); Heading = reader.ReadAngle(); Model = reader.ReadUInt32(); SkillId = new SkillId(reader).Id; Stage = reader.ReadUInt32(); Speed = reader.ReadSingle(); if (reader.Factory.ReleaseVersion >= 7500) { reader.Skip(4); //projectilespeed } Id = reader.ReadUInt32(); if (reader.Factory.ReleaseVersion <= 7100) { return; //classic, not sure when following things were added } EffectScale = reader.ReadSingle(); Moving = reader.ReadBoolean(); Destination = reader.ReadVector3f(); Target = reader.ReadEntityId(); // Debug.WriteLine($"{Time.Ticks} {BitConverter.ToString(BitConverter.GetBytes(Entity.Id))}: {Start} {Heading}, S:{Speed}, {SkillId} {Stage} {Model} {unk} {Id}" ); }
internal StartUserProjectileServerMessage(TeraMessageReader reader) : base(reader) { OwnerId = reader.ReadEntityId(); reader.Skip(8); Id = reader.ReadEntityId(); }
internal EachSkillResultServerMessage(TeraMessageReader reader) : base(reader) { reader.Skip(4); Source = reader.ReadEntityId(); Target = reader.ReadEntityId(); //I think it s some kind of source ID. //When I use a skill against any monstrer, it s always the same value //When I pick up a mana mote, differente ID Unknow1 = reader.ReadBytes(4); SkillId = reader.ReadInt32() & 0x3FFFFFF; //Not sure if it s a int32. or int16 or int64 or other thing //When using a skill with many hit, each hit seem to have a different number (ex: 0, 1, 2, or 3) HitId = reader.ReadInt32(); //No f*****g idea. I think I see 3 different part in that thing Unknow2 = reader.ReadBytes(12); Amount = reader.ReadInt32(); FlagsDebug = reader.ReadInt32(); Flags = (SkillResultFlags)FlagsDebug; IsCritical = (reader.ReadByte() & 1) != 0; if (IsMana) { Amount = Math.Abs(Amount); } }
internal SNpcStatus(TeraMessageReader reader) : base(reader) { Npc = reader.ReadEntityId(); Enraged = (reader.ReadByte() & 1) == 1; reader.Skip(4); Target = reader.ReadEntityId(); //Debug.WriteLine("NPC:" + Npc + ";Target:" + Target + (Enraged?" Enraged":"")); }
internal SAbnormalityBegin(TeraMessageReader reader) : base(reader) { TargetId = reader.ReadEntityId(); SourceId = reader.ReadEntityId(); AbnormalityId = reader.ReadInt32(); Duration = reader.ReadInt32(); Stack = reader.ReadInt32(); }
internal SAbnormalityBegin(TeraMessageReader reader) : base(reader) { TargetId = reader.ReadEntityId(); SourceId = reader.ReadEntityId(); AbnormalityId = reader.ReadInt32(); Duration = reader.ReadInt32(); Stack = reader.ReadInt32(); // Console.WriteLine("target = "+TargetId+";Source:"+SourceId+";Abnormality:"+AbnormalityId+";Duration:"+Duration+";Stack:"+Stack); }
internal SNpcOccupierInfo(TeraMessageReader reader) : base(reader) { // PrintRaw(); NPC = reader.ReadEntityId(); reader.Skip(8); Target = reader.ReadEntityId(); // Console.WriteLine("NPC:" + NPC + ";Target:" + Target); }
internal SNpcStatus(TeraMessageReader reader) : base(reader) { Npc = reader.ReadEntityId(); Enraged = (reader.ReadByte() & 1) == 1; RemainingEnrageTime = reader.Factory.ReleaseVersion >= 7900 ? reader.ReadInt32() : 36000; reader.Skip(4); Target = reader.ReadEntityId(); //Debug.WriteLine("NPC:" + Npc + ";Target:" + Target + (Enraged?" Enraged":"")); }
internal SNpcOccupierInfo(TeraMessageReader reader) : base(reader) { // PrintRaw(); NPC = reader.ReadEntityId(); Engager = reader.ReadEntityId(); Target = reader.ReadEntityId(); // Debug.WriteLine("NPC:" + NPC + ";Target:" + Target); }
internal SpawnProjectileServerMessage(TeraMessageReader reader) : base(reader) { Id = reader.ReadEntityId(); reader.Skip(4); Model = reader.ReadInt32(); Start = reader.ReadVector3f(); Finish = reader.ReadVector3f(); reader.Skip(5); OwnerId = reader.ReadEntityId(); }
internal S_BOSS_GAGE_INFO(TeraMessageReader reader) : base(reader) { EntityId = reader.ReadEntityId(); HuntingZoneId = reader.ReadUInt32(); TemplateId = reader.ReadUInt32(); TargetId = reader.ReadEntityId(); Unk1 = reader.ReadInt32(); Unk2 = reader.ReadByte(); //enrage? HpRemaining = reader.ReadInt64(); TotalHp = reader.ReadInt64(); }
internal StartUserProjectileServerMessage(TeraMessageReader reader) : base(reader) { OwnerId = reader.ReadEntityId(); reader.Skip(8); Id = reader.ReadEntityId(); SkillId = reader.ReadUInt32(); Start = reader.ReadVector3f(); Finish = reader.ReadVector3f(); Speed = reader.ReadSingle(); //Debug.WriteLine($"{Time.Ticks} {BitConverter.ToString(BitConverter.GetBytes(Id.Id))} {Start} - > {Finish} {Speed} {SkillId}"); }
internal S_BOSS_GAGE_INFO(TeraMessageReader reader) : base(reader) { EntityId = reader.ReadEntityId(); Type = reader.ReadInt32(); NpcId = reader.ReadInt32(); TargetId = reader.ReadEntityId(); Unk1 = reader.ReadInt32(); HpChange = reader.ReadSingle(); Unk2 = reader.ReadByte(); //enrage? HpRemaining = reader.ReadSingle(); TotalHp = reader.ReadSingle(); }
internal S_INSTANT_DASH(TeraMessageReader reader) : base(reader) { Entity = reader.ReadEntityId(); Target = reader.ReadEntityId(); if (reader.Factory.ReleaseVersion >= 6000) { reader.Skip(4); //0, not sure when it was added } Position = reader.ReadVector3f(); Heading = reader.ReadAngle(); // Debug.WriteLine($"{Time.Ticks} {BitConverter.ToString(BitConverter.GetBytes(Entity.Id))}: {Finish} {Heading}"); }
internal SCreatureChangeHp(TeraMessageReader reader) : base(reader) { HpRemaining = reader.ReadInt64(); TotalHp = reader.ReadInt64(); HpChange = reader.ReadInt64(); Type = reader.ReadInt32(); TargetId = reader.ReadEntityId(); SourceId = reader.ReadEntityId(); Critical = reader.ReadByte(); AbnormalId = reader.ReadInt32(); //Debug.WriteLine("target = " + TargetId + ";Source:" + SourceId + ";Critical:" + Critical + ";Hp left:" + HpRemaining + ";Max HP:" + TotalHp+";HpLost/Gain:"+ HpChange + ";Type:"+ Type + ";dot:"+AbnormalId); }
internal StartUserProjectileServerMessage(TeraMessageReader reader) : base(reader) { OwnerId = reader.ReadEntityId(); reader.Skip(reader.Factory.ReleaseVersion >= 7401?8:4);// something added Id = reader.ReadEntityId(); SkillId = new SkillId(reader).Id; Start = reader.ReadVector3f(); Finish = reader.ReadVector3f(); Speed = reader.ReadSingle(); //Debug.WriteLine($"{Time.Ticks} {BitConverter.ToString(BitConverter.GetBytes(Id.Id))} {Start} - > {Finish} {Speed} {ActionId}"); }
internal EachSkillResultServerMessage(TeraMessageReader reader) : base(reader) { reader.Skip(4); Source = reader.ReadEntityId(); Target = reader.ReadEntityId(); reader.Skip(4); SkillId = reader.ReadInt32() & 0x3FFFFFF; reader.Skip(16); Amount = reader.ReadInt32(); SkillResultFlags = (SkillResultFlags)reader.ReadInt32(); IsCritical = (reader.ReadByte() & 1) != 0; }
internal EachSkillResultServerMessage(TeraMessageReader reader) : base(reader) { reader.Skip(4); Source = reader.ReadEntityId(); Target = reader.ReadEntityId(); reader.Skip(4); SkillId = reader.ReadInt32() & 0x3FFFFFF; reader.Skip(16); Amount = reader.ReadInt32(); Flags = (SkillResultFlags)reader.ReadInt32(); IsCritical = (reader.ReadByte() & 1) != 0; }
internal SPlayerChangeMp(TeraMessageReader reader) : base(reader) { MpRemaining = reader.ReadInt32(); TotalMp = reader.ReadInt32(); MpChange = reader.ReadInt16(); Type = reader.ReadInt32(); Unknow3 = reader.ReadInt16(); TargetId = reader.ReadEntityId(); SourceId = reader.ReadEntityId(); // Critical = reader.ReadInt16(); Not here anymore // Debug.WriteLine("target = " + TargetId + ";Source:" + SourceId + ";Critical:" + Critical + ";Mp left:" + MpRemaining + ";Max MP:" + TotalMp + ";MpLost/Gain:" + MpChange + ";Type:" + Type + ";Unknow3:" + Unknow3); }
internal SCreatureChangeHp(TeraMessageReader reader) : base(reader) { HpRemaining = reader.ReadInt32(); TotalHp = reader.ReadInt32(); HpChange = reader.ReadInt16(); Type = reader.ReadInt32(); Unknow3 = reader.ReadInt16(); TargetId = reader.ReadEntityId(); SourceId = reader.ReadEntityId(); Critical = reader.ReadInt16(); // Console.WriteLine("target = " + TargetId + ";Source:" + SourceId + ";Critical:" + Critical + ";Hp left:" + HpRemaining + ";Max HP:" + TotalHp+";HpLost/Gain:"+ HpChange + ";Type:"+ Type + ";Unknow3:"+Unknow3); }
internal SpawnProjectileServerMessage(TeraMessageReader reader) : base(reader) { Id = reader.ReadEntityId(); reader.Skip(4); SkillId = new SkillId(reader).Id; Start = reader.ReadVector3f(); Finish = reader.ReadVector3f(); Moving = reader.ReadBoolean(); Speed = reader.ReadSingle(); OwnerId = reader.ReadEntityId(); TemplateId = reader.ReadInt32(); //PrintRaw(); //Debug.WriteLine($"{Time.Ticks} {BitConverter.ToString(BitConverter.GetBytes(Id.Id))} {Start} - > {Finish} {Speed}"); }
internal SpawnNpcServerMessage(TeraMessageReader reader) : base(reader) { reader.Skip(6); Id = reader.ReadEntityId(); TargetId = reader.ReadEntityId(); Position = reader.ReadVector3f(); Heading = reader.ReadAngle(); reader.Skip(4); NpcId = reader.ReadUInt32(); NpcType = reader.ReadUInt16(); ModelId = reader.ReadUInt32(); reader.Skip(31); OwnerId = reader.ReadEntityId(); }
internal SpawnProjectileServerMessage(TeraMessageReader reader) : base(reader) { Id = reader.ReadEntityId(); reader.Skip(4); Model = reader.ReadInt32(); Start = reader.ReadVector3f(); Finish = reader.ReadVector3f(); Unk1 = reader.ReadByte(); Speed = reader.ReadSingle(); OwnerId = reader.ReadEntityId(); Unk2 = reader.ReadInt16(); // ??? //PrintRaw(); //Debug.WriteLine($"{Time.Ticks} {BitConverter.ToString(BitConverter.GetBytes(Id.Id))} {Start} - > {Finish} {Speed}"); }
internal SCreatureChangeHp(TeraMessageReader reader) : base(reader) { HpRemaining = reader.Factory.ReleaseVersion < 6200 ? reader.ReadInt32() : reader.ReadInt64(); TotalHp = reader.Factory.ReleaseVersion < 6200 ? reader.ReadInt32() : reader.ReadInt64(); HpChange = reader.Factory.ReleaseVersion < 6200 ? reader.ReadInt32() : reader.ReadInt64(); Type = reader.ReadInt32(); TargetId = reader.ReadEntityId(); SourceId = reader.ReadEntityId(); Critical = reader.ReadByte(); if (reader.Factory.ReleaseVersion >= 6200) { AbnormalId = reader.ReadInt32(); // not sure when it was added, wasn't there on classic } //Debug.WriteLine("target = " + TargetId + ";Source:" + SourceId + ";Critical:" + Critical + ";Hp left:" + HpRemaining + ";Max HP:" + TotalHp+";HpLost/Gain:"+ HpChange + ";Type:"+ Type + ";dot:"+AbnormalId); }
internal SpawnNpcServerMessage(TeraMessageReader reader) : base(reader) { reader.Skip(reader.Factory.ReleaseVersion >= 7100 ? 10 : 6);//classic staff, not sure when additional array appeared Id = reader.ReadEntityId(); TargetId = reader.ReadEntityId(); Position = reader.ReadVector3f(); Heading = reader.ReadAngle(); reader.Skip(4); NpcId = reader.ReadUInt32(); NpcArea = reader.ReadUInt16(); reader.Skip(reader.Factory.ReleaseVersion >= 7900? 43 : //remainingEnrageTime reader.Factory.ReleaseVersion >= 6801 ? 39 : 35); //KR added 4 bytes (shapeId) OwnerId = reader.ReadEntityId(); }
internal SpawnNpcServerMessage(TeraMessageReader reader) : base(reader) { reader.Skip(6); Id = reader.ReadEntityId(); TargetId = reader.ReadEntityId(); Position = reader.ReadVector3f(); Heading = reader.ReadAngle(); reader.Skip(4); NpcId = reader.ReadUInt32(); NpcArea = reader.ReadUInt16(); CategoryId = reader.ReadUInt32(); reader.Skip(31); OwnerId = reader.ReadEntityId(); }
internal SpawnNpcServerMessage(TeraMessageReader reader) : base(reader) { reader.Skip(6); Id = reader.ReadEntityId(); TargetId = reader.ReadEntityId(); Position = reader.ReadVector3f(); Heading = reader.ReadAngle(); reader.Skip(4); TemplateId = reader.ReadInt32(); HuntingZoneId = reader.ReadUInt16(); ModelId = reader.ReadUInt32(); reader.Skip(31); OwnerId = reader.ReadEntityId(); }
internal S_CHANGE_DESTPOS_PROJECTILE(TeraMessageReader reader) : base(reader) { Id = reader.ReadEntityId(); Finish = reader.ReadVector3f(); //Debug.WriteLine($"{Time.Ticks} {BitConverter.ToString(BitConverter.GetBytes(Id.Id))} - > {Finish}"); }
internal S_CREATURE_ROTATE(TeraMessageReader reader) : base(reader) { Entity = reader.ReadEntityId(); Heading = reader.ReadAngle(); NeedTime = reader.ReadInt16(); // Debug.WriteLine($"{Time.Ticks} {BitConverter.ToString(BitConverter.GetBytes(Entity.Id))}: {Heading} {Time}"); }
internal S_USER_FLYING_LOCATION(TeraMessageReader reader) : base(reader) { EntityId = reader.ReadEntityId(); Type = reader.ReadInt32(); reader.Skip(16); Position = reader.ReadVector3f(); }
internal LoginServerMessage(TeraMessageReader reader) : base(reader) { reader.Skip(10); RaceGenderClass = new RaceGenderClass(reader.ReadInt32()); Id = reader.ReadEntityId(); reader.Skip(4); PlayerId = reader.ReadUInt32(); reader.Skip(260); Name = reader.ReadTeraString(); }
internal SpawnUserServerMessage(TeraMessageReader reader) : base(reader) { reader.Skip(30); PlayerId = reader.ReadUInt32(); Id = reader.ReadEntityId(); reader.Skip(18); RaceGenderClass=new RaceGenderClass(reader.ReadInt32()); reader.Skip(208); Name = reader.ReadTeraString(); GuildName = reader.ReadTeraString(); }
internal SpawnMeServerMessage(TeraMessageReader reader) : base(reader) { Id = reader.ReadEntityId(); }
internal SpawnNpcServerMessage(TeraMessageReader reader) : base(reader) { reader.Skip(6); Id = reader.ReadEntityId(); }