Просмотр исходного кода

修复改名泰文计算字节问题

mafei 1 год назад
Родитель
Сommit
d9c90d03b9
1 измененных файлов с 15 добавлено и 1 удалено
  1. 15 1
      script/module/role/CreateRole.lua

+ 15 - 1
script/module/role/CreateRole.lua

@@ -46,12 +46,26 @@ function getFakeIdentityMax()
 	return firstStr .. string.format("%05d", id)	
 	return firstStr .. string.format("%05d", id)	
 end
 end
 
 
+local function calcThaLangCnt(name)
+	local len = 0
+    local byte = string.byte
+    for i = 1, #name do
+        local c = byte(name, i)
+        len = len + 1
+        -- 如果是扩展字符集(超出ASCII范围),则+1
+        if c > 0x7F then
+            len = len + 1
+        end
+    end
+    return len
+end
+
 local function checkRoleName(roleName, default)
 local function checkRoleName(roleName, default)
 	--如果roleName是nil   游戏名不能为空
 	--如果roleName是nil   游戏名不能为空
 	if not roleName then 
 	if not roleName then 
 		return false, Lang.CREATE_ROLE_FAIL_NAME_NIL
 		return false, Lang.CREATE_ROLE_FAIL_NAME_NIL
 	end
 	end
-	local nameLen = string.len(roleName)
+	local nameLen = calcThaLangCnt(roleName)
 	--如果游戏名长度小于游戏名最小长度  角色名过短
 	--如果游戏名长度小于游戏名最小长度  角色名过短
 	if nameLen < ROLE_NAME_LEN_MIN then
 	if nameLen < ROLE_NAME_LEN_MIN then
 		return false, Lang.CREATE_ROLE_FAIL_NAME_LEN1
 		return false, Lang.CREATE_ROLE_FAIL_NAME_LEN1