源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

389 rivejä
13 KiB

1 kuukausi sitten
  1. --[[
  2. ]]
  3. require("game.pet.vo.PetBaseVo")
  4. require("game.sharedata.RoleVo")
  5. MainRoleVo = MainRoleVo or BaseClass(RoleVo)
  6. local MainRoleVo = MainRoleVo
  7. local UserMsgAdapter_ReadFmt = UserMsgAdapter.ReadFmt
  8. local UserMsgAdapter_ReadFmt2 = UserMsgAdapter.ReadFmt2
  9. MainRoleVo.TOP_LEVEL = 370 --传奇等级
  10. function MainRoleVo:__init( )
  11. self.vo_type = SceneBaseType.MainRole
  12. self.gm_flag = 0 -- int:8 gm
  13. self.level = 0 -- int:16 等级
  14. self.turn = 0 --转生
  15. self.attack_speed = 0.8 -- int:16 攻击速度(秒)
  16. self.attack_range = 2 -- int:8 攻击范围(格子数)
  17. self.exp = 0 -- int:64 经验(有符号)
  18. self.exp_lim = 0 -- int:32 经验上限
  19. self.jin=0 --int:32 彩钻
  20. self.jinLock=0 --int:32 礼券
  21. self.jinPink = 0 -- nt:32 粉钻
  22. self.tong=0 --int:32 金币
  23. self.tongLock=0 --int:32 绑定金币
  24. self.guild_contribute = 0 --int:32 社团贡献
  25. self.slot_info = {}
  26. self.anger = 0 --怒气
  27. self.lastSceneId = 0 --玩家上次下线所在的场景id
  28. self.hp = 0 -- int:32 气血
  29. self.maxHp = 0 -- int:32 气血上限
  30. self.enemy_id = 0 --当前敌人id
  31. self.particle_priority = 1
  32. self.role_id = 1
  33. self.plat_name = "测试"
  34. self.server_id = 1
  35. self.chaosTime = 0
  36. self.peace_cd_time = 0
  37. self.worldLv = 0 -- 世界等级
  38. self.worldLvExp = 0 -- 世界等级经验加成
  39. self.hatred = 0
  40. self.hatred_time = 0
  41. self.date_role_id = 0
  42. self.kill_mon_exp = 0
  43. self.last_level_time = 0
  44. self.creat_role_time = 0
  45. self.mate_title = ""
  46. self.mate_name = ""
  47. self.mate_lv = 0
  48. self.sup_vip_type = 0 --是否是永久贵族 0|否 1|体验 2|永久
  49. self.angry_value = 0 --怒气技能值
  50. self.max_angry_value = 0
  51. self.pet_wing_id = 0
  52. self.pet_weapon_id = 0
  53. self.pet_farmour = 0
  54. self.god_id = 0 --式神id
  55. self.god_hp = 0 --式神血量
  56. self.god_max_hp = 0 --式神血量上限
  57. self.evil_type_id = 0 --跟随守护type_id
  58. end
  59. function MainRoleVo:ReadFrom13001( )
  60. self.role_id = UserMsgAdapter_ReadFmt("l") --用户id
  61. self.plat_name = UserMsgAdapter_ReadFmt("s")
  62. self.server_id = UserMsgAdapter_ReadFmt("h")-- 服id(唯一标识)
  63. self.server_num = UserMsgAdapter_ReadFmt("h")-- 服标识(显示用)
  64. self.server_name = UserMsgAdapter_ReadFmt("s") -- 所选服务器名字
  65. FigureProtoVo.ReadFmt(self)
  66. BattleProtoVo.ReadFmt(self)
  67. self.lastSceneId, -- int:32 地图唯一ID
  68. self.pos_x, -- int:16 X坐标
  69. self.pos_y, -- int:16 Y坐标
  70. self.dun_id, -- int:32 副本id
  71. self.exp, -- int:64 经验(有符号)
  72. self.exp_lim, -- int:32 经验上限
  73. self.jin, --int:32 彩钻
  74. self.jinLock, --int:32 礼券
  75. self.jinPink, --int:32 粉钻
  76. self.tong, --int:32 金币
  77. self.honor, --int:32荣誉
  78. self.guild_contribute, --int:32 社团贡献
  79. self.fighting, --int:32 战斗力
  80. self.guild_id --int:64 社团id
  81. = UserMsgAdapter_ReadFmt2("ihhilliiiiiill")
  82. self.guild_name --string 社团名字(2020年3月9日修改,避免纯数字的社团名在UserMsgAdapter_ReadFmt2中首位0被当作多余位删掉)
  83. = UserMsgAdapter_ReadFmt("s")
  84. -- print("self.peace_cd_time = ",UserMsgAdapter_ReadFmt("h"))
  85. self:ChangeVar("peace_cd_time", UserMsgAdapter_ReadFmt("h"))
  86. self.hatred = UserMsgAdapter_ReadFmt("h") --int16 : 仇恨值
  87. self.team_id = UserMsgAdapter_ReadFmt("l") --int:64 队伍id(为0时没队伍)
  88. self.date_role_id = UserMsgAdapter_ReadFmt("l") --约会id
  89. self.creat_role_time = UserMsgAdapter_ReadFmt("i") --创角时间
  90. self:ChangeVar("mate_title_role_id", UserMsgAdapter_ReadFmt("l")) --使用的羁绊称号角色id
  91. self.god_id = UserMsgAdapter_ReadFmt("h") --int:16 式神id
  92. self.god_hp = UserMsgAdapter_ReadFmt("l") --int:64 式神血量
  93. self.god_max_hp = UserMsgAdapter_ReadFmt("l") --int:64 式神血量上限
  94. --第一次优先请求降神协议,获取最新上阵id
  95. GlobalEventSystem:Fire(EventName.FAST_GAME_START)
  96. self:ChangeVar(BaseVo.ALL_VAR)
  97. end
  98. function MainRoleVo:ReadFrom13032()
  99. BaseAttrProtoVo.ReadFmt3(self)
  100. end
  101. --通过秘籍改变属性
  102. function MainRoleVo:ReadFrom13033()
  103. -- self.fighting = UserMsgAdapter_ReadFmt("i") --用户id
  104. self:ChangeVar("fighting", UserMsgAdapter_ReadFmt("l"))
  105. BattleProtoVo.ReadFmt(self)
  106. -- self:ChangeVar(BaseVo.ALL_VAR)
  107. self:Fire(EventName.UPDATE_MAIN_ROLE_INFO_VIEW)
  108. end
  109. --通过秘籍改变属性
  110. function MainRoleVo:ReadFrom13034()
  111. local hatred = UserMsgAdapter_ReadFmt("h")
  112. local time = UserMsgAdapter_ReadFmt("i") --清除一点罪恶值的时间戳
  113. self.hatred_time = math.max(0,hatred * 3 * 3600 + time - TimeUtil:getServerTime()) --清除所有罪恶值所需要的时间end
  114. -- if hatred == 0 then
  115. -- Message.show("您已消除所有红名值,祝您游戏愉快")
  116. -- ChatModel.Instance:AddInfoToChatView("您已消除所有红名值,祝您游戏愉快", ChatModel.CHANNEL_SYSTEM, 0)
  117. -- end
  118. self.hatred = -1
  119. self:ChangeVar("hatred",hatred)
  120. end
  121. function MainRoleVo:ReadFrom13003()
  122. local old_level = self.level
  123. local new_exp = 0
  124. self.level, new_exp, self.exp_lim = UserMsgAdapter_ReadFmt("hll")
  125. self:ChangeVar("exp",new_exp)
  126. if old_level > 0 and old_level < self.level then
  127. self.last_level_time = Time.time
  128. MainUIModel:getInstance():AddUpgradeInfo(self.level)
  129. self:DelayFire(EventName.CHANGE_LEVEL, self.level)
  130. self:Fire(EventName.IMMEDIATE_CHANGE_LEVEL,self.level)
  131. if Config.ConfigHelper.LevelStopList[self.level] then
  132. GuideModel:getInstance():SetNeedFinishGuideFirst(true)
  133. end
  134. --升级UI表现
  135. local data = {type = SceneSpecialTipType.upgrade,}
  136. CommonController.Instance:Fire(EventName.OPEN_SCENESPECIALTIPVIEW,data)
  137. end
  138. end
  139. -- 世界等级
  140. function MainRoleVo:ReadFrom13011()
  141. self.worldLvExp = UserMsgAdapter_ReadFmt("H")
  142. self.worldLv = UserMsgAdapter_ReadFmt("h")
  143. end
  144. function MainRoleVo:SetGuildId(value)
  145. self.guild_id = value
  146. end
  147. function MainRoleVo:SetTeamId(value)
  148. self.teamID = value
  149. end
  150. function MainRoleVo:ChangeFromVo(roleVo)
  151. self:ChangeVar("activity_flags",roleVo.activity_flags, true, true) --活动标志,延迟触发;在其他参数之前,因为在其他参数触发的事件中可能用到
  152. self:ChangeVar("name",roleVo.name)
  153. self:ChangeVar("maxHp",roleVo.maxHp)
  154. self:ChangeVar("hp",roleVo.hp)
  155. self:ChangeVar("move_speed",roleVo.move_speed)
  156. self:ChangeVar("wing_id",roleVo.wing_id)
  157. self:ChangeVar("att_speed",roleVo.att_speed)
  158. self:ChangeVar("hide_flag",roleVo.hide_flag)
  159. self:ChangeVar("ghost_mode",roleVo.ghost_mode)
  160. self:ChangeVar("dance_status",roleVo.dance_status)
  161. self:ChangeVar("team_id",roleVo.team_id)
  162. self:ChangeVar("team_job",roleVo.team_job)
  163. self:ChangeVar("pk_status",roleVo.pk_status)
  164. self:ChangeVar("guild_id",roleVo.guild_id)
  165. self:ChangeVar("is_ride",roleVo.is_ride)
  166. self:ChangeVar("horse_id",roleVo.horse_id)
  167. self:ChangeVar("warGroup",roleVo.warGroup)
  168. self:ChangeVar("flag_state",roleVo.flag_state)
  169. -- self:ChangeVar("fashion_model_list",roleVo.fashion_model_list, nil, true)
  170. self:ChangeVar("battle_title",roleVo.battle_title)
  171. self:ChangeVar("sky_flags",roleVo.sky_flags, nil, true)
  172. self:ChangeVar("state_type",roleVo.state_type)
  173. self:ChangeVar("weapon_effect",roleVo.weapon_effect)
  174. self:ChangeVar("grade_id",roleVo.grade_id)
  175. self:ChangeVar("pokemon_id",roleVo.pokemon_id)
  176. self:ChangeVar("pokemon_star",roleVo.pokemon_star)
  177. self:ChangeVar("pet_status",roleVo.pet_status)
  178. self:ChangeVar("is_marriage",roleVo.is_marriage)
  179. self:ChangeVar("marriage_id",roleVo.marriage_id)
  180. self:ChangeVar("marriage_name",roleVo.marriage_name)
  181. self:ChangeVar("boss_flag",roleVo.boss_flag)
  182. self:ChangeVar("baby_id",roleVo.baby_id)
  183. self:ChangeVar("child_follow_status",roleVo.child_follow_status)
  184. self:ChangeVar("escort_state",roleVo.escort_state)
  185. self:ChangeVar("protect_time",roleVo.protect_time)
  186. self:ChangeVar("career",roleVo.career)
  187. self:ChangeVar("mate_title",roleVo.mate_title)
  188. self:ChangeVar("mate_name",roleVo.mate_name)
  189. self:ChangeVar("mate_lv",roleVo.mate_lv)
  190. --时装只要赋值就好,降神会刷新模型
  191. self.fashion_model_list = roleVo.fashion_model_list
  192. self.foster_skin_list = roleVo.foster_skin_list
  193. self:ChangeVar("god_id",roleVo.god_id,nil,true) --通过降神改变模型
  194. self:ChangeVar("casual_state_flags",roleVo.casual_state_flags,nil,true)
  195. -------------------------
  196. --进阶部分
  197. local sprite_res_id = 0--法宝
  198. local pet_res_id = 0--AI娘
  199. local pet_wing_id = 0--ai娘翅膀
  200. local horse_id = 0--ai娘翅膀
  201. local wing_id = 0
  202. local pet_weapon_id = 0
  203. local pet_farmour = 0
  204. -------------------------
  205. for k,v in pairs(self.foster_skin_list) do
  206. if v.type_id == FosterConst.ModuleId.FWeapon then
  207. --武器的珍宝需要手动折算2次成资源名
  208. v.skin_id = ShapeModel:GetModelRes( v.type_id, v.sub_id, v.star )
  209. if v.skin_id > 0 then
  210. v.skin_id = GameResPath:GetFWeaponResName( self.career,v.skin_id)
  211. end
  212. else
  213. v.skin_id = ShapeModel:GetModelRes( v.type_id, v.sub_id, v.star )
  214. end
  215. end
  216. -------------------------
  217. local function get_foster_skin( type_id )
  218. for k,v in pairs(self.foster_skin_list) do
  219. if v.type_id == type_id and v.skin_id > 0 then
  220. return v.skin_id
  221. end
  222. end
  223. for k,v in pairs(self.foster_sub_skin_list) do
  224. if v.type_id == type_id and v.skin_id > 0 then
  225. return v.skin_id
  226. end
  227. end
  228. end
  229. for k,v in pairs(roleVo.foster_list) do
  230. if v.type_id == FosterConst.ModuleId.FPearl then
  231. sprite_res_id = get_foster_skin(v.type_id) or FosterModel:GetInstance():GetModuleResIdByStage(v.type_id,v.stage_id)
  232. elseif v.type_id == FosterConst.ModuleId.FJarvis then
  233. pet_res_id = get_foster_skin(v.type_id) or FosterModel:GetInstance():GetModuleResIdByStage(v.type_id,v.stage_id)
  234. elseif v.type_id == FosterConst.ModuleId.FCloud then
  235. pet_wing_id = get_foster_skin(v.type_id) or FosterModel:GetInstance():GetModuleResIdByStage(v.type_id,v.stage_id)
  236. elseif v.type_id == FosterConst.ModuleId.FHorse then
  237. horse_id = get_foster_skin(v.type_id) or FosterModel:GetInstance():GetModuleResIdByStage(v.type_id,v.stage_id)
  238. elseif v.type_id == FosterConst.ModuleId.FWing then
  239. wing_id = get_foster_skin(v.type_id) or FosterModel:GetInstance():GetModuleResIdByStage(v.type_id,v.stage_id)
  240. elseif v.type_id == FosterConst.ModuleId.FGun then
  241. pet_weapon_id = get_foster_skin(v.type_id) or FosterModel:GetInstance():GetModuleResIdByStage(v.type_id,v.stage_id)
  242. elseif v.type_id == FosterConst.ModuleId.FArmour then
  243. pet_farmour = get_foster_skin(v.type_id) or FosterModel:GetInstance():GetModuleResIdByStage(v.type_id,v.stage_id)
  244. end
  245. end
  246. self:ChangeVar("sprite_id",sprite_res_id)
  247. self:ChangeVar("pet_id",pet_res_id)
  248. self:ChangeVar("pet_wing_id",pet_wing_id)
  249. self:ChangeVar("horse_id",horse_id)
  250. self:ChangeVar("wing_id",wing_id)
  251. self:ChangeVar("pet_weapon_id",pet_weapon_id)
  252. self:ChangeVar("pet_farmour",pet_farmour)
  253. --进阶部分
  254. -------------------------
  255. local role = Scene.Instance:GetRole(RoleManager.Instance.mainRoleInfo.role_id)
  256. if role then
  257. role:ChangeWeapon( )
  258. end
  259. end
  260. function MainRoleVo:getAttackRange()
  261. local rangerX = 0
  262. local rangerY = 0
  263. if self.career==2 then--如果是逍遥,写死攻击距离
  264. rangerX=5
  265. rangerY=7
  266. else
  267. rangerX=2
  268. rangerY=2
  269. end
  270. return rangerX, rangerY
  271. end
  272. function MainRoleVo:ReadFrom13013()
  273. local fullBodyLen = UserMsgAdapter_ReadFmt("h")
  274. local fullBodyRewardList = {}
  275. local fullBodyVo = nil
  276. for i = 1, fullBodyLen do
  277. fullBodyVo = {}
  278. fullBodyVo.type = UserMsgAdapter_ReadFmt("c")
  279. fullBodyVo.level = UserMsgAdapter_ReadFmt("i")
  280. fullBodyVo.currNum = UserMsgAdapter_ReadFmt("i")
  281. fullBodyVo.nextNum = UserMsgAdapter_ReadFmt("i")
  282. fullBodyRewardList[fullBodyVo.type] = fullBodyVo
  283. end
  284. self.fullBodyRewardList={}
  285. self:ChangeVar("fullBodyRewardList",fullBodyRewardList)
  286. end
  287. --[[
  288. int:32
  289. int:32
  290. int:32
  291. int:32
  292. ]]
  293. function MainRoleVo:ReadFrom13014()
  294. local gangPrestige=UserMsgAdapter_ReadFmt("i")
  295. local charm=UserMsgAdapter_ReadFmt("i")
  296. local fightSc=UserMsgAdapter_ReadFmt("i")
  297. local td_integral=UserMsgAdapter_ReadFmt("i")
  298. self:ChangeVar("gangPrestige",gangPrestige)
  299. self:ChangeVar("charm",charm)
  300. self:ChangeVar("fightSc",fightSc)
  301. self:ChangeVar("td_integral",td_integral)
  302. end
  303. -- 战力改变
  304. function MainRoleVo:changePower()
  305. local changeFight = self.fighting - self.old_fighting
  306. if self.firstChange==true then
  307. GlobalEventSystem:Fire(EventName.CHANGEATT_POWER, changeFight)
  308. end
  309. self.firstChange=true
  310. self.old_fighting = self.fighting
  311. end
  312. function MainRoleVo:GetTotalJin()
  313. return self.jin + self.jinLock
  314. end
  315. function MainRoleVo:GetRealJin()
  316. return self.jin
  317. end
  318. --玩家信息本人更改
  319. function MainRoleVo:ReadFrom13015()
  320. local len = UserMsgAdapter_ReadFmt("h")
  321. for i=1,len do
  322. local type_id = UserMsgAdapter_ReadFmt("c")
  323. local value = UserMsgAdapter_ReadFmt("s")
  324. --类型(1羁绊佩戴)
  325. if type_id == 1 then
  326. self:ChangeVar("mate_title_role_id", value) --使用的羁绊称号角色id
  327. end
  328. end
  329. end
  330. function MainRoleVo:GetGodID( )
  331. return self.god_id or 0
  332. end
  333. --是否正在神灵附身状态
  334. function MainRoleVo:IsGodState( )
  335. return self.god_id and self.god_id ~= 0
  336. end