请选择 进入手机版 | 继续访问电脑版
查看: 337|回复: 0

【第十三课】传奇人物私有变量及服务器全局变量基本使用教程

[复制链接]

88

主题

88

帖子

442

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
442
发表于 2022-7-6 09:45:12 | 显示全部楼层 |阅读模式
基本信息
教程类型: 脚本变量
引擎类型: 996引擎 GOM引擎 BLUE引擎 


课程介绍:

通过我们之前学习的脚本系列课程,现在对传奇版本的脚本命令及主要的脚本文件有一定的认识,今天我们开始学习变量系列知识教程,传奇脚本系列的教程都学完了,现在已经可以自己编写脚本了,为什么还要学习传奇变量相关的知识呢?如果单独使用纯脚本命令去编写游戏功能,这样能实现的功能是很有限的,只有通过脚本命令及变量的配合使用,才可以编写出强大的游戏NPC功能。

学习传奇脚本变量是有顺序的,你要先对传奇脚本命令有一定的了解,才可以对传奇变量的知识去学习,因为变量的数值是有脚本命令去操控的,如果你对脚本命令不了解,你也就没办法对变量的数值大小去做修改,在以后编写脚本功能中变量起到至关重要的作用,在实现一些脚本功能的时候,你可以变量理解为是一种特定的条件。

比如:新区奖励活动功能,领取奖励的条件是必须人物达到100级,奖励的名额只有三个,这里的名额数量就需要使用变量去实现,先把指定变量类型等于为3,玩家每次领取检测变量是否大于0,大于0只要是1或者1以上的也就是还有名额,玩家每次领取奖励,就把变量的数值减去1,当变量不大于0的时候也就是三个名额已经领取完成,通过简单的一个领取奖励功能,就可以体现出在编写脚本功能是变量的作用。


什么是传奇脚本变量?

变量通过文字的意思理解,我们就知道他是一个可以变化的东西,变量你可以理解为是一个容器,不同的容器存放的东西类型也是不一样的,我们传奇中的变量原理一样,不同的变量类型存放不同类型的内容,不同的是容器的数量多少不同,你可以理解为传奇的变量类型多少的不同,比如:有两个容器,容器1里面存放的是蔬菜,容器2里面存放的是水果,变量类型1里面存放的是字符串的内容,变量类型2存放的是0-9数字的内容。


传奇变量类型:

传奇的变量类型有两种,第一种是数字型变量,第二种是字符型变量,数字型你可以理解为0-9的数字,数字型的变量是可以运算的,这里说的运算是加减乘除,字符型你可以理解为存放文字的,可以存放的字符有数字、英文、文字、这几个组合起来也可以,字符变量是不能计算的,只能去对比字符串是否一样。

如何看变量里面存的内容呢?可以使用<$STR(变量名称)>
M0-M99  (私人变量,数字型) 临时变量.下线不保存.小退归0.
N0-N99   (私人变量,数字型) 临时变量.下线不保存.小退归0.
S0-S99    (私人变量,字符型) 临时变量.下线不保存.小退清空.
P0-P99    (私人变量,数字型) 临时变量.重新打开对话框重置为0,变量只在NPC对话框没有关闭时有效.
D0-D99   (私人变量,数字型) 临时变量.下线不保存.摇筛子变量.
G0-G499 (全局变量,数字型) 可保存。(存放在Mir200/GlobalVal.ini文件里面)
A0-A499 (全局变量,字符型) 可保存。(存放在Mir200/GlobalVal.ini文件里面)
I0-I99     (全局变量,数字型) 不保存.引擎重启归0.
U0-U49  (私人变量,数字型) 可保存。(存放在人物数据库Mir.db里面)
T0-T49   (私人变量,字符型) 可保存。(存放在人物数据库Mir.db里面)
不同的引擎支持的变量范围也不一样,这里说的范围是P0-P99,有的引擎支持的是P0-P999。


学习心得:

大家不要感觉对变量的一些简单的数值修改没啥技术含量,就不对着视频去实际的操作,那是你对这些操作还不知道如何去利用,就跟我们在上学的时候一样的道理,每天的学习只有在考试的时候才会体现出学习的好坏,学习的知识能干什么我们不知道,只有进入到了社会或学习别的技能才会体现出学习的知识作用。

跟我们学习传奇一样,你不要看着简单就不对着去做,那是你现在还不知道怎么使用这些知识去编辑自己想要的脚本功能,这些都是为你以后编写自己想要的脚本功能做铺垫,你不把这些基础知识学好,就是有你想要的脚本功能编写教程,那也只是对着抄,换一个相同知识的脚本不同的功能你就搞不懂了。


变量相关脚本命令:

编辑器里面输入关键字,就可以查看到引擎支持的所有对变量操作的脚本命令。
检测变量
执行变量

把变量里面存的内容显示出来
<$STR(变量名称)>
SMALL 代表小于号:
#IF
SMALL D1 1
#SAY
检测D1值是否小于1值

LARGE 代表检测大于号:
#IF
LARGE D1 1
#SAY
检测D1值是否大于1值

EQUAL 代表检测等于号:
#IF
EQUAL D1 1
#SAY
检测D1值是否等于1值

MOV 代表等于指定数值:
#IF
#ACT
MOV D1 1
#SAY
将D1值的变量设置为1值

MOVR 代表:给予指定范围内的随机值:
#IF
#ACT
MOVR D1 1000
#SAY
将D1值的变量设置为0-1000之间的随机值

INC 代表加法:
#IF
#ACT
INC D1 1
#SAY
将D1值的变量增加了1点

DEC 代表:减法:
#IF
#ACT
DEC D1 1
#SAY
将D1值的变量减少了1点

MUL 代表乘法:
#IF
#ACT
MUL D1 1
#SAY
将D1值的变量乘以1数字

DIV 代表:除法:
#IF
#ACT
DIV D1 1
#SAY
将D1值的变量除以1数字


学习工具 下载地址 回复帖子 即可显示

回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表