相关资料的词条
- 欢迎来到THBWiki!如果您是第一次来到这里,请点击右上角注册一个帐户
- 有任何意见、建议、求助、反馈都可以在 讨论板 提出
- THBWiki以专业性和准确性为目标,如果你发现了任何确定的错误或疏漏,可在登录后直接进行改正
脚本对照表/MUAECL
相关资料的词条
概述
请至少先了解ecl为何物。点这里
为应对ecl汇编似的语言结构,表达式需要堆栈运算,记不住的数字指令等一系列缺点,MUA组少量参照了zun在某次访谈中给出的zun所使用的脚本,编写了一个相对较好使用的ecl语言准备编写一套新的MUAECL2.0。
目前暂时以辉针城和绀珠传为基础。以后会用不同颜色加入对于其余作品的支持。
想下载MUAECL的脚本翻译器请加入MUA组(如想加入在此版块回复即可)
Instruction表
Instruction有 ins_xx(arg1,arg2,arg3.。。。) 表示,其中xx代表Instruction的编号,不同编号有不同的功能, 每个Instruction需要的参数也不同/
下表展示了各种Instruction的功能
Instruction大致可以分为 5大类 即运算和系统,贴图和创建单位, 移动,单位属性,弹幕相关
以下每个ins,格式为名字 编号 作用详解
系统和运算
begin() 0 空指令,main开始调用一次
end() 1 大return,会清除当前单位
return() 10 小return,返回到调用这个过程的地方,不清除当前单位
ins_11(CString Subroutine,member 1,member 2.....)
调用过程,若有需要传递参数,必须要在整数前加上_SS,浮点数前加上_ff,在子线程结束后返回
已废 请直接调用。
ins_12(label,int b),已废
ins_13(label,int b),已废
ins_14(label,int b),已废
12-14三者皆为goto 到对应label处,b为时间值。
12为无条件goto
13 if条件用goto
判断当前栈顶是否为0 如果是0,则执行,不是0则不执行.
14 循环用goto 判断当前栈顶是否为1,如果是1,就执行
已废请直接使用Jmp,Jz,Jnz
ins_15(CString Subroutine,member 1,member 2.....)
在当前单位创建一个ID为-1的子线程,并行运行
已废请直接调用
thread(CString Subroutine,int id) 16
在当前单位创建一个子线程,并行运行
term(int id) 17
关闭16的子线程
simu_term(int) 802 参数为0,立即击破场上boss当前阶段(用于多boss同台时,击破一个boss时另一个boss也同时击破,例hzcex道中2,3符)
ins_21() ???
ins_22(anything) zun debug用,release版本是空指令
wait(int time) 23 等待xx帧。可以使用冒号,使用冒号之后会变成548。
ins_40(int size)
分配局部变量用,等价于Var
ins_41 销毁40分配的局部变量
pushI(int) 42
整数写入堆栈顶;
popI(int) 43
将运算结果储存到变量中。相当于等号, 即 pushI(5); popI(C); 等价于 C=5;
pushF(float) 44 pushI的浮点数版本
popF(float) 45 popI的浮点数版本
运算符号表 ins_50 开始至ins_69为各种基础运算,相同功能的一对中,第一个为整数版本,第二个为浮点数版本 不建议使用,请直接用运算
名字 | 编号 | 作用 | 名字 | 编号 | 作用 | |
---|---|---|---|---|---|---|
operator_add_int | 50 | + | operator_add_float | 51 | + | |
operator_sub_int | 52 | - | operator_sub_float | 53 | - | |
operator_mul_int | 54 | * | operator_mul_float | 55 | * | |
operator_div_int | 56 | / | operator_div_float | 57 | / | |
operator_mod | 58 | mod | - | - | - | |
operator_equal_int | 59 | == | operator_equal_float | 60 | == | |
operator_notequal_int | 61 | != | operator_notequal_float | 62 | != | |
operator_less_int | 63 | < | operator_less_float | 64 | < | |
operator_lessequal_int | 65 | <= | operator_lessequal_float | 66 | <= | |
operator_large_int | 67 | > | operator_large_float | 68 | > | |
operator_largeequal_int | 69 | >= | operator_largeequal_float | 70 | >= | |
operator_not_int | 71 | ! | operator_not_float | 72 | ! | |
operator_or_logic | 73 | || |
operator_and_logic | 74 | && | |
operator_xor_bit | 75 | ^(xor) | operator_or_bit | 76 | | | |
operator_and_bit | 77 | & | - | - | - | |
operator_sin | 79 | sin | operator_cos | 80 | cos | |
operator_minus_int | 83 | (-) | operator_minus_float | 84 | (-) | |
operator_sqrt | 88 | sqrt | - | - | - |
dec(int i) 78 将i自减并塞入堆栈。配合Jnz用于控制循环次数。
pol_to_right(float A,float B,float x,float y) 81
A=ycosx ,B=ysinx
normalize(float A) 82 +-π的整数倍以至于A落入(-π,π)这个区间
sqrsum(float A,float x,float y) 85
A=x平方+y平方
right_to_dist(float A,float x,float y) 86
A平方=根号(X平方+y平方)
right_to_ang(float %A,float x1,float y1,float x2,float y2,) 87
计算点(x1,y1)至点(x2,y2)的方向并存入浮点变量A中
ang_aim(N,float x,float y) 623 计算点x,y到自机到角度并存入N中
ins_89(float A, float x float y)
A=y-x
ins_90(float A,float B,float x,float y,float z)
A=?? B=??
ins_91(int A,float B,int c int d,float x,float y)
执行代码之后的c帧内,将%B由x变化到y,变化的曲线的参数为A和D
ins_92(int A,float B,int c int d,float x,float y,float m,float n)
?????
ins_93(float A,float B,float x,float y)
根据x和y,分别赋予A,B一个随机数,和正态分布相关 例若a=b,则随机范围是-a<A<a, 呈两边概率大于中间 若a=0则则随机范围是-b<A<b,呈两边概率小于中间 若b=0则则随机范围是-2a<A<2a,呈两边概率小于中间
设置贴图,播放特效动画,创建单位
这些obj型的指令,在创建单位的时候会自动执行与该单位同名的sub。
obj("xxx", float x, float y, int life, int bonus, int item) 300
以相对召唤者为基准点在位置xy,创建一个单位xxx,设置血量,分数以及基本掉落。
objAbs("xxx", float x, float y, int life, int bonus, int item) 301
在绝对位置xy,创建一个单位xxx,设置血量,分数以及基本掉落。用于boss
objRvs("xxx", float x, float y, int life, int bonus, int item) 304
和obj的基本功能一样,但是移动方式为左右镜像。
objRvsAbs("xxx", float x, float y, int life, int bonus, int item) 305
和objAbs的基本功能一样,但是移动方式为左右镜像。
objRei("xxx", float x, float y, int life, int bonus, int item) 309
用于增员(boss存在时不执行),其余和obj一样
objReiAbs("xxx", float x, float y, int life, int bonus, int item) 310
用于增员,其余和objAbs一样
objReiRvs("xxx", float x, float y, int life, int bonus, int item) 311
用于增员,其余和objRvs一样
objReiRvsAbs("xxx", float x, float y, int life, int bonus, int item) 312
用于增员,其余和objRvsAbs一样
anim_file(int) 302
选择ANM文件。一般来说0即是Bullet.anm,1即是Enemy.anm,2开始就是当面的boss相关anm
layer_set(int layer,int a) 303
在相应layer上,设置单位贴图,a对应由上一个302选择的ANM文件中的SCRIPT号 若使用529则单位不会因为左右移动而改变贴图
layer_set_mov(int layer,int a) 306
在相应layer上,设置单位贴图,a对应由上一个302选择的ANM文件中的SCRIPT号 若使用306且layer 0,则单位会因为左右移动而改变贴图 a为静止贴图,a+1,a+2为向左,右走,a+3,a+4为左面回来,右面回来 若layer不为0,则和303无区别.
anim_at_file(int a,int b) 307
在单位当前位置播放ANM文件a的第b个动画效果,b对应由上一个302选择的ANM文件的 script号
anim_at0_file(int a,int b) 308
在左上角播放ANM文件a的第b个动画效果,b对应由上一个302选择的ANM文件的 script号
anim_at(int a) 313
在单位当前位置播放之前选择的ANM文件的第a个动画效果,a对应由上一个302选择的ANM文件的 script号
ins_314(int a, b)
ins_315(int a, b)
anim_at2(int a, b)
ins_317(int a, b)
restore_anime_flag() 318
重置动画相关,移除单位作用移动时贴图变化的flag
layer_rot(int layer,float b) 319
旋转在相应layer的贴图至b方向。
layer_offset(int layer,float x,float y) 320
用于改变layer位置贴图的位置 x和y
maple("MapleEnemy", 0, 0, 100, 1000, 0) 321 插入mapleenemy专用
ins_322(int a,int b)
ins_323(int a,int b)
ins_324()
layer_RGB(int layer,int R,int G,int B) 325
设置贴图颜色,若RGB为255 255 255(白),则维持原颜色
ins_326(int layer,int a,b,c,d,e,f)
ins_327(int layer,int a)
layer_RGB_trans(int layer,int R,int G,int B) 328
设置颜色透明度,若RGB为255 255 255,则100%原图显示
layer_zoom(int layer,float lengthrate,float widthrate) 329
设置单位位于layer的贴图的大小比例,1.0f为正常大小,替换anmins里的402等anmins设置的倍数
layer_zoom_chg(int layer,int time,int mode,float lengthrate,float widthrate) 330
time帧内改变单位位于layer的贴图的大小比例为lengthrate,float widthrate.
layer_zoom_add(int layer,float lengthrate,float widthrate) 335
设置位于layer的贴图的大小比例,1.0f为正常大小,与anmins里的402等anmins设置的倍数叠加
ins_331(int layer,int a)
ins_332(int layer,int a,b,c)
ins_333(int layer,int a,b.float c,d)
anim_obj(int a) 334 播放单位的动画效果,神灵庙娘娘的邪魂球附近的雷电效果使用
ins_336 绀珠传中出现
ins_337 绀珠传中出现
单位移动
每一个单位都有三套坐标. 即最终实际坐标,绝对坐标以及相对坐标,任何时候最终实际坐标=绝对坐标+相对坐标
单位被创建出来时,那个坐标即是绝对坐标,初始相对坐标为(0,0)
所有移动相关函数都是一对一对的 基本功能相同以外,第一个是改变绝对坐标,第二个改变相对坐标
mov(float x,float y) 400
改变目标坐标为x,y.
mov_chg(int time,int mode,float x,float y) 401
将目标移动到,x,y位置.持续time帧,mode为移动方式
mov2(float x,float y) 402 和mov成对
mov_chg2(int time,int mode,float x,float y) 403 和mov_chg成对
spd(float direction, float speed) 404
设置移动方向以及速度
spd_chg(int time, int mode, float direction, float speed) 405
改变移动方式为某个方向以某个速度移动移动。改变时间为time 改变方式为mode mode有四种 0---线性 1----加速 4----减速 9----平滑
spd2(float direction, float speed) 406 和spd成对
spd_chg2(int time, int mode, float direction, float speed) 407 和spd_chg成对
mov_cir(float θ,float speed,float radius,float,rspeed) 408
使单位进行圆周运动,曲线的极坐标(原点为单位之前的位置)(radius,θ) θ的增速为speed,radius增速为 rspeed
mov_cir_chg(int time,int mode, float speed, float radius, float rspeed) 409
time帧之内改变单位圆周运动的参数,方式为mode.各参数参考mov_cir
mov_cir2(float θ,float speed,float radius,float,rspeed) 410 和mov_cir成对
mov_cir_chg2(int time,int mode, float speed, float radius, float rspeed) 411 和mov_cir_chg成对
mov_ran(int time,int mode,float speed) 412
目标向随机点移动一次,持续time帧,速度为speed,移动方式为mode。mode和405相同
mov_ran2(int time,int mode,float speed) 413 和mov_ran成对
mov_to_boss() 414 将单位移动至boss的位置,此函数若在无boss时使用会导致严重误访问而爆炸
mov_to_boss2() 415 和mov_to_boss成对
mov_z(float x,float y,float height) 416 瞬间移动到与当前位置偏移x,y的位置,并且改变单位深度,此深度只适用于风神录(296)四面的潜水怪
mov_z2(float x,float y,float height) 417 和mov_z成对
ins_418(float x,float y)仅在前作FSL(298)6面神妈的圈圈移动上使用
ins_419(float x,float y)和ins_418成对
mov_ellipse(float θ,float speed,float radius,float,rspeed,float dir,float rate) 420
使单位进行椭圆运动,曲线的极坐标(原点为单位之前的位置)(radius,θ) θ的增速为speed,radius增速为 rspeed,dir为 椭圆偏离的方向,rate为长半轴与短半轴的比例
mov_ellipse_chg(int time,int mode, float speed, float radius, float rspeed,float dir,float rate) 421
time帧之内改变单位圆周运动的参数,方式为mode.各参数参考mov_ellipse
mov_ellipse2(float θ,float speed,float radius,float,rspeed,float dir,float rate) 422 和mov_ellipse成对
mov_ellipse_chg2(int time,int mode, float speed, float radius, float rspeed,float dir,float rate) 423 和mov_ellipse_chg成对
rvs(int a) 424
当a =1的时候赋予单位某flag(参考flag表),a=0的是消除 此flag会影响spd和spd_chg等ins,效果为左右翻转
mov_curve(int time,float x1,float y1,float x2,float y2,float x3,float y3) 425
在time时间内将单位最终移动至点x2,y2. 期间首先向点x1,y1移动和一点时间再向 终点偏差x3,y3移动一段时间再移动至终点x2,y2.
mov_curve2(int time,float x1,float y1,float x2,float y2,float x3,float y3) 426 和mov_curve成对
mov_init() 427
初始化和清零移动相关参数
spd_correct(int) 428 spd的无视左右翻转版
spd_chg_correct(int) 429 spd_chg的无视左右翻转版
spd_correct2(int) 430 spd2的无视左右翻转版
spd_chg_correct2(int) 431 spd_chg2无视左右翻转版
ins_432(int)未知
ins_433(int)未知
ins_434(int a,int b,int c ,float x,float y) 未知移动函数
ins_435(int a,int b,int c ,float x,float y) 和ins_434成对
mov_chg_correct(int time,int mode,float x,float y) 436 mov_chg的无视左右翻转版
mov_chg_correct2(int time,int mode,float x,float y) 437 mov_chg2的无视左右翻转版
ins_434_correct(int a,int b,int c ,float x,float y) 438 ins_434的无视左右翻转版
ins_435_correct(int a,int b,int c ,float x,float y) 439 ins_435的无视左右翻转版
ins_441(int time,int mode,float dir)
time帧后移动方向角增加dir,方式为mode
ins_445(int time,int mode,float s)
time帧内速度增加至s,方式为mode
ins_446 绀珠传中出现
ins_447 绀珠传中出现
单位固有属性
hitbox(float width,float height) 500 目标被弹判定
killbox(float width,float height) 501 目标体术判定
option(int flag) 502
设置单位的一些特定参数,a为2个4字节的开关参数0000000000000000 详细参考下方FLAG表
option_unset(int a) 503
取消option设置的参数,和option刚好相反
clip(float x,float y,float m,float n) 504
限制boss的移动范围,以x,y为基准+- n 和m的范围
clip_unset() 505 移除移动范围限制
drop_clear() 506 清除掉落
drop_set(int type,int amount) 507
目标掉落道具及数量 1.p点 2蓝点 3.大p 4.残碎片 5残机,6B碎片 7Bomb 8大F 9小最大得点,获得时无音效,每个增加2最大得点, 10.中最大得点,获取时有音效,每个增加2最大得点.11.中最大得点,获取时有音效,每个增加20最大得点. 12.B碎片(参与hzc收点系统的循环)
drop_area(float width,float height) 508 设置掉落区域
drop() 509 掉落所有道具
drop_basic(int type) 510 设置目标基本掉落,数量是1.
set_life(int life) 511 更改单位血量
bossmode(int a) 512
a=0,设为boss战模式(血条,名字等),a=-1,结束boss。
time_reset() 513
重置时间
interrupt(int a,血量,时间,“阶段变量名”) 514
当血量和或时间达到此数值时 载入下一阶段(符卡或非符) a的作用未知
invincible(int time) 515 无敌时间
playSE(int) 516 播放音效
vibration(int a,int b,int c) 517 震屏特效。a为持续时间(帧),bc均与震屏强度有关,都是越大震动越强,区别不明。
talk(int) 518 读取对话,参数对应msg文件,同时执行525
after_talk() 519 对话后进行下一条
after_kill() 520 击破后进行下一条
timeout(int a,"func") 521
时间到0时进行func的内容,a作用未知
cardX(int a, int life, int score, "X符:XXXX") 522
进入符卡模式,设置符卡宣言后右上角 符卡时间,scb,符卡名,a和符卡序号有关 Ex面使用
card0(int a, int life, int score, "X符:XXXX") 528
进入符卡模式,设置符卡宣言后右上角 符卡时间,scb,符卡名,a和符卡序号有关 未使用
cardE(int a, int life, int score, "X符:XXXX") 537
进入符卡模式,设置符卡宣言后右上角 符卡时间,scb,符卡名,a和符卡序号有关 非ex面关底使用
card1(int a, int life, int score, "X符:XXXX") 538
进入符卡模式,设置符卡宣言后右上角 符卡时间,scb,符卡名,a和符卡序号有关 HZC中未使用.
cardM(int a, int life, int score, "X符:XXXX") 539
进入符卡模式,设置符卡宣言后右上角 符卡时间,scb,符卡名,a和符卡序号有关 非ex面道中使用
endSC() 523
结束符卡模式
chapter(float) 524
设置章节数,影响即将出现的符卡立绘,背景以及左上角boss的名字 在设置gzz里的结算点,
clear_unit() 525
清除所有单位,有某些flag的不会被清除.
protect_area(float) 526
设置弹幕生成保护范围(距离)自机在此范围内时不发弹
lifebar(int a, float life, int c) 527
设置血条上的标记点,a是标记序号,life对应血量, c是RGB值
RANK一直存在于游戏程序中,收点+rank miss减rank
理论来讲应该是a:b,a:b:c,a:b:c:d:e代表rank然后a:b:c:d代表难度的,然而作者懒得做这个功能了因为没人用rank了
rank3F(N,float a,b,c) 529 根据RANK决定变量N
rank5F(N,float a,b,c,d,e) 530 根据RANK决定变量N
rank2F(N,float a,b) 531 根据RANK决定变量N
rank3I(M,int a,b,c) 532 根据RANK决定变量M
rank5I(M,int a,b,c,d,e) 533根据RANK决定变量M
rank2I(M,int a,b) 534 根据RANK决定变量M
ins_535(M,int a,b,c,d)根据难度将数据写入整数M中 已废请使用冒号
ins_536(N,float a,b,c,d)根据难度将数据写入浮点数N中 已废请使用冒号
star(int) 540设置剩余阶段数(左上角的星星数)
ins_541(int)仅在风神录(对应ins_361)使用过,为4,5,6面某些效果设置,效果不明.之后被zun遗弃
time_card() 542 设置符卡为时符
ins_543()某些时符使用
ins_544(int)
当a=1时赋予单位某flag(参考下方flag表),a=0时取消 雷鼓的使魔们使用
reset() 545
重置boss一些参数,除了boss1非以外,每一张非和卡都出现和,boss逃跑和死亡也会出现
ins_546(int,int)
当a =1的时候赋予单位某flag,a=0的是消除 此flag会使boss对Bomb免疫,并且由b来决定放b时的播放的动画 同时会消除某单位flag 具体参照下方flag表
droprate(float) 547 设置时间倍率,1.0是正常,击破后减速可以设成0.5,咲夜时停是设成0.0
ins_548(int a, b, c, d);wait(等待)的难度选择版 已废请使用wait+冒号
ins_549(int)
当a =1的时候赋予单位某flag,a=0的是消除,参照下方flag表 仅在地灵殿(对应ins_369)四面使用过,效果不明.之后被zun遗弃
ins_550(int)仅在地灵殿(对应ins_370)四面使用过,效果不明.之后被zun遗弃
ins_551(int)仅在地灵殿(对应ins_371)四面使用过,效果不明.之后被zun遗弃
ins_552(int)仅在星莲船(对应ins_452)一面使用过,效果不明.之后被zun遗弃
hit_SE(int) 553 设置被打击的音效
logoenemy() 554 显示logoenemy
dead_attack("DeadAttack1") 556 设置死尸弹
ins_557(int, int,int, float, float) 一些道中boss死亡时使用,效果未知
ins_558(int)
a=1则赋予单位某flag,a=0消除,具体参照下方flag表 和424功能完全一样,此flag控制左右移动翻转
ins_559(int)未知
ins_560(float a,flaot b)未知
ins_561() 放出单位死亡特效(实际不死亡)庙道中击破大蝴蝶之后鬼火爆炸时发现
ins_562()未知
ins_563(???)
ins_564(???)
bomb_damage_rate(float a) 565
设置b伤害的倍率,0.0的话就是炸不掉血,1.0就是全额伤害
ins_566(???)没有在任何位置发现,可能zun设计之后未使用
ins_567(int)正邪使用,效果未知
damage_rate(int) 568 设置boss的伤害倍率,0为谱模式,1为符卡模式(用于双boss同时在场时,设置副boss的倍率)
kill_rate(int) 569 绀珠传新增,用来设置击破率
ins_570 绀珠传中出现
ins_571 绀珠传中出现
弹幕相关
et_ini(int a) 600 创建一个弹幕,编号为a 请直接使用set_et
et_shoot(int a) 601 发射a号子弹
et_shape(弹幕编号,int a,int b) 602 设置弹幕贴图,a b 对应 bullet.Anm文件中description文件的内容。
子弹名 | 子弹编号 | 弹型 | 子弹名 | 子弹编号 | 弹型 | 子弹名 | 子弹编号 | 弹型 |
---|---|---|---|---|---|---|---|---|
ET_dot | 0 | 点弹 | ET_dot2 | 1 | 点弹 | ET_mold | 2 | 葡萄弹/霉菌弹 |
ET_tiny | 3 | 粒弹 | ET_small | 4 | 小玉 | ET_small2 | 5 | 小玉 |
ET_ring | 6 | 环玉 | ET_ring2 | 7 | 环玉 | ET_grain | 8 | 米弹 |
ET_kunai | 9 | 链弹/苦无 | ET_needle | 10 | 针弹 | ET_square | 11 | 札弹 |
ET_triangle | 12 | 鳞弹 | ET_bullet | 13 | 铳弹 | ET_sb | 14 | 消弹效果 |
ET_long_mold | 15 | 杆菌弹 | ET_small_star | 16 | 顺时针旋转小星弹 | ET_money | 17 | 钱币 |
ET_middle | 18 | 中玉 | ET_high_middle | 19 | 高光中玉 | ET_ellipse | 20 | 椭弹 |
ET_knife | 21 | 刀弹 | ET_butterfly | 22 | 蝶弹 | ET_big_star | 23 | 顺时针旋转大星弹 |
ET_red_fire | 24 | 红色炎弹 | ET_purple_fire | 25 | 紫色炎弹 | ET_blue_fire | 26 | 蓝紫炎弹 |
ET_yellow_fire | 27 | 黄色炎弹 | ET_heart | 28 | 心弹 | ET_eye | 29 | 伸缩中玉 |
ET_arrow | 30 | 矢弹 | ET_big | 31 | 大玉 | ET_light | 32 | 光玉 |
ET_drop | 33 | 滴弹 | ET_spin_grain | 34 | 旋转米弹 | ET_spin_needle | 35 | 旋转针弹 |
ET_reverse_small_star | 36 | 逆时针旋转小星弹 | ET_laser | 37 | 激光段 | ET_red_music | 38 | 红色音符弹 |
ET_blue_music | 39 | 蓝色音符弹 | ET_yellow_music | 40 | 黄色音符弹 | ET_purple_music | 41 | 紫色音符弹 |
ET_silence | 42 | 休止符弹 | ??? | 43 | 空白(仍有极小判定) |
绀珠传里24是逆时针旋转大星弹,25之后顺延,相对顺序不变
由于对于不同大小的弹幕,颜色编号不一样,请对照bullet.anm里的图片使用。 大小16x16或以下的:
颜色名 | 颜色编号 | 颜色名 | 颜色编号 | 颜色名 | 颜色编号 | 颜色名 | 颜色编号 |
---|---|---|---|---|---|---|---|
BLACK16 | 0 | DARK_RED16 | 1 | RED16 | 2 | DARK_PURPLE16 | 3 |
PURPLE16 | 4 | DARK_BLUE16 | 5 | BLUE16 | 6 | DARK_CYAN16 | 7 |
CYAN16 | 8 | DARK_GREEN16 | 9 | BLUE_GREEN16 | 10 | GREEN16 | 11 |
GREEN_YELLOW16 | 12 | YELLOW16 | 13 | ORANGE16 | 14 | WHITE16 | 15 |
大小32x32的:
颜色名 | 颜色编号 | 颜色名 | 颜色编号 | 颜色名 | 颜色编号 | 颜色名 | 颜色编号 |
---|---|---|---|---|---|---|---|
BLACK32 | 0 | RED32 | 1 | PURPLE32 | 2 | BLUE32 | 3 |
CYAN32 | 4 | GREEN32 | 5 | YELLOW32 | 6 | WHITE32 | 7 |
大小64x64的(大玉):
颜色名 | 颜色编号 | 颜色名 | 颜色编号 | 颜色名 | 颜色编号 | 颜色名 | 颜色编号 |
---|---|---|---|---|---|---|---|
RED64 | 0 | BLUE64 | 1 | GREEN64 | 2 | YELLOW64 | 3 |
钱币弹:
颜色名 | 颜色编号 | 颜色名 | 颜色编号 | 颜色名 | 颜色编号 |
---|---|---|---|---|---|
GOLD | 0 | SILVER | 1 | BRONZE | 2 |
et_offset(弹幕编号,float x,float y) 603 以基准发弹点用直角坐标的方式偏移发弹点。基准发弹点默认是单位目前坐标
et_dir(弹幕编号, float dir, float r) 604
设置弹幕方向为 dir,每way之间的角度差为r
et_speed(弹幕编号, float speed, float s) 605
设置弹幕速度为 speed,其中最慢一层的速度为s
et_num(弹幕编号,int way,int ceng) 606
设置弹幕的way数和层数,
et_style(弹幕编号,int style) 607
根据style设置弹幕展开的形状,若此弹幕是1way 1层的,则无影响
常量名 | 序号 | 功能 |
---|---|---|
ET_AIM_NORM | 0 | 自机狙普通 |
ET_NORM | 1 | 普通 |
ET_AIM_CIR | 2 | 自机狙右偏开花 |
ET_CIR | 3 | 右偏开花 |
ET_AIM_CIR2 | 4 | 自机狙左偏开花 |
ET_CIR2 | 5 | 左偏开花:开花即为速度最慢一层方向普通,每向外一层,方向偏转每way角度差(右偏为逆时针左偏为顺时针),此时所有way数自动排成一个圆,不再受每way角度差限制 |
ET_RAN2 | 6 | 一坨:方向普通。每层在 弹幕方向+-每way角度差 的角度内随机分布,层之间不随机。 |
ET_RAN_CIR | 7 | 散开一坨:每颗弹幕均在 speed~speed+2*s 360度 范围内随机分布。 |
ET_RAN | 8 | 一坨:每颗弹幕均在 speed~speed+2*s dir+-r 范围内随机分布。 |
ET_AIM_STAR | 9 | 自机狙金字塔开花 |
ET_STAR | 10 | 金字塔开花:金字塔开花即为首先层数总数除以2,速度最快1~2颗弹幕方向普通,之后速度每慢1层,有两颗弹幕,方向向两侧偏转每way角度差 |
ET_PEANUT | 11 | 上下?:方向普通。所有子弹排成一个花生状(360度分布),花生顶尖的一way弹幕速度为设定值(花生的每way弹速是固定的,具体弹速-角度关系待测) |
ET_PEANUT2 | 12 | 开花:与11类似。11与12的每way角度刚好成间隔排布。弹速-角度关系与11相同。 |
9与10金字塔开花型子弹若想脑补,请参考en难度风神录一面道中二非
et_SE(弹幕编号, int a,int b) 608
设置弹幕音效,a是发弹音效,b是变向音效。不设置的话就是默认。-1代表没有音效
609-612为设置弹幕各种变速等复杂的属性,具体请翻至最下面这里查阅。教程点击这里。
et_clear_all() 613 全屏消弹,不增加得点
et_copy(int a,int b) 614 复制弹幕b到a中,弹幕属性仅复制这个函数使用之前设定的,
et_clear(float r) 615 消掉半径为r范围内的弹幕,消掉的弹幕变为最大得点
et_clear0(float r) 616 消掉半径为r范围内的弹幕,不增加得点
et_speed_rank3(弹幕编号,float a,b,c,d,e,f) 617 根据rank的值来决定弹速
et_speed_rank5(弹幕编号,float a,b,c,d,e,f,g,h,i,j) 618 根据rank的值来决定弹速
et_speed_rank2(弹幕编号,float a,b,c,d) 619 根据rank的值来决定弹速
et_amount_rank3(弹幕编号,int a,b,c,d,e,f) 620 根据rank的值来决定way数和层数
et_amount_rank5(弹幕编号,int a,b,c,d,e,f,g,h,i,j) 621 根据rank的值来决定way数和层数
et_amount_rank2(弹幕编号,int a,b,c,d) 622 根据rank的值来决定way数和层数
ins_624(弹幕编号,float a,b,c,d,e,f,g,h)
et_speed的难度结合版,即如果难度为Easy 则相当于et_speed(弹幕编,a,e) 已废请使用et_speed+冒号
ins_625(弹幕编号,int a,b,c,d,e,f,g,h)
et_num的难度结合版,即如果难度为Easy 则相当于et_num(弹幕编,a,e) 已废请使用et_num+冒号
et_offset_polar(弹幕编号,float o,float r) 626 以基准发弹点用极坐标的方式偏移发弹点,角度为o,半径为r。
et_nearby(弹幕编号,float dis) 627 设置发弹点。以boss为半径为dis的圆形边上发弹。
et_base(弹幕编号,float x,float y) 628 设置发弹基准点
texture(flout r,int color) 629
设置boss周围的纹理变化特性,影响半径为r,颜色为 color,对应RGB颜色,
ins_630(int)6和7boss使用,用途未知
ins_631(???)
ins_632(int)
boss每身重置为0,有些特殊攻击模式时启用,于变换mode32768配合使用 具体请阅读下方表格mode32768部分
ins_633(int)神灵庙布嘟嘟的船使用,用途未知
ins_634(???)
ins_635(???)
ins_636(???)
ins_637(int)
使用各boss独有的特殊变化。如雷鼓震屏,正邪翻转 只有特定boss才能使用特定变化.
ins_638(???)
ins_639(???)
et_obj(弹幕编号,int a,"func") 640 由弹幕召唤使魔的时候使用,需要a= mode 16777216的弹幕编号2
ins_641(弹幕编号)hzc6面时符大型刀弹使用,用途未知
激光相关
et_ls_length(弹幕编号,float a,float length,float b,float width) 700
使弹幕变成激光,设置长度和宽度,a和b是开始位置的参数,一般激光设成0就行 17条爆弹那种预警线+直接生产的设置成和长度一样 若要发射曲线激光,则a,length,b 都是无关参数,设成-1.0f,曲线激光只可以设置宽度.
et_ls_time(弹幕编号,int a,int b,int c,int d, int e) 701
设置预警线持续时间a和激光的持续时间c. b和d分别是从预警线变为实际激光和激光消失过程需要的时间,e一般为0 用途未知 若发射曲线激光则,则b,c,d,都是无关参数,a是激光发射持续时间(决定其长度) e仍然是迷之0
et_ls_shoot(弹幕编号) 702 普通激光的发弹函数
et_ls(弹幕编号,int a) 703 发射预警线激光专用,a为激光编号,区别于弹幕编号
ls_pos(激光编号,float x,float y) 704 改变激光的起点为x,y
ls_move(激光编号,float x,float y) 705 赋予激光起点一个速度
ins_706(???)
ls_width(激光编号,float width) 707 改变激光的宽度为width
ls_dir(激光编号,float a) 708 改变激光的角度为a
ls_rotate(激光编号,float a) 709
赋予激光一个顺时针的角速度a
ls_clr(激光编号) 消除激光 710
et_bentls_shoot(弹幕编号) 711 曲线激光用发弹函数
obj_ls(float length,float width) 712 改变单位判定,使其变成类似于激光的东西,天邪鬼新增
ins_713 绀珠传中出现
ins_714 绀珠传中出现
其他
simu(int,"subroutin"); 800 推测是同时开启另一个人的"subroutin",第一个int参数与编号有关,不明。eg.比如绀珠传ex的纯狐与赫卡互动。
if_alive(int A,int b) 555
检查第b号单位是否存活,若存活测A=1,否则A=0.单位的编号就是单位登场的顺序.main为0号
test_pos(float %X,float %Y,int n); 801
返回(X,Y)等于第n号小怪的坐标。eg.比如神灵庙6道中判断大蝴蝶如果出屏则幽灵就不因大蝴蝶出屏消失而死亡
simu_term(int); 802 参数为0,立即击破场上boss当前阶段(用于多boss同台时,击破一个boss时另一个boss也同时击破,例hzcex道中2,3符)
ins_900() 仅仅在一面道中的GirlTest中出现一次,zun测试用
ins_901() 仅在DebugSkipFunc 使用,zun用来跳过Debug
ins_902() 仅在五面道中使用,作用未知,即使删除对游戏毫无影响,推测zun为debug用。
ins_1001(int);迷
ins_1002(int);迷
ins_1003(int);迷
ins_1004();迷
集成语句
CardStart() 开卡时用。
time_reset(); ins_21(); clear_unit(); obj("Ecl_EtBreak", 0., 0., 9999, 0, 0);//这个是消弹圈,在default.ecl里 endSC(); ins_632(0); reset(); playSE(27); spd(0., 0.); spd_chg(0, 0, 0., 0.); mov_chg(0, 0, 0., 0.); MNum = 0; BNum = 0; ifSCB = 1;
CardEnd() 开非符时用。
time_reset(); ins_21(); clear_unit(); if(ifNotEscape==0){ et_clear(640.0f); } else{ et_clear0(640.0f); } endSC(); ins_632(0); reset(); playSE(27); spd(0., 0.); spd_chg(0, 0, 0., 0.); mov_chg(0, 0, 0., 0.); MNum = 0; BNum = 0; ifSCB = 1;
set_et(int 弹幕编号, int style, int 弹幕类型, int 弹幕颜色, int way, int ceng, float 方向, float 角度差, float speed, float 速度差) 初始化弹幕。其中弹幕样式,弹幕类型和弹幕颜色可以使用常量。
et_ini(弹幕编号); et_style(弹幕编号, style); et_shape(弹幕编号, 弹幕类型, 弹幕颜色); et_num(弹幕编号, way, ceng); et_dir(弹幕编号, 方向, 角度差); et_speed(弹幕编号, speed, 速度差);
特殊变量表
SCNum int 9907 未知全局变量 SLM(4BE7D4) HZC中代表符卡练习模式中的符卡序号
OBJNumNoFlag int 9908 同屏单位数单数不包含还有单位flag.1,16,32的单位
Var_9909 int 9909 单位未知参数 SLM(11E8) DZZ 11c4
Var_9910 int 9910 boss未知参数,同9969 SLM(128c)
DIRBoss float 9911 boss最终位移的方向,停下后变成0
Var_9912 int 9912 文花帖DS中有特别意义,SLM之后固定放弃使用为0
hasShotNum int 9913 文花帖DS中为已拍照张数,SLM之后固定放弃使用为0
NUM int 9914 当前单位的单位编号
GF7 float 9915 可供随意使用的全局变量
GF6 float 9916 可供随意使用的全局变量
GF5 float 9917 可供随意使用的全局变量
GF4 float 9918 可供随意使用的全局变量
GF3 float 9919 可供随意使用的全局变量
GF2 float 9920 可供随意使用的全局变量
GF1 float 9921 可供随意使用的全局变量
GF0 float 9922 可供随意使用的全局变量
GI3 int 9923 可供随意使用的全局变量
GI2 int 9924 可供随意使用的全局变量
GI1 int 9925 可供随意使用的全局变量
GI0 int 9926 可供随意使用的全局变量
Var_9927 int 9927 SLM:[4C2194] +74==0且 4DCC30 !=0时 为1,否则0
Var_9928 int 9928 文花帖DS中有特别意义,SLM之后固定放弃使用为0
Var_9929 int 9929 文花帖DS中有特别意义,SLM之后固定放弃使用为0
shotPower int 9930 自机当前火力
objHasAppearedNum int 9931 已经出现单位数量-1,包含main
F7 float 9932 可供随意使用的每个单位自身的局部变量
F6 float 9933 可供随意使用的每个单位自身的局部变量
F5 float 9934 可供随意使用的每个单位自身的局部变量
F4 float 9935 可供随意使用的每个单位自身的局部变量
BF3 float 9936 BOSS的局部变量
BF2 float 9937 BOSS的局部变量
BF1 float 9938 BOSS的局部变量
BF0 float 9939 BOSS的局部变量
BI3 int 9940 BOSS的局部变量
BI2 int 9941 BOSS的局部变量
BI1 int 9942 BOSS的局部变量
BI0 int 9943 BOSS的局部变量
DISPlayer float 9944 单位至自机的距离
PlayerID int 9945 机体序号,0=灵梦a
OBJNum int 9946 同屏单位数,由于隐藏着main和mapleenemy,所以始终比可见的单位数量多出来2个
ifSCB int 9947 判断上1符卡是否收取,收则是1
BNum int 9948 已丢的b的数量
MNum int 9949 已miss数
ifL int 9950 当难度为L时,为1。否则为0
ifH int 9951 当难度为H时,为1。否则为0
ifN int 9952 当难度为N时,为1。否则为0
ifE int 9953 当难度为E时,为1。否则为0
LIFE int 9954 单位当前血量
单位坐标和速度拥有最终,目前,和相对 三种参考 移动相关ins
AIM_relat float 9955 单位相对坐标至自机位置的方向
AIM_absol float 9956 单位绝对至自机位置的方向
Var_9957 int 9957 = 1
DIR int 9958 单位最终位移的方向,停下后变成0
DIFF int 9959 难度,0123分别为ENHL
RANK int 9960 Rank
Var_9961 int 9961 未知 (地址1120)
YBoss float 9962 当前bossy坐标,
XBoss float 9963 当前bossx坐标,
YPlayer2 float 9964 自机y坐标,与YPlayer完全相同
XPlayer2 float 9965 自机x坐标,与XPlayer完全相同
R_relat float 9966 单位相对曲线运动时的运动半径
R_absol float 9967 单位绝对曲线运动时的运动半径
V_relat float 9968 单位相对速度大小
V_absol float 9969 单位绝对速度大小
VDIR_relat float 9970 单位相对移动速度的方向
VDIR_absol float 9971 单位绝对移动速度的方向,
Y2_relat float 9972 单位相对坐标y 与Y_relat完全相同
X2_relat float 9973 单位相对坐标x 与X_relat完全相同
Y2_absol float 9974 单位绝对坐标的y值,与Y_absol完全相同
X2_absol float 9975 单位绝对坐标的x值,与X_absol完全相同
Y2 float 9976 单位最终坐标的y值,与Y完全相同
X2 float 9977 单位最终坐标的x值,与X完全相同
以下8个变量在创建子单位的时候,子单位将继承 并且某些特殊函数会收这写变量影响
F3 float 9978 每个单位自身的局部变量
F2 float 9979 每个单位自身的局部变量
F1 float 9980 每个单位自身的局部变量
F0 float 9981 每个单位自身的局部变量
I3 int 9982 每个单位自身的局部变量
I2 int 9983 每个单位自身的局部变量
I1 int 9984 每个单位自身的局部变量
I0 int 9985 每个单位自身的局部变量
ifNotEscape int 9986 判定是否全避时使用,若不为0则是全避,实际可能有其他含义,经测试并非boss血量
RanF2 float 9987.0f -1.0至1.0之间的随机浮点数
TIME int 9988 已经过的时间
AIM float 9989 单位最终坐标至自机位置的方向
YPlayer float 9990 自机y坐标
XPlayer float 9991 自机x坐标
Y_relat float 9992 单位相对坐标y
X_relat float 9993 单位相对坐标x
Y_absol float 9994 单位绝对坐标的y值
X_absol float 9995 单位绝对坐标的x值
Y float 9996 单位最终坐标的y值,
X float 9997 单位最终坐标的x值,
RanDEG float 9998 -π至π之间的随机浮点数
RanF float 9999 0至 1.0之间的随机浮点数
RanI int 10000 随机整数,范围非常大
609-612指令详解
mode表
注意此表是以hzc为准,如gzz中 mode8192的用法明显有改变
spddown() 1 弹幕生成时向前蹿一小段距离
eff(int a) 2 根据a设置弹雾
spdup(int a, float r, float s) 4 设置加速度为r,加速时间a,s为加速度的角度
rot(int a, int b, float r, float s) 8 设置切向加速度为r,s自转角速度,持续时间为a,b一般情况下不使用,当变换对象是曲线激光时,各个变换将会同时进行,此时b来设置b帧后执行.
jump(int a, int b, int c, int d, float r, float s) 16 a帧后停顿,之后方向+r,速度变为s,变化次数为b,变换的了类型为c,d用途未知的,具体变换类型在表格下方.
32(anything) 未使用,保留
reflect(int a, int b, float r)触壁反弹,a为反弹次数,b是一个6位的2进制数来设置可反弹墙壁,从右到左依次为上下左右,为1则为反弹+变速,为0则只变速,即如果b=001111则4面全可以反弹,b=000000则碰到四面就改变速度(变速后再碰到反弹墙则不变速),r为接触墙壁后的速度
reflect-wall(int a, int b, float r, float s, float m) 64 当b前第六位为1时,改变反弹墙位置,s,m分别代表左右,上下方的反弹壁与屏幕中心的距离。
not_clear(int a) 128 设置弹幕不可消弹时间为a帧,这段时间内无法消取本弹幕
not_out(int a, int b) 256 设置子弹可以在屏幕外持续的时间为a帧,.b作用未知
change(int a, int b) 512 改变弹幕形状为a,b
clear(int a) 1024 消除子弹,a为消弹效果,有0和1两种形式,
se(int a) 2048 播放音效a
through(int a, int b, float r) 4096 穿墙,参数用法和弹墙reflect相同.
shoot(int a, int b, int c, int d, float r, float s, float m, float n) 8192 在当前弹幕的位置新子弹,a是展开形式,即et_style的参数,跳跃至变换序号b,c为way数,d为层数,r为方向角度(若=-999.则保持原方向),s为角度差,m为速度(若=-999.则保持原速度)n为速度差
shoot_par(int a, int b, int c, int d, float r, float s, float m, float n) 16384 设置shoot产生的子弹的属性,ab是设置弹幕形状和颜色,c来设置是否消去原先的子弹,1为消,0则保留,d为消弹效果,其他参数暂时不明
32768(int a) 根据指令632的参数赋予弹幕不同效果.具体参见下方。
goto(int a) 65536 跳到变换a执行(用来循环)
131072(anything) 未使用,保留
262144(anything) 未使用,保留
spdadd2(int a, float r, float s) 524288 给子弹叠加一个与et_speed原弹速独立的速度,服从平行四边形定则。r角度,s速度,a作用未知,但是需要是正整数。
light(int a) 1048576 根据a改变弹幕为高亮弹幕,a=1则是亮弹幕,a=0则普通
spdadd(int a, float r, float s) 2097152 在a帧时间内,给予弹幕一个独立于原速度的速度,朝向为s,速度为(r-原速度),服从平行四边形原则(此函数只调用一次,因此使用-9989.0f来瞄准自机则会到时只有调用这个函数瞬间的自机位置有效,此后子弹将一直瞄准这个位置.若想实时瞄准自机,需让s=999.0f,-999999.0f则不改变角度,同时要让弹幕原本的速度为0.0f,不然因为速度叠加的关系,弹幕的角度和自机狙会有所差异)
size(int a, int b, float r, float s) 4194304 改变弹幕大小,a为变化时间,b为变化模式(b=0则是匀速变化)r为初始倍率,s为最终倍率.
8388608(???) GZZ二面终符发现,效果未知
obj() 16777216 由子弹生成使魔的时候使用,和et_obj配合,因需要使用参数变换编号,必须明确写出编号
layer(int a) 33554432 设置此子弹的图层为a。(图层大的在上面)
delay_shoot(int a) 67108864 子弹延时a帧后生成
shootls(int a, int b, int c, int d, float r, float s, float m, float n) 134217728 未使用,保留(在GZZ中,此mode和8192类似)
268435456(anything) 未使用,保留
536870912(anything) 未使用,保留
1073741824(anything) 未使用,保留
delay(int a) -2147483648 a帧后执行下一个变换
当mode是jump时根据c改变的形式不同 0方向为原方向+r,速度变为s 1.一直奇怪的自机相关的改变方式 2.自机相关+r的改变方式 3.方向变为-r,速度变为s 4.方向变为r,速度变为s 5.所有子弹随机在原方向±r范围内随机 6.所有子弹随机变向为±r范围内泛狙(未测试 7.方向不变,速度变为s。
当mode使用32768时,根据弹幕发出者的ins_632(int flag)的参数不同而不同. 若flag=0,则无任何效果 1.使单位本身可以对弹幕靠近产生反应.(hzc4a线2卡) 通过[-9978.0f]来决定受影响的范围 [-9985]会根据弹幕接近与否改变数值,弹幕接近时会变成1. 5.使弹幕对自机的接近或者离开产生反应(hzc6面5卡) 接近则跳转到变换编号5,离开则跳转到14.接触范围[-9980.0f]和[9981.0f]设置,此时一般a=1,a的具体功能尚不明
Flag表
神灵庙
序号 | 值 | 功能 |
---|---|---|
0 | 1 | 无被弹判定 |
1 | 2 | 无体术判定 |
2 | 4 | 当单位离开左右版面时不会立即消失 |
3 | 8 | 当单位离开上下版面时不会立即消失 |
4 | 16 | 隐藏boss血条并设为无敌 |
5 | 32 | 隐藏单位,并使单位不会被525及518消除 |
6 | 64 | boss最开始都有,迷 |
7 | 128 | 使单位不会被525()及518消除, |
8 | 256 | 保证此单位会被525以及518消除,无论拥有任何Flag |
9 | 512 | 设置是否可以擦弹,擦弹类似激光 |
10 | 1024 | 使单位不会被525及518消除,遇到对话时会死亡.曾用于XLC飞碟以及dld怨灵 |
11 | 2048 | 设置是否会被消弹效果秒杀 |
12 | 4096 | |
13 | 8192 | |
下列FLAG是由系统内部或者其他函数赋予和消除的 | ||
18 | 0x00040000 | 限制单位移动范围,由504赋予,505消除 |
19 | 0x00080000 | 引擎内部使用,标记单位使用被某个函数测验过 |
20 | 0x00100000 | 使单位移动方向左右翻转,由424赋予和消除 |
21 | 0x00200000 | 单位左右移动是贴图会不会变化,由306赋予,318消除}} |
22 | 0x00400000 | 引擎内部使用,非boss单位或隐藏单位此flag会被自动剔除 |
23 | 0x00800000 | 特殊单位,不会被525及518消除 |
24 | 0x01000000 | Boss模式单位,此flag要通过512赋予和消除 |
25 | 0x02000000 | 判定是否全避(存在时就是全避) |
26 | 0x04000000 | 要被消除的单位,由525以及518赋予 |
27 | 0x08000000 | 功能未知,影响300等函数 |
28 | 0x10000000 | 功能未知,由544赋予和消除 |
29 | 0x20000000 | 对BOMB免疫,由546赋予和消除 |
30 | 0x40000000 | 功能未知,由546消除 |
31 | 0x80000000 | 引擎内部使用 |
DZZ开始扩充了Flag,额外新增了4字节 | ||
32 | 0x00000001 | 功能未知,由549赋予和消除 |
辉针城
DEC | HEX | 功能 |
---|---|---|
1 | 0x0001 | 无被弹判定 |
2 | 0x0002 | 无体术判定 |
4 | 0x0004 | 当单位离开左右版面时不会立即消失 |
8 | 0x0008 | 当单位离开上下版面时不会立即消失 |
16 | 0x0010 | 隐藏boss血条并设为无敌 |
32 | 0x0020 | 隐藏单位,并使单位不会被525及518消除 |
64 | 0x0040 | boss最开始都有,迷 |
128 | 0x0080 | 使单位不会被525()及518消除, |
256 | 0x0100 | 保证此单位会被525以及518消除,无论拥有任何Flag |
512 | 0x0200 | 设置是否可以擦弹,擦弹类似激光 |
1024 | 0x0400 | 使单位不会被525及518消除,遇到对话时会死亡.曾用于XLC飞碟以及dld怨灵 |
2048 | 0x0800 | 设置是否会被消弹效果秒杀 |
4096 | 0x1000 | |
8192 | 0x2000 | |
下列FLAG是由系统内部或者其他函数赋予和消除的 | ||
17 | 0x00020000 | 限制单位移动范围,由504赋予,505消除 |
18 | 0x00040000 | 引擎内部使用,标记单位使用被某个函数测验过 |
19 | 0x00080000 | 使单位移动方向左右翻转,由424赋予和消除 |
20 | 0x00100000 | 单位左右移动是贴图会不会变化,由306赋予,318消除}} |
21 | 0x00200000 | 引擎内部使用,非boss单位或隐藏单位此flag会被自动剔除 |
22 | 0x00400000 | 特殊单位,不会被525及518消除 |
23 | 0x00800000 | Boss模式单位,此flag要通过512赋予和消除 |
24 | 0x01000000 | 判定是否全避(存在时就是全避) |
25 | 0x02000000 | 要被消除的单位,由525以及518赋予 |
26 | 0x04000000 | 功能未知,影响300等函数 |
27 | 0x08000000 | 功能未知,由544赋予和消除 |
28 | 0x10000000 | 对BOMB免疫,由546赋予和消除 |
29 | 0x20000000 | 功能未知,由546消除 |
30 | 0x40000000 | 引擎内部使用 |
31 | 0x80000000 | 功能未知,由549赋予和消除 |