欢迎来到THBWiki!
如果您是第一次来到这里,请点击右上角注册一个帐户
有任何意见、建议、求助、反馈都可以在
讨论板
提出
THBWiki以专业性和准确性为目标,如果你发现了任何确定的错误或疏漏,可在登录后直接进行改正
查看“︁脚本对照表/MUAECL/MUAECL基本规范”︁的源代码
←
脚本对照表/MUAECL/MUAECL基本规范
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
少女
您必须确认您的电子邮件地址才能编辑页面。请通过
参数设置
设置并确认您的电子邮件地址。
您可以查看和复制此页面的源代码。
==MUAecl2.0基本句法结构== ===声明=== 对于一个包含子ecl或者调用anm文件的ecl,开头要声明包含关系。 #anm<enemy.anm> #anm<st01enm.anm> #anm "st01menm.anm" #ecl<default.ecl> #ecl "st01bs.ecl" #ecl<st01mbs.ecl> 声明之后,即表明这个ecl文件可以直接调用子ecl文件内的子程序,以及可以使用指令加载anm文件里的贴图。 ===宏=== 类似C++。例如: #define Add(a, b) a = a + (b) ===子程序=== 一个ecl文件由多个sub组成。 sub MainSub00(int A, float B) { //此处为函数体,下述 } 括号里为函数输入参数。有int:整型和float:浮点型两种。 变量名遵循规则下述。 ===顺序结构=== 顺序结构语句以分号结尾。中间可以换行或适当加空格。可以两句话放在同一行里,只要用分号隔开。 ====声明变量==== int Int_1, A; float AB_2, THis3, rotateAngle; 此为声明变量的语句。 声明的变量名必须以字母开始,中间只可包含字母、数字、下划线。变量名不可为程序关键字或保留关键字,也不可为函数表中有的任何函数名,或变量表中有的任何变量名。 变量名对大小写敏感。 变量声明没有作用域一说。在任何位置声明都会被提前。 程序关键字: {| class="wikitable" |- | ecli || anim || sub || int || float |- | if || else || elsif || for || while |- | Jmp || Jz || Jnz || MUA_* || STACK_* |} 注意不可使用以MUA_,STACK_开头的所有变量名。 保留关键字: {| class="wikitable" |- | var || goto || do || loop || break |- | continue || this || - || - || - |} 另外,同一个变量名不可重复声明成整型和浮点型。 可以使用 float r=0; 来赋初值。 使用 int max=19:32:40:48; 来分难度赋初值。 可以混杂使用,例如 float r=1: 2: 3: 4, r1 = 0, r2; ====赋值语句==== 。。。还用说么) A=3*B-2; 左端为变量,右端为表达式。可以使用+=, -=, *=, /=。可以使用冒号分难度赋值。 +=系列赋值中不要使用冒号。 =====表达式===== 表达式中允许使用的运算符如下: 一元运算符:-, ! 二元运算符:+, -, *, /, %, ==, !=, >, >=, <, <=, &&, ||, &, |, ^ 括号:(, ) 常量:pi 一元函数:sin, cos, sqrt, _f, _S</poem> 这里的&&与||代表逻辑与或,&与|代表按位与或,^为按位异或。 _f(A)和_S(A)分别代表将A强制转换成浮点数,和将A强制转换成整数。 表达式中允许使用所有定义过的变量。 A=_S(100*sin(X*2+10)); 同一个二元运算符两端如果包含不同类型的数,则整数会被隐式转换成浮点数。 最好不要在表达式里进行过多的常数运算,可能会爆炸(作者懒得做太多了)。能手算的尽量手算。(比如sqrt(2)会报错,请写sqrt(2.)) {{color:red|不允许直接在表达式后加分号来代替入栈语句。堆栈操作请好好使用Push。}} 没有特殊要求请最好不要使用堆栈。 ====难度选择==== 难度选择语句为 !E; / !N; / !H; / !L; 多难度相同则为: !EN; / !ENH; 退出为 !ENHL; ====执行语句==== 执行语句即为执行某些功能的语句。 执行语句必须以函数表中有的一函数名开头,后面可用括号带输入参数。输入参数个数必须与函数表中一致。输入参数可以使用表达式。不一致的参数类型会被强制转换。 time_reset(); interrupt(0, 1500, 2100, "BossCard1"); lifebar(0, 1500, color_red); star(1); playSE(54); wait(60); 请不要在一行中间用tab 。。。 在某些ins里,比如wait里面,也可以使用冒号来分难度使用不同的值。 在某些ins里,可以使用一些符号常量,比如弹幕类型,弹幕颜色之类的。 一些执行语句已经被集成到一个句子当中,比如创建弹幕,开始符卡。下面有详细叙述。 可以使用STACK_I1,STACK_F2这种变量,当做直接取堆栈顶第一个数(整数),第二个数(浮点数),以此类推 ====弹幕变换语句==== 弹幕变换语句即为可以让弹幕进行特殊运动的语句。 弹幕变换语句用@开始。 @eff(0, EX_SIMU, 1); @spddown(0, EX_SIMU); @not_out(0, 2, EX_SIMU, 10000, 0); @not_clear(0, 3, EX_SIMU, 10000); @delay(0, 4, EX_WAIT, 60); @change(0, 5, EX_WAIT, 5, 7); @shoot(0, 6, EX_WAIT, 1, 1, 2, 2, 3, 3, 4, 4); @shoot_par(0, 7, EX_WAIT, 5, 5, 6, 6, 7, 7, 8, 8);//这几个参数是瞎写的请不要参照 第一个参数是弹幕编号,后面可以选择性加上变换序号。 EX_SIMU代表同时,EX_WAIT代表顺序。 最后带参数。 变换序号 变换从变换序号0开始依次执行, 标不标序号,实际都存在 例如 @xxx(弹幕编号,.......) @xxx(弹幕编号,.......) @xxx(弹幕编号,2,.......) @xxx(弹幕编号,3,.......) 这里虽然前两个变换未省略了序号,实际系统会认为他们分别是0和1 除非使用特别mode,这些变换不能跳过 例如 @xxx(弹幕编号,.......) @xxx(弹幕编号,.......) @xxx(弹幕编号,3,.......) @xxx(弹幕编号,4,.......) 这里少了序号2,所以后面两个不会执行 可以控制跳跃执行的有8192,32768,65536 除了用特殊可控序号的mode以外,标不标,有个最大的区别就是可以放心写进循环当中 倘若不标编号就写入循环里,则每个循环都要执行一次,都会额外添加一次变换,这样会列出非常多的变换导致bug 而如标了变换序号,即使反复执行,也只会覆盖之前的变换,不会产生新的变换 通道 当通道为EX_WAIT的时候变换都是一个完成后执行下一个 而同道为EX_SIMU的变换则会同时进行. 对于64弹墙和4096穿越若使用同一个通道则4096完全失效 使用不同通道时,弹墙优先于穿越 通道可以不只是这两个(0和1),具体待考 ====调用子程序/线程==== MainSub00b(1,pi); 线程名在前面,括号里为输入参数。 如欲子程序返回后主程序再继续运行,则为 MainSub00b(WAIT,1,pi); 可以调用default.ecl里面的子程序,default.ecl的子程序列表请录入在default.ini里。 {{color:red|使用default.ecl里的子程序时请自行注意参数数量;浮点数与整数等问题。}} ====标签==== 设置标签语句即为 SetLabel(自定义标签名); 可在Jmp系语句用。 自定义标签名不可以MUA_开头。 不能连续使用两个标签。 {{color:red|没有特殊要求请最好不要使用标签或者跳转语句,容易出bug。}} (比如说,请不要在if elsif块或循环块后面,或循环块结尾前面,或一整个if块最后一个右大括号的前面或后面紧接着使用设置标签语句,因为会导致连续的两个标签) ===流程控制语句=== ====选择分支语句==== 与C++等高级语言的if类似,if后括号里表达式为要执行下面大括号内语句的条件。默认1为真,0为假。 可以使用else或者elsif。 {{color:red|即使只有一句话也要使用大括号。}} if(A<0){ obj("GirlBlueA01", A, -16, 140, 1000, 1); } elsif(A<100){ obj("GirlBlueA01", A-100, -16, 140, 1000, 1); } else{ obj("GirlBlueA01", -A, -16, 140, 1000, 1); } ====循环语句==== 循环语句分为for和while。while和C++等高级语言类似,while后括号里表达式为如果条件为1则继续循环。默认1为真,0为假。 while(1){ wait(1000); }//这是个死循环 for后括号内表达式为for循环的循环次数,需为整数。整个循环只在循环开始时读取一次表达式的值。(并且不会改变for后括号内变量) for(B){ obj("GirlRedA01", A, -16, 140, 1000, 1); } ====跳转语句==== 跳转语句为Jmp, Jz, Jnz。后空格加标签。 Jmp为无条件跳转,Jz为判断如果堆栈内值为0则跳转,Jnz为判断如果堆栈内值不为0则跳转。 SetLabel(Abc); wait(1000); dec(A);//dec的作用在对照表里有解释,将A自减并塞入堆栈。 Jnz Abc; ====注释==== 单行注释使用//... 多行注释使用/*...*/。
该页面使用的模板:
脚本对照表
(
查看源代码
)
返回
脚本对照表/MUAECL/MUAECL基本规范
。
分类
:
脚本对照表
导航菜单
个人工具
创建账号
登录
命名空间
页面
讨论
查看
阅读
源码
查看历史
更多
搜索
常用
首页
东方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
日本語
中文