本文へ移動
cccskills
無料GitHub で公開

server-message

Implement Thistle Tea SMSG_* server messages following our architecture patterns. Use this when asked to implement a new message or you need to use one that isn't implemented yet.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md2.1 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Create/modify a module under lib/game/network/message/ that:

  • use ThistleTea.Game.Network.ServerMessage, :SMSG_FOO
  • defines a defstruct matching the fields needed to encode the packet
  • implements to_binary/1 using little-endian bit syntax patterns like <<x::little-size(32)>>

Quick examples

Minimal payload (SMSG_PONG):

defmodule ThistleTea.Game.Network.Message.SmsgPong do
  @moduledoc false
  use ThistleTea.Game.Network.ServerMessage, :SMSG_PONG

  defstruct [:sequence_id]

  @impl ServerMessage
  def to_binary(%__MODULE__{sequence_id: sequence_id}) do
    <<sequence_id::little-size(32)>>
  end
end

Conditional payload (SMSG_AUTH_RESPONSE):

defmodule ThistleTea.Game.Network.Message.SmsgAuthResponse do
  @moduledoc false
  use ThistleTea.Game.Network.ServerMessage, :SMSG_AUTH_RESPONSE

  @result_auth_ok 0x0C
  @result_auth_wait_queue 0x1B

  defstruct [:result, :billing_time, :billing_flags, :billing_rested, :queue_position]

  @impl ServerMessage
  def to_binary(%__MODULE__{} = msg) do
    <<msg.result::little-size(8)>> <>
      case msg.result do
        @result_auth_ok ->
          <<msg.billing_time::little-size(32), msg.billing_flags::little-size(8),
            msg.billing_rested::little-size(32)>>

        @result_auth_wait_queue ->
          <<msg.queue_position::little-size(32)>>

        _ ->
          <<>>
      end
  end
end

How to find the packet spec

  • Packet formats are cataloged in the wow_messages git submodule at refs/wow_messages/.
  • Look up the .wowm spec here: refs/wow_messages/wow_message_parser/wowm/*/${SMSG_NAME}.wowm
  • Note that Thistle Tea is a Vanilla (patch 1.12.1) server, so ignore future client versions

Workflow

  • Translate the .wowm fields into defstruct fields and an encoder in to_binary/1.
  • Use pattern matching in the function head for type safety: to_binary(%__MODULE__{} = msg).

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Implement Thistle Tea CMSG_* client messages following our architecture patterns. Use this when asked to implement a new message or you need to use one that isn't implemented yet.

日本語の概要は準備中です。原文の説明を表示しています。

pikdum/thistle_tea2382026年10月8日 更新

Launch and drive an isolated World of Warcraft 1.12.1 client against a local Thistle Tea server, including keyboard input, left/right clicks, camera drags, screenshots, real instance entry, log observation, and Tidewave runtime probes. Use for real-client gameplay acceptance, client-sensitive protocol or movement verification, reproducing live bugs, checking visibility and instance isolation, or validating a scripted content chain beyond automated tests.

日本語の概要は準備中です。原文の説明を表示しています。

pikdum/thistle_tea2382026年10月8日 更新

pikdum のスキルをすべて見る

このスキルの問題を報告する