投稿日:
皆さんこんにちは。
補給線を確保してからでなければ、安心して物事に取り組めない伊達あずさです。
どうやらこのフロアのポータルは出る時と入る時で行き先が別になることがあるようなのです。よって、このエリアでレベル上げを始めるにあたって、まずは帰路を確保しておかねばなりません。アル-フィーンドが落とす大量のシミター+3とチェインメイル+2を処分できなくなっちゃいますからね。
このエリアも四方にゲートがあるわけだけど、出る時と入る時で別の場所に出ちゃうのであれば、現段階では全てのゲートの接続先が不明な状態ということになります。果たしてどのゲートが出口と繋がっているのか。
ヒントがない状態で悩んでも仕方ありません。とりあえず、ここはひたすらに北を選択し続ける方針でいきましょう。同じ選択肢を選び続けることで少しでも条件を減らし、規則性を見出す作戦です。私がファリアの世界で得た知恵なのです。
あれ?ここはピット・フィーンドがいたところなんじゃ?ということは戻ってこれた?
なるほど、北のゲートは行きも帰りも同じ場所と繋がっていましたか。早くも北のゲートが封じられちゃったな・・・じゃあ、東へ!
あ!この木には見覚えがあります。ここは呪文が暴発しちゃうエリアじゃないですか。ってことは、ここを戻る感じで北に進めば一番最初のフロアに行けるはず!
戻れたよ!思いの外、あっさり元の場所に戻れちゃいましたね。
折角ですから、一旦外に出て戦利品を売ってしまいましょう。
ガーレナさんのところにいったら、シミター+3もチェインメイル+2もかなりの高値で買い取ってもらえます。沢山売ると買い取り価格は下がってしまうけど、それでもシミター+3が1510、チェインメイル+2が1000より下にはならないみたいです。これでもうお金に困ることはなくなりましたね。
以上の結果から、入口から西、西、北で石柱のある安住の地、帰りは北、東、北で最初のエリアまで戻れることが分かりました。
早速安住の地で連続休息を開始すると、グラブレズが5体出現するというケースも存在することがわかりました。グラブレズは1体20000ですから、全部倒せば100000ですよ!?
どうせここでは呪文が使えませんので、私もプレート・オブ・バルダランを着て戦う事になるわけだけど、AC-11の私ならグラブレズを5体同時に相手しても難なく前線を維持できます。もちろん、他の人にはねると事故が起こっちゃいますけどね。
連戦してるとアル-フィーンドの群れが一番面倒に感じてきますね。確かに戦利品は美味しいのですけど、飛び道具を使う関係上、距離をとって戦おうとするため、戦闘中にどんどんばらけていっちゃうのですよね。それを追いながら戦うのが結構面倒になってきます。しかも、呪文禁止領域でも使用できるディメンションドアで逃げちゃうこともあるのです。それに肝心の戦利品もすぐに持てなくなっちゃいますしね。お金が増えるにつれ、拾うのも売りに戻るのもおっくうになってきます。
・・・と、そんな贅沢な感情を抱いてしまうぐらい面白いようにレベルが上がるのですよ。
でもそれ故にキリがない・・・いや、物凄く楽しいのでキリがなくても全然いいんだけど、プレイ日記が全く進まない!!
とか言いながらもしつこくレベル上げを続けた結果、ヨシモさんのレベルが20となり、高レベル技能を取得できるようになりました。
色々と覚えられるようだけど、いまいち善し悪しが分かりませんね・・・とりあえず、貧弱なヨシモさんの生存力を上げられそうなハーディネスでも覚えてもらいましょうか。
そして、私もレベル18になった際、高レベル技能を取得できるようになりました。メイジはファイターよりも高レベル技能の習得が早いのですね。それにしても、メイジの高レベル技能には強そうなものが多いな・・・特にコメットとかいう呪文、抵抗不能の10D10範囲攻撃 + STに失敗した対象を1D4ラウンドも気絶させるとか強すぎなんじゃ!?しかも、フレンドリーファイアしないとか至れり尽くせり過ぎでしょう。あまり攻撃系の呪文を好まない私ですが、敵味方を識別できる範囲スタンとなれば話は別です。最後までインプルーブド・アラクリティとどちらにするかで迷ったんですが、やっぱりここはコメットですかね。
でもこれ、天井があるダンジョン内でも使用できるのでしょうか・・・それだけが気がかりです。
長時間レベル上げをしていると、少しでも怠けようと勤勉に工夫し始めてしまうわけですが、そんな怠惰で勤勉な貴方にお勧めしたいのがキャラクターのAIスクリプト!これをキャラクター毎に設定した上で、画面右下にあるボタンでパーティAIを有効にすると設定したスクリプト通りにキャラクターが自動で動くため、人力での操作が減ってとても楽になります。
ちなみに今設定しているスタンダードアタック(AGEN)というスクリプトは、敵を発見した際に自動で敵に近寄って攻撃するというAIスクリプトになります。これによって、特に私が操作せずとも勝手に敵を攻撃してくれるため、レベル上げのような極度の反復作業を要する場合には非常に便利です。
ただ、このスタンダードアタックは自分を攻撃してきた人に反撃するという機能も有しているせいで、多くの敵に囲まれた場合、自分を攻撃してきた相手に次々とターゲットを変えてしまうという微妙に宜しくない挙動をしちゃうのですよね。
相手がグラブレズのようにこちらを綺麗に取り囲んでくれる系の敵であればダメージが無駄にばらけはしますが、変に動き回ったりしないのでまだマシなのですけど、アル-フィーンドのように距離を取りながら遠距離武器で攻撃してくるタイプの集団が相手の場合、あっちこっち色んな敵を追いかけ回してしまうため、それはそれは効率が悪くなってしまいます。私は最初に狙いを付けた相手を倒れるまで攻撃し続けて欲しいだけなんだ!
どうにかできないものかとBaldur’s Gate 2のゲームフォルダを覗いてみると、コンパイル前のソースファイルがscript compiler/sourceの中に入っているではありませんか。
適当なテキストエディタで開いてみると、問題のスクリプトは以下のように書かれていました。
// * Attack enemies. //*Combat* IF AttackedBy([ANYONE],DEFAULT) THEN RESPONSE #100 AttackReevaluate(LastAttackerOf(Myself),30) END IF See(NearestEnemyOf(Myself)) THEN RESPONSE #100 AttackReevaluate(NearestEnemyOf(Myself),30) END
このスクリプトの詳しい仕様は分かりませんが、それでも最初のIF文が攻撃してきた相手に反撃するためのスクリプトであることだけは分かる!
// * Attack enemies.
//*Combat*
IF
ActionListEmpty()
See(NearestEnemyOf(Myself))
THEN
RESPONSE #100
AttackReevaluate(NearestEnemyOf(Myself),30)
END
そこで、最初のIF文を消し、2つめのIF文に「ActionListEmpty()」をちょい足ししてから保存し、コンパイルし直してみました。
他のスクリプトのソースファイルをぼ~っと眺めていて気付いたんだけど、多分、IFの条件にActionListEmpty()を加えることでスクリプト動作中に私が手動で呪文やアイテムを使用するなどの命令を出した時、そちらが優先されるようになったりするんじゃないのかな。スクリプトの仕様書を読んだわけではないので、適当だけど!!
ちなみに、コンパイルするにはscript compiler内のsourceフォルダの中にスクリプトのソースファイルを入れた後、コマンドプロンプトを開き、<Baldur's Gate 2のゲームフォルダ>/script compilerまでいってから「Compile <ソースファイル名>」と入力する必要があります。(私の場合はソースファイルをdAttack.bafとしたので、「Compile dAttack」と入力しました)
コンパイルされたスクリプトファイルはscript compiler内のcompiledフォルダの中に<ソースファイル名>.bsという形で作成されます。これをゲームフォルダの中にあるscriptsフォルダの中に入れれば、ゲームで使用できるようになります。
実に原始的な修正ですが、これで相手が倒れるまでターゲットを変更しなくなるので、大分効率が上がったよ!
よくよく見てみるとscript compilerフォルダの中にScripting Quick Referenceなどというものが入っていたので、これを読めばもっと複雑なスクリプトも書けそうですが、そんなことを始めちゃうと無駄に凝り始めて「その時間を使ってレベル上げをした方がマシだったよ!」なんてことになってしまいかねないので我慢します。
しかしこれ・・・終わりが見えなくなってきてしまいましたよ。自制心的な意味で。
そんなわけで、なんとレベル上げに勤しんだまま次回に続いちゃいます。

Studio POPPOのプログラム兼システム担当です。
ウォーキング・デッド大好き!ダリルかっこいいよっ!主食はキノコです。