58miu传奇素材网-传奇引擎修改角色属性命令,执行脚本前请加上LockUpdateAbil进行锁定

1
回复
75
查看
[复制链接]

微信扫一扫 分享朋友圈

6172

主题

6180

帖子

3600万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36005048
发表于 2025-4-12 10:43:35 | 显示全部楼层 |阅读模式
58miu传奇素材网-传奇引擎关于修改角色属性命令,执行脚本前请加上LockUpdateAbil进行锁定
注意本帖资源为论坛会员发布
会员发布请注意:20M以内的资源请直接上传附件、大于10M的请使用网盘链接、外面免费的素材脚本不得大于5金币、外面收费的素材本站设置不得高于其他站点
===========================================================
脚本范例:
以下为NPC脚本讲解,常规高频率修改属性会非常消耗CPU资源,需要使用LockUpdateAbil和UpdateAbil对执行脚本进行锁定操作并解锁刷新来显著提高脚本性能
示范的脚本内容均增加了原子钟测试脚本性能和锁定与解锁,如果需要对比性能可以注释掉脚本中的LockUpdateAbil和UpdateAbil
如果你需要测试对比,发现脚本中的物品在你的服务端中没有,请自行修改物品名称进行测试
当然可以参考下面示范脚本内原子钟的运用对你的服务端脚本进行检验,高频脚本低于1毫秒为优,即时间越短越优秀!


[@main]
第一步(开启首饰盒,生肖盒) <开启/@开启>\
第二步(刷物品) <刷物品/@刷> \
第三步(增加属性命令) [耗时高] <加属性/@加> \
第四步(扣除属性命令) [耗时高] <扣属性/@扣> \
第五步(增加属性命令) [耗时高] <EX加属性/@加2> \
第六步(扣除属性命令) [耗时高] <EX扣属性/@扣2> \
第七步(检测套装) [耗时高] <检测/@检测> \ \
清理物品(清理物品) <清理/@删>\




[@加2]
#IF
#ACT
PrintUseTime 1
LockUpdateAbil
;执行脚本前请加上LockUpdateAbil进行锁定,可显著提高脚本性能,防止高频率使用时游戏卡的问题
ChangeHumAbilityEX 1 + 5
ChangeHumAbilityEX 2 + 5
ChangeHumAbilityEX 3 + 5
ChangeHumAbilityEX 4 + 5
ChangeHumAbilityEX 5 + 5
ChangeHumAbilityEX 6 + 5
ChangeHumAbilityEX 7 + 5
ChangeHumAbilityEX 8 + 5
ChangeHumAbilityEX 9 + 5
ChangeHumAbilityEX 10 + 5
ChangeHumAbilityEX 11 + 5
ChangeHumAbilityEX 12 + 5
UpdateAbil
;脚本执行完毕增加UpdateAbil命令进行解锁并刷新
PrintUseTime 2 N0 S0
Sendmsg 6 提示:脚本执行耗时<$STR(N0)>微秒,自动单位为<$STR(S0)>
break


[@扣2]
#IF
#ACT
PrintUseTime 1
LockUpdateAbil
ChangeHumAbilityEX 1 = 0
ChangeHumAbilityEX 2 = 0
ChangeHumAbilityEX 3 = 0
ChangeHumAbilityEX 4 = 0
ChangeHumAbilityEX 5 = 0
ChangeHumAbilityEX 6 = 0
ChangeHumAbilityEX 7 = 0
ChangeHumAbilityEX 8 = 0
ChangeHumAbilityEX 9 = 0
ChangeHumAbilityEX 10 = 0
ChangeHumAbilityEX 11 = 0
ChangeHumAbilityEX 12 = 0
UpdateAbil
PrintUseTime 2 N0 S0
Sendmsg 6 提示:脚本执行耗时<$STR(N0)>微秒,自动单位为<$STR(S0)>
break


[@加]
#IF
#ACT
PrintUseTime 1
LockUpdateAbil
ChangeHumAbility 1 + 5
ChangeHumAbility 2 + 5
ChangeHumAbility 3 + 5
ChangeHumAbility 4 + 5
ChangeHumAbility 5 + 5
ChangeHumAbility 6 + 5
ChangeHumAbility 7 + 5
ChangeHumAbility 8 + 5
ChangeHumAbility 9 + 5
ChangeHumAbility 10 + 5
ChangeHumAbility 11 + 5
ChangeHumAbility 12 + 5
UpdateAbil
PrintUseTime 2 N0 S0
Sendmsg 6 提示:脚本执行耗时<$STR(N0)>微秒,自动单位为<$STR(S0)>
break


[@扣]
#IF
#ACT
PrintUseTime 1
LockUpdateAbil
ChangeHumAbility 1 = 0
ChangeHumAbility 2 = 0
ChangeHumAbility 3 = 0
ChangeHumAbility 4 = 0
ChangeHumAbility 5 = 0
ChangeHumAbility 6 = 0
ChangeHumAbility 7 = 0
ChangeHumAbility 8 = 0
ChangeHumAbility 9 = 0
ChangeHumAbility 10 = 0
ChangeHumAbility 11 = 0
ChangeHumAbility 12 = 0
UpdateAbil
PrintUseTime 2 N0 S0
Sendmsg 6 提示:脚本执行耗时<$STR(N0)>微秒,自动单位为<$STR(S0)>
break


[@检测]
#IF
#ACT
PrintUseTime 1
#IF
CheckGroupItem 1
#ACT
#IF
#ACT
PrintUseTime 2 N0 S0
Sendmsg 6 提示:脚本执行耗时<$STR(N0)>微秒,自动单位为<$STR(S0)>
break


[@删]
#IF
#ACT
TakeBagItemEX 1-9999 200 0 0 0 0 N1 0
MOV N$循环开始 0
WHILE N$循环开始 < 52
TakePosW <$Str(N$循环开始)>
INC N$循环开始 1
ENDWHILE
break


[@开启]
#IF
#ACT
activationcasket
SetSndacasket 1
ShowGodBless 1
OpenGodBless all
break


[@刷]
#IF
#ACT
LockUpdateAbil
;因为一次性自动穿戴物品过多,属性刷新次数过多导致性能有所下降,这时可以在执行前锁定后执行脚本内容
GiveOnItem 00 布衣(男)
GiveOnItem 01 木剑
GiveOnItem 02 荣誉勋章11号
GiveOnItem 03 黑檀项链
GiveOnItem 04 魔法头盔
GiveOnItem 05 皮制手套
GiveOnItem 06 皮制手套
GiveOnItem 07 玻璃戒指
GiveOnItem 08 玻璃戒指
GiveOnItem 09 符
GiveOnItem 10 腰带
GiveOnItem 11 靴子
GiveOnItem 12 宝石
GiveOnItem 13 斗笠
GiveOnItem 14 军鼓
GiveOnItem 15 马牌
; GiveOnItem 16
GiveOnItem 17 灵玉
GiveOnItem 18 时装衣
GiveOnItem 19 时装武
GiveOnItem 20 时装项
GiveOnItem 21 时装头
GiveOnItem 22 时装手
GiveOnItem 23 时装手
GiveOnItem 24 时装戒
GiveOnItem 25 时装戒
GiveOnItem 26 时装勋
GiveOnItem 27 时装腰
GiveOnItem 28 时装靴
GiveOnItem 29 时装宝石
GiveOnItem 30 首饰盒1
GiveOnItem 31 首饰盒2
GiveOnItem 32 首饰盒3
GiveOnItem 33 首饰盒4
GiveOnItem 34 首饰盒5
GiveOnItem 35 首饰盒6
GiveOnItem 40 生肖1
GiveOnItem 41 生肖2
GiveOnItem 42 生肖3
GiveOnItem 43 生肖4
GiveOnItem 44 生肖5
GiveOnItem 45 生肖6
GiveOnItem 46 生肖7
GiveOnItem 47 生肖8
GiveOnItem 48 生肖9
GiveOnItem 49 生肖10
GiveOnItem 50 生肖11
GiveOnItem 51 生肖12
UpdateAbil
;执行完成后解锁并刷新,这样原本刷新几十次(每佩戴一件物品刷新一次)仅需一次刷新即可,不但提高脚本性能效率且减少发往客户端的流量(刷新一次发一次)
PrintUseTime 2 N0 S0
Sendmsg 6 提示:脚本执行耗时<$STR(N0)>微秒,自动单位为<$STR(S0)>
break


;以上属性修改及原子钟例子.游戏卡都是脚本问题导致,在线人数低于1000人就卡请排查服务端耗时大于2毫秒的高频率执行的脚本,低于1500人卡就排查所有大于2毫秒的脚本,排查后如自己无法解决(或换更高效的方式实现该功能)请提供重现服务端(将你无法优化的脚本放入该服务端内并可以直接测试)到论坛
===========================================================
如发现相关链接失效、请在联系站长QQ:81199621
58miu传奇素材网、力争打造最公益的传奇素材类站点、希望广大传奇爱好者支持!
素材我们一直会慢慢的加上来、大家有什么样的需求可以在素材交流区发帖沟通、
www.58miu.com  论坛交流群:688370314  站长QQ:81199621
===========================================================

0

主题

4291

帖子

4万

积分

论坛元老

Rank: 8Rank: 8

积分
45428
发表于 2025-4-17 00:11:20 | 显示全部楼层
58miu传奇素材网告诉你,这个论坛里面,要是说素材,我敢说第一没人敢说第二!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表