314bc5df
zhengshouren
提交服务器初始代码
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
local ipairs = ipairs
local table = table
local math = math
local next = next
local string = string
local redisproxy = redisproxy
local MsgPack = MsgPack
local getRandomName = getRandomName
local mcast_util = mcast_util
local string_format = string.format
local tonumber = tonumber
local require = require
local table_insert = table.insert
local tconcat = table.concat
local httpc = require("http.httpc")
|
2ca93972
liuzujun
添加邮件表
|
17
18
|
require "utils.MysqlUtil"
|
314bc5df
zhengshouren
提交服务器初始代码
|
19
|
local WAVE_HERO_NUMS = 150
|
a0013f0b
zhouhaihai
零件分批推送
|
20
|
local WAVE_RUNE_NUMS = 150
|
3d8468b2
liuzujun
火花系统
|
21
|
local WAVE_SPARK_NUMS = 150
|
314bc5df
zhengshouren
提交服务器初始代码
|
22
23
24
25
26
27
|
local function validName(name)
name = string.upper(name)
local exist = redisproxy:exists(string_format("user:%s", name))
if exist then return "existed" end
|
a5486ede
zhouhaihai
csvdata 修改为 share...
|
28
|
local SERV = string_format(".named%d", math.random(1, 5))
|
314bc5df
zhengshouren
提交服务器初始代码
|
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
local legal = skynet.call(SERV, "lua", "check", name)
return legal and "ok" or "illegal"
end
-- 随机玩家名
local function randomRoleName()
-- 过滤已经存在的名字
local name
repeat
name = getRandomName()
until validName(name) == "ok"
return name
end
local function setRoleName(uid, roleId)
local result
local name
local dbName
repeat
name = randomRoleName()
dbName = string.upper(name)
result = redisproxy:setnx(string_format("user:%s", dbName), roleId)
until result == 1
redisproxy:set(string_format("uid:%s", uid), dbName)
return name
end
local _M = {}
function _M.loginRpc( agent, data )
local msg = MsgPack.unpack(data)
local response = {}
|
e3c5cc5e
zhouhaihai
跨服竞技场over
|
60
61
62
63
64
|
if msg.codeVersion ~= globalCsv.codeVersion then
response.result = "UPDATE_TIP"
SendPacket(actionCodes.Role_loginRpc, MsgPack.pack(response))
return true
end
|
314bc5df
zhengshouren
提交服务器初始代码
|
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
-- 1.
local roleId = redisproxy:get(string_format("user:%s", string.upper(msg.name)))
if not roleId then
response.result = "NOT_EXIST"
SendPacket(actionCodes.Role_loginRpc, MsgPack.pack(response))
return true
end
roleId = tonumber(roleId)
--维护不能登录
local maintain = tonumber(redisproxy:hget("autoincrement_set", "maintain"))
if maintain and maintain > 0 then
|
0a07bdd9
zhouahaihai
角色升级 。gm
|
79
|
if tonumber(redisproxy:hget(string_format("role:%d", roleId), "ignoreMt")) ~= 1 then
|
314bc5df
zhengshouren
提交服务器初始代码
|
80
81
82
83
84
85
|
response.result = "MAINTAIN_TIP"
SendPacket(actionCodes.Role_loginRpc, MsgPack.pack(response))
return true
end
end
|
314bc5df
zhengshouren
提交服务器初始代码
|
86
87
88
89
|
local now = skynet.timex()
local role = agent.role
-- 2
if not role then
|
0de80321
liuzujun
创建游戏数据库,role对应mys...
|
90
|
local roleKey = string_format("%d", roleId)
|
6136eaca
liuzujun
添加好友表
|
91
|
if not roleExists(roleId) then
|
314bc5df
zhengshouren
提交服务器初始代码
|
92
93
94
95
96
97
98
99
|
response.result = "DB_ERROR"
SendPacket(actionCodes.Role_loginRpc, MsgPack.pack(response))
return true
end
-- 2a
role = require("models.Role").new({key = roleKey})
role:load()
role:loadAll()
|
44c6e479
zhouhaihai
增加部分日志
|
100
|
role:startActionUcode()
|
314bc5df
zhengshouren
提交服务器初始代码
|
101
102
103
|
else
role:reloadWhenLogin()
end
|
43cc5f51
gaofengduan
调整 equip 数据结构
|
104
|
|
39bcd7ca
zhouhaihai
LOG
|
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
role.sysVersion = msg.sysVersion
role.ip = agent.ip:toArray(false, ":")[1]
role.clientVersion = msg.clientVersion
role.network = msg.network
if msg.subId then
role:setProperty("sid", msg.subId)
end
if msg.deviceMode then
local deviceMode = tostring(msg.deviceMode)
if role:getProperty("dmode") ~= deviceMode then
role:setProperty("dmode", deviceMode)
end
end
if msg.device then
local device = tostring(msg.device)
if role:getProperty("device") ~= device then
role:setProperty("device", device)
end
end
|
072db127
zhouhaihai
推送
|
127
128
129
|
if msg.token then
role._pushToken = msg.token
end
|
39bcd7ca
zhouhaihai
LOG
|
130
|
|
0a07bdd9
zhouahaihai
角色升级 。gm
|
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
if not msg.isGMlogin then
local banTime = role:getProperty("banTime")
if banTime > now then
response.result = "BAN_TIP"
response.banTime = banTime
response.banType = role:getProperty("banType")
response.roleId = roleId
SendPacket(actionCodes.Role_loginRpc, MsgPack.pack(response))
return true
end
if banTime ~= 0 then
-- 清除封号状态
role:setBan(0)
end
end
|
39bcd7ca
zhouhaihai
LOG
|
146
|
|
aa74d6ef
zhouhaihai
掉落反馈
|
147
148
|
if msg.deviceMode then
local deviceMode = tostring(msg.deviceMode)
|
93f6e69b
liuzujun
拾荒选择时间,抽卡增加sr保底
|
149
150
|
if role:getProperty("dmode") ~= deviceMode then
role:setProperty("dmode", deviceMode)
|
aa74d6ef
zhouhaihai
掉落反馈
|
151
152
153
154
|
end
end
if msg.device then
local device = tostring(msg.device)
|
93f6e69b
liuzujun
拾荒选择时间,抽卡增加sr保底
|
155
156
|
if role:getProperty("device") ~= device then
role:setProperty("device", device)
|
aa74d6ef
zhouhaihai
掉落反馈
|
157
158
159
|
end
end
|
2ca93972
liuzujun
添加邮件表
|
160
|
SERV_OPEN = getDbCfgVal("server_info", "server_start", "str_value")
|
314bc5df
zhengshouren
提交服务器初始代码
|
161
|
|
be83d162
zhouahaihai
登陆成功。 增加数据结构修正功能
|
162
|
role:changeStructVersion() -- 数据结构 版本更新
|
70cc72d7
zhouhaihai
拾荒bug
|
163
|
role:getAdvData(true) -- 清掉不合格的数据
|
1b20cfdb
zhouhaihai
赛季更新完善 无尽冒险排行榜
|
164
|
role:advEndlessSeasonCheck(true) -- 冒险赛季更新检查
|
65b551a7
chenyueqi
海港贸易季初版
|
165
|
role:checkSeaportTrade() -- 检查海港贸易季活动
|
29fbbc10
zhouhaihai
夜间打工
|
166
167
168
|
if not next(role:getProperty("workBattle")) then
role:setProperty("workBattle", {round = math.floor((now - START_RESET_TIME) / 604800)})
end
|
314bc5df
zhengshouren
提交服务器初始代码
|
169
|
|
be83d162
zhouahaihai
登陆成功。 增加数据结构修正功能
|
170
|
-- 跨天登陆事件
|
ea40710f
zhouhaihai
活动
|
171
|
local resetMode = role:updateTimeReset(now)
|
be4e8031
zhouhaihai
活动 拾荒
|
172
173
|
if not resetMode or not resetMode["CrossDay"] then -- 没有跨天
role.activity:checkActivityStatus(now, false, false)
|
2f7891b4
zhouhaihai
运营需要
|
174
|
role:log("onLogin")
|
ea40710f
zhouhaihai
活动
|
175
|
end
|
ea40710f
zhouhaihai
活动
|
176
|
|
c384626d
zhouhaihai
好友
|
177
|
redisproxy:zadd(FRIEND_RECOMMEND, now, roleId)
|
be9c9ca6
zhouahaihai
角色评论
|
178
|
|
3e20f499
saicom
完善商城相关协议
|
179
|
for _, name in ipairs({"dailyData", "dinerData", "activity", "storeData"}) do
|
be9c9ca6
zhouahaihai
角色评论
|
180
|
response[name] = role[name]:data()
|
7f9f002d
liuzujun
循环周活动
|
181
182
|
--print("["..name.."]")
--dump(response[name])
|
be9c9ca6
zhouahaihai
角色评论
|
183
184
|
end
|
314bc5df
zhengshouren
提交服务器初始代码
|
185
186
187
|
response.role = role:data()
response.result = "SUCCESS"
response.serverTime = now
|
53b4b8bd
liuzujun
自动挂机下一关
|
188
|
--response.openTime = getServerOpenTs()
|
314bc5df
zhengshouren
提交服务器初始代码
|
189
|
|
0a07bdd9
zhouahaihai
角色升级 。gm
|
190
191
192
193
194
195
196
|
local modules = {}
local heroIds = {}
for heroId, _ in pairs(role.heros) do
table.insert(heroIds, heroId)
end
local heroWave = math.ceil(#heroIds / WAVE_HERO_NUMS)
|
6947e382
zhouahaihai
好感度, 皮肤
|
197
|
if #heroIds <= 50 then
|
0a07bdd9
zhouahaihai
角色升级 。gm
|
198
199
200
201
|
heroWave = 0
table_insert(modules, "heros")
end
|
a0013f0b
zhouhaihai
零件分批推送
|
202
203
204
205
206
207
208
209
210
211
|
local runeIds = {}
for id ,_ in pairs(role.runeBag) do
table.insert(runeIds, id)
end
local runeWave = math.ceil(#runeIds / WAVE_RUNE_NUMS)
if #runeIds <= 50 then
runeWave = 0
table_insert(modules, "runeBag")
end
|
3d8468b2
liuzujun
火花系统
|
212
213
214
215
216
217
218
219
220
221
|
local sparkIds = {}
for id ,_ in pairs(role.sparkBag) do
table.insert(sparkIds, id)
end
local sparkWave = math.ceil(#sparkIds / WAVE_SPARK_NUMS)
if #sparkIds <= 50 then
sparkWave = 0
table_insert(modules, "sparkBag")
end
|
0a07bdd9
zhouahaihai
角色升级 。gm
|
222
223
224
225
226
227
228
|
for _, name in ipairs(modules) do
response[name] = {}
for id, unit in pairs(role[name]) do
response[name][id] = unit:data()
end
end
|
3d8468b2
liuzujun
火花系统
|
229
|
response.wave = 1 + heroWave + runeWave + sparkWave + 1
|
314bc5df
zhengshouren
提交服务器初始代码
|
230
231
232
|
SendPacket(actionCodes.Role_loginRpc, MsgPack.pack(response))
|
a0013f0b
zhouhaihai
零件分批推送
|
233
234
|
local curWave = 1
|
3d8468b2
liuzujun
火花系统
|
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
|
local sparkIndex = 1
for index = curWave + 1, curWave + sparkWave do
local sparkResponse = {sparkBag = {}}
for i = sparkIndex, sparkIndex + WAVE_SPARK_NUMS do
local sparkId = sparkIds[i]
if not sparkId then
break
end
local spark = role.sparkBag[sparkId]
table.insert(sparkResponse.sparkBag, spark:data())
sparkIndex = sparkIndex + 1
end
sparkResponse.sparkWave = index
SendPacket(actionCodes.Role_loginRpc, MsgPack.pack(sparkResponse))
end
curWave = curWave + sparkWave
|
a0013f0b
zhouhaihai
零件分批推送
|
252
253
254
255
256
257
258
259
260
261
262
263
264
265
|
local runeIndex = 1
for index = curWave + 1, curWave + runeWave do
local runeResponse = {runeBag = {}}
for i = runeIndex, runeIndex + WAVE_RUNE_NUMS do
local runeId = runeIds[i]
if not runeId then
break
end
local rune = role.runeBag[runeId]
table.insert(runeResponse.runeBag, rune:data())
runeIndex = runeIndex + 1
end
runeResponse.runeWave = index
SendPacket(actionCodes.Role_loginRpc, MsgPack.pack(runeResponse))
|
43cc5f51
gaofengduan
调整 equip 数据结构
|
266
|
end
|
a0013f0b
zhouhaihai
零件分批推送
|
267
|
curWave = curWave + runeWave
|
43cc5f51
gaofengduan
调整 equip 数据结构
|
268
|
|
0a07bdd9
zhouahaihai
角色升级 。gm
|
269
|
local heroIndex = 1
|
a0013f0b
zhouhaihai
零件分批推送
|
270
|
for index = curWave + 1, curWave + heroWave do
|
0a07bdd9
zhouahaihai
角色升级 。gm
|
271
272
273
274
275
276
277
278
279
280
281
282
283
|
local heroResponse = {heros = {}}
for i = heroIndex, heroIndex + WAVE_HERO_NUMS do
local heroId = heroIds[i]
if not heroId then
break
end
local hero = role.heros[heroId]
table_insert(heroResponse.heros, hero:data())
heroIndex = heroIndex + 1
end
heroResponse.heroWave = index
SendPacket(actionCodes.Role_loginRpc, MsgPack.pack(heroResponse))
end
|
a0013f0b
zhouhaihai
零件分批推送
|
284
|
curWave = curWave + heroWave
|
314bc5df
zhengshouren
提交服务器初始代码
|
285
|
|
fa565e0c
zhouhaihai
优化结构
|
286
|
|
43cc5f51
gaofengduan
调整 equip 数据结构
|
287
|
|
314bc5df
zhengshouren
提交服务器初始代码
|
288
|
-- 注册全服广播
|
fa565e0c
zhouhaihai
优化结构
|
289
|
if not role._channelIdx then
|
06c7246e
liuzujun
按500人分线
|
290
291
292
|
local online = datacenter.get("onlineCount") or 0
local channel = math.floor(online / 500) + 1
--local channel = math.randomInt(1, 1)
|
fa565e0c
zhouhaihai
优化结构
|
293
294
295
296
297
298
299
|
role._channelIdx = channel
end
if not mcast_util.channel_world() then
local w_channel = datacenter.get( ("MC_W_CHANNEL" .. role._channelIdx) )
if w_channel then
mcast_util.sub_world(w_channel)
end
|
314bc5df
zhengshouren
提交服务器初始代码
|
300
|
end
|
c384626d
zhouhaihai
好友
|
301
302
303
|
-- 发下缓存的世界消息
local worldChatResponse = {worldChats = {}}
|
cd789e7c
zhouhaihai
不要聊天记录缓存
|
304
305
|
-- local ok, msgs = pcall(skynet.call, '.globald', "lua", "getWorldMsg", role._channelIdx)
local ok, msgs = true, {}
|
c384626d
zhouhaihai
好友
|
306
307
308
309
|
if not ok then
msgs = {}
end
worldChatResponse.worldChats = msgs
|
4cf74232
zhouhaihai
pvp
|
310
311
312
313
314
|
local redret = redisproxy:pipelining(function(red)
red:lrange(CHAT_OFFLINE:format(roleId), 0, -1)
red:del(CHAT_OFFLINE:format(roleId))
end)
worldChatResponse.p2pChats = redret[1]
|
c384626d
zhouhaihai
好友
|
315
316
317
318
319
|
worldChatResponse.chatWave = curWave + 1
curWave = curWave + 1
SendPacket(actionCodes.Role_loginRpc, MsgPack.pack(worldChatResponse))
|
fa565e0c
zhouhaihai
优化结构
|
320
321
322
323
324
325
326
327
|
datacenter.set("agent", roleId, {
serv = skynet.self(),
fd = agent.client_fd,
gate_serv = agent.gate_serv,
})
agent.role = role
start_agent_timer()
|
4cf74232
zhouhaihai
pvp
|
328
329
330
|
-- 玩家登陆做的一些操作
|
f7f26c15
zhouhaihai
编队整理 增加 tactics战术
|
331
|
role:updateHangTeamInfo()
|
4cf74232
zhouhaihai
pvp
|
332
|
role:savePvpCTeam()
|
33be3111
zhouhaihai
修改hangPass 结构
|
333
|
role:savePvpHTeam()
|
fa565e0c
zhouhaihai
优化结构
|
334
|
|
33be3111
zhouhaihai
修改hangPass 结构
|
335
|
local hangPass = role:getProperty("hangPass")
|
d02f7904
zhouhaihai
遗失的log
|
336
|
role:mylog("login", {key1 = agent.ip:toArray(false, ":")[1], int1 = hangPass[1] or 0})
|
7e61a962
liuzujun
新增通用生成订单协议,
|
337
|
role:onUploadLoginout(1, agent.client_fd)
|
77014b19
zhangqijia
fix: 新设备全局唯一,devi...
|
338
339
340
341
342
343
344
345
|
-- 是否是新设备
local deviced = cluster.query("center", "deviced")
if deviced then
local status, back = pcall(cluster.call, "center", deviced, "isNewDevice", {device = msg.device})
if status and back then
role:mylog("newdevice", {key1 = agent.ip:toArray(false, ":")[1]})
end
|
3aac1e3a
zhouhaihai
新设备
|
346
|
end
|
320f5b54
zhouhaihai
cb 返利
|
347
|
|
7d5e688f
liuzujun
临时清除活动电台任务
|
348
349
350
351
352
353
354
355
356
|
-- 临时处理方式,清空电台活动队伍
local radioTask = role:getProperty("radioTask")
for id, data in pairs(radioTask) do
if (data["actid"] or 0) ~= 0 then
radioTask[id] = nil
end
end
---
|
314bc5df
zhengshouren
提交服务器初始代码
|
357
358
359
|
return true
end
|
dac9fbcc
liuzujun
cb1活跃回馈
|
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
|
local function onCb1Back(newRole)
-- cb1活跃返利
skynet.timeout(0, function()
local cbbackd = cluster.query("center", "cb1backd")
local uid = newRole:getProperty("uid")
local roleId = newRole:getProperty("id")
local start = uid:find("_")
if start then
uid = uid:sub(start + 1)
end
if cbbackd then
local status, back = pcall(cluster.call, "center", cbbackd, "getCb1Reward", {uid = uid, id = roleId})
if status then
if back then
if back == 0 then
mysqlproxy:insertEmail({roleId = roleId, emailId = MailId.CB1BackAward1, createtime = skynet.timex()})
elseif back == 1 then
mysqlproxy:insertEmail({roleId = roleId, emailId = MailId.CB1BackAward2, createtime = skynet.timex()})
end
newRole:mylog("cb1back", {key1 = uid, int2 = roleId, int1=back})
end
else
skynet.error("[ERROR] cb1backd cant call center uid: " .. uid .. " roleId:" .. roleId)
end
else
skynet.error("[ERROR] cb1backd cant call center uid: " .. uid .. " roleId:" .. roleId)
end
end)
end
|
314bc5df
zhengshouren
提交服务器初始代码
|
390
391
392
393
394
395
|
function _M.createRpc(agent, data)
local msg = MsgPack.unpack(data)
local response = {}
-- 再次检查uid
local uid = tostring(msg.uid)
|
01be2d78
liuzujun
修改mysql链接断开重连的bug
|
396
397
|
--local user = redisproxy:get(string_format("uid:%s", uid))
local res, user = roleUidExists(uid)
|
314bc5df
zhengshouren
提交服务器初始代码
|
398
399
400
401
402
403
|
if user then
response.result = "SUCCESS"
response.roleName = user
SendPacket(actionCodes.Role_createRpc, MsgPack.pack(response))
return true
end
|
f58b315e
zhouhaihai
停止注册
|
404
405
406
407
408
409
410
|
local stopcreate = tonumber(redisproxy:hget("autoincrement_set", "stopcreate"))
if stopcreate and stopcreate > 0 then
response.result = "STOP_CREATE"
SendPacket(actionCodes.Role_createRpc, MsgPack.pack(response))
return true
end
|
314bc5df
zhengshouren
提交服务器初始代码
|
411
412
413
414
415
416
417
418
|
local roleId = getNextRoleId()
if not roleId then
response.result = "DB_FULL"
SendPacket(actionCodes.Role_createRpc, MsgPack.pack(response))
return true
end
local roleName = setRoleName(msg.uid, roleId)
|
314bc5df
zhengshouren
提交服务器初始代码
|
419
|
local newRole = require("models.Role").new({
|
0de80321
liuzujun
创建游戏数据库,role对应mys...
|
420
|
key = string_format("%d", roleId),
|
314bc5df
zhengshouren
提交服务器初始代码
|
421
422
|
id = roleId,
uid = tostring(msg.uid),
|
dc9d814f
zhouhaihai
邮件
|
423
|
sid = msg.subId or 0,
|
314bc5df
zhengshouren
提交服务器初始代码
|
424
425
|
name = roleName,
uname = msg.uname or "",
|
93f6e69b
liuzujun
拾荒选择时间,抽卡增加sr保底
|
426
|
device = tostring(msg.device),
|
aa74d6ef
zhouhaihai
掉落反馈
|
427
|
dmode = msg.deviceMode and tostring(msg.deviceMode) or nil
|
314bc5df
zhengshouren
提交服务器初始代码
|
428
429
430
431
432
433
434
435
436
437
438
439
|
})
if newRole:create() then
--更新USER表
response.result = "SUCCESS"
response.roleId = roleId
response.roleName = string.upper(roleName)
else
response.result = "DB_ERROR"
SendPacket(actionCodes.Role_createRpc, MsgPack.pack(response))
return true
end
|
d99a4962
liuzujun
火花系统建表,新增虹光玉
|
440
|
--newRole:loadRoleIncre()
|
44c6e479
zhouhaihai
增加部分日志
|
441
|
newRole:startActionUcode()
|
39bcd7ca
zhouhaihai
LOG
|
442
443
444
445
446
|
newRole.sysVersion = msg.sysVersion
newRole.ip = agent.ip:toArray(false, ":")[1]
newRole.clientVersion = msg.clientVersion
newRole.network = msg.network
|
8b65a363
zhouhaihai
优化
|
447
|
newRole:award(globalCsv.birthItem, {log = {desc = "birth"}, notNotify = true})
|
314bc5df
zhengshouren
提交服务器初始代码
|
448
|
-- 欢迎邮件
|
70fb62d1
liuzujun
服务器数据打点
|
449
450
|
--mysqlproxy:insertEmail({roleId = roleId, emailId = 1})
newRole:sendMail(1)
|
314bc5df
zhengshouren
提交服务器初始代码
|
451
|
|
39bcd7ca
zhouhaihai
LOG
|
452
453
454
455
|
if msg.newuser then
newRole:log("onCreateAccount")
end
newRole:log("onCreateRole")
|
d02f7904
zhouhaihai
遗失的log
|
456
|
newRole:mylog("create", {key1 = agent.ip:toArray(false, ":")[1]})
|
814d9753
zhangqijia
fix: 创建角色 记录是否是新设备
|
457
458
459
460
461
462
463
464
|
-- 是否是新设备
local deviced = cluster.query("center", "deviced")
if deviced then
local status, back = pcall(cluster.call, "center", deviced, "isNewDevice", {device = msg.device})
if status and back then
newRole:mylog("newdevice", {key1 = agent.ip:toArray(false, ":")[1]})
end
|
3aac1e3a
zhouhaihai
新设备
|
465
|
end
|
814d9753
zhangqijia
fix: 创建角色 记录是否是新设备
|
466
|
|
ec0df561
liuzujun
创建及时保存一次
|
467
468
|
-- 整体保存一次
newRole:update()
|
314bc5df
zhengshouren
提交服务器初始代码
|
469
470
|
SendPacket(actionCodes.Role_createRpc, MsgPack.pack(response))
|
320f5b54
zhouhaihai
cb 返利
|
471
472
473
474
475
476
477
478
479
480
481
482
|
-- cb付费返利
skynet.timeout(0, function()
local cbbackd = cluster.query("center", "cbbackd")
local uid = newRole:getProperty("uid")
local start = uid:find("_")
if start then
uid = uid:sub(start + 1)
end
if cbbackd then
local status, back = pcall(cluster.call, "center", cbbackd, "getCbBack", {uid = uid, id = roleId})
if status then
|
91019d1f
zhouhaihai
cb 返利调整
|
483
|
if back and next(back) and back.reward and next(back.reward) then
|
320f5b54
zhouhaihai
cb 返利
|
484
|
local reward = ""
|
91019d1f
zhouhaihai
cb 返利调整
|
485
|
for itemId, count in pairs(back.reward) do
|
320f5b54
zhouhaihai
cb 返利
|
486
487
|
reward = reward:setv(itemId, count)
end
|
91019d1f
zhouhaihai
cb 返利调整
|
488
|
if back.reward[70] then
|
2ca93972
liuzujun
添加邮件表
|
489
|
mysqlproxy:insertEmail({roleId = roleId, emailId = MailId.CBBackAward2, contentPms = {back.money}, createtime = skynet.timex(), attachments = reward})
|
91019d1f
zhouhaihai
cb 返利调整
|
490
|
else
|
2ca93972
liuzujun
添加邮件表
|
491
|
mysqlproxy:insertEmail({roleId = roleId, emailId = MailId.CBBackAward, contentPms = {back.money}, createtime = skynet.timex(), attachments = reward})
|
91019d1f
zhouhaihai
cb 返利调整
|
492
|
end
|
320f5b54
zhouhaihai
cb 返利
|
493
494
495
496
497
498
499
500
501
502
|
newRole:mylog("cbback", {key1 = uid, int2 = roleId})
end
else
skynet.error("[ERROR] cbbackd cant call center uid: " .. uid .. " roleId:" .. roleId)
end
else
skynet.error("[ERROR] cbbackd cant call center uid: " .. uid .. " roleId:" .. roleId)
end
end)
|
dac9fbcc
liuzujun
cb1活跃回馈
|
503
504
505
|
-- cb1活跃回馈
onCb1Back(newRole)
|
314bc5df
zhengshouren
提交服务器初始代码
|
506
507
508
|
return true
end
|
dc9d814f
zhouhaihai
邮件
|
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
|
function _M.changeNameRpc(agent, data)
local role = agent.role
local roleId = role:getProperty("id")
local msg = MsgPack.unpack(data)
local newName = msg.name
local oldName = role:getProperty("name")
if not newName or type(newName) ~= "string" then return end
if newName == oldName then return end
-- 检查name是否合法
local checked = validName(newName)
if checked ~= "ok" then
--[[
"existed" 已经存在
"illegal" 包含非法字符
]]
local errCodes = {
["existed"] = 1,
["illegal"] = 2
}
SendPacket(actionCodes.Role_changeNameRpc, MsgPack.pack({result = errCodes[checked]}))
return true
end
if not roleId then
SendPacket(actionCodes.Role_changeNameRpc, MsgPack.pack({result = 3}))
return true
end
|
af7863ef
zhouhaihai
x小写名字异常
|
538
539
|
local dbName = string.upper(newName)
local result = redisproxy:setnx(string_format("user:%s", dbName), roleId)
|
dc9d814f
zhouhaihai
邮件
|
540
541
542
543
544
|
if result == 0 then
SendPacket(actionCodes.Role_changeNameRpc, MsgPack.pack({result = 1}))
return true
end
redisproxy:pipelining(function (red)
|
af7863ef
zhouhaihai
x小写名字异常
|
545
546
|
red:del(string_format("user:%s", string.upper(oldName)))
red:set(string_format("uid:%s", role:getProperty("uid")), dbName)
|
dc9d814f
zhouhaihai
邮件
|
547
548
549
550
551
|
end)
role:updateProperties({
["name"] = newName,
})
|
e3c5cc5e
zhouhaihai
跨服竞技场over
|
552
|
|
1e2c5316
zhangqijia
fix: 修改昵称,餐厅/电波塔/...
|
553
554
555
556
|
role.dinerData:updateRankRoleName(newName)
role:updateTowerRankName(newName)
role:updateAdvRankName(newName)
|
e3c5cc5e
zhouhaihai
跨服竞技场over
|
557
|
role:changeCrossServerPvpSelfInfo("name")
|
a3bb2d5d
liuzujun
指南 改名任务
|
558
|
role:checkTaskEnter("Rename", {})
|
dc9d814f
zhouhaihai
邮件
|
559
560
561
562
|
SendPacket(actionCodes.Role_changeNameRpc, MsgPack.pack({result = 0}))
return true
end
|
c1849aa6
chenyueqi
roleaction增加一个获取随...
|
563
564
565
566
567
568
|
function _M.getRandomNameRpc()
local name = randomRoleName()
SendPacket(actionCodes.Role_getRandomNameRpc, MsgPack.pack({name = name}))
return true
end
|
dc9d814f
zhouhaihai
邮件
|
569
570
571
572
573
574
575
|
function _M.changeIntroRpc(agent, data)
local role = agent.role
local roleId = role:getProperty("id")
local msg = MsgPack.unpack(data)
local content = msg.content
if not content or type(content) ~= "string" then return end
|
a5486ede
zhouhaihai
csvdata 修改为 share...
|
576
|
local SERV = string_format(".chated%d", math.random(1, 5))
|
dc9d814f
zhouhaihai
邮件
|
577
578
579
580
581
|
local legal, mod = skynet.call(SERV, "lua", "check", content)
if not legal then
content = mod or ""
end
|
14f1591b
zhouhaihai
删除好感度相关
|
582
|
role:updateProperty({field = "intro", value = content})
|
dc9d814f
zhouhaihai
邮件
|
583
584
585
586
587
|
SendPacket(actionCodes.Role_changeIntroRpc, '')
return true
end
|
314bc5df
zhengshouren
提交服务器初始代码
|
588
589
590
591
592
|
function _M.syncTimeRpc(agent, data)
SendPacket(actionCodes.Role_syncTimeRpc, MsgPack.pack({nowTime = skynet.timex()}))
return true
end
|
312b9db5
zhouahaihai
背包
|
593
594
595
|
function _M.saleItemRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
|
84e7c06e
zhouhaihai
回收
|
596
|
local backs = msg.backs
|
c1928949
chenyueqi
勋章兑换增加不能兑换的碎片判断
|
597
598
599
600
601
602
603
604
|
if not backs or not next(backs) then return 0 end
for itemId, count in pairs(backs) do
if math.illegalNum(count, 1, role:getItemCount(itemId)) then return 1 end
if globalCsv.unit_paster_ban[itemId] then return 2 end
local itemData = csvdb["itemCsv"][itemId]
if itemData.sell_effect == "" then return 3 end
end
|
84e7c06e
zhouhaihai
回收
|
605
606
|
local reward = {}
|
53e8037e
zhouhaihai
任务
|
607
|
local fragCount = 0
|
84e7c06e
zhouhaihai
回收
|
608
|
for itemId, count in pairs(backs) do
|
84e7c06e
zhouhaihai
回收
|
609
|
local itemData = csvdb["itemCsv"][itemId]
|
53e8037e
zhouhaihai
任务
|
610
611
612
|
if itemData.type == ItemType.HeroFragment or itemData.type == ItemType.HeroFCommon then
fragCount = fragCount + count
end
|
84e7c06e
zhouhaihai
回收
|
613
614
|
local sellEffect = itemData.sell_effect:toArray(true, "=")
reward[sellEffect[1]] = (reward[sellEffect[1]] or 0) + sellEffect[2] * count
|
c59e058b
zhouhaihai
新一批日志记录
|
615
616
617
618
619
620
621
622
623
|
role:log("carriage_decals", {
item_id = itemId, --道具id
item_type = itemData.type, --道具类型,具体见枚举表中道具类型枚举表
item_level = 0, --道具等级
item_number = count, --道具变化数量的绝对值
carriage_decals_rwdid = sellEffect[1], --拆解获得物资ID
carriage_decals_rwdnum = sellEffect[2] * count, --拆解获得物资数量
})
|
84e7c06e
zhouhaihai
回收
|
624
625
|
end
|
44c6e479
zhouhaihai
增加部分日志
|
626
|
role:costItems(backs, {log = {desc = "saleItem"}})
|
7bb30dca
zhouhaihai
修改发奖
|
627
|
local reward, change = role:award(reward, {log = {desc = "saleItem"}})
|
53e8037e
zhouhaihai
任务
|
628
|
role:checkTaskEnter("DecoFrag", {count = fragCount})
|
c59e058b
zhouhaihai
新一批日志记录
|
629
|
|
7bb30dca
zhouhaihai
修改发奖
|
630
|
SendPacket(actionCodes.Role_saleItemRpc, MsgPack.pack(role:packReward(reward, change)))
|
312b9db5
zhouahaihai
背包
|
631
632
633
634
635
636
637
638
|
return true
end
function _M.openItemRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local itemId = msg.itemId
local count = msg.count
|
e1b1f689
zhangqijia
fix: 记录用户跟设备信息, o...
|
639
|
if math.illegalNum(count, 1, role:getItemCount(itemId)) then return 1 end
|
312b9db5
zhouahaihai
背包
|
640
|
local itemData = csvdb["itemCsv"][itemId]
|
e1b1f689
zhangqijia
fix: 记录用户跟设备信息, o...
|
641
|
if itemData.use_type ~= 2 then return 2 end
|
312b9db5
zhouahaihai
背包
|
642
|
local randomData = csvdb["item_randomCsv"][tonumber(itemData.use_effect)]
|
e1b1f689
zhangqijia
fix: 记录用户跟设备信息, o...
|
643
|
if not randomData or randomData.openTime > 0 then return 3 end
|
312b9db5
zhouahaihai
背包
|
644
|
|
007af97e
zhouhaihai
item_random 结构更改
|
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
|
local reward = {}
for _i = 1, count do
for i = 1, 10 do
local num = randomData["num" .. i]
local gift = randomData["gift" .. i]
if num and gift and num > 0 and gift ~= "" then
local pool = {}
for _, temp in ipairs(gift:toArray()) do
table.insert(pool, temp:toArray(true, "="))
end
local needCount = math.min(#pool, num)
for j = 1, needCount do
local idx = math.randWeight(pool, 3)
reward[pool[idx][1]] = (reward[pool[idx][1]] or 0) + pool[idx][2]
table.remove(pool, idx)
end
|
312b9db5
zhouahaihai
背包
|
661
662
663
|
end
end
end
|
007af97e
zhouhaihai
item_random 结构更改
|
664
665
|
reward[0] = nil
|
44c6e479
zhouhaihai
增加部分日志
|
666
|
role:costItems({[itemId] = count}, {log = {desc = "openItem"}})
|
7bb30dca
zhouhaihai
修改发奖
|
667
668
|
local change
reward, change = role:award(reward, {log = {desc = "openItem", int1 = itemId, int2 = count}})
|
43cc5f51
gaofengduan
调整 equip 数据结构
|
669
|
|
7bb30dca
zhouhaihai
修改发奖
|
670
|
SendPacket(actionCodes.Role_openItemRpc, MsgPack.pack(role:packReward(reward, change)))
|
312b9db5
zhouahaihai
背包
|
671
672
673
|
return true
end
|
9b35bf6e
zhouhaihai
开启时间箱
|
674
675
676
|
function _M.openTimeBoxRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
|
4d8bd32c
chenyueqi
倒计时开箱子
|
677
|
local oper = msg.oper -- 操作 1 - 2
|
9b35bf6e
zhouhaihai
开启时间箱
|
678
|
local slot = msg.slot -- 位置 1 - 6
|
317a46a9
liuzujun
添加特权卡
|
679
680
|
-- 特权卡时间箱额外栏位
|
0a093ba8
chenyueqi
重写拆解室功能
|
681
682
683
684
|
-- local privExtraCnt = role.storeData:getTimeBoxSlotExtraCount()
-- if oper == 1 then
-- if math.illegalNum(slot, 1, role:getFuncLv(FuncOpenType.TimeBoxSlot) + privExtraCnt) then return end
-- end
|
9b35bf6e
zhouhaihai
开启时间箱
|
685
686
|
local boxL = role:getProperty("boxL")
|
0a093ba8
chenyueqi
重写拆解室功能
|
687
688
|
local reward, change
if oper == 1 then -- 构建开始(包括切换构建的id)
|
9b35bf6e
zhouhaihai
开启时间箱
|
689
|
local itemId = msg.itemId
|
9b35bf6e
zhouhaihai
开启时间箱
|
690
|
local itemData = csvdb["itemCsv"][itemId]
|
0a093ba8
chenyueqi
重写拆解室功能
|
691
692
693
694
695
696
|
if not itemData then return 1 end
if not boxL[slot] then
boxL[slot] = {}
else
local oldId, process, time = boxL[slot].id, boxL[slot].process, boxL[slot].time
local unitTime = globalCsv.box_key_time[oldId] * 60
|
e2e205be
zhangqijia
feat: 玩家等级奖励
|
697
|
unitTime = unitTime + role:getBnousDismantlingImproved(unitTime)
|
4aadc450
chenyueqi
切换拆解术式bug,造成获得巨大数...
|
698
|
local doneCnt = time == 0 and 0 or math.floor((process + skynet.timex() - time) / unitTime)
|
0a093ba8
chenyueqi
重写拆解室功能
|
699
|
if doneCnt > 0 then
|
4aadc450
chenyueqi
切换拆解术式bug,造成获得巨大数...
|
700
|
reward = role:award({[oldId] = doneCnt}, {log = {desc = "openTimeBox", int1 = slot, int2 = oper}})
|
0a093ba8
chenyueqi
重写拆解室功能
|
701
702
703
704
705
706
|
end
end
local limit = globalCsv.box_key_max[itemId] or 5
if role:getItemCount(itemId) >= limit then return 3 end
boxL[slot] = {id = itemId, process = 0, time = skynet.timex()}
|
e2e205be
zhangqijia
feat: 玩家等级奖励
|
707
|
role:pushMsg({type = "box", slot = slot, time = skynet.timex() + globalCsv.box_productLine_time * 3600 + role:getBnousDismantlingMaximum()})
|
0a093ba8
chenyueqi
重写拆解室功能
|
708
|
elseif oper == 2 then -- 重置运行时间(可以使用加速)
|
9b35bf6e
zhouhaihai
开启时间箱
|
709
|
local quick = msg.quick
|
0a093ba8
chenyueqi
重写拆解室功能
|
710
711
712
713
714
715
716
|
if not boxL[slot] then return 4 end
local itemId, process, time = boxL[slot].id, boxL[slot].process, boxL[slot].time
local nowTime = skynet.timex()
local stopTime = nowTime
local itemData = csvdb["itemCsv"][itemId]
local unitTime = globalCsv.box_key_time[itemId] * 60
|
e2e205be
zhangqijia
feat: 玩家等级奖励
|
717
|
unitTime = unitTime + role:getBnousDismantlingImproved(unitTime)
|
0a093ba8
chenyueqi
重写拆解室功能
|
718
|
if quick then
|
cc9f29c5
chenyueqi
拆解术式,可以自主选择加速多长时间
|
719
|
stopTime = nowTime + quick
|
f8ba82b3
zhouhaihai
大小写
|
720
|
local cost_pre = globalCsv.box_timeOpen_diamond:toArray(true, "=")
|
cc9f29c5
chenyueqi
拆解术式,可以自主选择加速多长时间
|
721
|
local costKey = math.ceil(quick / (cost_pre[1] * 60)) * cost_pre[2]
|
3d8050ef
liuzujun
钻石3改成虹光玉8
|
722
723
|
if not role:checkItemEnough({[ItemId.Jade] = costKey}) then return 5 end
role:costItems({[ItemId.Jade] = costKey}, {log = {desc = "openTimeBox", int1 = slot, int2 = oper}})
|
cb8d4368
chenyueqi
拆解术式充能的时候领取道具,获得个...
|
724
|
else
|
56763ca7
zhangqijia
fix: 拆解术士模块的bug,充...
|
725
|
stopTime = math.min(nowTime,time + globalCsv.box_productLine_time * 3600 + role:getBnousDismantlingMaximum())
|
9b35bf6e
zhouhaihai
开启时间箱
|
726
|
end
|
e2e205be
zhangqijia
feat: 玩家等级奖励
|
727
|
|
0a093ba8
chenyueqi
重写拆解室功能
|
728
|
role:pushCancel({type = "box", slot = slot})
|
5d620aef
chenyueqi
拆解室指定某一项为必得奖励
|
729
|
|
0a093ba8
chenyueqi
重写拆解室功能
|
730
731
|
local doneCnt = math.floor((process + stopTime - time) / unitTime)
if doneCnt > 0 then
|
4aadc450
chenyueqi
切换拆解术式bug,造成获得巨大数...
|
732
|
reward = role:award({[itemId] = doneCnt}, {log = {desc = "openTimeBox", int1 = slot, int2 = oper}})
|
0a093ba8
chenyueqi
重写拆解室功能
|
733
734
735
736
737
738
|
end
if role:getItemCount(itemId) >= globalCsv.box_key_max[itemId] then
nowTime = 0
end
boxL[slot] = {id = itemId, process = (process + stopTime - time) % unitTime, time = nowTime}
|
e2e205be
zhangqijia
feat: 玩家等级奖励
|
739
|
role:pushMsg({type = "box", slot = slot, time = nowTime + globalCsv.box_productLine_time * 3600 + role:getBnousDismantlingMaximum()})
|
0a093ba8
chenyueqi
重写拆解室功能
|
740
741
742
743
|
elseif oper == 3 then -- 开箱子
local costId = msg.costId
local costs = (msg.costs or ""):toNumMap()
if not costId or not csvdb["itemCsv"][costId] or not next(costs) then return 6 end
|
76f0493d
zhangqijia
feat: 铭文仓库溢出奖励时,通...
|
744
|
|
0a093ba8
chenyueqi
重写拆解室功能
|
745
|
local costIdData = csvdb["itemCsv"][costId]
|
e2e205be
zhangqijia
feat: 玩家等级奖励
|
746
|
local count, runeCount = 0, 0
|
0a093ba8
chenyueqi
重写拆解室功能
|
747
748
|
for itemId, num in pairs(costs) do
local itemIdData = csvdb["itemCsv"][itemId]
|
2660491b
zhangqijia
fix: 铭文仓库爆满限制bug
|
749
750
|
local itemRandomData = csvdb["item_randomCsv"][itemId]
if not itemIdData or not itemRandomData or costIdData.quality ~= itemIdData.quality then return 7 end
|
e2e205be
zhangqijia
feat: 玩家等级奖励
|
751
|
|
2660491b
zhangqijia
fix: 铭文仓库爆满限制bug
|
752
753
754
755
|
local itemRandomOccupy = role:getItemRandomOccupy(itemRandomData)
if next(itemRandomOccupy) then
runeCount = runeCount + (itemRandomOccupy[ItemOccupy.Rune] or 0) * num
end
|
0a093ba8
chenyueqi
重写拆解室功能
|
756
757
758
|
count = count + num
end
|
2660491b
zhangqijia
fix: 铭文仓库爆满限制bug
|
759
|
if role:checkRuneFully(runeCount) then return 10 end --开箱子,如果铭文仓库已经满了则不让开铭文箱
|
76f0493d
zhangqijia
feat: 铭文仓库溢出奖励时,通...
|
760
|
|
0a093ba8
chenyueqi
重写拆解室功能
|
761
|
if role:getItemCount(costId) < count then return 8 end
|
c7991bb0
chenyueqi
道具开时钟箱,检查箱子够不够
|
762
|
if not role:checkItemEnough(costs) then return 9 end
|
0a093ba8
chenyueqi
重写拆解室功能
|
763
764
765
766
767
768
769
770
771
772
773
|
role:costItems({[costId] = count}, {log = {desc = "openTimeBox"}})
reward = {}
for itemId, value in pairs(costs) do
local tempReward = {}
local randomData = csvdb["item_randomCsv"][itemId]
local itemData = csvdb["itemCsv"][itemId]
role:costItems({[itemId] = value}, {log = {desc = "openTimeBox"}})
for _ = 1, value do
for i = 1, 10 do
|
e2e205be
zhangqijia
feat: 玩家等级奖励
|
774
775
|
local num = randomData["num" .. tostring(i)]
local gift = randomData["gift" .. tostring(i)]
|
0a093ba8
chenyueqi
重写拆解室功能
|
776
777
778
779
780
781
782
783
784
785
786
787
788
789
|
if num and gift and num > 0 and gift ~= "" then
local pool = {}
for _, temp in ipairs(gift:toArray()) do
local set = temp:toArray(true, "=")
table.insert(pool, set)
end
local needCount = math.min(#pool, num)
for j = 1, needCount do
local idx = math.randWeight(pool, 3)
tempReward[pool[idx][1]] = (tempReward[pool[idx][1]] or 0) + pool[idx][2]
table.remove(pool, idx)
end
end
|
007af97e
zhouhaihai
item_random 结构更改
|
790
|
end
|
9b35bf6e
zhouhaihai
开启时间箱
|
791
|
end
|
0a093ba8
chenyueqi
重写拆解室功能
|
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
|
tempReward[0] = nil
role:checkTaskEnter("OpenBox", {id = itemId, count=value, quality=itemData.quality})
role:log("carriage_dismantle", {
item_id = itemId, -- 道具id
item_type = itemData.type, -- 道具类型,具体见枚举表中道具类型枚举表
item_level = 0, -- 道具等级
item_number = 1, -- 道具变化数量的绝对值
carriage_dismantle_type = 1, -- 拆解方式,时间到期:0,钥匙开启:1
carriage_dismantle_time = 0, -- 拆解耗时,填写实际耗时
carriage_dismantle_cost = value, -- 拆解花费钥匙数量,未使用填写0
carriage_dismantle_rwd = tempReward, -- 拆解获得物资,json格式记录,{'itemid1':2,'itemid2':3,…………..}
})
for id, num in pairs(tempReward) do
reward[id] = (reward[id] or 0) + num
end
|
9b35bf6e
zhouhaihai
开启时间箱
|
808
|
end
|
4aadc450
chenyueqi
切换拆解术式bug,造成获得巨大数...
|
809
|
reward, change = role:award(reward, {log = {desc = "openTimeBox", int1 = costId, int2 = oper}})
|
9b35bf6e
zhouhaihai
开启时间箱
|
810
811
812
813
|
else
return
end
|
0a093ba8
chenyueqi
重写拆解室功能
|
814
815
816
817
|
role:setProperty("boxL",boxL) --刷新
if slot then
role:changeUpdates({{type = "boxL", field = slot, value = boxL[slot], isOnlyToC = true}}) -- 通知客户端
end
|
7bb30dca
zhouhaihai
修改发奖
|
818
|
SendPacket(actionCodes.Role_openTimeBoxRpc, MsgPack.pack(role:packReward(reward, change)))
|
c8872722
zhouhaihai
返回
|
819
|
return true
|
9b35bf6e
zhouhaihai
开启时间箱
|
820
821
|
end
|
d1c2290f
zhouhaihai
加速
|
822
823
824
|
function _M.openSpeedUpBoxRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
|
8cd3770f
liuzujun
挂机关卡可以选择,经验金币根据最高...
|
825
|
local itemInfo = msg.itemInfo
|
d1c2290f
zhouhaihai
加速
|
826
827
|
local reward = {}
|
8cd3770f
liuzujun
挂机关卡可以选择,经验金币根据最高...
|
828
829
830
831
832
833
834
835
836
837
838
839
840
|
for i = 1, #itemInfo do
local pair = itemInfo[i]
local id = pair[1]
local count = pair[2]
local itemData = csvdb["itemCsv"][id]
if not itemData or itemData.type ~= ItemType.SpeedBox then return end
if math.illegalNum(count, 1, role:getItemCount(id)) then return 1 end
local useType, hour = table.unpack(itemData.use_effect:toArray(true, "="))
local time = hour * 60 * 60
if useType == 1 then -- 挂机齿轮
local hangInfo = role:getProperty("hangInfo")
|
2a542865
liuzujun
齿轮、经验 奖励投放逻辑调整
|
841
842
843
|
local expData = hangInfo.expData or {}
--local carbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId]
reward[ItemId.Gold] = (reward[ItemId.Gold] or 0) + math.floor(time / globalCsv.idle_money_produce_cd) * (expData.money or 0) * count
|
8cd3770f
liuzujun
挂机关卡可以选择,经验金币根据最高...
|
844
845
|
elseif useType == 2 then -- 挂机经验
local hangInfo = role:getProperty("hangInfo")
|
2a542865
liuzujun
齿轮、经验 奖励投放逻辑调整
|
846
847
848
|
local expData = hangInfo.expData or {}
--local carbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId]
reward[ItemId.Exp] = (reward[ItemId.Exp] or 0) + math.floor(time / globalCsv.idle_money_produce_cd) * (expData.exp or 0) * count
|
8cd3770f
liuzujun
挂机关卡可以选择,经验金币根据最高...
|
849
850
851
852
853
854
855
856
857
858
859
860
|
elseif useType == 3 then -- 食材商人收入
local buildType = 6
local level = role.dinerData:getProperty("buildL"):getv(buildType, 1)
local buildingData = csvdb["diner_buildingCsv"][buildType][level]
if not buildingData then
return 4
end
local gfood = role.dinerData:getProperty("gfood")
if not next(gfood) then return 5 end
for k , v in pairs(gfood) do
local itemId = v.id
local speed = globalCsv.diner_get_food_speed[csvdb["itemCsv"][itemId].quality] * buildingData.speed / 100
|
664e0e07
chenyueqi
电波塔对食材的加成计算错误
|
861
|
speed = speed + role:getBnousDiner(1,speed)
|
460afa6e
liuzujun
付费签到改为主动领取,战斗关卡不一...
|
862
|
reward[itemId] = (reward[itemId] or 0) + math.floor((time / speed) * count)
|
8cd3770f
liuzujun
挂机关卡可以选择,经验金币根据最高...
|
863
864
865
|
end
else
return 6
|
d1c2290f
zhouhaihai
加速
|
866
|
end
|
8cd3770f
liuzujun
挂机关卡可以选择,经验金币根据最高...
|
867
868
|
role:costItems({[id] = count}, {log = {desc = "speedUpBox"}})
|
d1c2290f
zhouhaihai
加速
|
869
870
|
end
|
75acc595
liuzujun
修改gm添加满级英雄指令,开启特权...
|
871
872
873
874
875
876
877
878
879
880
881
|
local doubleCoef = role.activity:isOpen("DoubleDrop") and 2 or 1
-- 特权卡获取加速获得额外道具
local coef = role.storeData:getProduceItemSpeedCoef()
if coef > 1 or doubleCoef > 1 then
for k, cnt in pairs(reward) do
if k == ItemId.Gold or k == ItemId.Exp then
reward[k] = math.floor(cnt * coef * doubleCoef)
end
end
end
|
7bb30dca
zhouhaihai
修改发奖
|
882
|
local change
|
8cd3770f
liuzujun
挂机关卡可以选择,经验金币根据最高...
|
883
|
reward, change = role:award(reward, {log = {desc = "speedUpBox"}})
|
d1c2290f
zhouhaihai
加速
|
884
|
|
7bb30dca
zhouhaihai
修改发奖
|
885
|
SendPacket(actionCodes.Role_openSpeedUpBoxRpc, MsgPack.pack(role:packReward(reward, change)))
|
d1c2290f
zhouhaihai
加速
|
886
887
888
|
return true
end
|
00e663bd
zhouhaihai
剧情相关
|
889
890
891
892
893
|
function _M.storyBookRewardRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local storyId = msg.id
local storyBookData = csvdb["story_bookCsv"][storyId]
|
6dc64b07
liuzujun
剧情领奖bug
|
894
|
if not storyBookData then return 1 end
|
a1d09d22
zhouhaihai
bug
|
895
|
local storyStatus = role:getProperty("storyB")
|
053978b4
zhouhaihai
剧情领奖
|
896
|
|
17ba67dd
zhouhaihai
错误的判断
|
897
|
local status = (storyStatus[storyId] or {}).s
|
053978b4
zhouhaihai
剧情领奖
|
898
|
|
f82a5775
liuzujun
去除重复领取剧情奖励报错 11402
|
899
900
901
902
|
if status == -1 then
SendPacket(actionCodes.Role_storyBookRewardRpc, "")
return true
end
|
17ba67dd
zhouhaihai
错误的判断
|
903
904
|
if not status or status ~= 1 then
|
6dc64b07
liuzujun
剧情领奖bug
|
905
906
|
--if storyBookData.unlockType == 1 and (role:getProperty("hangInfo").carbonId == tonumber(storyBookData.unlockData) or storyId == 1 or storyId == 2) then -- 挂机剧情正在挂机也可以领奖
if storyBookData.unlockType == 1 then -- 挂机剧情正在挂机也可以领奖
|
053978b4
zhouhaihai
剧情领奖
|
907
|
else
|
6dc64b07
liuzujun
剧情领奖bug
|
908
|
return 3
|
053978b4
zhouhaihai
剧情领奖
|
909
|
end
|
a1d09d22
zhouhaihai
bug
|
910
|
end
|
00e663bd
zhouhaihai
剧情相关
|
911
|
-- 获取奖励
|
5f18f4e5
zhouhaihai
story
|
912
|
storyStatus[storyId] = storyStatus[storyId] or {}
|
8a01a3ae
zhouhaihai
bug
|
913
|
storyStatus[storyId].s = -1
|
8a01a3ae
zhouhaihai
bug
|
914
|
role:changeUpdates({{ type = "storyB", field = storyId, value = storyStatus[storyId] }})
|
7bb30dca
zhouhaihai
修改发奖
|
915
|
local reward, change = role:award(storyBookData.gift, {log = {desc = "storybookReward", int1 = storyId}})
|
c59e058b
zhouhaihai
新一批日志记录
|
916
|
|
43293781
zhouhaihai
日志bug
|
917
|
role:log("carriage_video", {
|
c59e058b
zhouhaihai
新一批日志记录
|
918
919
|
carriage_video_type = storyBookData.type, --放映室类型,剧情CG:0, 角色CG:1, 主线剧情:2, 角色剧情:3, 活动剧情:4, 图鉴:5
carriage_video_id = storyId, --放映室片段ID
|
3d8050ef
liuzujun
钻石3改成虹光玉8
|
920
921
|
carriage_video_coinid = reward[ItemId.Jade] and ItemId.Jade or 0, --放映奖励货币类型,无奖励则填写0
carriage_video_coinnum = reward[ItemId.Jade] or 0, --放映奖励货币数量,无奖励则填写0
|
887c1843
zhouhaihai
日志新一批
|
922
|
carriage_video_item = reward, --放映奖励其他物品数量,json格式记录,{'itemid1':10,'itemid2':5,…………..},无奖励则填写0
|
c59e058b
zhouhaihai
新一批日志记录
|
923
924
|
})
|
7bb30dca
zhouhaihai
修改发奖
|
925
|
SendPacket(actionCodes.Role_storyBookRewardRpc, MsgPack.pack(role:packReward(reward, change)))
|
00e663bd
zhouhaihai
剧情相关
|
926
927
928
|
return true
end
|
8a01a3ae
zhouhaihai
bug
|
929
|
function _M.unLockStoryBookRpc(agent, data)
|
bd15e9bc
zhouhaihai
购买剧情
|
930
931
932
933
934
935
936
937
938
939
|
local role = agent.role
local msg = MsgPack.unpack(data)
local storyId = msg.id
local storyBookData = csvdb["story_bookCsv"][storyId]
if not storyBookData or storyBookData.lockItem == "" then return end -- 不能解锁
local storyStatus = role:getProperty("storyB")
if storyStatus[storyId] and storyStatus[storyId].s then return end --不需要解锁
|
be697585
liuzujun
活动剧情解锁
|
940
941
942
943
944
945
|
if storyBookData.lockItem ~= "free" then
local cost = storyBookData.lockItem:toNumMap()
if not cost or not next(cost) then return end
if not role:checkItemEnough(cost) then return end -- 消耗品不足
role:costItems(cost, {log = {desc = "unlockStory", int1 = storyId}})
end
|
bd15e9bc
zhouhaihai
购买剧情
|
946
947
948
949
950
951
952
953
|
-- 解锁
storyStatus[storyId] = storyStatus[storyId] or {}
table.clear(storyStatus[storyId])
storyStatus[storyId].s = 1
role:changeUpdates({{ type = "storyB", field = storyId, value = storyStatus[storyId] }})
SendPacket(actionCodes.Role_unLockStoryBookRpc, '')
return true
|
8a01a3ae
zhouhaihai
bug
|
954
955
|
end
|
61386225
zhangqijia
feat: 一键领取任务奖励(包括...
|
956
957
|
local function getTaskReward(role, taskId, roleField, taskType, taskData)
if not taskData then return nil end
|
53e8037e
zhouhaihai
任务
|
958
959
960
961
962
|
local taskStatus = role:getProperty(roleField[taskType])
local tStatus = taskStatus["t"] or {}
if (tStatus[taskId] or 0) < taskData.condition1 then
|
61386225
zhangqijia
feat: 一键领取任务奖励(包括...
|
963
|
return nil
|
53e8037e
zhouhaihai
任务
|
964
965
|
end
|
7bb30dca
zhouhaihai
修改发奖
|
966
|
local reward, change = role:award(taskData.reward, {log = {desc = "finishTask", int1 = taskType, int2 = taskId}})
|
53e8037e
zhouhaihai
任务
|
967
968
|
local active = (taskStatus["a"] or 0) + taskData.active
|
ac885527
liuzujun
联动签到活动
|
969
970
971
|
-- 日常活动完成
if taskType == 1 then
role:checkTaskEnter("DailyTask", {pre = (taskStatus["a"] or 0), cur = active})
|
70fb62d1
liuzujun
服务器数据打点
|
972
|
role:mylog("role_action", {desc="dayTask", int1=taskId, int2=active})
|
dfa9ae5e
liuzujun
战令任务活动
|
973
974
|
else
role:checkTaskEnter("WeekTask", {pre = (taskStatus["a"] or 0), cur = active})
|
70fb62d1
liuzujun
服务器数据打点
|
975
|
role:mylog("role_action", {desc="weekTask", int1=taskId, int2=active})
|
ac885527
liuzujun
联动签到活动
|
976
977
|
end
|
53e8037e
zhouhaihai
任务
|
978
979
|
role:changeUpdates({
{ type = roleField[taskType], field = {"t", taskId}, value = -1 },
|
317a46a9
liuzujun
添加特权卡
|
980
|
{ type = roleField[taskType], field = "a", value = active},
|
53e8037e
zhouhaihai
任务
|
981
982
|
})
|
1a0b3c56
liuzujun
抽卡保底,切换定向卡池
|
983
984
|
local oldVal = role:getProperty("battlePoint") or 0
role:updateProperty({field = "battlePoint", value = oldVal + taskData.active})
|
317a46a9
liuzujun
添加特权卡
|
985
|
|
c59e058b
zhouhaihai
新一批日志记录
|
986
987
988
|
role:log("task_reward", {
task_reward_id = taskId, --任务奖励ID
task_reward_type = taskType, --任务奖励类型,见 任务奖励类型枚举表
|
887c1843
zhouhaihai
日志新一批
|
989
|
task_reward_detail = reward, --任务奖励,json格式记录,{'itemid1':123,'itemid2':456,………...}
|
c59e058b
zhouhaihai
新一批日志记录
|
990
|
})
|
61386225
zhangqijia
feat: 一键领取任务奖励(包括...
|
991
|
return reward, change
|
53e8037e
zhouhaihai
任务
|
992
993
|
end
|
61386225
zhangqijia
feat: 一键领取任务奖励(包括...
|
994
|
function _M.taskRpc(agent, data)
|
53e8037e
zhouhaihai
任务
|
995
996
|
local role = agent.role
local msg = MsgPack.unpack(data)
|
d232676a
zhouhaihai
功能解锁 冒险返回
|
997
998
999
|
if not role:isFuncUnlock(FuncUnlock.TaskAchiv) then return end
|
61386225
zhangqijia
feat: 一键领取任务奖励(包括...
|
1000
|
local taskType = msg.type -- 1 日常 2 周常
|
53e8037e
zhouhaihai
任务
|
1001
1002
|
local taskId = msg.id --任务id
local roleField = {"dTask", "wTask"}
|
61386225
zhangqijia
feat: 一键领取任务奖励(包括...
|
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
|
if not roleField[taskType] then return 1 end
local reward, change = {}, {}
if not taskId then
for id, taskData in pairs(csvdb["task_loopCsv"][taskType]) do
local tmpreward, tmpchange = getTaskReward(role, id, roleField, taskType, taskData)
if tmpreward then
for k, v in pairs(tmpreward) do
reward[k] = (reward[k] or 0) + v
end
if tmpchange then table.insert(change, tmpchange) end
end
end
else
local taskData = csvdb["task_loopCsv"][taskType][taskId]
if not taskData then return 2 end
reward, change= getTaskReward(role, taskId, roleField, taskType, taskData)
end
|
53e8037e
zhouhaihai
任务
|
1022
|
|
61386225
zhangqijia
feat: 一键领取任务奖励(包括...
|
1023
1024
1025
|
SendPacket(actionCodes.Role_taskRpc, MsgPack.pack(role:packReward(reward, change)))
return true
end
|
53e8037e
zhouhaihai
任务
|
1026
|
|
61386225
zhangqijia
feat: 一键领取任务奖励(包括...
|
1027
1028
|
local function getTaskActiveReward(role, taskId, roleField, taskType, taskData)
|
53e8037e
zhouhaihai
任务
|
1029
1030
1031
1032
|
local taskStatus = role:getProperty(roleField[taskType])
local tStatus = taskStatus["at"] or {}
if tStatus[taskId] == -1 or (taskStatus["a"] or 0) < taskData.active then
|
61386225
zhangqijia
feat: 一键领取任务奖励(包括...
|
1033
|
return nil
|
53e8037e
zhouhaihai
任务
|
1034
1035
|
end
|
29fbbc10
zhouhaihai
夜间打工
|
1036
1037
1038
1039
1040
1041
1042
1043
1044
|
local needReward = taskData.reward:toNumMap()
if taskData.reward_2 ~= 0 then
local day = weekday(skynet.timex())
local workMainCsv = csvdb["work_mainCsv"][day]
if workMainCsv then
needReward[workMainCsv.ticket] = taskData.reward_2
end
end
local reward, change = role:award(needReward, {log = {desc = "taskActive", int1 = taskType, int2 = taskId}})
|
53e8037e
zhouhaihai
任务
|
1045
1046
1047
|
role:changeUpdates({
{ type = roleField[taskType], field = {"at", taskId}, value = -1 }
})
|
61386225
zhangqijia
feat: 一键领取任务奖励(包括...
|
1048
|
|
9be3f3ea
zhouhaihai
日志需求
|
1049
1050
1051
1052
1053
|
role:log("task_reward", {
task_reward_id = taskId * 100 + taskType, --任务奖励ID
task_reward_type = 3, --任务奖励类型,见 任务奖励类型枚举表
task_reward_detail = reward, --任务奖励,json格式记录,{'itemid1':123,'itemid2':456,………...}
})
|
61386225
zhangqijia
feat: 一键领取任务奖励(包括...
|
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
|
return reward, change
end
function _M.taskActiveRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
if not role:isFuncUnlock(FuncUnlock.TaskAchiv) then return end
local taskType = msg.type -- 1 日常 2 周长
local taskId = msg.id --任务id
local roleField = {"dTask", "wTask"}
if not roleField[taskType] then return end
local reward, change = {}, {}
if not taskId then
for id, taskData in pairs(csvdb["task_activeCsv"][taskType]) do
local tmpreward, tmpchange = getTaskActiveReward(role, id, roleField, taskType, taskData)
if tmpreward then
for k, v in pairs(tmpreward) do
reward[k] = (reward[k] or 0) + v
end
if tmpchange then table.insert(change, tmpchange) end
end
end
else
local taskData = csvdb["task_activeCsv"][taskType][taskId]
if not taskData then return end
reward, change= getTaskActiveReward(role, taskId, roleField, taskType, taskData)
end
|
9be3f3ea
zhouhaihai
日志需求
|
1084
|
|
7bb30dca
zhouhaihai
修改发奖
|
1085
|
SendPacket(actionCodes.Role_taskActiveRpc, MsgPack.pack(role:packReward(reward, change)))
|
53e8037e
zhouhaihai
任务
|
1086
1087
1088
1089
1090
1091
1092
1093
|
return true
end
function _M.achiveRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local taskId = msg.id --任务id
|
d232676a
zhouhaihai
功能解锁 冒险返回
|
1094
|
if not role:isFuncUnlock(FuncUnlock.TaskAchiv) then return end
|
53e8037e
zhouhaihai
任务
|
1095
1096
|
local achiveT = role:getProperty("achiveT")
local achiveV = role:getProperty("achiveV")
|
e6e49b45
liuzujun
一键领取成就奖励
|
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
|
local fuxRecord = role:getProperty("fuxR") or 0
local groups = {}
if not taskId then
local awards = {}
for id, cfg in pairs(csvdb["achievementCsv"]) do
-- 没领过
if not achiveV[id] then
if (achiveT[cfg.type] or 0) >= cfg.condition1 then
local award = cfg.reward:toNumMap()
for k, v in pairs(award) do
awards[k] = (awards[k] or 0) + v
end
achiveV[id] = skynet.timex()
groups[cfg.group] = 1
role:log("achievement", {
achievement_id = cfg.id, -- 成就id
achievement_type = cfg.type, -- 成就类型,具体枚举表中成就类型枚举表
achievement_reward = award, -- 达成成就奖励,json格式记录,{"itemid1":123,"itemid2":12,……….}
})
|
70fb62d1
liuzujun
服务器数据打点
|
1119
1120
|
role:mylog("role_action", {desc="finishAchieve", int1=cfg.id})
|
e6e49b45
liuzujun
一键领取成就奖励
|
1121
1122
1123
1124
1125
1126
1127
1128
|
end
end
end
if not next(awards) then
return 5
end
local reward, change = role:award(awards, {log = {desc = "finishAchive", int1 = 0}})
role:updateProperty({field = "achiveV", value = achiveV})
|
53e8037e
zhouhaihai
任务
|
1129
|
|
e6e49b45
liuzujun
一键领取成就奖励
|
1130
1131
1132
1133
|
SendPacket(actionCodes.Role_achiveRpc, MsgPack.pack(role:packReward(reward, change)))
else
local achiveTask = csvdb["achievementCsv"][taskId]
if not achiveTask then return 1 end
|
53e8037e
zhouhaihai
任务
|
1134
|
|
e6e49b45
liuzujun
一键领取成就奖励
|
1135
|
if achiveV[taskId] then return 2 end
|
53e8037e
zhouhaihai
任务
|
1136
|
|
e6e49b45
liuzujun
一键领取成就奖励
|
1137
1138
|
local curStatus = achiveT[achiveTask.type] or 0
local maxc = achiveTask.condition1
|
53e8037e
zhouhaihai
任务
|
1139
|
|
e6e49b45
liuzujun
一键领取成就奖励
|
1140
1141
1142
|
if maxc > curStatus then
return 3
end
|
3df73a9e
zhouhaihai
复兴奖励
|
1143
|
|
e6e49b45
liuzujun
一键领取成就奖励
|
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
|
local reward, change = role:award(achiveTask.reward, {log = {desc = "finishAchive", int1 = taskId}})
role:changeUpdates({
{ type = "achiveV", field = taskId, value = skynet.timex() }
})
groups[achiveTask.group] = 1
role:log("achievement", {
achievement_id = taskId, -- 成就id
achievement_type = achiveTask.type, -- 成就类型,具体枚举表中成就类型枚举表
achievement_reward = reward, -- 达成成就奖励,json格式记录,{"itemid1":123,"itemid2":12,……….}
})
|
70fb62d1
liuzujun
服务器数据打点
|
1155
|
role:mylog("role_action", {desc="finishAchieve", int1=taskId})
|
e6e49b45
liuzujun
一键领取成就奖励
|
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
|
SendPacket(actionCodes.Role_achiveRpc, MsgPack.pack(role:packReward(reward, change)))
end
for group, _ in pairs(groups) do
-- 复兴奖励
if csvdb["achievement_groupCsv"][group].bookmark == 3 then
local overCount = 0
local preMaxCount = fuxRecord or 0
for tId, status in pairs(achiveV) do
local tData = csvdb["achievementCsv"][tId]
if tData then
local groupData = csvdb["achievement_groupCsv"][tData.group]
if groupData.bookmark == 3 then
overCount = overCount + 1
end
|
3df73a9e
zhouhaihai
复兴奖励
|
1172
1173
|
end
end
|
e6e49b45
liuzujun
一键领取成就奖励
|
1174
1175
1176
1177
1178
|
local flag = false
for level, pData in pairs(csvdb["achievement_rewardCsv"]) do
if preMaxCount < pData.request and overCount >= pData.request then
role:sendMail(101, skynet.timex(), pData.reward, {pData.level})
flag = true
|
1d78ad52
chenyueqi
成就奖励方法中字段拼写错误
|
1179
|
role:mylog("role_action", {desc="fux", int1=pData.level})
|
e6e49b45
liuzujun
一键领取成就奖励
|
1180
|
end
|
3df73a9e
zhouhaihai
复兴奖励
|
1181
|
end
|
e6e49b45
liuzujun
一键领取成就奖励
|
1182
1183
1184
1185
|
if flag then
role:updateProperty({field = "fuxR", value = overCount, notNotify = true})
end
break
|
3df73a9e
zhouhaihai
复兴奖励
|
1186
1187
|
end
end
|
c59e058b
zhouhaihai
新一批日志记录
|
1188
|
|
53e8037e
zhouhaihai
任务
|
1189
1190
1191
|
return true
end
|
c384626d
zhouhaihai
好友
|
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
|
function _M.chatRpc(agent, data)
local role = agent.role
local roleId = role:getProperty("id")
local msg = MsgPack.unpack(data)
local cmd = msg.cmd
local content = msg.content
if not content then return end
local now = skynet.timex()
-- 判断禁言
local result = nil
|
8583f6ee
chenyueqi
动态屏蔽字
|
1206
1207
1208
1209
1210
1211
1212
|
local sdkResult
if role:getProperty("sid") == UO_SID then
sdkResult = role:uoChatSDK(content)
else
sdkResult = role:biliChatSDK(content)
end
|
fe41ea5d
chenyueqi
动态屏蔽字设置1秒延时等待。当动态...
|
1213
|
if sdkResult then
|
8583f6ee
chenyueqi
动态屏蔽字
|
1214
1215
1216
1217
1218
1219
1220
|
content = sdkResult
else
local SERV = string_format(".chated%d", math.random(1, 5))
local legal, mod = skynet.call(SERV, "lua", "check", content)
if not legal then
content = mod or ""
end
|
c384626d
zhouhaihai
好友
|
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
|
end
if content == "" then
result = -1
end
local response = {
chatType = cmd,
player = {
roleId = role:getProperty("id"),
name = role:getProperty("name"),
level = role:getProperty("level"),
headId = role:getProperty("headId"),
},
content = content,
time = now,
}
|
8474ca36
zhouhaihai
聊天
|
1239
1240
1241
1242
1243
|
local waitTime = nil
local check = {
-- 世界聊天
[1] = function ()
|
c384626d
zhouhaihai
好友
|
1244
1245
|
if role:getProperty("silent") > now then --禁言
result = 1
|
e84a1beb
liuzujun
gm后台查询日志,公告相关协议
|
1246
|
--return
|
c384626d
zhouhaihai
好友
|
1247
|
end
|
f30a310d
liuzujun
世界聊天等级15判断
|
1248
1249
1250
1251
|
if role:getProperty("level") < (globalCsv.chat_level or 15) then
result = 3
return
end
|
8474ca36
zhouhaihai
聊天
|
1252
|
|
171abf99
liuzujun
每日世界聊天上限
|
1253
1254
1255
1256
1257
1258
|
local dailyChatTimes = role.dailyData:getProperty("chatTimes")
if dailyChatTimes > (globalCsv.chat_world_day_limit or 15) then
result = 4
return
end
|
8474ca36
zhouhaihai
聊天
|
1259
1260
1261
1262
|
role._worldChatLimit = role._worldChatLimit or {start = 0, count = 0, canSayt = 0} --第一次开始说话时间 从第一次说话次数 能说话的时间
if now < role._worldChatLimit.canSayt then
result = 2
|
fa565e0c
zhouhaihai
优化结构
|
1263
|
waitTime = role._worldChatLimit.canSayt - now
|
8474ca36
zhouhaihai
聊天
|
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
|
return
end
if now - role._worldChatLimit.start >= globalCsv.chat_world_limit.time then
role._worldChatLimit.start = now
role._worldChatLimit.count = 1
else
role._worldChatLimit.count = role._worldChatLimit.count + 1
if role._worldChatLimit.count > globalCsv.chat_world_limit.count then
role._worldChatLimit.count = 0
role._worldChatLimit.start = 0
role._worldChatLimit.canSayt = now + globalCsv.chat_world_limit.wait
result = 2
waitTime = globalCsv.chat_world_limit.wait
return
end
end
|
e84a1beb
liuzujun
gm后台查询日志,公告相关协议
|
1281
1282
1283
1284
1285
1286
|
if result == 1 then
SendPacket(actionCodes.Role_chat, MsgPack.pack(response))
result = 0
else
mcast_util.pub_world(actionCodes.Role_chat, MsgPack.pack(response))
end
|
171abf99
liuzujun
每日世界聊天上限
|
1287
1288
|
dailyChatTimes = dailyChatTimes + 1
role.dailyData:updateProperty({field="chatTimes", value=dailyChatTimes})
|
cd789e7c
zhouhaihai
不要聊天记录缓存
|
1289
|
-- pcall(skynet.send, '.globald', "lua", "sendWorldMsg", role._channelIdx, response)
|
25d8cbc6
zhouhaihai
记录聊天信息
|
1290
|
role:mylog("role_action", {desc = "chatWorld", text1 = content})
|
c384626d
zhouhaihai
好友
|
1291
|
end,
|
8474ca36
zhouhaihai
聊天
|
1292
1293
1294
|
-- 私聊
[2] = function ()
local objectId = msg.roleId
|
fa565e0c
zhouhaihai
优化结构
|
1295
|
response.objId = objectId
|
4cf74232
zhouhaihai
pvp
|
1296
|
local redret = redisproxy:pipelining(function(red)
|
4cf74232
zhouhaihai
pvp
|
1297
1298
1299
|
red:sismember(FRIEND_BLACK_KEY:format(roleId), objectId)
red:sismember(FRIEND_BLACK_KEY:format(objectId), roleId)
end)
|
6136eaca
liuzujun
添加好友表
|
1300
|
if not roleExists(objectId) then
|
4cf74232
zhouhaihai
pvp
|
1301
1302
1303
1304
|
result = 1
return
end
-- 你把对方拉黑拉黑
|
6136eaca
liuzujun
添加好友表
|
1305
|
if redret[1] == 1 then
|
4cf74232
zhouhaihai
pvp
|
1306
|
result = 2
|
8474ca36
zhouhaihai
聊天
|
1307
1308
|
return
end
|
4cf74232
zhouhaihai
pvp
|
1309
|
-- 对方把你拉黑
|
6136eaca
liuzujun
添加好友表
|
1310
|
local isBlock = redret[2] == 1
|
8474ca36
zhouhaihai
聊天
|
1311
|
|
8474ca36
zhouhaihai
聊天
|
1312
|
local bin = MsgPack.pack(response)
|
4cf74232
zhouhaihai
pvp
|
1313
|
if not isBlock then
|
440aa055
zhouhaihai
聊天
|
1314
1315
|
redisproxy:pipelining(function(red)
red:rpush(CHAT_OFFLINE:format(objectId), bin)
|
4cf74232
zhouhaihai
pvp
|
1316
|
red:ltrim(CHAT_OFFLINE:format(objectId), -200, -1)
|
440aa055
zhouhaihai
聊天
|
1317
|
end)
|
9729f4f0
liuzujun
修改邮件默认长度,私聊禁言
|
1318
1319
1320
1321
1322
1323
1324
|
if role:getProperty("silent") < now then --禁言
-- 若在线,实时发送聊天信息
local agent = datacenter.get("agent", objectId)
if agent then
SendPacket(actionCodes.Role_chat, bin, agent.fd)
end
|
4cf74232
zhouhaihai
pvp
|
1325
|
end
|
440aa055
zhouhaihai
聊天
|
1326
|
end
|
4cf74232
zhouhaihai
pvp
|
1327
|
SendPacket(actionCodes.Role_chat, bin)
|
c384626d
zhouhaihai
好友
|
1328
1329
1330
1331
1332
1333
1334
|
end,
}
if not check[cmd] then return end
if not result then
check[cmd]()
end
|
c59e058b
zhouhaihai
新一批日志记录
|
1335
1336
1337
1338
|
role:log("communication", {
publish_type = cmd, --发言类型,1,世界 2私聊
publish_status = 0, --发送状态,发送成功:0,发送失败:1,被屏蔽:2,其他:3
|
7d31daa8
zhouhaihai
调整压测
|
1339
|
publish_receive_roleid = msg.roleId or 0, --接收者角色ID
|
c59e058b
zhouhaihai
新一批日志记录
|
1340
1341
|
publish_text = content, --发言内容
})
|
8474ca36
zhouhaihai
聊天
|
1342
|
SendPacket(actionCodes.Role_chatRpc, MsgPack.pack({result = result, waitTime = waitTime}))
|
c384626d
zhouhaihai
好友
|
1343
1344
1345
|
return true
end
|
4cf74232
zhouhaihai
pvp
|
1346
1347
1348
1349
1350
1351
|
function _M.chatGet(agent, data)
local role = agent.role
local roleId = role:getProperty("id")
redisproxy:del(CHAT_OFFLINE:format(roleId))
return true
end
|
312b9db5
zhouahaihai
背包
|
1352
|
|
dc9d814f
zhouhaihai
邮件
|
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
|
function _M.changeSettingRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local id = msg.id
local status = msg.status
local statusEnum = SettingStatus[id]
if not statusEnum then return 1 end
if not statusEnum[status] then return 2 end
local setting = role:getProperty("setting")
setting[id] = status
role:updateProperty({field = "setting", value = setting})
|
d02f7904
zhouhaihai
遗失的log
|
1369
|
role:mylog("role_action", {desc = "changeSetting", int1 = id, int2 = status})
|
dc9d814f
zhouhaihai
邮件
|
1370
1371
1372
1373
1374
1375
|
SendPacket(actionCodes.Role_changeSettingRpc, '')
return true
end
function _M.drawCodeRpc(agent, data)
local msg = MsgPack.unpack(data)
|
dc9d814f
zhouhaihai
邮件
|
1376
|
local role = agent.role
|
dc9d814f
zhouhaihai
邮件
|
1377
1378
|
local code = msg.code
|
7a515b60
zhangqijia
feat: 增加一个礼包码的接口
|
1379
1380
1381
|
if type(code) ~= "string" then return 1 end
if code:find("[^0-9a-zA-Z]") then return 2 end
|
37c968fa
zhangqijia
fix: 礼包码奖励改为邮件
|
1382
|
local ret, reward = role:getCodeGift(code)
|
7a515b60
zhangqijia
feat: 增加一个礼包码的接口
|
1383
1384
1385
|
if ret == 0 then
SendPacket(actionCodes.Role_drawCodeRpc, MsgPack.pack({
result = ret,
|
37c968fa
zhangqijia
fix: 礼包码奖励改为邮件
|
1386
|
reward = reward:toNumMap(),
|
7a515b60
zhangqijia
feat: 增加一个礼包码的接口
|
1387
1388
|
}))
return true
|
dc9d814f
zhouhaihai
邮件
|
1389
|
end
|
7a515b60
zhangqijia
feat: 增加一个礼包码的接口
|
1390
1391
|
SendPacket(actionCodes.Role_drawCodeRpc, MsgPack.pack({result = ret}))
|
dc9d814f
zhouhaihai
邮件
|
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
|
return true
end
function _M.changeHeadRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local id = msg.id
local icon = csvdb["player_iconCsv"][id]
if not icon then
return
end
|
15f06456
zhouhaihai
头像
|
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
|
local unlock = false
if role:getItemCount(id) >= 1 then
unlock = true
else
if icon.path == 1 then -- 获得对应英雄
if role:isHaveHero(icon.condition) then
unlock = true
end
end
end
if not unlock then
|
dc9d814f
zhouhaihai
邮件
|
1416
1417
|
return
end
|
bd4fb541
zhouhaihai
增加物品过期系统
|
1418
|
role:changeHead(id)
|
44c6e479
zhouhaihai
增加部分日志
|
1419
|
|
dc9d814f
zhouhaihai
邮件
|
1420
1421
1422
1423
|
SendPacket(actionCodes.Role_changeHeadRpc, "")
return true
end
|
71f716c4
chenyueqi
引导用到的字段
|
1424
1425
1426
1427
1428
1429
1430
|
function _M.guideRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local cmdType = msg.cmdType
local funcGuide = role:getProperty("funcGuide")
|
aeb5da9a
chenyueqi
强制引导的步数记录
|
1431
|
if cmdType == 1 then
|
71f716c4
chenyueqi
引导用到的字段
|
1432
|
-- 新手引导
|
7bc0509a
zhangqijia
fix: 引导跳过逻辑修改
|
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
|
if msg.masters then
for _, master in pairs(msg.masters) do
role:saveGuide(master,1,true)
end
else
local master = msg.master or -1
local slave = msg.slave or -1
if master < 0 or slave < 0 then return end
role:saveGuide(master, slave)
end
|
71f716c4
chenyueqi
引导用到的字段
|
1444
|
elseif cmdType == 2 then
|
a608cccb
chenyueqi
引导服务端记录
|
1445
|
-- 系统引导(玩家可选择是否进行)
|
71f716c4
chenyueqi
引导用到的字段
|
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
|
if not msg.skip then return end
local new = math.min(funcGuide:getv(0, 0), msg.skip)
if new < 0 then
funcGuide = funcGuide:setv(0, new)
else
funcGuide = funcGuide:setv(0, funcGuide:getv(0, 0) + msg.skip)
end
if msg.funcType then
funcGuide = funcGuide:setv(msg.funcType, 1)
|
39bcd7ca
zhouhaihai
LOG
|
1456
|
role:log("onGuidePoint", {guild_type = 2, guild_id = msg.funcType, guild_point = 0, guild_pass = 0})
|
d02f7904
zhouhaihai
遗失的log
|
1457
|
role:mylog("guide", {desc = "guide_weak", int1 = msg.funcType})
|
71f716c4
chenyueqi
引导用到的字段
|
1458
1459
|
end
role:updateProperty({field = "funcGuide", value = funcGuide})
|
e26989ce
chenyueqi
增加其他的引导记录
|
1460
|
elseif cmdType == 3 then
|
a608cccb
chenyueqi
引导服务端记录
|
1461
1462
1463
1464
1465
|
-- 系统引导(强制进行)
if msg.funcType and csvdb["guide_unlockCsv"][msg.funcType] then
role:saveGuide(csvdb["guide_unlockCsv"][msg.funcType].guideId,1)
funcGuide = funcGuide:setv(msg.funcType, 1)
role:updateProperty({field = "funcGuide", value = funcGuide})
|
39bcd7ca
zhouhaihai
LOG
|
1466
|
role:log("onGuidePoint", {guild_type = 1, guild_id = msg.funcType, guild_point = 0, guild_pass = 0})
|
d02f7904
zhouhaihai
遗失的log
|
1467
|
role:mylog("guide", {desc = "guide_sys", int1 = msg.funcType})
|
a608cccb
chenyueqi
引导服务端记录
|
1468
1469
1470
|
end
elseif cmdType == 4 then
-- 弹出一个tips(进入功能界面也许要自动弹说明,value要区分1、2)
|
e26989ce
chenyueqi
增加其他的引导记录
|
1471
1472
1473
|
if msg.funcType then
local value = msg.value or 1
for _, funcIdx in pairs(msg.funcType:toArray(true,"=")) do
|
39bcd7ca
zhouhaihai
LOG
|
1474
|
role:log("onGuidePoint", {guild_type = 3, guild_id = funcIdx, guild_point = 0, guild_pass = 0})
|
d02f7904
zhouhaihai
遗失的log
|
1475
|
role:mylog("guide", {desc = "guide_tips", int1 = funcIdx})
|
e26989ce
chenyueqi
增加其他的引导记录
|
1476
1477
1478
1479
|
funcGuide = funcGuide:setv(funcIdx, value)
end
role:updateProperty({field = "funcGuide", value = funcGuide})
end
|
71f716c4
chenyueqi
引导用到的字段
|
1480
1481
1482
1483
1484
1485
1486
|
else
return
end
SendPacket(actionCodes.Role_guideRpc, "")
return true
end
|
dc9d814f
zhouhaihai
邮件
|
1487
|
|
d51114bd
wangyujie
完成需求:每日金币购买
|
1488
1489
1490
|
function _M.goldBuyRpc(agent, data)
local role = agent.role
local curT = role.dailyData:getProperty("goldBuyT")
|
e2e205be
zhangqijia
feat: 玩家等级奖励
|
1491
1492
1493
1494
1495
1496
1497
|
local costs = clone(globalCsv.idle_quickMoney_cost)
-- 增加今日齿轮加速次数
local maxIdx = #globalCsv.idle_quickMoney_cost
local maxCount = maxIdx + role:getBnousUpSpeedNum(UpSpeedType.GearUpSpeed)
if curT > maxCount then return end
if curT > maxIdx then
|
15b33dc3
zhangqijia
fix: 齿轮加速当前加速次数获取...
|
1498
|
for idx = maxIdx+1, curT do
|
e2e205be
zhangqijia
feat: 玩家等级奖励
|
1499
1500
1501
1502
1503
1504
|
costs[idx] = costs[maxIdx]
end
end
local costD = costs[curT]
|
d51114bd
wangyujie
完成需求:每日金币购买
|
1505
1506
1507
|
if not costD then
return 1
end
|
3b4b15b1
liguanghui
齿轮加速消耗修改为虹光玉
|
1508
|
if costD ~= 0 and not role:checkItemEnough({[ItemId.Jade] = costD}) then
|
d51114bd
wangyujie
完成需求:每日金币购买
|
1509
1510
|
return 2
end
|
abded725
chenyueqi
虹光玉购买金币计算bug
|
1511
1512
|
--特权卡倍数
|
d51114bd
wangyujie
完成需求:每日金币购买
|
1513
|
local goldC = 0
|
abded725
chenyueqi
虹光玉购买金币计算bug
|
1514
1515
1516
1517
1518
1519
1520
|
local multiple = role.storeData:getGearExchangeCoef()
local hangInfo = role:getProperty("hangInfo")
local expCarbon_Data = hangInfo.expData or globalCsv.oriCarbonData
goldC = expCarbon_Data.money * globalCsv.idle_quickMoney_effect * multiple
if goldC == 0 then
|
d51114bd
wangyujie
完成需求:每日金币购买
|
1521
1522
|
return 3
end
|
abded725
chenyueqi
虹光玉购买金币计算bug
|
1523
|
|
d51114bd
wangyujie
完成需求:每日金币购买
|
1524
|
role.dailyData:updateProperty({field = "goldBuyT", value = curT + 1})
|
3b4b15b1
liguanghui
齿轮加速消耗修改为虹光玉
|
1525
|
role:costItems({[ItemId.Jade] = costD}, {log = {desc = "goldBuy"}})
|
7f9f002d
liuzujun
循环周活动
|
1526
|
local reward, change = role:award({[ItemId.Gold] = math.floor(goldC)}, {log = {desc = "goldBuy"}})
|
7bb30dca
zhouhaihai
修改发奖
|
1527
|
SendPacket(actionCodes.Role_goldBuyRpc, MsgPack.pack(role:packReward(reward, change)))
|
d51114bd
wangyujie
完成需求:每日金币购买
|
1528
1529
1530
|
return true
end
|
20651a9e
chenyueqi
钻石兑换虹光玉消息
|
1531
1532
1533
1534
1535
1536
|
function _M.diamondConvertRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local oper = msg.oper
if oper ~= 1 and oper ~= 2 then return 0 end
|
20651a9e
chenyueqi
钻石兑换虹光玉消息
|
1537
1538
1539
1540
1541
1542
|
local cost = math.ceil(msg.cost or 0)
if cost <= 0 then return 1 end
if role:getAllDiamond() < cost then return 2 end
local get = globalCsv.legal_tender_cost * cost
|
96ca7852
chenyueqi
钻石兑换招募券计算虹光玉数量bug
|
1543
|
role:costDiamond({count = cost, log = {desc = "convert", int1 = oper, int2 = get}})
|
20651a9e
chenyueqi
钻石兑换虹光玉消息
|
1544
1545
|
local reward, change
if oper == 1 then -- 钻石兑换成虹光玉
|
1ebe1c94
liuzujun
钻石转换日志打点
|
1546
|
reward, change = role:award({[ItemId.Jade] = get}, {log = {desc = "convert", short1=oper}})
|
20651a9e
chenyueqi
钻石兑换虹光玉消息
|
1547
|
elseif oper == 2 then -- 钻石兑换成虹光玉再兑换成招募券
|
96ca7852
chenyueqi
钻石兑换招募券计算虹光玉数量bug
|
1548
1549
1550
|
local old = role:getItemCount(ItemId.Jade)
get = old + get
|
20651a9e
chenyueqi
钻石兑换虹光玉消息
|
1551
|
local quan = math.floor(get/globalCsv.recruit_cost)
|
96ca7852
chenyueqi
钻石兑换招募券计算虹光玉数量bug
|
1552
1553
|
local remain = get - quan * globalCsv.recruit_cost
|
96ca7852
chenyueqi
钻石兑换招募券计算虹光玉数量bug
|
1554
1555
1556
|
local allReward = {}
if remain > old then
allReward[ItemId.Jade] = remain - old
|
18a3955b
zhangqijia
fix: 修复 魔导师兑换虹光玉兑...
|
1557
|
role:checkWorldChangePoints({[ItemWorldLine.CostJade]= quan * globalCsv.recruit_cost})
|
96ca7852
chenyueqi
钻石兑换招募券计算虹光玉数量bug
|
1558
1559
|
elseif remain == old then
else
|
1ebe1c94
liuzujun
钻石转换日志打点
|
1560
|
role:costItems({[ItemId.Jade] = old - remain}, {log = {desc = "convert", short1=oper}})
|
f07252a2
zhangqijia
fix: 修复 魔导师兑换虹光玉兑...
|
1561
|
role:checkWorldChangePoints({[ItemWorldLine.CostJade]= quan * globalCsv.recruit_cost - (old - remain)})
|
20651a9e
chenyueqi
钻石兑换虹光玉消息
|
1562
|
end
|
96ca7852
chenyueqi
钻石兑换招募券计算虹光玉数量bug
|
1563
|
|
20651a9e
chenyueqi
钻石兑换虹光玉消息
|
1564
|
if quan > 0 then
|
efc1452c
chenyueqi
钻石兑换招募券消息完善,招募券增加...
|
1565
|
allReward[ItemId.RecruitmentCard] = quan
|
20651a9e
chenyueqi
钻石兑换虹光玉消息
|
1566
|
end
|
96ca7852
chenyueqi
钻石兑换招募券计算虹光玉数量bug
|
1567
|
|
efc1452c
chenyueqi
钻石兑换招募券消息完善,招募券增加...
|
1568
|
reward, change = role:award(allReward, {log = {desc = "convert"}})
|
20651a9e
chenyueqi
钻石兑换虹光玉消息
|
1569
1570
1571
1572
1573
1574
|
end
SendPacket(actionCodes.Role_diamondConvertRpc, MsgPack.pack(role:packReward(reward, change)))
return true
end
|
9ea0c502
liuzujun
限时礼包
|
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
|
function _M.getDownloadCvRewardRpc(agent, data)
local role = agent.role
local flag = role:getProperty("downCvR") or 0
if flag ~= 0 then
return 1
end
local r = globalCsv.role_download_cv_reward
local reward, change = role:award(r, {log = {desc = "downloadCv"}})
role:updateProperty({field="downCvR", value=1})
SendPacket(actionCodes.Role_getDownloadCvRewardRpc, MsgPack.pack(role:packReward(reward, change)))
return true
end
|
51d9d20b
liuzujun
付费签到,应用市场反馈
|
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
|
function _M.updateFeedbackInfoRpc(agent, data)
local role = agent.role
local info = role:getProperty("feedback") or {}
local msg = MsgPack.unpack(data)
info["flag"] = msg.flag
info["count"] = msg.count
info["ts"] = skynet.timex()
role:updateProperty({field="feedback", value=info})
SendPacket(actionCodes.Role_updateFeedbackInfoRpc, MsgPack.pack({}))
return true
end
|
a6dc627f
liuzujun
自选箱子协议
|
1600
1601
1602
1603
|
function _M.useSelectItemRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local itemId = msg.itemId
|
e52c384f
liuzujun
探索指令bug, 充值返利活动
|
1604
|
local subId = msg.subId
|
a6dc627f
liuzujun
自选箱子协议
|
1605
1606
1607
|
local count = msg.count
if math.illegalNum(count, 1, role:getItemCount(itemId)) then return end
local itemData = csvdb["itemCsv"][itemId]
|
1c77df08
zhangqijia
fix: 角色贴纸兑换 增加类型 23
|
1608
|
if not (itemData.type == ItemType.SelectItemBox or itemData.type == ItemType.CommonPaster or itemData.type == ItemType.Stick) then return end
|
a6dc627f
liuzujun
自选箱子协议
|
1609
|
local itemMap = itemData.use_effect:toNumMap()
|
a6dc627f
liuzujun
自选箱子协议
|
1610
1611
|
local reward, change = {}
for k, v in pairs(itemMap) do
|
e52c384f
liuzujun
探索指令bug, 充值返利活动
|
1612
|
if k == subId then
|
a6dc627f
liuzujun
自选箱子协议
|
1613
1614
1615
|
reward[k] = v * count
break
end
|
a6dc627f
liuzujun
自选箱子协议
|
1616
1617
1618
1619
1620
1621
1622
|
end
if next(reward) then
reward, change = role:award(reward, {log = {desc = "openItem", int1 = itemId, int2 = count}})
role:costItems({[itemId] = count}, {log = {desc = "openItem"}})
end
SendPacket(actionCodes.Role_useSelectItemRpc, MsgPack.pack(role:packReward(reward, change)))
|
e52c384f
liuzujun
探索指令bug, 充值返利活动
|
1623
|
return true
|
a6dc627f
liuzujun
自选箱子协议
|
1624
1625
|
end
|
98d32f92
liuzujun
多编队
|
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
|
function _M.renameTeamRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local title = msg.title
local index = msg.index
local ispve = msg.ispve
if ispve then
local teams = role:getProperty("hangTeams")
local team = role:getTeamFormat(index)
team.title = title
teams[index] = team
role:updateProperty({field = "hangTeams", value = teams, notNotify = false})
else
local teams = role:getProperty("advTeams")
local team = role:getAdvTeamFormat(index)
team.title = title
teams[index] = team
role:updateProperty({field = "advTeams", value = teams, notNotify = false})
end
SendPacket(actionCodes.Role_renameTeamRpc, "")
return true
end
|
847f9a7b
liuzujun
兑换活动,邮件内容修改
|
1650
1651
1652
1653
1654
1655
1656
1657
|
function _M.accuseRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local targetId = msg.targetId
local atype = msg.type
local note = msg.note
role:mylog("role_action", {desc = "accuse", int1 = targetId, short1 = atype, text1 = note})
|
782c178b
liuzujun
举报功能
|
1658
|
SendPacket(actionCodes.Role_accuseRpc, "")
|
847f9a7b
liuzujun
兑换活动,邮件内容修改
|
1659
1660
1661
|
return true
end
|
47904e51
chenyueqi
创角后的时间礼包
|
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
|
function _M.getTimeGiftRpc(agent, data)
local role = agent.role
local GiftCsv = csvdb["time_giftCsv"]
local timeGift = role:getProperty("timeGift")
if timeGift >= #GiftCsv then return 0 end
local nextL = timeGift + 1
local gift = GiftCsv[nextL]
if not gift then return 1 end
local createtime = role:getProperty("ctime")
if skynet.timex() - createtime < gift.time then return 2 end
role:updateProperty({field = "timeGift", value = nextL})
local reward, change = role:award(gift.gift, {log = {desc = "giftTime", int1 = nextL}})
role:mylog("role_action", {desc = "giftTime", int1 = nextL})
|
f72f32b7
chenyueqi
时间礼包返回奖励
|
1680
|
SendPacket(actionCodes.Role_getTimeGiftRpc, MsgPack.pack(role:packReward(reward, change)))
|
47904e51
chenyueqi
创角后的时间礼包
|
1681
1682
1683
|
return true
end
|
21774ba5
zhangqijia
feat: 金币购买铭文碎片
|
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
|
function _M.runeBuyRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local count = msg.count
local glodCount = globalCsv.rune_exchange * count
if not role:checkItemEnough({[ItemId.Gold] = glodCount}) then return end
role:costItems({[ItemId.Gold] = glodCount}, {log = {desc = "glodConvertRune", int1 = count, int2 = glodCount}})
local reward, change = {}
reward[ItemId.RuneFragment] = count
reward, change = role:award(reward, {log = {desc = "glodConvertRune"}})
SendPacket(actionCodes.Role_runeBuyRpc, MsgPack.pack(role:packReward(reward, change)))
return true
end
|
e9bfa7a2
liuzujun
其他玩家展示界面数据支持, 更新s...
|
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
|
function _M.setFriendTeamRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local team = msg.team
local info = {}
info.team = role:getTeamHerosInfo(team)
info.bInfo = role:getTeamBattleInfo(team)
info.v = role:getTeamBattleValue(team.heros)
role:updateProperty({field="friendTeam", value=info})
SendPacket(actionCodes.Role_setFriendTeamRpc, "")
return true
end
function _M.setBgRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
role:updateProperty({field="bgId", value=msg.id})
SendPacket(actionCodes.Role_setBgRpc, "")
return true
end
|
e3f6fe34
zhangqijia
feat: 月卡特权,购买魔导石会...
|
1722
|
function _M.itemConvertSpecialRpc(agent, data)
|
eae157a4
zhangqijia
feat: 月卡 + 特刊的道具兑换
|
1723
1724
1725
|
local role = agent.role
local msg = MsgPack.unpack(data)
local itemId = msg.item_id
|
a93ce9c0
zhangqijia
fix: 特殊道具兑换, 增加活动...
|
1726
|
local exchangeId = tonumber(msg.exchange_id)
|
eae157a4
zhangqijia
feat: 月卡 + 特刊的道具兑换
|
1727
|
|
e3f6fe34
zhangqijia
feat: 月卡特权,购买魔导石会...
|
1728
1729
|
local itemData = csvdb["itemCsv"][itemId]
if not itemData then return 1 end
|
eae157a4
zhangqijia
feat: 月卡 + 特刊的道具兑换
|
1730
|
|
eae157a4
zhangqijia
feat: 月卡 + 特刊的道具兑换
|
1731
1732
1733
|
local rechargeData = csvdb["shop_rechargeCsv"][exchangeId]
if not rechargeData then
skynet.error("[recharge] recharge id not exist", exchangeId)
|
a93ce9c0
zhangqijia
fix: 特殊道具兑换, 增加活动...
|
1734
|
return 2
|
eae157a4
zhangqijia
feat: 月卡 + 特刊的道具兑换
|
1735
|
end
|
a93ce9c0
zhangqijia
fix: 特殊道具兑换, 增加活动...
|
1736
1737
1738
1739
|
if not role:checkItemEnough({[itemId] = 1}) then return 3 end
local reward = {}
|
71d319eb
zhangqijia
fix: 使用特殊道具也要增加对应...
|
1740
1741
1742
1743
1744
|
if not role.storeData:checkRechargeRecord(rechargeData.limit, exchangeId)then
return 5
end
|
a93ce9c0
zhangqijia
fix: 特殊道具兑换, 增加活动...
|
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
|
if rechargeData.type == CardType.ActBattleCommandCard then
if role.activity:isOpenById(rechargeData.activity_id, "ActShopGoods") then
local tmpreward, _ = role.storeData:onBuyCard(rechargeData.type, rechargeData.time, rechargeData.id, rechargeData.activity_id)
if tmpreward then
table.rewardMerge(reward, tmpreward)
end
else
skynet.error("not open id: ".. rechargeData.id .. "; actid: " .. rechargeData.activity_id)
SendPacket(actionCodes.Role_itemConvertSpecialRpc, MsgPack.pack({result = 4}))
return true
end
else
local tmpreward, _ = role.storeData:onBuyCard(rechargeData.type, rechargeData.time, rechargeData.id, rechargeData.activity_id)
|
eae157a4
zhangqijia
feat: 月卡 + 特刊的道具兑换
|
1758
1759
|
if tmpreward then
table.rewardMerge(reward, tmpreward)
|
66e6dc76
zhangqijia
fix: 月卡过期,特刊道具使用应...
|
1760
1761
|
else
return 6
|
eae157a4
zhangqijia
feat: 月卡 + 特刊的道具兑换
|
1762
1763
1764
|
end
end
|
a93ce9c0
zhangqijia
fix: 特殊道具兑换, 增加活动...
|
1765
1766
1767
|
role:costItems({[itemId] = 1}, {log = {desc = "itemConvertSpecial", int1 = itemId, int2 = itemData.type}})
SendPacket(actionCodes.Role_itemConvertSpecialRpc, MsgPack.pack(role:packReward(reward)))
|
200652e6
zhangqijia
fix: 修正两个协议的返回值 r...
|
1768
|
return true
|
eae157a4
zhangqijia
feat: 月卡 + 特刊的道具兑换
|
1769
1770
|
end
|
5de23af5
zhangqijia
fix: 世界积分 名字修改成Rp...
|
1771
|
function _M.worldLineRouletteRpc(agent, data)
|
95c9089b
zhangqijia
feat: 新增世界线积分功能。
|
1772
|
local role = agent.role
|
95c9089b
zhangqijia
feat: 新增世界线积分功能。
|
1773
1774
1775
1776
1777
|
local worldChangePoints = role:getProperty("worldChangePoints") or {}
local rouletteCount = worldChangePoints[ItemWorldLine.RouletteCount] or 0
if rouletteCount == 0 then return 1 end
|
993bb525
zhangqijia
refactor: 世界线积分,倍...
|
1778
|
local worldline_gift_base_10, worldline_gift_base_1, worldline_gift_magnification_1, worldline_gift_magnification_0 = {}, {}, {}, {}
|
95c9089b
zhangqijia
feat: 新增世界线积分功能。
|
1779
1780
1781
1782
1783
1784
|
for k, v in pairs(globalCsv.worldline_gift_base_10) do
worldline_gift_base_10[k] = {v}
end
for k, v in pairs(globalCsv.worldline_gift_base_1) do
worldline_gift_base_1[k] = {v}
end
|
95c9089b
zhangqijia
feat: 新增世界线积分功能。
|
1785
1786
1787
|
for k, v in pairs(globalCsv.worldline_gift_magnification_1) do
worldline_gift_magnification_1[k] = {v}
end
|
7e2e5cff
zhangqijia
fix: 世界线积分字段修改
|
1788
|
for k, v in pairs(globalCsv["worldline_gift_magnification_0.1"]) do
|
993bb525
zhangqijia
refactor: 世界线积分,倍...
|
1789
1790
|
worldline_gift_magnification_0[k] = {v}
end
|
95c9089b
zhangqijia
feat: 新增世界线积分功能。
|
1791
1792
1793
1794
|
local gift_base_10 = (math.randWeight(worldline_gift_base_10, 1) or 0) * 10
local gift_base_1 = math.randWeight(worldline_gift_base_1, 1) or 0
|
95c9089b
zhangqijia
feat: 新增世界线积分功能。
|
1795
|
local gift_magnification_1 = math.randWeight(worldline_gift_magnification_1, 1) or 0
|
993bb525
zhangqijia
refactor: 世界线积分,倍...
|
1796
|
local gift_magnification_0 = (math.randWeight(worldline_gift_magnification_0, 1) or 0) * (0.1)
|
95c9089b
zhangqijia
feat: 新增世界线积分功能。
|
1797
|
|
993bb525
zhangqijia
refactor: 世界线积分,倍...
|
1798
|
local points = math.floor((gift_base_10 + gift_base_1) * (gift_magnification_1 + gift_magnification_0))
|
95c9089b
zhangqijia
feat: 新增世界线积分功能。
|
1799
|
worldChangePoints[ItemWorldLine.RouletteCount] = worldChangePoints[ItemWorldLine.RouletteCount] - 1
|
3a262daf
zhangqijia
fix: 世界积分 未判空的bug
|
1800
|
worldChangePoints[ItemWorldLine.Points] = (worldChangePoints[ItemWorldLine.Points] or 0) + points
|
95c9089b
zhangqijia
feat: 新增世界线积分功能。
|
1801
1802
|
role:updateProperty({field = "worldChangePoints", value = worldChangePoints})
|
5de23af5
zhangqijia
fix: 世界积分 名字修改成Rp...
|
1803
|
SendPacket(actionCodes.Role_worldLineRouletteRpc, MsgPack.pack({base_10 = gift_base_10, base_1 = gift_base_1, magnification_1 = gift_magnification_1, magnification_0 = gift_magnification_0}))
|
95c9089b
zhangqijia
feat: 新增世界线积分功能。
|
1804
1805
1806
|
return true
end
|
5de23af5
zhangqijia
fix: 世界积分 名字修改成Rp...
|
1807
|
function _M.worldLineRewardRpc(agent, data)
|
95c9089b
zhangqijia
feat: 新增世界线积分功能。
|
1808
1809
1810
1811
1812
1813
|
local role = agent.role
local worldLineReward = role:getProperty("worldLineReward") or {}
local worldChangePoints = role:getProperty("worldChangePoints") or {}
local points = worldChangePoints[ItemWorldLine.Points] or 0
local reward, change = {}
|
95776b49
zhangqijia
fix: 世界积分 发奖励的协议的...
|
1814
|
for key, val in pairs(csvdb["worldline_awardCsv"]) do
|
95c9089b
zhangqijia
feat: 新增世界线积分功能。
|
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
|
if points >= key and not worldLineReward[key] then
for k, v in pairs(val.award:toNumMap()) do
reward[k] = (reward[k] or 0) + v
end
worldLineReward[key] = 1
end
end
role:updateProperty({field = "worldLineReward", value = worldLineReward})
if next(reward) then
reward, change = role:award(reward, {log = {desc = "worldLine", int1 = role:getProperty("id")}})
end
|
5de23af5
zhangqijia
fix: 世界积分 名字修改成Rp...
|
1828
|
SendPacket(actionCodes.Role_worldLineRewardRpc, MsgPack.pack(role:packReward(reward, change)))
|
200652e6
zhangqijia
fix: 修正两个协议的返回值 r...
|
1829
|
return true
|
95c9089b
zhangqijia
feat: 新增世界线积分功能。
|
1830
1831
|
end
|
af6197fd
zhangqijia
feat: 兑换魔鬼训练营门票
|
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
|
function _M.itemConvertDevilTicketRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local itemId = msg.itemId --道具id
local count = msg.count or 1 --兑换生成的数量
local itemData = csvdb["itemCsv"][itemId]
if itemData.use_type ~= 11 then return 2 end
local createCost = globalCsv.moguixunlianying_create_cost[itemId]:toArray(true, "=")
if not next(createCost) then return 3 end
local cost = {[itemId] = createCost[1] * count}
if not role:checkItemEnough(cost) then return 4 end
role:costItems({cost}, {log = {desc = "itemConvertDevilTicket"}})
local reward, change = role:award({[createCost[2]] = count}, {log = {desc = "itemConvertDevilTicket", int1 = itemId, int2 = cost[itemId]}})
SendPacket(actionCodes.Role_itemConvertDevilTicketRpc, MsgPack.pack(role:packReward(reward, change)))
return true
end
|
314bc5df
zhengshouren
提交服务器初始代码
|
1852
|
return _M
|