113 lines
3.8 KiB
Lua
113 lines
3.8 KiB
Lua
|
------------------------------------------------
|
||
|
--作者: gzg
|
||
|
--日期: 2020-11-12
|
||
|
--文件: PlayerRoleInfo.lua
|
||
|
--模块: PlayerRoleInfo
|
||
|
--描述: 玩家角色信息
|
||
|
------------------------------------------------
|
||
|
local SlotUtils = CS.Thousandto.Core.Asset.SlotUtils
|
||
|
local SlotNameDefine = CS.Thousandto.Core.Asset.SlotNameDefine
|
||
|
local FSkinModelWrap = require("Logic.FGameObject.FSkinModelWrap")
|
||
|
|
||
|
|
||
|
local PlayerRoleInfo = {
|
||
|
--角色ID
|
||
|
RoleId = 0,
|
||
|
--名字
|
||
|
Name = nil,
|
||
|
--职业
|
||
|
Career = 0,
|
||
|
--等级
|
||
|
Level = 0,
|
||
|
--境界等级
|
||
|
StateLevel = 0,
|
||
|
--Vip等级
|
||
|
VipLevel = 0,
|
||
|
--删除时间
|
||
|
DeleteTime = 0,
|
||
|
--创建时间
|
||
|
CreateTime = 0,
|
||
|
--战斗力
|
||
|
PowerValue= 0,
|
||
|
--外观信息
|
||
|
VisualInfo = nil,
|
||
|
--外光的Skin,临时保存
|
||
|
Skin = nil,
|
||
|
--Skin不为改变的回调
|
||
|
OnSkinPartChangedHandler = nil,
|
||
|
|
||
|
}
|
||
|
|
||
|
--New
|
||
|
function PlayerRoleInfo:New()
|
||
|
local _m = Utils.DeepCopy(self)
|
||
|
_m.OnSkinPartChangedHandler = Utils.Handler(_m.OnSkinPartChanged, _m, nil, true);
|
||
|
return _m
|
||
|
end
|
||
|
|
||
|
function PlayerRoleInfo:FillFromServerMsg(msg)
|
||
|
self.RoleId = msg.roleId;
|
||
|
self.Name = msg.name;
|
||
|
self.Career = msg.career;
|
||
|
self.Level = msg.lv;
|
||
|
self.StateLevel = msg.stateLv;
|
||
|
self.DeleteTime = msg.deleteTime;
|
||
|
self.CreateTime = msg.createTime;
|
||
|
self.PowerValue = (msg.fight);
|
||
|
self.VisualInfo = PlayerVisualInfo:New();
|
||
|
self.VisualInfo:Parse(msg.facade, self.StateLevel);
|
||
|
end
|
||
|
|
||
|
function PlayerRoleInfo:FillFromLocalPlayer(lp)
|
||
|
self.RoleId = lp.ID;
|
||
|
self.Name = lp.Name;
|
||
|
self.Career = lp.IntOcc;
|
||
|
self.Level = lp.Level;
|
||
|
self.VisualInfo = PlayerVisualInfo:New();
|
||
|
self.VisualInfo:Copy(lp.VisualInfo);
|
||
|
self.StateLevel = lp.CurStateLevel;
|
||
|
self.DeleteTime =-1;
|
||
|
self.CreateTime = 0;
|
||
|
self.PowerValue =lp.FightPower;
|
||
|
end
|
||
|
|
||
|
--刷新皮肤模型
|
||
|
function PlayerRoleInfo:RefreshSkinModel(skin)
|
||
|
if skin == nil then
|
||
|
self.Skin = FSkinModelWrap:New(FSkinTypeCode.Player);
|
||
|
self.Skin:SetOnSkinPartChangedHandler(self.OnSkinPartChangedHandler);
|
||
|
if self.VisualInfo ~= nil then
|
||
|
RoleVEquipTool.RefreshPlayerSkinModel(self.Skin, self.Career, self.VisualInfo);
|
||
|
else
|
||
|
Debug.LogError("==== self.VisualInfo==nil 打印PlayerRoleInfo ====")
|
||
|
Debug.LogTable(self);
|
||
|
end
|
||
|
else
|
||
|
self.Skin = skin;
|
||
|
end
|
||
|
return self.Skin;
|
||
|
end
|
||
|
|
||
|
--皮肤的部位改变
|
||
|
function PlayerRoleInfo:OnSkinPartChanged(x, y)
|
||
|
if (y == FSkinPartCode.GodWeaponHead or y == FSkinPartCode.Body) and self.Skin ~= nil then
|
||
|
local body = self.Skin:GetSkinPart(FSkinPartCode.Body);
|
||
|
if (body) then
|
||
|
body.BrightWeapon = true;
|
||
|
local weaponModelID = self.Skin:GetSkinPartCfgID(FSkinPartCode.GodWeaponHead);
|
||
|
local scaleCfg = DataConfig.DataWeaponScale[weaponModelID];
|
||
|
if (scaleCfg) then
|
||
|
local reScale = Vector3(scaleCfg.ReceiveScale / 100, scaleCfg.ReceiveScale / 100, scaleCfg.ReceiveScale / 100);
|
||
|
local brScale = Vector3(scaleCfg.BrightScale / 100, scaleCfg.BrightScale / 100, scaleCfg.BrightScale / 100);
|
||
|
SlotUtils.SetSlotLocalScale(body.RealTransform, SlotNameDefine.RightWeapon, brScale);
|
||
|
SlotUtils.SetSlotLocalScale(body.RealTransform, SlotNameDefine.RightWeaponReceive, reScale);
|
||
|
else
|
||
|
SlotUtils.SetSlotLocalScale(body.RealTransform, SlotNameDefine.RightWeapon, Vector3.one);
|
||
|
SlotUtils.SetSlotLocalScale(body.RealTransform, SlotNameDefine.RightWeaponReceive, Vector3.one);
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|
||
|
return PlayerRoleInfo
|