Commit cf9eda88cec208bf5aec29efdfe9bcbefbd75487
Merge branch 'tr/bugfix-qa' into tr/develop
* tr/bugfix-qa: 进入中继层补给药剂,补足到上限,扣除错误 宝藏怪
Showing
2 changed files
with
29 additions
and
20 deletions
Show diff stats
src/adv/Adv.lua
@@ -1187,10 +1187,17 @@ function Adv:supplyPotion() | @@ -1187,10 +1187,17 @@ function Adv:supplyPotion() | ||
1187 | for potionId, set in pairs(potionCsv) do | 1187 | for potionId, set in pairs(potionCsv) do |
1188 | local count = potionBag[potionId] or 0 | 1188 | local count = potionBag[potionId] or 0 |
1189 | if count > 0 then | 1189 | if count > 0 then |
1190 | - local level = dishTree:getv(potionId,1) | ||
1191 | - local num = math.min(set[level].limit,count) | ||
1192 | - advItems = advItems:setv(potionId,num) | ||
1193 | - potionBag[potionId] = num ~= count and (count - num) or nil | 1190 | + local max = set[dishTree:getv(potionId,1)].limit |
1191 | + local old = advItems:getv(potionId,0) | ||
1192 | + local need = max - old | ||
1193 | + | ||
1194 | + if need < count then | ||
1195 | + advItems = advItems:setv(potionId,max) | ||
1196 | + potionBag[potionId] = count - need | ||
1197 | + else | ||
1198 | + advItems = advItems:setv(potionId,old + count) | ||
1199 | + potionBag[potionId] = nil | ||
1200 | + end | ||
1194 | end | 1201 | end |
1195 | end | 1202 | end |
1196 | self.owner:updateProperties({ | 1203 | self.owner:updateProperties({ |
src/models/Activity.lua
@@ -963,25 +963,27 @@ activityFunc[Activity.ActivityType.Crisis] = { | @@ -963,25 +963,27 @@ activityFunc[Activity.ActivityType.Crisis] = { | ||
963 | for id, actSet in pairs(actCsv) do | 963 | for id, actSet in pairs(actCsv) do |
964 | if actSet.type == atype then | 964 | if actSet.type == atype then |
965 | local status = actData.task[id] or 0 | 965 | local status = actData.task[id] or 0 |
966 | - status = status + count | ||
967 | - if status >= actSet.condition1 then | ||
968 | - local reward | ||
969 | - if actSet.loop == 1 then | ||
970 | - local rcount = math.floor(status / actSet.condition1) | ||
971 | - reward = actSet.reward:toNumMap() | ||
972 | - for itemId, itemC in pairs(reward) do | ||
973 | - reward[itemId] = itemC * rcount | 966 | + if status ~= -1 then |
967 | + status = status + count | ||
968 | + if status >= actSet.condition1 then | ||
969 | + local reward | ||
970 | + if actSet.loop == 1 then | ||
971 | + local rcount = math.floor(status / actSet.condition1) | ||
972 | + reward = actSet.reward:toNumMap() | ||
973 | + for itemId, itemC in pairs(reward) do | ||
974 | + reward[itemId] = itemC * rcount | ||
975 | + end | ||
976 | + status = status % actSet.condition1 | ||
977 | + else | ||
978 | + reward = actSet.reward | ||
979 | + status = -1 | ||
974 | end | 980 | end |
975 | - status = status % actSet.condition1 | ||
976 | - else | ||
977 | - reward = actSet.reward | ||
978 | - status = -1 | ||
979 | - end | ||
980 | 981 | ||
981 | - self.owner:award(reward, {log = {desc = "activity_crisis"}, notNotify = not notify}) | 982 | + self.owner:award(reward, {log = {desc = "activity_crisis"}, notNotify = not notify}) |
983 | + end | ||
984 | + actData.task[id] = status | ||
985 | + change = true | ||
982 | end | 986 | end |
983 | - actData.task[id] = status | ||
984 | - change = true | ||
985 | end | 987 | end |
986 | end | 988 | end |
987 | if change then | 989 | if change then |