DrumBlastingLogic.lua 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586
  1. --[[
  2. absAct[id] = {
  3. drum = {
  4. [id] = cnt,state
  5. [id] = cnt,state
  6. }
  7. blasting = {
  8. [id] = cnt,state
  9. }
  10. box = {
  11. [id] = state
  12. }
  13. blastingCnt = 0
  14. buling = 0
  15. }
  16. ]]
  17. local AbsActLogic = require("absAct.AbsActLogic")
  18. local AbsActExcel = require("excel.absAct")
  19. local BuyExcel = require("excel.buy")
  20. local Util = require("common.Util")
  21. local Msg = require("core.Msg")
  22. local Grid = require("bag.Grid")
  23. local BagLogic = require("bag.BagLogic")
  24. local BuyLogic = require("topup.BuyLogic")
  25. local YunYingLogic = require("yunying.YunYingLogic")
  26. function isOpen(human, YYInfo, funcConfig)
  27. local state, endTime, startTime = AbsActLogic.isStarted(human, funcConfig.funcID)
  28. if not state then return end
  29. local absAct = human.db.absAct[funcConfig.funcID]
  30. if absAct and absAct.dayCnt and absAct.dayCnt <= 0 and #absAct.item <= 0 then
  31. return false
  32. end
  33. return true, endTime, startTime
  34. end
  35. function isActive(human, YYInfo, funcConfig)
  36. return not isOpen(human, YYInfo, funcConfig)
  37. end
  38. -- 锟斤拷始锟斤拷锟斤拷锟捷匡拷
  39. function initDB(human,id)
  40. local absAct = human.db.absAct[id]
  41. absAct.drum = absAct.drum or {}
  42. absAct.blasting = absAct.blasting or {}
  43. absAct.box = absAct.box or {}
  44. absAct.blastingCnt = absAct.blastingCnt or 0
  45. absAct.buling = absAct.buling or 0
  46. end
  47. -- 锟斤拷锟斤拷锟斤拷锟斤拷
  48. function getAndSendMsg(human,id,actID)
  49. -- 锟叫断活动锟角凤拷锟斤拷
  50. local state, endTime, starTime = AbsActLogic.isStarted(human, id)
  51. if not state then return end
  52. local absConfig = AbsActExcel.absActivity[id]
  53. if not absConfig then return end
  54. local absAct = human.db.absAct[id]
  55. if not absAct then
  56. return
  57. end
  58. initDB(human,id)
  59. local nowDay = Util.diffDay(starTime) + 1
  60. -- 锟斤拷锟斤拷锟斤拷锟斤拷
  61. local msgRet = Msg.gc.GC_ABS_ND_TASK_QUERY
  62. -- 锟斤拷锟斤拷锟斤拷
  63. local taskConfig = AbsActExcel.drum
  64. local len = #taskConfig
  65. local count = 0
  66. msgRet.day = nowDay
  67. BuyLogic.fontBuyItem(human, msgRet.buyItem, AbsActExcel.blastingBox[1].buyID)
  68. for i = 1,len do
  69. local v = taskConfig[i]
  70. if v.day == nowDay then
  71. count = count + 1
  72. local net = msgRet.drumList[count]
  73. net.id = i
  74. net.desc = v.desc
  75. net.name = v.name
  76. net.needCnt = v.needCnt
  77. net.panelID = v.panelID
  78. net.nowCnt = absAct.drum[i] and absAct.drum[i].cnt or 0
  79. net.state = absAct.drum[i] and absAct.drum[i].state or 0
  80. for j = 1,#v.item do
  81. Grid.makeItem(net.item[j],v.item[j][1],v.item[j][2])
  82. end
  83. net.item[0] = #v.item
  84. end
  85. end
  86. msgRet.drumList[0] = count
  87. -- 锟斤拷锟斤拷锟斤拷
  88. taskConfig = AbsActExcel.blasting
  89. len = #taskConfig
  90. for i = 1,len do
  91. local v = taskConfig[i]
  92. local net = msgRet.blastingList[i]
  93. net.id = i
  94. net.desc = v.desc
  95. net.name = v.name
  96. net.needCnt = v.needCnt
  97. net.nowCnt = absAct.blasting[i] and absAct.blasting[i].cnt or 0
  98. net.state = absAct.blasting[i] and absAct.blasting[i].state or 0
  99. local itemLen = type(v.item[nowDay]) == "table" and #v.item[nowDay] or 0
  100. for j = 1,itemLen do
  101. Grid.makeItem(net.item[j],v.item[nowDay][j][1],v.item[nowDay][j][2])
  102. end
  103. net.item[0] = itemLen --#v.item[nowDay]
  104. net.panelID = v.panelID or 0
  105. end
  106. msgRet.blastingList[0] = len
  107. -- 锟斤拷锟斤拷锟斤拷锟斤拷
  108. taskConfig = AbsActExcel.blastingBox
  109. len = #taskConfig
  110. for i = 1,len do
  111. local v = taskConfig[i]
  112. local net = msgRet.boxList[i]
  113. net.id = i
  114. net.needCnt = v.needCnt
  115. net.state = absAct.box[i] or 0
  116. for j = 1,#v.item do
  117. Grid.makeItem(net.item[j],v.item[j][1],v.item[j][2])
  118. end
  119. net.item[0] = #v.item
  120. end
  121. msgRet.boxList[0] = len
  122. msgRet.blastingCnt = absAct.blastingCnt
  123. Msg.send(msgRet,human.fd)
  124. end
  125. -- 锟斤拷取锟斤拷品
  126. -- type 1锟斤拷,2锟斤拷,3锟斤拷
  127. function get(human,index,type,id)
  128. -- 锟叫断活动锟角凤拷锟斤拷
  129. local state, endTime, starTime = AbsActLogic.isStarted(human, id)
  130. if not state then return end
  131. local absConfig = AbsActExcel.absActivity[id]
  132. if not absConfig then return end
  133. local absAct = human.db.absAct[id]
  134. if not absAct then
  135. return
  136. end
  137. initDB(human,id)
  138. local nowDay = Util.diffDay(starTime) + 1
  139. local allItems = {} -- 用于批量领取时收集所有奖励
  140. -- 如果index为0或nil,则批量领取该type下所有可领取的奖励
  141. if not index or index == 0 then
  142. local hasReward = false
  143. if type == 1 then
  144. -- 福袋任务:遍历所有drum任务,领取状态为1的
  145. local taskConfig = AbsActExcel.drum
  146. for i = 1, #taskConfig do
  147. local v = taskConfig[i]
  148. if v.day == nowDay then
  149. local taskState = absAct.drum[i] and absAct.drum[i].state or 0
  150. if taskState == 1 then
  151. hasReward = true
  152. -- 收集奖励
  153. for j = 1, #v.item do
  154. table.insert(allItems, v.item[j])
  155. end
  156. -- 更新状态
  157. absAct.drum[i].state = 2
  158. end
  159. end
  160. end
  161. elseif type == 2 then
  162. -- 礼炮奖励:遍历所有blasting,领取状态为1的
  163. local taskConfig = AbsActExcel.blasting
  164. for i = 1, #taskConfig do
  165. local v = taskConfig[i]
  166. local blastingState = absAct.blasting[i] and absAct.blasting[i].state or 0
  167. if blastingState == 1 then
  168. hasReward = true
  169. -- 收集奖励
  170. local itemLen = type(v.item[nowDay]) == "table" and #v.item[nowDay] or 0
  171. for j = 1, itemLen do
  172. table.insert(allItems, v.item[nowDay][j])
  173. end
  174. -- 更新状态
  175. absAct.blasting[i].state = 2
  176. -- 增加一次,累计放炮次数,判断是否达到进度奖励领取值
  177. absAct.blastingCnt = absAct.blastingCnt + 1
  178. for j = 1, #AbsActExcel.blastingBox do
  179. if absAct.blastingCnt - 1 < AbsActExcel.blastingBox[j].needCnt and absAct.blastingCnt == AbsActExcel.blastingBox[j].needCnt then
  180. absAct.box[j] = 1
  181. break
  182. end
  183. end
  184. end
  185. end
  186. elseif type == 3 then
  187. -- 进度奖励:遍历所有box,领取状态为1的
  188. local taskConfig = AbsActExcel.blastingBox
  189. for i = 1, #taskConfig do
  190. local v = taskConfig[i]
  191. local boxState = absAct.box[i] or 0
  192. if boxState == 1 then
  193. hasReward = true
  194. -- 收集奖励
  195. for j = 1, #v.item do
  196. table.insert(allItems, v.item[j])
  197. end
  198. -- 更新状态
  199. absAct.box[i] = 2
  200. end
  201. end
  202. end
  203. -- 如果有奖励,则发放
  204. if hasReward and #allItems > 0 then
  205. BagLogic.addItemList(human, allItems, "abs_drumblasting")
  206. getAndSendMsg(human, id, absConfig.actID)
  207. YunYingLogic.sendBanner(human)
  208. YunYingLogic.sendGroupUpdate(YYInfo[id], human, absConfig.panelID)
  209. end
  210. return
  211. end
  212. -- 原有逻辑:单个领取
  213. local item = nil
  214. -- 选锟斤拷锟接︼拷锟斤拷锟?
  215. local config = nil
  216. local state = nil
  217. if type == 1 then
  218. config = AbsActExcel.drum[index]
  219. state = absAct.drum[index] and absAct.drum[index].state or 0
  220. elseif type == 2 then
  221. config = AbsActExcel.blasting[index]
  222. state = absAct.blasting[index] and absAct.blasting[index].state or 0
  223. elseif type == 3 then
  224. config = AbsActExcel.blastingBox[index]
  225. state = absAct.box[index] or 0
  226. end
  227. -- 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟?
  228. if not config then
  229. return
  230. end
  231. -- 状态锟斤拷为锟斤拷锟斤拷取
  232. if state ~= 1 then
  233. return
  234. end
  235. -- 锟侥憋拷状态
  236. if type == 1 then
  237. item = config.item
  238. absAct.drum[index].state = 2
  239. elseif type == 2 then
  240. item = config.item[nowDay]
  241. absAct.blasting[index].state = 2
  242. -- 锟斤拷锟斤拷一锟斤拷,锟斤拷锟斤拷锟桔计达拷锟斤拷锟斤拷锟斤拷锟叫讹拷锟角凤拷锏斤拷锟斤拷锟斤拷锟饺★拷锟街?
  243. absAct.blastingCnt = absAct.blastingCnt + 1
  244. for i = 1,#AbsActExcel.blastingBox do
  245. if absAct.blastingCnt - 1 < AbsActExcel.blastingBox[i].needCnt and absAct.blastingCnt == AbsActExcel.blastingBox[i].needCnt then
  246. absAct.box[i] = 1
  247. break
  248. end
  249. end
  250. elseif type == 3 then
  251. item = config.item
  252. absAct.box[index] = 2
  253. else
  254. return
  255. end
  256. BagLogic.addItemList(human, item, "abs_drumblasting")
  257. getAndSendMsg(human,id,absConfig.actID)
  258. YunYingLogic.sendBanner(human)
  259. YunYingLogic.sendGroupUpdate(YYInfo[id], human, absConfig.panelID)
  260. end
  261. -- 每锟斤拷锟斤拷锟斤拷锟皆撅拷锟?
  262. function onDailyTask(human,funcID, parameter)
  263. drumTaskCallBack(human,funcID,1,parameter)
  264. end
  265. -- 锟劫伙拷
  266. function onDrawCard(human,funcID, parameter)
  267. drumTaskCallBack(human,funcID,2,parameter)
  268. end
  269. -- 锟斤拷魔之锟斤拷
  270. function onHuangjingTower(human,funcID, parameter)
  271. drumTaskCallBack(human,funcID,3,parameter)
  272. end
  273. -- 锟斤拷值
  274. function onCharge(human, parameter,funcID)
  275. -- 涓存椂澶勭悊
  276. drumTaskCallBack(human,funcID,4,parameter)
  277. end
  278. -- 锟斤拷锟斤拷锟斤拷锟斤拷
  279. function onDrill(human,funcID, parameter)
  280. drumTaskCallBack(human,funcID,5,parameter)
  281. end
  282. -- 女锟斤拷森锟斤拷
  283. function onCopyChallenge(human,funcID, parameter)
  284. drumTaskCallBack(human,funcID,6,parameter)
  285. end
  286. -- 锟节撅拷锟斤拷锟斤拷
  287. function onJjcFight(human,funcID, parameter)
  288. drumTaskCallBack(human,funcID,7,parameter)
  289. end
  290. -- 锟斤拷锟斤拷痰旯猴拷锟?
  291. function onShopBuy(human,funcID,parameter)
  292. drumTaskCallBack(human,funcID,8,parameter)
  293. end
  294. -- 冒锟斤拷扫锟斤拷
  295. function onMopup(human,funcID,parameter)
  296. drumTaskCallBack(human,funcID,9,parameter)
  297. end
  298. -- 锟斤拷锟斤拷锟斤拷穴
  299. function onBinglong(human,funcID,parameter)
  300. drumTaskCallBack(human,funcID,10,parameter)
  301. end
  302. -- 锟斤拷锟?
  303. function onExchangeJinbi(human,funcID,parameter)
  304. drumTaskCallBack(human,funcID,11,parameter)
  305. end
  306. -- 锟斤拷锟斤拷
  307. function onBarTaskgetDo(human,funcID,parameter)
  308. drumTaskCallBack(human,funcID,12,parameter)
  309. end
  310. -- 锟斤拷锟斤拷
  311. function onUnionDonate(human,funcID,parameter)
  312. drumTaskCallBack(human,funcID,13,parameter)
  313. end
  314. -- 锟斤拷锟结副锟斤拷
  315. function onUnionEctypeFight(human,funcID,parameter)
  316. drumTaskCallBack(human,funcID,14,parameter)
  317. end
  318. -- 占锟斤拷
  319. function onZhanBuBuyCard(human,funcID,parameter)
  320. -- ZhanbuLogic.lua 436琛? 浼犵殑鏁板€间负璐?, 涓嶇煡閬撳摢涓?鐩戝惉璇ヤ簨浠剁殑鍦版柟闇€瑕佹暟鍊间负璐燂紝鎵€浠ュ彧澶勭悊褰撳墠妯″潡
  321. if parameter < 0 then
  322. return
  323. end
  324. drumTaskCallBack(human,funcID,15,parameter)
  325. end
  326. -- 锟斤拷锟斤拷锟斤拷石
  327. function onDecZuanshi(human,funcID,parameter)
  328. drumTaskCallBack(human,funcID,16,parameter)
  329. end
  330. -- 锟斤拷锟斤拷锟斤拷渊
  331. function onLianyu(human,funcID,parameter)
  332. drumTaskCallBack(human,funcID,17,parameter)
  333. end
  334. -- 锟较成凤拷锟斤拷
  335. function onFuwenHecheng(human,funcID,parameter)
  336. drumTaskCallBack(human,funcID,18,parameter)
  337. end
  338. -- 锟截碉拷
  339. function drumTaskCallBack(human,id,type,cnt)
  340. AbsActLogic.checkAbsActClean(human, id)
  341. local state, endTime, starTime = AbsActLogic.isStarted(human, id)
  342. -- 娲诲嫊鏈?闁嬪晸
  343. if not state or os.time() > endTime then
  344. return
  345. end
  346. local absConfig = AbsActExcel.absActivity[id]
  347. if not absConfig then return end
  348. local absActData = human.db.absAct[id]
  349. if not absActData then
  350. return
  351. end
  352. initDB(human,id)
  353. local nowDay = Util.diffDay(starTime) + 1
  354. -- 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷
  355. local taskConfig = AbsActExcel.drum
  356. for k = 1,#taskConfig do
  357. if taskConfig[k].type == type and taskConfig[k].day == nowDay then
  358. local taskID = k
  359. human.db.absAct[id].drum[taskID] = human.db.absAct[id].drum[taskID] or {}
  360. human.db.absAct[id].drum[taskID].cnt = human.db.absAct[id].drum[taskID].cnt or 0
  361. human.db.absAct[id].drum[taskID].state = human.db.absAct[id].drum[taskID].state or 0
  362. human.db.absAct[id].drum[taskID].cnt = human.db.absAct[id].drum[taskID].cnt + cnt
  363. if human.db.absAct[id].drum[taskID].state ~= 0 and cnt < 0 then
  364. human.db.absAct[id].drum[taskID].cnt = human.db.absAct[id].drum[taskID].cnt - cnt
  365. end
  366. local config = AbsActExcel.drum[taskID]
  367. -- 锟斤拷锟斤拷锟斤拷锟斤拷
  368. if human.db.absAct[id].drum[taskID].cnt >= config.needCnt and human.db.absAct[id].drum[taskID].state == 0 then
  369. human.db.absAct[id].drum[taskID].state = 1
  370. -- 锟叫讹拷锟角凤拷锟斤拷锟斤拷锟斤拷锟斤拷
  371. for i = 1,#config.blasting do
  372. local blastingID = config.blasting[i]
  373. local blastingConfig = AbsActExcel.blasting[blastingID]
  374. human.db.absAct[id].blasting[blastingID] = human.db.absAct[id].blasting[blastingID] or {}
  375. human.db.absAct[id].blasting[blastingID].cnt = human.db.absAct[id].blasting[blastingID].cnt or 0
  376. human.db.absAct[id].blasting[blastingID].state = human.db.absAct[id].blasting[blastingID].state or 0
  377. human.db.absAct[id].blasting[blastingID].cnt = human.db.absAct[id].blasting[blastingID].cnt + 1
  378. if human.db.absAct[id].blasting[blastingID].cnt >= 3 and human.db.absAct[id].blasting[blastingID].state ~= 2 then
  379. human.db.absAct[id].blasting[blastingID].state = 1
  380. end
  381. end
  382. end
  383. end
  384. end
  385. YunYingLogic.sendBanner(human)
  386. YunYingLogic.sendGroupUpdate(YYInfo[id], human, absConfig.panelID)
  387. end
  388. -- 每锟斤拷锟斤拷锟矫鼓o拷锟斤拷状态
  389. function updateDaily(human,id)
  390. local state, endTime, starTime = AbsActLogic.isStarted(human, id)
  391. if not state then return end
  392. local config = AbsActExcel.absActivity[id]
  393. if not config then return end
  394. AbsActLogic.checkAbsActClean(human, id)
  395. local absAct = human.db.absAct[id] or {}
  396. absAct.drum = {}
  397. absAct.blasting = {}
  398. absAct.box = absAct.box or {}
  399. absAct.blastingCnt = absAct.blastingCnt or 0
  400. human.db.absAct[id] = absAct
  401. end
  402. -- 鍥犱负鐜╁?跺湪娲诲姩鏈?寮€鍚?鍓嶅畬鎴愪簡娲昏穬搴︿换鍔★紝娲诲姩寮€鍚?鍚庢病娉曞畬鎴愭椿璺冨害浠诲姟,鎵€浠ュ湪鐜╁?朵笂绾挎椂,鍋氫竴娆℃洿鏂版椿璺冨害鏁版嵁鎿嶄綔
  403. function specialFunc(human, id)
  404. AbsActLogic.checkAbsActClean(human, id)
  405. local state, endTime, starTime = AbsActLogic.isStarted(human, id)
  406. -- 娲诲嫊鏈?闁嬪晸
  407. if not state or os.time() > endTime then
  408. return
  409. end
  410. local absConfig = AbsActExcel.absActivity[id]
  411. if not absConfig then return end
  412. local absActData = human.db.absAct[id]
  413. if not absActData then
  414. return
  415. end
  416. initDB(human,id)
  417. local nowHuoYue = human.db.dailyTask and human.db.dailyTask.nowHuoYue or 0
  418. if nowHuoYue > 0 then
  419. local nowDay = Util.diffDay(starTime) + 1
  420. local actType = 1
  421. -- 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷
  422. local singleData
  423. local isChange = false
  424. local taskConfig = AbsActExcel.drum
  425. for k = 1,#taskConfig do
  426. if taskConfig[k].type == actType and taskConfig[k].day == nowDay then
  427. local taskID = k
  428. human.db.absAct[id].drum[taskID] = human.db.absAct[id].drum[taskID] or {}
  429. singleData = human.db.absAct[id].drum[taskID]
  430. singleData.cnt = singleData.cnt or 0
  431. singleData.state = singleData.state or 0
  432. if singleData.cnt > 0 then
  433. break
  434. end
  435. singleData.cnt = nowHuoYue
  436. isChange = true
  437. -- if human.db.absAct[id].drum[taskID].state ~= 0 and cnt < 0 then
  438. -- human.db.absAct[id].drum[taskID].cnt = human.db.absAct[id].drum[taskID].cnt - cnt
  439. -- end
  440. local config = AbsActExcel.drum[taskID]
  441. -- 锟斤拷锟斤拷锟斤拷锟斤拷
  442. if singleData.cnt >= config.needCnt and singleData.state == 0 then
  443. singleData.state = 1
  444. -- 锟叫讹拷锟角凤拷锟斤拷锟斤拷锟斤拷锟斤拷
  445. for i = 1,#config.blasting do
  446. local blastingID = config.blasting[i]
  447. local blastingConfig = AbsActExcel.blasting[blastingID]
  448. human.db.absAct[id].blasting[blastingID] = human.db.absAct[id].blasting[blastingID] or {}
  449. human.db.absAct[id].blasting[blastingID].cnt = human.db.absAct[id].blasting[blastingID].cnt or 0
  450. human.db.absAct[id].blasting[blastingID].state = human.db.absAct[id].blasting[blastingID].state or 0
  451. human.db.absAct[id].blasting[blastingID].cnt = human.db.absAct[id].blasting[blastingID].cnt + 1
  452. if human.db.absAct[id].blasting[blastingID].cnt >= 3 and human.db.absAct[id].blasting[blastingID].state ~= 2 then
  453. human.db.absAct[id].blasting[blastingID].state = 1
  454. end
  455. end
  456. end
  457. end
  458. end
  459. if isChange then
  460. YunYingLogic.sendBanner(human)
  461. YunYingLogic.sendGroupUpdate(YYInfo[id], human, absConfig.panelID)
  462. end
  463. end
  464. end
  465. function onLogin(human, id)
  466. specialFunc(human, id)
  467. end
  468. function isRed(human, YYInfo, funcConfig)
  469. local state = AbsActLogic.isStarted(human, funcConfig.funcID)
  470. if not state then return end
  471. local absConfig = AbsActExcel.absActivity[funcConfig.funcID]
  472. local absAct = human.db.absAct[funcConfig.funcID]
  473. if not absAct then return true end
  474. initDB(human,funcConfig.funcID)
  475. for k,v in pairs(absAct.drum) do
  476. if v.state == 1 then
  477. return true
  478. end
  479. end
  480. for k,v in pairs(absAct.blasting) do
  481. if v.state == 1 then
  482. return true
  483. end
  484. end
  485. for k,v in pairs(absAct.box) do
  486. if v == 1 then
  487. return true
  488. end
  489. end
  490. return false
  491. end
  492. -- 锟斤拷锟斤拷锟斤拷
  493. function buling(human,funcID,conf)
  494. -- 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷为30锟斤拷
  495. AbsActLogic.checkAbsActClean(human, funcID)
  496. initDB(human,funcID)
  497. local absConfig = AbsActExcel.absActivity[funcID]
  498. --
  499. local absAct = human.db.absAct[funcID]
  500. if absAct.buling == 1 then
  501. return
  502. end
  503. absAct.buling = 1
  504. local config = AbsActExcel.blastingBox
  505. local len = #config
  506. for i = 1,len do
  507. if config[i].needCnt > absAct.blastingCnt then
  508. absAct.blastingCnt = config[i].needCnt
  509. absAct.box[i] = 1
  510. end
  511. end
  512. getAndSendMsg(human,id,absConfig.actID)
  513. end