• 0 票 - 平均分 0
  • 1
  • 2
  • 3
  • 4
  • 5
[插件] kook-connect
#3
指定频道发送消息

KOOK 指令默认可以回复到当前频道,也可以发送到指定频道。

1. 回复当前频道

玩家在哪个 KOOK 频道输入指令,机器人就回复到哪个频道:

代码:
KCMD:ping(user, channel, params[])
{
    KCC_SendChannelMessage(channel, "pong");
    return 1;
}

KOOK 输入:

代码:
/ping

机器人会在当前频道回复:

代码:
pong

2. 发送到指定频道

如果想让机器人把消息发送到固定频道,可以使用频道 ID:

代码:
KCMD:test(user, channel, params[])
{
    new KCC_Channel:targetChannel = KCC_FindChannelById("你的频道ID");

    KCC_SendChannelMessage(targetChannel, "这条消息会发送到指定频道");
    return 1;
}

这样无论 /test 在哪个频道执行,消息都会发送到指定频道。

3. 游戏内主动发送 KOOK 日志

也可以写成一个 stock,方便游戏系统调用:

代码:
stock SendMyKookLog(const message[])
{
    new KCC_Channel:targetChannel = KCC_FindChannelById("你的频道ID");

    KCC_SendChannelMessage(targetChannel, message);
    return 1;
}

使用示例:

代码:
SendMyKookLog("服务器启动完成。");

4. 限制指令只能在指定频道使用

如果不希望某个指令在所有频道都能用,可以判断当前频道 ID:

代码:
KCMD:players(user, channel, params[])
{
    new currentId[KCC_ID_SIZE];
    KCC_GetChannelId(channel, currentId, sizeof(currentId));

    if(strcmp(currentId, "允许使用的频道ID", false) != 0)
    {
        KCC_SendChannelMessage(channel, "这个指令只能在指定频道使用。");
        return 1;
    }

    KCC_SendChannelMessage(channel, "指令执行成功。");
    return 1;
}

这样只有在指定频道输入:

代码:
/players

指令才会真正执行。

5. 说明

代码:
KCC_FindChannelById("频道ID")

用于获取指定 KOOK 频道。

代码:
KCC_SendChannelMessage(channel, "消息")

用于向某个频道发送普通文字消息。

代码:
KCC_GetChannelId(channel, currentId, sizeof(currentId))

用于获取当前频道的 ID,常用于判断指令是否来自指定频道。
  回复


此主题中的消息
[插件] kook-connect - 由 siwode - 05-01-2026, 01:07 AM
RE: [插件] kook-connect - 由 siwode - 06-08-2026, 10:47 AM
RE: [插件] kook-connect - 由 siwode - 06-08-2026, 10:49 AM
RE: [插件] kook-connect - 由 siwode - 06-08-2026, 10:55 AM
RE: [插件] kook-connect - 由 siwode - 06-08-2026, 11:04 AM

论坛跳转:


浏览此主题的用户: 1 位客人