HonorJourney.lua 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137
  1. local Lang = require("common.Lang")
  2. local Util = require("common.Util")
  3. local Msg = require("core.Msg")
  4. local ObjHuman = require("core.ObjHuman")
  5. local DailyTaskExcel = require("excel.HonorJourney")
  6. local BagLogic = require("bag.BagLogic")
  7. local Grid = require("bag.Grid")
  8. local ChatPaoMaLogic = require("chat.ChatPaoMaLogic")
  9. local RoleSystemLogic = require("roleSystem.RoleSystemLogic")
  10. local RoleSystemDefine = require("roleSystem.RoleSystemDefine")
  11. local ItemDefine = require("bag.ItemDefine")
  12. local ChengjiuLogic = require("chengjiu.ChengjiuLogic")
  13. local ChengjiuDefine = require("chengjiu.ChengjiuDefine")
  14. local YunYingLogic = require("yunying.YunYingLogic")
  15. local HonorJourneyExcel = require("excel.HonorJourney")
  16. local CommonDefine = require("common.CommonDefine")
  17. local TriggerLogic = require("trigger.TriggerLogic")
  18. local TriggerDefine = require("trigger.TriggerDefine")
  19. local YjTreasureDBLogic = require("yjTreasure.YjTreasureDB")
  20. local HeroLogic = require("hero.HeroLogic")
  21. -- HonorJourney ={
  22. -- nPoint = 0, -- 荣耀积分
  23. -- TaskPrize = { -- 任务数据
  24. --[id] = {finishNum}
  25. --}
  26. --},
  27. -- TaskPointPrize = {}, -- 任务积分奖励
  28. -- }
  29. local HONORJOURNEY_SHOWTASK = 1 -- 显示任务
  30. local HONORJOURNEY_NOWSHOWTASK = 0 -- 非显示任务(需要完成前置任务)
  31. local HONORJOURNEY_LEN = nil -- 荣耀任务长度
  32. -- 初始化DB数据
  33. local function HonorJourneyTask_CreateDB(human)
  34. human.db.HonorJourney = {
  35. nPoint = 0, -- 荣耀积分
  36. TaskPointPrize = {}, -- 任务积分奖励
  37. TaskPrize = {
  38. --[[
  39. [nID] = {
  40. nFinishNum = xx,
  41. nState = 0
  42. }
  43. ]]
  44. }
  45. }
  46. local tTaskPrize = human.db.HonorJourney.TaskPrize
  47. local tConf = HonorJourneyExcel.HonorJourney
  48. for nID, v in pairs(tConf) do
  49. if not tTaskPrize[nID] then
  50. tTaskPrize[nID] = {
  51. nFinishNum = 0,
  52. nState = CommonDefine.COMMON_PRIZE_STATE_NOGET
  53. }
  54. else
  55. print("[HonorJourneyTask_CreateDB] 配置了重复的奖励ID nID = "..nID)
  56. end
  57. end
  58. tConf = HonorJourneyExcel.Reward
  59. local tTaskPointPrize = human.db.HonorJourney.TaskPointPrize
  60. for nID, v in ipairs(tConf) do
  61. if not tTaskPointPrize[nID] then
  62. tTaskPointPrize[nID] = CommonDefine.COMMON_PRIZE_STATE_NOGET
  63. else
  64. print("[HonorJourneyTask_CreateDB] 配置了重复的奖励ID nID = "..nID)
  65. end
  66. end
  67. end
  68. -- 检测是否初始化DB数据
  69. local function HonorJourneyTask_CheckCreateDB(human)
  70. if human.db.HonorJourney and nil ~= _G.next(human.db.HonorJourney) then
  71. return
  72. end
  73. HonorJourneyTask_CreateDB(human)
  74. end
  75. -- 增加任务完成次数
  76. local function HonorJourneyTask_AddTaskFinishNum(human, nID, nValue)
  77. local tDBTaskPrize = human.db.HonorJourney.TaskPrize
  78. tDBTaskPrize[nID].nFinishNum = tDBTaskPrize[nID].nFinishNum + nValue
  79. end
  80. -- 设置任务完成次数
  81. local function HonorJourneyTask_SetTaskFinishNum(human, nID, nValue)
  82. local tDBTaskPrize = human.db.HonorJourney.TaskPrize
  83. tDBTaskPrize[nID].nFinishNum = nValue
  84. end
  85. function HonorJourney_GetTaskCof()
  86. return HonorJourneyExcel
  87. end
  88. local function HonorJourneyTask_GetTaskDB(human)
  89. if not human.db.HonorJourney then
  90. HonorJourneyTask_CreateDB(human)
  91. end
  92. local tTaskPointPrize = human.db.HonorJourney and human.db.HonorJourney.TaskPointPrize
  93. if tTaskPointPrize and #tTaskPointPrize < #HonorJourneyExcel.Reward then
  94. -- local nNowPoint = HonorJourney_GetTaskPoint(human)
  95. local nNowPoint = human.db.HonorJourney and human.db.HonorJourney.nPoint or 0
  96. for i=#tTaskPointPrize+1, #HonorJourneyExcel.Reward do
  97. if not tTaskPointPrize[i] then
  98. tTaskPointPrize[i] = CommonDefine.COMMON_PRIZE_STATE_NOGET
  99. local boxCfg = HonorJourneyExcel.Reward[i]
  100. if boxCfg and nNowPoint >= boxCfg.needcnt then
  101. tTaskPointPrize[i] = CommonDefine.COMMON_PRIZE_STATE_CANGET
  102. end
  103. else
  104. print("[HonorJourneyTask_CreateDB] 配置了重复的奖励ID nID = "..i)
  105. end
  106. end
  107. end
  108. return human.db.HonorJourney
  109. end
  110. -- 获取任务完成次数
  111. local function HonorJourney_GetTaskFinishNum(human, nID)
  112. local tDBData = HonorJourneyTask_GetTaskDB(human)
  113. if not tDBData.TaskPrize[nID] then
  114. print("[HonorJourney_GetTaskFinishNum] 不存在对应的任务ID nID = "..nID)
  115. return 0
  116. end
  117. return tDBData.TaskPrize[nID].nFinishNum
  118. end
  119. -- 获取任务状态
  120. local function HonorJourney_GetTaskStatus(human, nID)
  121. local tDBData = HonorJourneyTask_GetTaskDB(human)
  122. if not tDBData.TaskPrize or not tDBData.TaskPrize[nID] or not tDBData.TaskPrize[nID].nState then
  123. return CommonDefine.COMMON_PRIZE_STATE_NOGET
  124. end
  125. return tDBData.TaskPrize[nID].nState
  126. end
  127. -- 设置任务状态
  128. local function HonorJourney_SetTaskStatus(human, nID, nValue)
  129. local tDBData = HonorJourneyTask_GetTaskDB(human)
  130. tDBData.TaskPrize[nID].nState = nValue
  131. end
  132. -- 获取任务累积奖励状态
  133. local function HonorJourney_GetTaskPointPrize(human, nID)
  134. local tDBData = HonorJourneyTask_GetTaskDB(human)
  135. if not tDBData.TaskPointPrize or not tDBData.TaskPointPrize[nID] then
  136. return CommonDefine.COMMON_PRIZE_STATE_NOGET
  137. end
  138. return tDBData.TaskPointPrize[nID]
  139. end
  140. -- 设置任务累积奖励状态
  141. local function HonorJourney_SetTaskPointPrize(human, nID, nValue)
  142. local tDBData = HonorJourneyTask_GetTaskDB(human)
  143. if not tDBData.TaskPointPrize or not tDBData.TaskPointPrize[nID] then
  144. return
  145. end
  146. tDBData.TaskPointPrize[nID] = nValue
  147. end
  148. -- 获取积分
  149. local function HonorJourney_GetTaskPoint(human)
  150. return human.db.HonorJourney.nPoint
  151. end
  152. -- 增加积分
  153. local function HonorJourney_AddTaskPoint(human, nPoint)
  154. human.db.HonorJourney.nPoint = human.db.HonorJourney.nPoint + nPoint
  155. end
  156. local function HonorJourney_GetDayLoginTime(human)
  157. local tDBData = HonorJourneyTask_GetTaskDB(human)
  158. return tDBData.dayLoginTime
  159. end
  160. local function HonorJourney_UpdateDayLoginTime(human)
  161. local tDBData = HonorJourneyTask_GetTaskDB(human)
  162. tDBData.dayLoginTime = os.time()
  163. end
  164. -- 检测任务状态
  165. function HonorJourney_CheckTaskStatus(human,nID)
  166. local nNowFinishNum = HonorJourney_GetTaskFinishNum(human, nID)
  167. local tConf = HonorJourneyExcel.HonorJourney[nID]
  168. -- print("[HonorJourney_CheckTaskStatus] nID = "..nID.." nNowFinishNum = "..nNowFinishNum.." taskProcess = "..tConf.taskProcess)
  169. if nNowFinishNum >= tConf.taskProcess then
  170. print("[HonorJourney_CheckTaskStatus] 满足条件 nID = "..nID)
  171. local nState = HonorJourney_GetTaskStatus(human, nID)
  172. if CommonDefine.COMMON_PRIZE_STATE_NOGET == nState then
  173. print("[HonorJourney_CheckTaskStatus] 进行设置 nID = "..nID)
  174. HonorJourney_SetTaskStatus(human, nID, CommonDefine.COMMON_PRIZE_STATE_CANGET)
  175. -- local msgRet = Msg.gc.GC_WEEKSHARE_SET
  176. -- msgRet.type = 5
  177. -- msgRet.desc = tConf.taskDesc
  178. -- Msg.send(msgRet,human.fd)
  179. end
  180. end
  181. end
  182. -- 检测任务积分奖励状态
  183. local function HonorJourney_CheckTaskPointStatus(human)
  184. local nNowPoint = HonorJourney_GetTaskPoint(human)
  185. for nID, v in ipairs(HonorJourneyExcel.Reward) do
  186. if v.needcnt > nNowPoint then
  187. break
  188. end
  189. local nState = HonorJourney_GetTaskPointPrize(human, nID)
  190. if nState == CommonDefine.COMMON_PRIZE_STATE_NOGET and nNowPoint >= v.needcnt then
  191. HonorJourney_SetTaskPointPrize(human, nID, CommonDefine.COMMON_PRIZE_STATE_CANGET)
  192. end
  193. end
  194. end
  195. local function getIDbyEventAndArgumentType(nEventType, nArgumentType)
  196. local tTaskID = {}
  197. for id,cfg in pairs(HonorJourneyExcel.HonorJourney) do
  198. if cfg.triggerType == nEventType then
  199. if nArgumentType then
  200. local argumentNum = tonumber(string.sub(tostring(cfg.taskArgument), -1))
  201. if nArgumentType == argumentNum then
  202. table.insert(tTaskID, id)
  203. end
  204. else
  205. table.insert(tTaskID, id)
  206. end
  207. end
  208. end
  209. return tTaskID
  210. end
  211. -- 获取前置任务
  212. local function HonorJourney_Gettaskpre(id)
  213. if not id or not HonorJourneyExcel.HonorJourney or not HonorJourneyExcel.HonorJourney[id] then
  214. return nil
  215. end
  216. local taskPre = HonorJourneyExcel.HonorJourney[id].taskPre
  217. if type(taskPre) ~= "number" then
  218. return nil
  219. end
  220. return taskPre
  221. end
  222. local function HonorJourneyTask_CheckFinshTask(human)
  223. -- 检查新加的任务
  224. local tTaskPrize = human.db.HonorJourney.TaskPrize
  225. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  226. if not tTaskPrize[nID] then
  227. tTaskPrize[nID] = {
  228. nFinishNum = 0,
  229. nState = CommonDefine.COMMON_PRIZE_STATE_NOGET
  230. }
  231. end
  232. end
  233. -- 检测凤凰等级
  234. if human.db.moshou and human.db.moshou.lv then
  235. local nNowFengHuangLv = human.db.moshou.lv
  236. -- print("[HonorJourneyTask_CheckFinshTask] 当前凤凰等级 nNowFengHuangLv = "..nNowFengHuangLv)
  237. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  238. if v.triggerType == TriggerDefine.FENGHUANGLV then
  239. local nState = HonorJourney_GetTaskStatus(human, nID)
  240. if nNowFengHuangLv >= v.taskProcess and nState == CommonDefine.COMMON_PRIZE_STATE_NOGET then
  241. print("[HonorJourneyTask_CheckFinshTask] 当前凤凰等级大于任务配置的等级 nNowFengHuangLv = "..nNowFengHuangLv.." taskProcess = "..v.taskProcess)
  242. HonorJourneyTask_SetTaskFinishNum(human, nID, nNowFengHuangLv)
  243. HonorJourney_CheckTaskStatus(human, nID)
  244. end
  245. end
  246. end
  247. else
  248. print("[HonorJourneyTask_CheckFinshTask] 不存在对应的凤凰数据 name = "..human.db.name)
  249. end
  250. -- 检测遗迹通关数
  251. local layerData = YjTreasureDBLogic.getLayerDataByUuid(human.db._id)
  252. if layerData and layerData.layer then
  253. local nowLayer = layerData.layer
  254. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  255. if v.triggerType == TriggerDefine.YJTREASURE_PASS_LEVEL then
  256. local nState = HonorJourney_GetTaskStatus(human, nID)
  257. if nowLayer >= v.taskProcess and nState == CommonDefine.COMMON_PRIZE_STATE_NOGET then
  258. -- print("[HonorJourneyTask_CheckFinshTask] 当前遗迹通关数大于任务配置的等级 nowLayer = "..nowLayer.." taskProcess = "..v.taskProcess)
  259. HonorJourneyTask_SetTaskFinishNum(human, nID, nowLayer)
  260. HonorJourney_CheckTaskStatus(human, nID)
  261. elseif nowLayer < v.taskProcess and nState == CommonDefine.COMMON_PRIZE_STATE_NOGET then
  262. local nNowNum = HonorJourney_GetTaskFinishNum(human, nID)
  263. if nNowNum < nowLayer then
  264. HonorJourneyTask_SetTaskFinishNum(human, nID, nowLayer)
  265. end
  266. end
  267. end
  268. end
  269. end
  270. -- 检查是否获得指定英雄
  271. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  272. if v.triggerType == TriggerDefine.EVENT_TYPE_GETPOINTHERO then
  273. local nState = HonorJourney_GetTaskStatus(human, nID)
  274. if nState == CommonDefine.COMMON_PRIZE_STATE_NOGET then
  275. local tTaskArgument = Util.split(v.taskArgument , "|")
  276. if 2 == #tTaskArgument then
  277. local nHeroID, nHeroStar = tonumber(tTaskArgument[1]), tonumber(tTaskArgument[2])
  278. local tListHeroIndex = HeroLogic.getHeroListById(human, nHeroID)
  279. if nil ~= _G.next(tListHeroIndex) then
  280. for _, nIndex in ipairs(tListHeroIndex) do
  281. local tHeroGrid = HeroLogic.getHeroGrid(human, nHeroID, nIndex)
  282. if tHeroGrid.star and tHeroGrid.id then
  283. -- print("[HonorJourneyTask_CheckFinshTask] 检测获得指定英雄 nHeroID = "..nHeroID.." star = "..tHeroGrid.star)
  284. if tHeroGrid.star >= nHeroStar and tHeroGrid.id == nHeroID then
  285. HonorJourneyTask_AddTaskFinishNum(human, nID, 1)
  286. HonorJourney_CheckTaskStatus(human, nID)
  287. end
  288. end
  289. end
  290. end
  291. end
  292. end
  293. end
  294. end
  295. end
  296. function HonorJourneyTaskQuery(human, isOnLogin)
  297. -- print("当前进入荣耀历程查询")
  298. local sendErr = isOnLogin == false and true or false
  299. if RoleSystemLogic.isOpen(human, RoleSystemDefine.ROLE_SYS_ID_803, sendErr) ~= true then
  300. return
  301. end
  302. -- 先组装活跃数据
  303. local nNowPoint = HonorJourney_GetTaskPoint(human)
  304. local msgRet = Msg.gc.GC_HONORJOURNEY_QUERY
  305. msgRet.nowHuoYue = nNowPoint
  306. msgRet.huoYueBox[0] = 1
  307. local ret = 1
  308. -- 初始化box数据结构
  309. for nID, v in ipairs(HonorJourneyExcel.Reward) do
  310. local nState = HonorJourney_GetTaskPointPrize(human, nID)
  311. -- print("[HonorJourneyTaskQuery] nID = "..nID .." nState = "..nState)
  312. if nState ~= CommonDefine.COMMON_PRIZE_STATE_GET then
  313. msgRet.huoYueBox[ret].boxID = nID
  314. msgRet.huoYueBox[ret].needHuoYue = v.needcnt
  315. msgRet.huoYueBox[ret].items[0] = #v.reward
  316. for nIndex, tGoods in ipairs(v.reward) do
  317. local itemID = tGoods[1]
  318. local itemCnt = tGoods[2]
  319. Grid.makeItem(msgRet.huoYueBox[ret].items[nIndex], itemID, itemCnt)
  320. end
  321. msgRet.huoYueBox[ret].isGet = 0
  322. break
  323. end
  324. end
  325. -- 组装荣耀数据
  326. local HonorJourneyConfig = HonorJourneyExcel.HonorJourney
  327. if not HonorJourneyConfig then return end
  328. if not HONORJOURNEY_LEN then
  329. HONORJOURNEY_LEN = 0
  330. for nID, _ in pairs(HonorJourneyConfig) do
  331. HONORJOURNEY_LEN = HONORJOURNEY_LEN + 1
  332. end
  333. end
  334. local nFirst, cnt, nSendLen = 1, 0, 0
  335. for nID, value in pairs(HonorJourneyConfig) do
  336. local nPreTaskID = HonorJourney_Gettaskpre(nID)
  337. local nState = HonorJourney_GetTaskStatus(human, nID)
  338. nSendLen = nSendLen + 1
  339. --print("[HonorJourneyTaskQuery] nID = "..nID.." nState = "..nState.."\n")
  340. if CommonDefine.COMMON_PRIZE_STATE_GET ~= nState then
  341. local bSow = value.isVisiable == HONORJOURNEY_SHOWTASK and true or false
  342. -- 获取前置任务状态
  343. if nPreTaskID then
  344. local nPreTaskState = HonorJourney_GetTaskStatus(human, nPreTaskID)
  345. if CommonDefine.COMMON_PRIZE_STATE_GET == nPreTaskState then
  346. bSow = true
  347. else
  348. bSow = false
  349. end
  350. else
  351. if CommonDefine.COMMON_PRIZE_STATE_CANGET == nState then
  352. bSow = true
  353. end
  354. end
  355. --print("[HonorJourneyTaskQuery] nID = "..nID.." bSow = "..(bSow == true and 1 or 0))
  356. -- 能领取了都要显示出来
  357. -- if CommonDefine.COMMON_PRIZE_STATE_CANGET == nState then
  358. -- bSow = true
  359. -- end
  360. -- 显示才下发
  361. if true == bSow then
  362. cnt = cnt + 1
  363. msgRet.list[cnt].taskID = nID
  364. msgRet.list[cnt].desc = value.taskDesc
  365. msgRet.list[cnt].maxCnt = value.taskProcess
  366. local len = 0
  367. for i = 1, #value.reward do
  368. len = len + 1
  369. local itemId = value.reward[i][1]
  370. local itemCnt = value.reward[i][2]
  371. Grid.makeItem(msgRet.list[cnt].itemData[len], itemId, itemCnt)
  372. end
  373. msgRet.list[cnt].itemData[0] = len
  374. msgRet.list[cnt].jump = value.panelID or 0
  375. msgRet.list[cnt].finishCnt = HonorJourney_GetTaskFinishNum(human, nID)
  376. msgRet.list[cnt].isGet = (nState == CommonDefine.COMMON_PRIZE_STATE_GET) and 1 or 0
  377. if cnt >= 30 then
  378. msgRet.list[0] = cnt
  379. msgRet.nFirst = nFirst
  380. msgRet.nEnd = nSendLen == HONORJOURNEY_LEN and 1 or 0
  381. -- print("[HonorJourneyTaskQuery] 发送数据 cnt = "..cnt.." nFirst = "..nFirst.." nSendLen = "..nSendLen)
  382. Msg.send(msgRet, human.fd)
  383. nFirst = 0
  384. cnt = 0
  385. end
  386. end
  387. end
  388. end
  389. -- print("[HonorJourneyTaskQuery] 循环遍历结束 cnt = "..cnt.." nFirst = "..nFirst.." nSendLen = "..nSendLen)
  390. msgRet.list[0] = cnt
  391. msgRet.nFirst = nFirst
  392. msgRet.nEnd = 1
  393. -- print("[HonorJourneyTaskQuery] 最后一次发送数据 cnt = "..cnt.." nFirst = "..nFirst.." nSendLen = "..nSendLen)
  394. Msg.send(msgRet, human.fd)
  395. end
  396. function onHonorJourneyTaskHuoYue(human,sum)
  397. if not human.db.HonorJourney then return end
  398. human.db.HonorJourney.nowHuoYue = (human.db.HonorJourney.nowHuoYue or 0) + sum
  399. YunYingLogic.onCallBack(human, "onDailyTask",sum)
  400. end
  401. --统计奖励
  402. local function calcReward(human, awardCfg)
  403. for i = 1, #awardCfg do
  404. local itemId = awardCfg[i][1]
  405. local itemCnt = awardCfg[i][2]
  406. if itemId == ItemDefine.ITME_HUOYUE_ID then
  407. onHonorJourneyTaskHuoYue(human,itemCnt)
  408. else
  409. local newCnt = math.ceil(itemCnt)
  410. --BagLogic.updateMomentItem(2, itemId, itemCnt)
  411. BagLogic.updateMomentItem(2, itemId, newCnt)
  412. end
  413. end
  414. end
  415. function HonorJourneyTaskGetReward(human)
  416. if RoleSystemLogic.isOpen(human, RoleSystemDefine.ROLE_SYS_ID_803) ~= true then
  417. print("[HonorJourneyTaskGetReward] 未开启直接返回")
  418. return
  419. end
  420. -- print("[HonorJourneyTaskGetReward] 1111111")
  421. local tAddItem, nAddPoint = {}, 0
  422. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  423. local nState = HonorJourney_GetTaskStatus(human, nID)
  424. -- print("[HonorJourneyTaskGetReward] nID = "..nID.." nState = "..nState)
  425. if CommonDefine.COMMON_PRIZE_STATE_CANGET == nState then
  426. HonorJourney_SetTaskStatus(human, nID, CommonDefine.COMMON_PRIZE_STATE_GET)
  427. for _, tGoods in ipairs(v.reward) do
  428. local nGoodsID = tGoods[1]
  429. local nGoodsNum = tGoods[2]
  430. if not tAddItem[nGoodsID] and nGoodsID ~= ItemDefine.ITEM_HONOR_ID then
  431. tAddItem[nGoodsID] = 0
  432. end
  433. if nGoodsID ~= ItemDefine.ITEM_HONOR_ID then
  434. tAddItem[nGoodsID] = tAddItem[nGoodsID] + nGoodsNum
  435. else
  436. nAddPoint = nAddPoint + nGoodsNum
  437. end
  438. end
  439. -- nAddPoint = nAddPoint + v.taskCnt
  440. end
  441. end
  442. if nil ~= _G.next(tAddItem) then
  443. local tAddGoods = {}
  444. for nGoodsID, nGoodsNum in pairs(tAddItem) do
  445. table.insert(tAddGoods, {nGoodsID, nGoodsNum})
  446. end
  447. BagLogic.addItemList(human, tAddGoods, "honorjourney")
  448. -- 增加积分,并更新状态
  449. HonorJourney_AddTaskPoint(human, nAddPoint)
  450. HonorJourney_CheckTaskPointStatus(human)
  451. HonorJourneyTaskQuery(human)
  452. RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_803)
  453. end
  454. end
  455. local function huoYueBoxCanGet(human,boxID)
  456. local HonorJourneyDB = human.db.HonorJourney
  457. if not HonorJourneyDB then return end
  458. local isGet = HonorJourneyDB.huoYueBox and HonorJourneyDB.huoYueBox[boxID] or 0
  459. if isGet ~= 0 then return end
  460. local nowHuoYue = HonorJourneyDB.nowHuoYue or 0
  461. local huoYueBoxConfig = HonorJourneyExcel.Reward[boxID]
  462. if nowHuoYue <= 0 or nowHuoYue < huoYueBoxConfig.needHuoYue then return end
  463. return true
  464. end
  465. -- 领取活跃宝箱
  466. function CG_HONORJOURNEYTASK_GET_HUOYUEBOX(human, nBoxID)
  467. local tConfig = HonorJourneyExcel.Reward[nBoxID]
  468. if not tConfig then
  469. return
  470. end
  471. local nNowPoint = HonorJourney_GetTaskPoint(human)
  472. if nNowPoint < tConfig.needcnt then
  473. return
  474. end
  475. local nState = HonorJourney_GetTaskPointPrize(human, nBoxID)
  476. if nState ~= CommonDefine.COMMON_PRIZE_STATE_CANGET then
  477. return
  478. end
  479. HonorJourney_SetTaskPointPrize(human, nBoxID, CommonDefine.COMMON_PRIZE_STATE_GET)
  480. BagLogic.addItemList(human, tConfig.reward, "honorjourney")
  481. HonorJourneyTaskQuery(human)
  482. RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_803)
  483. end
  484. function isDot(human)
  485. -- 主界面的任务包含2个标签 每日任务/成就
  486. if RoleSystemLogic.isOpen(human, RoleSystemDefine.ROLE_SYS_ID_803) ~= true then
  487. print("[HonorJourney_isDot] 当前系统未开放直接返回false")
  488. return false
  489. end
  490. HonorJourneyTask_CheckCreateDB(human)
  491. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  492. local nState = HonorJourney_GetTaskStatus(human, nID)
  493. if nState == CommonDefine.COMMON_PRIZE_STATE_CANGET then
  494. return true
  495. end
  496. end
  497. for nID, v in ipairs(HonorJourneyExcel.Reward) do
  498. local nState = HonorJourney_GetTaskPointPrize(human, nID)
  499. if nState == CommonDefine.COMMON_PRIZE_STATE_CANGET then
  500. return true
  501. end
  502. end
  503. return false
  504. end
  505. -- 事件处理
  506. local tEventHandler = nil
  507. -- 起服处理
  508. local function HonorJourneyTask_EvnentCommon(nEventType, uuid, nValue, nArgumentType)
  509. -- print("当前进入荣耀历程增加次数..............................",nEventType, nArgumentType)
  510. local human = ObjHuman.onlineUuid[uuid]
  511. if not human then
  512. print("[HonorJourneyTask_EvnentCommon] 玩家不在线了? nEventType = "..nEventType)
  513. return
  514. end
  515. local tTaskID = getIDbyEventAndArgumentType(nEventType, nArgumentType)
  516. if nil ~= _G.next(tTaskID) then
  517. for _, nID in ipairs(tTaskID) do
  518. local nStatus = HonorJourney_GetTaskStatus(human, nID)
  519. if nStatus == CommonDefine.COMMON_PRIZE_STATE_NOGET then
  520. HonorJourneyTask_AddTaskFinishNum(human,nID, nValue)
  521. HonorJourney_CheckTaskStatus(human, nID)
  522. end
  523. end
  524. RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_803)
  525. end
  526. end
  527. local function HonorJourney_EvnentGetHero(nEventType, uuid, nValue1, nValue2)
  528. local human = ObjHuman.onlineUuid[uuid]
  529. if not human then
  530. print("[HonorJourney_EvnentGetHero] 不存在对应的人物直接返回 nEventType = "..nEventType.." uuid = "..uuid)
  531. return
  532. end
  533. local nNum = nValue1
  534. local nStar = nValue2
  535. print("[HonorJourney_EvnentGetHero] nEventType = "..nEventType.." nNum = "..nNum.." nStar = "..nStar.." name = "..human.db.name)
  536. local bCheck, nTaskID = false, 0
  537. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  538. if v.triggerType == nEventType then
  539. if not v.taskArgument or v.taskArgument == "" then
  540. print("[HonorJourney_EvnentGetHero] 获得英雄但是没有获取到对应的配置参数要求")
  541. else
  542. local tTaskArgument = Util.split(v.taskArgument , "|")
  543. if 2 ~= #tTaskArgument then
  544. print("[HonorJourneyTask_EvnentGetHero] 获取的任务 参数数量不正确")
  545. else
  546. if nNum >= tonumber(tTaskArgument[1]) and nStar == tonumber(tTaskArgument[2]) then
  547. local nStatus = HonorJourney_GetTaskStatus(human, nID)
  548. if nStatus == CommonDefine.COMMON_PRIZE_STATE_NOGET then
  549. HonorJourneyTask_AddTaskFinishNum(human, nID, 1)
  550. bCheck = true
  551. nTaskID = nID
  552. end
  553. break
  554. end
  555. end
  556. end
  557. end
  558. end
  559. --检查任务是否完成
  560. if true == bCheck then
  561. HonorJourney_CheckTaskStatus(human, nTaskID)
  562. RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_803)
  563. end
  564. end
  565. -- 战斗力改变
  566. local function HonorJourney_PowerChange(nEventType, uuid, nValue1, nValue2)
  567. local human = ObjHuman.onlineUuid[uuid]
  568. if not human then
  569. return
  570. end
  571. local tTaksID = {}
  572. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  573. if v.triggerType == nEventType then
  574. local nState = HonorJourney_GetTaskStatus(human, nID)
  575. if nValue1 >= v.taskProcess and nState == CommonDefine.COMMON_PRIZE_STATE_NOGET then
  576. table.insert(tTaksID, nID)
  577. end
  578. end
  579. end
  580. if tTaksID and nil ~= _G.next(tTaksID) then
  581. for _, nID in pairs(tTaksID) do
  582. HonorJourneyTask_SetTaskFinishNum(human, nID, nValue1)
  583. HonorJourney_CheckTaskStatus(human, nID)
  584. -- HonorJourney_SetTaskStatus(human, nID, CommonDefine.COMMON_PRIZE_STATE_CANGET)
  585. end
  586. RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_803)
  587. end
  588. end
  589. -- 凤凰等级
  590. local function HonorJourney_FengHuangLv(nEventType, uuid, nValue1, nValue2)
  591. local human = ObjHuman.onlineUuid[uuid]
  592. if not human then
  593. return
  594. end
  595. local tTaksID = {}
  596. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  597. if v.triggerType == nEventType then
  598. local nState = HonorJourney_GetTaskStatus(human, nID)
  599. if nValue1 >= v.taskProcess and nState == CommonDefine.COMMON_PRIZE_STATE_NOGET then
  600. table.insert(tTaksID, nID)
  601. end
  602. end
  603. end
  604. if tTaksID and nil ~= _G.next(tTaksID) then
  605. for _, nID in pairs(tTaksID) do
  606. HonorJourneyTask_SetTaskFinishNum(human, nID, nValue1)
  607. -- HonorJourney_SetTaskStatus(human, nID, CommonDefine.COMMON_PRIZE_STATE_CANGET)
  608. HonorJourney_CheckTaskStatus(human, nID)
  609. end
  610. RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_803)
  611. end
  612. end
  613. -- 打开宝箱
  614. local function HonorJourney_OpenBox(nEventType, uuid, nValue1, nBoxType)
  615. -- print("[HonorJourney_OpenBox] 进入打开宝箱回调 nValue1 = "..nValue1.." nBoxType = "..nBoxType)
  616. local human = ObjHuman.onlineUuid[uuid]
  617. if not human then
  618. return
  619. end
  620. local tTaksID = {}
  621. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  622. if v.triggerType == nEventType then
  623. local nNeedBoxType = v.taskArgument
  624. local nState = HonorJourney_GetTaskStatus(human, nID)
  625. if nBoxType == nNeedBoxType and nState == CommonDefine.COMMON_PRIZE_STATE_NOGET then
  626. table.insert(tTaksID, nID)
  627. end
  628. end
  629. end
  630. if tTaksID and nil ~= _G.next(tTaksID) then
  631. for _, nID in pairs(tTaksID) do
  632. HonorJourneyTask_AddTaskFinishNum(human, nID, nValue1)
  633. HonorJourney_CheckTaskStatus(human, nID)
  634. end
  635. RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_803)
  636. else
  637. print("[HonorJourney_OpenBox] 不存在满足条件的任务")
  638. end
  639. end
  640. -- 获得装备或者符文
  641. local function HonorJourneyTask_GetEquiporFuWen(nEventType, uuid, nQuality, nNum)
  642. local human = ObjHuman.onlineUuid[uuid]
  643. if not human then
  644. return
  645. end
  646. -- print("[HonorJourneyTask_GetEquiporFuWen] nEventType = "..nEventType.." nQuality = "..nQuality.." nNum = "..nNum)
  647. local tTaksID = {}
  648. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  649. if v.triggerType == nEventType then
  650. local nState = HonorJourney_GetTaskStatus(human, nID)
  651. if nQuality == v.taskArgument and nState == CommonDefine.COMMON_PRIZE_STATE_NOGET then
  652. table.insert(tTaksID, nID)
  653. end
  654. end
  655. end
  656. if tTaksID and nil ~= _G.next(tTaksID) then
  657. for _, nID in pairs(tTaksID) do
  658. print("[HonorJourneyTask_GetEquiporFuWen] 进行判断的任务ID = "..nID)
  659. HonorJourneyTask_AddTaskFinishNum(human, nID, nNum)
  660. HonorJourney_CheckTaskStatus(human, nID)
  661. end
  662. RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_803)
  663. end
  664. end
  665. -- 秘宝或者遗物激活
  666. local function HonorJourneyTask_ItemActivate(nEventType, uuid, nItemID, nItemNum)
  667. local human = ObjHuman.onlineUuid[uuid]
  668. if not human then
  669. return
  670. end
  671. -- print("[HonorJourneyTask_ItemActivate] nEventType = "..nEventType.." nItemID = "..nItemID.." nItemNum = "..nItemNum)
  672. local tTaksID = {}
  673. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  674. if v.triggerType == nEventType then
  675. local nState = HonorJourney_GetTaskStatus(human, nID)
  676. if nItemID == v.taskArgument and nState == CommonDefine.COMMON_PRIZE_STATE_NOGET then
  677. table.insert(tTaksID, nID)
  678. end
  679. end
  680. end
  681. if tTaksID and nil ~= _G.next(tTaksID) then
  682. for _, nID in pairs(tTaksID) do
  683. -- print("[HonorJourneyTask_ItemActivate] 进行判断的任务ID = "..nID)
  684. HonorJourneyTask_AddTaskFinishNum(human, nID, nItemNum)
  685. HonorJourney_CheckTaskStatus(human, nID)
  686. end
  687. RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_803)
  688. end
  689. end
  690. -- 等级改变
  691. local function HonorJourneyTask_LvChange(nEventType, uuid, nValue1, nValue2)
  692. local human = ObjHuman.onlineUuid[uuid]
  693. if not human then
  694. return
  695. end
  696. -- print("[HonorJourneyTask_LvChange] nEventType = "..nEventType.." nValue1 = "..nValue1.." nValue2 = "..nValue2)
  697. local tTaksID = {}
  698. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  699. if v.triggerType == nEventType then
  700. local nState = HonorJourney_GetTaskStatus(human, nID)
  701. if nValue2 >= v.taskProcess and nState == CommonDefine.COMMON_PRIZE_STATE_NOGET then
  702. table.insert(tTaksID, nID)
  703. end
  704. end
  705. end
  706. if tTaksID and nil ~= _G.next(tTaksID) then
  707. for _, nID in pairs(tTaksID) do
  708. -- print("[HonorJourneyTask_ItemActivate] 进行判断的任务ID = "..nID)
  709. HonorJourneyTask_SetTaskFinishNum(human, nID, nValue2)
  710. HonorJourney_CheckTaskStatus(human, nID)
  711. end
  712. RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_803)
  713. end
  714. end
  715. -- 境界提升
  716. local function HonorJourneyTask_JingjieLvChange(nEventType, uuid, nValue1, nValue2)
  717. local human = ObjHuman.onlineUuid[uuid]
  718. if not human then
  719. return
  720. end
  721. -- print("[HonorJourneyTask_JingjieLvChange] nEventType = "..nEventType.." nValue1 = "..nValue1.." nValue2 = "..nValue2)
  722. local tTaksID = {}
  723. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  724. if v.triggerType == nEventType then
  725. local nState = HonorJourney_GetTaskStatus(human, nID)
  726. if nValue2 >= v.taskArgument and nState == CommonDefine.COMMON_PRIZE_STATE_NOGET then
  727. table.insert(tTaksID, nID)
  728. end
  729. end
  730. end
  731. if tTaksID and nil ~= _G.next(tTaksID) then
  732. for _, nID in pairs(tTaksID) do
  733. -- print("[HonorJourneyTask_JingjieLvChange] 进行判断的任务ID = "..nID)
  734. HonorJourneyTask_SetTaskFinishNum(human, nID, 1)
  735. HonorJourney_CheckTaskStatus(human, nID)
  736. end
  737. RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_803)
  738. end
  739. end
  740. -- 获得指定英雄
  741. local function HonorJourneyTask_EvnentGetPointHero(nEventType, uuid, nValue1, nValue2, nValue3)
  742. local human = ObjHuman.onlineUuid[uuid]
  743. if not human then
  744. return
  745. end
  746. if not nValue1 or not nValue2 or not nValue3 then
  747. return
  748. end
  749. local nNum, nStar, nHeroID = nValue1, nValue2, nValue3
  750. local bCheck, nTaskID = false, 0
  751. print("[HonorJourneyTask_EvnentGetPointHero] nEventType = "..nEventType.." nNum = "..nNum.." nStar = "..nStar.." nHeroID = "..nHeroID.." name = "..human.db.name)
  752. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  753. if v.triggerType == nEventType then
  754. if not v.taskArgument or v.taskArgument == "" then
  755. print("[HonorJourneyTask_EvnentGetPointHero] 获得英雄但是没有获取到对应的配置参数要求")
  756. else
  757. local tTaskArgument = Util.split(v.taskArgument , "|")
  758. local nHeroCofID, nHeroCofStar = tonumber(tTaskArgument[1]), tonumber(tTaskArgument[2])
  759. if nHeroID == nHeroCofID then
  760. print("[HonorJourneyTask_EvnentGetPointHero] 配置的英雄ID = "..nHeroCofID.." 星级 = "..nHeroCofStar)
  761. local nStatus = HonorJourney_GetTaskStatus(human, nID)
  762. if nStar >= nHeroCofStar and CommonDefine.COMMON_PRIZE_STATE_NOGET == nStatus then
  763. HonorJourneyTask_AddTaskFinishNum(human, nID, 1)
  764. bCheck = true
  765. nTaskID = nID
  766. break
  767. end
  768. end
  769. end
  770. end
  771. end
  772. if true == bCheck then
  773. HonorJourney_CheckTaskStatus(human, nTaskID)
  774. RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_803)
  775. end
  776. end
  777. local function HonorJourneyTask_EvnentGetJingLing(nEventType, uuid, nValue1, nValue2)
  778. local human = ObjHuman.onlineUuid[uuid]
  779. if not human then
  780. return
  781. end
  782. if not nValue1 or not nValue2 then
  783. return
  784. end
  785. local nNum = nValue1
  786. local nJingLingID = nValue2
  787. local bCheck, nTaskID = false, 0
  788. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  789. if v.triggerType == nEventType then
  790. if v.taskArgument and v.taskArgument == nJingLingID then
  791. local nStatus = HonorJourney_GetTaskStatus(human, nID)
  792. if CommonDefine.COMMON_PRIZE_STATE_NOGET == nStatus then
  793. HonorJourneyTask_AddTaskFinishNum(human, nID, 1)
  794. bCheck = true
  795. nTaskID = nID
  796. break
  797. end
  798. end
  799. end
  800. end
  801. if true == bCheck then
  802. HonorJourney_CheckTaskStatus(human, nTaskID)
  803. RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_803)
  804. end
  805. end
  806. -- 每日登录
  807. local function HonorJourneyTask_EvnentDailyLogin(nEventType, uuid, nValue1)
  808. local human = ObjHuman.onlineUuid[uuid]
  809. if not human then
  810. return
  811. end
  812. if not nValue1 then
  813. return
  814. end
  815. local tTaksID = {}
  816. for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
  817. if v.triggerType == nEventType then
  818. local nState = HonorJourney_GetTaskStatus(human, nID)
  819. if nState == CommonDefine.COMMON_PRIZE_STATE_NOGET then
  820. table.insert(tTaksID, nID)
  821. end
  822. end
  823. end
  824. if tTaksID and nil ~= _G.next(tTaksID) then
  825. for _, nID in ipairs(tTaksID) do
  826. HonorJourneyTask_AddTaskFinishNum(human, nID, nValue1)
  827. HonorJourney_CheckTaskStatus(human, nID)
  828. end
  829. HonorJourney_UpdateDayLoginTime(human)
  830. RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_803)
  831. end
  832. end
  833. function Init()
  834. tEventHandler = {
  835. [TriggerDefine.CHAT_TIMES] = HonorJourneyTask_EvnentCommon,
  836. [TriggerDefine.FRIEND_COMBAT] = HonorJourneyTask_EvnentCommon,
  837. [TriggerDefine.EVENT_TYPE_FATESUMMON] = HonorJourneyTask_EvnentCommon,
  838. [TriggerDefine.EVENT_TYPE_OPENBOX] = HonorJourney_OpenBox,
  839. [TriggerDefine.EVENT_TYPE_GETHERO] = HonorJourney_EvnentGetHero,
  840. [TriggerDefine.EVENT_TYPE_SHOPBUY] = HonorJourneyTask_EvnentCommon,
  841. [TriggerDefine.EVENT_TYPE_ELITESUMMON] = HonorJourneyTask_EvnentCommon,
  842. [TriggerDefine.FUWEN_HECHENG] = HonorJourneyTask_EvnentCommon,
  843. [TriggerDefine.GOLD_POINTS_NUM] = HonorJourneyTask_EvnentCommon,
  844. [TriggerDefine.VOUCHER_BUY_NUM] = HonorJourneyTask_EvnentCommon,
  845. [TriggerDefine.DRAGON_PEARL] = HonorJourneyTask_EvnentCommon,
  846. [TriggerDefine.ANCIENTG_CHARGING] = HonorJourneyTask_EvnentCommon,
  847. [TriggerDefine.SECRET_REALM] = HonorJourneyTask_EvnentCommon,
  848. [TriggerDefine.ZHANDOULI] = HonorJourney_PowerChange,
  849. [TriggerDefine.FENGHUANGLV] = HonorJourney_FengHuangLv,
  850. [TriggerDefine.MOZHU_CHALLENGE] = HonorJourneyTask_EvnentCommon,
  851. [TriggerDefine.ZHANBU_SYNTHESIS] = HonorJourneyTask_EvnentCommon,
  852. [TriggerDefine.UNION_DONATE] = HonorJourneyTask_EvnentCommon,
  853. [TriggerDefine.EVENT_TYPE_SWEEP] = HonorJourneyTask_EvnentCommon,
  854. [TriggerDefine.FUWEN_GETQUALITY] = HonorJourneyTask_GetEquiporFuWen,
  855. [TriggerDefine.EQUIP_GETQUALITY] = HonorJourneyTask_GetEquiporFuWen,
  856. [TriggerDefine.FUWEN_RESET] = HonorJourneyTask_EvnentCommon,
  857. [TriggerDefine.EQUIP_REFINEMENT] = HonorJourneyTask_EvnentCommon,
  858. [TriggerDefine.HUMAN_LV_UP] = HonorJourneyTask_LvChange,
  859. [TriggerDefine.REALM_UPGRADE] = HonorJourneyTask_JingjieLvChange,
  860. [TriggerDefine.YJTREASURE_PASS_LEVEL] = HonorJourneyTask_EvnentCommon,
  861. [TriggerDefine.MIBAO_ACTIVATE] = HonorJourneyTask_ItemActivate,
  862. [TriggerDefine.YIWU_ACTIVATE] = HonorJourneyTask_ItemActivate,
  863. [TriggerDefine.ZHONGZU_LEVEL] = HonorJourneyTask_ItemActivate,
  864. [TriggerDefine.MIBAO_ALLSTAR] = HonorJourneyTask_EvnentCommon,
  865. [TriggerDefine.YIWU_ALLSTAR] = HonorJourneyTask_EvnentCommon,
  866. [TriggerDefine.EVENT_TYPE_GETPOINTHERO] = HonorJourneyTask_EvnentGetPointHero,
  867. [TriggerDefine.EVENT_TYPE_JINGLING_GET] = HonorJourneyTask_EvnentGetJingLing,
  868. [TriggerDefine.EVENT_TYPE_JINGLING_STAR] = HonorJourneyTask_EvnentCommon,
  869. [TriggerDefine.EVENT_TYPE_DAILY_LOGIN] = HonorJourneyTask_EvnentDailyLogin,
  870. }
  871. end
  872. --订阅事件
  873. local function HonorJourney_SubEvent(uuid, nEventType)
  874. -- print("当前进入荣耀历程订阅事件 注册 nEventType = "..nEventType)
  875. TriggerLogic.SubscribeEvent(nEventType, uuid, HonorJourneyTask_EventCallBack)
  876. end
  877. local function HonorJourney_OnLoginSubEvent(human)
  878. if not human then
  879. print("[HonorJourney_OnLoginSubEvent] 不存在对应的人物, 订阅事件失败")
  880. return
  881. end
  882. local uuid = human.db._id
  883. HonorJourney_SubEvent(uuid, TriggerDefine.EVENT_TYPE_OPENBOX)
  884. HonorJourney_SubEvent(uuid, TriggerDefine.EVENT_TYPE_GETHERO)
  885. HonorJourney_SubEvent(uuid, TriggerDefine.FUWEN_HECHENG)
  886. HonorJourney_SubEvent(uuid, TriggerDefine.MOZHU_CHALLENGE)
  887. HonorJourney_SubEvent(uuid, TriggerDefine.ZHANBU_SYNTHESIS)
  888. HonorJourney_SubEvent(uuid, TriggerDefine.EVENT_TYPE_SHOPBUY)
  889. HonorJourney_SubEvent(uuid, TriggerDefine.GOLD_POINTS_NUM)
  890. HonorJourney_SubEvent(uuid, TriggerDefine.UNION_DONATE)
  891. HonorJourney_SubEvent(uuid, TriggerDefine.VOUCHER_BUY_NUM)
  892. HonorJourney_SubEvent(uuid, TriggerDefine.EVENT_TYPE_FATESUMMON)
  893. HonorJourney_SubEvent(uuid, TriggerDefine.EVENT_TYPE_ELITESUMMON)
  894. HonorJourney_SubEvent(uuid, TriggerDefine.FRIEND_COMBAT)
  895. HonorJourney_SubEvent(uuid, TriggerDefine.ZHANDOULI)
  896. HonorJourney_SubEvent(uuid, TriggerDefine.FENGHUANGLV)
  897. HonorJourney_SubEvent(uuid, TriggerDefine.CHAT_TIMES)
  898. HonorJourney_SubEvent(uuid, TriggerDefine.DRAGON_PEARL)
  899. HonorJourney_SubEvent(uuid, TriggerDefine.ANCIENTG_CHARGING)
  900. HonorJourney_SubEvent(uuid, TriggerDefine.FUWEN_GETQUALITY)
  901. HonorJourney_SubEvent(uuid, TriggerDefine.EQUIP_GETQUALITY)
  902. HonorJourney_SubEvent(uuid, TriggerDefine.EVENT_TYPE_SWEEP)
  903. -- 符文重铸次数
  904. HonorJourney_SubEvent(uuid, TriggerDefine.FUWEN_RESET)
  905. -- 装备洗练
  906. HonorJourney_SubEvent(uuid, TriggerDefine.EQUIP_REFINEMENT)
  907. -- 境界提升
  908. HonorJourney_SubEvent(uuid, TriggerDefine.REALM_UPGRADE)
  909. -- 遗迹探险层数
  910. HonorJourney_SubEvent(uuid, TriggerDefine.YJTREASURE_PASS_LEVEL)
  911. -- 秘宝激活
  912. HonorJourney_SubEvent(uuid, TriggerDefine.MIBAO_ACTIVATE)
  913. -- 遗物激活
  914. HonorJourney_SubEvent(uuid, TriggerDefine.YIWU_ACTIVATE)
  915. -- 种族试炼
  916. HonorJourney_SubEvent(uuid, TriggerDefine.ZHONGZU_LEVEL)
  917. -- 等级提升
  918. HonorJourney_SubEvent(uuid, TriggerDefine.HUMAN_LV_UP)
  919. HonorJourney_SubEvent(uuid, TriggerDefine.MIBAO_ALLSTAR)
  920. HonorJourney_SubEvent(uuid, TriggerDefine.YIWU_ALLSTAR)
  921. -- 获取指定英雄
  922. HonorJourney_SubEvent(uuid, TriggerDefine.EVENT_TYPE_GETPOINTHERO)
  923. HonorJourney_SubEvent(uuid, TriggerDefine.EVENT_TYPE_JINGLING_GET)
  924. HonorJourney_SubEvent(uuid, TriggerDefine.EVENT_TYPE_JINGLING_STAR)
  925. -- 每日登录
  926. HonorJourney_SubEvent(uuid, TriggerDefine.EVENT_TYPE_DAILY_LOGIN)
  927. end
  928. -- 回调,增加次数
  929. function HonorJourneyTask_EventCallBack(nEventType, uuid, nValue1, nValue2, nValue3)
  930. if not tEventHandler then
  931. Init()
  932. end
  933. if not tEventHandler or not tEventHandler[nEventType] then
  934. print("当前已经返回",nEventType)
  935. return
  936. end
  937. -- print("[HonorJourneyTask_EventCallBack] 触发事件回调 nEventType = "..nEventType.." nValue1 = "..nValue1)
  938. pcall(tEventHandler[nEventType], nEventType, uuid, nValue1, nValue2, nValue3)
  939. -- print("[HonorJourneyTask_EventCallBack] 触发事件回调 处理结束 ")
  940. end
  941. local function dailyLoginCheck(human)
  942. local dayLoginTime = HonorJourney_GetDayLoginTime(human)
  943. local now = os.time()
  944. if not dayLoginTime or not Util.isSameDayByTimes(dayLoginTime,now) then
  945. HonorJourneyTask_EvnentDailyLogin(TriggerDefine.EVENT_TYPE_DAILY_LOGIN, human.db._id, 1)
  946. end
  947. end
  948. function onLogin(human)
  949. -- print("当前进入荣耀历程登录")
  950. HonorJourneyTask_CheckCreateDB(human)
  951. HonorJourneyTask_CheckFinshTask(human)
  952. HonorJourney_OnLoginSubEvent(human)
  953. -- HonorJourneyTaskQuery(human, true)
  954. dailyLoginCheck(human)
  955. end
  956. function HonorJourney_GMClear(human)
  957. HonorJourneyTask_CreateDB(human)
  958. -- print("[HonorJourney_GMClear] 重置数据成功")
  959. end
  960. function HonorJourney_GMAddPoint(human, nAddPoint)
  961. HonorJourney_AddTaskPoint(human, nAddPoint)
  962. HonorJourney_CheckTaskPointStatus(human)
  963. end