分享发现 [干货教程] 一些可能用得上的高级功能代码

adminer · 2017年03月21日 · 最后由 3424947079 回复于 2020年08月07日 · 5085 次阅读
本帖已被设为精华帖!

零、高级功能 测试链接

一、如何将选项显示成按钮

使用代码 (b)数字(/b) 一一对应 选项即可显示为按钮形式,参考代码:
你现在迷宫某个角落,准备被找出口。
(b)1(/b) (b)2(/b) (b)3(/b) (b)4(/b)
选:正北
选:正西
选:正东
选:正南

二、如何增减以及显示数值

  • 增减数值代码 >: MD.数值名称 += 1; >: MD.数值名称 -= 1;
  • 显示是否有某个数值的数量代码 (j)if(MD.数值名称) '我现在有' + MD.数值名称 + '个数值名称'; else '没有数值名称';(/j)
  • 在任意处调用显示数值数量代码 (j)MD.数值名称(/j)
  • 设置变量 MD.数值名称 为数值数量,MD.数值名称=1 时,我们可以把文字写成“你现在有(j)MD.数值名称(/j)个数值名称”,就会显示“你现在有1个数值名称”。也可以更复杂一些: (j)if (MD.数值名称 && MD.数值名称 > 0) '你有' + 数值名称 + '个数值名称'; else '你没有数值名称了';(/j)
  • 注意,javascript代码都要放在同一行,同时它只会显示最后那个句变量或字符串,因此要在代码的最后返回你真正要显示的内容。
  • (j)...(/j) 可以用在的各个位置,包括不仅限于:
    • 游戏文本;
    • 按钮的内容,如: 选:你还有(j)MD.stone(/j)块石头,用一块砸它
    • 胜利或失败的信息,如: 成功:你得到了(j)MD.数值名称(/j)块金币
  • >: if (MD.数值名称 <= 0) game_jumpto('段落名称'); 如果是指满足条件,则跳转到指定段落。
你现在迷宫某个角落,准备被找出口。
>: MD.time = 3;
但是时间有限,只有选择 (j)MD.time(/j) 次,祝你好运。
[|]
(b)1(/b) (b)2(/b) (b)3(/b)
(b)4(/b) (b)5(/b) (b)6(/b)
(b)7(/b) (b)8(/b) (b)9(/b)
选:西北
>: MD.time=2;
选:正北
>: MD.time=2;
选:东北
>: MD.time=2;
选:正西
>: MD.time=2;
选:中央
>: MD.time=2;
选:正东
>: MD.time=2;
选:西南
>: MD.time=2;
选:正南
>: MD.time=2;
选:东南
>: MD.time=2;

[chapter]
非常抱歉,还可以尝试 (j)MD.time(/j) 次。
[|]
(b)1(/b) (b)2(/b) (b)3(/b)
(b)4(/b) (b)5(/b) (b)6(/b)
(b)7(/b) (b)8(/b) (b)9(/b)
选:西北
>: MD.time -=1; if (MD.time <= 0) game_jumpto('你失败了'); 
选:正北
>: MD.time -=1; if (MD.time <= 0) game_jumpto('你失败了'); 
选:东北
>: MD.time -=1; if (MD.time <= 0) game_jumpto('你失败了'); 
选:正西
>: MD.time -=1; if (MD.time <= 0) game_jumpto('你失败了'); 
选:中央
选:正东
>: MD.time -=1; if (MD.time <= 0) game_jumpto('你失败了'); 
选:西南
>: MD.time -=1; if (MD.time <= 0) game_jumpto('你失败了'); 
选:正南
>: MD.time -=1; if (MD.time <= 0) game_jumpto('你失败了'); 
选:东南
>: MD.time -=1; if (MD.time <= 0) game_jumpto('你失败了'); 

[西北]
>: if (MD.time <= 0) game_jumpto('你失败了'); 
跳:chapter

[正北]
>: if (MD.time <= 0) game_jumpto('你失败了'); 
跳:chapter

[东北]
>: if (MD.time <= 0) game_jumpto('你失败了'); 
跳:chapter

[正西]
>: if (MD.time <= 0) game_jumpto('你失败了'); 
跳:chapter

[中央]
成功:恭喜恭喜!你成功通关了!

[正东]
>: if (MD.time <= 0) game_jumpto('你失败了'); 
跳:chapter

[西南]
>: if (MD.time <= 0) game_jumpto('你失败了'); 
跳:chapter

[正南]
>: if (MD.time <= 0) game_jumpto('你失败了'); 
跳:chapter

[东南]
>: if (MD.time <= 0) game_jumpto('你失败了'); 
跳:chapter

[你失败了]
失败:失败了,刷新再来一次吧!

四、Js随机函数列表:

  • random_int(min, max): 随机得到min到max之间的整数,例如: (j)random_int(0,10);(/j)
  • random_choice(...) 随机选择一个,例如: (j)random_choice('a', 'b', 'c');(/j)
  • random_int_adv(...) 按照概率随机选择一个整数,例如: (j)random_int_adv([[1,2], 0.5], [[3,4], 0.4], [[5,6], 0.1]);(/j) ,1到2之间概率0.5,3到4之间概率0.4,5到6间概率0.1。
  • random_choice_adv(...) 按照概率随机选择,例如: (j) random_choice_adv(['a', 0.5], ['b', 0.4], ['c', 0.1]); (/j) ,a的概率0.5,b的概率0.4,c的概率0.5。

五、显示信息弹窗

  • 如果 <: =: >: 放在 `选: 函数的后面,运行的时间点分别为“开始生成此按钮前”,“此按钮已经显示在屏幕上”,“点击了此按钮,要跳转到其他段时”。
  • 如果 <: =: >: 放在文字段落的后面,运行的时间点分别为“进入此文字段前”,“此文字段已经显现在屏幕上”,“离开此文字段,要进入下一文字段时”。
  • 释义: <: , 进出前运行; =: , 进入后运行; >: ,离开后运行。 ``` 如果 <: 放在文字段落的后面,运行的时间点为“开始生成此按钮前”。 <: alert('进入第二段前显示的内容');

如果 =: 放在文字段落的后面,运行的时间点为“此按钮已经显示在屏幕上”。 =: alert('第二段已经显示显示的内容');

如果 >: 放在 文字段落的后面,运行的时间点为点击了此按钮,要跳转到其他段时”。

: alert('离开第二段时显示的内容');

如果 <: 放在 选: 函数的后面,运行的时间点分别为“开始生成此按钮前”。 选:开始生成此按钮前 <: alert('生成按钮前显示的内容');

如果 =: 放在 选: 函数的后面,运行的时间点分别为“此按钮已经显示在屏幕上”。 选:此按钮已经显示在屏幕上 =: alert('按钮已经绘制好后显示的内容');

如果 >: 放在 选: 函数的后面,运行的时间点分别为“点击了此按钮,要跳转到其他段时”。 选:点击了此按钮,要跳转到其他段时

: alert('这个按钮被点击后显示的内容');

#### 六、判定是否显示按钮
#### `<: if (! MD.数值名称 ) curBtn = null;` ,如果此前有该数值则显示按钮,否则隐藏。

我正在逛街,想买一点水果。 选:买几个苹果 : MD.apple = 1; 选:省钱不买

回家的路上有些饿了,(j)if(MD.apple) '我现在有' + MD.apple + '个苹果'; else '但是我没有买水果';(/j) 选:吃点儿苹果 <: if (! MD.apple ) curBtn = null; 选:回家找吃的

: game_jumpto('回家找吃的');

[吃点儿苹果] 不饿了,感觉充满了力气。

成功:一路小跑回家了。

[回家找吃的] 饿得有些没力气,回家的比较晚。

失败:一路饿到家,吃了两碗饭。

共收到 11 条回复

留楼备用。

随机函数!随机函数!随机函数!!!新世界的大门打开了,我有时间就去开工ヽ( ° ▽°)ノ

为了学习,复制测试了一下第三节,发现一个错误: [中央] 恭喜恭喜!你成功通关了! 跳:游戏区

这里: "跳:游戏区" 应该改为: “成功:恭喜恭喜!你成功通关了!” 否则会一直在迷宫徘徊

#3楼 @anletian 设置 跳:游戏区 是为了返回测试其他功能,不用设置一样的,这里的游戏区最开始的一段内容。

5楼 已删除

每次翻这个帖子都要累死,求把这个帖子置顶了

请问随机变量怎么显示,就是MD.

请问

:,=:,<:放在选项后面是什么意思,为什么不直接放在[选项名]段落里? 为什么有的地方打双引号有的地方打单引号? 要想在段落里显示出MD.该如何写?(j)(/j)表示什么意思? game_jumpto 和跳:有什么区别?jumpto('回家找吃的')不是多余吗? (j)if(MD.数值名称) 这句是什么意思?if 不是判断吗,()里没有判断? @admin

11楼 已删除

怎么弄名称?我不会

我之前是学pascal的,现在让我一下子想要改代码方式着实困难

我想问一下,如何随机选择段落

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