角色 (TeaScript)

来自SMBX 中文百科
TeaScript/Char
跳转到导航 跳转到搜索

char(index).name ,是角色的属性。

用法

读取某个值:char(index).name

修改某个值:char(index).name = value

index只能为1和2,代表为玩家1或玩家2的角色数据,即便输入作弊码,生成克隆的马里奥也不会被奏效。

参数

基础

参数名 数据类型 介绍
id byte 玩家的角色ID,可以切换为其他角色。
x double 玩家的X坐标。
y double 玩家的Y坐标。
pwidth double 玩家的判定宽度。
pheight double 玩家的判定高度。
xsp single 玩家的横向速度。
ysp single 玩家的纵向速度。

每个角色的最大速度都不一样,详情参考下文。

图像

参数名 数据类型 介绍
brightness integer 玩家的照明范围。(需要将关卡的照明系统打开,可以使用sysval(EnableLighting) = 1打开。)
forecolor long 玩家的渲染颜色,使用rgba(red, green, blue, alpha)或整数值控制,默认为-1。
forecolor_r byte 玩家的 rgba 前景色中的红色通道的数值。
forecolor_g byte 玩家的 rgba 前景色中的绿色通道的数值。
forecolor_b byte 玩家的 rgba 前景色中的蓝色通道的数值。
forecolor_a byte 玩家的 rgba 前景色中的 alpha(即透明度) 通道的数值。

行为

参数名 数据类型 介绍 读写
facing byte 玩家的面朝方向。(0:右,1:左)
alive byte 玩家是否存活,设置0将干掉玩家。
nomove byte 设置为1,将禁止玩家移动,与键盘锁定事件工作不同。
stand byte 玩家的站立状态。(0:否,1:是) 只读
sjumping byte 玩家的旋转跳状态。(0:否,1:是) 只读
sliding byte 玩家的滑行状态。(0:否,1:是) 只读
pulling byte 玩家抓起NPC时或挖掘方块时的状态。(0:否,1:是) 只读
climbing byte 玩家的攀爬状态。(0:否,1:是) 只读
walljumptimer byte 玩家在未落地时,一直贴着实心墙滑行的状态。(0:否,1:是)

注:需要启动玩家允许蹬墙跳的功能,函数为sysval(enablewalljump) = 1或特殊事件call spevent(27)

只读
warping byte 玩家是否在传送状态。(0:否,1:是) 只读
inwater byte 玩家是否在水中。(0:否,1:是) 只读
grabbing integer 玩家抱起或举起的 NPC 对象 ID。 只读
icetimer integer 玩家被冻住的时间。 只读

只读片段可以作为自定义角色的判断依据(例如某个行为为是,将当前玩家的素材替换成对应的素材切片)。

增益&HUD

参数名 数据类型 介绍
status byte 玩家的形态。详情请见下文
itemslot integer 玩家当前的坐骑或变化形态,详情请见下文
itemrsvr integer 玩家当前存储的道具(在屏幕上方的蓝色框)。

只对马力欧和路易吉有效,设置非法ID会导致游戏崩溃。

hitpoint integer 玩家的生命值。只对碧姬公主,奇诺比奥,林克有效。

如果将生命值设置为大于3,则HUD不会变化,但游戏仍认为有效值。 如果设置为小于0则不会干掉玩家。

bombcnt integer 玩家的炸弹数量。

在HUD的表现为道具栏的下方。(仅林克才会显示和正常使用)

keycnt[1] integer 玩家的钥匙数量。

在HUD的表现为金币旁边。游戏不会对大于1的钥匙进行删除操作,玩家仍然可以继续使用。

fluddcap integer 玩家的喷水泵(F.L.U.D.D.)的容量,范围为1~1001。

如果设置为小于0,则游戏会默认设置为0。 如果设置为大于1000,则容量上限为1000。

flytime integer 玩家的飞行时间,当玩家获得叶子或狸猫后,可以在达到一定速度后进行飞翔,此时该值会一直不断减少直到0。
invtime long 玩家在获得无敌星后的效果时间,在这个值大于0时,游戏会每帧减少1直到0。

获得无敌星后,该值会变为800。

weapon integer 玩家的子弹类型(在火力花,冰花,锤子和企鹅形态时),可以设置为其他NPC。

设置为-1则不会发射NPC,设置为0则为默认。

ynpcid integer 玩家操作耀西时吞下去的NPC。

其他

参数名 数据类型 介绍 读写
section byte 玩家的当前场景 ID。 只读
jmpchance integer 如果玩家正处于攀爬状态时,该值将被设置为0且如果在此时按下跳跃键该值将会减1,直到玩家落地才会被重设为1。

如果玩家位于地面按下跳跃,该值将被设置为0,直到玩家重新落地,该值将被重设为1。 如果将该值强制锁定为大于1的值,则玩家可以在半空中实现跳跃和旋转跳状态的互换。

未知

参数名 数据类型 介绍
scriptid ??? 未知效果,只会报错“Too few/many arguments for function.

额外内容

角色

该参数受char(index).id影响。

ID 角色名 图像
0 马力欧
1 路易吉
2 碧姬公主
3 奇诺比奥
4 林克

状态

该参数受char(index).status影响。

ID 名称 状态 图像
1 Smail 小个子
2 Mushroom 大个子
3 Fire Flower 火焰花
4 Leaf 叶子
5 Tanooki Suit 浣熊装
6 Hammer Suit 锤子装
7 Ice Flower 冰花
8 Frog Suit 青蛙装
9 Blue Shell 蓝龟壳装
10 Propeller Suit 竹蜻蜓装
11 Mini Mushroom 迷你小个子
12 Penguin Suit 企鹅装

携带的物品

该参数受char(index).itemslot影响。

(严重警告,设置非以下列表的数游戏会崩溃!)

ID 类型 名称 图像
-150 Fairy 精灵
-103 Propeller Link Flying (Fairy) 精灵(林克竹蜻蜓飞行)
-102 Link Shell Sliding (Fairy) 精灵(林克龟壳滚动)
-100 Link Climbing (Fairy) 精灵(林克攀爬)
-20 Coin Box 头套(金币箱)
-19 Cannon Box 头套(炮弹)
-18 Propeller Box 头套(竹蜻蜓方块)
-17 Spiny Helmet 刺龟头盔
-16 Goomba Hat 栗宝宝面具
-15 Buzzy Helmet 硬壳头盔
-14 Invisible Mask 隐形面具
-13 Rocket F.L.U.D.D. 火箭喷嘴泵
-12 Turbo F.L.U.D.D. 冲刺喷嘴泵
-11 Hover F.L.U.D.D. 悬停喷嘴泵
-10 to -6 Makes the player invisible 隐身
-5 Mega Mushroom 巨大化
-4 Clown Car 小丑飞船
-3 Lakitu's Shoe 飞天鞋
-2 Fire's Shoe 防火鞋
-1 Kuribo's Shoe Kurido的鞋
0 None
1 Green Yoshi 耀西
2 Blue Yoshi 蓝耀西
3 Yellow Yoshi 黄耀西
4 Red Yoshi 红耀西
5 Black Yoshi 银耀西
6 Purple Yoshi 紫耀西
7 Pink Yoshi 粉耀西
8 Cyan Yoshi 青蓝耀西
  1. 注:虽然这个特性为林克专属,但其他角色也可以正常使用该特性。