NickNameCtr.lua 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. local NickNameCtr = {}
  2. ProtoMsgId = require("ProtoMsgId")
  3. --判断需要开启起名还是改名界面,true -- 起名;false -- 改名
  4. function NickNameCtr:NeedOpenCreate()
  5. local _nickName = ManagerContainer.DataMgr.UserData:GetOriUserNickname();
  6. if _nickName == "" or _nickName == nil or _nickName == "NickName" then
  7. return true;
  8. else
  9. return false;
  10. end
  11. end
  12. --打开对应的昵称界面
  13. function NickNameCtr:OpenNickNamePage(_isCreate)
  14. if _isCreate then
  15. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UICreateName);
  16. else
  17. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIChangeName);
  18. end
  19. end
  20. --获取改名时候的错误信息,_ignoreCard是否忽略改名卡数量的判断
  21. function NickNameCtr:GetChangeNameError(_newName, _ignoreCard)
  22. --o:可以改名,1:改名卡不够,2:名字重复,无法修改,3:你要改成“新用户”,这也不行,4:空的,没输入,5:有非法字符, 6名字长处超出限制
  23. if not _ignoreCard then
  24. local _enoughCard = self:JudgeCard();
  25. if _enoughCard then
  26. return 1;
  27. end
  28. end
  29. if not self:JudgeNameLength(_newName) then
  30. if not _newName or _newName == "" then
  31. return 4;
  32. else
  33. return 6;
  34. end
  35. end
  36. if ManagerContainer.DataMgr.UserData:GetUserNickname() == _newName then return 2; end
  37. if _newName == I18N.T("NewGamePlayer") then return 3; end
  38. if not StringUtil.JudgeString_CN_EN_NUM(_newName) then return 5; end
  39. return 0
  40. end
  41. --判断改名卡是否充足
  42. function NickNameCtr:JudgeCard()
  43. local itemCfgId, itemNum = self:GetChangeNameConsume();
  44. return ManagerContainer.DataMgr.BagData:GetItemCountByCfgId(itemCfgId) < itemNum;
  45. end
  46. --发送改名消息
  47. function NickNameCtr:SendChangeName(_newName)
  48. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_RENAME_REQ, { name = _newName })
  49. end
  50. --判断名字长度
  51. function NickNameCtr:JudgeNameLength(_name)
  52. if not _name or _name == "" then return false; end
  53. local _nameLength = StringUtil.GetStringByteLength(_name);
  54. local _nameLengthLimit = GlobalConfig.Instance:GetConfigIntValue(138);
  55. return _nameLength <= _nameLengthLimit;
  56. end
  57. function NickNameCtr:GetChangeNameConsume()
  58. local itemCfgId = 0
  59. local itemNum = 0
  60. local consumeStr = GlobalConfig.Instance:GetConfigStrValue(107)
  61. if consumeStr then
  62. local comuseArr = string.split(consumeStr, ':')
  63. if #comuseArr >= 2 then
  64. itemCfgId = tonumber(comuseArr[1])
  65. itemNum = tonumber(comuseArr[2])
  66. end
  67. end
  68. return itemCfgId, itemNum
  69. end
  70. return NickNameCtr