当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇捐献并列第一脚本实现方法

热度:
传奇捐献系统默认按捐献金额排序,若需实现多人并列第一,必须绕过原生排名逻辑,改用自定义变量与称号控制。核心思路是设定一个最高值阈值,所有达到该值的玩家共享“第一名”标识。

首先在QManage.txt中创建捐献NPC主菜单:
[@main]
欢迎来到沙城捐献处!
当前第一名:(金币)



捐献处理逻辑在[@Donate]标签中:
[@Donate]
IF
CHECKGOLD>0
ACT
INPUTSTRING请输入捐献金额(最少1000)
GOTO@ConfirmDonate

[@ConfirmDonate]
IF
SMALL1000
SAY
金额不得少于1000金币。

ELSE
TAKEgold
INCG100
SAVEVARG100..GuildSaveDonationTotal.txt
SENDMSG5捐献了金币!

关键判断在捐献后立即执行:
IF
LARGE0
ACT
LOADVARG200..GuildSaveTopDonation.txt
IF
LARGEG200
;新纪录诞生,清空旧名单
DELFILE..GuildSaveTopList.txt
SETG200
SAVEVARG200..GuildSaveTopDonation.txt
WRITEFILE..GuildSaveTopList.txt
SETS10
SETS11
ELSE
EQUALG200
;并列第一,追加名字
ADDFILE..GuildSaveTopList.txt
;更新显示名称(最多显示三人)
LOADVARLIST..GuildSaveTopList.txt3
SETS10
SETS11

榜单显示[@RankList]直接读取TopList.txt:
[@RankList]
ACT
LOADFILE..GuildSaveTopList.txt
SAY
并列第一名(金币):



注意事项:
G200存储当前最高捐献额,TopList.txt记录所有并列者角色名;
WRITEFILE覆盖写入,ADDFILE追加写入,避免重复需在捐献前检查名单是否已包含当前角色;
显示名称S10使用逗号拼接,超过三人时L2之后内容被截断;
每日重置需在[@Timer86400]中清空G200、TopList.txt及S10/S11变量。

测试时先用两个账号分别捐献相同金额,验证榜单是否同时显示两人名字,并确认称号或奖励发放脚本能正确读取TopList.txt全部行。
[顶部]