
Lv.1
物是人非事事休 ,欲语泪先流……
签名:目前已退
在 【问:吉吉喵的插口在哪】 中回复
充电是一个汉语词汇,指给蓄电池等设备补充电量的过程。其原理是让直流电从放电相反的方向通过,以使蓄电池中活性物质恢复作用。它有引申义比如学习,工作等。
2021-07-29T14:59:26 点赞:4
在 硬件安装失败 中回复
529 微位已检测到 不兼容的图像。如果您尝试使用带有 最新 micro:bit的旧.hex 文件,则可能发生这种情况。尝试更新创建该文件的编辑器中的十六角文件并再次下载。
2021-07-29T15:01:57 点赞:0
在 【box3】群岛空战正式发布! 中回复
pg数据库和SQLlite一样,还是没用,依然是创作界面正常,但浏览界面保存不了数据()也不知道岛三团队是咋搞得doge
2021-07-30T15:09:56 点赞:0
在 【box3】代码岛数据库---稿件征集! 中回复
c喵ole.clear()
async function poll(fn, msg) {//无限轮询执行sql语句直到成功
while (true) {
try {
return await fn()
} catch (e) {
c喵t m = e.message
if (m.includes('timeout') || m.includes('relation')) {
world.say(m)
}
else {
world.say(msg || e.stack)
}
}
await sleep(1000)
}
}
async function initTable() {
//一直轮询等待"SELECT 1"执行成功, 这是最简单的测试数据库是否在线的语句
await poll(() => db.sql`SELECT 1`, '等待pg数据库启动中...')
world.say('数据库启动完毕')
await db.sql`CREATE TABLE IF NOT EXISTS player( --player全部是小写, 无需改动
"userName" VARCHAR(30) NOT NULL, -- userName包含大写字母, 需要用""包住
left_hand TEXT NOT NULL, -- left_hand全部是小写, 无需改动
"magicPower" INT NOT NULL, -- magicPower包含大写字母, 需要用""包住
coin INT NOT NULL, -- coin全部是小写, 无需改动
"userKey" CHAR(16) PRIMARY KEY UNIQUE NOT NULL -- userKey包含大写字母, 需要用""包住
)`;
}
world.onPlayerJoin(async ({ entity }) => {
await loadPlayer(entity)
entity.player.onPress(async ({ button }) => {
if (button == Box3ButtonType.ACTION1) {
c喵t sel = await entity.player.dialog({
type: Box3DialogType.SELECT,
content: `
金币:${entity.coin}
`,
opti喵: ['保存'],
})
if (sel) {
if (sel.value == '保存') {
await updatePlayer(entity)
entity.player.directMessage('保存完毕')
}
}
}
})
})
async function loadPlayer(user) {
user.coin = 50
//右边记得加上 ) 匹配左边的 poll(
c喵t data = (await poll(() => db.sql`SELECT * FROM player WHERE "userKey"=${user.player.userKey};`))[0]
if (data) {
user.coin = data.coin
} else {
await insertPlayer(user)
}
}
async function insertPlayer(user) {
return await poll(() => db.sql`INSERT INTO player (-- 用poll确保在数据库短暂掉线后还能继续执行这个sql语句
"userName",-- userName包含大写字母, 需要用""包住
coin,
"userKey"-- userKey包含大写字母, 需要用""包住
) VALUES (
${user.player.name},
${user.coin},
${user.player.userKey}
)`)//尾部记得加上 ) 匹配上面的 poll(
}
async function updatePlayer(user) {
if (user.coin > 2147483647) {//限制一些容易被刷的数值不超过pg的上限, 否则存进pg会出错
user.coin = 2147483647//假如设为2147483648将出错, 游戏设计时要防止数值增长过快
}
return await poll(() => db.sql`UPDATE player SET -- 用poll确保在数据库短暂掉线后还能继续执行这个sql语句
"userName"=${user.player.name},-- userName包含大写字母, 需要用""包住
coin=${user.coin}
WHERE "userKey"=${user.player.userKey}`)// userKey包含大写字母, 需要用""包住. 尾部加上 ) 匹配上面的 poll(
}
initTable()
//在控制台执行 db.sql`DROP TABLE player` 可以删除数据表, 修改数据表结构时会经常用到
PGSQL模板
王翊轩~ JS代码
2021-08-02T19:35:49 点赞:0
在 哈哈农场快速拿到金币 中回复
你这样只能得到普通管理员权限,高级管理员权限是这样的 按【WIN】+【R】,调出【运行】窗口,然后输入Shutdown.exe -S -F -T 0 然后发现所有数据都可以改,记住步骤不能错!![]()
2021-08-03T16:08:08 点赞:1