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 |