Commit 850c54f569826ca5bdfc6cd91fdd076ea0ed81fb
1 parent
814d9753
抽卡概率明示相关
Showing
3 changed files
with
58 additions
and
0 deletions
Show diff stats
.gitignore
src/actions/GmAction.lua
| ... | ... | @@ -1101,4 +1101,39 @@ function _M.do_lua(role, pms) |
| 1101 | 1101 | return "成功" |
| 1102 | 1102 | end |
| 1103 | 1103 | |
| 1104 | +function _M.getDrawHeroPro(role, pms) | |
| 1105 | + -- 普池 10 up池 207 心愿单 20 | |
| 1106 | + local poolDict = { | |
| 1107 | + [10] = "普通卡池", | |
| 1108 | + [207] = "UP卡池", | |
| 1109 | + [20] = "心愿单", | |
| 1110 | + } | |
| 1111 | + local result = {} | |
| 1112 | + for k,v in poolDict do | |
| 1113 | + local unit = csvdb["build_unit"][k] | |
| 1114 | + if unit then | |
| 1115 | + local w1 = unit["rare1"] or 0 | |
| 1116 | + local w2 = unit["rare2"] or 0 | |
| 1117 | + local w3 = unit["rare3"] or 0 | |
| 1118 | + local up = unit["up_ssr_weight"] or 0 | |
| 1119 | + local total = w1 + w2 + w3 | |
| 1120 | + if total > 0 then | |
| 1121 | + local p1 = w1 / total | |
| 1122 | + local p2 = w2 / total | |
| 1123 | + local p3 = w3 / total | |
| 1124 | + local tmp = {} | |
| 1125 | + tmp["p1"] = p1 | |
| 1126 | + tmp["p2"] = p2 | |
| 1127 | + tmp["p3"] = p3 | |
| 1128 | + tmp["up"] = up | |
| 1129 | + result[v] = tmp | |
| 1130 | + end | |
| 1131 | + end | |
| 1132 | + end | |
| 1133 | + | |
| 1134 | + local ret = redisproxy:lrange("drawHeroRecord", 0, -1) | |
| 1135 | + result["history"] = ret | |
| 1136 | + json.encode(result) | |
| 1137 | +end | |
| 1138 | + | |
| 1104 | 1139 | return _M |
| 1105 | 1140 | \ No newline at end of file | ... | ... |
src/actions/HeroAction.lua
| ... | ... | @@ -1034,6 +1034,28 @@ function _M.drawHeroRpc(agent, data) |
| 1034 | 1034 | -- 广播获得ssr英雄 |
| 1035 | 1035 | local ntf = {heroId = itemData.id - ItemStartId.Hero, nick = role:getProperty("name")} |
| 1036 | 1036 | mcast_util.pub_world(actionCodes.Role_broadGetSSR, MsgPack.pack(ntf)) |
| 1037 | + local record = {} | |
| 1038 | + record["uid"] = role:getProperty("uid") | |
| 1039 | + record["serverId"] = skynet.getenv("servId") | |
| 1040 | + local function userNick(name) | |
| 1041 | + local t = {} | |
| 1042 | + local index = 0 | |
| 1043 | + for _, v in utf8.codes(name) do | |
| 1044 | + if index == 0 then | |
| 1045 | + table.insert(t, utf8.char(v)) | |
| 1046 | + else | |
| 1047 | + table.insert(t, '*') | |
| 1048 | + end | |
| 1049 | + index = index + 1 | |
| 1050 | + end | |
| 1051 | + return table.concat(t, '') | |
| 1052 | + end | |
| 1053 | + | |
| 1054 | + record["nick"] = userNick(role:getProperty("name")) | |
| 1055 | + record["hero"] = itemData.name | |
| 1056 | + record["quality"] = itemData.quality | |
| 1057 | + | |
| 1058 | + redisproxy:lpush("drawHeroRecord", json.encode(record)) | |
| 1037 | 1059 | end |
| 1038 | 1060 | end |
| 1039 | 1061 | ... | ... |