ZhanbuLogic.lua 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614
  1. local ZhanbuExcel = require("excel.zhanbu")
  2. local Msg = require("core.Msg")
  3. local BagLogic = require("bag.BagLogic")
  4. local HeroGrid = require("hero.HeroGrid")
  5. local Util = require("common.Util")
  6. local ObjHuman = require("core.ObjHuman")
  7. local RoleSystemLogic = require("roleSystem.RoleSystemLogic")
  8. local RoleSystemDefine = require("roleSystem.RoleSystemDefine")
  9. local Lang = require("common.Lang")
  10. local Broadcast = require("broadcast.Broadcast")
  11. local SysParameter = require("common.SysParameter")
  12. local ChengjiuLogic = require("chengjiu.ChengjiuLogic")
  13. local ChengjiuDefine = require("chengjiu.ChengjiuDefine")
  14. local HeroExcel = require("excel.hero")
  15. local HeroBook = require("hero.HeroBook")
  16. local DropExchangeLogic = require("absAct.DropExchangeLogic")
  17. local HeroGrowUp = require("absAct.HeroGrowUp")
  18. local MengxinLogic = require("present.MengxinLogic")
  19. local AbsZhanbuLunpanLogic = require("absAct.AbsZhanbuLunpanLogic")
  20. local YunYingLogic = require("yunying.YunYingLogic")
  21. local TalismanLogic = require("talisman.TalismanLogic")
  22. local RecommendLineup = require("drawCard.RecommendLineup")
  23. --[[
  24. pool ����
  25. hand ����
  26. handCnt ��������
  27. money ӵ�е�������
  28. lv ���صȼ�
  29. refreshCnt ˢ�´���
  30. ts ���߻ظ���ʱ
  31. isGuide �Ƿ���������
  32. handMaxCnt ���Ƹ���
  33. heartHero ����Ӣ��
  34. ]]
  35. local CARD_POOL_MAX_CNT = 5 -- ����Ӣ������
  36. local AUTO_GET_MONEY_MAX = 99 -- �Զ��ظ�����������
  37. local CARD_POOL_REFRESH = 2 -- ˢ�¿������������
  38. local AUTO_GET_MONEY_TS = 300 -- �Զ��ظ�����ʱ��
  39. CARD_POOL = CARD_POOL or {}
  40. function initAfterStart()
  41. for i = 1,#ZhanbuExcel.pool do
  42. local grade = ZhanbuExcel.pool[i].grade
  43. local heroID = ZhanbuExcel.pool[i].heroID
  44. local weight = ZhanbuExcel.pool[i].weight
  45. CARD_POOL[grade] = CARD_POOL[grade] or {}
  46. CARD_POOL[grade].weight = CARD_POOL[grade].weight or 0
  47. CARD_POOL[grade].weight = CARD_POOL[grade].weight + ZhanbuExcel.pool[i].weight
  48. CARD_POOL[grade].pool = CARD_POOL[grade].pool or {}
  49. CARD_POOL[grade].pool[#CARD_POOL[grade].pool + 1] = {heroID,weight,i}
  50. end
  51. end
  52. --获取最大占卜积分的加成值
  53. local function getMaxPointsAdd(human)
  54. local maxPointsAdd = TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.ZHANBU_MAX_POINTS) or 0
  55. return maxPointsAdd
  56. end
  57. local function initDB(human)
  58. if human.db.zhanbu == nil then
  59. local maxPointsAdd = getMaxPointsAdd(human)
  60. human.db.zhanbu = {}
  61. local zhanbu = human.db.zhanbu
  62. zhanbu.hand = {}
  63. zhanbu.handCnt = 0
  64. zhanbu.handMaxCnt = 4 -- ���������Ϊ4��
  65. zhanbu.money = AUTO_GET_MONEY_MAX + maxPointsAdd
  66. zhanbu.lv = 1
  67. zhanbu.isGuide = 1
  68. zhanbu.refreshCnt = 0
  69. zhanbu.heartHero = {}
  70. zhanbu.pool = {}
  71. refreshPool(human)
  72. end
  73. -- ���û�û��heartHero
  74. if human.db.zhanbu.heartHero == nil then
  75. human.db.zhanbu.heartHero = {}
  76. end
  77. local cjPrivilege = ChengjiuLogic.checkPrivilege(human, ChengjiuDefine.PRIVILEGE_TYPE_7)
  78. if cjPrivilege then
  79. -- �Ѽ������Ȩ����Ϊ5��
  80. human.db.zhanbu.handMaxCnt = 5
  81. else
  82. if human.db.zhanbu.hand[5] ~= nil then
  83. -- ������ҵ��������������ߣ�Ĭ�ϼ���
  84. human.db.zhanbu.handMaxCnt = 5
  85. else
  86. human.db.zhanbu.handMaxCnt = 4
  87. end
  88. end
  89. end
  90. function refreshPool(human)
  91. -- ��ʼ������
  92. initDB(human)
  93. local totalWeight = 0
  94. local weightConfig = ZhanbuExcel.poolLv[human.db.zhanbu.lv]
  95. for i = 1,#weightConfig.weight do
  96. totalWeight = totalWeight + weightConfig.weight[i]
  97. end
  98. -- ����һ��
  99. local cardPoolTb = Util.copyTable(CARD_POOL)
  100. for i = 1,#cardPoolTb[3].pool do
  101. if cardPoolTb[3].pool[i][1] == human.db.zhanbu.heartHero[1] or
  102. cardPoolTb[3].pool[i][1] == human.db.zhanbu.heartHero[2] or
  103. cardPoolTb[3].pool[i][1] == human.db.zhanbu.heartHero[3] then
  104. local newWeight = math.floor(cardPoolTb[3].pool[i][2] * 20 / 100)
  105. cardPoolTb[3].weight = cardPoolTb[3].weight + newWeight
  106. cardPoolTb[3].pool[i][2] = cardPoolTb[3].pool[i][2] + newWeight
  107. end
  108. end
  109. -- �������ſ�
  110. for i = 1,CARD_POOL_MAX_CNT do
  111. local randomGrade = math.random(1,totalWeight)
  112. -- ��ȡ���� R or SR or SSR
  113. for j = 1,#weightConfig.weight do
  114. if randomGrade <= weightConfig.weight[j] then
  115. local randomCard = math.random(1,cardPoolTb[j].weight)
  116. -- ��ȡ��
  117. for k = 1,#cardPoolTb[j].pool do
  118. if randomCard <= cardPoolTb[j].pool[k][2] then
  119. human.db.zhanbu.pool[i] = cardPoolTb[j].pool[k][3]
  120. break
  121. end
  122. randomCard = randomCard - cardPoolTb[j].pool[k][2]
  123. end
  124. break
  125. end
  126. randomGrade = randomGrade - weightConfig.weight[j]
  127. end
  128. end
  129. end
  130. function zhanbuQuery(human)
  131. -- ��ʼ������
  132. initDB(human)
  133. local msgRet = Msg.gc.GC_ZHANBU_QUERY
  134. local len = 0
  135. for i = 1,CARD_POOL_MAX_CNT do
  136. if human.db.zhanbu.pool[i] ~= nil then
  137. len = len + 1
  138. local index = human.db.zhanbu.pool[i]
  139. local config = ZhanbuExcel.pool[index]
  140. HeroGrid.makeHeroSimpleByID(msgRet.heroPool[len].heroInfo, config.heroID)
  141. msgRet.heroPool[len].price = config.price
  142. msgRet.heroPool[len].index = i
  143. end
  144. end
  145. msgRet.isGuide = human.db.zhanbu.isGuide or 0
  146. -- ��������������������ݷŵ�������
  147. if human.db.zhanbu.isGuide == 1 then
  148. len = 0
  149. sysHeroList = SysParameter.getSysParameterTb(SysParameter.PARAMETER_16)
  150. for i = 1,#sysHeroList do
  151. len = len + 1
  152. local index = sysHeroList[i]
  153. local config = ZhanbuExcel.pool[index]
  154. human.db.zhanbu.pool[i] = index
  155. HeroGrid.makeHeroSimpleByID(msgRet.heroPool[len].heroInfo, config.heroID)
  156. msgRet.heroPool[len].price = config.price
  157. msgRet.heroPool[len].index = i
  158. end
  159. human.db.zhanbu.isGuide = 0
  160. end
  161. msgRet.heroPool[0] = len
  162. msgRet.isLock = 1
  163. if human.db.zhanbu.handMaxCnt == 5 then
  164. msgRet.isLock = 0
  165. end
  166. len = 0
  167. for i = 1,human.db.zhanbu.handMaxCnt do
  168. if human.db.zhanbu.hand[i] ~= nil then
  169. len = len + 1
  170. local index = human.db.zhanbu.hand[i]
  171. local config = ZhanbuExcel.pool[index]
  172. HeroGrid.makeHeroSimpleByID(msgRet.hand[len].heroInfo, config.heroID)
  173. msgRet.hand[len].price = config.price
  174. msgRet.hand[len].index = i
  175. end
  176. end
  177. msgRet.hand[0] = len
  178. local maxPointsAdd = getMaxPointsAdd(human)
  179. msgRet.cardRate = Util.copyTable(ZhanbuExcel.poolLv[human.db.zhanbu.lv].weight)
  180. msgRet.cardRate[0] = 3
  181. msgRet.lv = human.db.zhanbu.lv
  182. msgRet.money = human.db.zhanbu.money
  183. msgRet.moneyMax = AUTO_GET_MONEY_MAX + maxPointsAdd
  184. msgRet.moneyCost = 1
  185. msgRet.nextRecover = AUTO_GET_MONEY_TS
  186. msgRet.recoverTs = AUTO_GET_MONEY_TS
  187. if human.db.zhanbu.ts then
  188. local now = os.time()
  189. msgRet.nextRecover = human.db.zhanbu.ts + AUTO_GET_MONEY_TS - now
  190. if msgRet.nextRecover < 0 then
  191. msgRet.nextRecover = 0
  192. end
  193. end
  194. msgRet.hasRed = xinyiDot(human) and 1 or 0
  195. Msg.send(msgRet,human.fd)
  196. end
  197. function buyCard(human,index,heroID)
  198. -- �������ݶ�û�У��Ҹ�
  199. if human.db.zhanbu == nil or human.db.zhanbu.pool == nil then
  200. return
  201. end
  202. local heroIndex = human.db.zhanbu.pool[index]
  203. -- �������ݶԲ���
  204. local config = ZhanbuExcel.pool[heroIndex]
  205. if not config or config.heroID ~= heroID then
  206. return
  207. end
  208. -- �ж��Ƿ�ɺϳ���Ƭ
  209. local sameCnt = 0
  210. for i = 1,human.db.zhanbu.handMaxCnt do
  211. if human.db.zhanbu.hand[i] ~= nil and
  212. human.db.zhanbu.hand[i] == heroIndex then
  213. sameCnt = sameCnt + 1
  214. end
  215. end
  216. -- �ж������Ƿ�
  217. if human.db.zhanbu.money < config.price then
  218. return Broadcast.sendErr(human,Lang.ABS_ITEM_ERR)
  219. end
  220. local msgRet = Msg.gc.GC_ZHANBU_BUY_CARD
  221. -- �ɺϳ���Ƭ
  222. local maxPointsAdd = getMaxPointsAdd(human)
  223. if sameCnt >= 2 then
  224. -- �۳�����
  225. human.db.zhanbu.money = human.db.zhanbu.money - config.price
  226. RoleSystemLogic.onDot(human,RoleSystemDefine.ROLE_SYS_ID_502)
  227. -- �Զ��ظ���ʱ
  228. if human.db.zhanbu.money < AUTO_GET_MONEY_MAX + maxPointsAdd then
  229. human.db.zhanbu.ts = human.db.zhanbu.ts or os.time()
  230. end
  231. -- �۳�����
  232. for i = 1,human.db.zhanbu.handMaxCnt do
  233. if human.db.zhanbu.hand[i] ~= nil and
  234. human.db.zhanbu.hand[i] == heroIndex then
  235. human.db.zhanbu.hand[i] = nil
  236. human.db.zhanbu.handCnt = human.db.zhanbu.handCnt - 1
  237. end
  238. end
  239. -- �ӿ�����ɾ��
  240. human.db.zhanbu.pool[index] = nil
  241. -- ������Ƭ
  242. local randomCnt = math.random(config.chipCnt[1],config.chipCnt[2])
  243. local item = {}
  244. item[config.heroID] = randomCnt
  245. BagLogic.addItem(human, config.heroID, randomCnt, "zhanbu")
  246. if config.grade == 3 then
  247. DropExchangeLogic.drawSSR(human, item, 1)
  248. end
  249. local zhanbuActItemID,zhanbuActCnt = AbsZhanbuLunpanLogic.getZhanbuComposeCnt(human, config.grade)
  250. if zhanbuActCnt and zhanbuActCnt > 0 then
  251. item[zhanbuActItemID] = zhanbuActCnt
  252. BagLogic.addItem(human, zhanbuActItemID, zhanbuActCnt, "zhanbu")
  253. end
  254. BagLogic.sendItemGetList(human, item, "zhanbu")
  255. msgRet.index = 0
  256. HeroGrowUp.onCallback(human, HeroGrowUp.TASKTYPE3, 1)
  257. MengxinLogic.onCallBack(human,MengxinLogic.MX_TASK_TYPE_6,1)
  258. else
  259. -- �ж������Ƿ�����
  260. if human.db.zhanbu.handCnt >= human.db.zhanbu.handMaxCnt then
  261. return Broadcast.sendErr(human,Lang.ZHANBU_HAND_CARD_FULL)
  262. end
  263. -- �۳�����
  264. human.db.zhanbu.money = human.db.zhanbu.money - config.price
  265. RoleSystemLogic.onDot(human,RoleSystemDefine.ROLE_SYS_ID_502)
  266. -- �Զ��ظ���ʱ
  267. if human.db.zhanbu.money < AUTO_GET_MONEY_MAX + maxPointsAdd then
  268. human.db.zhanbu.ts = human.db.zhanbu.ts or os.time()
  269. end
  270. -- �ӿ�����ɾ��
  271. human.db.zhanbu.pool[index] = nil
  272. for i = 1,human.db.zhanbu.handMaxCnt do
  273. if human.db.zhanbu.hand[i] == nil then
  274. human.db.zhanbu.handCnt = human.db.zhanbu.handCnt + 1
  275. human.db.zhanbu.hand[i] = heroIndex
  276. msgRet.index = i
  277. break
  278. end
  279. end
  280. end
  281. -- ֪ͨ�ͻ��˹���ɹ�
  282. Msg.send(msgRet,human.fd)
  283. -- ˢ�½���
  284. zhanbuQuery(human)
  285. YunYingLogic.onCallBack(human, "onZhanBuBuyCard", config.price)
  286. end
  287. function sellCard(human,index,heroID)
  288. -- �������ݶ�û�У��Ҹ�
  289. if human.db.zhanbu == nil or human.db.zhanbu.hand == nil then
  290. return
  291. end
  292. -- У�鿨�ĺϷ���
  293. local heroIndex = human.db.zhanbu.hand[index]
  294. local config = ZhanbuExcel.pool[heroIndex]
  295. if heroIndex == nil or config == nil then
  296. return
  297. end
  298. -- ɾ������
  299. human.db.zhanbu.hand[index] = nil
  300. human.db.zhanbu.handCnt = human.db.zhanbu.handCnt - 1
  301. -- ���ӵ���
  302. human.db.zhanbu.money = human.db.zhanbu.money + config.price
  303. RoleSystemLogic.onDot(human,RoleSystemDefine.ROLE_SYS_ID_502)
  304. -- �Զ��ظ���ʱ
  305. local maxPointsAdd = getMaxPointsAdd(human)
  306. if human.db.zhanbu.money >= AUTO_GET_MONEY_MAX + maxPointsAdd then
  307. human.db.zhanbu.ts = nil
  308. end
  309. -- ֪ͨ�ͻ����۳��ɹ�
  310. Msg.send(Msg.gc.GC_ZHANBU_SELL_CARD,human.fd)
  311. -- ˢ�½���
  312. zhanbuQuery(human)
  313. YunYingLogic.onCallBack(human, "onZhanBuBuyCard", -config.price)
  314. end
  315. function changePos(human,posList)
  316. -- �������ݶ�û�У��Ҹ�
  317. if human.db.zhanbu == nil or human.db.zhanbu.hand == nil then
  318. return
  319. end
  320. -- ��������λ���Ƿ�Ϸ�
  321. local tb = Util.split(posList, "|")
  322. -- ���Ȳ��ԣ����Ϸ�
  323. if #tb > human.db.zhanbu.handMaxCnt then
  324. return
  325. end
  326. for i = 1,#tb do
  327. -- ���ܽ���ɾ��
  328. tb[i] = tonumber(tb[i])
  329. if tb[i] == 0 and human.db.zhanbu.hand[i] ~= nil then
  330. return
  331. end
  332. -- ��λ�ò��Ϸ�
  333. if tb[i] > human.db.zhanbu.handMaxCnt then
  334. return
  335. end
  336. end
  337. -- �����
  338. local dataList = Util.copyTable(human.db.zhanbu.hand)
  339. human.db.zhanbu.hand = {}
  340. for i = 1,human.db.zhanbu.handMaxCnt do
  341. if tb[i] ~= 0 then
  342. human.db.zhanbu.hand[tb[i]] = dataList[i]
  343. end
  344. end
  345. zhanbuQuery(human)
  346. end
  347. function refreshCardPool(human)
  348. -- �������ݶ�û�У��Ҹ�
  349. if human.db.zhanbu == nil or human.db.zhanbu.hand == nil then
  350. return
  351. end
  352. -- У����ϲ���
  353. if human.db.zhanbu.money < CARD_POOL_REFRESH then
  354. return Broadcast.sendErr(human,Lang.ABS_ITEM_ERR)
  355. end
  356. -- �۳�����
  357. human.db.zhanbu.money = human.db.zhanbu.money - CARD_POOL_REFRESH
  358. RoleSystemLogic.onDot(human,RoleSystemDefine.ROLE_SYS_ID_502)
  359. -- �Զ��ظ���ʱ
  360. local maxPointsAdd = getMaxPointsAdd(human)
  361. if human.db.zhanbu.money < AUTO_GET_MONEY_MAX + maxPointsAdd then
  362. human.db.zhanbu.ts = human.db.zhanbu.ts or os.time()
  363. end
  364. -- ˢ��
  365. refreshPool(human)
  366. -- ˢ�³ɹ�������+1
  367. onLv(human)
  368. -- ˢ�½���
  369. zhanbuQuery(human)
  370. --ռ�����̻ ˢ�º�ص�
  371. AbsZhanbuLunpanLogic.onZhanbuRefresh(human)
  372. YunYingLogic.onCallBack(human, "onZhanBuBuyCard", CARD_POOL_REFRESH)
  373. end
  374. -- ����Ӣ��
  375. function zhanbuHeartHeroQuery(human)
  376. -- �������ݶ�û�У��Ҹ�
  377. if human.db.zhanbu == nil or human.db.zhanbu.hand == nil then
  378. return
  379. end
  380. local msgRet = Msg.gc.GC_ZHANBU_HEART_HERO_QUERY
  381. for i = 1,3 do
  382. local heroID = human.db.zhanbu.heartHero[i]
  383. msgRet.heroInfo[i] = heroID or 0
  384. end
  385. msgRet.heroInfo[0] = 3
  386. local len = 0
  387. for heroID,v in pairs(human.db.heroBook) do
  388. local heroConfig = HeroExcel.hero[heroID]
  389. if heroConfig and heroConfig.grade >= 4 then
  390. len = len + 1
  391. msgRet.heroList[len] = heroID
  392. end
  393. end
  394. msgRet.heroList[0] = len
  395. Msg.send(msgRet,human.fd)
  396. end
  397. -- ��������Ӣ��
  398. function setHeartHero(human,heroList)
  399. -- �������ݶ�û�У��Ҹ�
  400. if human.db.zhanbu == nil or human.db.zhanbu.hand == nil then
  401. return
  402. end
  403. -- ��������λ���Ƿ�Ϸ�
  404. local tb = Util.split(heroList, "|")
  405. -- ���Ȳ��ԣ����Ϸ�
  406. local len = #tb
  407. if len > 3 then
  408. return
  409. end
  410. -- У��Ӣ���Ƿ���ͼ���У��Ƿ���SSR
  411. for i = 1,len do
  412. tb[i] = tonumber(tb[i])
  413. local heroID = tb[i]
  414. if heroID ~= 0 then
  415. local heroConfig = HeroExcel.hero[heroID]
  416. -- �����Ѽ���ͼ���У�����
  417. if not HeroBook.isGet(human, heroID,heroConfig.star) then
  418. return
  419. end
  420. -- ����SSR������
  421. if heroConfig.grade < 4 then
  422. return
  423. end
  424. end
  425. end
  426. -- �������������
  427. human.db.zhanbu.heartHero = {}
  428. for i = 1,len do
  429. if tb[i] ~= 0 then
  430. human.db.zhanbu.heartHero[i] = tb[i]
  431. end
  432. end
  433. -- ˢ������Ӣ������
  434. zhanbuHeartHeroQuery(human)
  435. end
  436. function onLv(human)
  437. human.db.zhanbu.refreshCnt = human.db.zhanbu.refreshCnt + 1
  438. if human.db.zhanbu.refreshCnt >= ZhanbuExcel.poolLv[human.db.zhanbu.lv].cnt and
  439. human.db.zhanbu.lv < #ZhanbuExcel.poolLv then
  440. human.db.zhanbu.lv = human.db.zhanbu.lv + 1
  441. local msgRet = Msg.gc.GC_ZHANBU_LVUP
  442. msgRet.cardRate = Util.copyTable(ZhanbuExcel.poolLv[human.db.zhanbu.lv].weight)
  443. msgRet.cardRate[0] = 3
  444. msgRet.lv = human.db.zhanbu.lv
  445. Msg.send(msgRet,human.fd)
  446. end
  447. end
  448. function checkRecover()
  449. local now = os.time()
  450. for _,human in pairs(ObjHuman.onlineUuid) do
  451. if human.db.zhanbu and human.db.zhanbu.ts then
  452. local maxPointsAdd = getMaxPointsAdd(human)
  453. local finalMaxPoints = maxPointsAdd + AUTO_GET_MONEY_MAX
  454. local ts = now - human.db.zhanbu.ts
  455. local cnt = math.floor(ts/AUTO_GET_MONEY_TS)
  456. if cnt >= 1 and human.db.zhanbu.money < finalMaxPoints then
  457. human.db.zhanbu.money = human.db.zhanbu.money + cnt
  458. human.db.zhanbu.ts = human.db.zhanbu.ts + AUTO_GET_MONEY_TS * cnt
  459. if human.db.zhanbu.money >= finalMaxPoints then
  460. human.db.zhanbu.ts = nil
  461. human.db.zhanbu.money = finalMaxPoints
  462. end
  463. RoleSystemLogic.onDot(human,RoleSystemDefine.ROLE_SYS_ID_502)
  464. elseif human.db.zhanbu.money >= finalMaxPoints then
  465. human.db.zhanbu.ts = nil
  466. end
  467. end
  468. end
  469. end
  470. function isDot(human)
  471. if human.db.lv < 14 then
  472. return
  473. end
  474. initDB(human)
  475. if human.db.zhanbu and human.db.zhanbu.money >= 30 then
  476. return true
  477. end
  478. if xinyiDot(human) then
  479. return true
  480. end
  481. return
  482. end
  483. function updateDaily(human)
  484. if human.db.zhanbu == nil then
  485. return
  486. end
  487. human.db.zhanbu.lv = 1
  488. human.db.zhanbu.refreshCnt = 0
  489. if human.db.zhanbu and human.db.zhanbu.money then
  490. local ts = human.db.zhanbu.ts
  491. local maxPointsAdd = getMaxPointsAdd(human)
  492. if not ts and human.db.zhanbu.money < AUTO_GET_MONEY_MAX + maxPointsAdd then
  493. human.db.zhanbu.ts = os.time()
  494. end
  495. end
  496. end
  497. function onLogin(human)
  498. --处理mone达到老的上限值后, human.db.zhanbu.ts为nil,导致后面获得秘宝时,无法获得秘宝加成情况
  499. if human.db.zhanbu and human.db.zhanbu.money then
  500. local ts = human.db.zhanbu.ts
  501. local maxPointsAdd = getMaxPointsAdd(human)
  502. if not ts and human.db.zhanbu.money < AUTO_GET_MONEY_MAX + maxPointsAdd then
  503. human.db.zhanbu.ts = os.time()
  504. end
  505. end
  506. RecommendLineup.RecommendLineup_UpDate(human)
  507. end
  508. function addZhanbuItem(human,cnt)
  509. -- ��ʼ������
  510. initDB(human)
  511. human.db.zhanbu.money = human.db.zhanbu.money + cnt
  512. end
  513. function xinyiDot(human)
  514. if human.db.heroBook == nil then return end
  515. local count = 0
  516. for k ,v in pairs(human.db.heroBook) do
  517. if type(k) == "number" then
  518. if HeroExcel.hero[k].grade >= 4 then
  519. count = count + 1
  520. end
  521. end
  522. end
  523. local xinyiCount = 0
  524. for i = 1, 3 do
  525. if human.db.zhanbu.heartHero[i] ~= nil then
  526. xinyiCount = xinyiCount + 1
  527. end
  528. end
  529. if xinyiCount < count and xinyiCount < 3 then
  530. return true
  531. end
  532. end