问与答 [不定期更新] 高级功能代码扩展

anletian · 2017年04月06日 · 最后由 HEE 回复于 2019年05月21日 · 2716 次阅读
本帖已被设为精华帖!

由于科技模型的研发现在进入一个饱和期,所以我决定分享一些我检验过的测试代码。 1.条件的和(并)与或(发现来自:akizawa230) 和:&& 或:||(当日:22;35标注:切换英文shift+!切换英文shift+!切换英文shift+!重要的事情说三遍!血的教训!) 用法与格式: 一个变量时:

>: if (MD.XX1 <= 0 && MD.XX1>=-1) game_jumpto('XX'); 

表示当变量XX1在[-1,0]区间(闭区间)上,跳入事件XX 如果是:

>: if (MD.XX1 < 9 && MD.XX1>-9) game_jumpto('XX'); 

表示变量XX1在(-9,9)区间(开区间)上,跳入事件XX

>: if (MD.XX1 > 9 || MD.XX1<-9) game_jumpto('XX'); 

表示当XX1大于9或者XX1小于-9时,跳入事件XX

两个(多个)变量决定:

>: if (MD.XX1 > 9 || MD.XX2<-9) game_jumpto('XX'); 

表示当XX1大于9或者XX2小于-9时,跳入事件XX

>: if (MD.XX1 > 9 || MD.XX2<-9) game_jumpto('XX'); 

表示当XX1大于9并且XX2小于-9时,跳入事件XX

剩下书写以此类推

2.变量的加减乘除(发现来自:无限流派)与其他特殊算法

在此提示一点,无论什么算法,必须对数值进行一次赋值,例如:MD.a+MD.b时,必先<:MD.a=5;MD.b=6;

①加法: MD.数值名称+MD.数值名称

②减法: MD.数值名称-MD.数值名称

③乘法: MD.数值名称*MD.数值名称

④除法: MD.数值名称/MD.数值名称

注:()可以用于计算中,且()内的计算优先级大于没有()的,()必须是英文输入法输出的括号(即shift+9和shift+0)

⑤绝对值: <:MD.b=Math.abs(MD.a)

当MD.a=-1时,MD.b=1

⑥次方根(表达方式如上,下面都是): Math.pow(MD.x,MD.y)

MD.x 必需。底数。

MD.y 必需。幂数。

当x=2,y=4时,

原式=Math.pow(2,4);

即表示2的4次幂,等于16

⑦取整数丢弃小数部分,保留整数部分 (接下去我来简介表达)

parseInt(7/2) =3.5~3

⑧向上取整,有小数就整数部分加1

Math.ceil(7/2) =3.5~4

⑨四舍五入. Math.round(7/2) =3.5~4

⑩向下取整

Math.floor(7/2) =3.5~3

⑪取余数

26%3=8……2(余数) 最后输出2

以上法则可以放在条件判断中使用

3.<: if (! MD.a ) curBtn = null;的变式般(当日13:12注:if前面的符号必须是<:否则功能失效)

昨天我研究过! MD.a表示 MD.a=0时,按钮隐藏,如果MD.a=-1时,按钮不隐藏

由此可得:

<: if ( MD.a>9 ) curBtn = null;

MD.a大于9时,按钮隐藏

由于这昨晚的发现,我研究出了,静态地图显示模型,不过模型正在复杂化,到时候将作为其他研究者的补充

故这个按钮也可以用条件判断来隐藏

但是暂时没研究出来达成条件来显示这个按钮的代码,只能用逻辑相反来实现这一点

4.迷宫显示变式:

[|]
(b)1(/b) ——(b)2(/b)—— (b)3(/b) 
(b)4(/b) ——(b)5(/b) ——(b)6(/b) 
选:A
选:B
选:C
选:D
选:E
选:F

界面将显示: A——B——C D——F——E (你们可以复制去试试,我讲的不是太清楚)

实话说,这将是RPG世界大地图的核心,如果有哪位大大先做出来,记得发出代码,我就可以躺了

接下去还有些我得回忆一下,暂时来个分割线 …………………………………………………………………………………………………2017.4.6 11:54截止线…………………………………………………………………………………………………………………………………………………

洗澡时突然想到随机变量还没说,于是有了:

5.Js随机函数用于变量(补呆萌娘的缺漏@admin):

random_int(min, max): 随机得到min到max之间的整数,

例如:

=:MD.a=random_int(0,10)

表示MD.a随机取值0~10

random_choice(...) 随机选择一个,例如:

=:MD.a=random_choice(1,3,5)

表示MD.a随机取1,3,5中间的一个数字

random_int_adv(...) 按照概率随机选择一个整数,例如:

=:MD.a=random_int_adv([[1,5], 0.5], [[6,9], 0.4], [[10,12], 0.1])

1到5之间概率0.5,6到9之间概率0.4,10到12间概率0.1。

random_choice_adv(...) 按照概率随机选择,例如:

=:MD.a=random_choice_adv([1, 0.5], [2, 0.4], [3, 0.1])

1的概率0.5,2的概率0.4,3的概率0.5。 ………………………………………………………………………………………………………………当日12:37分界线…………………………………………………………………… 6.分享个你爱怎么让排版飘逸怎么飘逸的代码:空格保存代码 有时候你会发现系统自动吞了你辛辛苦苦打了一堆的空格键有句妈卖批不知道当讲不当讲~ 而现在经过测试我找到几个BUG的代码 空格标签:&nbsp(相当于空格键) 格式保存: 这个比较狠,放在你要排版的文字头上,空一行,然后让你的文字之间相互连接,然后谁用谁知道~~~ ————————————————————————2017.4.7.20:54分界线………………………………………………………………………… 7.来自呆萌娘的重发现(我本来觉得不可以):不等于时:!= 解锁了不等于后,就有了条件出现按钮: <: if (MD.a != 1) curBtn = null; 即,当MD.a=1时,该按钮出现 ————————————————————————2017.4.8 11:23…………………………………………………………………………………… 神秘右对齐代码:

测试对象:(b)1(/b) 按钮 ****************************2017.4.11.19 19:17******************************************************************************* 8.按钮黑科技(三体再临): 请问,你想做出两个一样的按钮,但是呢~结果不一样吗?

[滑稽脸]


=:MD.a=2

选:(j)if ( MD.a > 0) '1 '个数值名称'; else '';(/j)
选:(j)if ( MD.a > 1) '1 '个数值名称'; else '';(/j)
[(j)if ( MD.a > 0) '1 '个数值名称'; else '';(/j)]

[(j)if ( MD.a > 1) '1 '个数值名称'; else '';(/j)]


就这么简单,你懂了吗?

******************************************2017.4.11.19 19:19*********************************************************** 鉴于音乐代码被很多人忽略,我决定把音乐代码重提一下,原贴:http://bbs.iwzyx.com/topics/72

(j)GameScene.play_bgm("播放音乐的地址,以Mp3格式作为结尾")(/j)(开头段落)

要写入的正文内容

(j)GameScene.stop_bgm()(/j) (音乐播放结束段落)

然而做这个东西需要一个外链云盘,具体怎么操作还得问呆萌娘@admin

这里我想召唤@尖叫. 问问能不能让音乐结束时带着一种淡化效果?也就是音乐结束时,声音音量发生递减最后消失并结束播发。

****************************************2017.5.19  10:00******************************************************************
同行声明变量有效,写法:

=:MD.a=1;MD.b=5;

*************2017.5.24 21:17*********************************************************************

共收到 21 条回复

感谢大佬分享!

#1楼 @鸦羽鹿 其实为了推动小白们的自主研发,那样我就能躺了23333333333

哦,对了,有不会的在下面留言

4楼 已删除

#3楼 @anletian 有时忘记代码,就来这逛一下,呵呵。

#5楼 @尖叫. 复制到桌面txt吧,我也这么干,免得到处逛界面

没有调试模式好郁闷……用了一个简单的变量+=符号都没能出现正确结果 大概就是最开始初始化了<:MD.红酒摄入=0 之后在一个段落中=:MD.红酒摄入+=1 然后判断的时候是=: if(MD.红酒摄入 > 0) game_jumpto("教堂的追加情报") ; else game_jumpto("第一章结束") 然而试着改了几次都不能进入[教堂的追加情报] 感觉就是这个+=没有成功……

#7楼 @sizzy 变量名字改成英文试试看,或者?是不是作为判断或者赋值语句=:的代码没空格?

#8楼 @anletian 改成英文也不行,空格问题我本来是用的编辑器右边按钮添加的格式,之后手动加空格空行没变化……用消息输出显示变量为NaN,感觉就是+=没成功执行,其他的同格式中文变量用=直接赋值就正常,就很怪

10楼 已删除

#9楼 @sizzy 可能是这样,'=:'前最好换行,是在不行,‘+=’前后带个空格,然后,+= 与 =:if 放在两个段落中

#9楼 @sizzy 另一种改法是: =:MD.红酒摄入=MD.红酒摄入+1

#12楼 @anletian 这几种办法都尝试过,均不可行=。= 暂时只好用直接赋值了,自累加用的肯定是有点问题,就是找不到,=:MD.红酒摄入=MD.红酒摄入+1也无效

#13楼 @sizzy 什么值输出显示Nan?(j)红酒摄入(/j)?

#2楼 @anletian 最好不要用字符实体,建议用

标签,这样更直观😊

取整为什么不用int()

#17楼 @伡栕 没试过,你试验一下,然后告诉我结果

好。

算式不行!

感谢代码!

那个两个一样的按钮,是因为表达式不同所以判定是两个段落标签吗?

尘幕 代码基础教程 (修正 2) 中提及了此贴 03月28日 20:08

随机抽取数字,能抽取到不重复的吗?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册