梁山gm之家

GOM引擎利用Text变量+遍历循环嵌套实现随机套装教程

admin 157 传奇脚本
GOM引擎利用Text变量+遍历循环嵌套实现随机套装教程1

装备上属性的显示实现方法:

Text变量

<TEXT$1>

第一行:

$$1 记录了行数 则对应了相应的套装编号

$$2 记录了套装当前穿戴的件数,那么初始为0,当穿戴的时候通过遍历并修改已实现动态显示

第二行:

$$1 同样是行数,用以显示,给装备赋值时,根据需要编号+1即可,换行是为了统一格式,方便扩展更多激活条件

比如2件套 4件套 6件套 8件套

$$3 用来实现动态修改颜色

$$2 暂未使用,可扩展为随机套装内的随机变量,比如几率的随机.

;===========

核心代码:穿戴后的动态修改与全身BUFF的统计

之前我在群里分享这个的时候,有人提出此方法BUFF如果多了,代码极其繁杂...

然而实际上 利用 遍历循环 全身装备,以及 变量的嵌套,可以以极少代码实现统计以及动态修改

[@穿戴触发]

#IF

#ACT

;参数根据自己设定来填写 这里的 20 是我自己版本的设定, 700为我的Text变量中 第一个BUFF的行数

GetAllCustomItemValueByTextLine 20 0 700N$无效数据 N$无效数据2 N3

MOV N$BUFF700 <$STR(N3)>

;这里,我们获取到了 这个Buff全身一共符合条件的有多少件,下面我们需要动态修改对应装备的显示

;此时,我们用一个循环

MOV N$起始位置 22

Loopgoto @循环统计 4

;这个起始位置是装备的起始位置,我写22是因为我随机套装只在22-25 4个时装位置上

;你如果要遍历全身装备,可以选择 起始位置为0....全身20件装备 Loop循环 20次这样以此类推

[@循环统计]

;对应件数

CHECKUSEITEM <$STR(N$起始位置)>

;这里我们检测遍历的装备位置是否穿戴了装备,如果穿戴了 则执行下面的

GetCustomItemValue <$STR(N$起始位置)> 17 N$Buff编号 N$无效值 0

;这里我们取得了这个位置装备有的Buff 编号即 此装备绑定的行数--比如700那么结合上面我们提前统计的值进行变量嵌套

;<$STR(N$BUFF<$STR(N$Buff编号)>)> = <$STR(N$BUFF700)> = 700这个套装的件数

;此时 直接对该位置 $$2 值赋值 就得到了 装备件数的动态修改

SetCustomItemValue <$STR(N$起始位置)> 17 = <$STR(N$BUFF<$STR(N$Buff编号)>)> 1

;如果你没有获取到此属性 你后续赋值为0 则无任何影响.

;此时件数有了,我们判定是否生效

;生效改色

EQUAL <$STR(N$BUFF<$STR(N$Buff编号)>)> 2

;如果为2件, 为啥用EQUAL 因为我最大2件, 你可以换其他判断,来挨个进行激活 类推

SetCustomItemValueEX <$STR(N$起始位置)> 17 = <$STR(N$Buff编号)> <$STR(N$BUFF<$STR(N$Buff编号)>)> 1 ;$$2 $$3赋值

SetCustomItemValue <$STR(N$起始位置)> 18 = 224 2 ;$$2 $$3赋值

;对装备进行改色触发↑224 是 $$3的值 224正好是绿色

;====================

你的所有套装属性的触发 直接检测

N$BUFF700 这个值即可

取下装备触发

[@TakeOffEx]

LinkPickupItem

SetCustomItemValue -1 17 = 01

SetCustomItemValue -1 18 = 10 2 ;$$2 $$3赋值

clearLinkItem

#CALL [穿脱触发\特效套装.txt] @特效套装

;但凡取下的装备直接修改对应颜色为灰色,件数为0即可

脚本核心就是变量的嵌套与遍历循环.附件为脚本实例

本文是网络搜集资料整理发布,不代表我们立场,转载联系作者并注明出处,如有侵权请及时联系我们删除。