芝麻论坛 发表于 2011-9-28 17:07:29

传奇部分脚本的字符 命令 应该学习一下!

P0-P9 私人变量(数字型) 不可保存 命令: MOV INC DEC MUL equal small large
G0-G499 全局变量(数字型) 可保存 命令: MOV INC DEC MUL equal small large
M0-M99 私人变量(数字型) 不可保存 命令: MOV INC DEC MUL equal small large
I0-I99 全局变量(数字型) 不可保存 命令: MOV INC DEC MUL equal small large
D0-D9 私人变量(数字型) 不可保存 命令: MOV INC DEC MUL equal small large
N0-N99 私人变量(数字型) 不可保存 命令: MOV INC DEC MUL equal small large
S0-S99 私人变量(字符型)(自定义输入@@InPutString) 不可保存 命令: MOV INC DEC MUL equal small large
A0-A499 全局变量(字符型)(自定义输入@@InPutInteger) 可保存 命令: MOV INC DEC MUL equal small large
---------------------------变量使用说明---------------------------------------------------------------------------
P,G,M,I,D,N,S,A变量使用说明
检测相等:EQUAL变量名数值
检测大于: LARGE变量名数值
检测小于: SMAL L变量名数值
赋予数值: MOV变量名数值
加上指定数值: IN C变量名数值
减去指定数值: DE C变量名数值
变量相加: SUM变量名A变量名B
两个数相除: Div变量A除数B被除数C
两个数相乘: MUL变量A乘数B被乘数C
变量赋予小于指定数值的随机非负数:MOVR数值
把变量转为字符串:<$STR(变量)>



VAR String HUMAN ;全局变量.整数型
申明变量:
VAR String HUMAN
读取变量:
LOADVAR HUMAN
检测变量:    > < =
CHECKVAR HUMAN
控制变量:    + - * / =
CALCVAR HUMAN
保存变量:
SAVEVAR HUMAN..\QuestDiary\
VAR Integer GLOBA ;私人变量.字符型
申明变量:
VAR Integer GLOBA
读取变量:
LOADVAR GLOBA
检测变量:    > < =
CHECKVAR GLOBA
控制变量:    + - * / =
CALCVAR GLOBA
保存变量:
SAVEVAR GLOBA ..\QuestDiary\
#IF   //支持A,S变量的DEC操作,格式:DEC A0 X Y
CHECKLEVEL > 0    //其中X,Y表示位置,操作的结果:删除A0字符串中从X开始到Y结束之间的字符。
#ACT
MOV S0 屠龙刀//以下操作去掉“ABCDEFGHIJK”
DEC S0 5 15
MOV G0 1
GIVE <$STR(S0)> <$STR(G0)>
#SAY
GIVE <$STR(S0)> <$STR(G0)>
#IF ;如果
#ACT ;条件符合
large G24 5 ;G24如果大于5
EQUAL G24 5 ;G24如果等于5
MOVR G25 333 555;取随机数值
mov G61 <$STP(G25)>;把G25取的数值给予g61
mov G62 开天
give <$STP(G62)> 1 ;等于就是 give 开天 1
goto @睡觉;跳转命令
inc A1 1 ;记录次数
DEC减记录次数
脚本命令检测条件;
#IF
CHECK 1 打开
CHECK 0 关闭
#ACT
SET 1 打开
SET 0 关闭
#IF
CHECKVAR HUMAN FBBOSS = 1 检测变量级别
#ACT
CALCVAR HUMAN FBBOSS + 1 增加变量级别
SAVEVAR HUMAN FBBOSS ..\QuestDiary\任务数据.txt 把增加的变量级别增加任务数据.txt里!
#IF
checkmonmap 地图怪物清除完毕
#ACT
RandomKillMon Self 魔王 100 ;清除当前地图 怪物名字 数量
RandomKillMon Self 守护神 100 ;清除当前地图 怪物名字 数量
MESSAGEBOX 请您把怪物清理! 检测地图怪物没清除!
#ELSEACT ;检测怪物清除完毕执行下面的脚本
Param1 tong2 ;地图代码
Param2 23 ;坐标
Param3 25 ;坐标
MonGen 暗之赤月恶魔 3 25 ;怪物名字.数量.范围
MonGen 暗之赤月恶魔 3 35 ;怪物名字.数量.范围
MonGen 暗之赤月恶魔 3 35 ;怪物名字.数量.范围
MonGen 模仿魔龙 3 20 ;怪物名字.数量.范围
MonGen 月魔蜘蛛 5 20 ;怪物名字.数量.范围
MonGen 恶魔修罗 3 35 ;怪物名字.数量.范围
#IF
CHECKGAMEGOLD > 9 如果小于元宝9
#ACT
GAMEGOLD - + ;-减元宝 +加元宝
#if
checkgold 5000 检测金币有5000没
#ACT
take 金币 5000 减掉;5000金币
#if
hour 21 检测时间21就等于 晚上21点
#ACT
MESSAGEBOX 时间到了哈哈!!
#if
CheckItem 天堂刀 1 检测包袱有没有一件天堂刀
#ACT
Take 天堂刀 1 如果条件符合减天堂刀
#IF
checkitemw 斗笠 1 检测身上带了斗笠没。
#ACT
SETRANKLEVELNAME %s ;这是没什么封号
SETRANKLEVELNAME ;你自己可以弄的
#IF
#ACT
AddAttackSabukAll 0 沙巴克攻城命令
#if
checknamelist ..\QuestDiary\天下第一\女战士名单.txt 检测数据名单
#ACT
CLEARNAMELIST ..\QuestDiary\天下第一\男战士名单.txt 清除里面的数据
addnamelist ..\QuestDiary\天下第一\男战士名单.txt 增加到文件数据里

CHECKMAPHUMANCOUNT PKA > 30 检测地图人数

#ELSEACT不符合检测条件;除了检测地图怪物数量以外和别的可以!
MESSAGEBOX ****
配置文件:UserCmd.txt
配置文件格式:
;========================
;命令名称   对应编号
命令1         1
命令2         1
;========================
功能脚本格式:QFunction-0.txt
[@UserCmd1]
#if
#act
MESSAGEBOX    命令1,调用成功...
[@UserCmd2]
#if
#act
MESSAGEBOX    命令2,调用成功...

变量嵌套脚本的使用,可以写出强大的功能!
S0.GIVE 金币 10000
S0.TAKE 屠龙 1
S0.CHECKLEVEL > 50
这样的脚本很多人不明白什么意思,??
#if
S0.CHECKLEVEL > 50
CHECKLEVEL > 50
#act
S0的级别大于50
你自己的级别也大于50

S0的来源可以赋值,取出来的是另外一个人人物的名字。你也可以是S0--S99之间任何的一个变量,啊。。499支持吗?没试验。。。貌似不行。。。
#if
S0.CHECKLEVEL < 35
#ACT
S0.GAMEGOLD + 10
BREAK
如果S0相对的这个人物,级别小于35,那么给他10元宝。

多级脚本使用
本功能的实现突破执行脚本的唯一性,使脚本的使用更加灵活多变
使用方法为 任意人物名称.任意脚本命令
以下所使用的S55名称等全部支持变量操作
例如:
#if
S55.Check 1
check 1
#act
S55的变量值100为1
你自己的变量值100也为1
下面列举几种常用的使用方法,以下方法同样可以用在#ACT命令中
第一种,同时检测多人
#if
S55.CheckLevel 51
S56.CheckLevel 51
CheckLevel 51
#act
S55.GameGold + 10
S56.GameGold + 10
GameGold + 10
#say
S55的等级在50级以上,给予10元宝奖励
S56的等级也在50级以上,给予10元宝奖励
你的等级也在50级以上,给予10元宝奖励

第二种,多级同时检测多人,理论上是支持无限级
#if
S55.<$FQNAME>.<$SFNAME>.CheckLevel 51
S55.<$FQNAME>.CheckLevel 51
S56.<$FQNAME>.CheckLevel 51
<$FQNAME>.CheckLevel 51
#act
S55.<$FQNAME>.<$SFNAME>.GameGold + 10
S55.<$FQNAME>.GameGold + 10
S56.<$FQNAME>.GameGold + 10
<$FQNAME>.GameGold + 10
#say
S55的配偶的师父等级在50级以上,给予10元宝奖励
S55的配偶等级也在50级以上,给予10元宝奖励
S56的配偶等级也在50级以上,给予10元宝奖励
你的配偶等级也在50级以上,给予10元宝奖励

另外请注意,如果人物不在线的处理方法
例如
#if
S55.CheckLevel 51
S56.CheckLevel 51
CheckLevel 51
#act
S55.GameGold + 10
S56.GameGold + 10
GameGold + 10
#say
S55的等级在50级以上,给予10元宝奖励
S56的等级也在50级以上,给予10元宝奖励
你的等级也在50级以上,给予10元宝奖励
上面脚本,如果S55不在线,M2会提示出错,但脚本会继续执行并跳过该句做为无效检测处理
当做为无效检测处理后,只要S56等级和自己的等级在50级以上,既执行#say和#act段,
并且,S55.GameGold + 10 该句也无法执行,被跳过,继续执行下面的
所以在使用多级的时候请注意脚本的使用
拿沙限制等级进沙皇宫我这样的命令对吗
地图脚本:CHECKQUEST(Q001)
MapQuest_def这个文件里面加Q001.exe
然后在Q001里面命令是
[@main]
#if
checkcastlewar 0
CHECKLEVELEX < 47
#ACT
kick
MESSAGEBOX [提示]:当前为攻城期间,为了防止外援,47级以下进皇宫自动踢下线。
这样设置全部对了吗,谁知道的告诉我下

说明:祝福罐类型物品StdMode=26,Source=8,DuraMax=当前数量,AC=可以存入的物品(物品IDX),MAC=最大数量
   目前可放入药品,祝福油以及StdMode=31的物品.
使用方法:佩戴到护符位置后,只要双击IDX=AC中设置的物品时,即可把物品放入祝1福罐中.取出时普通登陆器需要通过脚本来取出.使用登陆器双击取出物品.

[@GroupAddMember]
#IF
IsOnMap 3
#ACT
SendMsg 5 当前地图不允许添加成员
3.叠加的普通药品增加初始数量设置,AniCount=0时,数量等于DuraMax设置的最大数量.
    StdItem=0,Source=5,AniCount=初始数量,DuraMax=最大数量

banqiao178 发表于 2011-9-28 17:08:17

这么多 ·就 变量我 看都看 不懂···

119400635 发表于 2011-9-28 22:35:35

{:3_59:}人好像越来越多了好样的支持下{:3_48:}

luojiangfu 发表于 2011-9-29 09:58:21

好东西,分享了哦!

luojiangfu 发表于 2011-9-29 20:58:02

真那个好哈!:lol

gegenihaohuai 发表于 2011-11-24 23:43:26

顶啊 顶啊 顶啊 顶啊

caomei 发表于 2011-12-11 11:48:17

语言学的多了好囧哦 看不怎么懂

chdj520 发表于 2011-12-25 21:27:38

dddddddddddddddddddddddd

421750451 发表于 2012-4-18 19:14:09

看不懂学习下
页: [1]
查看完整版本: 传奇部分脚本的字符 命令 应该学习一下!