Compare commits
	
		
			No commits in common. "35421c3ba6dea1defad15ad9980f74246ddc6eb7" and "b52f6126d240ab48e37b3567cbf76fb8c9b02845" have entirely different histories.
		
	
	
		
			35421c3ba6
			...
			b52f6126d2
		
	
		
							
								
								
									
										
											BIN
										
									
								
								Yosin_Engine.exe
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								Yosin_Engine.exe
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							|  | @ -272,14 +272,4 @@ class CL_BaseObject { | ||||||
|     function SetRotate(Duration, Rotation) { |     function SetRotate(Duration, Rotation) { | ||||||
|         BaseObject_SetRotate(this.C_Object, Duration, Rotation); |         BaseObject_SetRotate(this.C_Object, Duration, Rotation); | ||||||
|     } |     } | ||||||
| 
 |  | ||||||
|     //获取右侧的坐标 |  | ||||||
|     function right() { |  | ||||||
|         return X + GetSize().w; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     //获取底部的坐标 |  | ||||||
|     function bottom() { |  | ||||||
|         return Y + GetSize().h; |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|  | @ -169,20 +169,6 @@ class Yosin_BaseWindow extends Layer { | ||||||
|         // gChild.Parent = this; |         // gChild.Parent = this; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /* |  | ||||||
|      * @函数作用: 获取窗口右侧的坐标 |  | ||||||
|      */ |  | ||||||
|     function right() { |  | ||||||
|         return X + Width; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     /* |  | ||||||
|      * @函数作用: 获取窗口底部的坐标 |  | ||||||
|      */ |  | ||||||
|     function bottom() { |  | ||||||
|         return Y + Height; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     //开启Debug模式 |     //开启Debug模式 | ||||||
|     function OpenDeBug() { |     function OpenDeBug() { | ||||||
|         DeBugSprite = CL_SpriteObject("sprite/interface/lenheartwindowcommon.img", 257); |         DeBugSprite = CL_SpriteObject("sprite/interface/lenheartwindowcommon.img", 257); | ||||||
|  |  | ||||||
|  | @ -69,7 +69,6 @@ l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\ActiveObject\CharacterObjectCla | ||||||
| l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\ActiveObject\CharacterObjectClass_AI.nut | l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\ActiveObject\CharacterObjectClass_AI.nut | ||||||
| 
 | 
 | ||||||
| l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Socket\Socket.nut | l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Socket\Socket.nut | ||||||
| l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Socket\Packet.nut |  | ||||||
| 
 | 
 | ||||||
| l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Stage\LodingStage.nut | l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Stage\LodingStage.nut | ||||||
| l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Stage\TestStage.nut | l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Stage\TestStage.nut | ||||||
|  | @ -84,8 +83,6 @@ l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\0_Login.nut | ||||||
| l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\1_Select_Character.nut | l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\1_Select_Character.nut | ||||||
| l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\2_create_Character.nut | l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\2_create_Character.nut | ||||||
| l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\3_Top_tool.nut | l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\3_Top_tool.nut | ||||||
| l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\4_PersonalInfo.nut |  | ||||||
| l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\5_Inventory.nut |  | ||||||
| l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\233_HUD_Message.nut | l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\233_HUD_Message.nut | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -32,8 +32,6 @@ class GameObject.Character extends GameObject.ActiveObject { | ||||||
| 
 | 
 | ||||||
|     //职业编号 |     //职业编号 | ||||||
|     Job = 0; |     Job = 0; | ||||||
|     //cid |  | ||||||
|     Cid = -1; |  | ||||||
| 
 | 
 | ||||||
|     //控制器 |     //控制器 | ||||||
|     Controller = null; |     Controller = null; | ||||||
|  |  | ||||||
|  | @ -281,18 +281,6 @@ class Map extends Actor { | ||||||
|         m_data.npc = Arr; |         m_data.npc = Arr; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     //添加角色的回包 |  | ||||||
|     function AddCharacterCallBack(Binary) { |  | ||||||
|         local Pack = Packet(Binary); |  | ||||||
| 
 |  | ||||||
|         /* |  | ||||||
|         local Charc = GameObject.CreateCharacter(Info.job, Info.equ); |  | ||||||
|                     local NPCobj = GameObject.NPC(info.id); |  | ||||||
|                     NPCobj.SetDirection(info.direction); |  | ||||||
|                     NPCobj.SetPosition(info.xpos, info.ypos, info.zpos); |  | ||||||
| 
 |  | ||||||
|                     */ |  | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|     //添加对象 |     //添加对象 | ||||||
|     function AddObject(obj, IsPlayer = false) { |     function AddObject(obj, IsPlayer = false) { | ||||||
|  | @ -319,19 +307,42 @@ class Map extends Actor { | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     //移动城镇的回包 |  | ||||||
|     function MoveTownCallBack(Jso) { |  | ||||||
|         //我自己的移动城镇添加角色对象 |  | ||||||
|         local MapObj = GlobalTownManager.TownList[Jso.town].map[Jso.region]; |  | ||||||
|         MapObj.AddObjectByChangeTown(ClientCharacter, Jso.pos); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     //移动城镇的添加对象 |     //移动城镇的添加对象 | ||||||
|     function AddObjectByChangeTown(obj, pos) { |     function AddObjectByChangeTown(obj, FromMapobj) { | ||||||
|         //角色对象 |         //角色对象 | ||||||
|         if (typeof obj == "character") { |         if (typeof obj == "character") { | ||||||
|             //角色原城镇 |             //如果已经处于某个地图中 | ||||||
|             local FromMapobj = obj.MySelfMap; |             if (obj.Parent) { | ||||||
|  |                 obj.Parent.Removechild(obj); | ||||||
|  |             } | ||||||
|  |             LayerObject.normal.Addchild(obj); | ||||||
|  |             //将地图信息写入角色中 | ||||||
|  |             obj.MySelfMap = this.weakref(); | ||||||
|  |             //绑定摄像机 | ||||||
|  |             m_camera.SetFromParent(obj); | ||||||
|  |             //获取应该设置的坐标 | ||||||
|  |             foreach(index, info in m_data.town_movable_area_info) { | ||||||
|  |                 if (info.town == FromMapobj.m_town && info.area == FromMapobj.m_mapId) { | ||||||
|  |                     local pos = { | ||||||
|  |                         x = m_data.town_movable_area[index * 4] + m_data.town_movable_area[index * 4 + 2] / 2, | ||||||
|  |                         y = m_data.town_movable_area[index * 4 + 1] + m_data.town_movable_area[index * 4 + 3] / 2, | ||||||
|  |                         z = 0 | ||||||
|  |                     } | ||||||
|  |                     obj.SetPosition(pos); | ||||||
|  |                     break; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             //获取当前场景 | ||||||
|  |             local Stage = sq_GetCurrentStage(); | ||||||
|  |             if (GlobalTownManager.CurrentTown) { | ||||||
|  |                 Stage.Removechild(GlobalTownManager.CurrentTown); | ||||||
|  |             } | ||||||
|  |             Stage.Addchild(this); | ||||||
|  |             //添加全局 | ||||||
|  |             GlobalTownManager.CurrentTown = this.weakref(); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|             //背景音乐处理 |             //背景音乐处理 | ||||||
|             BackGroundMusic = {}; |             BackGroundMusic = {}; | ||||||
|             if (FromMapobj.BackGroundMusic != null) { |             if (FromMapobj.BackGroundMusic != null) { | ||||||
|  | @ -355,28 +366,6 @@ class Map extends Actor { | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|             //绑定摄像机 |  | ||||||
|             m_camera.SetFromParent(obj); |  | ||||||
|             //获取当前场景 |  | ||||||
|             local Stage = sq_GetCurrentStage(); |  | ||||||
|             if (GlobalTownManager.CurrentTown) { |  | ||||||
|                 Stage.Removechild(GlobalTownManager.CurrentTown); |  | ||||||
|             } |  | ||||||
|             Stage.Addchild(this); |  | ||||||
|             //添加全局 |  | ||||||
|             GlobalTownManager.CurrentTown = this.weakref(); |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|             //如果已经处于某个地图中 则先移除 |  | ||||||
|             if (obj.Parent) { |  | ||||||
|                 obj.Parent.Removechild(obj); |  | ||||||
|             } |  | ||||||
|             //将角色添加到地图的normal图层 |  | ||||||
|             LayerObject.normal.Addchild(obj); |  | ||||||
|             //设置坐标 |  | ||||||
|             obj.SetPosition(pos); |  | ||||||
|             //将地图信息写入角色中 |  | ||||||
|             obj.MySelfMap = this.weakref(); |  | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -413,10 +402,6 @@ class Map extends Actor { | ||||||
|         m_camera.BackgroundOffset = m_data.background_pos; |         m_camera.BackgroundOffset = m_data.background_pos; | ||||||
| 
 | 
 | ||||||
|         // OpenMovableAreaBorder(); |         // OpenMovableAreaBorder(); | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|         MySocket.RegisterHandler(PACKET_ID.CHANGE_TOWN_AREA_CALLBACK, MoveTownCallBack.bindenv(this)); |  | ||||||
|         MySocket.RegisterBinaryHandler(PACKET_ID.TOWN_ADD_CHARACTER_CALLBACK, AddCharacterCallBack.bindenv(this)); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     //DEBUG方法 |     //DEBUG方法 | ||||||
|  | @ -492,33 +477,13 @@ class Map extends Actor { | ||||||
|         //走进了传送阵 |         //走进了传送阵 | ||||||
|         if (Index != -1) { |         if (Index != -1) { | ||||||
|             if (!obj.TransmitFlag) { |             if (!obj.TransmitFlag) { | ||||||
|                 //得到传送信息  目标城镇 |  | ||||||
|                 local info = m_data.town_movable_area_info[Index]; |                 local info = m_data.town_movable_area_info[Index]; | ||||||
|                 //如果是未加载的城镇 则先构造城镇 |                 //这里是未加载的城镇 | ||||||
|                 if (!(GlobalTownManager.TownList.rawin(info.town))) { |                 if (!(GlobalTownManager.TownList.rawin(info.town))) { | ||||||
|                     Town(info.town); |                     Town(info.town); | ||||||
|                 } |                 } | ||||||
|                 //计算位移过去以后应该设置的位置 |  | ||||||
|                 local MapObj = GlobalTownManager.TownList[info.town].map[info.area]; |                 local MapObj = GlobalTownManager.TownList[info.town].map[info.area]; | ||||||
|                 local movepos = { |                 MapObj.AddObjectByChangeTown(obj, this); | ||||||
|                     z = 0 |  | ||||||
|                 }; |  | ||||||
|                 //遍历目标城镇的该区域 查找适当位移位置 |  | ||||||
|                 foreach(index, mapinfo in MapObj.m_data.town_movable_area_info) { |  | ||||||
|                     if (mapinfo.town == m_town && mapinfo.area == m_mapId) { |  | ||||||
|                         movepos.x <- MapObj.m_data.town_movable_area[index * 4] + MapObj.m_data.town_movable_area[index * 4 + 2] / 2; |  | ||||||
|                         movepos.y <- MapObj.m_data.town_movable_area[index * 4 + 1] + MapObj.m_data.town_movable_area[index * 4 + 3] / 2; |  | ||||||
|                         break; |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
| 
 |  | ||||||
|                 //发包移动城镇 |  | ||||||
|                 MySocket.Send(PACKET_ID.CHANGE_TOWN_AREA, { |  | ||||||
|                     town = info.town, |  | ||||||
|                     region = info.area, |  | ||||||
|                     pos = movepos |  | ||||||
|                 }) |  | ||||||
| 
 |  | ||||||
|                 obj.TransmitFlag = true; |                 obj.TransmitFlag = true; | ||||||
|             } |             } | ||||||
|         } else { |         } else { | ||||||
|  |  | ||||||
|  | @ -1,92 +0,0 @@ | ||||||
| /* |  | ||||||
| 文件名:Packet.nut |  | ||||||
| 路径:User/Socket/Packet.nut |  | ||||||
| 创建日期:2025-01-04	22:20 |  | ||||||
| 文件用途:数据封包类 |  | ||||||
| */ |  | ||||||
| class Packet { |  | ||||||
|     Data = null; |  | ||||||
| 
 |  | ||||||
|     constructor(...) { |  | ||||||
|         //不传参数时,构造空包 |  | ||||||
|         if (vargv.len() == 0) { |  | ||||||
|             this.Data = blob(); |  | ||||||
|         } |  | ||||||
|         //传入数据流以流的形式构造包 |  | ||||||
|         else { |  | ||||||
|             this.Data = vargv[0]; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     //字节 |  | ||||||
|     function Put_Byte(Value) { |  | ||||||
|         this.Data.writen('c', Value); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     //短整型 |  | ||||||
|     function Put_Short(Value) { |  | ||||||
|         this.Data.writen('s', Value); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     //整型 |  | ||||||
|     function Put_Int(Value) { |  | ||||||
|         this.Data.writen('i', Value); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     //浮点型 |  | ||||||
|     function Put_Float(Value) { |  | ||||||
|         this.Data.writen('f', Value); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     //字符串 |  | ||||||
|     function Put_String(String) { |  | ||||||
|         foreach(char in String) { |  | ||||||
|             Put_Byte(char); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     //字节数组 |  | ||||||
|     function Put_Binary(BinaryArray) { |  | ||||||
|         //流 |  | ||||||
|         if (typeof BinaryArray == "blob") { |  | ||||||
|             this.Data.writeblob(BinaryArray); |  | ||||||
|         } |  | ||||||
|         //数组 |  | ||||||
|         else if (typeof BinaryArray == "array") { |  | ||||||
|             foreach(byte in BinaryArray) { |  | ||||||
|                 Put_Byte(byte); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|     //获取字节 |  | ||||||
|     function Get_Byte() { |  | ||||||
|         return this.Data.readn('c'); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     //获取短整型 |  | ||||||
|     function Get_Short() { |  | ||||||
|         return this.Data.readn('s'); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     //获取整型 |  | ||||||
|     function Get_Int() { |  | ||||||
|         return this.Data.readn('i'); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     //获取浮点型 |  | ||||||
|     function Get_Float() { |  | ||||||
|         return this.Data.readn('f'); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     //获取字符串 |  | ||||||
|     function Get_String(len) { |  | ||||||
|         return stream_myreadstring(len); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     //获取字节数组 |  | ||||||
|     function Get_Binary(len) { |  | ||||||
|         return this.Data.readblob(len); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -41,7 +41,7 @@ function LoginStage() { | ||||||
|     local T = CL_StageObject(); |     local T = CL_StageObject(); | ||||||
|     T.SetName("加载界面舞台"); |     T.SetName("加载界面舞台"); | ||||||
| 
 | 
 | ||||||
|     local AniTime = 1500; |     local AniTime = 800; | ||||||
| 
 | 
 | ||||||
|     //大背景 |     //大背景 | ||||||
|     local BackGround = CL_SpriteObject("sprite/loding.img", 0); |     local BackGround = CL_SpriteObject("sprite/loding.img", 0); | ||||||
|  | @ -51,7 +51,7 @@ function LoginStage() { | ||||||
|     local Kiwano = CL_SpriteObject("sprite/loding.img", 1); |     local Kiwano = CL_SpriteObject("sprite/loding.img", 1); | ||||||
|     Kiwano.SetAnchor(0.5, 0.5); |     Kiwano.SetAnchor(0.5, 0.5); | ||||||
|     Kiwano.SetScale(0.35, 0.35); |     Kiwano.SetScale(0.35, 0.35); | ||||||
|     Kiwano.SetPosition(1066 / 2, 300); |     Kiwano.SetPosition(1066 / 2, 800); | ||||||
|     Kiwano.SetUpdateFunc(function(sp, dt) { |     Kiwano.SetUpdateFunc(function(sp, dt) { | ||||||
|         if (!("time" in sp.Var)) sp.Var.time <- 0; |         if (!("time" in sp.Var)) sp.Var.time <- 0; | ||||||
|         sp.Var.time += dt; |         sp.Var.time += dt; | ||||||
|  |  | ||||||
|  | @ -12,7 +12,7 @@ function TestStage() { | ||||||
| 
 | 
 | ||||||
|     local Window = Sq_CreateWindow(_Login_Window, "登录界面窗口", 0, 0, 1066, 600, 0); |     local Window = Sq_CreateWindow(_Login_Window, "登录界面窗口", 0, 0, 1066, 600, 0); | ||||||
| 
 | 
 | ||||||
|     // local Window = Sq_CreateWindow(_Inventory, "背包窗口", 150, 12, 257, 555, 20); | 
 | ||||||
|     // //大背景 |     // //大背景 | ||||||
|     // local BackGround = CL_SpriteObject("sprite/map/npc/2019_halloween_blossom_normal.img", 0); |     // local BackGround = CL_SpriteObject("sprite/map/npc/2019_halloween_blossom_normal.img", 0); | ||||||
|     // BackGround.SetPosition(300, 150); |     // BackGround.SetPosition(300, 150); | ||||||
|  | @ -54,11 +54,15 @@ function TestStage() { | ||||||
|     //         name = "测试角色", |     //         name = "测试角色", | ||||||
|     //         job = 0, |     //         job = 0, | ||||||
|     //         equip = [101020037, 601500061, 601550061, 601560059, 601570054, 601520053, 601500061, 601510060, 601530052, 601540061, 601580024, 609590003] |     //         equip = [101020037, 601500061, 601550061, 601560059, 601570054, 601520053, 601500061, 601510060, 601530052, 601540061, 601580024, 609590003] | ||||||
|  |     //     }, { | ||||||
|  |     //         lv = 90, | ||||||
|  |     //         name = "测试角色2号", | ||||||
|  |     //         job = 0, | ||||||
|  |     //         equip = [601020007, 601500060, 601550060, 601560058, 601570053, 601520052, 601500060, 601510059, 601530051, 601540060, 601580023, 609590003] | ||||||
|     //     }] |     //     }] | ||||||
|     // }; |     // }; | ||||||
|     // Window.Init(T); |     // Window.Init(T); | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|     // local Actorobj = Actor(); |     // local Actorobj = Actor(); | ||||||
|     // Actorobj.ShowBorder(true); |     // Actorobj.ShowBorder(true); | ||||||
|     // Actorobj.SetSize(1500, 100); |     // Actorobj.SetSize(1500, 100); | ||||||
|  |  | ||||||
|  | @ -44,7 +44,7 @@ class Yosin_InputBox extends Yosin_CommonUi { | ||||||
|         Text_Obj = TextActor(0, { |         Text_Obj = TextActor(0, { | ||||||
|             color = 0xFFFFFFFF |             color = 0xFFFFFFFF | ||||||
|         }); |         }); | ||||||
|         Text_Obj.SetPosition(4, 1); |         Text_Obj.SetPosition(4, 3); | ||||||
|         Addchild(Text_Obj); |         Addchild(Text_Obj); | ||||||
| 
 | 
 | ||||||
|         _Imm_Input_Func_.rawset(C_Object, Imm_Input.bindenv(this)); |         _Imm_Input_Func_.rawset(C_Object, Imm_Input.bindenv(this)); | ||||||
|  |  | ||||||
|  | @ -62,6 +62,7 @@ class _Login_Window extends Yosin_Window { | ||||||
|                     local value = Blob.readn('i'); |                     local value = Blob.readn('i'); | ||||||
|                     info.equip.append(value); |                     info.equip.append(value); | ||||||
|                 } |                 } | ||||||
|  |                 // print(info); | ||||||
|             } |             } | ||||||
|             //关闭登录界面 |             //关闭登录界面 | ||||||
|             NoticeBox.DestroyWindow(); |             NoticeBox.DestroyWindow(); | ||||||
|  |  | ||||||
|  | @ -271,10 +271,6 @@ class _Select_Character_Chr extends Yosin_CommonUi { | ||||||
|             M_Ypos = MousePos_Y; |             M_Ypos = MousePos_Y; | ||||||
|             B_X = X; //原始窗口位置 |             B_X = X; //原始窗口位置 | ||||||
|             B_Y = Y; |             B_Y = Y; | ||||||
|             //遍历父对象中的所有按钮 修改他们的层级 |  | ||||||
|             foreach(Button in Parent.UpCharacterList) { |  | ||||||
|                 Button.SetZOrder(99999); |  | ||||||
|             } |  | ||||||
|             SetZOrder(100000); |             SetZOrder(100000); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | @ -351,19 +347,7 @@ class _Select_Character_Window extends Yosin_Window { | ||||||
| 
 | 
 | ||||||
|     constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { |     constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { | ||||||
|         base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); |         base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); | ||||||
|         //定义五个空数组 |         UpCharacterList = []; | ||||||
|         UpCharacterList = array(5, null); |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|         // 选择角色进入游戏回包 |  | ||||||
|         MySocket.RegisterHandler(PACKET_ID.SELECT_CHARACTER_ENTER_GAME_CALLBACK, function(Jso) { |  | ||||||
|             local Info = Jso.charac; |  | ||||||
|             local TownObj = Town(Info.town); |  | ||||||
|             local Charc = GameObject.CreateCharacter(Info.job, Info.equ); |  | ||||||
|             TownObj.AddObject(Charc, true); |  | ||||||
|             ClientCharacter = Charc; |  | ||||||
|         }.bindenv(this)); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     function Init(gInfo) { |     function Init(gInfo) { | ||||||
|  | @ -387,39 +371,6 @@ class _Select_Character_Window extends Yosin_Window { | ||||||
|         if (!BackGroundMusic.IsPlaying()) BackGroundMusic.Play(); |         if (!BackGroundMusic.IsPlaying()) BackGroundMusic.Play(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     function AddUpCharacter(CharacInfo, Index = 5) { |  | ||||||
|         //先定义为最大值 如果没有查到空位则不会执行逻辑 |  | ||||||
|         if (Index == 5) { |  | ||||||
|             //遍历获取第一个空位 Info为空也为空 |  | ||||||
|             foreach(pos, value in UpCharacterList) { |  | ||||||
|                 if (value == null) { |  | ||||||
|                     Index = pos; |  | ||||||
|                     break; |  | ||||||
|                 } |  | ||||||
|                 //如果是信息为空的 要先删除原来的再添加 |  | ||||||
|                 if (value.Info == null) { |  | ||||||
|                     Index = pos; |  | ||||||
|                     RemoveUIChild(UpCharacterList[pos]); |  | ||||||
|                     break; |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             if (Index >= 5) return; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         local Buf = _Select_Character_Chr(184 + (Index * 142), ((Index % 2) ? 13 : 0) + 93, 132, 208); |  | ||||||
|         //如果有信息则构造角色 |  | ||||||
|         if (CharacInfo) { |  | ||||||
|             //通过信息构造角色 |  | ||||||
|             Buf.Init(CharacInfo, Index); |  | ||||||
|             AddUIChild(Buf); |  | ||||||
|             UpCharacterList[Index] = Buf; |  | ||||||
|         } else { |  | ||||||
|             Buf.Init(null, Index); |  | ||||||
|             AddUIChild(Buf); |  | ||||||
|             UpCharacterList[Index] = Buf; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     function RegisterWindow() { |     function RegisterWindow() { | ||||||
|         SettingBackgroundWindow = _Select_Character_SettingBackground_Window("选择角色_设置背景图片窗口", 850, 28, 212, 129, 0); |         SettingBackgroundWindow = _Select_Character_SettingBackground_Window("选择角色_设置背景图片窗口", 850, 28, 212, 129, 0); | ||||||
|         AddUIChild(SettingBackgroundWindow); |         AddUIChild(SettingBackgroundWindow); | ||||||
|  | @ -435,8 +386,11 @@ class _Select_Character_Window extends Yosin_Window { | ||||||
|             CharBg.SetZOrder(-10); |             CharBg.SetZOrder(-10); | ||||||
|             Addchild(CharBg); |             Addchild(CharBg); | ||||||
| 
 | 
 | ||||||
|             //如果没有足够的信息则传递null |             local Buf = _Select_Character_Chr(184 + (i * 142), ((i % 2) ? 13 : 0) + 93, 132, 208); | ||||||
|             AddUpCharacter((Info.charac.len() > i) ? Info.charac[i] : null, i); |             if (i< Info.charac.len()) Buf.Init(Info.charac[i], i); | ||||||
|  |             else Buf.Init(null, i); | ||||||
|  |             UpCharacterList.push(Buf); | ||||||
|  |             AddUIChild(Buf); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -237,9 +237,6 @@ class _CreateCharacter extends Yosin_Window { | ||||||
| 
 | 
 | ||||||
|     NoticeBox = null; |     NoticeBox = null; | ||||||
| 
 | 
 | ||||||
|     //临时创建角色 |  | ||||||
|     TempCharacter = null; |  | ||||||
| 
 |  | ||||||
|     constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { |     constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { | ||||||
|         base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); |         base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); | ||||||
| 
 | 
 | ||||||
|  | @ -250,7 +247,7 @@ class _CreateCharacter extends Yosin_Window { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|         // 创建角色回包 |         // 创建角色回包 | ||||||
|         MySocket.RegisterHandler(PACKET_ID.CREATE_CHARACTER_CALLBACK, function(Jso) { |         MySocket.RegisterHandler(4, function(Jso) { | ||||||
|             if (NoticeBox) NoticeBox.CloseWindow(); |             if (NoticeBox) NoticeBox.CloseWindow(); | ||||||
|             if (Jso.type == 0) { |             if (Jso.type == 0) { | ||||||
|                 // 创建成功. |                 // 创建成功. | ||||||
|  | @ -258,9 +255,6 @@ class _CreateCharacter extends Yosin_Window { | ||||||
|                 NoticeBox.DestroyWindow(); |                 NoticeBox.DestroyWindow(); | ||||||
|                 DestroyWindow(); |                 DestroyWindow(); | ||||||
|                 MySocket.Send(PACKET_ID.QUERY_CHARACTER_LIST, null); |                 MySocket.Send(PACKET_ID.QUERY_CHARACTER_LIST, null); | ||||||
| 
 |  | ||||||
|                 local Window = Sq_CreateWindow(_Select_Character_Window, "选择角色界面窗口", 0, 0, 1066, 600, 0); |  | ||||||
|                 Window.AddUpCharacter(TempCharacter); |  | ||||||
|             } else { |             } else { | ||||||
|                 // 创建失败. |                 // 创建失败. | ||||||
|                 NoticeBox = _Yosin_MessageBox("创建失败."); |                 NoticeBox = _Yosin_MessageBox("创建失败."); | ||||||
|  | @ -269,6 +263,9 @@ class _CreateCharacter extends Yosin_Window { | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     function PlayBackgroundMusic() { | ||||||
|  | 
 | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     function RegisterDraw() { |     function RegisterDraw() { | ||||||
|         //大背景 |         //大背景 | ||||||
|  | @ -365,16 +362,10 @@ class _CreateCharacter extends Yosin_Window { | ||||||
|         // 确定 |         // 确定 | ||||||
|         enter.OnClick = function(enterName) { |         enter.OnClick = function(enterName) { | ||||||
|             local jobEnum = getJobEnum(jobIndex); |             local jobEnum = getJobEnum(jobIndex); | ||||||
|             TempCharacter = { |             MySocket.Send(7, { | ||||||
|                 lv = 1, |  | ||||||
|                 name = enterName, |                 name = enterName, | ||||||
|                 job = jobEnum, |                 job = jobEnum, | ||||||
|                 equip = [] |             }) | ||||||
|             }; |  | ||||||
|             MySocket.Send(PACKET_ID.CREATE_CHARACTER, { |  | ||||||
|                 name = enterName, |  | ||||||
|                 job = jobEnum, |  | ||||||
|             }); |  | ||||||
|         }.bindenv(this); |         }.bindenv(this); | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
|  | @ -823,7 +814,7 @@ class _create_Character_enterName extends Yosin_Window { | ||||||
|         //点击事件回调 |         //点击事件回调 | ||||||
|         checkButton.OnClick = function(Button) { |         checkButton.OnClick = function(Button) { | ||||||
| 
 | 
 | ||||||
|             MySocket.Send(PACKET_ID.NICKNAME_REPEAT_CHECK, { |             MySocket.Send(6, { | ||||||
|                 name = nameInputBox.str, |                 name = nameInputBox.str, | ||||||
|             }) |             }) | ||||||
| 
 | 
 | ||||||
|  | @ -886,7 +877,7 @@ class _create_Character_enterName extends Yosin_Window { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|         // 昵称重复检查回包 |         // 昵称重复检查回包 | ||||||
|         MySocket.RegisterHandler(PACKET_ID.NICKNAME_REPEAT_CHECK_CALLBACK, function(Jso) { |         MySocket.RegisterHandler(3, function(Jso) { | ||||||
|             if (Parent.NoticeBox) Parent.NoticeBox.CloseWindow(); |             if (Parent.NoticeBox) Parent.NoticeBox.CloseWindow(); | ||||||
|             if (Jso.type == 0) { |             if (Jso.type == 0) { | ||||||
|                 // 可以使用的ID 确认按钮可以使用. |                 // 可以使用的ID 确认按钮可以使用. | ||||||
|  |  | ||||||
|  | @ -5,19 +5,12 @@ | ||||||
| 文件用途:包ID枚举 | 文件用途:包ID枚举 | ||||||
| */ | */ | ||||||
| enum PACKET_ID { | enum PACKET_ID { | ||||||
| 
 |  | ||||||
|     /**** 客户端发包 ***/ |  | ||||||
| 
 |  | ||||||
|     // 登录 |     // 登录 | ||||||
|     LOGIN = 1 |     LOGIN = 1 | ||||||
|     //注册 |     //注册 | ||||||
|     REGISTER = 3 |     REGISTER = 3 | ||||||
|     //修改密码 |     //修改密码 | ||||||
|     CHANGE_PASSWORD = 5 |     CHANGE_PASSWORD = 5 | ||||||
|     //昵称重复检查 |  | ||||||
|     NICKNAME_REPEAT_CHECK = 6 |  | ||||||
|     //创建角色 |  | ||||||
|     CREATE_CHARACTER = 7 |  | ||||||
|     //查询账号中的角色列表 |     //查询账号中的角色列表 | ||||||
|     QUERY_CHARACTER_LIST = 9 |     QUERY_CHARACTER_LIST = 9 | ||||||
|     //选择角色 |     //选择角色 | ||||||
|  | @ -25,22 +18,4 @@ enum PACKET_ID { | ||||||
|     //更换角色位置 |     //更换角色位置 | ||||||
|     CHANGE_CHARACTER_POSITION = 10 |     CHANGE_CHARACTER_POSITION = 10 | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|     //城镇移动切换区域 |  | ||||||
|     CHANGE_TOWN_AREA = 10001 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|     /**** 客户端收包 ***/ |  | ||||||
| 
 |  | ||||||
|     //昵称重复检查回包 |  | ||||||
|     NICKNAME_REPEAT_CHECK_CALLBACK = 3 |  | ||||||
|     //创建角色回包 |  | ||||||
|     CREATE_CHARACTER_CALLBACK = 4 |  | ||||||
|     //选择角色进入游戏回包 |  | ||||||
|     SELECT_CHARACTER_ENTER_GAME_CALLBACK = 5 |  | ||||||
|     //城镇移动切换区域回包 |  | ||||||
|     CHANGE_TOWN_AREA_CALLBACK = 10001 |  | ||||||
|     //城镇添加角色回包 |  | ||||||
|     TOWN_ADD_CHARACTER_CALLBACK = 10002 |  | ||||||
| } | } | ||||||
|  | @ -247,8 +247,5 @@ | ||||||
|     }, |     }, | ||||||
|     "User/UI/Window/4_PersonalInfo.nut": { |     "User/UI/Window/4_PersonalInfo.nut": { | ||||||
|         "description": "个人信息窗口" |         "description": "个人信息窗口" | ||||||
|     }, |  | ||||||
|     "User/Socket/Packet.nut": { |  | ||||||
|         "description": "数据包类" |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
		Loading…
	
		Reference in New Issue