コード例 #1
0
 internal SpawnProjectileServerMessage(TeraMessageReader reader)
     : base(reader)
 {
     Id = reader.ReadEntityId();
     reader.Skip(37);
     OwnerId = reader.ReadEntityId();
 }
コード例 #2
0
 internal SpawnProjectileServerMessage(TeraMessageReader reader)
     : base(reader)
 {
     Id = reader.ReadEntityId();
     reader.Skip(37);
     OwnerId = reader.ReadEntityId();
 }
コード例 #3
0
        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}");
        }
コード例 #4
0
ファイル: S_ACTION_STAGE.cs プロジェクト: tuita520/Tera
 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}" );
 }
コード例 #5
0
 internal StartUserProjectileServerMessage(TeraMessageReader reader)
     : base(reader)
 {
     OwnerId = reader.ReadEntityId();
     reader.Skip(8);
     Id = reader.ReadEntityId();
 }
コード例 #6
0
 internal StartUserProjectileServerMessage(TeraMessageReader reader)
     : base(reader)
 {
     OwnerId = reader.ReadEntityId();
     reader.Skip(8);
     Id = reader.ReadEntityId();
 }
コード例 #7
0
        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);
            }
        }
コード例 #8
0
 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":""));
 }
コード例 #9
0
 internal SAbnormalityBegin(TeraMessageReader reader) : base(reader)
 {
     TargetId      = reader.ReadEntityId();
     SourceId      = reader.ReadEntityId();
     AbnormalityId = reader.ReadInt32();
     Duration      = reader.ReadInt32();
     Stack         = reader.ReadInt32();
 }
コード例 #10
0
 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);
 }
コード例 #11
0
        internal SNpcOccupierInfo(TeraMessageReader reader) : base(reader)
        {
            //  PrintRaw();
            NPC = reader.ReadEntityId();
            reader.Skip(8);
            Target = reader.ReadEntityId();

            //  Console.WriteLine("NPC:" + NPC + ";Target:" + Target);
        }
コード例 #12
0
 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":""));
 }
コード例 #13
0
        internal SNpcOccupierInfo(TeraMessageReader reader) : base(reader)
        {
            //  PrintRaw();
            NPC     = reader.ReadEntityId();
            Engager = reader.ReadEntityId();
            Target  = reader.ReadEntityId();

            //  Debug.WriteLine("NPC:" + NPC + ";Target:" + Target);
        }
コード例 #14
0
 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();
 }
コード例 #15
0
 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();
 }
コード例 #16
0
 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}");
 }
コード例 #17
0
 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();
 }
コード例 #18
0
        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}");
        }
コード例 #19
0
 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);
 }
コード例 #20
0
 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}");
 }
コード例 #21
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();
     SkillResultFlags = (SkillResultFlags)reader.ReadInt32();
     IsCritical       = (reader.ReadByte() & 1) != 0;
 }
コード例 #22
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;
 }
コード例 #23
0
ファイル: S_PLAYER_CHANGE_MP.cs プロジェクト: tuita520/Tera
        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);
        }
コード例 #24
0
        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);
        }
コード例 #25
0
 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}");
 }
コード例 #26
0
 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();
 }
コード例 #27
0
 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}");
 }
コード例 #28
0
 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);
 }
コード例 #29
0
 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();
 }
コード例 #30
0
 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();
 }
コード例 #31
0
 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();
 }
コード例 #32
0
 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}");
 }
コード例 #33
0
        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}");
        }
コード例 #34
0
 internal S_USER_FLYING_LOCATION(TeraMessageReader reader) : base(reader)
 {
     EntityId = reader.ReadEntityId();
     Type     = reader.ReadInt32();
     reader.Skip(16);
     Position = reader.ReadVector3f();
 }
コード例 #35
0
 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();
 }
コード例 #36
0
 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();
 }
コード例 #37
0
 internal SpawnMeServerMessage(TeraMessageReader reader)
     : base(reader)
 {
     Id = reader.ReadEntityId();
 }
コード例 #38
0
 internal SpawnNpcServerMessage(TeraMessageReader reader)
     : base(reader)
 {
     reader.Skip(6);
     Id = reader.ReadEntityId();
 }