变量类型:
P0-P9私人变量(数字型)不可保存
G0-G499全局变量(数字型)可保存
M0-M99私人变量(数字型)不可保存
I0-I99全局变量(数字型)不可保存
D0-D9私人变量(数字型)不可保存
N0-N99私人变量(数字型)不可保存
S0-S99私人变量(字符型)不可保存
A0-A499全局变量(字符型)可保存
常用配合命令:
MOV变量名称数值赋予数值
INC变量名称数值加上指定数值
DEC变量名称数值减去指定数值
MOVR变量名称数值赋予小于指定数值的随机非负数
EQUAL变量名称数值检测相等
SMALL变量名称数值检测小于
LARGE变量名称数值检测大于
<$STR(变量)>把变量转为字符串
下面为大家列举一个全服领奖脚本,用到了很多变量。
[@main]
#if
EQUALG780检测G78值为0
#act
MOVG781赋予G78数值1此处G78的功能就是控制只赋予G80一次数值
MOVG805赋予G80数值5此脚本可以理解为奖励名额5个。
#SAY
<56级领取/@LJ56>凤天魔甲or凤天魔衣剩余名额<$STR(G80)>个<$STR(G80)>被转换为字符串
[@LJ56]
#if
#ACT
MOVS056
#IF
EQUALG800
#ACT
DelayCall1@没有DelayCall延迟跳转命令
#ELSEACT
DelayCall1@领奖
[@LJ56B]
#if
#ACT
DECG801变量G80值-1,理解为奖励名额减少一个
GetRandomText.\QuestDiary\升级奖励\56级奖励.txtS0将此文档下文件随机取出赋予变量S0,格式一行一个
give<$STR(S0)>1
SENDMSG0恭喜:“%s”升到56级成功领取〖<$STR(S0)>]〗1件56级奖励还剩<$STR(G80)>
[@领奖]
#IF
CHECKLEVELEX<<$STR(S0)>
#ACT
MessageBox[领取失败]:你等级不够<$STR(S0)>级还不可以领取!
BREAK
#if
CheckNameList..\QuestDiary\升级奖励名单\<$STR(S0)>级.txt检测名单
#ACT
MessageBox[领取失败]:你已经领取过<$STR(S0)>级奖励!
BREAK
#ELSEACT
ADDNameList..\QuestDiary\升级奖励名单\<$STR(S0)>级.txt加入名单
DelayCall1@LJ<$STR(S0)>B脚本抬头也能使用变量
[@没有]
#if
CHECKLEVELEX>0
#ACT
BREAK
MessageBox[领取失败]:<$STR(S0)>级奖励已领完!
特别注意:
同一个脚本可能会多次使用不可保存的变量。
因而<$STR(S0)>可能会代表许多不同的数值。
比如:[@LJ56]里面S0代表等级
[@LJ56B]里面S0代表奖励的装备
而全局变量只有通过命令去控制它的值的变化,
比如:DECG801
初接触变量的可以对照变量使用命令仔细研究这个领奖脚本,
把这个脚本研究明白了,那么对变量就已经有个大体认识了。
再为大家列举一个随机赋值MOVR命令的示例脚本,
[@名称变色]
#IF
#ACT
MovrS88256随机取值1-255
CHANGENAMECOLOR<$STR(S88)>
Delaycall1000@名称变色
下面再为大家列举一个变量嵌套脚本:
#if
S55.CheckLevel>51
S56.CheckLevel>51
CheckLevel51>51
#act
S55.GameGold+10
S56.GameGold+10
GameGold+10
这种脚本S55S56必须先给它赋值,
可以是人物名字,也可以是S0--S99之间任何的一个变量。
自定义变量命令使用格式
申明变量VARIntegerHUMAN
读取变量LOADVARHUMAN
检测变量CHECKVARHUMAN><=
控制变量CALCVARHUMAN+-*/=
保存变量SAVEVARHUMAN..\QuestDiary\
下面继续以具体脚本实例来解释自定义变量的使用方法。
第一步,在Mir200\Envir\MapQuest_Def\QManage.txt的[@login]命令下增加:
;[@login]脚本上线自动检测触发
#IF
CHECKLEVELEX>0
#ACT
VARIntegerHUMANRWSW申明变量,此脚本可以理解为被杀次数
VARIntegerHUMANRWSR申明变量,此脚本可以理解为S人次数
LOADVARHUMANRWSW..\QuestDiary\S人文件\S人数据.txt读取变量保存位置
LOADVARHUMANRWSR..\QuestDiary\S人文件\S人数据.txt读取变量保存位置,多个变量可保存在同一文档
#CALL[\S人文件\S人封号.txt]@封号读取QuestDiary文件夹下封号文件的@封号脚本段
------------------------------分割线------------------------------------------
第二步,在mirserver\Mir200\Envir\QuestDiary建立一个文件夹,
命名为S人文件,在此文件夹下建立2个文本文档,
命名为S人数据S人封号
------------------------------分割线------------------------------------------
第三步,在S人封号文档添加以下脚本:
[@封号]
{
#IF
#ACT
SETRANKLEVELNAME%s\武林至尊PK王\已有[<$HUMAN(RWSR)>]人死于其魔掌\被杀害[<$HUMAN(RWSW)>]次
;这一行就是将自定义变量转换为字符串,通过封号的形式显示在人物名称下面。注意格式:<$HUMAN(自定义变量)
break
}
------------------------------分割线------------------------------------------
第四步,在mirserver\Mir200\Envir\Market_Def\QFunction-0.txt添加以下脚本:
[@KillPlay]
#if
#ACT
CALCVARHUMANRWSR+1控制变量RWSR+1,可以理解为S人次数+1
SAVEVARHUMANRWSR..\QuestDiary\S人文件\S人数据.txt保存变量到S人数据.txt
SENDMSG7提示:你又干掉了一名对手!!!
[@PlayDie]
#IF
#ACT
CalcVarHUMANRWSW+1控制变量RWSW+1,可以理解为死亡次数+1
SaveVarHUMANRWSW..\QuestDiary\S人文件\S人数据.txt保存变量到S人数据.txt
SendMsg7提示:您被杀害了,当前死亡次数:<$HUMAN(RWSW)>次
补充:
这个脚本没有用到检测变量的命令,那么我再来加一段。
比如检测到S人达到100次,就给与一个S人魔王的封号。
[@S人魔王]
#IF
CHECKVARHUMANRWSR>99检测变量RWSR值大于99
#ACT
SETRANKLEVELNAME%s\S人魔王
以上脚本便是一个自定义变量的完整使用方法。
自定义变量可以广泛应用于传奇里面的各种任务,杀怪记录,特色功能等等。
P0-P9私人变量(数字型)不可保存
G0-G499全局变量(数字型)可保存
M0-M99私人变量(数字型)不可保存
I0-I99全局变量(数字型)不可保存
D0-D9私人变量(数字型)不可保存
N0-N99私人变量(数字型)不可保存
S0-S99私人变量(字符型)不可保存
A0-A499全局变量(字符型)可保存
常用配合命令:
MOV变量名称数值赋予数值
INC变量名称数值加上指定数值
DEC变量名称数值减去指定数值
MOVR变量名称数值赋予小于指定数值的随机非负数
EQUAL变量名称数值检测相等
SMALL变量名称数值检测小于
LARGE变量名称数值检测大于
<$STR(变量)>把变量转为字符串
下面为大家列举一个全服领奖脚本,用到了很多变量。
[@main]
#if
EQUALG780检测G78值为0
#act
MOVG781赋予G78数值1此处G78的功能就是控制只赋予G80一次数值
MOVG805赋予G80数值5此脚本可以理解为奖励名额5个。
#SAY
<56级领取/@LJ56>凤天魔甲or凤天魔衣剩余名额<$STR(G80)>个<$STR(G80)>被转换为字符串
[@LJ56]
#if
#ACT
MOVS056
#IF
EQUALG800
#ACT
DelayCall1@没有DelayCall延迟跳转命令
#ELSEACT
DelayCall1@领奖
[@LJ56B]
#if
#ACT
DECG801变量G80值-1,理解为奖励名额减少一个
GetRandomText.\QuestDiary\升级奖励\56级奖励.txtS0将此文档下文件随机取出赋予变量S0,格式一行一个
give<$STR(S0)>1
SENDMSG0恭喜:“%s”升到56级成功领取〖<$STR(S0)>]〗1件56级奖励还剩<$STR(G80)>
[@领奖]
#IF
CHECKLEVELEX<<$STR(S0)>
#ACT
MessageBox[领取失败]:你等级不够<$STR(S0)>级还不可以领取!
BREAK
#if
CheckNameList..\QuestDiary\升级奖励名单\<$STR(S0)>级.txt检测名单
#ACT
MessageBox[领取失败]:你已经领取过<$STR(S0)>级奖励!
BREAK
#ELSEACT
ADDNameList..\QuestDiary\升级奖励名单\<$STR(S0)>级.txt加入名单
DelayCall1@LJ<$STR(S0)>B脚本抬头也能使用变量
[@没有]
#if
CHECKLEVELEX>0
#ACT
BREAK
MessageBox[领取失败]:<$STR(S0)>级奖励已领完!
特别注意:
同一个脚本可能会多次使用不可保存的变量。
因而<$STR(S0)>可能会代表许多不同的数值。
比如:[@LJ56]里面S0代表等级
[@LJ56B]里面S0代表奖励的装备
而全局变量只有通过命令去控制它的值的变化,
比如:DECG801
初接触变量的可以对照变量使用命令仔细研究这个领奖脚本,
把这个脚本研究明白了,那么对变量就已经有个大体认识了。
再为大家列举一个随机赋值MOVR命令的示例脚本,
[@名称变色]
#IF
#ACT
MovrS88256随机取值1-255
CHANGENAMECOLOR<$STR(S88)>
Delaycall1000@名称变色
下面再为大家列举一个变量嵌套脚本:
#if
S55.CheckLevel>51
S56.CheckLevel>51
CheckLevel51>51
#act
S55.GameGold+10
S56.GameGold+10
GameGold+10
这种脚本S55S56必须先给它赋值,
可以是人物名字,也可以是S0--S99之间任何的一个变量。
自定义变量命令使用格式
申明变量VARIntegerHUMAN
读取变量LOADVARHUMAN
检测变量CHECKVARHUMAN><=
控制变量CALCVARHUMAN+-*/=
保存变量SAVEVARHUMAN..\QuestDiary\
下面继续以具体脚本实例来解释自定义变量的使用方法。
第一步,在Mir200\Envir\MapQuest_Def\QManage.txt的[@login]命令下增加:
;[@login]脚本上线自动检测触发
#IF
CHECKLEVELEX>0
#ACT
VARIntegerHUMANRWSW申明变量,此脚本可以理解为被杀次数
VARIntegerHUMANRWSR申明变量,此脚本可以理解为S人次数
LOADVARHUMANRWSW..\QuestDiary\S人文件\S人数据.txt读取变量保存位置
LOADVARHUMANRWSR..\QuestDiary\S人文件\S人数据.txt读取变量保存位置,多个变量可保存在同一文档
#CALL[\S人文件\S人封号.txt]@封号读取QuestDiary文件夹下封号文件的@封号脚本段
------------------------------分割线------------------------------------------
第二步,在mirserver\Mir200\Envir\QuestDiary建立一个文件夹,
命名为S人文件,在此文件夹下建立2个文本文档,
命名为S人数据S人封号
------------------------------分割线------------------------------------------
第三步,在S人封号文档添加以下脚本:
[@封号]
{
#IF
#ACT
SETRANKLEVELNAME%s\武林至尊PK王\已有[<$HUMAN(RWSR)>]人死于其魔掌\被杀害[<$HUMAN(RWSW)>]次
;这一行就是将自定义变量转换为字符串,通过封号的形式显示在人物名称下面。注意格式:<$HUMAN(自定义变量)
break
}
------------------------------分割线------------------------------------------
第四步,在mirserver\Mir200\Envir\Market_Def\QFunction-0.txt添加以下脚本:
[@KillPlay]
#if
#ACT
CALCVARHUMANRWSR+1控制变量RWSR+1,可以理解为S人次数+1
SAVEVARHUMANRWSR..\QuestDiary\S人文件\S人数据.txt保存变量到S人数据.txt
SENDMSG7提示:你又干掉了一名对手!!!
[@PlayDie]
#IF
#ACT
CalcVarHUMANRWSW+1控制变量RWSW+1,可以理解为死亡次数+1
SaveVarHUMANRWSW..\QuestDiary\S人文件\S人数据.txt保存变量到S人数据.txt
SendMsg7提示:您被杀害了,当前死亡次数:<$HUMAN(RWSW)>次
补充:
这个脚本没有用到检测变量的命令,那么我再来加一段。
比如检测到S人达到100次,就给与一个S人魔王的封号。
[@S人魔王]
#IF
CHECKVARHUMANRWSR>99检测变量RWSR值大于99
#ACT
SETRANKLEVELNAME%s\S人魔王
以上脚本便是一个自定义变量的完整使用方法。
自定义变量可以广泛应用于传奇里面的各种任务,杀怪记录,特色功能等等。

