欢迎来到THBWiki!
如果您是第一次来到这里,请点击右上角注册一个帐户
有任何意见、建议、求助、反馈都可以在
讨论板
提出
THBWiki以专业性和准确性为目标,如果你发现了任何确定的错误或疏漏,可在登录后直接进行改正
查看“脚本对照表/ECL”的源代码
←
脚本对照表/ECL
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
少女
您可以查看和复制此页面的源代码。
===系统和运算=== 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
。
分类
:
脚本对照表
导航菜单
个人工具
创建账号
登录
命名空间
页面
讨论
查看
阅读
源码
查看历史
更多
搜索
常用
首页
东方Project
上海爱丽丝幻乐团
ZUN
幻想乡
幻想乡年表
东方年表
东方同人规约
近期新闻
沙盒(建议使用)
讨论板
加入我们
官方作品
官方游戏
旧作
东方灵异传
东方封魔录
东方梦时空
东方幻想乡
东方怪绮谈
东方红魔乡
东方妖妖梦
东方永夜抄
东方花映塚
东方风神录
东方地灵殿
东方星莲船
东方神灵庙
东方辉针城
东方绀珠传
东方天空璋
东方鬼形兽
东方虹龙洞
东方兽王园
小数点射击游戏
东方文花帖
东方文花帖DS
妖精大战争
弹幕天邪鬼
秘封噩梦日记
弹幕狂们的黑市
黄昏边境合作游戏
东方萃梦想
东方绯想天
东方非想天则
东方心绮楼
东方深秘录
东方凭依华
东方刚欲异闻
官方音乐
原曲列表
非音乐CD音乐列表
音乐CD曲目列表
蓬莱人形
莲台野夜行
梦违科学世纪
卯酉东海道
大空魔术
未知之花 魅知之旅
鸟船遗迹
伊奘诺物质
燕石博物志
旧约酒馆
虹色的北斗七星
幺乐团的历史系列
幺乐团的历史 vol.1
幺乐团的历史 vol.2
幺乐团的历史 vol.3
幺乐团的历史 vol.4
幺乐团的历史 vol.5
格斗游戏OST
幻想曲拔萃
全人类的天乐录
核热造神非想天则
暗黑能乐集心绮楼
深秘乐曲集
深秘乐曲集·补
完全凭依唱片名录
贪欲之兽的音乐
商业出版品附带CD
官方书籍
东方香霖堂
东方三月精
第一季
月之妖精
第二季
第三季
第四季
东方文花帖
风之号外
东方紫香花
六十年不见的紫香花
东方儚月抄
漫画
小说
四格
东方茨歌仙
东方铃奈庵
东方醉蝶华
东方智灵奇传
东方求闻史纪
记忆幻想乡
东方求闻口授
魔理沙的魔法书
宇佐见的魔法书
东方外来韦编
东方文果真报
东方人妖名鉴
宵暗篇
常世篇
幻想Narrato Graph
官方角色
公式资料
附带文档
游戏对话
官方作品光盘信息
角色自称用词表
官作译名更改记录
原作物品列表
出典文献列表
其他ZUN参与的作品
西方Project
黄昏酒场
东方关联人物
游戏攻略
东方相关活动
从第二家开始的广播
东方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
日本語
中文