-
刷新装备属性updateitem/LINKGIVEITEM/clearLinkItem
绑定给予的装备进行命令操作:
;======================================================
格式:updateitem
位置
绑定脚本给的物品进行命令操作,只绑定最后一个给的物品,比如GIVE 屠龙 10
,一次给10把屠龙,只对最后一把生效!
#IF
#ACT
give 屠龙
1
;给屠龙1把
LINKGIVEITEM
;绑定屠龙下面的操作只对绑定的装备生效
ChangeItemNameColor -1
253
;调整武器颜色
updateitem -1
;刷新到客户端
clearLinkItem
;解除绑定,不然刷新包裹物品不刷新
break
注:位置 -1是普通OK框,其他装备位置阅读说明书!
注意:clearLinkItem
因为绑定必须给物品一个位置,目前以下2个命令强行绑定到OK框,请加上解除绑定命令,不然不能及时刷新背包物品属性,需要小退生效,加上后及时生效!!!主要是解决绑定到-1后,alt+R刷新包裹和捡起触发改名不刷新的问题,,身上或自定义OK框或者OK框只要有装备位置的不需要增加clearLinkItem,因为背包是没位置的所以需要增加!!!
-
脚本循环次数Loopgoto/endloop
说明:循环脚本运行次数设置
格式:Loopgoto @脚本
脚本运行次数(为空或0时,运行1次)
示范脚本:
[@循环]
#ACT
mov N1 0
mov N2
1
Loopgoto @运算 100
sendmsg 6
1加到100的结果为:<$STR(N1)>
[@运算]
#ACT
Inc <$STR(N1)>
<$STR(N2)>
Inc N2
1
增加NPC命令:endloop中止loopgoto
[@随机取数]
#act
mov
p1 0
loopgoto @取数 100
sendmsg 6
循环<$str(p1)>次,才取到>=50的数:<$str(p10)>
[@取数]
#act
inc
p1 1
;此例仅做说明,实际只用取一次,取50以内的取机数+49即可
movr p10 100
#if
large p10
49
#act
endloop
-
获取物品原始参数GetDBItemFieldValue/GetDBIdxItemFieldValue
说明:获取物品原始各项数据库字段值参数
格式:通过物品名字取数据库字段值 GetDBItemFieldValue 物品名称 字段名
变量
格式:通过 IDX 字段取数据库字段值 GetDBIdxItemFieldValue idx 字段名
变量
---------------------------------------------------------------------------------------------
示范脚本:
[@循环]
#ACT
GetDBItemFieldValue
屠龙 idx <$STR(N1)>
GetDBItemFieldValue 屠龙 stdmode <$STR(N2)>
sendmsg 6 idx :<$STR(N1)> ,stdmode:<$STR(N2)>
===========================================================================================================================
详细参考示范脚本:
;以下所有内容大家都可以自己选择任何设置方式和应用,不一定非是商铺,可以很多方式也可以很多应用
;只拿【商铺来购买金币物品】进行举例,如有不足还请见谅,毕竟脚本这个东西需要脑子去无数次的想!
;本脚本由群友提供有问题可以私密,QQ:815915131
大叔
;切记!!将下列脚本内容放入到MirServer\Mir200\Envir\Market_Def\QFunction-0.txt中去!
;——————————————————————————————商城购物触发字段
[@BuyShopItem]
#if
;——————————————————————————————检测当前购入的物品是否在你设置允许批量购买的路径名单中
CHECKTEXTLIST
..\QuestDiary\商城批量购物\金币物品.txt
<$STR(S0)>
#act
;——————————————————————————————清理之前购买的物品名和价格(保完全,可以不用)
MOV
S$商城当前购入物品名
MOV N$商城当前购入物品单
0
;——————————————————————————————将当前价格写入变量
MOV S$商城当前购入物品名
<$STR(S0)>
MOV N$商城当前购入物品单价
<$STR(M0)>
;——————————————————————————————如果你当前购入的物品是你允许批量购买的物品时,则提取IDX
GetDBItemFieldValue
<$STR(S$商城当前购入物品名)> idx
N$商铺购买物品代码
;——————————————————————————————转向下段脚本
goto
@在线_商铺批量购买
break
;————————————————————————————————————————————————————————金币类批量购买
[@在线_商铺批量购买]
#act
;——————————————————————————————设置自定义对话框
OPENMERCHANTBIGDLG
176 19 1 0 10 70 1 190 8
1
;——————————————————————————————将单价乘以数量后写入总价格
MUL N$批量商铺购买物品总金额
<$STR(N$商城当前购入物品单价)>
<$STR(N$批量商铺购买物品数量)>
#say
;——————————————————————————————触发对话,并且调用之前已经提取号的IDX变量
<ItemShow:<$STR(N$商铺购买物品代码)>:0:16:53:1>
\
\
\
名称:<$STR(S$商城当前购入物品名)>\
单价:<$STR(N$商城当前购入物品单价)>金币\
说明:@关闭批量\
\
\
\
;——————————————————————————————修改批量购买商铺物品的数量,输入后会自动计算!
<$STR(N$批量商铺购买物品数量)>个<(修改数量)/@@InPutInteger300>\
\
<$STR(N$批量商铺购买物品总金额)>金币\
\
<批量购入/@批量购买> <放弃购入/@放弃购入>
;——————————————————————————————修改批量物品数量后触发的字段
[@InPutInteger300]
#if
EQUAL
N300 0
#act
;——————————————————————————————将单价乘以数量后写入总价格
MUL
N$批量商铺购买物品总金额 <$STR(N$商城当前购入物品单价)>
<$STR(N$批量商铺购买物品数量)>
;——————————————————————————————设置自定义对话框
OPENMERCHANTBIGDLG
176 19 1 0 10 70 1 190 8
1
#say
;——————————————————————————————触发对话,并且调用之前已经提取号的IDX变量
<ItemShow:<$STR(N$商铺购买物品代码)>:0:16:53:1>
\
\
\
名称:<$STR(S$商城当前购入物品名)>\
单价:<$STR(N$商城当前购入物品单价)>金币\
说明:@关闭批量\
\
\
\
;——————————————————————————————修改批量购买商铺物品的数量,输入后会自动计算!
<$STR(N$批量商铺购买物品数量)>个<(修改数量)/@@InPutInteger300>\
\
<$STR(N$批量商铺购买物品总金额)>金币\
\
<批量购入/@批量购买> <放弃购入/@放弃购入>
;——————————————————————————————所有条件满足开始执行批量购买
[@批量购买]
#IF
;——————————————————————————————检测人物当前是否有足够的金币来购买,当然你也可以换成任何其他货币如元宝之类的
checkgold
<$STR(N$批量商铺购买物品总金额)>
#ACT
take 金币
<$STR(N$批量商铺购买物品总金额)>
;——————————————————————————————给予人物购买的物品名+数量
give
<$STR(S$商城当前购入物品名)>
<$STR(N$批量商铺购买物品数量)>
#ELSEACT
;——————————————————————————————不满足输入条件时候触发字段
MessageBox
缺少“<$STR(N$批量商铺购买物品总金额)>”个金币无法购买!
[@放弃购入]
#act
;——————————————————————————————结束批量购入对话和其他对话,因为之前已经调用了自定义,
;——————————————————————————————为避免直接点击其他NPC出错我们则用引擎说明书中的关闭命令来关闭,
;——————————————————————————————最后指向正常的脚本结束语
CloseBigDialogBox
CLOSEMERCHANTBIGDLG
;——————————————————————————————指向普通脚本结束语
close
-
读写删除ini配置DelCacheConfigFileItem/DelCacheConfigFileSection
说明:读写ini配置项
---------------------------------------------------------------------------------------------
说明:
WriteConfigFileItem写配置项
功能说明:可以把一些数据进行配置保存
你也可以把它当成一种变量保存方式
ReadConfigFileItem读配置项
功能说明:获取出配置文件中的配置项内容
此两个命令配合使用 就相当于变量保存操作
示例:
[@main]
<写配置项>
<请输入你要写入配置项的内容/@@InPutString3>\
<读配置项内容/@读配置项>
<$STR(S$配置项内容)>\
[@InPutString3]
#IF
#ACT
;写配置项
WriteConfigFileItem
..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S3)>
SENDMSG 6
你已经把你输入的内容写到配置文件中KEY.txt
[@读配置项]
#IF
#ACT
;读配置项
ReadConfigFileItem
..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S$配置项内容)>
SENDMSG 6
你已经把配置文件KEY.txt中的内容获取出
GOTO @main
删除配置文件中的一行:
DelConfigFileItem 文件名
设置 用户 (删除 用户 = aaaa 这一行)
删除配置文件中的一个区:
DelConfigFileSection 文件名 设置 (删除
[设置] 及设置以下的项)
WriteConfigFileItem ReadConfigFileItem
增加支持绝对路径,注意使用绝对路径参数必须完整!
;================================================================以下命令属高效率=============================
ReadCacheConfigFileItem
WriteCacheConfigFileItem
DelCacheConfigFileItem
DelCacheConfigFileSection
注:这4个是
Cache(缓存),操作速度会比不带cache的快很多,问题就是,在M2运行过程中,只能用脚本操作,手动操作的无效。如果ini文件不存在手动操作的情况下,就用Cache
Cache的特点是,对ini的操作只打开一次,然后一直在内存缓存,所以只命令操作才有效,手动操作无效。关闭引擎时候才会保存到INI文件内,引擎运行期间一直内存中运行,所以启动引擎后手动修改INI文件信息是无效的
在没有手动操作ini的情况下,推荐用带cache的。不带cache的比较耗时。
比如提现:操作会删除提现记录属于手动操作,所以不能使用cache,但计算战斗力属于内部引擎操作无手动干预,可以使用带cache的!
-
读写删除ini配置ReadCacheConfigFileItem/WriteCacheConfigFileItem
说明:读写ini配置项
---------------------------------------------------------------------------------------------
说明:
WriteConfigFileItem写配置项
功能说明:可以把一些数据进行配置保存
你也可以把它当成一种变量保存方式
ReadConfigFileItem读配置项
功能说明:获取出配置文件中的配置项内容
此两个命令配合使用 就相当于变量保存操作
示例:
[@main]
<写配置项>
<请输入你要写入配置项的内容/@@InPutString3>\
<读配置项内容/@读配置项>
<$STR(S$配置项内容)>\
[@InPutString3]
#IF
#ACT
;写配置项
WriteConfigFileItem
..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S3)>
SENDMSG 6
你已经把你输入的内容写到配置文件中KEY.txt
[@读配置项]
#IF
#ACT
;读配置项
ReadConfigFileItem
..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S$配置项内容)>
SENDMSG 6
你已经把配置文件KEY.txt中的内容获取出
GOTO @main
删除配置文件中的一行:
DelConfigFileItem 文件名
设置 用户 (删除 用户 = aaaa 这一行)
删除配置文件中的一个区:
DelConfigFileSection 文件名 设置 (删除
[设置] 及设置以下的项)
WriteConfigFileItem ReadConfigFileItem
增加支持绝对路径,注意使用绝对路径参数必须完整!
;================================================================以下命令属高效率=============================
ReadCacheConfigFileItem
WriteCacheConfigFileItem
DelCacheConfigFileItem
DelCacheConfigFileSection
注:这4个是
Cache(缓存),操作速度会比不带cache的快很多,问题就是,在M2运行过程中,只能用脚本操作,手动操作的无效。如果ini文件不存在手动操作的情况下,就用Cache
Cache的特点是,对ini的操作只打开一次,然后一直在内存缓存,所以只命令操作才有效,手动操作无效。关闭引擎时候才会保存到INI文件内,引擎运行期间一直内存中运行,所以启动引擎后手动修改INI文件信息是无效的
在没有手动操作ini的情况下,推荐用带cache的。不带cache的比较耗时。
比如提现:操作会删除提现记录属于手动操作,所以不能使用cache,但计算战斗力属于内部引擎操作无手动干预,可以使用带cache的!
-
读写删除ini配置DelConfigFileItem/DelConfigFileSection
说明:读写ini配置项
---------------------------------------------------------------------------------------------
说明:
WriteConfigFileItem写配置项
功能说明:可以把一些数据进行配置保存
你也可以把它当成一种变量保存方式
ReadConfigFileItem读配置项
功能说明:获取出配置文件中的配置项内容
此两个命令配合使用 就相当于变量保存操作
示例:
[@main]
<写配置项>
<请输入你要写入配置项的内容/@@InPutString3>\
<读配置项内容/@读配置项>
<$STR(S$配置项内容)>\
[@InPutString3]
#IF
#ACT
;写配置项
WriteConfigFileItem
..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S3)>
SENDMSG 6
你已经把你输入的内容写到配置文件中KEY.txt
[@读配置项]
#IF
#ACT
;读配置项
ReadConfigFileItem
..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S$配置项内容)>
SENDMSG 6
你已经把配置文件KEY.txt中的内容获取出
GOTO @main
删除配置文件中的一行:
DelConfigFileItem 文件名
设置 用户 (删除 用户 = aaaa 这一行)
删除配置文件中的一个区:
DelConfigFileSection 文件名 设置 (删除
[设置] 及设置以下的项)
WriteConfigFileItem ReadConfigFileItem
增加支持绝对路径,注意使用绝对路径参数必须完整!
-
读写ini配置WriteConfigFileItem/ReadConfigFileItem/
说明:读写ini配置项
---------------------------------------------------------------------------------------------
说明:
WriteConfigFileItem写配置项
功能说明:可以把一些数据进行配置保存
你也可以把它当成一种变量保存方式
ReadConfigFileItem读配置项
功能说明:获取出配置文件中的配置项内容
此两个命令配合使用 就相当于变量保存操作
示例:
[@main]
<写配置项>
<请输入你要写入配置项的内容/@@InPutString3>\
<读配置项内容/@读配置项>
<$STR(S$配置项内容)>\
[@InPutString3]
#IF
#ACT
;写配置项
WriteConfigFileItem
..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S3)>
SENDMSG 6
你已经把你输入的内容写到配置文件中KEY.txt
[@读配置项]
#IF
#ACT
;读配置项
ReadConfigFileItem
..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S$配置项内容)>
SENDMSG 6
你已经把配置文件KEY.txt中的内容获取出
GOTO @main
删除配置文件中的一行:
DelConfigFileItem 文件名
设置 用户 (删除 用户 = aaaa 这一行)
删除配置文件中的一个区:
DelConfigFileSection 文件名 设置 (删除
[设置] 及设置以下的项)
WriteConfigFileItem ReadConfigFileItem
增加支持绝对路径,注意使用绝对路径参数必须完整!
-
调整血量HumanHP
格式: HumanHP 操作符(+ - =) 数值 微秒延时时间(空或0表示无延时)
[@main]
#ACT
HumanHP - 500 300
;人物HP减少500,延时300毫秒生效!(1000毫秒为1秒)
-
脚本修改装备内观外观SetItemShape/SetItemLooks
外观格式: SetItemShape 位置 操作符(+,-,=) 数值 ;只能改武器和衣服
内观格式:SetItemLooks 位置 操作符(+,-,=) 数值
命令一个分别修改装备的Shape,另外个是修改Looks,注意的是,只是改变视觉效果,不是改变实际!
-
高等级杀怪经验不变HighLevelKillMonFixExp
格式:HighLevelKillMonFixExp 时间 是否保存(1保存,空或0不保存)
高等级杀怪经验不变HighLevelKillMonFixExp
[@main]
#ACT
HighLevelKillMonFixExp 720 1