传奇在线论坛

搜索
查看: 1643|回复: 2

[技术文章] 【技术文章】利用Text变量+遍历循环变量嵌套实现随机套装

[复制链接]
  • TA的每日心情
    无聊
    昨天 08:06
  • 516

    帖子

    17万

    金币

    0

    GM币

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1881
    发表于 2022-10-29 22:12:57 | 显示全部楼层 |阅读模式

    装备上属性的显示实现方法:
    Text变量
    第一行:{特效套装·天威|146}{($$2/2)|224}
    第二行:{(2)套装:攻击时一定几率对目标周|$$3}\{围造成本次攻击25%的真实溅射伤害。|$$3}

    <TEXT$1>
    第一行:
    $$1 记录了行数 则对应了相应的套装编号
    $$2 记录了套装当前穿戴的件数,那么初始为0,当穿戴的时候通过遍历并修改已实现动态显示
    第二行:
    $$1 同样是行数,用以显示,给装备赋值时,根据需要编号+1即可,换行是为了统一格式,方便扩展更多激活条件
    比如2件套 4件套 6件套 8件套
    $$3 用来实现动态修改颜色
    $$2 暂未使用,可扩展为随机套装内的随机变量,比如几率的随机.


    ;===========
    核心代码:穿戴后的动态修改与全身BUFF的统计
    之前我在群里分享这个的时候,有人提出此方法BUFF如果多了,代码极其繁杂...
    然而实际上 利用 遍历循环 全身装备,以及 变量的嵌套,可以以极少代码实现统计以及动态修改
    [@穿戴触发]
    #IF
    #ACT
    ;参数根据自己设定来填写 这里的 20 是我自己版本的设定, 700为我的Text变量中 第一个BUFF的行数
    GetAllCustomItemValueByTextLine 20 0 700  N$无效数据 N$无效数据2 N3
    MOV N$BUFF700 <$STR(N3)>

    ;这里,我们获取到了 这个Buff全身一共符合条件的有多少件,下面我们需要动态修改对应装备的显示
    ;此时,我们用一个循环
    #IF
    #ACT
    MOV N$起始位置 22               
    Loopgoto @循环统计 4

    ;这个起始位置是装备的起始位置,我写22是因为我随机套装只在22-25 4个时装位置上
    ;你如果要遍历全身装备,可以选择 起始位置为0....全身20件装备 Loop循环 20次这样以此类推

    [@循环统计]
    ;对应件数
    #IF
    CHECKUSEITEM <$STR(N$起始位置)>
    ;这里我们检测遍历的装备位置是否穿戴了装备,如果穿戴了 则执行下面的
    #ACT
    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 则无任何影响.
    ;此时件数有了,我们判定是否生效

    ;生效改色
    #IF
    EQUAL <$STR(N$BUFF<$STR(N$Buff编号)>)> 2
    ;如果为2件, 为啥用EQUAL 因为我最大2件, 你可以换其他判断,来挨个进行激活 类推
    #ACT

    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]
    #ACT
    LinkPickupItem
    SetCustomItemValue -1 17 = 0  1
    SetCustomItemValue -1 18 = 10 2           ;$$2 $$3赋值
    clearLinkItem
    #CALL [穿脱触发\特效套装.txt] @特效套装


    ;但凡取下的装备直接修改对应颜色为灰色,件数为0即可
    脚本核心就是变量的嵌套与遍历循环.附件为脚本实例





    楼主热帖
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-3-4 17:57
  • 14

    帖子

    43

    金币

    0

    GM币

    英勇青铜

    Rank: 1

    积分
    14
    发表于 2023-3-4 18:00:02 | 显示全部楼层
    学习了,感谢!!!
    回复

    使用道具 举报

  • TA的每日心情
    难过
    3 天前
  • 281

    帖子

    415

    金币

    0

    GM币

    不屈白银

    Rank: 2

    积分
    283
    发表于 2024-6-26 08:38:03 | 显示全部楼层
    学习了,感谢!
    回复

    使用道具 举报

    *滑块验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Copyright © 2001-2013 Comsenz Inc.Powered by Discuz!X3.4
    Archiver手机版小黑屋传奇在线论坛 QQ
    快速回复 返回顶部 返回列表