当前位置 : 745v传奇网 | 传奇教程 | 

传奇常用变量浅析以及脚本示例(二)---全局和私人变量

来源: 作者: 点击:
变量类型:

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之间任何的一个变量。

总结:
变量是传奇中不可或缺的一个重要功能,
恰当使用变量可以写出非常完美的脚本。
本帖列出的脚本示例只是变量使用的冰山一角,
大家还得仔细体会,弄清楚使用方法之后,
编写起来才能思路通畅,得心应手。

下一篇介绍:自定义变量的使用
[顶部]