conanexiles吧 关注:53,645贴子:647,531
  • 6回复贴,共1

【分享】实现传送|地图|物品发放等功能的服务器插件

只看楼主收藏回复


功能基于Python和游戏Rcon接口实现。有些常见功能没有找到好的实现办法,例如指定玩家的MessageBox调用T.T
常见实现逻辑:
后台增量日志读取--->指令关键字识别--->Rcon命令发送


IP属地:陕西1楼2024-01-05 16:18回复
    搭过服务器,看到其他服是有传送等功能,比较好奇,咨询后大为震惊。单个功能50一月,传送/铜币/装备发放三个功能150,想想还是自己搞吧


    IP属地:陕西2楼2024-01-05 16:27
    回复
      2025-12-25 19:32:37
      广告
      不感兴趣
      开通SVIP免广告
      传送/铜币/装备发放这三个简单功能,都可以用前面说的 后台增量日志读取--->指令关键字识别--->Rcon命令发送逻辑实现。


      IP属地:陕西3楼2024-01-05 16:30
      回复
        **日志
        先说日志读取
        服务器/客户端日志一般在安装目录 ..\ConanSandbox\Saved\Logs\ConanSandbox.log
        服务器中玩家的登入,登出,聊天等信息全都会记录在这个文件里,我们需要做的就是识别日志中的关键信息。
        1:识别最新日志文件
        2:读取新增日志
        3:循环
        具体实现:


        IP属地:陕西4楼2024-01-05 16:42
        回复
          **关键字
          这里拿<传送>这个功能来举例子 , 此指令应该是由玩家发起, 在需要传送时在聊天窗口输入“关键字+地点”
          关键字指定成 :@传送 ,TP等 。 汉字前面最好加个特殊符号,以免匹配到其他聊天信息。
          玩家发送消息后,日志中会出现类似以下内容:
          “[2023.09.22-02.38.00:222][945]ChatWindow: Character xxx said: TP XSC”
          “xxx”就是玩家游戏名称,确定接下来传送谁。
          “TP”是指令,触发传送的关键。
          "XSC"是传送地点, 对应一个固定的坐标。
          具体实现:


          IP属地:陕西5楼2024-01-05 17:05
          回复
            **命令发送
            利用Rcon实现,rcon命令参考:https://conanexiles.fandom.com/wiki/Rcon
            python可以直接使用mcrcon模块~

            "con {player_id} TeleportPlayer -124450 -220674 11230" 实际上就是一个命令的拼接
            "con {player_id}“ 是告诉rcon, 谁要执行服务器命令。
            ”TeleportPlayer -124450 -220674 11230“ 是游戏的管理员传送命令。

            判断成功传送了再返回,可能会出现传送失败的情况。
            Rcon接口有保护机制,如果短时间大量访问,该端口会自动拒绝所有消息。 所以失败重试的间隔不要太短。


            IP属地:陕西6楼2024-01-05 17:24
            回复
              以上就是日志读取--->指令关键字识别--->Rcon命令实现功能的简单实例 , 具体细节后面空了会分享。
              欢迎各位服主/大佬集思广益


              IP属地:陕西7楼2024-01-05 17:31
              回复