TradingBankLookPlayerProxy.lua 36 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057
  1. local RemoteProxy = requireProxy("remote/RemoteProxy")
  2. local TradingBankLookPlayerProxy = class("TradingBankLookPlayerProxy", RemoteProxy)
  3. TradingBankLookPlayerProxy.NAME = global.ProxyTable.TradingBankLookPlayerProxy
  4. function TradingBankLookPlayerProxy:ctor()
  5. TradingBankLookPlayerProxy.super.ctor(self)
  6. self:initData()
  7. self.SkillProxy = global.Facade:retrieveProxy(global.ProxyTable.Skill)
  8. end
  9. function TradingBankLookPlayerProxy:initData()
  10. self.lookPlayerData = {}
  11. self.lookPlayerItems = {}
  12. self.fashionData = {}
  13. self.fashionId = {
  14. dress = 4,
  15. weapon = 5
  16. }
  17. self.titleData = {} --称号数据
  18. self._titleActive = nil --激活的称号
  19. self.m_BagItems = {}
  20. self.m_storeItems = {}
  21. self.m_skills = {}
  22. self.m_baseAtr = {}
  23. self.lookPlayerData_Hero = {}
  24. self.lookPlayerItems_Hero = {}
  25. self.fashionData_Hero = {}
  26. self.titleData_Hero = {} --称号数据
  27. self._titleActive_Hero = nil --激活的称号
  28. self.m_BagItems_Hero = {}
  29. self.m_storeItems_Hero = {}
  30. self.m_skills_Hero = {}
  31. self.m_baseAtr_Hero = {}
  32. self.m_hasHeroData = false
  33. self.lookPlayerCustomData = {}
  34. self._func = nil
  35. end
  36. function TradingBankLookPlayerProxy:onRegister()
  37. TradingBankLookPlayerProxy.super.onRegister(self)
  38. end
  39. function TradingBankLookPlayerProxy:getBagItems()
  40. return self.m_BagItems
  41. end
  42. function TradingBankLookPlayerProxy:getBagItems_Hero()
  43. return self.m_BagItems_Hero
  44. end
  45. function TradingBankLookPlayerProxy:getStoreItems()
  46. return self.m_storeItems
  47. end
  48. function TradingBankLookPlayerProxy:handle_MSG_SC_ROLE_INFO_RESPONSE(msg)
  49. local header = msg:GetHeader()
  50. local recog = header.recog
  51. -- self:SetEmbattle(recog)
  52. -- self:SetEmbattle_Hero(recog)
  53. local data = ParseRawMsgToJson(msg)
  54. if recog == 1 then--bag
  55. local bagitems = {}
  56. data = data or {}
  57. for i, v in ipairs(data) do
  58. local vv = ChangeItemServersSendDatas(v)
  59. table.insert(bagitems, vv)
  60. end
  61. self.m_BagItems = bagitems
  62. return
  63. elseif recog == 2 then --storeitems
  64. local storeitems = {}
  65. data = data or {}
  66. for i, v in ipairs(data) do
  67. local vv = ChangeItemServersSendDatas(v)
  68. table.insert(storeitems, vv)
  69. end
  70. self.m_storeItems = storeitems
  71. return
  72. elseif recog == 13 or recog == 14 or recog == 15 then -- 身上/背包/仓库物品自定义属性分批发送
  73. if not data then
  74. return
  75. end
  76. local BagProxy = global.Facade:retrieveProxy(global.ProxyTable.Bag)
  77. BagProxy:SetTradingBankItemParamsBatch(data)
  78. return
  79. end
  80. if not data then
  81. global.Facade:sendNotification(global.NoticeTable.SystemTips, GET_STRING(50000057))
  82. return
  83. end
  84. self._titleActive = data.active
  85. self.m_skills = {}
  86. if data.Magic then
  87. for _, v in ipairs(data.Magic) do
  88. local skill = self:parseOneSkillData(v)
  89. self:AddSkill(skill)
  90. end
  91. end
  92. self:SetLookPlayerItemData(data.Items)
  93. self:SetLookPlayerFashion(data.t_dress, data.t_weapon)
  94. self:SetLookPlayerData(data)
  95. self:SetLookPlayerTitle(data.Titles)
  96. if data.UserState then
  97. self:setBaseAtr(data.UserState)
  98. end
  99. if data.MoneyList then
  100. self:setSellShowMoenyList(data.MoneyList)
  101. end
  102. -------------------------------
  103. if data.HeroData then
  104. self.m_hasHeroData = true
  105. local HeroData = data.HeroData
  106. local herobagitems = {}
  107. local herostoreitems = {}
  108. HeroData.BagItems = HeroData.BagItems or {}
  109. for i, v in ipairs(HeroData.BagItems) do
  110. local vv = ChangeItemServersSendDatas(v)
  111. table.insert(herobagitems, vv)
  112. end
  113. HeroData.StoreItems = HeroData.StoreItems or {}
  114. for i, v in ipairs(HeroData.StoreItems) do
  115. local vv = ChangeItemServersSendDatas(v)
  116. table.insert(herostoreitems, vv)
  117. end
  118. self.m_BagItems_Hero = herobagitems
  119. self.m_storeItems_Hero = herostoreitems
  120. self._titleActive_Hero = HeroData.active
  121. self.m_skills_Hero = {}
  122. if HeroData.Magic then
  123. for _, v in ipairs(HeroData.Magic) do
  124. local skill = self:parseOneSkillData(v)
  125. self:AddSkill_Hero(skill)
  126. end
  127. end
  128. self:SetLookPlayerItemData_Hero(HeroData.Items)
  129. self:SetLookPlayerFashion_Hero(HeroData.t_dress, HeroData.t_weapon)
  130. self:SetLookPlayerData_Hero(HeroData)
  131. self:SetLookPlayerTitle_Hero(HeroData.Titles)
  132. if HeroData.UserState then
  133. self:setBaseAtr(HeroData.UserState, true)
  134. end
  135. end
  136. -------------------------------
  137. -- print("=====查看玩家")
  138. self._isget = true
  139. if self._func then
  140. self._func()
  141. end
  142. end
  143. function TradingBankLookPlayerProxy:haveData()
  144. return self._isget
  145. end
  146. function TradingBankLookPlayerProxy:haveData_Hero()
  147. return self.m_hasHeroData
  148. end
  149. function TradingBankLookPlayerProxy:GetRoleJobName_Hero()
  150. if not self.m_HerobaseAtr then
  151. return GET_STRING(1067 + 0)
  152. end
  153. local job = self.m_HerobaseAtr.job
  154. local name = GET_STRING(1067 + job)
  155. return name
  156. end
  157. function TradingBankLookPlayerProxy:GetRoleJob_Hero()
  158. if not self.m_HerobaseAtr then
  159. return 0
  160. end
  161. return self.m_HerobaseAtr.job or 0
  162. end
  163. function TradingBankLookPlayerProxy:GetRoleReinLv_Hero()
  164. if not self.m_HerobaseAtr then
  165. return 0
  166. end
  167. return self.m_HerobaseAtr.relevel
  168. end
  169. function TradingBankLookPlayerProxy:GetRoleLevel_Hero()
  170. if not self.m_HerobaseAtr then
  171. return 0
  172. end
  173. return self.m_HerobaseAtr.level
  174. end
  175. function TradingBankLookPlayerProxy:GetCurrExp_Hero()
  176. if not self.m_HerobaseAtr then
  177. return 0
  178. end
  179. return self.m_HerobaseAtr.curExp
  180. end
  181. function TradingBankLookPlayerProxy:GetNeedExp_Hero()
  182. if not self.m_HerobaseAtr then
  183. return 0
  184. end
  185. return self.m_HerobaseAtr.needExp
  186. end
  187. function TradingBankLookPlayerProxy:GetSuperExp_Hero()
  188. if not self.m_HerobaseAtr then
  189. return 0
  190. end
  191. return self.m_HerobaseAtr.SuperExp
  192. end
  193. function TradingBankLookPlayerProxy:GetRoleCurrHP_Hero()
  194. return self:GetRoleAttByAttType_Hero(GUIFunction:PShowAttType().HP)
  195. end
  196. function TradingBankLookPlayerProxy:GetRoleMaxHP_Hero()
  197. if not self.m_HerobaseAtr then
  198. return 0
  199. end
  200. return self.m_HerobaseAtr.maxHP or 1
  201. end
  202. function TradingBankLookPlayerProxy:GetRoleCurrMP_Hero()
  203. return self:GetRoleAttByAttType_Hero(GUIFunction:PShowAttType().MP)
  204. end
  205. function TradingBankLookPlayerProxy:GetRoleMaxMP_Hero()
  206. if not self.m_HerobaseAtr then
  207. return 0
  208. end
  209. return self.m_HerobaseAtr.maxHP or 1
  210. end
  211. function TradingBankLookPlayerProxy:GetVariableInfo_Hero()
  212. if not self.m_HerobaseAtr then
  213. return 0
  214. end
  215. return self.m_HerobaseAtr.variableInfo
  216. end
  217. function TradingBankLookPlayerProxy:GetRoleAttByAttType_Hero(attid)
  218. if not self.m_HerobaseAtr then
  219. return 0
  220. end
  221. local data = self.m_HerobaseAtr.attdata or {}
  222. if data[attid] then
  223. return data[attid]
  224. end
  225. return 0
  226. end
  227. function TradingBankLookPlayerProxy:GetRoleJobName()
  228. local job = self.m_baseAtr.job or 0
  229. local name = GetJobName(job)
  230. return name
  231. end
  232. function TradingBankLookPlayerProxy:GetRoleJob()
  233. return self.m_baseAtr.job or 0
  234. end
  235. function TradingBankLookPlayerProxy:GetRoleReinLv()
  236. return self.m_baseAtr.relevel
  237. end
  238. function TradingBankLookPlayerProxy:GetRoleLevel()
  239. return self.m_baseAtr.level
  240. end
  241. function TradingBankLookPlayerProxy:GetCurrExp()
  242. return self.m_baseAtr.curExp
  243. end
  244. function TradingBankLookPlayerProxy:GetNeedExp()
  245. return self.m_baseAtr.needExp
  246. end
  247. function TradingBankLookPlayerProxy:GetRoleCurrHP()
  248. return self:GetRoleAttByAttType(GUIFunction:PShowAttType().HP)
  249. end
  250. function TradingBankLookPlayerProxy:GetRoleMaxHP()
  251. return self.m_baseAtr.maxHP or 1
  252. end
  253. function TradingBankLookPlayerProxy:GetRoleCurrMP()
  254. return self:GetRoleAttByAttType(GUIFunction:PShowAttType().MP)
  255. end
  256. function TradingBankLookPlayerProxy:GetRoleMaxMP()
  257. return self.m_baseAtr.maxHP or 1
  258. end
  259. function TradingBankLookPlayerProxy:GetVariableInfo()
  260. return self.m_baseAtr.variableInfo
  261. end
  262. function TradingBankLookPlayerProxy:GetRoleAttByAttType(attid)
  263. local data = self.m_baseAtr.attdata or {}
  264. if data[attid] then
  265. return data[attid]
  266. end
  267. return 0
  268. end
  269. function TradingBankLookPlayerProxy:setSellShowMoenyList(data)
  270. self._showMoneyList = data
  271. end
  272. function TradingBankLookPlayerProxy:getSellShowMoenyList()
  273. return self._showMoneyList
  274. end
  275. function TradingBankLookPlayerProxy:setBaseAtr(data, isHero)
  276. local maxHP = data.maxhp
  277. local maxMP = data.maxmp
  278. local curExp = data.exp
  279. local curHP = data.hp
  280. local curMP = data.mp
  281. local sex = data.sex
  282. local variableInfo = data.InfoEx
  283. -- Sample.yb = head.param2
  284. local Sample = {}
  285. if isHero then
  286. self.m_HerobaseAtr = {}
  287. Sample = self.m_HerobaseAtr
  288. else
  289. self.m_baseAtr = {}
  290. Sample = self.m_baseAtr
  291. end
  292. Sample.maxMP = maxMP
  293. Sample.curMP = curMP
  294. Sample.maxHP = maxHP
  295. Sample.curHP = curHP
  296. Sample.curExp = curExp
  297. Sample.MaxSuperExp = data.MaxSuperExp
  298. Sample.SuperExp = data.SuperExp
  299. Sample.variableInfo = variableInfo
  300. Sample.job = data.job
  301. Sample.sex = data.sex
  302. Sample.level = data.level
  303. Sample.needExp = data.maxexp
  304. Sample.relevel = data.relevel
  305. local PShowAttType = GUIFunction:PShowAttType()
  306. Sample.attdata = {}
  307. Sample.attdata[PShowAttType.Min_DEF] = data.ac1 --物防
  308. Sample.attdata[PShowAttType.Max_DEF] = data.ac2 --
  309. Sample.attdata[PShowAttType.Min_MDF] = data.mac1 --魔防
  310. Sample.attdata[PShowAttType.Max_MDF] = data.mac2
  311. Sample.attdata[PShowAttType.Min_ATK] = data.dc1 --物理
  312. Sample.attdata[PShowAttType.Max_ATK] = data.dc2
  313. Sample.attdata[PShowAttType.Min_MAT] = data.mc1 --魔法
  314. Sample.attdata[PShowAttType.Max_MAT] = data.mc2
  315. Sample.attdata[PShowAttType.Min_Daoshu] = data.sc1 --道术
  316. Sample.attdata[PShowAttType.Max_Daoshu] = data.sc2
  317. Sample.attdata[PShowAttType.HP] = curHP --生命
  318. Sample.attdata[PShowAttType.MP] = curMP --魔法
  319. Sample.attdata[PShowAttType.Weight] = data.weight--当前重量
  320. Sample.attdata[PShowAttType.Max_Weight] = data.maxweight--玩家最大负重
  321. Sample.attdata[PShowAttType.Wear_Weight] = data.wearweight--穿戴负重
  322. Sample.attdata[PShowAttType.Max_Wear_Weight] = data.maxwearweight--最大穿戴负重
  323. Sample.attdata[PShowAttType.Hand_Weight] = data.handweight--腕力
  324. Sample.attdata[PShowAttType.Max_Hand_Weight] = data.maxhandweight--当前最大可穿戴腕力
  325. Sample.attdata[PShowAttType.Anti_Magic] = data.antimagic
  326. Sample.attdata[PShowAttType.Hit_Point] = data.hitPoint
  327. Sample.attdata[PShowAttType.Speed_Point] = data.SpeedPoint
  328. Sample.attdata[PShowAttType.Anti_Posion] = data.AntiPosion
  329. Sample.attdata[PShowAttType.Posion_Recover] = data.PosionRecover
  330. Sample.attdata[PShowAttType.Health_Recover] = data.HealthRecover
  331. Sample.attdata[PShowAttType.Spell_Recover] = data.SpellRecover
  332. Sample.attdata[PShowAttType.Hit_Speed] = data.HitSpeed
  333. Sample.attdata[PShowAttType.Block_Rate] = data.GedangRate
  334. Sample.attdata[PShowAttType.Block_Value] = data.GedangPower
  335. Sample.attdata[PShowAttType.Double_Rate] = data.BjRate
  336. Sample.attdata[PShowAttType.Double_Damage] = data.BjPoint
  337. Sample.attdata[PShowAttType.Defence] = data.Abil23
  338. Sample.attdata[PShowAttType.Double_Defence] = data.Abil24
  339. Sample.attdata[PShowAttType.More_Damage] = data.Abil25
  340. Sample.attdata[PShowAttType.ATK_Defence] = data.Abil26
  341. Sample.attdata[PShowAttType.MAT_Defence] = data.Abil27
  342. Sample.attdata[PShowAttType.Ignore_Defence] = data.Abil28
  343. Sample.attdata[PShowAttType.Bounce_Damage] = data.Abil29
  344. Sample.attdata[PShowAttType.Health_Add] = data.Abil30
  345. Sample.attdata[PShowAttType.Magice_Add] = data.Abil31
  346. Sample.attdata[PShowAttType.More_Item] = data.Abil32
  347. Sample.attdata[PShowAttType.Less_Item] = data.Abil33
  348. Sample.attdata[PShowAttType.Vampire] = data.Abil34
  349. Sample.attdata[PShowAttType.A_M_D_Add] = data.Abil35
  350. Sample.attdata[PShowAttType.Defence_Add] = data.Abil36
  351. Sample.attdata[PShowAttType.MDefence_Add] = data.Abil37
  352. Sample.attdata[PShowAttType.God_Damage] = data.Abil38
  353. Sample.attdata[PShowAttType.Lucky] = data.Abil39
  354. Sample.attdata[PShowAttType.Monster_Damage_Value] = data.Abil40
  355. Sample.attdata[PShowAttType.Monster_Damage_Per] = data.Abil41
  356. Sample.attdata[PShowAttType.Anger_Recover] = data.Abil42
  357. Sample.attdata[PShowAttType.Combine_Skill_Damage] = data.Abil43
  358. Sample.attdata[PShowAttType.Monster_DropItem] = data.Abil44
  359. Sample.attdata[PShowAttType.No_Palsy] = data.Abil45
  360. Sample.attdata[PShowAttType.No_Protect] = data.Abil46
  361. Sample.attdata[PShowAttType.No_Rebirth] = data.Abil47
  362. Sample.attdata[PShowAttType.No_ALL] = data.Abil48
  363. Sample.attdata[PShowAttType.No_Charm] = data.Abil49
  364. Sample.attdata[PShowAttType.No_Fire] = data.Abil50
  365. Sample.attdata[PShowAttType.No_Ice] = data.Abil51
  366. Sample.attdata[PShowAttType.No_Web] = data.Abil52
  367. Sample.attdata[PShowAttType.Att_UnKonw] = data.Abil53
  368. Sample.attdata[PShowAttType.More_A_Damage] = data.Abil54
  369. Sample.attdata[PShowAttType.Less_A_Damage] = data.Abil55
  370. Sample.attdata[PShowAttType.More_M_Damage] = data.Abil56
  371. Sample.attdata[PShowAttType.Less_M_Damage] = data.Abil57
  372. Sample.attdata[PShowAttType.More_D_Damage] = data.Abil58
  373. Sample.attdata[PShowAttType.Less_D_Damage] = data.Abil59
  374. Sample.attdata[PShowAttType.More_Health_Per] = data.Abil60
  375. Sample.attdata[PShowAttType.HP_Recover] = data.Abil61
  376. Sample.attdata[PShowAttType.MP_Recover] = data.Abil62
  377. -- Sample.attdata[PShowAttType.Block_Rate] = data.Abil63
  378. -- Sample.attdata[PShowAttType.Block_Value] = data.Abil64
  379. Sample.attdata[PShowAttType.Drop_Rate] = data.Abil65
  380. Sample.attdata[PShowAttType.Exp_Add_Rate] = data.Abil66
  381. Sample.attdata[PShowAttType.Damage_Rate_Add] = data.Abil67
  382. Sample.attdata[PShowAttType.Damage_Human] = data.Abil68
  383. Sample.attdata[PShowAttType.Ice_Rate] = data.Abil69
  384. Sample.attdata[PShowAttType.Defen_Ice] = data.Abil70
  385. -- body
  386. end
  387. -- 技能数据
  388. function TradingBankLookPlayerProxy:GetSkills_Hero(noBasicSkill, activeOnly)
  389. -- 已有技能数据 param1:是否排除普攻 param2:是否只获取主动技能
  390. local skills = {}
  391. for _, v in pairs(self.m_skills_Hero) do
  392. local config = self.SkillProxy:FindConfigBySkillID(v.MagicID)
  393. if (noBasicSkill and v.MagicID == global.MMO.SKILL_INDEX_BASIC) then
  394. elseif activeOnly and false == self:IsActiveSkill_Hero(v.MagicID) then
  395. else
  396. skills[v.MagicID] = v
  397. end
  398. end
  399. return skills
  400. end
  401. -- 主动技能
  402. function TradingBankLookPlayerProxy:IsActiveSkill_Hero(skillID)
  403. local config = self.SkillProxy:FindConfigBySkillID(skillID)
  404. if not config then
  405. return false
  406. end
  407. return config.type == 1
  408. end
  409. function TradingBankLookPlayerProxy:GetSkillByID_Hero(skillID)
  410. -- 获取技能数据
  411. return self.m_skills_Hero[skillID]
  412. end
  413. function TradingBankLookPlayerProxy:GetSkillTrainData_Hero(skillID)
  414. -- 技能等级>3的全部特殊处理下
  415. local maxStr = "-"
  416. if not skillID or not self.m_skills_Hero[skillID] then
  417. return maxStr
  418. end
  419. if skillID == global.MMO.SKILL_INDEX_BASIC then
  420. return maxStr
  421. end
  422. local skillData = self.m_skills_Hero[skillID]
  423. local isBaseSkill = skillData.Level <= 3
  424. local skillLevel = skillData.Level
  425. local maxSkillLevel = skillData.TrainLv
  426. if isBaseSkill and skillLevel >= maxSkillLevel then
  427. return maxStr
  428. end
  429. local skillMaxTrain = {
  430. [0] = skillData.MaxTrain1,
  431. [1] = skillData.MaxTrain2,
  432. [2] = skillData.MaxTrain3,
  433. [3] = skillData.MaxTrain4
  434. }
  435. local curTrain = skillData.CurTrain or 0
  436. local maxTrain = (isBaseSkill and skillMaxTrain[skillLevel] or skillData.MaxTrain1) or 0
  437. local str = curTrain >= maxTrain and maxStr or string.format(GET_STRING(1053), curTrain, maxTrain)
  438. return str
  439. end
  440. -- 获取技能Icon 矩形
  441. function TradingBankLookPlayerProxy:GetIconRectPathByID_Hero(skillID)
  442. local config = self.SkillProxy:FindConfigBySkillID(skillID)
  443. if not config then
  444. return string.format("%s%s.jpg", global.MMO.PATH_RES_SKILL_ICON, "default")
  445. end
  446. local data = self:GetSkillByID_Hero(skillID)
  447. if not data or not data.LevelUpIcon or data.LevelUpIcon <= 0 then
  448. return string.format("%s%s.jpg", global.MMO.PATH_RES_SKILL_ICON, config.icon)
  449. end
  450. return string.format("%s%s_%s.jpg", global.MMO.PATH_RES_SKILL_ICON, config.icon, data.LevelUpIcon)
  451. end
  452. function TradingBankLookPlayerProxy:parseOneSkillData_Hero(data)
  453. data.id = data.MagicID
  454. data.DelayTime = data.DelayTime or 0
  455. -- extension
  456. data.isCD = false
  457. data.curTime = 0
  458. return data
  459. end
  460. function TradingBankLookPlayerProxy:AddSkill_Hero(data)
  461. --增加技能
  462. -- dump(data)
  463. if not data then
  464. return false
  465. end
  466. if self.m_skills_Hero[data.MagicID] then
  467. return false
  468. end
  469. if not self.SkillProxy:FindConfigBySkillID(data.MagicID) then
  470. print("add skill error, skill config is nil " .. data.MagicID)
  471. return false
  472. end
  473. -- 增加技能
  474. self.m_skills_Hero[data.MagicID] = data
  475. end
  476. -- 技能数据
  477. function TradingBankLookPlayerProxy:GetSkills(noBasicSkill, activeOnly)
  478. -- 已有技能数据 param1:是否排除普攻 param2:是否只获取主动技能
  479. local skills = {}
  480. for _, v in pairs(self.m_skills) do
  481. local config = self.SkillProxy:FindConfigBySkillID(v.MagicID)
  482. if (noBasicSkill and v.MagicID == global.MMO.SKILL_INDEX_BASIC) then
  483. elseif activeOnly and false == self:IsActiveSkill(v.MagicID) then
  484. else
  485. skills[v.MagicID] = v
  486. end
  487. end
  488. return skills
  489. end
  490. -- 主动技能
  491. function TradingBankLookPlayerProxy:IsActiveSkill(skillID)
  492. local config = self.SkillProxy:FindConfigBySkillID(skillID)
  493. if not config then
  494. return false
  495. end
  496. return config.type == 1
  497. end
  498. function TradingBankLookPlayerProxy:GetSkillByID(skillID)
  499. -- 获取技能数据
  500. return self.m_skills[skillID]
  501. end
  502. function TradingBankLookPlayerProxy:GetSkillTrainData(skillID)
  503. -- 技能等级>3的全部特殊处理下
  504. local maxStr = "-"
  505. if not skillID or not self.m_skills[skillID] then
  506. return maxStr
  507. end
  508. if skillID == global.MMO.SKILL_INDEX_BASIC then
  509. return maxStr
  510. end
  511. local skillData = self.m_skills[skillID]
  512. local isBaseSkill = skillData.Level <= 3
  513. local skillLevel = skillData.Level
  514. local maxSkillLevel = skillData.TrainLv
  515. if isBaseSkill and skillLevel >= maxSkillLevel then
  516. return maxStr
  517. end
  518. local skillMaxTrain = {
  519. [0] = skillData.MaxTrain1,
  520. [1] = skillData.MaxTrain2,
  521. [2] = skillData.MaxTrain3,
  522. [3] = skillData.MaxTrain4
  523. }
  524. local curTrain = skillData.CurTrain or 0
  525. local maxTrain = (isBaseSkill and skillMaxTrain[skillLevel] or skillData.MaxTrain1) or 0
  526. local str = curTrain >= maxTrain and maxStr or string.format(GET_STRING(1053), curTrain, maxTrain)
  527. return str
  528. end
  529. -- 获取技能Icon 矩形
  530. function TradingBankLookPlayerProxy:GetIconRectPathByID(skillID)
  531. local config = self.SkillProxy:FindConfigBySkillID(skillID)
  532. if not config then
  533. return string.format("%s%s.jpg", global.MMO.PATH_RES_SKILL_ICON, "default")
  534. end
  535. local data = self:GetSkillByID(skillID)
  536. if not data or not data.LevelUpIcon or data.LevelUpIcon <= 0 then
  537. return string.format("%s%s.jpg", global.MMO.PATH_RES_SKILL_ICON, config.icon)
  538. end
  539. return string.format("%s%s_%s.jpg", global.MMO.PATH_RES_SKILL_ICON, config.icon, data.LevelUpIcon)
  540. end
  541. function TradingBankLookPlayerProxy:parseOneSkillData(data)
  542. data.id = data.MagicID
  543. data.DelayTime = data.DelayTime or 0
  544. -- extension
  545. data.isCD = false
  546. data.curTime = 0
  547. return data
  548. end
  549. function TradingBankLookPlayerProxy:AddSkill(data)
  550. --增加技能
  551. -- dump(data)
  552. if not data then
  553. return false
  554. end
  555. if self.m_skills[data.MagicID] then
  556. return false
  557. end
  558. if not self.SkillProxy:FindConfigBySkillID(data.MagicID) then
  559. print("add skill error, skill config is nil " .. data.MagicID)
  560. return false
  561. end
  562. -- 增加技能
  563. self.m_skills[data.MagicID] = data
  564. end
  565. function TradingBankLookPlayerProxy:DelSkill_Hero(skillID)
  566. --删除技能
  567. if not skillID then
  568. return false
  569. end
  570. if not self.m_skills_Hero[skillID] then
  571. return false
  572. end
  573. -- 删除技能
  574. local data = self.m_skills_Hero[skillID]
  575. self.m_skills_Hero[skillID] = nil
  576. end
  577. function TradingBankLookPlayerProxy:DelSkill(skillID)
  578. --删除技能
  579. if not skillID then
  580. return false
  581. end
  582. if not self.m_skills[skillID] then
  583. return false
  584. end
  585. -- 删除技能
  586. local data = self.m_skills[skillID]
  587. self.m_skills[skillID] = nil
  588. end
  589. function TradingBankLookPlayerProxy:SetLookPlayerTitle_Hero(data)
  590. self._titleData_Hero = {}
  591. if data and next(data) then
  592. for i, v in pairs(data) do
  593. local id = v[1]
  594. local time = v[2]
  595. local data = { id = id, time = time, index = i }
  596. self._titleData_Hero[i] = data
  597. end
  598. end
  599. end
  600. function TradingBankLookPlayerProxy:GetLookPlayerTitle_Hero()
  601. return self._titleData_Hero
  602. end
  603. function TradingBankLookPlayerProxy:GetLookPlayerTitleActive_Hero()
  604. return self._titleActive_Hero
  605. end
  606. function TradingBankLookPlayerProxy:SetLookPlayerTitle(data)
  607. self._titleData = {}
  608. if data and next(data) then
  609. for i, v in pairs(data) do
  610. local id = v[1]
  611. local time = v[2]
  612. local data = { id = id, time = time, index = i }
  613. self._titleData[i] = data
  614. end
  615. end
  616. end
  617. function TradingBankLookPlayerProxy:GetLookPlayerTitle()
  618. return self._titleData
  619. end
  620. function TradingBankLookPlayerProxy:GetLookPlayerTitleActive()
  621. return self._titleActive
  622. end
  623. function TradingBankLookPlayerProxy:SetLookPlayerFashion_Hero(dress, weapon)
  624. self.fashionData_Hero[self.fashionId.dress + 10000] = dress
  625. self.fashionData_Hero[self.fashionId.weapon + 10000] = weapon
  626. end
  627. function TradingBankLookPlayerProxy:GetLookPlayerFashionLooks_Hero(fashionId)
  628. local itemId = self.fashionData_Hero[fashionId]
  629. local show = {
  630. look = nil,
  631. effect = nil
  632. }
  633. if not itemId then
  634. return show
  635. end
  636. local ItemConfigProxy = global.Facade:retrieveProxy(global.ProxyTable.ItemConfigProxy)
  637. local itemData = ItemConfigProxy:GetItemDataByIndex(itemId)
  638. if not itemData then
  639. return show
  640. end
  641. if itemData and itemData.Looks then
  642. show.look = itemData.Looks
  643. end
  644. if itemData and itemData.sEffect then
  645. show.effect = itemData.sEffect
  646. end
  647. return show
  648. end
  649. function TradingBankLookPlayerProxy:SetLookPlayerFashion(dress, weapon)
  650. self.fashionData[self.fashionId.dress + 10000] = dress
  651. self.fashionData[self.fashionId.weapon + 10000] = weapon
  652. end
  653. function TradingBankLookPlayerProxy:GetLookPlayerFashionLooks(fashionId)
  654. local itemId = self.fashionData[fashionId]
  655. local show = {
  656. look = nil,
  657. effect = nil
  658. }
  659. if not itemId then
  660. return show
  661. end
  662. local ItemConfigProxy = global.Facade:retrieveProxy(global.ProxyTable.ItemConfigProxy)
  663. local itemData = ItemConfigProxy:GetItemDataByIndex(itemId)
  664. if not itemData then
  665. return show
  666. end
  667. if itemData and itemData.Looks then
  668. show.look = itemData.Looks
  669. end
  670. if itemData and itemData.sEffect then
  671. show.effect = itemData.sEffect
  672. end
  673. return show
  674. end
  675. function TradingBankLookPlayerProxy:SetLookPlayerItemData_Hero(Items)
  676. if not Items or not next(Items) then
  677. return
  678. end
  679. for k, v in pairs(Items) do
  680. local itemData = ChangeItemServersSendDatas(v)
  681. self.lookPlayerItems_Hero[itemData.Where] = itemData
  682. end
  683. end
  684. function TradingBankLookPlayerProxy:GetLookPlayerItemDataByPos_Hero(pos, beginOnMoving)
  685. local EquipProxy = global.Facade:retrieveProxy(global.ProxyTable.Equip)
  686. local data = self.lookPlayerItems_Hero[pos]
  687. local list = EquipProxy:GetEquipMappingConfig(pos) -- 单显示位置 多个装备位置共享
  688. if beginOnMoving and list then
  689. data = nil
  690. for _, v in ipairs(list) do
  691. data = self.lookPlayerItems_Hero[v]
  692. if data then
  693. break
  694. end
  695. end
  696. end
  697. return data
  698. end
  699. function TradingBankLookPlayerProxy:GetEquipDataByName_Hero(Name)
  700. local list = {}
  701. local data = self:GetLookPlayerItemPosData_Hero()
  702. if not Name or Name == "" or not data or next(data) == nil then
  703. return list
  704. end
  705. for k, v in pairs(data) do
  706. if v.Name == Name then
  707. table.insert(list, v)
  708. end
  709. end
  710. return list
  711. end
  712. function TradingBankLookPlayerProxy:GetLookPlayerItemDataList_Hero(pos)
  713. local EquipProxy = global.Facade:retrieveProxy(global.ProxyTable.Equip)
  714. local data = {}
  715. local list = EquipProxy:GetEquipMappingConfig(pos) -- 单显示位置 多个装备位置共享
  716. if list then
  717. for _, v in ipairs(list) do
  718. local equipData = self.lookPlayerItems_Hero[v]
  719. if equipData then
  720. table.insert(data, equipData)
  721. end
  722. end
  723. else
  724. if self.lookPlayerItems_Hero[pos] then
  725. table.insert(data, self.lookPlayerItems_Hero[pos])
  726. end
  727. end
  728. if next(data) == nil then
  729. data = nil
  730. end
  731. return data
  732. end
  733. function TradingBankLookPlayerProxy:GetLookPlayerItemDataByMakeIndex_Hero(MakeIndex)
  734. for k, v in pairs(self.lookPlayerItems_Hero) do
  735. if v.MakeIndex and v.MakeIndex == MakeIndex then
  736. return v
  737. end
  738. end
  739. return nil
  740. end
  741. function TradingBankLookPlayerProxy:GetLookPlayerItemPosData_Hero()
  742. return self.lookPlayerItems_Hero
  743. end
  744. function TradingBankLookPlayerProxy:SetLookPlayerData_Hero(data)
  745. self.lookPlayerData_Hero.Job = data.Job
  746. self.lookPlayerData_Hero.Name = data.Name
  747. self.lookPlayerData_Hero.Sex = data.Sex
  748. self.lookPlayerData_Hero.Hair = data.Hair
  749. self.lookPlayerData_Hero.Color = data.Color
  750. self.lookPlayerData_Hero.GuildName = data.GuildName or ""
  751. self.lookPlayerData_Hero.RankName = data.RankName or ""
  752. self.lookPlayerData_Hero.SndaItemBoxOpened = data.SndaItemBoxOpened
  753. end
  754. function TradingBankLookPlayerProxy:SetLookPlayerItemData(Items)
  755. if not Items or not next(Items) then
  756. return
  757. end
  758. for k, v in pairs(Items) do
  759. local itemData = ChangeItemServersSendDatas(v)
  760. self.lookPlayerItems[itemData.Where] = itemData
  761. end
  762. end
  763. function TradingBankLookPlayerProxy:GetLookPlayerItemDataByPos(pos, beginOnMoving)
  764. local EquipProxy = global.Facade:retrieveProxy(global.ProxyTable.Equip)
  765. local data = self.lookPlayerItems[pos]
  766. local list = EquipProxy:GetEquipMappingConfig(pos) -- 单显示位置 多个装备位置共享
  767. if beginOnMoving and list then
  768. data = nil
  769. for _, v in ipairs(list) do
  770. data = self.lookPlayerItems[v]
  771. if data then
  772. break
  773. end
  774. end
  775. end
  776. return data
  777. end
  778. function TradingBankLookPlayerProxy:GetEquipDataByName(Name)
  779. local list = {}
  780. local data = self:GetLookPlayerItemPosData()
  781. if not Name or Name == "" or not data or next(data) == nil then
  782. return list
  783. end
  784. for k, v in pairs(data) do
  785. if v.Name == Name then
  786. table.insert(list, v)
  787. end
  788. end
  789. return list
  790. end
  791. function TradingBankLookPlayerProxy:GetLookPlayerItemDataList(pos)
  792. local EquipProxy = global.Facade:retrieveProxy(global.ProxyTable.Equip)
  793. local data = {}
  794. local list = EquipProxy:GetEquipMappingConfig(pos) -- 单显示位置 多个装备位置共享
  795. if list then
  796. for _, v in ipairs(list) do
  797. local equipData = self.lookPlayerItems[v]
  798. if equipData then
  799. table.insert(data, equipData)
  800. end
  801. end
  802. else
  803. if self.lookPlayerItems[pos] then
  804. table.insert(data, self.lookPlayerItems[pos])
  805. end
  806. end
  807. if next(data) == nil then
  808. data = nil
  809. end
  810. return data
  811. end
  812. function TradingBankLookPlayerProxy:GetLookPlayerItemDataByMakeIndex(MakeIndex)
  813. for k, v in pairs(self.lookPlayerItems) do
  814. if v.MakeIndex and v.MakeIndex == MakeIndex then
  815. return v
  816. end
  817. end
  818. return nil
  819. end
  820. function TradingBankLookPlayerProxy:GetLookPlayerItemPosData()
  821. return self.lookPlayerItems
  822. end
  823. function TradingBankLookPlayerProxy:SetLookPlayerData(data)
  824. self.lookPlayerData.Job = data.Job
  825. self.lookPlayerData.Name = data.Name
  826. self.lookPlayerData.Sex = data.Sex
  827. self.lookPlayerData.Hair = data.Hair
  828. self.lookPlayerData.Color = data.Color
  829. self.lookPlayerData.GuildName = data.GuildName or ""
  830. self.lookPlayerData.RankName = data.RankName or ""
  831. self.lookPlayerData.SndaItemBoxOpened = data.SndaItemBoxOpened
  832. end
  833. function TradingBankLookPlayerProxy:GetLookPlayerName()
  834. return self.lookPlayerData.Name
  835. end
  836. function TradingBankLookPlayerProxy:GetLookPlayerSex()
  837. return self.lookPlayerData.Sex
  838. end
  839. function TradingBankLookPlayerProxy:GetLookPlayerHair()
  840. return self.lookPlayerData.Hair
  841. end
  842. function TradingBankLookPlayerProxy:GetLookPlayerNameColor()
  843. return self.lookPlayerData.Color
  844. end
  845. function TradingBankLookPlayerProxy:GetLookPlayerGuildName()
  846. return self.lookPlayerData.GuildName or ""
  847. end
  848. function TradingBankLookPlayerProxy:GetLookPlayerGuildRankName()
  849. return self.lookPlayerData.RankName or ""
  850. end
  851. function TradingBankLookPlayerProxy:GetBestRingsOpenState()
  852. return self.lookPlayerData.SndaItemBoxOpened
  853. end
  854. function TradingBankLookPlayerProxy:GetLookPlayerUid()
  855. return self.playerUid
  856. end
  857. function TradingBankLookPlayerProxy:SetEmbattle_Hero(data)
  858. self.embattle_Hero = {}
  859. if data and data ~= 0 then
  860. self.embattle_Hero[1] = H16Bit(data)
  861. self.embattle_Hero[2] = L16Bit(data)
  862. end
  863. end
  864. function TradingBankLookPlayerProxy:GetEmbattle_Hero()
  865. return self.embattle_Hero
  866. end
  867. function TradingBankLookPlayerProxy:GetLookPlayerName_Hero()
  868. return self.lookPlayerData_Hero.Name
  869. end
  870. function TradingBankLookPlayerProxy:GetLookPlayerSex_Hero()
  871. return self.lookPlayerData_Hero.Sex
  872. end
  873. function TradingBankLookPlayerProxy:GetLookPlayerHair_Hero()
  874. return self.lookPlayerData_Hero.Hair
  875. end
  876. function TradingBankLookPlayerProxy:GetLookPlayerNameColor_Hero()
  877. return self.lookPlayerData_Hero.Color
  878. end
  879. function TradingBankLookPlayerProxy:GetLookPlayerGuildName_Hero()
  880. return self.lookPlayerData_Hero.GuildName or ""
  881. end
  882. function TradingBankLookPlayerProxy:GetLookPlayerGuildRankName_Hero()
  883. return self.lookPlayerData_Hero.RankName or ""
  884. end
  885. function TradingBankLookPlayerProxy:GetBestRingsOpenState_Hero()
  886. return self.lookPlayerData_Hero.SndaItemBoxOpened
  887. end
  888. function TradingBankLookPlayerProxy:GetLookPlayerUid_Hero()
  889. return self.playerUid
  890. end
  891. function TradingBankLookPlayerProxy:GetLookPlayerCustomAtt()
  892. return self.lookPlayerCustomData
  893. end
  894. --请求通知脚本查看uid的珍宝
  895. function TradingBankLookPlayerProxy:RequestLookZhenBao_Hero(uid)
  896. if uid then
  897. LuaSendMsg(global.MsgType.MSG_CS_SCRIPT_ZHENBAO, 0, 0, 0, 0, uid, string.len(uid))
  898. end
  899. end
  900. --请求通知脚本查看uid的珍宝
  901. function TradingBankLookPlayerProxy:RequestLookZhenBao(uid)
  902. if uid then
  903. LuaSendMsg(global.MsgType.MSG_CS_SCRIPT_ZHENBAO, 0, 0, 0, 0, uid, string.len(uid))
  904. end
  905. end
  906. function TradingBankLookPlayerProxy:RequestPlayerData(Uid, func)
  907. dump(Uid, "uid____")
  908. self:initData()
  909. self._func = func
  910. global.Facade:sendNotification(global.NoticeTable.Layer_TradingBank_Look_Player_Close, { id = global.LayerTable.PlayerLayer })
  911. self.lookPlayerData = {}
  912. self.lookPlayerItems = {}
  913. self.fashionData = {}
  914. self.playerUid = Uid
  915. self.isget = false
  916. local HeroPropertyProxy = global.Facade:retrieveProxy(global.ProxyTable.HeroPropertyProxy)
  917. if HeroPropertyProxy:IsHeroOpen() then
  918. LuaSendMsg(global.MsgType.MSG_CM_GETPLAYERINFO, 1, 0, 0, 0, Uid, string.len(Uid))
  919. else
  920. LuaSendMsg(global.MsgType.MSG_CM_GETPLAYERINFO, 0, 0, 0, 0, Uid, string.len(Uid))
  921. end
  922. end
  923. function TradingBankLookPlayerProxy:handle_MSG_SC_SEND_BOX_SELL_CUST_RESPONSE(msg)
  924. local header = msg:GetHeader()
  925. local recog = header.recog
  926. local data = msg:GetData()
  927. local len = msg:GetDataLength()
  928. local sliceStr = data:ReadString(len)
  929. if recog and sliceStr then
  930. --table.insert(self.lookPlayerCustomData,{index = recog, str = "测试1\测试2\测试3"})
  931. --table.insert(self.lookPlayerCustomData,{index = recog, str = "<Text|id=5|text=助手阿姸|x=30|y=20|size=18|color=1005>"})
  932. table.insert(self.lookPlayerCustomData,{index = recog, str = sliceStr})
  933. end
  934. end
  935. function TradingBankLookPlayerProxy:RegisterMsgHandler()
  936. TradingBankLookPlayerProxy.super.RegisterMsgHandler(self)
  937. local msgType = global.MsgType
  938. --预请求查看数据
  939. LuaRegisterMsgHandler(msgType.MSG_SC_GETPLAYERINFO, handler(self, self.handle_MSG_SC_ROLE_INFO_RESPONSE))
  940. --试玩gm下发自定义内容
  941. LuaRegisterMsgHandler(msgType.MSG_SC_SERVER_SEND_BOX_SELL_CUST, handler(self, self.handle_MSG_SC_SEND_BOX_SELL_CUST_RESPONSE))
  942. end
  943. return TradingBankLookPlayerProxy