|
|
- --[[
- 服务器下发的角色信息结构体
- ]]
- require("game.pet.vo.PetBaseVo")
- require("game.sharedata.RoleVo")
- MainRoleVo = MainRoleVo or BaseClass(RoleVo)
- local MainRoleVo = MainRoleVo
- local UserMsgAdapter_ReadFmt = UserMsgAdapter.ReadFmt
- local UserMsgAdapter_ReadFmt2 = UserMsgAdapter.ReadFmt2
-
- MainRoleVo.TOP_LEVEL = 370 --传奇等级
- function MainRoleVo:__init( )
- self.vo_type = SceneBaseType.MainRole
- self.gm_flag = 0 -- int:8 gm
- self.level = 0 -- int:16 等级
- self.turn = 0 --转生
-
- self.attack_speed = 0.8 -- int:16 攻击速度(秒)
- self.attack_range = 2 -- int:8 攻击范围(格子数)
- self.exp = 0 -- int:64 经验(有符号)
- self.exp_lim = 0 -- int:32 经验上限
-
-
- self.jin=0 --int:32 彩钻
- self.jinLock=0 --int:32 礼券
- self.jinPink = 0 -- nt:32 粉钻
- self.tong=0 --int:32 金币
- self.tongLock=0 --int:32 绑定金币
- self.guild_contribute = 0 --int:32 社团贡献
- self.slot_info = {}
-
- self.anger = 0 --怒气
-
- self.lastSceneId = 0 --玩家上次下线所在的场景id
-
- self.hp = 0 -- int:32 气血
- self.maxHp = 0 -- int:32 气血上限
-
- self.enemy_id = 0 --当前敌人id
- self.particle_priority = 1
-
- self.role_id = 1
- self.plat_name = "测试"
- self.server_id = 1
-
- self.chaosTime = 0
- self.peace_cd_time = 0
-
- self.worldLv = 0 -- 世界等级
- self.worldLvExp = 0 -- 世界等级经验加成
-
- self.hatred = 0
- self.hatred_time = 0
- self.date_role_id = 0
- self.kill_mon_exp = 0
-
- self.last_level_time = 0
- self.creat_role_time = 0
-
- self.mate_title = ""
- self.mate_name = ""
- self.mate_lv = 0
-
- self.sup_vip_type = 0 --是否是永久贵族 0|否 1|体验 2|永久
-
- self.angry_value = 0 --怒气技能值
- self.max_angry_value = 0
- self.pet_wing_id = 0
- self.pet_weapon_id = 0
- self.pet_farmour = 0
-
- self.god_id = 0 --式神id
- self.god_hp = 0 --式神血量
- self.god_max_hp = 0 --式神血量上限
-
- self.evil_type_id = 0 --跟随守护type_id
- end
-
-
- function MainRoleVo:ReadFrom13001( )
- self.role_id = UserMsgAdapter_ReadFmt("l") --用户id
- self.plat_name = UserMsgAdapter_ReadFmt("s")
- self.server_id = UserMsgAdapter_ReadFmt("h")-- 服id(唯一标识)
- self.server_num = UserMsgAdapter_ReadFmt("h")-- 服标识(显示用)
- self.server_name = UserMsgAdapter_ReadFmt("s") -- 所选服务器名字
-
- FigureProtoVo.ReadFmt(self)
- BattleProtoVo.ReadFmt(self)
- self.lastSceneId, -- int:32 地图唯一ID
- self.pos_x, -- int:16 X坐标
- self.pos_y, -- int:16 Y坐标
- self.dun_id, -- int:32 副本id
- self.exp, -- int:64 经验(有符号)
- self.exp_lim, -- int:32 经验上限
- self.jin, --int:32 彩钻
- self.jinLock, --int:32 礼券
- self.jinPink, --int:32 粉钻
- self.tong, --int:32 金币
- self.honor, --int:32荣誉
- self.guild_contribute, --int:32 社团贡献
- self.fighting, --int:32 战斗力
- self.guild_id --int:64 社团id
- = UserMsgAdapter_ReadFmt2("ihhilliiiiiill")
- self.guild_name --string 社团名字(2020年3月9日修改,避免纯数字的社团名在UserMsgAdapter_ReadFmt2中首位0被当作多余位删掉)
- = UserMsgAdapter_ReadFmt("s")
- -- print("self.peace_cd_time = ",UserMsgAdapter_ReadFmt("h"))
- self:ChangeVar("peace_cd_time", UserMsgAdapter_ReadFmt("h"))
- self.hatred = UserMsgAdapter_ReadFmt("h") --int16 : 仇恨值
- self.team_id = UserMsgAdapter_ReadFmt("l") --int:64 队伍id(为0时没队伍)
- self.date_role_id = UserMsgAdapter_ReadFmt("l") --约会id
- self.creat_role_time = UserMsgAdapter_ReadFmt("i") --创角时间
- self:ChangeVar("mate_title_role_id", UserMsgAdapter_ReadFmt("l")) --使用的羁绊称号角色id
-
- self.god_id = UserMsgAdapter_ReadFmt("h") --int:16 式神id
- self.god_hp = UserMsgAdapter_ReadFmt("l") --int:64 式神血量
- self.god_max_hp = UserMsgAdapter_ReadFmt("l") --int:64 式神血量上限
-
- --第一次优先请求降神协议,获取最新上阵id
- GlobalEventSystem:Fire(EventName.FAST_GAME_START)
-
- self:ChangeVar(BaseVo.ALL_VAR)
- end
-
-
- function MainRoleVo:ReadFrom13032()
- BaseAttrProtoVo.ReadFmt3(self)
- end
-
-
- --通过秘籍改变属性
- function MainRoleVo:ReadFrom13033()
-
- -- self.fighting = UserMsgAdapter_ReadFmt("i") --用户id
- self:ChangeVar("fighting", UserMsgAdapter_ReadFmt("l"))
- BattleProtoVo.ReadFmt(self)
- -- self:ChangeVar(BaseVo.ALL_VAR)
- self:Fire(EventName.UPDATE_MAIN_ROLE_INFO_VIEW)
- end
-
- --通过秘籍改变属性
- function MainRoleVo:ReadFrom13034()
- local hatred = UserMsgAdapter_ReadFmt("h")
- local time = UserMsgAdapter_ReadFmt("i") --清除一点罪恶值的时间戳
- self.hatred_time = math.max(0,hatred * 3 * 3600 + time - TimeUtil:getServerTime()) --清除所有罪恶值所需要的时间end
- -- if hatred == 0 then
- -- Message.show("您已消除所有红名值,祝您游戏愉快")
- -- ChatModel.Instance:AddInfoToChatView("您已消除所有红名值,祝您游戏愉快", ChatModel.CHANNEL_SYSTEM, 0)
- -- end
- self.hatred = -1
- self:ChangeVar("hatred",hatred)
- end
-
- function MainRoleVo:ReadFrom13003()
- local old_level = self.level
-
- local new_exp = 0
- self.level, new_exp, self.exp_lim = UserMsgAdapter_ReadFmt("hll")
- self:ChangeVar("exp",new_exp)
- if old_level > 0 and old_level < self.level then
- self.last_level_time = Time.time
- MainUIModel:getInstance():AddUpgradeInfo(self.level)
- self:DelayFire(EventName.CHANGE_LEVEL, self.level)
- self:Fire(EventName.IMMEDIATE_CHANGE_LEVEL,self.level)
-
- if Config.ConfigHelper.LevelStopList[self.level] then
- GuideModel:getInstance():SetNeedFinishGuideFirst(true)
- end
- --升级UI表现
- local data = {type = SceneSpecialTipType.upgrade,}
- CommonController.Instance:Fire(EventName.OPEN_SCENESPECIALTIPVIEW,data)
- end
- end
-
- -- 世界等级
- function MainRoleVo:ReadFrom13011()
- self.worldLvExp = UserMsgAdapter_ReadFmt("H")
- self.worldLv = UserMsgAdapter_ReadFmt("h")
- end
-
- function MainRoleVo:SetGuildId(value)
- self.guild_id = value
- end
-
- function MainRoleVo:SetTeamId(value)
- self.teamID = value
- end
-
- function MainRoleVo:ChangeFromVo(roleVo)
- self:ChangeVar("activity_flags",roleVo.activity_flags, true, true) --活动标志,延迟触发;在其他参数之前,因为在其他参数触发的事件中可能用到
- self:ChangeVar("name",roleVo.name)
- self:ChangeVar("maxHp",roleVo.maxHp)
- self:ChangeVar("hp",roleVo.hp)
- self:ChangeVar("move_speed",roleVo.move_speed)
- self:ChangeVar("wing_id",roleVo.wing_id)
- self:ChangeVar("att_speed",roleVo.att_speed)
- self:ChangeVar("hide_flag",roleVo.hide_flag)
- self:ChangeVar("ghost_mode",roleVo.ghost_mode)
- self:ChangeVar("dance_status",roleVo.dance_status)
- self:ChangeVar("team_id",roleVo.team_id)
- self:ChangeVar("team_job",roleVo.team_job)
- self:ChangeVar("pk_status",roleVo.pk_status)
- self:ChangeVar("guild_id",roleVo.guild_id)
- self:ChangeVar("is_ride",roleVo.is_ride)
- self:ChangeVar("horse_id",roleVo.horse_id)
- self:ChangeVar("warGroup",roleVo.warGroup)
- self:ChangeVar("flag_state",roleVo.flag_state)
- -- self:ChangeVar("fashion_model_list",roleVo.fashion_model_list, nil, true)
- self:ChangeVar("battle_title",roleVo.battle_title)
- self:ChangeVar("sky_flags",roleVo.sky_flags, nil, true)
- self:ChangeVar("state_type",roleVo.state_type)
- self:ChangeVar("weapon_effect",roleVo.weapon_effect)
- self:ChangeVar("grade_id",roleVo.grade_id)
- self:ChangeVar("pokemon_id",roleVo.pokemon_id)
- self:ChangeVar("pokemon_star",roleVo.pokemon_star)
- self:ChangeVar("pet_status",roleVo.pet_status)
- self:ChangeVar("is_marriage",roleVo.is_marriage)
- self:ChangeVar("marriage_id",roleVo.marriage_id)
- self:ChangeVar("marriage_name",roleVo.marriage_name)
- self:ChangeVar("boss_flag",roleVo.boss_flag)
- self:ChangeVar("baby_id",roleVo.baby_id)
- self:ChangeVar("child_follow_status",roleVo.child_follow_status)
- self:ChangeVar("escort_state",roleVo.escort_state)
- self:ChangeVar("protect_time",roleVo.protect_time)
- self:ChangeVar("career",roleVo.career)
- self:ChangeVar("mate_title",roleVo.mate_title)
- self:ChangeVar("mate_name",roleVo.mate_name)
- self:ChangeVar("mate_lv",roleVo.mate_lv)
- --时装只要赋值就好,降神会刷新模型
- self.fashion_model_list = roleVo.fashion_model_list
- self.foster_skin_list = roleVo.foster_skin_list
- self:ChangeVar("god_id",roleVo.god_id,nil,true) --通过降神改变模型
- self:ChangeVar("casual_state_flags",roleVo.casual_state_flags,nil,true)
- -------------------------
- --进阶部分
- local sprite_res_id = 0--法宝
- local pet_res_id = 0--AI娘
- local pet_wing_id = 0--ai娘翅膀
- local horse_id = 0--ai娘翅膀
- local wing_id = 0
- local pet_weapon_id = 0
- local pet_farmour = 0
- -------------------------
- for k,v in pairs(self.foster_skin_list) do
- if v.type_id == FosterConst.ModuleId.FWeapon then
- --武器的珍宝需要手动折算2次成资源名
- v.skin_id = ShapeModel:GetModelRes( v.type_id, v.sub_id, v.star )
- if v.skin_id > 0 then
- v.skin_id = GameResPath:GetFWeaponResName( self.career,v.skin_id)
- end
- else
- v.skin_id = ShapeModel:GetModelRes( v.type_id, v.sub_id, v.star )
- end
- end
- -------------------------
-
- local function get_foster_skin( type_id )
- for k,v in pairs(self.foster_skin_list) do
- if v.type_id == type_id and v.skin_id > 0 then
- return v.skin_id
- end
- end
- for k,v in pairs(self.foster_sub_skin_list) do
- if v.type_id == type_id and v.skin_id > 0 then
- return v.skin_id
- end
- end
- end
-
- for k,v in pairs(roleVo.foster_list) do
- if v.type_id == FosterConst.ModuleId.FPearl then
- sprite_res_id = get_foster_skin(v.type_id) or FosterModel:GetInstance():GetModuleResIdByStage(v.type_id,v.stage_id)
- elseif v.type_id == FosterConst.ModuleId.FJarvis then
- pet_res_id = get_foster_skin(v.type_id) or FosterModel:GetInstance():GetModuleResIdByStage(v.type_id,v.stage_id)
- elseif v.type_id == FosterConst.ModuleId.FCloud then
- pet_wing_id = get_foster_skin(v.type_id) or FosterModel:GetInstance():GetModuleResIdByStage(v.type_id,v.stage_id)
- elseif v.type_id == FosterConst.ModuleId.FHorse then
- horse_id = get_foster_skin(v.type_id) or FosterModel:GetInstance():GetModuleResIdByStage(v.type_id,v.stage_id)
- elseif v.type_id == FosterConst.ModuleId.FWing then
- wing_id = get_foster_skin(v.type_id) or FosterModel:GetInstance():GetModuleResIdByStage(v.type_id,v.stage_id)
- elseif v.type_id == FosterConst.ModuleId.FGun then
- pet_weapon_id = get_foster_skin(v.type_id) or FosterModel:GetInstance():GetModuleResIdByStage(v.type_id,v.stage_id)
- elseif v.type_id == FosterConst.ModuleId.FArmour then
- pet_farmour = get_foster_skin(v.type_id) or FosterModel:GetInstance():GetModuleResIdByStage(v.type_id,v.stage_id)
- end
- end
- self:ChangeVar("sprite_id",sprite_res_id)
- self:ChangeVar("pet_id",pet_res_id)
- self:ChangeVar("pet_wing_id",pet_wing_id)
- self:ChangeVar("horse_id",horse_id)
- self:ChangeVar("wing_id",wing_id)
- self:ChangeVar("pet_weapon_id",pet_weapon_id)
- self:ChangeVar("pet_farmour",pet_farmour)
- --进阶部分
- -------------------------
- local role = Scene.Instance:GetRole(RoleManager.Instance.mainRoleInfo.role_id)
- if role then
- role:ChangeWeapon( )
- end
- end
-
- function MainRoleVo:getAttackRange()
- local rangerX = 0
- local rangerY = 0
- if self.career==2 then--如果是逍遥,写死攻击距离
- rangerX=5
- rangerY=7
- else
- rangerX=2
- rangerY=2
- end
- return rangerX, rangerY
- end
-
- function MainRoleVo:ReadFrom13013()
- local fullBodyLen = UserMsgAdapter_ReadFmt("h")
- local fullBodyRewardList = {}
-
- local fullBodyVo = nil
- for i = 1, fullBodyLen do
- fullBodyVo = {}
- fullBodyVo.type = UserMsgAdapter_ReadFmt("c")
- fullBodyVo.level = UserMsgAdapter_ReadFmt("i")
- fullBodyVo.currNum = UserMsgAdapter_ReadFmt("i")
- fullBodyVo.nextNum = UserMsgAdapter_ReadFmt("i")
- fullBodyRewardList[fullBodyVo.type] = fullBodyVo
- end
-
- self.fullBodyRewardList={}
- self:ChangeVar("fullBodyRewardList",fullBodyRewardList)
- end
-
- --[[
- int:32 社团声望
- int:32 魅力声望
- int:32 竞技场积分
- int:32 塔防副本积分
- ]]
- function MainRoleVo:ReadFrom13014()
- local gangPrestige=UserMsgAdapter_ReadFmt("i")
- local charm=UserMsgAdapter_ReadFmt("i")
- local fightSc=UserMsgAdapter_ReadFmt("i")
- local td_integral=UserMsgAdapter_ReadFmt("i")
-
- self:ChangeVar("gangPrestige",gangPrestige)
- self:ChangeVar("charm",charm)
- self:ChangeVar("fightSc",fightSc)
- self:ChangeVar("td_integral",td_integral)
- end
-
- -- 战力改变
- function MainRoleVo:changePower()
- local changeFight = self.fighting - self.old_fighting
- if self.firstChange==true then
- GlobalEventSystem:Fire(EventName.CHANGEATT_POWER, changeFight)
- end
- self.firstChange=true
-
- self.old_fighting = self.fighting
- end
-
-
- function MainRoleVo:GetTotalJin()
- return self.jin + self.jinLock
- end
-
- function MainRoleVo:GetRealJin()
- return self.jin
- end
-
- --玩家信息本人更改
- function MainRoleVo:ReadFrom13015()
- local len = UserMsgAdapter_ReadFmt("h")
- for i=1,len do
- local type_id = UserMsgAdapter_ReadFmt("c")
- local value = UserMsgAdapter_ReadFmt("s")
- --类型(1羁绊佩戴)
- if type_id == 1 then
- self:ChangeVar("mate_title_role_id", value) --使用的羁绊称号角色id
- end
- end
- end
-
- function MainRoleVo:GetGodID( )
- return self.god_id or 0
- end
-
- --是否正在神灵附身状态
- function MainRoleVo:IsGodState( )
- return self.god_id and self.god_id ~= 0
- end
|