Commit a0013f0b66f36f14f252f5c4599c849360ceec23

Authored by zhouhaihai
1 parent ffe27b94

零件分批推送

Showing 2 changed files with 32 additions and 7 deletions   Show diff stats
src/actions/GmAction.lua
... ... @@ -55,7 +55,7 @@ function _M.get(role, pms)
55 55 elseif pms.pm1 == "RUNE" then
56 56 for itemId = 2000 , 3000 do
57 57 if csvdb["itemCsv"][itemId] then
58   - role:award({[itemId] = 3})
  58 + role:award({[itemId] = 1})
59 59 end
60 60 end
61 61 elseif pms.pm1 == "FRAG" then
... ...
src/actions/RoleAction.lua
... ... @@ -15,6 +15,7 @@ local tconcat = table.concat
15 15 local httpc = require("http.httpc")
16 16  
17 17 local WAVE_HERO_NUMS = 150
  18 +local WAVE_RUNE_NUMS = 150
18 19  
19 20 local function validName(name)
20 21 name = string.upper(name)
... ... @@ -141,6 +142,16 @@ function _M.loginRpc( agent, data )
141 142 table_insert(modules, "heros")
142 143 end
143 144  
  145 + local runeIds = {}
  146 + for id ,_ in pairs(role.runeBag) do
  147 + table.insert(runeIds, id)
  148 + end
  149 + local runeWave = math.ceil(#runeIds / WAVE_RUNE_NUMS)
  150 + if #runeIds <= 50 then
  151 + runeWave = 0
  152 + table_insert(modules, "runeBag")
  153 + end
  154 +
144 155 for _, name in ipairs(modules) do
145 156 response[name] = {}
146 157 for id, unit in pairs(role[name]) do
... ... @@ -148,18 +159,31 @@ function _M.loginRpc( agent, data )
148 159 end
149 160 end
150 161  
151   - response.wave = 2 + heroWave
  162 + response.wave = 1 + heroWave + runeWave
152 163  
153 164 SendPacket(actionCodes.Role_loginRpc, MsgPack.pack(response))
154 165  
155   - local runeResp = {runeBag = {}}
156   - for _,rune in pairs(role.runeBag) do
157   - runeResp.runeBag[rune:getProperty("uid")]=rune:data()
  166 + local curWave = 1
  167 +
  168 + local runeIndex = 1
  169 + for index = curWave + 1, curWave + runeWave do
  170 + local runeResponse = {runeBag = {}}
  171 + for i = runeIndex, runeIndex + WAVE_RUNE_NUMS do
  172 + local runeId = runeIds[i]
  173 + if not runeId then
  174 + break
  175 + end
  176 + local rune = role.runeBag[runeId]
  177 + table.insert(runeResponse.runeBag, rune:data())
  178 + runeIndex = runeIndex + 1
  179 + end
  180 + runeResponse.runeWave = index
  181 + SendPacket(actionCodes.Role_loginRpc, MsgPack.pack(runeResponse))
158 182 end
159   - SendPacket(actionCodes.Role_loginRpc, MsgPack.pack(runeResp))
  183 + curWave = curWave + runeWave
160 184  
161 185 local heroIndex = 1
162   - for index = 3, heroWave + 2 do
  186 + for index = curWave + 1, curWave + heroWave do
163 187 local heroResponse = {heros = {}}
164 188 for i = heroIndex, heroIndex + WAVE_HERO_NUMS do
165 189 local heroId = heroIds[i]
... ... @@ -173,6 +197,7 @@ function _M.loginRpc( agent, data )
173 197 heroResponse.heroWave = index
174 198 SendPacket(actionCodes.Role_loginRpc, MsgPack.pack(heroResponse))
175 199 end
  200 + curWave = curWave + heroWave
176 201  
177 202 -- role:log("login", { ip = agent.ip, diamond = role:getProperty("diamond"), reDiamond = role:getProperty("reDiamond")})
178 203  
... ...