传奇变量脚本
① 传奇脚本变量编辑器使用如何
要制作脚本的时候,第一要选择的就是自己需要使用挂机的地图,比如说你想要去赤月谷挂机的,那么就选择赤月谷的地图,然后可以输入相应的坐标,表示要让你的人物跑到该位置。
不少玩家都说了那我哪知道具体的坐标啊,这做起来不是很麻烦吗,其实不会的,大家只要直接把人物开到你想要制作脚本的地方,刀速插件当中就会有自动获取的功能。
不少玩家都说了那我哪知道具体的坐标啊,这做起来不是很麻烦吗,其实不会的,大家只要直接把人物开到你想要制作脚本的地方,刀速插件当中就会有自动获取的功能。
② 传奇服务端脚本问题
NPC任务处脚本:
自定义变量使用。
[@MAIN]
#IF
CHECKVAR HUMAN 任务 = 已接受
CHECKVAR HUMAN 杀怪数量 > 9
CHECK [001] 0
#SAY
你真棒,这么快就消灭了10头鹿。\
<完成任务/@哇>
#act
break
#IF
check [001] 1
#say
谢谢你帮我完成了10头鹿的目标!~
#act
break
#IF
check [001] 0
#say
如果你有时间的话请帮我消灭10只鹿吧。\
<接受任务/@的>
[@的]
#IF
CHECK [001] 0
CHECKVAR HUMAN 任务 =
#ACT
CALCVAR HUMAN 任务 = 已接受
CALCVAR HUMAN 杀怪数量 = 0
SAVEVAR HUMAN 任务 ..\QuestDiary\任务\记录.txt
SAVEVAR HUMAN 杀怪数量 ..\QuestDiary\任务\记录.txt
[@哇]
#IF
CHECKVAR HUMAN 任务 = 已接受
CHECKVAR HUMAN 杀怪数量 > 9
CHECK [001] 0
#ACT
SET [001] 1
CALCVAR HUMAN 任务 = 已完成
CALCVAR HUMAN 杀怪数量 = 0
SAVEVAR HUMAN 任务 ..\QuestDiary\任务\记录.txt
SAVEVAR HUMAN 杀怪数量 ..\QuestDiary\任务\记录.txt
;----------------------------------------------------------------------------------
MapQuest文本触发
;地图代码 标记 标记值 怪物名称 MapQuest_def目录下文本
0 [001] 0 鹿 * 任务
;-------------------------------------------------------------------------------
MapQuest_def目录下鹿.txt
[@MAIN]
#IF
CHECKVAR HUMAN 杀怪数量 > 9
#SAY
你已经完成了消灭10头鹿的目标。请点击传送回到领取任务的地方提交任务\
<传送回去/@好>
#ACT
break
#IF
CHECKLEVEL 1
#ACT
CALCVAR HUMAN 杀怪数量 + 1
SAVEVAR HUMAN 杀怪数量 ..\QuestDiary\任务\记录.txt
SENDMSG 6 [消灭10头鹿]<$HUMAN(杀怪数量)>/10
[@好]
#if
checklevel 1
#act
MAPMOVE 0 坐标x 坐标y
纯粹手写的。
③ 传奇脚本如何查看指定玩家的指定变量
■此处仅代表个人意见:脚本的功能大体是一种简易汇编语法具体操作的累积。而活用这些变量是脚本精
华所在,脚本基础命令是一些简单针对这些变量的操作,优秀的脚本系统是通过这些变量和命令编写出来的功
能。而后来所添加的脚本命令大部分是独立的功能,如果这样下去功能固然无限的增多,但是M2却也在无限的
增大。所以建议FTSM多开发和完善M2,n那是脚本发展之福。
以下为脚本命令的解释【检测后缀命令】
此属性命令为#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〗[控制符](数值)检查当前人物所带宝宝数量是否[>、=、、=、、=、、=、、=、、=、、=、、=、、=、、=、、=、、=、、=、、=、<]指定的数值。
〖CHECKMONAREA〗未知
〖CHECKOPEN〗未知
〖CHECKUNIT〗未知
④ 传奇脚本变量
变量是用来完成高级脚本的必备东西,如果想要写一些高级的脚本,比如有关数据保存的,就得使用到变量, 如果只是一些普通的脚本,那么变量基本就属于无用的。