欢迎来到THBWiki!
如果您是第一次来到这里,请点击右上角注册一个帐户
有任何意见、建议、求助、反馈都可以在
讨论板
提出
THBWiki以专业性和准确性为目标,如果你发现了任何确定的错误或疏漏,可在登录后直接进行改正
查看“︁脚本对照表/ECL”︁的源代码
←
脚本对照表/ECL
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
少女
您必须确认您的电子邮件地址才能编辑页面。请通过
参数设置
设置并确认您的电子邮件地址。
您可以查看和复制此页面的源代码。
{{资料头部}} ===概述=== ECL(Enemy Control Language,敌人控制语言)是所有ZUN正作及部分STG小数点作内部使用的一种脚本语言。 ECL最初由[[pbg]]开发[[秋霜玉]]时发明,在[[红魔乡]]时期被ZUN引入正作并不断修改,目前在正作内主要负责控制关卡流程,弹幕样式,敌人行为等。 使用TouHou ToolKit([https://github.com/thpatch/thtk THTK])中的thecl工具可以将ECL字节码文件(即.ECL文件)反编译回ECL代码(但可能无法还原出原始代码),或者将ECL代码编译成可以被游戏执行的字节码文件。 需要注意的是,THTK所用的ECL和ZUN所用的ECL在语法上并不相同,例如ZUN的ECL语言中,可以使用<==运算符来根据难度对一个变量进行赋值,而THTK的ECL语言并没有类似的运算符(但仍然可以通过其它语法实现)。 要入门ECL,可以阅读[https://priw8.github.io/#b=ecl-tutorial/&p=1 priw8网站上的ECL教程(英文)],或阅读翻译后的[https://pan.baidu.com/s/1P040qCT1mpGU3cSgeoRQzw?pwd=nmnb ECL入门指南]。 以下为该语言相关的参考资料[[/后户之国|。]] ===分类=== ECL总大体来讲,可以分成四个世代。 [[/第一世代|第一世代]]ecl脚本红妖永花,文花帖。 此世代脚本资料甚少,且与后作差异巨大,国内暂时没有人破译这方面内容。 网上有关这部分的可靠参考请看[https://pytouhou.linkmauve.fr/doc/ PyTouhou的文档]与[https://en.touhouwiki.net/wiki/User:Mddass/Touhou_File_Format_Specification/ECL TouhouWiki的资料] [[/第二世代|第二世代]]ecl脚本对应风神录和地灵殿 [[/第三世代|第三世代]]ecl脚本对应星莲船,文花帖DS以及大战争 [[/第四世代|第四世代]]ecl脚本对应神灵庙,辉针城,天邪鬼,绀珠传,天空璋,鬼形兽,虹龙洞 二三四代开始ECL文件的格式基本被固定下来,各世代的差异只有instruction的数量以及编号的差异 ECL文件由各个sub(routine)和instruction构成,sub表示一个函数(子例程),instruction为一条指令 ECL的基本类型只有两种:整数(有符号)和浮点数(单精度)。字符串虽然在指令中有所出现但是无法参与运算。 第二世代之后ECL引入了sub符号表,使部分指令从传入sub号变为了传入sub名,并且也能在反编译时获得原始sub名。 ===基本语法=== var xxx 定义名称为xxx的局部变量(不区分类型) xxx可以以任意英文字母或下划线(_)开头,并在之后可以接任意数量的英文字母、下划线或数字 反编译的脚本中大部分变量都会变为此种形式 int xxx = value float xxx = value 同为定义变量,但是带有类型且可以指定初始值(value,可选) 好处在于可以无需在引用时添加$和%前缀来指示变量类型 反编译的脚本通常不会出现 0, 123, -123, 0xff, -0xff 整数常量 1.0,1.0f,3.14159265,3.14159265f 浮点数常量 $xxx 将名称为xxx的变量引用为整数 %xxx 将名称为xxx的变量引用为浮点数 _SS ins_11及ins_15等指令传递整数参数时使用 _ff ins_11及ins_15等指令传递浮点数参数时使用 _f(n) _Sf(n) 强制将n转换为浮点数 _S(n) _fS(n) 强制将n转换为整数 !EN 1; // 对应Easy和Normal难度 !H 2; // 对应Hard难度 !LO 3; // 对应Lunatic和Overdrive难度 !* 一种根据难度选择的switch,ENHLXO分别代表Easy,Normal,Hard,Lunatic,Extra和Overdrive。 以!开头的每行中,每个字母表示一个难度,例如N表示匹配Normal难度,要对多个难度进行匹配可以使用多个字母,例如LO表示匹配Lunatic和Overdrive难度 xxxx: xxxx为标识符,则此为标签,配合goto使用 +xxxx: xxxx为整数,表示该操作需要占用的时间,执行到此处时会把xxxx赋值给计时器,在计时器归零之后才会继续执行下一条指令 通常配合ins_0使用,作为除ins_23以外的另一种暂停方式 goto xxxx 跳转到名为xxxx的标签 goto xxxx @ n 跳转到名为xxxx的标签并将计时器设置为n,通常用于跳转后需要暂停n帧的场合 [-n] 表示读取距离栈顶n个值的内容,n为整数则读取一个整数,n为浮点数则读取一个浮点数 当n为特殊值时引擎会识别这些特殊值并当作特殊变量处理,见下方特殊变量表 func(arg1, arg2, ...) @func(arg1, arg2, ...) 调用函数,func为函数名,arg1和arg2为参数 在调用前加@表示无视函数是否在前面已经声明(例如调用在之后定义的函数) func(arg1, arg2, ...) async @func(arg1, arg2, ...) async 创建一个新的子线程并在线程中调用函数 func(arg1, arg2, ...) async n @func(arg1, arg2, ...) async n 创建一个ID为n的子线程并在线程中调用函数,n必须为整数 while(condition) { ... } 循环执行语句块中的内容直到condition不成立 反编译的脚本通常不会出现,且通常会变为类似如下的形式: goto xxxx_5678 @ 0; xxxx_1234: ... xxxx_5678: if (condition) goto xxxx_1234 @ 0; times(n) { ... } 循环执行语句块中的内容n次 反编译的脚本中通常不会出现,且通常会变为类似如下的形式: var A; $A = n; // n为循环次数且通常为整数 xxxx_1234: ... if ($A--) goto xxxx_1234 @ 0; switch(expr) { case n: ... case m: ... default: ... } switch语句,与C中的switch类似 将expr的值与case列表中的值逐个匹配,当符合时执行对应的语句 执行到case末尾后不会自动跳出switch而是会继续执行下面的所有语句,需要跳出时可以用break 当无法匹配任何case时会执行default中的语句 反编译的脚本中通常不会出现 sin(n) cos(n) sin运算和cos运算 rad(n) 将n转换为弧度制,n必须为编译期浮点常量 deg(n) 将n转换为角度制,n必须为编译期浮点常量 type funcName(param_type param, ...); 声明一个名为funcName的函数,函数返回值类型为type param_type param表示定义一个类型为param_type,名称为param的参数(可以在参数列表中出现多次,用逗号分隔) ...表示可变个数参数,必须出现在参数列表末尾 type funcName(param_type param, ...) { ... } 声明并定义一个名为funcName,函数返回值类型为type的函数,整数返回值会被存储到[-9985] inline type funcName(param_type param, ...) { ... } 声明并定义一个名为funcName,函数返回值类型为type的内联函数(即会在被调用处展开的函数) 截至THTK13,THECL对内联函数的支持存在一些问题,因此不建议使用 return value 从函数返回并将value作为返回值 当函数的返回类型为void时,value必须置空 #include "filename" 将文件名为filename的文件插入当前位置并作为源文件的一部分编译 #n 将当前源代码函数设置为n行(不影响编译,只影响消息输出),n为整数 ===Instruction表=== Instruction有 ins_xx(arg1,arg2,arg3.。。。) 表示,其中xx代表Instruction的编号,不同编号有不同的功能, 每个Instruction需要的参数也不同/ 下表展示了各种Instruction的功能 Instruction大致可以分为 5大类 即运算和系统,贴图和创建单位, 移动,单位属性,弹幕相关 每一做的运算和系统部分基本相同,其他部分请参考各世代的独立的页面 [[/第二世代|第二世代]] [[/第三世代|第三世代]] [[/第四世代|第四世代]] 以下部分,黑字为从风神录就开始存在 {{color:#000080|蓝色部分是地灵殿新增}} {{color:purple|紫色部分是星莲船新增}} {{color:#8B4513|棕色部分是文花帖DS新增}} {{color:#00ffff|青色部分是妖精大战争新增}} {{color:#228B22|绿色部分是神灵庙新增}} {{color:#CC33BB|浅紫色部分为天空璋之后作(考虑到作数较多不设其它颜色)}} 注:本表仅负责收录风神录后编号为200以前的指令,其余请到对应世代页面,对应世代通常也不会收录此处已有的指令。 第一世代由于差异过大,故独立收录。 ===系统和运算=== ins_0() 空指令,通常main开始会调用一次,常搭配计时器使用作为ins_23的替代 例如: +60: ins_0() 等同于: ins_23(60); 在[[ZUN/游戏的修罗场6|2un的采访]]中有所出现 ins_1() 清除当前单位,不会有任何奖励或死亡特效,以及死尸弹 也称大return ins_10() 返回到调用当前sub的地方,不清除当前单位,也称小return 对应的语句为return; ins_11(CString Subroutine, member1, member2, ...) 调用函数,Subroutine的值为函数名称,若有需要传递参数,必须要在整数前加上_SS,浮点数前加上_ff,在子线程结束后返回 对应的语句为@Subroutine(member1, member2, ...); ins_12(label,int b), 跳转到label并将计时器设为b 对应的语句为goto label @ b; ins_13(label,int b), 栈顶为0则跳转到label并将计时器设置为b(if语句使用) 对应的语句为 unless ([-1]) goto label @ b; ins_14(label,int b), 栈顶为1则跳转到label并将计时器设置为b(循环使用) 对应的语句为 if ([-1]) goto label @ b; ins_15(CString Subroutine, member1, member2, ...) 在当前单位创建一个ID为-1的子线程,并行运行 对应的语句为@Subroutine(member1, member2, ...) async; ins_16(CString Subroutine,int id) 在当前单位创建一个带id的子线程,并行运行 对应的语句为@Subroutine(member1, member2, ...) async id; ins_17(int id) 关闭ins_16创建的带指定id的子线程 {{color:red|ins_18(?)}} {{color:red|ins_19(?)}} {{color:red|ins_20(?)}} ins_21() 关闭所有子线程 ins_22(int id, CString name) zun调试用指令,作用疑为调试目标序号与id相等时跳转到名为name的函数,release版本无作用 {{color:#228B22|ins_23(int n)}} 神灵庙起为等待N帧(原ins_83) {{color:blue|ins_24(float n)}} ins_23的浮点数版本 {{color:gray|ins_30}} 空指令 {{color:gray|ins_31}} 空指令 ins_40(int size) 分配局部变量用,等价于Var ins_41() 销毁40分配的局部变量 ins_42(int n) 将整数压入栈,例如ins_42(1)等价于1; ins_43(int) 使栈顶内容出栈并将其写入变量,例如将整数5写入名称为C的变量: 5; ins_43($C); 等同于 5; $C = [-1]; 等同于 $C = 5; 以上三种写法效果一致 ins_44(float) 同ins_42,但是操作目标为浮点数 ins_45(float) 同ins_43,但是操作目标为浮点数 运算符号表 ins_50 开始至ins_72为各种基础运算,相同功能的一对中,第一个为整数版本,第二个为浮点数版本 {| class="wikitable" |- ! ins_ !! 作用 !! ins_ !! 作用 !! ins_ !! 作用 !! ins_ !! 作用 |- | 50 || + || 51 || + || 52 || - || 53 || - |- | 54 || * || 55 || * || 56 || / || 57 || / |- | 58 || % || - || - || 59 || == || 60 || == |- | 61 || != || 62 || != || 63 || < || 64 || < |- | 65 || <= || 66 || <= || 67 || > || 68 || > |- | 69 || >= || 70 || >= || 71 || ! || 72 || ! |} ins_73() 逻辑or(||) ins_74() 逻辑and(&&) ins_75() 按位xor(^) ins_76() 按位or(|) ins_77() 按位and(&) ins_78(int i) 循环i次后返回1,用于控制循环次数。 ins_79() sin ins_80() cos ins_81(float A,float B,float x,float y) A=ycosx ,B=ysinx ins_82(float A) +-2π的整数倍以至于A落入(-π,π)这个区间 {{color:#228b22|加减的次数有限制,最多34次(见th15 sub_403920),例如当a=2000时,ins_82(%a) 则a变为1786.3710而非1.94707}} {{color:#228b22|在地灵殿四面道中二非有使用这一技巧(弹幕先有序排列,随后变得无序) *发现:YukariM}} ins_83(int n) {{color:green|ins_83()}} 神灵庙前为等待n帧 神灵庙后为整数取负 ins_84() {{color:green|ins_84()}} 神灵庙前为整数取负 神灵庙后为浮点数取负 ins_85() {{color:green|ins_85(float &dest, float x, float y)}} 神灵庙前为浮点数取负 神灵庙后等同于dest = x * x + y * y;(将dest设为x²+y²) ins_86(float &dest, float x, float y) {{color:green|ins_86(float dest, float x, float y)}} 神灵庙前等同于dest = x * x + y * y;(将dest设为x²+y²) 神灵庙后等同于dest = sqrt(x * x + y * y);(将dest设为(x²+y²)的平方根,即两点间距离) ins_87(float &dest,float x1,float y1,float x2,float y2) 将dest设为点(x1,y1)至点(x2,y2)的方向 {{color:#000080|ins_88()}} 对栈顶的数进行平方根运算 {{color:#000080|ins_89(float &dest, float x float y)}} 将dest设为y - x ins_90(float &A,float &B,float x,float y,float z) 将点(x,y)旋转z度之后获得坐标(x1,y1);(A,B)=(x1,y1) {{color:#8B4513|ins_91(int A,float %B,int T int d,float a,float b)}} {{color:#228b22|执行代码之后的T帧内,将%B由a变化到b(也可能是根据b变化),缓动曲线的类型为d,A为slot,一个变量占用一个slot,每个单位有0-7的八个可用slot}} {{color:#228b22|以下是所有类型的描述,其中8和17与ins_92有关,函数表达式yn(a,b,t)中t∈[0,1],为该变换已经进行的时刻与总时间的比;此外所有函数均为拟合所得,不保证一定准确}} 注意:d=22及以后的凹凸性是对a<b时描述的,a>b时凹凸性相反 {| class="wikitable mw-collapsible mw-collapsed" |- ! d !! description !! function |- | 0 || 线性变换 || y0=(b-a)*t+a |- | 1 || 二次函数,变化率增大 || y1=(b-a)*t²+a |- | 2 || 三次函数,变化率增大 || y2=(b-a)*t³+a |- | 3 || 四次函数,变化率增大 || y3=(b-a)*t<sup>4</sup>+a |- | 4 || 二次函数,变化率减小 || y4=(a-b)*(1-t²)+b |- | 5 || 三次函数,变化率减小 || y5=(a-b)*(1-t³)+b |- | 6 || 四次函数,变化率减小 || y6=(a-b)*(1-t<sup>4</sup>)+b |- | 7 || 一次函数 || y7=bx+a |- | 8 || 特定贝塞尔曲线 || 见下方ins_92 |- | 9 || 双二次函数(变化率先增大后减小) || y9=y1(a,(a+b)/2,2*t)(其中t<0.5);y9=y4((a+b)/2,b,2*t-1)(其中t>=0.5) |- | 10 || 双三次函数(变化率先增大后减小) || y10=y2(a,(a+b)/2,2*t)(其中t<0.5);y10=y5((a+b)/2,b,2*t-1)(其中t>=0.5) |- | 11 || 双四次函数(变化率先增大后减小) || y11=y3(a,(a+b)/2,2*t)(其中t<0.5);y11=y6((a+b)/2,b,2*t-1)(其中t>=0.5) |- | 12 || 双二次函数(变化率先增大后减小) || y12=y4(a,(a+b)/2,2*t)(其中t<0.5);y12=y1((a+b)/2,b,2*t-1)(其中t>=0.5) |- | 13 || 双三次函数(变化率先增大后减小) || y13=y5(a,(a+b)/2,2*t)(其中t<0.5);y13=y2((a+b)/2,b,2*t-1)(其中t>=0.5) |- | 14 || 双四次函数(变化率先增大后减小) || y14=y6(a,(a+b)/2,2*t)(其中t<0.5);y14=y3((a+b)/2,b,2*t-1)(其中t>=0.5) |- | 15 || 常函数 || y15=a |- | 16 || 常函数 || y16=b |- | 17 || 特定二次函数 || y=bt²/2+a |- | 18 || 三角函数,变化率减小 || sin(t*π/2)*(b-a)+a; |- | 19 || 三角函数,变化率增大 || (1-cos(t*π/2))*(b-a)+a; |- | 20 || 双三角函数(变化率先减小后增大) || y20=y18(a,(a+b)/2,2*t)(其中t<0.5);y20=y19((a+b)/2,b,2*t-1)(其中t>=0.5) |- | 21 || 双三角函数(变化率先增大后减小) || y21=y19(a,(a+b)/2,2*t)(其中t<0.5);y20=y18((a+b)/2,b,2*t-1)(其中t>=0.5) |- | 22 || 二次凹函数(插值最低-1/8) || y22=(2t²-t)*(b-a)+a |- | 23 || 二次凹函数(插值最低-9/40) || y23=(2.5t²-1.5t)*(b-a)+a |- | 24 || 二次凹函数(插值最低-25/56) || y24=(3.5t²-2.5t)*(b-a)+a |- | 25 || 二次凹函数(插值最低-169/272) || y25=(4.25t²-3.25t)*(b-a)+a |- | 26 || 二次凹函数(插值最低-289/336) || y26=(5.25t²-4.25t)*(b-a)+a |- | 27 || 二次凸函数(插值最高9/8) || y27=(-2t²+3t)*(b-a)+a |- | 28 || 二次凸函数(插值最高49/40) || y28=(-2.5t²+3.5t)*(b-a)+a |- | 29 || 二次凸函数(插值最高81/56) || y29=(-3.5t²+4.5t)*(b-a)+a |- | 30 || 二次凸函数(插值最高441/272) || y30=(-4.25t²+5.25t)*(b-a)+a |- | 31 || 二次凸函数(插值最高625/336) || y31=(-5.25t²+6.25t)*(b-a)+a |} {{color:#8B4513|ins_92(int A,float &B,int T int d,float a,float b,float m,float n)}} 自定义缓动曲线 多了两个参数m,n,除了「mode=8需要m,n;mode17需要n」外与ins_91相同 当mode=8时,记曲线中点的坐标为(t,y),(其中s∈[0,1]为经过的时间/总时间,y为%B在该时刻的值),则该曲线为一个贝塞尔曲线,起点p0(0,a),终点p3(1,b),两锚点为p1(1/3,a+m/3),p2(2/3,b-n/3) 当mode=17时,Δ²y=b,Δy|(t=0)=n,y|(t=0)=a {{color:#228b22|ins_93(float &x,float &y,float r1,float r2)}} (float &A,float &B,float x,float y) 生成(A,B)为从半径为y的圆边上开始生成的16条顺时针旋转的触手内均匀分布的随机点,x大于y则向外生长,x小于y则向内生长,x过小(如=0.0f)可能长过圆心 上面那个不要看,看下面这个解释 记R=rnd(-1,1)*(r2-r1)+r1 ,则返回x=cos(rnd(-pi,pi))*R;y=sin(rnd(-pi,pi))*R 也就是对于一个环面,环面的中位圆的半径为r1,最大半径为r2,在这个环内内随机获取点(x,y)返回 备注:产生触手的原因是2un的伪随机数(zundom)特性 原理如下:zundom函数中两个相邻随机数之间具有很强的相关性;具体来说,对于两个定义域为[0,1]的相邻随机数r[n]和r[n+1],有 r[n+1]≈-r[n]/16.05 - floor(-r[n]/16.05) 因此如果先取随机角度,则距离也就大约确定,就产生了"触手" 可以通过先去距离再取角度(此时距离随机性减少),或在两次取随机值的中间加入一个无用随机量更新随机数等方法增强随机性(但是ins_93的代码是确定的,没法这么做) {{color:#CC33BB|ins_94(float& resX,float& resY,float phi,float radiusY,float angle,float aspectRatio)}} 虹龙洞新增 构造一个x轴上轴半长为a=radiusY*aspectRatio,y轴的半轴长为b=radiusY的椭圆}} 在其离心角上的角度theta=phi-angle处选择一点(即x=a*cos(theta),y=b*sin(theta))}} 随后将整个椭圆旋转angle的角度}} 最终得到的x,y输出为resX,resY}} '''离心角选择的是(phi-angle)这点就非常的神奇,可能2un想要的是在最终变换出的(旋转了angle度的)椭圆与直线y=tan(phi)x的交点,但是除非aspectRatio=1,不然这点和2un实际选择的点并不重合''' ===音效=== 本表是ECL脚本中播放音效相关函数的参数与实际音效的对应关系表。 星莲船 {| class="wikitable" |- ! 编号!! 音效名 !! 编号 !! 音效名 |- | 0 || {{音乐室音频文件|se_plst00.mp3}} || 1 || {{音乐室音频文件|se_plst00.mp3}} |- | 2 || {{音乐室音频文件|se_pldead00.mp3}} || 3 || {{音乐室音频文件|se_enep00.mp3}} |- | 4 || {{音乐室音频文件|se_enep00.mp3}} || 5 || {{音乐室音频文件|se_enep01.mp3}} |- | 6 || {{音乐室音频文件|se_enep02.mp3}} || 7 || {{音乐室音频文件|se_ok00.mp3}} |- | 8 || {{音乐室音频文件|se_ok00.mp3}}|| 9 || {{音乐室音频文件|se_cancel00.mp3}} |- | 10 || {{音乐室音频文件|se_select00.mp3}} || 11 || {{音乐室音频文件|se_timeout.mp3}} |- | 12 || {{音乐室音频文件|se_timeout2.mp3}} || 13 || {{音乐室音频文件|se_powerup.mp3}} |- | 14 || {{音乐室音频文件|se_pause.mp3}} || 15 || {{音乐室音频文件|se_cardget.mp3}} |- | 16 || {{音乐室音频文件|se_option.mp3}} || 17 || {{音乐室音频文件|se_invalid.mp3}} |- | 18 || {{音乐室音频文件|se_extend.mp3}} || 19 || {{音乐室音频文件|se_lazer00.mp3}} |- | 20 || {{音乐室音频文件|se_lazer01.mp3}} || 21 || {{音乐室音频文件|se_lazer02.mp3}} |- | 22 || {{音乐室音频文件|se_plst00.mp3}} || 23|| {{音乐室音频文件|se_tan01.mp3}} |- | 24 || {{音乐室音频文件|se_tan02.mp3}} || 25 || {{音乐室音频文件|se_tan00.mp3}} |- | 26 || {{音乐室音频文件|se_tan01.mp3}} || 27 || {{音乐室音频文件|se_tan02.mp3}} |- | 28 || {{音乐室音频文件|se_tan00.mp3}} || 29 || {{音乐室音频文件|se_power0.mp3}} |- | 30 || {{音乐室音频文件|se_power1.mp3}} || 31 || {{音乐室音频文件|se_ch00.mp3}} |- | 32 || {{音乐室音频文件|se_ch01.mp3}} || 33 || {{音乐室音频文件|se_gun00.mp3}} |- | 34 || {{音乐室音频文件|se_cat00.mp3}} || 35 || {{音乐室音频文件|se_damage00.mp3}} |- | 36 || {{音乐室音频文件|se_damage01.mp3}} || 37 || {{音乐室音频文件|se_nodamage.mp3}} |- | 38 || {{音乐室音频文件|se_item00.mp3}} || 39 || {{音乐室音频文件|se_item01.mp3}} |- | 40 || {{音乐室音频文件|se_kira00.mp3}} || 41 || {{音乐室音频文件|se_kira01.mp3}} |- | 42 || {{音乐室音频文件|se_kira02.mp3}} || 43 || {{音乐室音频文件|se_kira00.mp3}} |- | 44 || {{音乐室音频文件|se_graze.mp3}} || 45 || {{音乐室音频文件|se_graze.mp3}} |- | 46 || {{音乐室音频文件|se_slash.mp3}} || 47 || {{音乐室音频文件|se_slash.mp3}} |- | 48 || {{音乐室音频文件|se_cardget.mp3}} || 49 || {{音乐室音频文件|se_bonus.mp3}} |- | 50 || {{音乐室音频文件|se_bonus2.mp3}} || 51 || {{音乐室音频文件|se_nep00.mp3}} |- | 52 || {{音乐室音频文件|se_timeout.mp3}} || 53 || {{音乐室音频文件|se_timeout2.mp3}} |- | 54 || {{音乐室音频文件|se_ufoalert.mp3}}|| 55 || {{音乐室音频文件|se_piyo.mp3}} |- | 56 || {{音乐室音频文件|se_boon00.mp3}} || 57 || {{音乐室音频文件|se_boon01.mp3}} |- | 58 || ???? || |} 虹龙洞 {|class = "wikitable |- ! 编号!! 音效名 !! 编号 !! 音效名 |- | 0 || {{音乐室音频文件|se_plst00.mp3}} || 1 || {{音乐室音频文件|se_enep00.mp3}} |- | 2 || {{音乐室音频文件|se_pldead00.mp3}} || 3 || {{音乐室音频文件|se_power0.mp3}} |- | 4 || {{音乐室音频文件|se_power1.mp3}} || 5 || {{音乐室音频文件|se_tan00.mp3}} |- | 6 || {{音乐室音频文件|se_tan01.mp3}} || 7 || {{音乐室音频文件|se_tan02.mp3}} |- | 8 || {{音乐室音频文件|se_ok00.mp3}} || 9 || {{音乐室音频文件|se_cancel00.mp3}} |- | 10 || {{音乐室音频文件|se_select00.mp3}} || 11 || {{音乐室音频文件|se_gun00.mp3}} |- | 12 || {{音乐室音频文件|se_cat00.mp3}} || 13 || {{音乐室音频文件|se_lazer00.mp3}} |- | 14 || {{音乐室音频文件|se_lazer01.mp3}} || 15 || {{音乐室音频文件|se_enep01.mp3}} |- | 16 || {{音乐室音频文件|se_damage00.mp3}} || 17 || {{音乐室音频文件|se_item00.mp3}} |- | 18 || {{音乐室音频文件|se_kira00.mp3}} || 19 || {{音乐室音频文件|se_kira01.mp3}} |- | 20 || {{音乐室音频文件|se_kira02.mp3}} || 21 || {{音乐室音频文件|se_timeout.mp3}} |- | 22 || {{音乐室音频文件|se_graze.mp3}} || 23 || {{音乐室音频文件|se_powerup.mp3}} |- | 24 || {{音乐室音频文件|se_pause.mp3}} || 25 || {{音乐室音频文件|se_cardget.mp3}} |- | 26 || {{音乐室音频文件|se_damage01.mp3}} || 27 || {{音乐室音频文件|se_timeout2.mp3}} |- | 28 || {{音乐室音频文件|se_invalid.mp3}} || 29 || {{音乐室音频文件|se_slash.mp3}} |- | 30 || {{音乐室音频文件|se_ch00.mp3}} || 31 || {{音乐室音频文件|se_ch01.mp3}} |- | 32 || {{音乐室音频文件|se_extend.mp3}} || 33 || {{音乐室音频文件|se_cardget.mp3}} |- | 34 || {{音乐室音频文件|se_nep00.mp3}} || 35 || {{音乐室音频文件|se_bonus.mp3}} |- | 36 || {{音乐室音频文件|se_bonus2.mp3}} || 37 || {{音乐室音频文件|se_enep02.mp3}} |- | 38 || {{音乐室音频文件|se_lazer02.mp3}} || 39 || {{音乐室音频文件|se_nodamage.mp3}} |- | 40 || {{音乐室音频文件|se_boon00.mp3}} || 41 || {{音乐室音频文件|se_don00.mp3}} |- | 42 || {{音乐室音频文件|se_boon01.mp3}} || 43 || {{音乐室音频文件|se_ch02.mp3}} |- | 44 || {{音乐室音频文件|se_ch03.mp3}} || 45 || {{音乐室音频文件|se_extend2.mp3}} |- | 46 || {{音乐室音频文件|se_pin00.mp3}} || 47 || {{音乐室音频文件|se_pin01.mp3}} |- | 48 || {{音乐室音频文件|se_lgods1.mp3}} || 49 || {{音乐室音频文件|se_lgods2.mp3}} |- | 50 || {{音乐室音频文件|se_lgods3.mp3}} || 51 || {{音乐室音频文件|se_lgods4.mp3}} |- | 52 || {{音乐室音频文件|se_lgodsget.mp3}} || 53 || {{音乐室音频文件|se_msl.mp3}} |- | 54 || {{音乐室音频文件|se_msl2.mp3}} || 55 || {{音乐室音频文件|se_pldead01.mp3}} |- | 56 || {{音乐室音频文件|se_heal.mp3}} || 57 || {{音乐室音频文件|se_msl3.mp3}} |- | 58 || {{音乐室音频文件|se_fault.mp3}} || 59 || {{音乐室音频文件|se_noise.mp3}} |- | 60 || {{音乐室音频文件|se_etbreak.mp3}} || 61 || {{音乐室音频文件|se_tan03.mp3}} |- | 62 || {{音乐室音频文件|se_wolf.mp3}} || 63 || {{音乐室音频文件|se_bonus4.mp3}} |- | 64 || {{音乐室音频文件|se_big.mp3}} || 65 || {{音乐室音频文件|se_item1.mp3}} |- | 66 || {{音乐室音频文件|se_release.mp3}} || 67 || {{音乐室音频文件|se_changeitem.mp3}} |- | 68 || {{音乐室音频文件|se_trophy.mp3}} || 69 || {{音乐室音频文件|se_warpl.mp3}} |- | 70 || {{音乐室音频文件|se_warpr.mp3}} || 71 || {{音乐室音频文件|se_notice.mp3}} |} ===特殊变量表=== {{color:#CC33BB|[-9880] (jsj)当前所装备的主异变石的颜色}} {{color:#CC33BB|[-9898] (hld+)舞台上的弹幕数量}} {{color:#CC33BB|[-9899] (gxs+)如果在成就模式中打开游戏章节则设1,否则设-1}} {{color:#CC33BB|[-9900] (gxs)是否在hyper模式}} {{color:#CC33BB|[-9901] (gxs)舞台上的动物灵数}} {{color:#CC33BB|[-9902] (gxs+)前20帧内的擦弹}} {{color:#CC33BB|[-9903] (tkz,gxs) tkz中为副机选择,0为 春,1为夏,以此类推;gxs中也为副机}} {{color:#228B22|[-9904] 绀珠传中为miss次数,与9949不同的是该计数不会清零(其他作品暂未测试)}} {{color:#228B22|[-9905] (gzz+)chapter数,由ins_524控制 }} {{color:#228B22|[-9906] (gzz+)当单位反转时 (例如使用ins_304进行单位生成时) 为1,否则为0 }} {{color:#228B22|[-9907] 未知全局变量 SLM(4BE7D4) HZC中代表符卡练习模式中的符卡序号 }} {{color:#228B22|[-9908] 同屏单位数单数不包含还有单位flag.1,16,32的单位 }} {{color:#00ffff|[-9909] 单位未知参数 SLM(11E8) DZZ 11c4}} {{color:#8B4513|[-9910] boss未知参数,同9969 SLM(128c) }} {{color:#8B4513|[-9911.0f] boss最终位移的方向,停下后变成0 }} {{color:#8B4513|[-9912] 文花帖DS中有特别意义,SLM之后固定放弃使用为0}} {{color:#8B4513|[-9913] 文花帖DS中为已拍照张数,SLM之后固定放弃使用为0}} {{color:#8B4513|[-9914] (SLM以后)该单位的编号(主要在8系ins中使用)}} {{color:#8B4513|[-9915.0f] 可供随意使用的全局变量 }} {{color:#8B4513|[-9916.0f] 可供随意使用的全局变量 }} {{color:#8B4513|[-9917.0f] 可供随意使用的全局变量 }} {{color:#8B4513|[-9918.0f] 可供随意使用的全局变量 }} {{color:#8B4513|[-9919.0f] 可供随意使用的全局变量 }} {{color:#8B4513|[-9920.0f] 可供随意使用的全局变量 }} {{color:#8B4513|[-9921.0f] 可供随意使用的全局变量 }} {{color:#8B4513|[-9922.0f] 可供随意使用的全局变量 }} {{color:#8B4513|[-9923] 可供随意使用的全局变量 }} {{color:#8B4513|[-9924] 可供随意使用的全局变量 }} {{color:#8B4513|[-9925] 可供随意使用的全局变量 }} {{color:#8B4513|[-9926] 可供随意使用的全局变量 }} {{color:#8B4513|[-9927] SLM:[4C2194] +74==0且 4DCC30 !=0时 为1,否则0}} {{color:#8B4513|[-9928] 文花帖DS中有特别意义,SLM之后固定放弃使用为0}} {{color:#8B4513|[-9929] 文花帖DS中有特别意义,SLM之后固定放弃使用为0}} {{color:purple|[-9930] 自机当前火力}} {{color:purple|[-9931] 已经出现单位数量-1,包含main}} {{color:#000080|[-9932.0f] 可供随意使用的每个单位自身的局部变量 }} {{color:#000080|[-9933.0f] 可供随意使用的每个单位自身的局部变量 }} {{color:#000080|[-9934.0f] 可供随意使用的每个单位自身的局部变量 }} {{color:#000080|[-9935.0f] 可供随意使用的每个单位自身的局部变量 }} {{color:#000080|[-9936.0f] BOSS的局部变量 }} {{color:#000080|[-9937.0f] BOSS的局部变量 }} {{color:#000080|[-9938.0f] BOSS的局部变量 }} {{color:#000080|[-9939.0f] BOSS的局部变量 }} {{color:#000080|[-9940] BOSS的局部变量 }} {{color:#000080|[-9941] BOSS的局部变量 }} {{color:#000080|[-9942] BOSS的局部变量 }} {{color:#000080|[-9943] BOSS的局部变量 }} {{color:#000080|[-9944.0f] =单位至自机的距离}} {{color:#000080|[-9945] = 机体序号,0=灵梦a}} {{color:#000080|[-9946] = 同屏单位数,由于隐藏着main和mapleenemy,所以始终比可见的单位数量多出来2个}} {{color:#000080|[-9947] = 判断上1符卡是否收取,收则是1}} {{color:#000080|[-9948] = 已丢的b的数量}} {{color:#000080|[-9949] = 已miss数,与9904不同的是每个章节结束时该值会重置为0}} [-9950] = 当难度为L时,为1。否则为0 [-9951] = 当难度为H时,为1。否则为0 [-9952] = 当难度为N时,为1。否则为0 [-9953] = 当难度为E时,为1。否则为0 [-9954] =单位当前血量 单位坐标和速度拥有最终,目前,和相对 三种参考 移动相关ins [-9955.0f] =单位相对坐标至自机位置的方向 [-9956.0f] =单位绝对至自机位置的方向 [-9957] = 1 [-9958.0f] =单位最终位移的方向,停下后变成0 [-9959] 难度,0123分别为ENHL [-9960]Rank [-9961]未知 (地址1120) [-9962.0f]当前bossy坐标, [-9963.0f] 当前bossx坐标, [-9964.0f] 自机y坐标,与9990完全相同 [-9965.0f] 自机x坐标,与9991完全相同 [-9966.0f] 单位相对曲线运动时的运动半径 [-9967.0f] 单位绝对曲线运动时的运动半径 [-9968.0f] 单位相对速度大小 [-9969.0f] 单位绝对速度大小 [-9970.0f] 单位相对移动速度的方向 [-9971.0f] 单位绝对移动速度的方向, [-9972.0f]=单位相对坐标y 与9992完全相同 [-9973.0f]=单位相对坐标x 与9993完全相同 [-9974.0f]=单位绝对坐标的y值,与9994完全相同 [-9975.0f]=单位绝对坐标的x值,与9995完全相同 [-9976.0f]=单位最终坐标的y值,与9996完全相同 [-9977.0f]=单位最终坐标的x值,与9997完全相同 以下8个变量在创建子单位的时候,子单位将继承 并且某些特殊函数会收这写变量影响 [-9978.0f] 每个单位自身的局部变量 [-9979.0f] 每个单位自身的局部变量 [-9980.0f] 每个单位自身的局部变量 [-9981.0f] 每个单位自身的局部变量 [-9982] 每个单位自身的局部变量 [-9983] 每个单位自身的局部变量 [-9984] 每个单位自身的局部变量 [-9985] 每个单位自身的局部变量 [-9986] 判定是否全避时使用,若不为0则是全避,实际可能有其他含义,经测试并非boss血量 [-9987.0f]=-1.0至1.0之间的随机浮点数 [-9988] 已经过的时间 [-9989.0f]=单位最终坐标至自机位置的方向 [-9990.0f]= 自机y坐标 [-9991.0f]= 自机x坐标 [-9992.0f]=单位相对坐标y [-9993.0f]=单位相对坐标x [-9994.0f]=单位绝对坐标的y值 [-9995.0f]=单位绝对坐标的x值 [-9996.0f]=单位最终坐标的y值, [-9997.0f]=单位最终坐标的x值, [-9998.0f]=-π至π之间的随机浮点数 [-9999.0f]=0至 1.0之间的随机浮点数 [-10000]=随机整数,范围非常大
该页面使用的模板:
脚本对照表
(
查看源代码
)
模板:头部设定
(
查看源代码
)(受保护)
模板:词条头部
(
查看源代码
)(受保护)
模板:资料头部
(
查看源代码
)(受保护)
模板:音乐室音频文件
(
查看源代码
)
返回
脚本对照表/ECL
。
分类
:
脚本对照表
导航菜单
个人工具
创建账号
登录
命名空间
页面
讨论
查看
阅读
源码
查看历史
更多
搜索
常用
首页
东方Project
上海爱丽丝幻乐团
ZUN
世界观
幻想乡年表
东方年表
东方同人规约
近期新闻
沙盒(建议使用)
讨论板
加入我们
官方作品
官方游戏
旧作
东方灵异传
东方封魔录
东方梦时空
东方幻想乡
东方怪绮谈
东方红魔乡
东方妖妖梦
东方永夜抄
东方花映塚
东方风神录
东方地灵殿
东方星莲船
东方神灵庙
东方辉针城
东方绀珠传
东方天空璋
东方鬼形兽
东方虹龙洞
东方兽王园
东方锦上京
小数点射击游戏
东方文花帖
东方文花帖DS
妖精大战争
弹幕天邪鬼
秘封噩梦日记
弹幕狂们的黑市
黄昏边境合作游戏
东方萃梦想
东方绯想天
东方非想天则
东方心绮楼
东方深秘录
东方凭依华
东方刚欲异闻
官方音乐
原曲列表
非音乐CD音乐列表
音乐CD曲目列表
蓬莱人形
莲台野夜行
梦违科学世纪
卯酉东海道
大空魔术
未知之花 魅知之旅
鸟船遗迹
伊奘诺物质
燕石博物志
旧约酒馆
虹色的北斗七星
七夕坂梦幻能
幺乐团的历史系列
幺乐团的历史 vol.1
幺乐团的历史 vol.2
幺乐团的历史 vol.3
幺乐团的历史 vol.4
幺乐团的历史 vol.5
黄昏游戏OST
幻想曲拔萃
全人类的天乐录
核热造神非想天则
暗黑能乐集心绮楼
深秘乐曲集
深秘乐曲集·补
完全凭依唱片名录
贪欲之兽的音乐
官方出版物附带CD
官方书籍
东方香霖堂
东方儚月抄
漫画
小说
四格
东方三月精
第一季
月之妖精
第二季
第三季
第四季
东方茨歌仙
东方铃奈庵
东方醉蝶华
东方智灵奇传
东方求闻史纪
记忆幻想乡
东方求闻口授
东方文花帖
风之号外
东方文果真报
魔理沙的魔法书
宇佐见的魔法书
东方幻存神签
东方外来韦编
东方人妖名鉴
宵暗篇
常世篇
东方紫香花
六十年不见的紫香花
幻想Narrato Graph
官方角色
公式资料
附带文档
游戏对话
官方作品光盘信息
角色自称用词表
官作译名更改记录
原作物品列表
出典文献列表
ZUN相关
西方Project
Torte Le Magic
黄昏酒场
东方关联人物
游戏攻略
东方相关活动
从第二家开始的广播
东方STATION
数码游戏博览会
PoriPori☆Club
niconico超会议
斗会议
niconico原创游戏祭
枯萎Radio
GDGD
其他相关项目
东方我乐多丛志
东方四方山新闻
Play,Doujin!
东方电书流通
东方音乐流通
二次创作与活动
展会及活动导航
Comic Market
博丽神社例大祭
博丽神社例大祭SP
博丽神社秋季例大祭
博丽神社例大祭in台湾
海外博丽神社例大祭
博丽神社歌谣祭
博丽神社崇敬会相关活动
COMICUP
魅知幻想博览会
上海THONLY
东方Only活动
东方红楼梦
角色Only活动
作品Only活动
地区Only活动
其他地区举办的展会
其他展会
M3
COMIC1
展会作品列表
展会作品数量
展会同人志列表
展会专辑列表
展会软件列表
展会视频列表
商业二次创作
出版物
电脑游戏
东方月神夜
家用机游戏
Play,Doujin
手机游戏
东方大炮弹
东方LostWord
东方Dungeon Dive
东方弹幕神乐
东方幻想Eclipse
同人二次创作
同人社团列表
同人志分类
同人专辑分类
同人专辑搜索
原曲作品数量
同人软件列表
Steam游戏列表
同人角色列表
同人视频列表
其他形式同人
同人文章列表
同人画师列表
同人封面角色
东方相关周边
PVCFigure
GarageKit
小型物品
其他形式周边
MUGEN
THB相关项目
THB策划
中文东方人气投票
东深见讲坛
幻想乡柱状地图
THB衍生
同人专辑搜索
原曲认知测验
东方相关QQ群组列表
THB媒体
微博
Bilibili
直播间
GitHub
THB协力
博丽神主ZUN微博
东方我乐多丛志
MineCraft幻想乡
京都幻想剧团
幻奏盛宴
功能与帮助
最近更改
随机浏览
编写规范
收录方针
命名规范
同人社团
同人音乐
封面图片
二次设定
编辑帮助
基础帮助
常用模板
进阶代码
函数用法
编写翻译表
语义维基
样式类用法
颜色列表
工具
链入页面
相关更改
特殊页面
页面信息
其他
联系管理员
关于THBWiki
捐款支持
语言
English
italiano
日本語
中文