传奇在线论坛

搜索
查看: 791|回复: 3

[技术文章] 传奇目前市面主流引擎写BUFF功能参考学习

[复制链接]
  • TA的每日心情
    无聊
    11 小时前
  • 483

    帖子

    12万

    金币

    0

    GM币

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1652
    发表于 2023-11-13 09:51:44 | 显示全部楼层 |阅读模式


    写BUFF脚本,其实很简单。万变不离其中,只需要会一条,自己都可以参照着改

    关键字:

    1.[@attack]   攻击触发

    2.[@magicattack]  魔法攻击触发

    3.[@struck]  被攻击触发

    4.[@magicstruck]  被魔法攻击触发

    5.MOV       变量赋值

    6.INC        变量相加

    7.DEC       变量相减

    8.DIV        变量整除

    9.MUL       变量相乘

    9.MOVR    变量A到B之间随机值

    10.<$str(变量)>  变量显示为值

    11.HumanHP       -      +             加血或者减血(自身)   P.XXX  M.XXX为多级脚本 为目标减血或加血

    12.引擎说明书搜变量→脚本变量大全    用于实现BUFF的功能

    13.CHECKCURRTARGETRACE  这个用于是否对人触发 对怪触发

    14.以后待补充

    ↓↓====================↓↓↓=脚本的实现↓↓↓=====================↓↓

    先想好自己要写什么BUFF,BUFF写多了没什么有创意的了。。。



    例1:现在 单职业用的最多的BUFF

    【攻击怪物50%几率秒掉怪物最大生命值20%血量】

    思路:

    1.攻击

    2.几率

    3.最大生命值20%

    4.是否对人触发,对怪触发?

    然后开始写

    [@attack]

    #if

    checkitemw  装备 1    检测是否佩戴此装备

    not  CHECKCURRTARGETRACE = 0    对人不触发

    random  2        Random  1为1/1   2为1/2  3为 1/3   理论上来说。这里也可以用变量MOVR   large small来控制几率,偷懒不做介绍

    #act

    MOV N1  <$ATTACKMONSTER_MAXHP>    赋值N1为怪物最大血量

    DIV N1 100  N1除以100

    MUL N1 20    N1乘以20

    (计算一下N1这时候的值是多少了?)

    假设怪物最大血量8000   8000*0.2=1600

    N1/100*20    8000/100=80    80*20=1600

    M.humanHP -  <$str(N1)>   怪物血量减的值为N1

    SendCenterMsg  168 255   装备XX的BUFF触发,怪物瞬间掉血20%伤害值为 <$str(N1)>!!   发送的信息文字

    sendmsg  6  装备XX的BUFF触发,怪物瞬间掉血20%伤害值为 <$str(N1)>!!          发送的信息文字(聊天框的)





    ↓↓====================↓↓↓=脚本的实现↓↓↓=====================↓↓

    例2:

    几率对目标造成250%额外伤害

    思路

    1.攻击 或者 魔法攻击

    2.本次攻击造成的伤害变量  <$PKPOWER>人物的对攻击目标的伤害输出值

    3.是否对人也触发





    [@attack]

    #if

    checkitemw 装备 1

    random XX

    #act

    mov N1 <$PKPOWER>

    MUL N1 100   变量不支持小数点只支持整数,所以需要计算

    DIV N1 40      如果额外伤害为300%,则直接MUL N1 3即可

    M.humanHP -  <$str(N1)>   怪物血量减的值为N1

    SendCenterMsg  168 255   装备XX的BUFF触发,对目标造成250%额外伤害。伤害值为 <$str(N1)>!!   发送的信息文字

    sendmsg  6  装备XX的BUFF触发,对目标造成250%额外伤害。伤害值为 <$str(N1)>!!          发送的信息文字(聊天框的)



    ↓↓====================↓↓↓=脚本的实现↓↓↓=====================↓↓

    以下不做解释,看不懂的多分析上面的思路

    例3:

    攻击怪物会使怪物中剧毒,每秒损失3%最大生命值,效果持续5秒

    #IF

    checkitemw 装备 1

    random XX

    #ACT

    MOV N1 <$ATTACKMONSTER_maHP>

    DIV N1 100

    MUL N1 3

    M.MAKEPOSION 1 5 <$STR(N1)>

    SendCenterMsg  XXXXXXXXXXXX

    sendmsg 6  XXXXXXXXXXXXXX

    例3:

    全屏火焰,全屏冰霜,全屏龙卷风?攻击怪物使7*7范围内敌人受到最大生命值20%的伤害

    #if

    random 20

    #act

    MOV N31 <$ATTACKMONSTER_MAXHP>

    DIV N31 100

    MUL N31 20

    AreaDamage <$X> <$y> 7 <$STR(N31)> 2 4 【这里需要配合插件我用的只如初见】

    PLAYEFFECT 14 3591 42 1 50

    SendCenterMsg 253 0 暗影:天色突然变暗,暗雨降临给予大范围敌人20%固定伤害.! 0 5

    break这里有个问题就是周围怪物掉血的血量是按你所攻击的怪物血量算的



    楼主热帖
    回复

    使用道具 举报

  • TA的每日心情
    可爱
    1 小时前
  • 47

    帖子

    2203

    金币

    0

    GM币

    英勇青铜

    Rank: 1

    积分
    47
    发表于 2023-11-20 20:05:02 | 显示全部楼层
    干货,收藏!
    回复

    使用道具 举报

  • TA的每日心情
    萌哒
    2023-12-2 08:00
  • 24

    帖子

    58

    金币

    0

    GM币

    英勇青铜

    Rank: 1

    积分
    24
    发表于 2023-12-1 03:28:12 | 显示全部楼层
    感谢管理大大分享
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2024-2-5 01:28
  • 136

    帖子

    350

    金币

    0

    GM币

    不屈白银

    Rank: 2

    积分
    137
    发表于 2023-12-31 05:49:28 | 显示全部楼层
    谢谢分享,来赚点金币
    回复

    使用道具 举报

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

    本版积分规则

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