[十九]一些脚本特殊变量介绍
我们再阅读Sphere的脚本的时候,经常会发现一些变量,而这些变量针对不同的物品具备不同的值,我记得很久以前看过一篇文章关于介绍MORE MORE2 MOREP的讲解,但那篇文章只涉及了这些特殊变量的一部分,象TDATA这类的变量却没有提到,下面我们将结合一些实际的应用,简单讲解一下这些特殊变量的部分用法和含义。
根据Sphere提供的最新版本的变量列表里面,我们可以整理出下列变量:
Link ,连接一共物品到另外一个物品,该值保存这另外一个物品的UID
MORE , 同MORE1
MORE1, 特殊类型变量值
MORE1H,MORE1的高位字节
MORE1L,MORE1的低位字节
MORE2, 特殊类型变量值
MORE2H,MORE2的高位字节
MORE2L,MORE2的低位字节
MOREM, MOREP.MAPPLANE(世界)
MOREP, 特殊类型指针
MOREX, MOREP.X
MOREY, MOREP.Y
MOREZ, MOREP.Z
Movable,没有用过,不了解
英文原文注释:could a player carry this”)
Region, 保存了当前的region值
Type, 物品的类型
TData1, 物品类型的特殊DATA值
TData2,物品类型的特殊DATA值
TData3,物品类型的特殊DATA值
TData4,物品类型的特殊DATA值
LAYER, 物品装备在角色不同部位的时候LAYER取不同的值
看了这么多的变量是不是有些头大呀?呵呵,其实这很容易理解,在任何编程语言中,无论何种变量最终交给CPU处理的数值都是机器语言,只不够这些数值有大有小,由于我们的计算机处理有位数之分,所以当赋值给一个变量的时候,就要有所限制,假若你给一个变量赋值100个9,那计算机内存肯定会报溢出的错误,因为你的位数超过了计算机的处理能力。
学过计算机的都知道,数字有好多种进制:二进制、八进制、十进制、十六进制,每种进制代表不同的对数字的表示形式,对于不同的编程语言对数字的表示形式和方法都有自己的一套办法,你可以把SPHERE理解成一种编程语言,尽管他不是很好的一个编程语言,但相对RUNUO来讲,却是非常易学和易理解的。
在Sphere的脚本里面,如果以0开头的数字,则为十六进制数,其他数字它一律理解成十进制数。
MORE:
对于MORE和MORE1、MORE2来说,它可以保存从0到0FFFFFFFF之间的任意一个数,也可以细分到MORE1L、MORE1H、 MORE2L 、MORE2H里面保存各个对应的位,这是一个32位的二进制数。
MOREP:
对于MOREX、MOREY、MOREZ来说,分别保存着MOREP的不同位的对应数值,不要尝试在一个脚本中同时使用MOREP和MOREX、MOREY、MOREZ这四个变量。它们不仅仅会冲突,还会给你带来意想不到的”收获”。
MOREX和MOREY可以可以保存从0-0FFFF之间的任意一个数值
MOREZ可以保存从-128-127之间的任意一个数值
MOREM可以保存从0-255之间任意一个数值
TDATA:
对于TDATA1、TDATA2、TDATA3、TDATA4这几个变量,在不同类型的物品上,代表着不同的含义,这些数值不能够在游戏中进行修改,但可以被任何脚本所读取。使用这些变量的时候,你必须考虑到它的这些特点,尽量在脚本编辑的时候就定义好它的值。
LAYER:
严格上来说,LAYER不能够当作一个变量来理解,如果一个物品被角色装备,那么角色不同部位比如左手、右手、头部等等装备,对应的LAYER(X)不同的值。这个我在前面的教程应该介绍过,您可以参考一下前面的教程整理的资料。
LINK:
这个变量保存了另外一个目标的UID,这个目标可以link的角色和物品。
OK,大概就这样了,上面的这些变量不仅仅可以定义和赋值、使用,还在不同物品中代表不同的含义,我们来找一些常见的例子来讲下这些特殊变量代表的含义:
1、Container(容器类)
类型(TYPE):t_container、t_container_locked
MORE:代表这个容器钥匙的UID
MORE2:锁的复杂程度
LINK:代表钥匙的UID
TDATA2:表示双击出来的图形gump的ID
TDATA3:表示gump的最小尺寸
TDATA4:表示gump的最大尺寸
PS:对于TDATA2、TDATA3、TDATA4,适合于containers(容器), sign gumps(门牌), ship holds(船舵), bulliten boards(公告牌),corpses(尸体), trash cans(垃圾桶), game boards(游戏板),
bank boxes(银行箱子)
2、Door(门)
类型:t_door、t_door_locked
MORE:代表门的钥匙的UID
LINK:通常代表一些multi类物品(如房子)的UID
TDATA1:表示开门或关门时的声音ID
3、Light Source(发光物体)
类型:t_light_lit、t_light_out
MOREY:表示消失前可以使用的次数,一般为20
MOREZ:Sphere的亮类型
TDATA3:表示光源ID
TDATA4:表示光源燃烧光时发生什么事(0=不做任何事, 1=删除这个物品)
4、Food(食物)
类型:t_food、t_food_raw
MORE:当烹饪的时候它能制成的物品的ID(如果没有的话是i_unused)
MORE2:来源的ID
MOREX:表示当你吃时产生的魔法效果种类,药水?
MOREY:表示施法强度
MOREZ:表示附加的下毒强度
TDATA1:对于raw food(生的食物),raw meat(生的肉类)来说,表示烤好的物品ID
TDATA2:表示来自哪个动物ID,
TDATA3:表示所需的最小cooking技能.
5、Armor Mace Weapon(盔甲、武器)
类型:t_armor、t_weapon_mace_smith、t_weapon_mace_sharp、t_weapon_sword、
t_weapon_fence、t_weapon_bow、t_wand
MORE1L:最大hitpoints牢固度
MORE1H:当前hitpoints
MORE2:代表最大次数,对于WAND物品来说
MOREY:如果具备魔法属性的话,代表属性的百分比(0-1000)
针对魔法杖而言,施展魔法的技能强度
MOREZ:表示下毒程度(0-100),可以附加伤害,对于魔法物品来说
TDATA2:表示装备所需的最小STR(适用于wands,weapons, armour, clothing)
TDATA3:对于弓箭类物品发射时候所用的箭物品ID(红箭还是蓝箭)
TDATA4:弓箭飞行效果ID= ID of the arrow animation (usually i_arrow_x)
MOREX:双击时候施展的魔法类型,针对魔法杖而言
6、Telepad (传送类)
类型:t_telepad
MORE:是一个标志,你可以规定是否只充许玩家和宠物通过
MORE2:表示通过时产生的动画ID
MOREP:当走过这个物品时候,传送到的目的地址
7、Switch、Trap(机关类)
类型:t_switch
LINK:机关触发的链接物品UID
MORE:表示动画ID,对于switch(机关)来说, MORE表示触发变化后机关的ID
MORE2:表示伤害
MOREX:表示伤害持续时间,对于switch(机关)来说,MOREX是个标志,表示是否用step触发
MOREY:表示间隔时间
MOREZ:是个标志,用来标识激活状态

留言
还没有留言,来坐个沙发吧。
留个言