MapでRPGを作る
なぜかやたらと僕にkeyvを使ってrpgを作る方法の質問が多かったのでここに載せておきます。
keyvはMapと互換性があるので普通に使えると思います。
サンプルコード
code:rpg.js
const { Client } = require("discord.js");
const client = new Client();
const member = new Map();
const stage = new Map();
const prefix = "!";
client.on("message", async (message) => {
const cmd, ...args = message.content.slice(prefix.length).split(" "); const user = (await member.get(message.author.id)) || { level: 1, HP: 100 };
const place = (await stage.get(message.channel.id)) || {
name: "スライム",
level: 1,
HP: 50,
};
if (cmd === "atk") {
if (place.HP > 0) {
const userPower = user.level * 5;
const mobPower = place.level * 5;
searchStage.HP -= userPower;
searchMember.HP -= mobPower;
message.channel.send(
${place.name}に${userPower}のダメージ\n残りHP: ${place.HP}\n${message.author.username}に${mobPower}のダメージ\n残りHP: ${user.HP}
);
}
if (place.HP < 1) {
message.channel.send(${place.name}を倒したよ!);
place.HP = place.level * 50;
user.HP = user.level * 100;
}
member.set(message.author.id, user);
stage.set(message.channel.id, place);
}
});
関連