跳到正文
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(原文)

安装前可以查看交给 AI 代理的指令内容。

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).

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

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月11日 更新

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月11日 更新

查看 pikdum 的全部技能

报告此技能的问题