变量类型:

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

EQUAL G78 0 检测G78值为0

#act

MOV G78 1 赋予G78数值1 此处G78的功能就是控制只赋予G80一次数值

MOV G80 5 赋予G80数值5 此脚本可以理解为奖励名额5个。

#SAY

<56级领取/@LJ56> 凤天魔甲or凤天魔衣 剩余名额<$STR(G80)>个 <$STR(G80)>被转换为字符串

[@LJ56]

#if

#ACT

MOV S0 56

#IF

EQUAL G80 0

#ACT

DelayCall 1 @没有 DelayCall 延迟跳转命令

#ELSEACT

DelayCall 1 @领奖

[@LJ56B]

#if

#ACT

DEC G80 1 变量G80值-1,理解为奖励名额减少一个

GetRandomText .\QuestDiary\升级奖励\56级奖励.txt S0 将此文档下文件随机取出赋予变量S0,格式一行一个

give <$STR(S0)> 1

SENDMSG 0 恭喜:“%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 加入名单

DelayCall 1 @LJ<$STR(S0)>B 脚本抬头也能使用变量

[@没有]

#if

CHECKLEVELEX > 0

#ACT

BREAK

MessageBox [领取失败]:<$STR(S0)>级奖励已领完!

特别注意:

同一个脚本可能会多次使用不可保存的变量。

因而<$STR(S0)>可能会代表许多不同的数值。

比如:[@LJ56] 里面 S0 代表等级

[@LJ56B] 里面 S0 代表奖励的装备

而全局变量只有通过命令去控制它的值的变化,

比如:DEC G80 1

初接触变量的可以对照变量使用命令仔细研究这个领奖脚本,

把这个脚本研究明白了,那么对变量就已经有个大体认识了。

再为大家列举一个随机赋值MOVR命令的示例脚本,

[@名称变色]

#IF

#ACT

Movr S88 256 随机取值1-255

CHANGENAMECOLOR <$STR(S88)>

Delaycall 1000 @名称变色

下面再为大家列举一个变量嵌套脚本:

#if

S55.CheckLevel >51

S56.CheckLevel >51

CheckLevel 51 > 51

#act

S55.GameGold + 10

S56.GameGold + 10

GameGold + 10

这种脚本S55 S56必须先给它赋值,

可以是人物名字,也可以是S0–S99之间任何的一个变量。

自定义变量命令使用格式

申明变量 VAR Integer HUMAN

读取变量 LOADVAR HUMAN

检测变量 CHECKVAR HUMAN > < =

控制变量 CALCVAR HUMAN + – * / =

保存变量 SAVEVAR HUMAN ..\QuestDiary\

下面继续以具体脚本实例来解释自定义变量的使用方法。

第一步,在Mir200\Envir\MapQuest_Def\QManage.txt 的 [@login] 命令下增加:

;[@login] 脚本上线自动检测触发

#IF

CHECKLEVELEX > 0

#ACT

VAR Integer HUMAN RWSW 申明变量,此脚本可以理解为被杀次数

VAR Integer HUMAN RWSR 申明变量,此脚本可以理解为S人次数

LOADVAR HUMAN RWSW ..\QuestDiary\S人文件\S人数据.txt 读取变量保存位置

LOADVAR HUMAN RWSR ..\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

CALCVAR HUMAN RWSR + 1 控制变量RWSR+1,可以理解为S人次数+1

SAVEVAR HUMAN RWSR ..\QuestDiary\S人文件\S人数据.txt 保存变量到S人数据.txt

SENDMSG 7 提示:你又干掉了一名对手!!!

[@PlayDie]

#IF

#ACT

CalcVar HUMAN RWSW + 1 控制变量RWSW+1,可以理解为死亡次数+1

SaveVar HUMAN RWSW ..\QuestDiary\S人文件\S人数据.txt 保存变量到S人数据.txt

SendMsg 7 提示:您被杀害了,当前死亡次数:<$HUMAN(RWSW)>次

补充:

这个脚本没有用到检测变量的命令,那么我再来加一段。

比如检测到S人达到100次,就给与一个S人魔王的封号。

[@S人魔王]

#IF

CHECKVAR HUMAN RWSR > 99 检测变量RWSR值大于99

#ACT

SETRANKLEVELNAME %s\S人魔王

以上脚本便是一个自定义变量的完整使用方法。

自定义变量可以广泛应用于传奇里面的各种任务,杀怪记录,特色功能等等。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。