戊申 发表于 2026-5-9 16:57:34

求个沙巴克胜利方和失败方脚本

红包来个脚本,沙巴克胜利方领取3W元宝,失败方领取2W元宝,攻城期间在皇宫内每秒或者每分钟获取1点积分,积分可以用行会繁荣度代替,攻城结束后,除去沙巴克之外,积分最高的行会判为失败方,我记得之前哪个版本有类似的玩法脚本

handongqi 发表于 前天 19:00

这个需求分三部分实现:沙巴克胜负判定 + 皇宫积分累计 + 奖励发放。

一、思路说明

通过自定义变量记录各行会在皇宫内的停留时间作为积分,沙巴克结束后比较积分判定失败方(沙巴克占领方自动为胜利方)。

二、核心变量

- G变量用于沙巴克全局数据
- HUMAN变量记录玩家积分
- A变量行会全局积分

三、QFunction 触发脚本(攻城期间皇宫内积分累计)

在 QFunction-0.txt 中添加:

`
[@OnTimer5]
#IF
; 检测是否在攻城期间
CHECKCASTLEWAR 0
; 检测是否在皇宫地图(沙巴克皇宫地图编号为 0150)
ISONMAP 0150
#ACT
; 使用A变量记录行会总积分(Guild变量累加)
INC A450 1
; 也可以给个人积分(繁荣度相关)
INC U45 1
SENDMSG 6 [皇宫积分] 当前行会积分:<(A450)>
BREAK
`

需要在QM登录时开启定时器:
`
[@Login]
#IF
#ACT
SetOnTimer 5 60    ; 每分钟执行一次
`

四、行会积分初始化(攻城开始时重置)

在 RobotManage.txt 或通过城堡管理员触发:

`
[@攻城开始]   ; 关联到攻城开始触发
#ACT
; 重置所有行会的积分变量(假设支持20个行会)
MOV A450 0
MOV A451 0
; ... 根据实际行会数量扩展
GMEXECUTE 开始提问 @重置行会积分
SENDMSG 0 [沙巴克] 攻城战开始!皇宫积分开始累计!
`

五、攻城结束后判定胜负并发放奖励

攻城结束后(CastleWarEnd 触发),比较各行会积分:

`
[@CastleWarEnd]
#IF
#ACT
; 获取沙巴克占领行会
MOV S1 <>
; 找出积分最高的非沙巴克行会作为失败方

; 假设只用A450-A455存储行会积分(根据实际调整)
; 遍历比较找出积分最高的行会名和分数
MOV N 0
MOV S

; — 这里列出所有参与行会的比较 —
; 行会1(假设为A450对应行会)
#IF
COMPVAL A450 > <(N)>
NOT EQUAL <(S)> <(S1)>
#ACT
MOV N <(A450)>
MOV S <(S)>

; ... 对其他行会做同样比较 ...

; 发放奖励
#IF
#ACT
; 胜利方(沙巴克行会)领取3W元宝
GUILDFOUNDERRANKPOINT <(S1)> ..\GuildBase\Guilds\<(S1)>\GuildList.txt
GAMEGOLD <(S1)> + 30000
SENDMSG 0 [沙巴克] 恭喜行会[<(S1)>]获得攻城胜利,奖励30000元宝!

; 失败方(积分最高非沙行会)领取2W元宝
GAMEGOLD <(S)> + 20000
SENDMSG 0 [沙巴克] 行会[<(S)>]积分最高(<(N)>分),获得失败方奖励20000元宝!
`

六、简化版(不使用A变量,直接用行会繁荣度)

如果版本支持行会繁荣度(GuildProsperity),更简单:

`
[@OnTimer5]
#IF
CHECKCASTLEWAR 0
ISONMAP 0150
#ACT
; 直接增加行会繁荣度
ADDGUILDPROSPERITY 1
SENDMSG 6 [繁荣度+1] 当前行会繁荣度已增加
BREAK

[@CastleWarEnd]
#ACT
; 遍历所有行会,繁荣度最高的非沙行会即为失败方
; 使用GuildList读取各行会繁荣度比较即可
`

七、关键注意点

1. **A变量范围**:A0-A499是全局数字变量,服务器重启不丢失
2. **行会名的存储**:需要提前用S变量存储参与行会名才能比较(或者用文本文件记录行会名与A变量的对应关系)
3. **行会数量**:如果参与行会较多,建议用WriteCacheList临时文件存储行会名和积分,然后通过ReadCacheList排序
4. **GAMEGOLD行会加币**:需要确认引擎版本是否支持按行会给元宝,否则需要用Give + GuildHuman 逐人发放
5. **触发时机**:CastleWarEnd在引擎M2自动触发,需确保QFunction中有对应标签

建议先测试简化版(只用繁荣度),再扩展为积分排名版本。
页: [1]
查看完整版本: 求个沙巴克胜利方和失败方脚本