{PoE] [2.6] Void Card

そういえばこんなカード拾ったんですよ。

Void Card

何も書かれてなくて、何が起きるのかなーとおもって交換したら、以下のようになりました。

結果

(´・ω・`)

これって、ランダムでなにかくれるだけなのかな。

ちなみに今のキャラは無事に3週目に入りました。

参考にパッシブツリーを貼っておきます。

https://www.pathofexile.com/fullscreen-passive-skill-tree/AAAABAMCAQN1A-4EBwSzCPQQWBEtFm8abBzcHb4i9CSqKPoqmCycMtEzhzWSNuk6WD8nQYdEq0VHRZ1KyEyzU1JVrlXGWW1fBF-YakNremvbbAttGW6qfIN9GIGvghCCx4Pbh2WIQI8aj6aQM5Erkyea4J1jna6iAKassQW18rc-uJO40LzqwFTAZsi_zzLYvdkL2jrfsONq6-7sivno-oD-Cg==

※パーサーの問題でうまくいかないのでコピペしてください。

[PoE] [2.6] Firestrom Ele Witch Part 2

現在の進捗。(2週目)

こんなシーンDiablo2にもありましたよね。

たまに大技が当って突然死することはありますが、全体的にサクサクすすんでます。
(二週目Act4でライフ+ESが2500ぐらいって低いのかな……。)

二週目のAct1が終わったあたりで、Ascendancyを取得してきました。Occultistと悩みましたが、結局はElementalistのほうを取りました。

えれめんたりすと。

Shaper of Desolationを取得したのですが、これたHerald of Thunderとかと相性が良くて思った以上に火力が上昇して、お気に入りになりました。効果としてはダメージを与えると何らかの属性効果(Ignite, Chill, Shockなど。効果は時間でローテーションする)を発生させるものなのですが、通常なからクリティカルさせないと発生しない属性効果がこれによって発生するので属性効果がトリガーになるものと相性がいいんですよね。Herald of Thunderもshock状態の敵を倒したら少しの間雷を落とすようになるので、簡単に火力の底上げに。

パッシブツリーでスキル効果時間も伸ばしてるので更に相性がよくていいですね。

そういえば VIRIDIAN JEWEL を一つ手に入れました!Pietyさんを倒したらポロっと落としてくれました。出た内容は以下のもの。Barrageの発射数が2つ増えるものですね。地味なのがでたなーとは思いましたが……。w

初VIRIDIAN JEWELだったりします。

でもこれを使ってCast On Critと合わせたBarrage Wandビルドも楽しそうだなーと考えてます。Bladefallあたりを落とす感じの。(どういう挙動になるかは試さないとちょっとわかりませんが)

今のキャラがMap段階に入ったらキャラ作ってやってみようと思います。作るならやっぱShadowあたりかな。

[PoE] [2.6] SSF Legacy League はじめてました。

この炎の嵐を降らすのすごい楽しい

今のところ、Cruel(2週目)のAct3の序盤です。

とりあえずのビルドはFirestromメインのよくあるWitchになりました。公式フォーラムにもあったやつを参考にしてます。

ゾンビで壁を作りつつ、Summon Skelton Totemを置き、後ろからFirestromを放つだけの簡単なお仕事のビルドです。防御面はゾンビに頼りながら、INT>STR気味なので恐らくCIにせずハイブリットにすると思います。

どうせアイテムをやり取りするようなPoEをやるフレンドも居ないのでSSFではじめたのですが、Uniqueが出過ぎてどうしよう状態に。以下のStashの画像の装備全てUnique品です。

全てUniqueだよ!

低レベルばっかなので育成用にしかならなそうなものあるのですがこれだけあると次のキャラ作成が楽しみに……ふふふふ。

今回のパッチで大量のスキル強化のJewelが追加されてるのでそれを目当てにしたいのですが、はたしてドロップして使う日がくるかどうか。面白そうなのができそうだなーってなったらこの走破用キャラから別キャラを作る予定です。

ともかくまずは3週してMAPに入るところですね。

[Node.js] [Discord] Discord の Bot を作る。 その3

遅くなりましたがBotを作るの最終編です。

全体の流れ

  1. Botの用意をする。
  2. 開発環境を用意する。
  3. テストコードを作成する。
  4. ボイスチャンネルの入退出に反応するようにする。 <- いまここ

Eris の仕組み

今更ながらErisの仕組みについて簡単に説明します。

ErisはBOTとしてDiscordにログインした後にサーバーから色々な情報を受信します。

その情報をイベントという形で受け取り処理を行うようにします。

以前に行った、メッセージを受け取ってPing!Pong!するのもその仕組みを利用しています。

ボイスチェンネルの入退出に反応する。

Erisには様々なイベントが用意されていますが今回はその中で下にある3つのイベントを使用します。

他のイベントについては詳しくは以下のドキュメントを参照してください。

Eris Document Client Class
※下のほうに Event の項目があります。

使用するイベントの種類

イベント名 タイミング コールバックの引数
voiceChannelJoin ボイスチャンネルに誰かが入った時。 (member, newChannel)
voiceChannelSwitch 別のボイスチャンネルに誰かが移動した時。 (member, oldChannel, newChannel)
voiceChannelLeave ボイスチャンネルから誰かが退出した時。 (member, oldChannel)
引数の説明
引数名 説明
member Member 入室または退室を行ったメンバー
newChannel GuildChannel そのメンバーの入室先のボイスチャンネル
oldChannel GuildChannel そのメンバーの以前まで居たボイスチャンネル

型は Eris 上での型です。詳細は Erisのドキュメントを参照してください。

とりあえずはボイスチャンネルに入退出したらコンソール上に出力ようにします。

ソースコードはこちら。

const Eris = require("eris");

// BOT_TOKEN は 自身が作成したBotの Bot token の文字を記述します。
var bot = new Eris("BOT_TOKEN");

bot.on("ready", () => {
    // bot が準備できたら呼び出されるイベントです。
    console.log("Ready!");
});

bot.on("voiceChannelJoin", (member, newChannel) => {
    // 誰かがボイスチャンネルに入った時に行う処理
    console.log("%s が チャンネル %s に入室しました。", member.username, newChannel.name);
});

bot.on("voiceChannelLeave", (member, oldChannel) => {
    // 誰かがボイスチャンネルから離れた時に行う処理です。
    console.log("%s が チャンネル %s から退室しました。", member.username, oldChannel.name);
});

bot.on("voiceChannelSwitch", (member, newChannel, oldChannel) => {
    // 誰かがボイスチャンネルを移動した時に行う処理です。
    console.log("%s が チャンネル %s から %s に移動しました。", member.username, oldChannel.name, newChannel.name);
});

// Discord に接続します。
bot.connect();

スポンサーリンクです。

 

ソースコードの補足していきます。

var bot = new Client("BOT_TOKEN")

ここでClientオブジェクトを作成しています。BOT_TOKENは前回使用したものと同じものを使用してください。

bot.on('voiceChannelJoin', (member, newChannel) => { ... } );

bot.on()でイベントを登録します。ここでは voiceChannelJoin というイベントを登録してます。 第二引数にイベントが呼び出された時の処理を関数として書きます。

member.username はユーザー名を、 newChannel.name はチャンネル名を取得します。

このソースコードを以下の環境で実行するとこんな感じになります。

いつものテストサーバーです。

結果

コンソールのほうに出力されましたね!

あとはこれを実際のボイスチャンネルに流すだなのですが、 とりあえずデフォルトチャンネルに流すようにします。

先程のソースコードの console.log() の部分を以下のように変更してみてください。 少々荒っぽい方法です。

bot.on("voiceChannelJoin", (member, newChannel) => {
    // 誰かがボイスチャンネルに入った時に行う処理
    let ch = newChannel.guild.defaultChannel;
    ch.createMessage(member.username + "が チャンネル[" + newChannel.name + "] に入室しました。");
});

bot.on("voiceChannelLeave", (member, oldChannel) => {
    // 誰かがボイスチャンネルから離れた時に行う処理です。
    let ch = oldChannel.guild.defaultChannel;
    ch.createMessage(member.username + "が チャンネル[" + oldChannel.name + "] から退出しました。");
});

bot.on("voiceChannelSwitch", (member, newChannel, oldChannel) => {
    // 誰かがボイスチャンネルを移動した時に行う処理です。
    let ch = oldChannel.guild.defaultChannel;
    ch.createMessage(member.username + "が チャンネル[" + oldChannel.name + "] から [" + newChannel.name + "] に移動しました。");
});

さっくり解説をすると以下の通りです。

// oldChannel が所属している guild の デフォルトチャンネルを取得する。
let ch = oldChannel.guild.defaultChannel;

// チャンネルに 'hoge' を送信する。
ch.createMessage('hoge');

guildというのはDiscordのサーバー1つ1つの事だと思ってください。

これを実行してボイスチャンネルに出入りするとデフォルトチャンネルに以下のように表示なります。

わーい!

特定のチャンネルに出力したりということを行うには少し工夫が必要になりますので、 それはまたの機会に気力があれば紹介出来たらなと思います。