查看: 5|回复: 0

传奇单机版组队奖励脚本:检测组队人数动态加爆率,带代码直接用

70

主题

40

回帖

372

积分

二百VIP

积分
372
发表于 9 小时前 | 显示全部楼层 |阅读模式
二百论坛
本站支持代销互换开区传奇版本、欢迎广大GM、技术、一条龙等传奇业界好友合作、联系业务QQ:1531850810

QQ交流群①:323634742(推荐 )QQ交流群②:764544814(推荐)

本站提供的传奇版本 由于来源不同 精力有限 无法100%测试 如需使用本传奇版本请切记

下载传奇版本后 先解压 再杀毒 更新官方引擎 最后再配置登陆器 避免被非法木马插件利用


论坛里不止一次有人问:组队打怪能不能比单人爆率高?怎么让多人组队更有意义?

这个需求其实很正常,传统传奇单机版没有内置的组队加成系统,所有奖励机制都得靠脚本自己实现。今天就把这套逻辑完整写出来,看完直接能用。

---

先说核心思路。

翎风引擎的脚本里,没有直接获取"组队人数"的命令,但有 %GROUPMEMBER% 变量,这个变量在组队状态下会返回队伍成员数量。

配合 SETVAR 和条件判断,就可以做出这样的逻辑:

1人打怪 → 正常爆率(+0%)
2人组队 → 爆率加成 +20%
3人组队 → 爆率加成 +40%
4人及以上 → 爆率加成 +60%

具体的加成方式,是通过 ServerConfig.ini 里的 DropRateAdd 参数临时提升,或者直接在 QFunction 脚本里给杀怪奖励阶段做额外掉落——两种方案各有适用场景,下面都给。

---

方案一:QFunction 脚本动态判断组队人数发额外奖励

这个方案不修改服务器全局爆率,而是在怪物死亡事件里,额外给队伍发放奖励道具或金币。适合不想影响单人玩家爆率,只是想让组队有额外收益的场景。

在 QFunction-0.txt 里,找到或新增怪物死亡触发段落:
  1. @MonsterDead
  2. ; 获取当前玩家组队人数
  3. SETVAR %GROUP_BONUS% 0
  4. ; 判断组队人数并设置加成变量
  5. #IFI %GROUPMEMBER% >= 2
  6.   SETVAR %GROUP_BONUS% 1
  7. #ENDIF
  8. #IFI %GROUPMEMBER% >= 3
  9.   SETVAR %GROUP_BONUS% 2
  10. #ENDIF
  11. #IFI %GROUPMEMBER% >= 4
  12.   SETVAR %GROUP_BONUS% 3
  13. #ENDIF
  14. ; 根据加成等级发放额外奖励
  15. #IFI %GROUP_BONUS% >= 1
  16.   GIVE 金币 1000
  17.   SAY 组队加成!额外获得1000金币。
  18. #ENDIF
  19. #IFI %GROUP_BONUS% >= 2
  20.   GIVE 金币 1000
  21.   SAY 三人组队!再多1000金币。
  22. #ENDIF
  23. #IFI %GROUP_BONUS% >= 3
  24.   GIVE 金币 2000
  25.   SAY 四人满组!再多2000金币!
  26. #ENDIF
复制代码

说明几点:
- %GROUPMEMBER% 变量只在组队状态下有值,单人时为1(自己算一个成员),所以判断有队友要用 >= 2;
- SAY 会在当前玩家头顶显示提示,如果不想要提示可以删掉;
- GIVE 命令发的是金币,也可以换成道具名称发具体道具;
- 多个 #IFI 是叠加判断,不是互斥的,所以3人队会同时触发 >= 1 和 >= 2 两段,总计多拿2000金币。

---

方案二:NPC交互触发,实时查询并广播组队加成状态

适合做"组队挂机模式"的场景:玩家进入挂机地图前先找NPC登记组队,NPC检测人数后给整个队伍临时增益状态。

在挂机地图入口NPC的脚本里:
  1. @main
  2. SAY 欢迎来到祭坛挂机区。
  3. SAY 当前组队人数:%GROUPMEMBER%人
  4. #IFI %GROUPMEMBER% >= 2
  5.   SAY 检测到组队状态,组队加成已激活!
  6.   ADDSKILL 精力充沛 10
  7.   GOTO @group_buff_done
  8. #ENDIF
  9. SAY 当前为单人状态,无加成。
  10. @group_buff_done
  11. SAY 祝您挂机愉快!
  12. EXIT
复制代码

这里用 ADDSKILL 给玩家添加一个预先配置好的BUFF技能(在MagicDB里定义),实现临时属性提升效果。

---

方案三:@MonsterDead 挂钩特定怪物,GIVEALL 全队发放

前两个方案的问题是:@MonsterDead 是全局事件,所有怪物死亡都触发。如果你想针对特定怪物(比如精英怪或BOSS)才触发组队加成,就需要在对应怪物的MobScript里写:
  1. @MonsterDead
  2. ; 精英怪死亡,组队奖励
  3. #IFI %GROUPMEMBER% >= 2
  4.   SENDMSG 全服消息:[组队猎杀] 精英怪已被%PLAYERNAME%的队伍击杀!
  5.   GIVEALL 精英碎片 1
  6. #ENDIF
复制代码

GIVEALL 会给队伍内每个成员各发一份奖励,不用循环,很省事。

---

五个常见踩坑

坑1:%GROUPMEMBER% 单人时返回1,不是0
单人状态下 %GROUPMEMBER% 返回值是1(自己算一个成员),所以判断"有队友"要用 >= 2,不能从 >= 1 开始,否则单人也触发加成。

坑2:#IFI 不支持两个变量比较
翎风脚本的 #IFI 只能"变量 比较运算符 数值",不支持变量对变量。写成 #IFI %A% >= %B% 是不生效的,右侧必须是固定数值。

坑3:@MonsterDead 全局触发要加地图限制
写在 QFunction-0.txt 里的 @MonsterDead 是全局事件,所有怪物死亡都触发。如果组队加成只想在特定地图生效,在脚本里加 #IFMAP 地图名 判断。

坑4:GIVEALL 发道具背包满时掉地
GIVEALL 发道具时,队员背包满了道具会直接掉地上,不是放弃发放。建议在 GIVEALL 前加 SENDMSG 提醒玩家先清背包。

坑5:多次触发叠加问题
如果 @MonsterDead 脚本没做结算标记,极端情况下可能多次触发。建议用临时变量做标记:先 SETVAR %REWARD_DONE% 1,执行前判断这个变量,防重复触发。

---

以上三套方案可以单独用也可以组合,根据玩法设计选择。新手建议从方案一开始,逻辑最简单;想做高级玩法的可以把方案二和三组合起来,做成完整的"组队挂机增益系统"。

有问题回帖,代码在这大家自取。
二百论坛
免责声明:

1、本论坛资源均来源于网络

2、如下载使用,自行杀毒

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

QQ| 手机版|小黑屋|二百版本库 |网站地图

免责声明:本站所有资源皆来自于互联网.请在下载使用内24小时内删除! 如果侵犯了您的权益,请至邮箱: (1531850810@qq.com), 我们会及时删除侵权内容。

Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5