From 04e956d4130eef17d724a8977388e69a522c40af Mon Sep 17 00:00:00 2001 From: WONIU Date: Fri, 20 Dec 2024 21:47:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=A7=92=E8=89=B2=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sqr/User/UI/Window/2_Create_Character.nut | 71 +++++++++++++++++++---- 1 file changed, 60 insertions(+), 11 deletions(-) diff --git a/sqr/User/UI/Window/2_Create_Character.nut b/sqr/User/UI/Window/2_Create_Character.nut index fd363d4..3c021af 100644 --- a/sqr/User/UI/Window/2_Create_Character.nut +++ b/sqr/User/UI/Window/2_Create_Character.nut @@ -233,7 +233,7 @@ class _CreateCharacter extends Yosin_Window { changJobAniClock = null; changNextJobAniClock = null; - jobIndex = null; + jobIndex = 0; constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); @@ -243,6 +243,18 @@ class _CreateCharacter extends Yosin_Window { //注册控件 RegisterWidget(); + + // 创建角色回包 + MySocket.RegisterHandler(4, function(Jso) { + if (Jso.type == 0){ + // 创建成功. + NoticeBox = _Yosin_MessageBox("创建成功."); + }else{ + // 创建失败. + NoticeBox = _Yosin_MessageBox("创建失败."); + } + }.bindenv(this)); + } function PlayBackgroundMusic() { @@ -751,8 +763,18 @@ class _create_Character_enterName extends Yosin_Window { //是否为独立窗口 IsIndependent = false; + affirmButton = null; + OnClick = null; + //公告框 + NoticeBox = null; + + // 检查过的名称 + checkName = null; + // 当前名称 + name = null; + constructor() { base.constructor("输入角色名称", 0, 0, 1066, 600, 0); @@ -770,14 +792,17 @@ class _create_Character_enterName extends Yosin_Window { Addchild(title); // 输入框 - nameInputBox = Yosin_InputBox(433, 270, 150); + local nameInputBox = Yosin_InputBox(433, 270, 150); AddUIChild(nameInputBox); + nameInputBox.SetUpdateFunc(function(inputBox, Dt) { + inputBox.Parent.name = inputBox.str; + }) // 重复检查按钮 local checkButton = Yosin_BaseButton(593, 267, 46, 24 "sprite/interface/lenheartwindowcommon.img", 400); checkButton.State = 3; checkButton.SetUpdateFunc(function(button, Dt) { - if (button.Parent.nameInputBox.str.len() > 0) { + if (button.Parent.name.len() > 0) { button.State = 0; }else{ button.State = 3; @@ -785,7 +810,11 @@ class _create_Character_enterName extends Yosin_Window { }) //点击事件回调 checkButton.OnClick = function(Button) { - if (OnClick != null) OnClick(Button.Parent.nameInputBox.str); + + MySocket.Send(6, { + name = nameInputBox.str, + }) + }.bindenv(this); //按钮文本 local checkTextActor = FontAssetManager.GenerateNormal("重复", true, { @@ -805,19 +834,17 @@ class _create_Character_enterName extends Yosin_Window { Addchild(tipTextActor); - // 确认检查按钮 - local affirmButton = Yosin_BaseButton(473, 338, 46, 24 "sprite/interface/lenheartwindowcommon.img", 400); + // 确认按钮 + affirmButton = Yosin_BaseButton(473, 338, 46, 24 "sprite/interface/lenheartwindowcommon.img", 400); affirmButton.State = 3; affirmButton.SetUpdateFunc(function(button, Dt) { - if (button.Parent.nameInputBox.str.len() > 0) { - button.State = 0; - }else{ + if (button.Parent.name != button.Parent.checkName && button.State != 3) { button.State = 3; } }) //点击事件回调 affirmButton.OnClick = function(Button) { - + if (OnClick != null) OnClick(Button.Parent.checkName); }.bindenv(this); //按钮文本 local affirmTextActor = FontAssetManager.GenerateNormal("确认", true, { @@ -828,7 +855,7 @@ class _create_Character_enterName extends Yosin_Window { AddUIChild(affirmButton); - // 取消检查按钮 + // 取消按钮 local cancelButton = Yosin_BaseButton(533, 338, 46, 24 "sprite/interface/lenheartwindowcommon.img", 400); //点击事件回调 cancelButton.OnClick = function(button) { @@ -843,6 +870,23 @@ class _create_Character_enterName extends Yosin_Window { cancelButton.Addchild(cancelTextActor); AddUIChild(cancelButton); + + + + // 昵称重复检查回包 + MySocket.RegisterHandler(3, function(Jso) { + if (NoticeBox) NoticeBox.CloseWindow(); + if (Jso.type == 0){ + // 可以使用的ID 确认按钮可以使用. + NoticeBox = _Yosin_MessageBox("可以使用的ID."); + checkName = nameInputBox.str; + affirmButton.State = 0; + }else{ + // 名称重复. + NoticeBox = _Yosin_MessageBox("名称重复."); + } + }.bindenv(this)); + } //逻辑入口 @@ -850,6 +894,11 @@ class _create_Character_enterName extends Yosin_Window { SyncPos(X, Y); base.Proc(Dt); + + // if (nameInputBox.str != checkName && affirmButton.State != 3) { + // affirmButton.State = 3; + // } + } }