{"tag":"character","value":{"_id":"6891c91f0823470a7664d34b","conditions":[],"description":"","dialogues":[{"_id":"6891c9270823470a7664d357","name":"查看苔藓球","conditions":[],"sentences":[{"_id":"6891c96b0823470a7664d37f","text":"你拥有的苔藓球↓\n[属性:临时文本]","isMarkdown":false,"actions":[{"_id":"6891c9a50823470a7664d391","type":"script","parameters":{"script":"var 持有苔藓球 = (数据.读(['新苔藓球', '玩家', 玩家.id, '持有苔藓球']) ?? [])\n持有苔藓球.forEach(item => 数据.预加载.读(['新苔藓球', '苔藓球', item])) // 预加载以提高性能\n属性.临时文本 = 持有苔藓球.map(item => item + ':' + 数据.读(['新苔藓球', '苔藓球', item, '剩余数量']) + '*' + 数据.读(['新苔藓球', '苔藓球', item, '单个价值']) + '单位').join('\\n')"}}],"options":[],"pace":0}],"entrySentenceId":"6891c96b0823470a7664d37f"},{"_id":"6891c94b0823470a7664d363","name":"拆苔藓球","conditions":[],"sentences":[{"_id":"6891d0d00823470a7664ef34","text":"输入密文","isMarkdown":false,"actions":[],"options":[{"_id":"6891d0d50823470a7664ef4f","text":"退出","actions":[],"conditions":[],"target":{"type":"complete"},"inputs":[]},{"_id":"6891d0df0823470a7664ef72","text":"输入","actions":[{"_id":"6891d0ee0823470a7664ef9a","type":"script","parameters":{"script":"const 密文 = 属性.临时文本\nif (!数据.是否存在(['新苔藓球', '苔藓球', 密文])) 提示('不存在该苔藓球或已被拆完!');\nelse {\n const 金额 = 数据.读(['新苔藓球', '苔藓球', 密文, '单个价值'])\n const 个数 = 数据.读(['新苔藓球', '苔藓球', 密文, '剩余数量'])\n const 发布玩家 = 查找玩家(数据.读(['新苔藓球', '苔藓球', 密文, '发布玩家']))\n const 拆过玩家 = (数据.读(['新苔藓球', '苔藓球', 密文, '拆过玩家']) ?? [])\n if (拆过玩家.includes(玩家.id)) {\n 提示('你拆过这个苔藓球了!')\n return\n }\n // 物品.xx += 金额 \n 发布玩家.发送未读消息(玩家.名字 + `(${玩家.id})拆开了你密文${密文}的苔藓球,获得xx${金额},剩余苔藓球${个数 - 1}`)\n if (个数 == 1) {\n 数据.删除(['新苔藓球', '苔藓球', 密文])\n var 发布玩家持有苔藓球 = 数据.读(['新苔藓球', '玩家', 玩家.id, '持有苔藓球'])\n 发布玩家持有苔藓球.splice(发布玩家持有苔藓球.indexOf(密文), 1)\n 数据.写(['新苔藓球', '玩家', 玩家.id, '持有苔藓球'], 发布玩家持有苔藓球)\n 发布玩家.发送未读消息('你的苔藓球被拆完了!')\n return\n }\n 数据.写(['新苔藓球', '苔藓球', 密文, '剩余数量'], 个数 - 1)\n 数据.写(['新苔藓球', '苔藓球', 密文, '拆过玩家'], [...拆过玩家, 玩家.id])\n 玩家.弹窗(`你拆开了玩家${发布玩家.名字}(${发布玩家.id})密文为${密文}的苔藓球,获得xx${金额},剩余苔藓球${个数 - 1}`)\n}"}}],"conditions":[],"target":{"type":"sentence","_id":"6891d0d00823470a7664ef34"},"inputs":[{"title":"密文","type":"string","output":"临时文本"}]}],"pace":0}],"entrySentenceId":"6891d0d00823470a7664ef34"},{"_id":"6891c9510823470a7664d36c","name":"发放苔藓球","conditions":[],"sentences":[{"_id":"6891cbb10823470a7664d98d","text":"(一些介绍)","isMarkdown":false,"actions":[],"options":[{"_id":"6891cbbb0823470a7664d995","text":"输入发放金额与个数","actions":[{"_id":"6891cc060823470a7664d9c9","type":"script","parameters":{"script":"const regexp = /^[1-9]\\d*$/\nconst 金额 = 属性.临时数字二\nconst 个数 = 属性.临时数字\nif (!regexp.test(金额.toLocaleString()) || !regexp.test(个数.toLocaleString())) 提示('金额或个数不为正整数!');\nelse {\n const AllLetters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];\n const 密文长度 = 8 // 可调\n function 生成密文() {\n var rtnStr = ''\n for (let i = 0; i < 密文长度; i++) {\n rtnStr += 随机数(AllLetters)\n }\n if (数据.是否存在(['新苔藓球', '苔藓球', rtnStr])) return 生成密文();\n return rtnStr\n // 这里生成的是纯字母,可改为时间戳增加可信性\n }\n const 密文 = 生成密文()\n\n 数据.写(['新苔藓球', '苔藓球', 密文, '单个价值'], 金额)\n 数据.写(['新苔藓球', '苔藓球', 密文, '剩余数量'], 个数)\n 数据.写(['新苔藓球', '苔藓球', 密文, '发布玩家'], 玩家.id)\n 数据.写(['新苔藓球', '玩家', 玩家.id, '持有苔藓球'], [...(数据.读(['新苔藓球', '玩家', 玩家.id, '持有苔藓球']) ?? []), 密文])\n // 很拉杂,但是面向对象能看懂,JSON性能会更好且节点会较少\n\n 弹窗(`你发放了一个密文为${密文}的苔藓球!(其他介绍)数量${个数} 单个金额${金额}`)\n}"}}],"conditions":[],"target":{"type":"sentence","_id":"6891cbb10823470a7664d98d"},"inputs":[{"title":"金额","type":"number","output":"临时数字"},{"title":"个数","type":"number","output":"临时数字"}]},{"_id":"6891cbcf0823470a7664d9a2","text":"退出","actions":[],"conditions":[],"target":{"type":"complete"},"inputs":[]}],"pace":0}],"entrySentenceId":"6891cbb10823470a7664d98d"}],"location":"unlimited","name":"新苔藓球"}}