拜师收徒拉新有效果,但白嫖奖励的假师徒也跟着来。出师考核把关系质量量化:等级差三十级起步、徒弟通过十题玩法考核,双方才拿满出师奖励,社交关系从挂名走向真实陪伴。
拜师校验双方等级差至少三十级、师父在收名额内、徒弟未在师门。actor是字符串,转对象后读双方等级。
function npc_baishi(actor, masterName)
local player = class(actor)
local master = getplayerbyname(masterName)
if master == nil or not isplayer(master) then
sendmsg(actor, 0, "师父不在线,无法拜师")
return
end
local mlv = getbaseinfo(master, 6)
local plv = getbaseinfo(actor, 6)
if mlv - plv < 30 then
sendmsg(actor, 0, "师父需高出30级方可收徒")
return
end
if tonumber(getplayvar(master, 2, "MENTEE_CNT") or "0") >= 3 then
sendmsg(actor, 0, "该玩家名下徒弟已满3人")
return
end
setplayvar(master, "HUMAN", "MENTEE_CNT", (tonumber(getplayvar(master, 2, "MENTEE_CNT") or "0")) + 1, 1)
setplayvar(actor, "HUMAN", "MASTER_NAME", masterName, 1)
end
徒弟满四十级可发起出师,十道玩法常识题答对八道通过,奖励双方各自的出师礼包。
function chushiExam(actor, score)
local masterName = getplayvar(actor, 2, "MASTER_NAME")
if score >= 8 then
sendmail(actor, 0, "出师奖励", "考核通过,师徒缘满", "金币|100000;出师称号卷轴|1")
sendmail(masterName, 0, "徒弟出师", "徒弟考核通过,获得谢师礼", "金币|200000")
setplayvar(masterName and masterName or "", 2, "MENTEE_CNT", (tonumber(getplayvar(masterName, 2, "MENTEE_CNT") or "1")) - 1, 1)
else
sendmsg(actor, 0, "十题答对8题才算出师,本次答对" .. score .. "题")
end
end
测试覆盖等级差边界、名额上限、考核通过与否三条路径。上线后盯出师率,低于四成说明考核过难或师徒互动不足,问卷跟进真实原因。
MENTEE_CNT在徒弟删除角色后残留,名额被占死,每月跑一次名额对账脚本清理失效关系。getplayvar按名字读他人变量在部分版本受限,读不到时按失败处理并提示,别默认为零继续走。考核题库要与玩法同步更新,玩法改版题目不更新,玩家答对旧答案反被判错。谢师礼的二十万金币高于徒弟奖励是刻意设计,刺激师父主动带新,数值再调前先看两周数据。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 行会内部的物资交换长期靠喊话:谁有强效太阳水、谁收祝福油,喊话靠缘分看见。行会商会日把内部交易固定成市集…
实战应用:用在哪里 角色存档直接输出到展示接口时,内部字段(GM 标记、风控计数、内部编号)会被一并带出去,轻则泄露信息,重…
实战应用:用在哪里 排查一个玩家的异常行为,要在十几种日志里来回 grep,一次排查半小时起步。日志检索工具按角色名聚合所有…
实战应用:用在哪里 开服首日的问题七成是低级失误:礼包配置没发、传送点没开、公告没挂。开服检查单把首日开放前的三十项检查固化…
实战应用:用在哪里 祖玛阁深处有一间密室,墙上有四块浮雕,按正确顺序踩亮才能打开暗格,顺序每天随机。序列触发设计让解谜每日一…
实战应用:用在哪里 点击传送后站在黑屏里等五秒,是切图体验最差的来源:地图资源在传送确认后才开始加载,加载完才渲染。切图预热…