马上注册,查看更多内容,丰富传奇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
|