传奇Blue引擎版本装备属性转移脚本参考

2023-11-1 17:57| 发布者: 积木GM论坛| 查看: 1578| 评论: 0

摘要: Blue引擎装备属性转移脚本:获取并修改武器属性示例/@GETEQUIPPROPS \ \关闭/@EXIT; 检测并修改武器的属性#IFCHECKUSEITEM 1#ACTMOV S_EVAL_BASE_PROP ""MOV S_EVAL_MYST_PROP ""MOV M_EVAL_SPEC_PROP 0MOV M_EVAL_S ...
Blue引擎装备属性转移脚本:

[@MAIN]
<获取并修改武器属性示例/@GETEQUIPPROPS> \ \
<关闭/@EXIT>

[@GETEQUIPPROPS]
; 检测并修改武器的属性
#IF
CHECKUSEITEM 1 
#ACT
MOV S_EVAL_BASE_PROP ""
MOV S_EVAL_MYST_PROP ""
MOV M_EVAL_SPEC_PROP 0
MOV M_EVAL_SKILL_PROP 0
MOV M_EVAL_TIMES_PROP 0
GETEQUIPPROPS 1

[@ONGETEQUIPPROPS]
; ------------------------------------------------------------------
; STRTOK 可以分解这样的字符:
#ACT
SENDMSG 5 分解字符串例子...
MOVS_EVAL_PROPS1=11,2=12,3=13,9=15|6=11,10=12,11=13,12=15|67|127|2
STRTOK S_EVAL_PROPS S_LEFTSTR1 |
STRTOK S_EVAL_PROPS S_LEFTSTR2 |
STRTOK S_EVAL_PROPS S_LEFTSTR3 |
STRTOK S_EVAL_PROPS S_LEFTSTR4 |
STRTOK S_EVAL_PROPS S_LEFTSTR5 |
SENDMSG 5 "先按“|”分解出:<$STR(S_LEFTSTR1)>,  <$STR(S_LEFTSTR2)>,  <$STR(S_LEFTSTR3)>,  <$STR(S_LEFTSTR4)>,  <$STR(S_LEFTSTR5)>"

; 分解S_LEFTSTR1,其他S_LEFTSTRXX方法一致
STRTOK S_LEFTSTR1 S_PROPVAL1 ,
STRTOK S_LEFTSTR1 S_PROPVAL2 ,
STRTOK S_LEFTSTR1 S_PROPVAL3 ,
STRTOK S_LEFTSTR1 S_PROPVAL4 ,
SENDMSG 5 "再按“,”分解出:<$STR(S_PROPVAL1)>,  <$STR(S_PROPVAL2)>,  <$STR(S_PROPVAL3)>,  <$STR(S_PROPVAL4)>"

STRTOK S_PROPVAL1 S_PROP1 =
STRTOK S_PROPVAL2 S_PROP2 =
STRTOK S_PROPVAL3 S_PROP3 =
STRTOKS_PROPVAL4S_PROP4=<BR>SENDMSG5"得到属性<$STR(S_PROP1)>=<$STR(S_PROPVAL1)>,<$STR(S_PROP2)>=<$STR(S_PROPVAL2)>,<$STR(S_PROP3)>=<$STR(S_PROPVAL3)>,<$STR(S_PROP4)>=<$STR(S_PROPVAL4)>"

; ------------------------------------------------------------------
#IF
TRUE
#ACT
; 获取鉴定特殊属性到M_EVAL_SPEC_PROP
FORMATSTR <$STR(M_EQUIP[%S]_EVAL_SPEC_PROPS{0})%S <$PARAM(3)> >
MOV M_EVAL_SPEC_PROP <$CALCRESULT>

; 更改鉴定特殊属性,可以使用#CALL简化脚本
#IF
ISBITSET M_EVAL_SPEC_PROP 0
#ACT
SENDMSG 5 "拥有特殊属性:八卦护身神技"
; 删除掉该技能
UNSETBIT M_EVAL_SPEC_PROP 0

#IF
ISBITSET M_EVAL_SPEC_PROP 1
#ACT
SENDMSG 5 "拥有特殊属性:战意麻痹神技"
; 删除掉该技能
UNSETBIT M_EVAL_SPEC_PROP 1

#IF
ISBITSET M_EVAL_SPEC_PROP 2
#ACT
SENDMSG 5 "拥有特殊属性:重生神技"
; 删除掉该技能
UNSETBIT M_EVAL_SPEC_PROP 2

#IF
ISBITSET M_EVAL_SPEC_PROP 3
#ACT
SENDMSG 5 "拥有特殊属性:探测神技"
; 删除掉该技能
UNSETBIT M_EVAL_SPEC_PROP 3

#IF
ISBITSET M_EVAL_SPEC_PROP 4
#ACT
SENDMSG 5 "拥有特殊属性:传送神技"
; 删除掉该技能
UNSETBIT M_EVAL_SPEC_PROP 4

#IF
ISBITSET M_EVAL_SPEC_PROP 5
#ACT
SENDMSG 5 "拥有特殊属性:麻痹神技"
#ELSEACT
; 没有“麻痹神技”?那就设置一个“麻痹神技”,然后可以将M_EVAL_SPEC_PROP的值回设给装备,即拥有“麻痹神技”
SETBIT M_EVAL_SPEC_PROP 5

#IF
!ISBITSET M_EVAL_SPEC_PROP 6
#ACT
SENDMSG 5 "赋予特殊属性:魔道麻痹神技"
SETBIT M_EVAL_SPEC_PROP 6


; ------------------------------------------------------------------
; 获取鉴定神技属性到M_EVAL_SKILL_PROP
FORMATSTR <$STR(M_EQUIP[%S]_EVAL_SKILL_PROPS{0})%S <$PARAM(3)> >
MOV M_EVAL_SKILL_PROP <$CALCRESULT> 

; 如果是武器,是拥有技能,其他非武器类装备是技能等级+1
#IF
ISBITSET M_EVAL_SKILL_PROP 0
#ACT
SENDMSG 5 "拥有神技:五岳独尊特技"
; 删除掉该技能
UNSETBIT M_EVAL_SKILL_PROP 0 

#IF
ISBITSET M_EVAL_SKILL_PROP 1
#ACT
SENDMSG 5 "拥有神技:召唤巨魔特技"
; 删除掉该技能
UNSETBIT M_EVAL_SKILL_PROP 1 

#IF
ISBITSET M_EVAL_SKILL_PROP 2
#ACT
SENDMSG 5 "拥有神技:神龙附体特技"
; 删除掉该技能
UNSETBIT M_EVAL_SKILL_PROP 2 

#IF
ISBITSET M_EVAL_SKILL_PROP 3
#ACT
SENDMSG 5 "拥有神技:倚天劈地特技" 

; ------------------------------------------------------------------
FORMATSTR <$STR(M_EQUIP[%S]_EVAL_TIMES_PROPS{0})%S <$PARAM(3)> >
MOV M_EVAL_TIMES_PROP <$CALCRESULT> 

; ------------------------------------------------------------------
#IF
; 升级身上装备,只是特殊技能
!COMPVAL <$PARAM(3)> = 10000
#ACT
; 故意留了空格,防止分解字符串是出现问题
FORMATSTR "%S |%S |%S |%S | %S" $STR(S_EVAL_BASE_PROP) $STR(S_EVAL_MYST_PROP) $STR(M_EVAL_SPEC_PROP) $STR(M_EVAL_SKILL_PROP) $STR(M_EVAL_TIMES_PROP)
SENDMSG 5 "即将设置的鉴定属性:<$CALCRESULT>"
; 第5参数本来处理失败的结果,现在扩展为可以设置99,即忽略普通属性的升级,这里只升级神秘属性
UPGRADEITEMEX <$PARAM(3)> 11 1 1 99 "" 1 <$CALCRESULT>
; 升级自定义装备框的装备,略...
;#ELSEACT
;UPGRADEDLGITEM

装备属性转移脚本配置下载:配置脚本.ZIP



相关阅读

最新评论