Skip to content

1242509682/RoleSelection

Repository files navigation

RoleSelection 角色选择系统插件

  • 作者: SAP、羽学、少司命
  • 出处: Tshock官方群816771079
  • 这是一个Tshock服务器插件,主要用于:使用指令选择角色存档

更新日志

v1.1.1
加入了离开服务器保存角色功能
尝试修复无法施加惩罚buff的问题
(注意:惩罚只在开启SSC和没有`role.admin`权限时才会生效)
加入了渐变色角色名称前缀:
当角色名称没`[c/`字符时,会自动形成渐变色
支持解析[i:物品id]的图标显示与[c/16进制]的单独文字着色
编写示例:
宇宙无敌大萌新 ——应用我设计好的渐变色(从第1个字到最后1个字)
[i:4952]法师 ——只解析物品图标,文字染上单色
[c/F66E78:射][c/FC9C71:手] ——单独文字着色
[i:4956][c/65A1E0:战][c/64E0D9:士] ——同时解析图标与单独文字着色
移除了指令回馈语中的着色代码,避免与头衔着色产生冲突

v1.1.0 fix2
使用/rl add指令不再保存空槽位到配置文件中
加入了【每行显示物品】配置项
[新]尝试修复角色皮肤颜色
[新]修复/rl add 不能准确获取背包物品,额外添加钱币bug
[新]修复/rl up在控制台输入没有回复语
[新]修复/rl cl空值输入没有指令示例

v1.0.9
加入了对角色聊天前缀显示与其对应的配置项:【使用聊天前缀】
非法物品支持设置buff惩罚方式,修改了/rl cl 子命令的使用方法:
/rl cl 0 - 禁用非法物品惩罚(1为清理物品、2为设置buff)
移除了配置文件中多余配置项:
/rl add 不再保存玩家的:
保险箱/虚空袋/护卫熔炉与第二页、第三页盔甲饰品的物品

v1.0.8
修复/rl rm 指令:
无法删除玩家RoleData数据表并在指令执行成功没有回馈语的BUG
加入了【每页显示数量】配置项:
决定/rl list与/rl all指令每页显示多少个角色或玩家
注意:直接使用/rl s 不带任何参数时可看见指令教学,其他指令也是如此

v1.0.7
给/rl s 指令补充锁定功能:
使用【/rl s 玩家名 角色名 -L】
可以锁定或者解锁:玩家使用指定角色,无法使用/rl up 指令进行切换

v1.0.6
本版本使用TShock 5.2.1 API版本的Nuget包进行编译发布
修复/rl all指令无法查看其他玩家的角色背包BUG
修复RoleData数据表不保存玩家名字问题
修复新注册的玩家进服不会帮其创建数据导致无法使用/rl up指令的BUG
使用/rl rs清除玩家数据时,不再需要玩家重进,直接使用/rl即可帮建数据

v1.0.5
本版本使用TShock 5.2.1 API版本的Nuget包进行编译发布,
如有BUG,请用户根据自己的TShock版本自行更新Nuget
加入了【清理非法物品】配置项当它开启时:
当前角色使用【专属武器类型】、【安全物品表】、【免清物品表】、【允许使用物品】的物品时不会受到惩罚
专属武器类型:1近战/2远程/3魔法/4召唤(0和-1都不会进行惩罚)
反之使用了【禁止使用物品】物品或不属于【专属武器类型】会直接清理
该惩罚只对拥有【role.use】权限的玩家生效,拥有【role.admin】可免疫该惩罚
注意:该惩罚仅在开启【数据储存】生效;
【合法物品表】为游戏中所有角色获取到的物品不会受到清理惩罚;
【免清物品表】为玩家切换角色时仍然保留的物品(两者并不冲突)
已经配置在背包表中的物品也不会受到清理惩罚,例如战士的星怒
清理惩罚仅对手上使用的物品生效,其他物品不会受到影响
该功能对应开关指令为:/rl cl

v1.0.4
优化代码性能,使用继承PlayerData数据来保存玩家的角色物品
优化了/rl add逻辑,可直接通过使用者的背包来增加新角色数据(不再重度依赖配置文件编写)
以上代码由“少司命”贡献
完善了/rl list与/rl all指令(每页1个角色与玩家)
使用/rl list可以看见自己是否拥有该角色,拥有则显示(yes)自己数据,反之显示(no)配置预设数据
/rl all只会显示当前玩家正在使用的角色信息
补充-使用/rl add指令预设角色时:可获取指令使用者身上Buff

v1.0.3
优化了/rl up指令执行性能
修复了偶尔输入up指令时:手速过快导致上个角色会覆盖下个角色的BUG
修复了没有角色时:需要输入2次/rl up才能转换角色bug
修复删除角色时玩家不会清理背包的bug
修复删除指定离线玩家时指令执行失败的bug
移除了【第1套盔甲饰品】配置项
移除了【刷新间隔】配置项
角色表加入了【装备工具栏】、【猪猪存钱罐】的配置项
补充了/rl del和/rl rm的指令说明(空值输入触发)

v1.0.2
加入数据库储存逻辑与其对应指令:/rl db
当开启`数据储存`时,需要输2次/rl 序号才能正常转职
第一遍是为了初始化,打开/rl指令菜单时会看见对应提示
初始化结束后就会菜单页就会正常显示当前角色状态了
加入了`免清物品表`
配置项加入了盔甲饰品1-3栏位:
该配置项只用于预设初始装备(前3个是盔甲后7个是饰品)
转职时会有2秒的转职延迟,需要玩家移动或攻击才会生效
(为了能正确保存当前角色而设计)
修复了转职时会清除玩家背包的BUG
关闭`使用数据库储存`只会设置配置项中的默认角色并清空当前所有物品(并且是瞬间完成的)

v1.0.1
修复选择角色时没有装备的BUG
修复设置BUFF时会把所有角色BUFF都设置的BUG
直接使用/rl 序号,相当于直接执行 /rl up 序号
使用/rl del 角色时,会删除拥有该角色的玩家数据
加入了`进服清背包`的配置项
默认配置中补全了4职业的预设数据,
在不启用`进服清背包`时,当玩家没有数据时,默认会使用"萌新"角色

v1.0.0
使用/rl指令选择角色存档
帮SAP完善的小插件,主要用于PVP服务器

指令

语法 别名 权限 说明
/rl role.use 指令菜单与创建数据
/rl up <角色名/序号> /rl 序号 role.use 选择角色
/rl list /rl l role.use 列出已有角色
/rl all /rl al role.use 列出其他玩家角色
/rl set 玩家名 角色名 /rl s 玩家名 角色名 role.admin 修改指定玩家角色
/rl set 玩家名 角色名 -L /rl s 玩家名 角色名 -L role.admin 锁定或解锁指定玩家角色
/rl add 角色名 /rl a 角色名 role.admin 添加角色
/rl del 角色名 /rl d 角色名 role.admin 删除角色
/rl rm 玩家名 /rl r 玩家名 role.admin 移除指定玩家数据
/rl reset /rl rs role.admin 清空所有玩家数据表
/rl clear 数字 /rl cl role.admin 非法物品惩罚(0关闭/1清物品/2设buff)
/rl db role.admin 开启或关闭数据存储
/reload tshock.cfg.reload 重载配置文件

配置

配置文件位置:tshock/角色选择系统.json

{
  "插件开关": true,
  "使用聊天前缀": true,
  "聊天前缀格式": "☆{1}☆ {2}:{3} {4}",
  "清理钱币": false,
  "进服清背包": false,
  "免清物品表": [
    71
  ],
  "数据储存": true,
  "每页显示角色": 5,
  "每行显示物品": 7,
  "惩罚非法物品方式(1清物品/2加buff)": 0,
  "非法物品Buff表": {
    "149": 5
  },
  "合法物品表": [],
  "角色表": [
    {
      "角色名": "宇宙无敌大萌新",
      "专属武器类型": 0,
      "允许使用物品ID": [],
      "禁止使用物品ID": [],
      "生命值": 100,
      "魔力值": 20,
      "Buff": {
        "11": -1
      },
      "当前盔甲饰品": [],
      "第2套盔甲饰品": [],
      "第3套盔甲饰品": [],
      "玩家背包表": [
        {
          "netID": -15,
          "prefix": 0,
          "stack": 1
        },
        {
          "netID": -13,
          "prefix": 0,
          "stack": 1
        },
        {
          "netID": -16,
          "prefix": 0,
          "stack": 1
        }
      ],
      "猪猪存钱罐": [],
      "装备工具栏": [
        {
          "netID": 5098,
          "prefix": 0,
          "stack": 1
        }
      ]
    },
    {
      "角色名": "[i:4956][c/65A1E0:战][c/64E0D9:士]",
      "专属武器类型": 1,
      "允许使用物品ID": [],
      "禁止使用物品ID": [],
      "生命值": 400,
      "魔力值": 200,
      "Buff": {
        "25": -1
      },
      "当前盔甲饰品": [
        {
          "netID": 3187,
          "prefix": 0,
          "stack": 1
        },
        {
          "netID": 3188,
          "prefix": 0,
          "stack": 1
        },
        {
          "netID": 3189,
          "prefix": 0,
          "stack": 1
        }
      ],
      "第2套盔甲饰品": [],
      "第3套盔甲饰品": [],
      "玩家背包表": [
        {
          "netID": 65,
          "prefix": 81,
          "stack": 1
        }
      ],
      "猪猪存钱罐": [],
      "装备工具栏": []
    },
    {
      "角色名": "[c/F66E78:射][c/FC9C71:手]",
      "专属武器类型": 2,
      "允许使用物品ID": [],
      "禁止使用物品ID": [],
      "生命值": 400,
      "魔力值": 20,
      "Buff": {
        "112": -1
      },
      "当前盔甲饰品": [
        {
          "netID": 3374,
          "prefix": 0,
          "stack": 1
        },
        {
          "netID": 3375,
          "prefix": 0,
          "stack": 1
        },
        {
          "netID": 3376,
          "prefix": 0,
          "stack": 1
        }
      ],
      "第2套盔甲饰品": [],
      "第3套盔甲饰品": [],
      "玩家背包表": [
        {
          "netID": 964,
          "prefix": 82,
          "stack": 1
        },
        {
          "netID": 1349,
          "prefix": 0,
          "stack": 9999
        }
      ],
      "猪猪存钱罐": [],
      "装备工具栏": []
    },
    {
      "角色名": "[i:4952]法师",
      "专属武器类型": 3,
      "允许使用物品ID": [],
      "禁止使用物品ID": [],
      "生命值": 400,
      "魔力值": 400,
      "Buff": {
        "6": -1
      },
      "当前盔甲饰品": [
        {
          "netID": 228,
          "prefix": 0,
          "stack": 1
        },
        {
          "netID": 229,
          "prefix": 0,
          "stack": 1
        },
        {
          "netID": 230,
          "prefix": 0,
          "stack": 1
        }
      ],
      "第2套盔甲饰品": [],
      "第3套盔甲饰品": [],
      "玩家背包表": [
        {
          "netID": 4062,
          "prefix": 83,
          "stack": 1
        }
      ],
      "猪猪存钱罐": [],
      "装备工具栏": [
        {
          "netID": 0,
          "prefix": 0,
          "stack": 0
        },
        {
          "netID": 115,
          "prefix": 0,
          "stack": 1
        }
      ]
    },
    {
      "角色名": "召唤",
      "专属武器类型": 4,
      "允许使用物品ID": [],
      "禁止使用物品ID": [],
      "生命值": 400,
      "魔力值": 200,
      "Buff": {
        "110": -1
      },
      "当前盔甲饰品": [
        {
          "netID": 238,
          "prefix": 0,
          "stack": 1
        },
        {
          "netID": 5068,
          "prefix": 0,
          "stack": 1
        },
        {
          "netID": 5001,
          "prefix": 0,
          "stack": 1
        }
      ],
      "第2套盔甲饰品": [],
      "第3套盔甲饰品": [],
      "玩家背包表": [
        {
          "netID": 4913,
          "prefix": 81,
          "stack": 1
        },
        {
          "netID": 4273,
          "prefix": 83,
          "stack": 1
        }
      ],
      "猪猪存钱罐": [],
      "装备工具栏": []
    }
  ]
}

反馈

About

这是一个Tshock服务器插件,主要用于:使用指令选择角色存档

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors