马上注册,查看更多内容,丰富传奇GM资源等你下载探索。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
装备属性转移脚本:
[@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 分解字符串例子...
MOV S_EVAL_PROPS 1=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 =
STRTOK S_PROPVAL4 S_PROP4 =
SENDMSG 5 "得到属性<$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
下载装备转移[配置脚本]
2021.10.23装备属性转换.zip
(2.36 KB)
|