传奇七号站-为优质资源而生分享无止境,七版本站Ctrl+D收藏本站!
登录后,享受更多优质服务哦

翎风修改角色属性命令LockUpdateAbil和UpdateAbil优化卡顿

七号编辑 收藏

常规高频率修改属性会非常消耗CPU资源,需要使用LockUpdateAbil和UpdateAbil对执行脚本进行锁定操作并解锁刷新来显著提高脚本性能,示范的脚本内容均增加了原子钟测试脚本性能和锁定与解锁,如果需要对比性能可以注释掉脚本中的LockUpdateAbil和UpdateAbil,如果你需要测试对比,发现脚本中的物品在你的服务端中没有,请自行修改物品名称进行测试,当然可以参考下面示范脚本内原子钟的运用对你的服务端脚本进行检验,高频脚本低于1毫秒为优,即时间越短越优秀!

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


[@加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毫秒的脚本,排查后如自己无法解决(或换更高效的方式实现该功能)请提供重现服务端(将你无法优化的脚本放入该服务端内并可以直接测试)


☉若无特殊注明本文皆为传奇版本库原创,转载请保留文章出处。
☉本站提供的资源来源网络收集,仅供学习研究之用切勿用于商业用途。
上一篇:GEE/翎风引擎踢除连接: IP(127.0.0.1),信息数量(1),数据包长度怎么解决
下一篇:没有了

我要评论
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!