项目

一般

简介

行为

装备熔炼 » 历史记录 » 修订 1

修订 1/5 | 下一页 »
chenjun, 2022-06-13 02:08


装备熔炼

标签:模块示例|装备熔炼

模块说明
符合条件的装备可以通过熔炼转化为其它游戏道具
属于设置好的装备范围内,没有强过星,没有自定义属性,没有额外属性,没有任意可转移属性,符合上述全部条件的装备,可以进行熔炼
装备熔炼分为手动熔炼与自动熔炼
背包中的可熔炼装备,会显示在熔炼界面的装备列表中,勾选本次想熔炼的装备后,点击熔炼按钮,进行手动熔炼


特戒引擎脚本示例:


;..\Mir200\Envir\QuestDiary\装备熔炼\装备熔炼.txt
[@main]
#act
;获取可手动熔炼装备名列表
getListstring ..\QuestDiary\装备熔炼\可熔炼装备装备名.txt 0 S$可手动熔炼装备名列表
;获取可手动熔炼装备列表
getSmeltEquipList S$可手动熔炼装备名列表 S$返回可手动熔炼装备名 S$返回可手动熔炼装备实例化id
 
#say
;创建熔炼装备列表界面
<SmeltEquipList:熔炼装备框:<$str(S$返回可手动熔炼装备实例化id)>:48:0,0:100:settings_mark,settings_markbg:4:400/@熔炼gridClk>
 
 
[@熔炼gridClk]
#act
sendmsg 6 本次要熔炼的装备有<$SmeltEquipList.name>
;sendmsg 6 本次选中的熔炼装备的实例化id是<$SmeltEquipList.InstanceId>
 
 
[@熔炼花费]
#if
#act
mov S$选中待熔炼装备名 <$SmeltEquipList.name>
pgExtractstring , S$选中待熔炼装备名 S$返回值 N$分割数
;定义计数器
mov N$装备个数计数 0
;定义花费值,用于累计
mov N$选中装备熔炼花费值累计 0
;定义中间变量,用于调用装备名
goto @计算花费
 
 
[@计算花费]
;如果计数器小于等于装备数,则继续取花费,累加到花费值上
;如果计数器大于装备数,则结束
#if
small N$装备个数计数 N$分割数
#act
goto @进入循环
#elseact
sendMsg 6 本次熔炼花费为:<$str(N$选中装备熔炼花费值累计)>
 
 
[@进入循环]
#act
inc N$装备个数计数 1
mov S$当前处理装备的名字 <$str(S$返回值_<$str(N$装备个数计数)>)>
;获取装备的行号
getstringPos ..\QuestDiary\装备熔炼\熔炼装备装备名.txt S$当前处理装备的名字
getListstring ..\QuestDiary\装备熔炼\熔炼装备花费.txt <$str(N0)> S$返回串
inc N$选中装备熔炼花费值累计 <$str(S$返回串)>
goto @计算花费
 
 
[@熔炼btnClk]
#if
equal S$选中待熔炼装备名
#act
sendmsg 6 啥也没选中
#elseact
goto @手动熔炼装备
 
 
[@手动熔炼装备]
#if
#act
mov S$选中待熔炼装备名1 <$SmeltEquipList.name>
pgExtractstring , S$选中待熔炼装备名1 S$返回值1 N$分割数1
mov S$选中待熔炼装备实例化id1 <$SmeltEquipList.InstanceId>
pgExtractstring , S$选中待熔炼装备实例化id1 S$返回值11 N$分割数11
;定义计数器
mov N$装备个数计数1 0
;定义花费值,用于累计
mov N$选中装备熔炼花费值累计1 0
goto @开始手动熔炼
 
 
[@开始手动熔炼]
;如果计数器小于等于装备数,则删除该装备+扣除熔炼花费+获得熔炼奖励
;如果计数器大于装备数,则结束
#if
small N$装备个数计数1 N$分割数1
#act
goto @手动熔炼循环
#elseact
sendMsg 6 本次熔炼花费为:<$str(N$选中装备熔炼花费值累计1)>
 
 
[@手动熔炼循环]
#act
inc N$装备个数计数1 1
;删除该装备
mov S$当前处理装备的实例化id1 <$str(S$返回值11_<$str(N$装备个数计数1)>)>
delEquipId <$str(S$当前处理装备的实例化id1)>
;扣除熔炼花费
mov S$当前处理装备的名字1 <$str(S$返回值1_<$str(N$装备个数计数1)>)>
;获取装备的行号
getstringPos ..\QuestDiary\装备熔炼\熔炼装备装备名.txt S$当前处理装备的名字1
getListstring ..\QuestDiary\装备熔炼\熔炼装备花费.txt <$str(N0)> S$返回串1
inc N$选中装备熔炼花费值累计1 <$str(S$返回串1)>
gamegold - <$str(S$返回串1)>
;获得熔炼奖励
mov S$当前处理装备的怪物名字1 S$当前处理装备的名字1
monsterDrop2 <$str(S$当前处理装备的怪物名字1)>
goto @开始手动熔炼
 
 
[@背包自动熔炼]
#act
mov S$设置自动熔炼装备名 <$SmeltEquipList.name>
 
#if
;勾选了自动熔炼,且自动熔炼设置不为空
check [1001] 1
equal S$设置自动熔炼装备名
#act
;获取可熔炼装备列表
getSmeltEquipList S$设置自动熔炼装备名 S$待自动熔炼装备名 S$待自动熔炼装备实例化id
mov S$待自动熔炼装备名 <$SmeltEquipList.name>
pgExtractstring , S$待自动熔炼装备名 S$返回值2 N$分割数2
mov S$待自动熔炼装备实例化id <$SmeltEquipList.InstanceId>
pgExtractstring , S$待自动熔炼装备实例化id S$返回值21 N$分割数21
;定义计数器
mov N$装备个数计数3 0
;定义花费值,用于累计
mov N$自动装备熔炼花费值累计 0
goto @开始自动熔炼
 
 
[@开始自动熔炼]
;如果计数器小于等于装备数,则删除该装备+扣除熔炼花费+获得熔炼奖励
;如果计数器大于装备数,则结束
#if
small N$装备个数计数3 N$分割数2
#act
goto @自动熔炼循环
#elseact
sendMsg 6 本次熔炼花费为:<$str(N$自动装备熔炼花费值累计)>
 
 
[@自动熔炼循环]
#act
inc N$装备个数计数3 1
;删除该装备
mov S$当前处理装备的实例化id2 <$str(S$返回值21_<$str(N$装备个数计数3)>)>
delEquipId <$str(S$当前处理装备的实例化id2)>
;扣除熔炼花费
mov S$当前处理装备的名字2 <$str(S$返回值2_<$str(N$装备个数计数3)>)>
;获取装备的行号
getstringPos ..\QuestDiary\装备熔炼\熔炼装备装备名.txt S$当前处理装备的名字2
getListstring ..\QuestDiary\装备熔炼\熔炼装备花费.txt <$str(N0)> S$返回串2
gamegold - <$str(S$返回串2)>
;获得熔炼奖励
mov S$当前处理装备的怪物名字2 S$当前处理装备的名字2
monsterDrop2 <$str(S$当前处理装备的怪物名字2)>
goto @开始自动熔炼

由 chenjun 更新于 超过 2 年 之前 · 1 修订