[@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