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

深入解析传奇脚本命令:功能、变量与逻辑判断全攻略

来源: 作者: 点击:
在传奇gee引擎中,脚本命令是游戏逻辑的核心。本文将详细介绍传奇脚本命令的使用方法,包括如何使用段跳转、执行命令、调用子程序、管理物品和移动地图等,以及如何通过变量和逻辑判断来控制脚本流程。

一、脚本命令详解
段跳转:

语法:[@段]
功能:跳转到指定段执行,类似于B语言中的goto语句。
显示语句:

语法:#say语句
功能:显示指定的字符语句。
执行命令:

语法:#act执行命令
功能:执行符合3.0规定的任何系统已定义命令。
调用子程序:

语法:#call子程序命令
功能:调用QuestDiary下的子程序命令。
物品管理:

语法:give物品数量和take物品数量[是否检测装备改名]
功能:分别用于给予和收回物品。
地图移动:

语法:map地图名和mapmove地图名坐标A坐标B[范围]
功能:移动到指定地图的随机或指定坐标。
怪物管理:

语法:monclear地图名和MonGen怪物名称数量时间
功能:清除地图上的怪物和生成怪物。
时间限制:

语法:TimeRecall数值和BreakTimeRecall
功能:设置和中断进入某地的时间限制。
外观变更:

语法:hairstyle数值和haircolor红值绿值蓝值
功能:改变头发类型和颜色。
对话框管理:

语法:close
功能:关闭对话框。
二、变量与常量
变量:

语法:变量(如P0、D0)
功能:用于存储数据,可以赋值、比较和运算。
变量运算:

语法:mov变量赋值、inc变量相加、dec变量相减、mul变量乘、div变量除
功能:对变量进行赋值和基本运算。
逻辑变量:

语法:[n]、#IF条件、#elsesay、#elseact
功能:用于逻辑判断,控制脚本流程。
三、逻辑判断语句
条件判断:

语法:#IF条件、#elsesay、#elseact
功能:根据条件执行不同的语句。
逻辑变量操作:

语法:SET[n]1、reset[XXX]7
功能:设置和重置逻辑变量的值。
数值比较:

语法:small变量数值、large变量数值、equal变量数值
功能:比较变量的数值。
四、脚本变量
内置变量:

语法:<$USERNAME>、<$GUILDWARFEE>等
功能:获取游戏中的内置变量值。
自定义变量:

语法:<$STR(变量)>
功能:将变量转换为字符型,用于显示。

传奇脚本命令详解

[@段];段用英文或数字表示

goto@段;跳转到指定段,开始执行相当于B中的goto语句

#say语句;语句设定为字符,不用加任何定界符

#act执行命令;符合3.0规定的任何系统已定义命令

#call调用子程序命令,一般用于调用QuestDiary下子程序命令
give物品数量;给多少东西除了物器数据库中有的物品,还有金币,

take物品数量是否检测装备改名(0或空:不检测,1:检测);同上,只是与上面相反,一个是给东西,一个是收回东西.

map地图名;移动到这个地图的随机坐标,地图名为地图的数字人码

mapmove地图名坐标A坐标B范围;同上,只是指定了坐标(范围留空或者0则为定点传送)

monclear地图名;清除这个地图上刷的怪物

MonGen怪物名称数量时间;刷怪物,与刷怪角本用法相同

TimeRecall数值;数值为分钟,定义进入某地的时间限制。

BreakTimeRecall;中断上面那个语句设定的时间

hairstyle数值;改变头发类型

haircolor红值绿值蓝值;值域为0~255设定头发颜色

close;关闭对话框

======================****************************========================
----------------------程序中的变量与常量------------------------
======================****************************========================

变量;变量用字母表示,在程序中可以赋任何数据名称只限于P0-P9D0-D9
SMALL(变量)(数值);测试变量是不是小于指定数值

LARGE(变量)(数值);测试变量是不是大于指定数值

EQUAL(变量)(数值);测试变量是不是等于指定数值

mov变量赋值;变量赋值MOVN01

inc变量相加;让变量自动加指定数值到变量,相当于程序中的x=x+n

DEC变量相减DECN01

MUL变量想乘MULN02或者MULN01002(不支持字符串变量)

DIV整除变量DIVN02或者DIVN01002(不支持字符串变量)

sum变量A变量B;变量求和不要与int混淆需要下面的组合语名才能实现

MOV变量X0;变量X,初值。

sum变量A变量B;X=A+B

sum变量C;X=X+C后面在程序中得到的是X值,实际X=A+B+C

;如果只写中间一句是无意义的,只能导致错误

movr变量数值;定义随机变量,变量值为“0到数值”不包含数值,例:movrS1110赋值范围是1-9之间赋值。

random数值;当数值=随机数时则为1否则为0例:random1为98%概率random2为50%概率random4为25%概率

<$STR(变量)>;显示变量时用,可以将变量值显示在游戏里,用在#say后面。

=========================*******************************========================
-------------------------程序中的逻辑判断语句------------------------
=========================*******************************========================

[n];n为任何正整数,是逻辑变量,有0值和1值,初始0值,是私人变量

#IF
条件--执行
#elsesay或者#elseact
否定--执行;相当于程序中的条件判断

SET[n]1;设置逻辑变量为真

--------------------关于reset命令的详解------------------------------------

reset[XXX]7意思是将从XXX开始的7个变量回复到原始值0

比如:reset[100]7就是把100101102103104105106这7个变量赋值为0。

它等同与:set[100]0

set[101]0

set[102]0

set[103]0

set[104]0

set[105]0

set[106]0

--------------------------------------------------------

setcheckreset标示增加变量支持
如:
mov<$STR(P0)>90
set[<$STR(P0)>]1

#IF
check[90]1
#act
sendmsg6你自己的变量值90为1
--------------------------------------------------------

Check[n]1;测试逻辑变量是否为真,可以测试是否已经完成了任务

small变量数值;如果“变量<数值”则为1否则为0

large变量数值;如果“变量>数值”则为1否则为0

equal变量数值;如果“变量=数据”则为1否则为0

checkjobWarr(Wizard、Taos);测试职业成功为1否则为0

checkgold数值;拥有金币数>=数值为1否则为0

checklevel数值;人物等级>=数值为1否则为0

checkitem物品数值;测试拥用物品的数量

genderman;测试性别为男,如果为男则为1否则为0

CHECKBAGSIZE;检测背包空格数量,CHECKBAGSIZE数量

checkpkpoint数值;数值为PK值,PK值数>值时为1否则为0

CheckLuckPoint数值;同上,只是测的是幸运值(检测符号:><=)

checkmonmap地图名数值;同上,只是测的是怪物数量

checkduraeva物品名数值;同上,只是测试有品质的物品的品质

checkhum地图名数值;同上,测试这个地图的人数

checkitemw物品检测身上所带的物品

takew物品直接从身上回收物品

checkmagicname技能名称检测已经修炼的技能

脚本大全[喜欢脚本的来]
传奇商用NPC开头解释(部分补足请补足)
%100代表买东西是原价格还是双倍价格
+40买肉
+1卖肉
+43武器有关(修)
+15头盔
+10买衣服
+11修衣服
+26修手镯类
+0买各种药水
+42卖各种药水
+30蜡烛等.
+25特殊水
+3买卷轴书类
+4卖书类
+19项链
+20项链
+21项链
+22买戒指
+23卖戒指
+24买手镯
+26卖手镯
+5修炼武器或买武器
+6修炼武器或卖武器
================================

checkjob(WarrWizardTaos);测试职业
checkgold(金币数);测试金币
checklevel(等级);测试等级
checkitem(物品名)(数量);测试物品及数量
givegold(金币数);给米
give(物品名)(数量);给物及数量
takegold(金币数);拿走米
take(物品名)(数量);拿走物及数量
checkpkpoint(pk值);测试PK值
checkduraeva(物品名)(数值);一般测试矿物等物品的品质
checkhum(地图名)(数值);测试这个地图的人数
checkmonmap(地图名)(数值);测试这个地图的怪物数
map(地图名);移动到这个地图
mapmove(地图名)(坐标A)(坐标B);移动到这个地图指定坐标
monclear地图清除
close关闭对话框
TimeRecall(设定时间值);分钟一般指进入地图时间限制
BreakTimeRecall;中断设定时间
ExchangeMap(地图名);与指定地图里的人交换位置
daytimesunset;一天时间
checkbaggage;测试背包满没
small(变量)(数值);测试变量是不是小于指定数值
large(变量)(数值);测试变量是不是大于指定数值
equal(变量)(数值);测试变量是不是等于指定数值
mov(变量)(数值);让变量等于指定数值
sum(变量A)(变量B);A+B注意如果还要家第3个数直接换行写sum(变量C)
注:关于SUM的详解
首先有MOV(变量X)0;(变量X)清0
sum(变量A)(变量B);X=A+B
sum(变量C);X=X+C
movr(变量)(数值);随机把指定数值以下的数(正数)给变量
inc(变量)(数值);让变量自动加指定数值到变量
playdice(骰子数)@xxx;玩骰子跳转到标签[@xxx]
random(随机数);一般用在#IF语句中作为触发#IF机率有时随机数=并列#IF语句数用于随机多项选择例如:#IFRANDOM3#SAY()#ELSEACT
Check[条件数]1;测试[条件数]触发与否1(触发)
SET[条件数]1;设置[条件数]触发
Monclear地图清理这个地图!
Param1地图地图名
Param2横坐标坐标
Param3纵坐标坐标
MonGen怪物名称数量时间
TimeRecall时间时间限制

二。脚本变量:
<$USERNAME>当前用户名
<$GUILDWARFEE>行会战金币数
<$LORD>沙巴克行会头名
<$OWNERGUILD>沙巴克行会名
<$UPGRADEWEAPONFEE>升级武器价格
<$USERWEAPON>放在对话框里的武器名字
<$STR(变量)>把变量转换为字符型random(随机数);一般用在#IF语句中作为触发#IF机率有时随机数=并列
#IF语句数用于随机多项选择例如:#IFRANDOM3#SAY()#ELSEACT
[顶部]