Vv引擎官方论坛

搜索
查看: 462|回复: 4

[Lua] 关于分割字符串(别笑..)

[复制链接]

该用户从未签到

13

主题

32

帖子

2585

积分

金牌会员

Rank: 6Rank: 6

积分
2585
发表于 2021-12-2 17:22:51 | 显示全部楼层 |阅读模式
首先我必须要说,感谢VV老板和管理组对我的帮助,这种帮助简直让我一个新手有种起飞的体验哈哈,废话不多说,先来讲问题

我在写检测UI框的名称,怎么写都不过,我也总结了一下自己的逻辑,觉得貌似没问题?

if not string.find(Player:CustomItem(0).Name,"+")  then --检测这个ui框里的名字没有包含了“+”这个符号 然后执行

这里我到现在理解的也不到位,猫总最后给我改成了这样 if not string.find(Player:CustomItem(0).Name,"+")  then  ~= nil then

说是缺少判断语句,但我已经判断了是不是ui框内包含了什么? 为什么还要写个不等于空?(我新手还没吃透。。)

我后面的脚本想做一个字符串分割,说直白点就是分割一个txt的内容然后进行变量

对高手来说可能很容易,但我卡了很久甚至想过放弃,y老板和猫总的支持让我又有了前进的动力
下面这些代码是猫总写的实例:

local OneLineText = gamelib.EnvirPath   --EnvirPath: String 这里说明了是个字符串类型?把文件夹路径赋值给了OneLineText 

Player:SendMessage(OneLineText)      --这应该只是做一下输出想看一下结果吧?
local qhfile = io.open(gamelib.EnvirPath.."强化数据.txt","r") -- 这个我还没明白为什么这样搞(io.open)?,有大佬可以解释一下就最好了
for oneline in qhfile:lines() do    --这里的for循环我也不是很懂,跟我看那些新手教程有一些出入。。
--开始分割
local SplitTable  =  Split(oneline,",")  --这个我到最后才明白,是用“,”分割了,怪我太笨了!这是根据“,”号拆成三个

比如Mir200\Envir文件下新建一个txt,强化数据.txt 内容比如你写什么武器,你需求的数值,像金额、职业都用“,”隔开。

井中月,30000,0,1
魔杖,10000,1,2
乌木剑,5000,2,3


上面我随便写了个txt内容的例子(新手看的东西,高手略过哈)

                                                          --这里对比UI框里的名字,是不是包含了你放入物品名字的这个字符串
       if string.find(Player:CustomItem(0).Name,SplitTable[1]) ~= nil then 
         Player:SendMessage("当前放入的武器是"..SplitTable[1]..",金额为"..SplitTable[2]..",等级为"..SplitTable[3])



---------------------------------------
说下使用心得吧,很难用但也很好用
说VV很难用是因为各种东西的使用都跟以前接触的不一样
说它好用是真的强大,UI可以随意剪切,按钮可以设置自定义形式,外置聊天,悬浮框,Ctrl+右键的功能系统都让我感觉它无所不能

上面只是我作为一个新手看见的功能,还有很多我目前还接触不到,但我见过我小哥的版本只能用强悍来形容...........
关键还免费!!(不是前期免费后期收韭菜那种!!!)





评分

参与人数 2金钱 +1554 收起 理由
admin + 888 赞一个!
沃尔玛 + 666 很给力!

查看全部评分

回复

使用道具 举报

该用户从未签到

13

主题

32

帖子

2585

积分

金牌会员

Rank: 6Rank: 6

积分
2585
 楼主| 发表于 2021-12-2 17:41:34 | 显示全部楼层
分割之前一定要把这段贴到脚本里

function Split(szFullString, szSeparator)
  local nFindStartIndex = 1
  local nSplitIndex = 1
  local nSplitArray = {}
  while true do
     local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex)
     if not nFindLastIndex then
        nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString))
        break
     end
     nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1)
     nFindStartIndex = nFindLastIndex + string.len(szSeparator)
     nSplitIndex = nSplitIndex + 1
  end
  return nSplitArray
end
回复

使用道具 举报

  • TA的每日心情

    2024-6-2 16:49
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    12

    主题

    112

    帖子

    111万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1110271
    发表于 2021-12-2 19:18:21 | 显示全部楼层
    6666

    评分

    参与人数 2金钱 +18 收起 理由
    月缺花残 + 9 技术的天花板
    转弯 + 9 再次感谢猫总,非常热心技术顶呱呱!!.

    查看全部评分

    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    5

    帖子

    17

    积分

    新手上路

    Rank: 1

    积分
    17
    发表于 2022-9-1 09:46:57 | 显示全部楼层
    66666666666666666666666666666
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    4 天前
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    0

    主题

    27

    帖子

    177

    积分

    注册会员

    Rank: 2

    积分
    177
    发表于 2024-9-16 16:12:36 | 显示全部楼层
    学习学习,刚入这个引擎,有没有编辑器啥的。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表