配列でRPGを作る
今回のサンプルではレベルの概念があまり無いが、再代入をするのコードを応用することで レベル制度を作ることができる。
code:rpg.js
const { Client } = require("discord.js");
const client = new Client();
const member = []; // new Array()でもOK
const stage = []; // new Array()でもOK
const prefix = "!"; //ここは好きな文字列で
client.on("message", (message) => {
const cmd, ...args = message.content.slice(prefix.length).split(" "); const searchMember = member.find((m) => m.uid === message.author.id);
const searchStage = stage.find((s) => s.chid === message.channel.id);
if (!message.content.startsWith(prefix)) return;
if (cmd === "login") {
if (!searchMember) {
member.push({
uid: message.author.id,
level: 1,
xp: 0,
HP: 100,
});
message.channel.send("ログインしました。");
} else {
message.channel.send("既にあなたはログインしています。");
}
}
if (cmd === "attack") {
if (!searchStage) {
stage.push({
chid: message.channel.id,
name: "スライム",
level: 1,
HP: 20,
});
message.channel.send("ステージの情報をセットしました。");
} else {
if (searchStage.HP > 0) {
const userPower = searchMember.level * 5;
const mobPower = searchStage.level * 5;
searchStage.HP -= userPower;
searchMember.HP -= mobPower;
message.channel.send(
${searchStage.name}に${userPower}のダメージ\n残りHP: ${searchStage.HP}\n${message.author.username}に${mobPower}のダメージ\n残りHP: ${searchMember.HP}
);
} else {
message.channel.send(${searchStage.name}を倒したよ!);
searchStage.HP = searchStage.level * 20;
searchMember.HP = searchMember.level * 100;
}
}
}
});
関連