⊙采集对话
进入对话会跳转到第一个语句。
你目前位于[ 位置]。
[ 属性:临时文本]。
代码如下:
var 数量 = 数据.(['采集',玩家.位置,'资源种类数'])??0 ;//若没有存储则将数量赋值为0
if (数量 === 0){
    属性.临时文本 = '这里还没有资源'
    return ;//代码执行到这里停止运行,即没有资源
}属性.临时列表 = [];//清空列表
for (let 执行次数 = 1 ; 执行次数 <= 数量 ; 执行次数++) {//此处为for循环,语言描述大致为:进入该循环内时,声明一个名为执行次数的临时变量,使其为1,⊙若该变量小于资源种类数,则在临时列表内添加一项(就是第执行次数个资源名字,从1开始),然后让该变量值增加1,重复⊙后代码,直到执行次数大于数量,结束循环,此时所有资源均已在列表内
    属性.临时列表.push(数据.(['采集',玩家.位置,'资源'+执行次数]));
}属性.临时文本 = '这里的资源有' + 属性.临时列表
进入该语句后先读取地区的资源种类数量,若为0则显示 这里还没有资源
此时有两个选项,一个采集,一个退出。
采集选项是这样的:
----条件:无
----文本框:1个(标题:物品  输出属性:临时文本)
----动作:
物品[属性.临时文本]//这个代码用来判断有没有这个物品
正确的物品名称输入进去后,跳转到下一个语句(注:这里只判断物品列表里是否有这个物品,并不会检测是否在列表内,这可能导致一些奇怪的bug,请自行完善)
下一个语句:
----内容:你正在寻找[ 属性:临时文本]……
----动作:
if (属性.临时列表.indexOf(属性.临时文本)===-1) {//xxx.indexOf是查找某个值在列表第一次出现的位置,没有则返回-1
    属性.判断数字 = 1
} else {
    属性.判断数字 = 2
}
这个动作来判断当地资源是否有该物品,判断数字的2个值代表不同的选项

---
选项一
标题:继续
条件:属性.判断数字 === 1(就是没有此物品)
动作:无
下面为跳转语句

你找了半天,也没找到[ 属性:临时文本]。

【这里没有[ 属性:临时文本]!】

然后就返回主页
选项二
标题:继续
条件:属性.判断数字 === 2(即有该物品)
动作:无
下面为跳转语句

[ 属性:输入文本]

该语句代码如下↓

var i = 随机数([1,2,3,0])if (i === 0) {
    属性.输入文本 = '你找了半天,却没有发现'+属性.临时文本+'。\n体力-10(没有减)';return;
}
属性.输入文本 = '你采集到了'+ i + '个' + 属性.临时文本 + '。\n体力-10(没有减)'
物品[属性.临时文本] += i

通过随机数实现采集的物品随机

该对话开源如上,仅供参考,并非最优解,一些功能如要使用请自行完善

the end