|
本帖最后由 daidaishu 于 2023-8-23 07:57 PM 编辑
环境:Win10
问题描述:
如下图所示,我在右上角创建了一个MiniConsole,并在其中显示“【谣言】”相关的信息,
并设置了30个字符自动换行,当字符长度超过30个时,会在空格处换行,而不是第30个字
符的位置。
解决方案:
取消自动换行,自己写一个函数,在字符串达到指定宽度时调用函数插入一个换行符。
效果:
完整代码:
- -- 顶边UI
- local function creatUI_top()
- -- 创建顶边UI容器
- topContainer = topContainer or Geyser.Container:new({
- name = "topContainer",
- x = "0",y = "0",
- width = "100%",
- height = "100",
- })
- -- 创建聊天信息显示迷你控制台
- chatConsole = chatConsole or Geyser.MiniConsole:new({
- name = "chatConsole",
- x = "0",y = "0",
- width = "50%",
- height = "100%",
- fontSize = 10,
- scrollBar = false,
- wrap = 30
- }, topContainer)
- -- 创建系统信息显示迷你控制台
- systemConsole = systemConsole or Geyser.MiniConsole:new({
- name = "systemConsole",
- x = "50%", y = "0",
- width = "50%",
- height = "100%",
- fontSize = 10,
- scrollBar = false,
- }, topContainer)
- end
- -- 右边UI
- local function creatUI_right()
- -- 创建右边UI容器
- rightContainer = rightContainer or Geyser.Container:new({
- name = "topContainer",
- x = "-500",y = "100",
- width = "500",
- height = "500",
- })
- -- 创建地图
- myMap = Geyser.Mapper:new({
- name = "myMap",
- x = 0, y = 0,
- width = "100%",
- height = "100%"
- },rightContainer)
- end
- -- 自动换行函数
- local function processCopy2decho(text,windowWidth)
- local processedText = ""
- local accumulatedWidth = 0
- local colorFlag = 1
- for char in text:gmatch(utf8.charpattern) do
- if char == "<" then
- colorFlag = 0
- elseif char == ">" then
- colorFlag = 1
- elseif colorFlag == 1 then
- local charWidth = utf8.width(char, true)
- accumulatedWidth = accumulatedWidth + charWidth
- if accumulatedWidth > windowWidth then
- processedText = processedText .. "\n"
- accumulatedWidth = charWidth
- end
- end
- processedText = processedText .. char
- end
- return processedText.."\n"
- end
- -- 聊天信息Trigger
- function chatTrigger()
- if chatConsole then
- selectCurrentLine()
- chatConsole:decho(processCopy2decho(copy2decho(),96))
- deleteLine()
- end
- end
- -- 系统信息Trigger
- function systemTrigger()
- if systemConsole then
- selectCurrentLine()
- systemConsole:decho(processCopy2decho(copy2decho(),96))
- deleteLine()
- end
- end
- -- 初始化
- creatUI_top()
- creatUI_right()
- --聊天信息分类
- if(exists("聊天信息分类","trigger") == 0) then
- permRegexTrigger("聊天信息分类", "Pkuxkx_gui", {
- [[^【(闲聊|北侠QQ群|求助)】.*$]]
- --此行可继续增加,注意在上一行末尾加上逗号
- }, [[chatTrigger()]])
- end
- --系统信息分类
- if(exists("系统信息分类","trigger") == 0) then
- permRegexTrigger("系统信息分类", "Pkuxkx_gui", {
- [[^【(谣言|江湖|交易)】.*$]]
- --此行可继续增加,注意在上一行末尾加上逗号
- }, [[systemTrigger()]])
- end
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|