| 
									
										
										
										
											2024-12-11 15:44:49 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 文件名:CharacterObjectClass.nut | 
					
						
							|  |  |  | 路径:User/GameClass/ObjectClass/CharacterObjectClass.nut | 
					
						
							|  |  |  | 创建日期:2024-05-11	21:03 | 
					
						
							|  |  |  | 文件用途:角色类 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | class Character extends ActiveObject { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     hair = null; //头部 | 
					
						
							|  |  |  |     cap = null; //帽子 | 
					
						
							|  |  |  |     face = null; //脸部 | 
					
						
							|  |  |  |     neck = null; //胸部 | 
					
						
							|  |  |  |     coat = null; //上衣 | 
					
						
							|  |  |  |     skin = null; //皮肤 | 
					
						
							|  |  |  |     belt = null; //腰部 | 
					
						
							|  |  |  |     pants = null; //下装 | 
					
						
							|  |  |  |     shoes = null; //鞋子 | 
					
						
							|  |  |  |     weapon = null; //武器 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //当前动画组 | 
					
						
							|  |  |  |     CurrentAni = null; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //等待Ani | 
					
						
							|  |  |  |     WaitingAni = null; | 
					
						
							|  |  |  |     //移动Ani | 
					
						
							|  |  |  |     MoveAni = null; | 
					
						
							|  |  |  |     //蹲下Ani | 
					
						
							|  |  |  |     SitAni = null; | 
					
						
							|  |  |  |     //受伤Ani | 
					
						
							|  |  |  |     DamageAni1 = null; | 
					
						
							|  |  |  |     DamageAni2 = null; | 
					
						
							|  |  |  |     //倒地Ani | 
					
						
							|  |  |  |     DownAni = null; | 
					
						
							|  |  |  |     //被击后退Ani | 
					
						
							|  |  |  |     OverturnAni = null; | 
					
						
							|  |  |  |     //跳跃Ani | 
					
						
							|  |  |  |     JumoAni = null; | 
					
						
							|  |  |  |     //跳跃攻击Ani | 
					
						
							|  |  |  |     JumpAttackAni = null; | 
					
						
							|  |  |  |     //站立Ani | 
					
						
							|  |  |  |     RestAni = null; | 
					
						
							|  |  |  |     //引导Ani | 
					
						
							|  |  |  |     ThrowAni1_1 = null; | 
					
						
							|  |  |  |     ThrowAni1_2 = null; | 
					
						
							|  |  |  |     ThrowAni2_1 = null; | 
					
						
							|  |  |  |     ThrowAni2_2 = null; | 
					
						
							|  |  |  |     ThrowAni3_1 = null; | 
					
						
							|  |  |  |     ThrowAni3_2 = null; | 
					
						
							|  |  |  |     ThrowAni4_1 = null; | 
					
						
							|  |  |  |     ThrowAni4_2 = null; | 
					
						
							|  |  |  |     //奔跑Ani | 
					
						
							|  |  |  |     DashAni = null; | 
					
						
							|  |  |  |     //奔跑攻击Ani | 
					
						
							|  |  |  |     DashAttackAni = null; | 
					
						
							|  |  |  |     //拾取Ani | 
					
						
							|  |  |  |     GetItemAni = null; | 
					
						
							|  |  |  |     //释放BUFFAni | 
					
						
							|  |  |  |     BuffAni = null; | 
					
						
							|  |  |  |     //普通攻击Ani | 
					
						
							|  |  |  |     AttackAni = null; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //属性对象 | 
					
						
							|  |  |  |     Attribute = null; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function Init(Idx) { | 
					
						
							|  |  |  |         //初始化动画组 | 
					
						
							|  |  |  |         CurrentAni = []; | 
					
						
							|  |  |  |         //获取角色职业信息 | 
					
						
							|  |  |  |         Info = sq_DeepCopy(AssetManager.CharacterInfoList[Idx]); | 
					
						
							|  |  |  |         base.Init(Info); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-11 15:45:58 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-11 15:44:49 +08:00
										 |  |  |         //初始化基础Ani | 
					
						
							|  |  |  |         InitBaseAni(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         //构造属性对象 | 
					
						
							|  |  |  |         // Attribute = AttributeClass(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function SyncObjectBox() { | 
					
						
							|  |  |  |         //同步受击框 和 攻击框 | 
					
						
							|  |  |  |         DamageBox = null; | 
					
						
							|  |  |  |         AttackBox = null; | 
					
						
							|  |  |  |         //皮肤同步受击框 武器同步攻击框 | 
					
						
							|  |  |  |         foreach(AniObj in CurrentAni) { | 
					
						
							|  |  |  |             if (AniObj.Type == "skin") { | 
					
						
							|  |  |  |                 local Info = AniObj.GetCurrentFrameInfo(); | 
					
						
							|  |  |  |                 if (Info.DamageBox.len() > 0) { | 
					
						
							|  |  |  |                     DamageBox = []; | 
					
						
							|  |  |  |                     foreach(Box in Info.DamageBox) { | 
					
						
							|  |  |  |                         local NewBox = [Box[0] + X, Box[1] + Y, Box[2] + Z, Box[3] + X, Box[4] + Y, Box[5] + Z]; | 
					
						
							|  |  |  |                         DamageBox.append(NewBox); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } else if (AniObj.Type == "weapon") { | 
					
						
							|  |  |  |                 local Info = AniObj.GetCurrentFrameInfo(); | 
					
						
							|  |  |  |                 if (Info.AttackBox.len() > 0) { | 
					
						
							|  |  |  |                     AttackBox = []; | 
					
						
							|  |  |  |                     foreach(Box in Info.AttackBox) { | 
					
						
							|  |  |  |                         local NewBox = [Box[0] + X, Box[1] + Y, Box[2] + Z, Box[3] + X, Box[4] + Y, Box[5] + Z]; | 
					
						
							|  |  |  |                         AttackBox.append(NewBox); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // function OnUpdate(dt) { | 
					
						
							|  |  |  |     //     //原始逻辑 | 
					
						
							|  |  |  |     //     base.OnUpdate(dt); | 
					
						
							|  |  |  |     // } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //设置Ani | 
					
						
							|  |  |  |     function SetAnimation(Ani) { | 
					
						
							|  |  |  |         //因为是Ani组所以要foreach调用 | 
					
						
							|  |  |  |         //如果已经有Ani了 | 
					
						
							|  |  |  |         if (CurrentAni) { | 
					
						
							|  |  |  |             foreach(AniObj in CurrentAni) { | 
					
						
							|  |  |  |                 Removechild(AniObj); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if (type(Ani) == "integer") { | 
					
						
							|  |  |  |             //TODO 进阶ANI | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             CurrentAni = Ani; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         //重置Ani 并添加子对象 | 
					
						
							|  |  |  |         foreach(AniObj in CurrentAni) { | 
					
						
							|  |  |  |             AniObj.Reset(); | 
					
						
							|  |  |  |             Addchild(AniObj); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function FormatAvatarAniImgPath(AniInfo, FormatValue1, FormatValue2) { | 
					
						
							|  |  |  |         for (local i = 0; i< AniInfo.Frame.len(); i++) { | 
					
						
							|  |  |  |             AniInfo.Frame[i].Img_Path = format(AniInfo.Frame[i].Img_Path, FormatValue1, FormatValue2); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         return AniInfo; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function ReadAndSetAni(AniObj, Src) { | 
					
						
							|  |  |  |         //如果有这个标签Ani则初始化 | 
					
						
							|  |  |  |         if (Info.rawin(Src)) Src = Info[Src]; | 
					
						
							|  |  |  |         else return; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         //如果Ani组不存在就初始化数组 | 
					
						
							|  |  |  |         if (this[AniObj] == null) this[AniObj] = []; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-11 15:45:58 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-11 15:44:49 +08:00
										 |  |  |         foreach(Type in getconsttable().AvatarType) { | 
					
						
							|  |  |  |             //如果有时装就初始化Ani | 
					
						
							|  |  |  |             //除了皮肤 在没有的情况下初始化0 | 
					
						
							|  |  |  |             if (Type == "skin") { | 
					
						
							|  |  |  |                 local SkinAni; | 
					
						
							|  |  |  |                 if (this[Type] == null) { | 
					
						
							|  |  |  |                     local BufInfo = sq_DeepCopy(ScriptData.GetAni(Src)); | 
					
						
							|  |  |  |                     local Ao = { | 
					
						
							|  |  |  |                         ImgVariation = [0, 0], | 
					
						
							|  |  |  |                         ImgFormat = function(ImgPath) { | 
					
						
							|  |  |  |                             if (ImgVariation[0] > 0) { | 
					
						
							|  |  |  |                                 local Pos = ImgPath.find("%04d"); | 
					
						
							|  |  |  |                                 ImgPath = ImgPath.slice(0, Pos) + "%02d%02d" + ImgPath.slice(Pos + 4); | 
					
						
							|  |  |  |                                 return format(ImgPath, ImgVariation[0], ImgVariation[1]); | 
					
						
							|  |  |  |                             } else { | 
					
						
							|  |  |  |                                 return format(ImgPath, ImgVariation[1]); | 
					
						
							|  |  |  |                             } | 
					
						
							|  |  |  |                         } | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     SkinAni = Animation(BufInfo, Ao); | 
					
						
							|  |  |  |                 } else { | 
					
						
							| 
									
										
										
										
											2024-12-12 14:51:27 +08:00
										 |  |  |                     local AvaInfo = AssetManager.GetEquipment(this[Type]); | 
					
						
							| 
									
										
										
										
											2024-12-11 15:44:49 +08:00
										 |  |  |                     local JobInfo = AvaInfo["Ani_" + Info["job"]]; | 
					
						
							|  |  |  |                     local BufInfo = sq_DeepCopy(ScriptData.GetAni(Src)); | 
					
						
							|  |  |  |                     local Ao = { | 
					
						
							|  |  |  |                         ImgVariation = JobInfo["variation"], | 
					
						
							|  |  |  |                         ImgFormat = function(ImgPath) { | 
					
						
							|  |  |  |                             if (ImgVariation[0] > 0) { | 
					
						
							|  |  |  |                                 local Pos = ImgPath.find("%04d"); | 
					
						
							|  |  |  |                                 ImgPath = ImgPath.slice(0, Pos) + "%02d%02d" + ImgPath.slice(Pos + 4); | 
					
						
							|  |  |  |                                 return format(ImgPath, ImgVariation[0], ImgVariation[1]); | 
					
						
							|  |  |  |                             } else { | 
					
						
							|  |  |  |                                 return format(ImgPath, ImgVariation[1]); | 
					
						
							|  |  |  |                             } | 
					
						
							|  |  |  |                         } | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     SkinAni = Animation(BufInfo, Ao); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 //如果是皮肤Ani 绑定状态机 确保唯一性 | 
					
						
							|  |  |  |                 SkinAni.BindenvStateMachine(StateMachine); | 
					
						
							|  |  |  |                 //将Ani类型设置为皮肤 | 
					
						
							|  |  |  |                 SkinAni.Type = "skin"; | 
					
						
							|  |  |  |                 //加入组 | 
					
						
							|  |  |  |                 this[AniObj].append(SkinAni); | 
					
						
							|  |  |  |             } else { | 
					
						
							| 
									
										
										
										
											2024-12-12 14:51:27 +08:00
										 |  |  |                 //先判断类型 | 
					
						
							| 
									
										
										
										
											2024-12-11 15:44:49 +08:00
										 |  |  |                 if (this[Type] != null) { | 
					
						
							| 
									
										
										
										
											2024-12-12 14:51:27 +08:00
										 |  |  |                     local AvaInfo = AssetManager.GetEquipment(this[Type]); | 
					
						
							|  |  |  |                     if (AvaInfo) { | 
					
						
							|  |  |  |                         local JobInfo = AvaInfo["Ani_" + Info["job"]]; | 
					
						
							|  |  |  |                         foreach(_index, value in JobInfo["layer_variation"]) { | 
					
						
							|  |  |  |                             local BufInfo = sq_DeepCopy(ScriptData.GetAni(AvaInfo["DirPath"] + value["Path"] + Src.slice(Src.lastfind("/")))); | 
					
						
							|  |  |  |                             local Ao = { | 
					
						
							|  |  |  |                                 ImgVariation = JobInfo["variation"], | 
					
						
							|  |  |  |                                 ImgFormat = function(ImgPath) { | 
					
						
							|  |  |  |                                     return format(ImgPath, ImgVariation[0], ImgVariation[1]); | 
					
						
							|  |  |  |                                 } | 
					
						
							| 
									
										
										
										
											2024-12-11 15:44:49 +08:00
										 |  |  |                             } | 
					
						
							| 
									
										
										
										
											2024-12-12 14:51:27 +08:00
										 |  |  |                             local AniBuf = Animation(BufInfo, Ao); | 
					
						
							|  |  |  |                             //设置Ani类型 | 
					
						
							|  |  |  |                             AniBuf.Type = Type; | 
					
						
							|  |  |  |                             AniBuf.SetZOrder(value["Zorder"]); | 
					
						
							|  |  |  |                             this[AniObj].append(AniBuf); | 
					
						
							| 
									
										
										
										
											2024-12-11 15:44:49 +08:00
										 |  |  |                         } | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function ReadAndSetAttackAni() { | 
					
						
							|  |  |  |         local AttackAniArrSrc = Info["attack_motion"]; | 
					
						
							|  |  |  |         AttackAni = array(AttackAniArrSrc.len()); | 
					
						
							|  |  |  |         foreach(_Index, Path in AttackAniArrSrc) { | 
					
						
							|  |  |  |             local Src = Path; | 
					
						
							|  |  |  |             AttackAni[_Index] = []; | 
					
						
							|  |  |  |             foreach(Type in getconsttable().AvatarType) { | 
					
						
							|  |  |  |                 //如果有时装就初始化Ani | 
					
						
							|  |  |  |                 //除了皮肤 在没有的情况下初始化0 | 
					
						
							|  |  |  |                 if (Type == "skin") { | 
					
						
							|  |  |  |                     local SkinAni; | 
					
						
							|  |  |  |                     if (this[Type] == null) { | 
					
						
							|  |  |  |                         local BufInfo = sq_DeepCopy(ScriptData.GetAni(Src)); | 
					
						
							|  |  |  |                         local Ao = { | 
					
						
							|  |  |  |                             ImgVariation = [0, 0], | 
					
						
							|  |  |  |                             ImgFormat = function(ImgPath) { | 
					
						
							|  |  |  |                                 if (ImgVariation[0] > 0) { | 
					
						
							|  |  |  |                                     local Pos = ImgPath.find("%04d"); | 
					
						
							|  |  |  |                                     ImgPath = ImgPath.slice(0, Pos) + "%02d%02d" + ImgPath.slice(Pos + 4); | 
					
						
							|  |  |  |                                     return format(ImgPath, ImgVariation[0], ImgVariation[1]); | 
					
						
							|  |  |  |                                 } else { | 
					
						
							|  |  |  |                                     return format(ImgPath, ImgVariation[1]); | 
					
						
							|  |  |  |                                 } | 
					
						
							|  |  |  |                             } | 
					
						
							|  |  |  |                         } | 
					
						
							|  |  |  |                         SkinAni = Animation(BufInfo, Ao); | 
					
						
							|  |  |  |                     } else { | 
					
						
							| 
									
										
										
										
											2024-12-12 14:51:27 +08:00
										 |  |  |                         local AvaInfo = AssetManager.GetEquipment(this[Type]); | 
					
						
							| 
									
										
										
										
											2024-12-11 15:44:49 +08:00
										 |  |  |                         local JobInfo = AvaInfo["Ani_" + Info["job"]]; | 
					
						
							|  |  |  |                         local BufInfo = sq_DeepCopy(ScriptData.GetAni(Src)); | 
					
						
							|  |  |  |                         local Ao = { | 
					
						
							|  |  |  |                             ImgVariation = JobInfo["variation"], | 
					
						
							|  |  |  |                             ImgFormat = function(ImgPath) { | 
					
						
							|  |  |  |                                 return format(ImgPath, ImgVariation[0], ImgVariation[1]); | 
					
						
							|  |  |  |                             } | 
					
						
							|  |  |  |                         } | 
					
						
							|  |  |  |                         SkinAni = Animation(BufInfo, Ao); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     //如果是皮肤Ani 绑定状态机 确保唯一性 | 
					
						
							|  |  |  |                     SkinAni.BindenvStateMachine(StateMachine); | 
					
						
							|  |  |  |                     //将Ani类型设置为皮肤 | 
					
						
							|  |  |  |                     SkinAni.Type = "skin"; | 
					
						
							|  |  |  |                     //加入组 | 
					
						
							|  |  |  |                     AttackAni[_Index].append(SkinAni); | 
					
						
							|  |  |  |                 } else { | 
					
						
							|  |  |  |                     if (this[Type] != null) { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-12 14:51:27 +08:00
										 |  |  |                         local AvaInfo = AssetManager.GetEquipment(this[Type]); | 
					
						
							| 
									
										
										
										
											2024-12-11 15:44:49 +08:00
										 |  |  |                         local JobInfo = AvaInfo["Ani_" + Info["job"]]; | 
					
						
							|  |  |  |                         foreach(_index, value in JobInfo["layer_variation"]) { | 
					
						
							| 
									
										
										
										
											2024-12-12 14:51:27 +08:00
										 |  |  |                             local BufInfo = sq_DeepCopy(ScriptData.GetAni(AvaInfo["DirPath"] + value["Path"] + Src.slice(Src.lastfind("/")))); | 
					
						
							| 
									
										
										
										
											2024-12-11 15:44:49 +08:00
										 |  |  |                             local Ao = { | 
					
						
							|  |  |  |                                 ImgVariation = JobInfo["variation"], | 
					
						
							|  |  |  |                                 ImgFormat = function(ImgPath) { | 
					
						
							|  |  |  |                                     return format(ImgPath, ImgVariation[0], ImgVariation[1]); | 
					
						
							|  |  |  |                                 } | 
					
						
							|  |  |  |                             } | 
					
						
							|  |  |  |                             local AniBuf = Animation(BufInfo, Ao); | 
					
						
							|  |  |  |                             //设置Ani类型 | 
					
						
							|  |  |  |                             AniBuf.Type = Type; | 
					
						
							|  |  |  |                             AniBuf.SetZOrder(value["Zorder"]); | 
					
						
							|  |  |  |                             AttackAni[_Index].append(AniBuf); | 
					
						
							|  |  |  |                         } | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function InitBaseAni() { | 
					
						
							|  |  |  |         //读取并设置 等待Ani | 
					
						
							|  |  |  |         ReadAndSetAni("WaitingAni", "waiting motion"); | 
					
						
							|  |  |  |         //读取并设置 移动Ani | 
					
						
							|  |  |  |         ReadAndSetAni("MoveAni", "move motion"); | 
					
						
							|  |  |  |         //读取并设置 蹲下Ani | 
					
						
							|  |  |  |         ReadAndSetAni("SitAni", "sit motion"); | 
					
						
							|  |  |  |         //读取并设置 受伤Ani | 
					
						
							|  |  |  |         ReadAndSetAni("DamageAni1", "damage motion 1"); | 
					
						
							|  |  |  |         //读取并设置 受伤Ani | 
					
						
							|  |  |  |         ReadAndSetAni("DamageAni2", "damage motion 2"); | 
					
						
							|  |  |  |         //读取并设置 倒地Ani | 
					
						
							|  |  |  |         ReadAndSetAni("DownAni", "down motion"); | 
					
						
							|  |  |  |         //读取并设置 被击后退Ani | 
					
						
							|  |  |  |         ReadAndSetAni("OverturnAni", "overturn motion"); | 
					
						
							|  |  |  |         //读取并设置 跳跃Ani | 
					
						
							|  |  |  |         ReadAndSetAni("JumoAni", "jump motion"); | 
					
						
							|  |  |  |         //读取并设置 跳跃攻击Ani | 
					
						
							|  |  |  |         ReadAndSetAni("JumpAttackAni", "jumpattack motion"); | 
					
						
							|  |  |  |         //读取并设置 站立Ani | 
					
						
							|  |  |  |         ReadAndSetAni("RestAni", "rest motion"); | 
					
						
							|  |  |  |         //读取并设置 引导Ani | 
					
						
							|  |  |  |         ReadAndSetAni("ThrowAni1_1", "throw motion 1-1"); | 
					
						
							|  |  |  |         ReadAndSetAni("ThrowAni1_2", "throw motion 1-2"); | 
					
						
							|  |  |  |         ReadAndSetAni("ThrowAni2_1", "throw motion 2-1"); | 
					
						
							|  |  |  |         ReadAndSetAni("ThrowAni2_2", "throw motion 2-2"); | 
					
						
							|  |  |  |         ReadAndSetAni("ThrowAni3_1", "throw motion 3-1"); | 
					
						
							|  |  |  |         ReadAndSetAni("ThrowAni3_2", "throw motion 3-2"); | 
					
						
							|  |  |  |         ReadAndSetAni("ThrowAni4_1", "throw motion 4-1"); | 
					
						
							|  |  |  |         ReadAndSetAni("ThrowAni4_2", "throw motion 4-2"); | 
					
						
							|  |  |  |         //读取并设置 奔跑Ani | 
					
						
							|  |  |  |         ReadAndSetAni("DashAni", "dash motion"); | 
					
						
							|  |  |  |         //读取并设置 奔跑攻击Ani | 
					
						
							|  |  |  |         ReadAndSetAni("DashAttackAni", "dashattack motion"); | 
					
						
							|  |  |  |         //读取并设置 拾取Ani | 
					
						
							|  |  |  |         ReadAndSetAni("GetItemAni", "getitem motion"); | 
					
						
							|  |  |  |         //读取并设置 释放BUFFAni | 
					
						
							|  |  |  |         ReadAndSetAni("BuffAni", "buff motion"); | 
					
						
							|  |  |  |         //读取并设置 AttackAni | 
					
						
							|  |  |  |         ReadAndSetAttackAni(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |