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; }
public S_INVEN(TeraMessageReader reader) : base(reader) { //TODO if (SessionManager.CurrentPlayer.InfBuffs.Any(x => AbnormalityDatabase.NoctIds.Contains(x.Abnormality.Id))) { return; } var count = reader.ReadUInt16(); var invOffset = reader.ReadUInt16(); reader.Skip(8 + 8); IsOpen = reader.ReadBoolean(); if (!IsOpen) { return; } First = reader.ReadBoolean(); if (First) { Items = new List <Tuple <uint, int, uint> >(); } More = reader.ReadBoolean(); if (invOffset == 0) { return; } reader.BaseStream.Position = invOffset - 4; try { for (var i = 0; i < count; i++) { reader.Skip(2); //var offset = reader.ReadUInt16(); var next = reader.ReadUInt16(); reader.Skip(6); var itemId = reader.ReadUInt32(); reader.Skip(8 + 8); var slot = reader.ReadUInt32(); if (slot > 39) { if (itemId == 151643) { reader.Skip(4); ElleonMarks = reader.ReadUInt32(); } reader.BaseStream.Position = next - 4; continue; } reader.Skip(4 + 4); var enchant = reader.ReadInt32(); reader.Skip(4 + 1 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 8 + 1 + 4 + 4 + 4 + 4 + 4 + 4 + 1 + 4 + 4 + 4 + 4 + 1 + 1); var exp = reader.ReadUInt32(); Items.Add(new Tuple <uint, int, uint>(itemId, enchant, exp)); reader.BaseStream.Position = next - 4; } } catch { // ignored } }
public S_WEAK_POINT(TeraMessageReader reader) : base(reader) { Target = reader.ReadUInt64(); RemovedRunemarks = reader.ReadUInt32(); TotalRunemarks = reader.ReadInt32(); type = reader.ReadUInt32(); SkillId = reader.ReadUInt32(); }
internal SAddCharmStatus(TeraMessageReader reader) : base(reader) { TargetId = reader.ReadEntityId(); CharmId = reader.ReadUInt32(); Status = reader.ReadByte(); Duration = reader.ReadInt32(); // Debug.WriteLine("target = "+TargetId+";Charm:"+CharmId+";Duration:"+Duration+";Status:"+Status); }
public S_USER_EFFECT(TeraMessageReader reader) : base(reader) { User = reader.ReadUInt64(); Source = reader.ReadUInt64(); circle = reader.ReadInt32(); action = reader.ReadInt32(); //string sourceName = Source.ToString(); //if (EntitiesManager.CurrentBosses.FirstOrDefault(x => x.EntityId == Source) != null) //{ // sourceName = EntitiesManager.CurrentBosses.FirstOrDefault(x => x.EntityId == Source).Name; //} //string userName = User.ToString(); //if (User == SessionManager.CurrentPlayer.EntityId) userName = SessionManager.CurrentPlayer.Name; //Console.WriteLine("[S_USER_EFFECT] {0} > {1} ({2} {3})", sourceName, userName, Action, Circle); }
internal C_LOGIN_ARBITER(TeraMessageReader reader) : base(reader) { reader.Skip(11); Language = (LangEnum)reader.ReadUInt32(); Version = reader.ReadInt32(); reader.Factory.ReleaseVersion = Version; reader.Factory.ReloadSysMsg(); }
public S_ABNORMALITY_REFRESH(TeraMessageReader reader) : base(reader) { TargetId = reader.ReadUInt64(); AbnormalityId = reader.ReadUInt32(); Duration = reader.ReadUInt32(); reader.Skip(4); Stacks = reader.ReadInt32(); }
internal SPartyMemberCharmAdd(TeraMessageReader reader) : base(reader) { ServerId = reader.ReadUInt32(); PlayerId = reader.ReadUInt32(); CharmId = reader.ReadUInt32(); Duration = reader.ReadInt32(); Status = reader.ReadByte(); }
public S_ANSWER_INTERACTIVE(TeraMessageReader reader) : base(reader) { var nameOffset = reader.ReadUInt16(); reader.Skip(4); // type if (reader.Factory.ReleaseVersion / 100 >= 103) { PlayerId = reader.ReadUInt32(); } TemplateId = reader.ReadInt32(); Level = reader.ReadInt32(); HasParty = reader.ReadBoolean(); HasGuild = reader.ReadBoolean(); ServerId = reader.ReadUInt32(); reader.RepositionAt(nameOffset); Name = reader.ReadTeraString(); }
internal C_LOGIN_ARBITER(TeraMessageReader reader) : base(reader) { reader.Skip(11); Language = (LangEnum)reader.ReadUInt32(); Version = reader.Factory.Region.Contains("C")? 2707 :reader.ReadInt32();//hardcoded EUC/KRC, since its version is not sent via network reader.Factory.ReleaseVersion = Version; reader.Factory.ReloadSysMsg(); }
public S_SPAWN_NPC(TeraMessageReader reader) : base(reader) { //reader.Skip(10); //id = reader.ReadUInt64(); //var target = reader.ReadUInt64(); //var pos = reader.ReadVector3f(); //var angle = reader.ReadUInt16(); //var relation = reader.ReadUInt32(); //templateId = reader.ReadUInt32(); //huntingZoneId = reader.ReadUInt16(); //var unk1 = reader.ReadInt32(); //var walkSpeed = reader.ReadInt16(); //var runSpeed = reader.ReadInt16(); //var unk5 = reader.ReadInt16(); //var unk6 = reader.ReadBoolean(); //var unk7 = reader.ReadInt32(); //var visible = reader.ReadBoolean(); //var villager = reader.ReadBoolean(); //var spawnType = reader.ReadUInt32(); //var unk11 = reader.ReadUInt64(); //var unk12 = reader.ReadUInt64(); //var unk13 = reader.ReadUInt16(); //var unk14 = reader.ReadUInt32(); //var unk15 = reader.ReadBoolean(); //var owner = reader.ReadUInt64(); //var unk16 = reader.ReadUInt32(); //var unk17 = reader.ReadUInt32(); //var unk18 = reader.ReadUInt64(); //var unk19 = reader.ReadByte(); //var unk20 = reader.ReadUInt32(); //var unk25 = reader.ReadUInt32(); reader.Skip(10); EntityId = reader.ReadUInt64(); reader.Skip(8); //var target = reader.ReadUInt64(); reader.Skip(12); //var loc = reader.ReadVector3f(); reader.Skip(2); //var angle = reader.ReadInt16(); reader.Skip(4); //var relation = reader.ReadInt32(); TemplateId = reader.ReadUInt32(); HuntingZoneId = reader.ReadUInt16(); reader.Skip(4 // shapeID + 2 // walkSpeed ); reader.Skip(2); //var enrage = reader.ReadUInt16(); // 0/1 if (reader.Factory.ReleaseVersion / 100 >= 79) { RemainingEnrageTime = reader.ReadInt32(); } reader.Skip(2 // hpLevel + 2 // questInfo + 1); // visible Villager = reader.ReadBoolean(); reader.Skip(4); //reader.Skip(4+8+4+4); //var aggressive = reader.ReadBoolean(); //Console.WriteLine("[S_SPAWN NPC] id:{0} tId:{1} hzId:{2}", id, templateId, huntingZoneId); }
public S_VIEW_WARE_EX(TeraMessageReader reader) : base(reader) { var itemsArrayCount = reader.ReadUInt16(); if (itemsArrayCount == 0) { return; } var itemsArrayOffset = reader.ReadUInt16(); reader.Skip(8); var type = reader.ReadInt32(); if (type > 1) { return; } reader.Skip(4); var index = reader.ReadInt32(); Pages[index / 72].Items.Clear(); reader.Skip(4); reader.Skip(8); reader.Skip(2); // var tabsCount = reader.ReadInt16(); reader.BaseStream.Position = itemsArrayOffset - 4; for (var i = 0; i < itemsArrayCount; i++) { reader.Skip(2); // var current = reader.ReadUInt16(); var next = reader.ReadUInt16(); reader.Skip(4); //crystals array count and offset var id = reader.ReadInt32(); reader.Skip(8); reader.Skip(8); var slot = reader.ReadUInt32(); reader.Skip(4); reader.Skip(4); //amountTotal (????) var amount = reader.ReadInt32(); Pages[index / 72].Items.Add(new BankItem(id, slot, amount)); if (next == 0) { break; } reader.BaseStream.Position = next - 4; } }
internal SNpcLocation(TeraMessageReader reader) : base(reader) { Entity = reader.ReadEntityId(); Start = reader.ReadVector3f(); Heading = reader.ReadAngle(); Speed = reader.ReadInt16(); Finish = reader.ReadVector3f(); Ltype = reader.ReadInt32(); }
internal LoginServerMessage(TeraMessageReader reader) : base(reader) { reader.Skip(10); RaceGenderClass = new RaceGenderClass(reader.ReadInt32()); Id = reader.ReadEntityId(); reader.Skip(268); Name = reader.ReadTeraString(); }
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":"")); }
public S_PARTY_MEMBER_ABNORMAL_REFRESH(TeraMessageReader reader) : base(reader) { ServerId = reader.ReadUInt32(); PlayerId = reader.ReadUInt32(); Id = reader.ReadUInt32(); Duration = reader.ReadUInt32(); reader.Skip(4); Stacks = reader.ReadInt32(); }
public S_JOIN_PRIVATE_CHANNEL(TeraMessageReader reader) : base(reader) { reader.Skip(4); var nameOffset = reader.ReadUInt16(); Index = reader.ReadInt32(); Id = reader.ReadUInt32(); reader.BaseStream.Position = nameOffset - 4; Name = reader.ReadTeraString(); }
public S_PARTY_MEMBER_LIST(TeraMessageReader reader) : base(reader) { var count = reader.ReadUInt16(); var offset = reader.ReadUInt16(); Im = reader.ReadBoolean(); Raid = reader.ReadBoolean(); reader.Skip(12); LeaderServerId = reader.ReadUInt32(); LeaderPlayerId = reader.ReadUInt32(); reader.Skip(19); Members = new List <GroupMemberData>(); for (var i = 0; i < count; i++) { var u = new GroupMemberData(); reader.RepositionAt(offset); reader.Skip(2); var nextOffset = reader.ReadUInt16(); var nameOffset = reader.ReadUInt16(); u.ServerId = reader.ReadUInt32(); u.PlayerId = reader.ReadUInt32(); u.Level = reader.ReadUInt32(); u.Class = (Class)reader.ReadUInt32(); u.Online = reader.ReadBoolean(); u.EntityId = reader.ReadUInt64(); u.Order = reader.ReadInt32(); u.CanInvite = reader.ReadBoolean(); u.Laurel = (Laurel)reader.ReadUInt32(); u.Awakened = reader.ReadInt32() > 0; reader.RepositionAt(nameOffset); u.Name = reader.ReadTeraString(); u.Alive = true; u.IsLeader = u.ServerId == LeaderServerId && u.PlayerId == LeaderPlayerId; Members.Add(u); offset = nextOffset; } }
public S_PARTY_MEMBER_INTERVAL_POS_UPDATE(TeraMessageReader reader) : base(reader) { ServerId = reader.ReadUInt32(); PlayerId = reader.ReadUInt32(); X = reader.ReadSingle(); Y = reader.ReadSingle(); Z = reader.ReadSingle(); ContinentId = reader.ReadUInt32(); Channel = reader.ReadInt32(); }
internal S_PRIVATE_CHAT(TeraMessageReader reader) : base(reader) { AuthorNameOffset = reader.ReadUInt16(); TextOffset = reader.ReadUInt16(); Channel = reader.ReadInt32(); AuthorId = reader.ReadUInt64(); AuthorName = reader.ReadTeraString(); Text = reader.ReadTeraString(); Debug.WriteLine("Channel:" + Channel + ";Username:"******";Text:" + Text + ";AuthorId:" + AuthorId); }
internal SNpcLocation(TeraMessageReader reader) : base(reader) { Entity = reader.ReadEntityId(); Start = reader.ReadVector3f(); Heading = reader.ReadAngle(); Speed = reader.ReadInt16(); Finish = reader.ReadVector3f(); Ltype = reader.ReadInt32(); //0 = Move, 7= Rotate standing // Trace.WriteLine($"{Time.Ticks} {BitConverter.ToString(BitConverter.GetBytes(Entity.Id))}: {Start} {Heading} -> {Finish}, S:{Speed} ,{Ltype}"); }
internal SpawnUserServerMessage(TeraMessageReader reader) : base(reader) { reader.Skip(0x22); Id = reader.ReadEntityId(); reader.Skip(18); RaceGenderClass = new RaceGenderClass(reader.ReadInt32()); reader.Skip(208); Name = reader.ReadTeraString(); GuildName = reader.ReadTeraString(); }
internal S_CHAT(TeraMessageReader reader) : base(reader) { UsernameOffset = reader.ReadUInt16(); TextOffset = reader.ReadUInt16(); var channel = reader.ReadInt32(); Channel = (ChannelEnum)channel; reader.Skip(11); Username = reader.ReadTeraString(); Text = reader.ReadTeraString(); }
public S_PARTY_MEMBER_STAT_UPDATE(TeraMessageReader reader) : base(reader) { serverId = reader.ReadUInt32(); playerId = reader.ReadUInt32(); curHP = /*reader.Version < 321550 || reader.Version > 321600 ? */ reader.ReadInt64() /*: reader.ReadInt32()*/; curMP = reader.ReadInt32(); maxHP = /*reader.Version < 321550 || reader.Version > 321600 ? */ reader.ReadInt64() /*: reader.ReadInt32()*/; maxMP = reader.ReadInt32(); level = reader.ReadInt16(); combat = reader.ReadInt16(); vitality = reader.ReadInt16(); alive = reader.ReadBoolean(); stamina = reader.ReadInt32(); curRE = reader.ReadInt32(); maxRE = reader.ReadInt32(); }
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(); }
public C_LOGIN_ARBITER(TeraMessageReader reader) : base(reader) { var nameOffset = reader.ReadUInt16(); reader.Skip(9); Language = (LangEnum)reader.ReadUInt32(); Version = reader.ReadInt32(); reader.RepositionAt(nameOffset); AccountName = reader.ReadTeraString(); reader.Factory.ReleaseVersion = Version; }
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 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 S_ACTION_END(TeraMessageReader reader) : base(reader) { Entity = reader.ReadEntityId(); Position = reader.ReadVector3f(); Heading = reader.ReadAngle(); Model = reader.ReadUInt32(); SkillId = new SkillId(reader).Id; unk = reader.ReadInt32(); Id = reader.ReadUInt32(); // Debug.WriteLine($"{Time.Ticks} {BitConverter.ToString(BitConverter.GetBytes(Entity.Id))}: {Start} {Heading} -> {Finish}, S:{Speed} ,{Ltype} {unk1} {unk2}" ); }
public S_PARTY_MEMBER_STAT_UPDATE(TeraMessageReader reader) : base(reader) { ServerId = reader.ReadUInt32(); PlayerId = reader.ReadUInt32(); CurrentHP = /*reader.Version < 321550 || reader.Version > 321600 ? */ reader.ReadInt64() /*: reader.ReadInt32()*/; CurrentMP = reader.ReadInt32(); MaxHP = /*reader.Version < 321550 || reader.Version > 321600 ? */ reader.ReadInt64() /*: reader.ReadInt32()*/; MaxMP = reader.ReadInt32(); Level = reader.ReadInt16(); Combat = reader.ReadInt16(); Vitality = reader.ReadInt16(); Alive = reader.ReadBoolean(); reader.Skip(4); CurrentRE = reader.ReadInt32(); MaxRE = reader.ReadInt32(); }
public S_USER_STATUS(TeraMessageReader reader) : base(reader) { EntityId = reader.ReadUInt64(); if (reader.ReadInt32() == 1) { IsInCombat = true; } else { IsInCombat = false; } }
internal S_USER_LOCATION(TeraMessageReader reader) : base(reader) { Entity = reader.ReadEntityId(); Start = reader.ReadVector3f(); Heading = reader.ReadAngle(); unk1 = reader.ReadInt16(); Speed = reader.ReadInt16(); Finish = reader.ReadVector3f(); Ltype = reader.ReadInt32(); unk2 = reader.ReadByte(); // Debug.WriteLine($"{Time.Ticks} {BitConverter.ToString(BitConverter.GetBytes(Entity.Id))}: {Start} {Heading} -> {Finish}, S:{Speed} ,{Ltype} {unk1} {unk2}" ); }
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 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(); }