找回密码
 register

QQ登录

只需一步,快速开始

天龙服务端专用strbyte函数

[复制链接]

天龙服务端专用strbyte函数

[复制链接]
Waylee

主题

0

回帖

7459

积分

仙帝

积分
7459
Waylee 2023-8-19 15:41 | 显示全部楼层 |阅读模式

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×
文章编辑人员:雪舞
内容测试时间:2023-8-19 15:39:19
local firstbyte = strbyte(card)
        --'k' 体育卡
        if 107 == firstbyte then
                if GetMissionFlag( sceneId, selfId, MF_ActiveSportsCard ) == 1 then
                        x888899_NotifyFailBox( sceneId, selfId, targetId, "    你已经领取过活动奖励,不能重复领取。" )
                        return
                end
        --'t' 新手卡
        elseif 116 == firstbyte or 115 == firstbyte then
                if GetMissionFlag( sceneId, selfId, MF_ActiveNewUserCard ) == 1 then
                        x888899_NotifyFailBox( sceneId, selfId, targetId, "    你已经激活过财富卡,无法再次激活领取条件。" )
                        return
                end
        elseif 99 == firstbyte then
                if GetMissionFlag( sceneId, selfId, MF_ActiveNewUserCard666 ) == 1 then
                        x888899_NotifyFailBox( sceneId, selfId, targetId, "    你已经启动过超级大力卡,无法再次启动领取条件。" )
                        return
                end
        end






解释:

在Lua中,string.byte(通常简写为strbyte)是一个函数,用于获取字符串中字符的整数值。对于ASCII字符,这将是其ASCII值。对于非ASCII字符,这会更复杂,尤其是在UTF-8编码的情况下。

使用string.byte(s, i),你可以获取字符串s中第i个字符的byte值。如果不提供i,默认为1,即第一个字符。

例如:

local s = "hello"
print(string.byte(s, 1))  -- 打印 "h" 的ASCII值: 104
print(string.byte(s, 2))  -- 打印 "e" 的ASCII值: 101


但是,对于多字节字符(如UTF-8编码的中文字符),你会得到该字符的第一个byte值。例如:

local s = "擂"
print(string.byte(s, 1))  -- 打印 "擂" 的第一个UTF-8 byte


这就是为什么你看到的“擂”字符的byte值为194或192的原因。这些只是UTF-8编码中该字符的第一个byte。如果你想看到整个字符的所有byte值,你需要考虑该字符在UTF-8中的所有byte。

雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |网站地图|天天打卡

GMT+8, 2024-11-22 06:47 , Processed in 0.053304 second(s), 14 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

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