| 
									
										
										
										
											2024-09-16 17:09:36 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 文件名:CharacterInfoData.nut | 
					
						
							|  |  |  | 路径:Base/_Z_Data/CharacterInfoData.nut | 
					
						
							|  |  |  | 创建日期:2024-09-03	11:34 | 
					
						
							|  |  |  | 文件用途:角色信息数据 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //读取属性数据 | 
					
						
							|  |  |  | function Lenheart_Character_GetAttribute(Address) { | 
					
						
							|  |  |  |     //传入读传入不传读自己 | 
					
						
							|  |  |  |     local ObjectAddress = Address; | 
					
						
							|  |  |  |     if (ObjectAddress == null) | 
					
						
							|  |  |  |         ObjectAddress = L_sq_RA(0x1AB7CDC); | 
					
						
							|  |  |  |     if (!ObjectAddress) return; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     local Info = {}; | 
					
						
							|  |  |  |     //当前HP | 
					
						
							|  |  |  |     Info.CurHp <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x2BEC); | 
					
						
							|  |  |  |     //总HP | 
					
						
							|  |  |  |     Info.MaxHp <- L_sq_RA(ObjectAddress + 0x36A0); | 
					
						
							|  |  |  |     //当前MP | 
					
						
							|  |  |  |     Info.CurMp <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x2BF8); | 
					
						
							|  |  |  |     //总MP | 
					
						
							|  |  |  |     Info.MaxMp <- L_sq_RA(ObjectAddress + 0x36A4); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //力量 | 
					
						
							|  |  |  |     Info.Strength <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x2364); | 
					
						
							|  |  |  |     //智力 | 
					
						
							|  |  |  |     Info.Intellect <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x2394); | 
					
						
							|  |  |  |     //体力 | 
					
						
							|  |  |  |     Info.Vitality <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x237C); | 
					
						
							|  |  |  |     //精神 | 
					
						
							|  |  |  |     Info.Spirit <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x23AC); | 
					
						
							|  |  |  |     //物理攻击  (没读武器精通) | 
					
						
							|  |  |  |     Info.PhysicalAttack <- (MemoryTool.DecodeMemoryData(ObjectAddress + 0x1E54) * (Info.Strength.tofloat() * 0.004 + 1)).tointeger() + MemoryTool.DecodeMemoryData(ObjectAddress + 0x1EB4); | 
					
						
							|  |  |  |     //魔法攻击 | 
					
						
							|  |  |  |     Info.MagicalAttack <- (MemoryTool.DecodeMemoryData(ObjectAddress + 0x1E84) * (Info.Intellect.tofloat() * 0.004 + 1)).tointeger() + MemoryTool.DecodeMemoryData(ObjectAddress + 0x1ED8); | 
					
						
							|  |  |  |     //独立攻击力  //TODO 需要加上成长独立攻击力 需要服务端发送给我 | 
					
						
							|  |  |  |     Info.IndependentAttack <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x22C8) + MemoryTool.DecodeMemoryData(ObjectAddress + 0x22F8); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //物理防御 | 
					
						
							|  |  |  |     Info.PhysicalDefend <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x273C); | 
					
						
							|  |  |  |     //魔法防御 | 
					
						
							|  |  |  |     Info.MagicalDefend <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x276C); | 
					
						
							|  |  |  |     //物理暴击 | 
					
						
							|  |  |  |     Info.PhysicalCrit <- MemoryTool.DecodeMemoryDataF(ObjectAddress + 0x1F14); | 
					
						
							|  |  |  |     //魔法暴击 | 
					
						
							|  |  |  |     Info.MagicalCrit <- MemoryTool.DecodeMemoryDataF(ObjectAddress + 0x1F20); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //攻击速度 | 
					
						
							|  |  |  |     Info.AttackSpeed <- (MemoryTool.DecodeMemoryDataF(ObjectAddress + 0x2688) - 1.0) * 100.0; | 
					
						
							|  |  |  |     //释放速度 | 
					
						
							|  |  |  |     Info.ReleaseSpeed <- (MemoryTool.DecodeMemoryDataF(ObjectAddress + 0x26A0) - 1.0) * 100.0; | 
					
						
							|  |  |  |     //移动速度 | 
					
						
							|  |  |  |     Info.MoveSpeed <- (MemoryTool.DecodeMemoryDataF(ObjectAddress + 0x2670) - 1.0) * 100.0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //抗魔值 | 
					
						
							|  |  |  |     local Kbuf = 0; | 
					
						
							|  |  |  |     for (local i = 1; i< 13; ++i) { | 
					
						
							|  |  |  |         local EquOffset = Rindro_GetEquAddr(i); | 
					
						
							|  |  |  |         local AbAddress = L_sq_RA(ObjectAddress + EquOffset); | 
					
						
							|  |  |  |         if (AbAddress) { | 
					
						
							|  |  |  |             Kbuf += MemoryTool.DecodeMemoryData(AbAddress + 0xAD4); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     Info.AntiMagic <- Kbuf; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //命中率 | 
					
						
							|  |  |  |     Info.HitRate <- MemoryTool.DecodeMemoryDataF(ObjectAddress + 0x1F50); | 
					
						
							|  |  |  |     //闪避率 | 
					
						
							|  |  |  |     Info.DodgeRate <- MemoryTool.DecodeMemoryDataF(ObjectAddress + 0x1C50); | 
					
						
							|  |  |  |     //HP回复量 | 
					
						
							|  |  |  |     Info.HPRecovery <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x1D64) * 1.6; | 
					
						
							|  |  |  |     //MP回复量 | 
					
						
							|  |  |  |     Info.MPRecovery <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x1D7C) * 7.2; | 
					
						
							|  |  |  |     //僵直度 | 
					
						
							|  |  |  |     Info.StunRate <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x1DF4); | 
					
						
							|  |  |  |     //硬直 | 
					
						
							|  |  |  |     Info.StunResist <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x1DDC); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //火属性强化 | 
					
						
							|  |  |  |     Info.FireStrength <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x1B54); | 
					
						
							|  |  |  |     //冰属性强化 | 
					
						
							|  |  |  |     Info.IceStrength <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x1B60); | 
					
						
							|  |  |  |     //光属性强化 | 
					
						
							|  |  |  |     Info.LightStrength <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x1B78); | 
					
						
							|  |  |  |     //暗属性强化 | 
					
						
							|  |  |  |     Info.DarkStrength <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x1B6C); | 
					
						
							|  |  |  |     //火属性抗性 | 
					
						
							|  |  |  |     Info.FireResist <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x1AF4); | 
					
						
							|  |  |  |     //冰属性抗性 | 
					
						
							|  |  |  |     Info.IceResist <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x1B00); | 
					
						
							|  |  |  |     //光属性抗性 | 
					
						
							|  |  |  |     Info.LightResist <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x1B18); | 
					
						
							|  |  |  |     //暗属性抗性 | 
					
						
							|  |  |  |     Info.DarkResist <- MemoryTool.DecodeMemoryData(ObjectAddress + 0x1B0C); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //名望值 | 
					
						
							|  |  |  |     Info.Fame <- 0; | 
					
						
							|  |  |  |     //最终伤害 | 
					
						
							|  |  |  |     Info.FinalDamage <- 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return Info; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-27 21:24:22 +08:00
										 |  |  | // function Rindro_GetCharacterInfoCallBack(Chunk) { | 
					
						
							|  |  |  | //     local Jso = Json.Decode(Chunk); | 
					
						
							|  |  |  | //     Jso.op <- 20069011; | 
					
						
							|  |  |  | //     Jso.Info <- Lenheart_Character_GetAttribute(null); | 
					
						
							|  |  |  | //     Rindro_BaseToolClass.SendPackEx(Jso); | 
					
						
							|  |  |  | // } | 
					
						
							|  |  |  | // Pack_Control.rawset(20069010, Rindro_GetCharacterInfoCallBack); |