用户:
星辰Lolita查看:14 回复:43 评论:14 创建时间:2021-05-13T18:17:53
好用又方便的存档模板
也不容易报错
const INIT = {
hp: 100,
maxHp: 100,
enableDamage: true,
//可以添加或删除字段
//每次添加或删除字段事都要往控制台中输入“db.sql`DROP TABLE lolita`”
}
db.sql`CREATE TABLE IF NOT EXISTS lolita(
id CHAR(16) NOT NULL,
record TEXT NOT NULL
)`
world.onPlayerJoin(async({entity})=>{
function init(){
Object.assign(entity,INIT);
}
if(entity.player.userKey){
const rows = await db.sql`SELECT * FROM lolita WHERE id = ${entity.player.userKey}`;
if(rows && !rows.length){
init();
db.sql`INSERT INTO lolita VALUES(${entity.player.userKey},${getRecord.call(entity)})`;
}else{
Object.assign(entity,JSON.parse(rows[0].record));
}
}else init();
})
function getRecord(){
const result = {};
Object.keys(INIT).forEach((e)=>{
result[e] = this[e];
})
return JSON.stringify(result);
}
function update(){//保存
if(!this.player.userKey)return;
db.sql`UPDATE lolita SET record = ${getRecord.call(this)} WHERE id = ${this.player.userKey}`;
}
world.onPlayerLeave(({entity})=>{
update.call(entity);
})
原创代码,创作不易
使用记得顶帖
有个漏洞,db.sql``要加await :await db.sql``
(async function (){
await db.sql`CREATE TABLE IF NOT EXISTS lolita(
id CHAR(16) NOT NULL,
record TEXT NOT NULL
)`
})()
点赞1
评论
Lolita能不能来一下,代码需要你https://box3.codemao.cn/e/dea3f822552115551a62?p=1MRbssCh4qNX1R6lO%2BBI0bK50qTk1eCxqMiCXla2lnA%2FuKtBiXLwVndWVzdA%3D%3D
点赞0
评论
https://box3.codemao.cn/e/dea3f822552115551a62?p=1MRbssCh4qNX1R6lO%2BBI0bK50qTk1eCxqMiCXla2lnA%2FuKtBiXLwVndWVzdA%3D%3D
点赞0
评论
Lolita求助,代码出错了https://box3.codemao.cn/e/dea3f822552115551a62?p=WbImFmcQ8TJsBZZo%2FmjxR83Z8FBQc%2BLvXj%2FljRqvvcA8b%2F0jiZLwVndWVzdA%3D%3D
点赞0
评论
在吗,代码出错了,还没有修好,求助https://box3.codemao.cn/e/dea3f822552115551a62?p=rL%2F6OJq0L6ndfEbEDSi5喵QP5OcerL3mJLIgKTdyRGA%2FfJvEqZLwVndWVzdA%3D%3D
点赞0
评论
Lolita快来看看,保存不了了https://box3.codemao.cn/e/dea3f822552115551a62?p=l4%2BEFFRwYisw9%2BZ8TbF3W9yz4eberMO0bfOSwrNiKtA43i9WaZLwVndWVzdA%3D%3D
点赞0
评论
星辰Lolita可能会报错的原因:
1. 数据类型问题(JSON不支持function、Symbol等)
2. 对象产生了嵌套(比如你的一个属性是我,我的一个属性是你)
其他的我不知道,能理解这些代码bug就可以修了,如果是我的代码的问题,可以在下面回复
点赞0
评论