行会活动零散且缺乏组织性,成员不知道这周行会要做什么。行会目标系统让帮主每周设定行会集体目标(击杀指定首领、累计捐献目标、攻城准备度),全员共同努力达成后获得行会级奖励。目标体系让行会从松散社交体变成有共同追求的战斗集体。
帮主从预设目标库中选取三个本周目标,每个目标带达成阈值与行会奖励;目标发布后全行会广播,成员在行会面板实时查看进度条。示例代码如下:
-- 行会目标:帮主设定
local player = class(actor)
local GOAL_POOL = {
{name = "全员击杀沃玛教主", key = "boss_kill", target = 3},
{name = "累计捐献五万贡献", key = "total_donate", target = 50000},
{name = "行会战参战三十人", key = "siege_join", target = 30},
}
local function setWeeklyGoals(player, goalIdx)
local goal = GOAL_POOL[goalIdx]
if goal == nil then
sendmsg(player, 1, 0, "目标不存在。")
return
end
setsysvarex("GuildGoal_" .. goal.key, goal.target, true)
sendcentermsg(player, 255, 0, "本周行会目标:" .. goal.name .. "(" .. goal.target .. ")", 0, 8)
end
每周日结算三个目标的达成状态:全部达成交付行会升级加速卡,达成两项交付行会基金,达成一项交付全员参与奖;零达成的行会收到目标建议推送而非惩罚。示例代码如下:
-- 目标结算:达成与奖励
local player = class(actor)
local function settleGoals(player)
local achieved = 0
for _, goal in ipairs(GOAL_POOL) do
local cur = tonumber(getsysvar("GuildGoal_" .. goal.key) or 0)
if cur >= goal.target then achieved = achieved + 1 end
end
if achieved == 3 then
giveitem(player, "行会升级卡", 1)
sendmsg(player, 1, 0, "三项全达成!行会升级速度提升。")
elseif achieved >= 1 then
giveitem(player, "行会基金", 1)
sendmsg(player, 1, 0, "达成 " .. achieved .. "/3 项目标,行会基金已注入。")
else
sendmsg(player, 1, 0, "本周目标未达成,下周继续加油!")
end
end
验证三条链路:帮主设定目标后全行会可见、目标进度实时累计与显示、周日结算的奖励按达成数分档发放。数值上盯两个指标:行会目标达成率与成员周活跃的关联性,达标行会的活跃度高于未达标行会两成即验证目标驱动有效;目标达成率长期低于三成则降低目标阈值,行会目标应该是够得着的苹果而非天上的月亮。
目标曾只有帮主能看,成员不知道这周要做什么,目标发布后全行会推送并常驻行会面板。阈值曾固定值不分行会规模,小行会永远无法达标,阈值按行会人数动态缩放。结算曾只发帮主不发放成员奖励,成员发现自己的努力只让帮主得利后集体消极,行会目标的奖励必须覆盖到每一个参与者。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
学员常见误区 Lua函数可返回多个值,学员用固定变量数接收时如果变量少于返回值,多余返回值被静默丢弃;如果变量多于返回值,多…
设计初衷 行会建筑的死穴是一次全解锁:会员没有逐步建设的过程感。梯度设计让每栋建筑都有前置条件和资源门槛。 数值模型 建筑分…
设计初衷 婚姻系统的属性加成是社交玩法的经济锚点:加成太弱没人结婚,太强则"为了属性被迫结婚"扭曲了社交本质。婚姻边界的设计…
设计初衷 宝箱类玩法的信任危机都源于同一句话:"概率是不是骗人的。"期望公示把概率从事后争议变成事前契约:奖池概率表全量公示…
设计初衷 流拍物(拍卖未成交的退回物品)堆积在卖家背包里成为死资产:低价值物流拍后无人问津,高价值物流拍后卖家不愿降价重拍。…
业务场景 沙巴克战功榜每周结算,玩家提交战功前不知道"再打多少能进前 10、前 10 的奖励是什么"。名次预览:输入自己的战…