[3.3.5] SMSG_ATTACKER_STATE_UPDATE structure
まだ誰も着手していません。
評価
調査の方向性
3.3.5 SMSG_ATTACKER_STATE_UPDATE 構造体のパーサーのエントリーポイントを特定し、この issue で想定されている構造体と現在のフィールド順序を比較してください。すべてのサブダメージエントリの後に absorb 値と resist 値が別々のループで読み取られ、想定されるパケットレイアウトと一致すれば作業完了です。
索引モデルが issue の本文から書いたものです。
説明
Description: SMSG_ATTACKER_STATE_UPDATE packet structure is wrong for 3.3.5 sniffs and does not match TrinityCore structure.
Current (wrong):
var hitInfo = packet.ReadInt32E<SpellHitInfo>("HitInfo");
packet.ReadPackedGuid("AttackerGUID");
packet.ReadPackedGuid("TargetGUID");
packet.ReadInt32("Damage");
packet.ReadInt32("OverDamage");
var subDmgCount = packet.ReadByte();
for (var i = 0; i < subDmgCount; ++i)
{
packet.ReadInt32("SchoolMask", i);
packet.ReadSingle("Float Damage", i);
packet.ReadInt32("Int Damage", i);
if (hitInfo.HasAnyFlag(SpellHitInfo.HITINFO_PARTIAL_ABSORB | SpellHitInfo.HITINFO_FULL_ABSORB))
packet.ReadInt32("Damage Absorbed", i);
if (hitInfo.HasAnyFlag(SpellHitInfo.HITINFO_PARTIAL_RESIST | SpellHitInfo.HITINFO_FULL_RESIST))
packet.ReadInt32("Damage Resisted", i);
}
...
Expected (correct):
var hitInfo = packet.ReadInt32E<SpellHitInfo>("HitInfo");
packet.ReadPackedGuid("AttackerGUID");
packet.ReadPackedGuid("TargetGUID");
packet.ReadInt32("Damage");
packet.ReadInt32("OverDamage");
var subDmgCount = packet.ReadByte();
for (var i = 0; i < subDmgCount; ++i)
{
packet.ReadInt32("SchoolMask", i);
packet.ReadSingle("Float Damage", i);
packet.ReadInt32("Int Damage", i);
}
if (hitInfo.HasAnyFlag(SpellHitInfo.HITINFO_PARTIAL_ABSORB | SpellHitInfo.HITINFO_FULL_ABSORB))
{
for (var i = 0; i < subDmgCount; ++i)
packet.ReadInt32("Damage Absorbed", i);
}
if (hitInfo.HasAnyFlag(SpellHitInfo.HITINFO_PARTIAL_RESIST | SpellHitInfo.HITINFO_FULL_RESIST))
{
for (var i = 0; i < subDmgCount; ++i)
packet.ReadInt32("Damage Resisted", i);
}
...
- 主要言語
- C#
- スター
- 523
- フォーク
- 386
- 平均マージ
- 4日 7時間
- マージ済み PR(30日)
- 3
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
TrinityCore/WowPacketParser のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
TrinityCore/WowPacketParser#990 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
TrinityCore/WowPacketParser#953 ·
-
3.4.3.55392オープン
難易度 4/5 3〜5日 初心者へのやさしさ 20/100
TrinityCore/WowPacketParser#866 · コメント 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
TrinityCore/WowPacketParser#836 · コメント 2 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
TrinityCore/WowPacketParser#833 ·
TrinityCore/WowPacketParser の issue をすべて見る
似ている issue
-
agentic-workflows area/Docs partner/agentic-workflows
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
microsoft/fluentui-blazor#5364 ·
メンテナーはふだん 1 日以内に返信
-
.NET triage
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
microsoft/agent-framework#8811 ·
メンテナーはふだん 1 日以内に返信
-
.NET Docs
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
getsentry/sentry-dotnet#5637 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
QuantConnect/Lean#9842 ·
メンテナーはふだん 1 日以内に返信