找回密码
 加入科信
查看: 5750|回复: 0

脚本、版本制作必看-变量详细解释

[复制链接]
bjzcehlc 发表于 2012-2-28 20:04:13 | 显示全部楼层 |阅读模式
脚本、版本制作必看-变量详细解释
【变量属性】
[000-999]
『属性说明』:该变量有下线、重新启动服务器均不消失的强记录性。保存在hum.db(还是在mir.db记不太清楚。望高手指正)该变量只有2种状态。1和0『用法』:因为该变量记录性比较强。而且如果产生读写操作时服务器的操作不是很大。所以作为记录一些人物的下线后需要保留的数据的话作用十分大,大部分任务时常用到他。但是该变量值只有1和0的两种状态。而且根据m2不同,其个数也不相同。建议您一定要活用变量,尽量避免浪费该变量。
p(0-9)
『属性说明』:该变量只对当前对话npc内有效果。如果中途点其他npc或者对话产生close、关闭时所有p变量均归0。该变量取值范围:(0-?)根据m2最大值不同『用法』:该变量没有npc间传递性作为临时变量多重复使用效果十分好。而且因为脚本命令有对该变量进行加/减/赋值/随机取值等运算,他和goto的配合可以使脚本中出现仿for循环的效果。并且因为他不传递的性质其随机取值也能与random媲美。
d(0-9)
『属性说明』:该变量在人物不下线时对全局npc通用传递。该变量取值范围:同p变量
『用法』:既有像[0-?]变量一样的人物属性私有变量的效果又有像p变量一样的运算功能!唯一不足就是下线后该变量会被清空。可是如果配合上[000]变量或者namelist变量的记录性。实在是功能强大的个人隐私属性!不过本人无端的猜测该变量与p变量是保存在客户端内存的:)无任何根据如果不是请当个玩笑
g(0-9)
『属性说明』:该变量不属于人物属性范围,对于全服务器内该变量唯一并且全局npc通用传递。该变量取值范围:同p变量『用法』:这个变量是唯一的一个不属于任何人物而属于服务器的变量,该变量通过任何人的运算均产生效果。而且不保存在任何人的属性中。(好象是在mir.db?望高手指正)但是需要注意服务器关闭后该变量清空,目前尚需要通过综合namelist或者[000]变量后才可以使其保存。
namelist.txt
『属性说明及用法』:他为什么也属于一个变量,因为他的工作方式与变量一样,而且由于是直接对硬盘的读写反更牢*一些。而且他的实现也很特殊,没有取值范围的限制,只有自己的名字记录在任意的文本内,具体操作起来还很容易。作为变量的扩展起了不可替代的作用。而且有些m2的功能还需要这些的变量进行扩展。所以该变量的应用和功能实在需要加强。
友情提示您:该变量的操作请适可而止,如果在同一时间内进行大量的硬盘读/写/查找/检测/操作是对
服务器稳定性和硬件极大的伤害!因为该变量只针对人物有效。如果某个命令需要进行大量的namelist操作的话。那许多人同时进行该命令的时候实在不能说不是对服务器的一个严峻的考验。
此处仅代表个人意见:脚本的功能大体是一种简易汇编语法具体操作的累积。而活用这些变量是脚本精华所在,脚本基础命令是一些简单针对这些变量的操作,优秀的脚本系统是通过这些变量和命令编写出来的功能。而后来所添加的脚本命令大部分是独立的功能,如果这样下去功能固然无限的增多,但是m2却也在无限的增大。
以下为脚本命令的解释
【检测后缀命令】
此属性命令为#if后#act前,作为检测是否为真的命令。
〖check [001-?] 1/0〗 查看人物指定的变量是否为1/0。如果为真则通过至#act
〖random (1-?)〗 随机一个数字,根据后边的数字判定当前通过至#act的几率。
注意这里有一些用法错误。
错误一:
#if
random 3
#act
goto 1
break
#if
random 3
#act
goto 2
break
#if
random 3
#act
goto 3
break
很多人认为random的具体运行是首先在3以下随机取一个值,然后该脚本内的random 3都不再取值了。那样理解
的时候goto 1、2、3的几率是相等的,都是1/3。这是一个理解上的错误,实际这里运行的操作是这样的,到达
1的几率为1/3,到达2的几率为先2/3然后1/3就是2/9。而到达3的几率则为2/3然后2/3然后1/3实际几率为4/27
!同样错误的还有如下写法
#if
random 3
#act
goto 1
#elseact
#if
random 3
#act
goto 2
#elseact
#if
random 3
#act
goto 3
#elseact
close
错误二:
#if
random 3
#act
goto 1
break
#if
random 2
#act
goto 2
break
#if
random 1
#act
goto 3
break
有人认为在第一个random的时候会给一个隐藏的值在3以下做一个赋值。然后以后的random就是检测是否自己的
random值和这个隐藏值相同,如果相同则#act。这个也是一种错误理解,虽然同是对random理解错误造成的,
但是该错误与错误一理解上是不同的。但是这种随机的设计方式是提倡的,利用p变量的随机取值是可以完成的

〖equal〗(变量)(数值)测试指定变量的值是否等于该命令指定值,可惜的是此处无法用pdg等变量,只能用数字常量!强烈建议jacky添加该功能。
〖large〗(变量)(数值)测试指定变量的值是否大于该命令指定值,同样非常可惜该数值只能为常量。
〖small〗(变量)(数值)测试指定变量的值是否小于该命令指定值,同样非常可惜该数值只能为常量。
〖gender 〗(man/woman)检测是否为男/女
〖hour/min〗(时间1)(时间1)检测当前时间(小时/分钟)是否为时间1与时间2之间。
〖checklevel〗(数值)测试等级数量是否大于该命令指定值,同样非常可惜该数值只能为常量。
〖checkjob〗(职业)测试对话职业是否为指定职业,其后缀的根据m2不同而不同基础m2为:warr, wizard, taos。
〖checkitem〗(物品名称)(数量)查看人物背包中是否指定物品名称的数量是否大于该命令指定值,该数量不写默认为1既检测有没有该物品。同样非常可惜该数值只能为常量。
〖checkitemw〗(物品名称)(数量)查看人物所佩带装备中是否指定物品名称的数量是否大于该命令指定值,该数量不写默认为1既检测有没有该物品。同样非常可惜该数值只能为常量。
〖checkgold〗(数值)测试金币数量是否大于该命令指定值,同样该数值只能为常量。
〖istakeitem〗(物品名称)检测刚刚取下的物品是否指定物品名称。
〖checkduraeva〗(物品名)(数值)查看人物背包中是否指定的物品名称的持久是否大于该命令指定值,该数量不写默认为1既检测有没有该物品。同样非常可惜该数值只能为常量。
〖dayofweek〗(星期数)查看当天是否为指定的星期数量。
〖checkpkpoint〗(数值)测试pk值是否大于该命令指定值。
〖checkluckypoint〗(数值)测试幸运值是否大于该命令指定值。
〖checkmonmap〗(地图名)(数值)测试指定的地图名中的怪物数量是否大于该命令指定值。同样非常可惜该数值只能为常量。
〖checkhum〗(地图名)(数值)测试指定的地图名中的人物数量是否大于该命令指定值。同样非常可惜该数值只能为常量。
〖checkbaggage〗测试背包是否满了
〖checknamelist〗[路径](文件名)检测指定路径下文件名的文件内是否有该玩家当前人物名称。
〖checkiplist〗[路径](文件名)检测指定路径下文件名的文件内是否有该玩家当前ip地址。
#〖checkmarryed〗检测当前对话人物是否结过婚。
#〖checkguildmaster〗检测当前对话人物是否属于行会掌门。
#〖checkofguild〗(行会名)检测当前对话人物是否属于指定行会。
#〖checkguildofsbk〗检测当前对话人物所属于行会是否为沙。
#〖checkattacksbkgm〗检测当前对话人物所属于行会是否为当前攻沙行会。
#〖checkaccountlist〗[路径](文件名)检测指定路径下文件名的文件内是否有该玩家当前帐号。
#〖checkpayment〗检测当前对话人物是否充值。
#〖checkbbcount〗(数值)检查人物所带宝宝数量。
#〖checkcreditpoint〗(数值)检查当前人物的声望是否大于命令指定数值。
#〖execheck nameiplist〗[路径](文件名)检测指定路径下文件名的文件内该玩家人物名称后的ip是否与当前登陆ip相同。
#〖execheck dir〗检查当前人物对面方向站的人物方向是否正确,多用于结婚。
#〖execheck dir 1〗检查当前人物对面方向站正确方向的人物是否与当前人物性别一致。多用于结婚。
#〖execheck dir 2〗检查当前人物对面方向站正确方向的人物是否与当前人物性别不同。多用于结婚。
#〖execheck postlevel〗(数值)检查当前人物对面方向站正确方向的人物的等级是否大于命令指定数值。
#@〖checkguildlist〗[路径](文件名)检测指定路径下文件名的文件内该玩家所属行会名称是否存在。
#@〖isadmin〗检查当前人物是否为游戏管理员。
#@〖haveguild〗检查当前人物是否加入了行会。
#@〖iscastleguild〗检测当前对话人物是否属于沙。
#@〖iscastlemaster〗检测当前对话人物是否为沙掌门。
#@〖isguildmaster〗检测当前对话人物是否为行会的掌门。
#@〖isnewhuman〗检测当前对话人物是否为刚注册第一次进入游戏。
#@〖checkslavecount〗[控制符](数值)检查当前人物所带宝宝数量
您需要登录后才可以回帖 登录 | 加入科信

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|科信联众网

GMT+8, 2024-11-1 10:32 , Processed in 0.203125 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表