ゲーム

Diablo2 Basemod 最新版は d2gs (プライベートサーバ対応)に対応していた件

Diablo2 リザレクト(以下D2R)がもうそろそろ発売ということもあり期待をしていますが、私のPCではちょっと3Dが厳しので遊べないかなと思っているこの頃、グラフィック低速にしてなんとか遊べるけど楽しいのか謎ですね。またD2Rでは、TCP/IPモードが無効になるということでプライベートサーバ(d2gs)もしばらく望みがなさそうですね。

さて、d2gsにBasemod.dllなどを組み込むのは結構難儀で、どうやっていDllをInjectionするかなのですがこれまではだいぶ古い Basemod.dll (もう配布されてない)は動いたのですが最近でた最新版(1.13.7)ではそのまま読み込めました。

https://www.moddb.com/mods/basemod

D2Win.dllと、Basemod.exe/ini/mpqを d2gsのフォルダにコピーすれば動きます。D2Win.dllがすでにInjectionの仕組みが入っているのでロードされます。Basemod.dllから更にDllをロードするのは動かない模様です。

---------------------------------------------------------------
21:45:44.474  ------------------------------------------------------
21:45:44.474  2021-09-19 21:45:44
21:45:44.474  Diablo II Game Server running under Windows XP (Version 6.010)
21:45:44.474  Vendor:  Intel
21:45:44.474  Version: Pentium III (no brand) (Type 0, Family 6, Model E, Stepping A, Brand 0)
21:45:44.483  Speed: Approx. 3600 MHz
21:45:44.483  Total Physical Memory: 981.48MB
21:45:44.483  Application Path: Z:\opt\d2gs_1
21:45:44.485  Local IP: 10.0.0.x
21:45:44.486  Computer name: D2GSLIN
21:45:44.486  ------------------------------------------------------
21:45:44.486
21:45:44.490  imagehlp.dll loaded for better stack crawls.
21:45:44.601  BaseMod Installing Patches
21:45:44.604  MPQ Loaded
21:45:44.637  BaseMod Installing PatchesEx
21:45:44.637  BaseMod Loaded

サーバ側(d2gs)で有効にしないと、傭兵の装備(フル装備)やGoldのオートピックアップなどはクライアント側のDataファイルでMod化出来ない部分なのでこのようなBasemodのようなDllが必要になります。(ProjectDiablo2なども独自のProjectDiablo2.dllなどがありロードされています)

今回のBasemodではいくつかこれまでと違ってQoLに影響があるものが組み込まれているのでいい感じで遊べそうです。

D2gsとクライアント側の設定は揃えておく必要があります。Dllなどは配布できないので気をつけておく必要があるでしょう。誤るとアイテムがLossするかもしれません。Basemodは、PD2に比べるとだいぶんと領域は小さいですが。

[CharmZone]
Enabled=1
CZLeft=0
CZRight=10
CZTop=3
CZBottom=6

もう一つのQoLは傭兵の装備の拡張(これも最近のModでは標準的ですね)

グラフィック的には、Ringが2個装備できますが実際には1つしかつけることが出来ません(これは多くのModでも解決できないんですよね、たまに出来るやつがありますが)

[MercMod]
FullEquip=1
RogueCrossBow=1
RogueAmaBow=1
; FullEquip allows Hireling to equip boots, gloves, belt, amulet and one ring.
; Allow Act 1 Rogue Hire to equip Cross Bows
; Allow Act 1 Rogue Hire to equip Amazon Bows

Act1のRogueもAmaBowつけることが出来ると選択肢が増えるんで良いですね。

さらにQuestの特典を金で購入することも出来ますがこちらも動きます。

いくつかの機能はそもそもの d2gsの拡張とコンフリクトしているのでどっちが有効になっているのかは実際にやって見てないのでわかりませんがそのうちに確認してみます。(Uber系なので時間掛かりそう)

クライアント側の設定がおかしくなって PlugYからBnetに接続するとCrashしてしまうので断念して、Basemodに付属してるGame.exeで動かしている。この場合、Basemod.iniから BH.dllを読み込んでもGame.exeが違うと言われてしまって動かすことが出来ない。クライアント側でLoot Filterを使いたかったのだが残念だ。


Diablo2で高解像度と高速描画(FPS-モーション予測) をする簡単な方法 2021年版

もう20年前のゲームなので需要はほぼないと思うのだがまだ遊ばれていてこの秋にはリマスター版も出る予定。しかし古いので最新のグラフィックボードにはもちろん対応してないしゲーム自体の解像度も低いのだがリリースされてからの歴史の中でWindowsのアップデートに伴い製品としてもなんとかついてきている状態。

これまでの定番は、「Glide3-to-OpenGL-Wrapper」というものだったのだが今回紹介するのはこれの置き換えとなる最新のドライバ。昨年くらいに出てきた ddraw も良かったのだがこちらは高解像度用のDLLと組み合わせて利用するなど若干手間が必要だった。

https://github.com/bolrog/d2dx/

ファイルをダウンロードして、DiabloIIのディレクトリに glide3x.dlld2dx-default.cfg をコピー(d2dx.cfgにリネームしておく)これだけ。

ショートカットは "C:\Diablo II - org\Diablo II.exe" -3dfx -w で問題なし。

d2dx.cfg

[window]
scale=1			# range 1-3, an integer scale factor for the window
position=[-1,-1]	# if [-1,-1] the window will be centered, otherwise placed at the explicit position given here
frameless=false         # if true, the window frame (caption bar etc) will be removed

[game]
# size=[-1,-1]		# if [-1,-1] d2dx will decide a suitable game size, otherwise will use the size given here
# size = [1068,600]
size = [1366,768]
filtering=2             # if 0, will use high quality filtering (sharp, more pixelated)
                        #    1, will use bilinear filtering (blurry)
                        #    2, will use catmull-rom filtering (higher quality than bilinear)

`size` で指定した解像度が変更できる選択肢として表示される。

正しく認識していれば右下に DX が表示されている。

このツールの良いところは、何も他のDLLをロードする仕組みがなくても高解像度になること。ちょっと感動。
また、拡大についてもFilterで3つだが選択できるので好きなものを選べる。

そしてもう一つの目玉が Motion Prediction (モーションの予測)とう機能が追加されている。

Even with the familiar “fps fix” applied to Diablo II, the internal game logic only ticks at 25 fps. Rendering at e.g. 120fps won’t give a smoother experience normally. D2DX now has a new feature that predicts unit positions between logic updates, resulting in actual high fps rendering. (As far as I’m aware this has never been done before with Diablo II.)

https://github.com/bolrog/d2dx/wiki/Motion-Prediction

とあるように、どんなにFPSを上げても内部が25フレーム分しかないので実際にはスムースになっていなかったのを予測で埋めて描画としてもスムースになるように変更したというものです。

実際に動かしてみるとマウスへの反応が若干良くなっている気がする。20年たってもまだまだファンが居るゲームというのもすごいけどこんなにシステムよりな部分までいじっても動いているゲーンエンジンというのが面白い。

D2X: HolyBaltの改造(複数本のミサイルへの変更)

Holy BaltをProjectDiablo2のように数本のミサイルに変更したいと思い skills.txt を修正していたが思うようにはならなかったがハードコーディングに近いが数は変更できたのでメモ

Holy Bolt 101 pal holy bolt 8 holybolt holybolt 42371 paladin_holybolt_cast cast_undead 17 holybolt holybolt 1 7 none SC SC xx 1 1 1 paladin_holybolt_cast cast_undead 6 20 1 1 1 4 32 1 1 6 #bolts par3 activation frame 2 triggered 2 number of arrows to fire 1 additional arrows per level 1 Acivation frame of arrows. 4 hitpoints healed per level 15 heal synergy 50 damage synergy 1 8 96 mag 8 8 10 13 16 20 16 8 11 15 18 23 (skill(‘Blessed Hammer’.blvl)+skill(‘Fist of the Heavens’.blvl))*par8 384 3000

そもそも変更を探すのに役立ったリンク

結局のところ、参考にしたのはAmaのMultishotを参考にすることで目的に近いことができている。GEからGA列付近の計算式はMultishotのままなのでこのあたりは正しく修正が必要なのだが放置している。そのためHealボーナスについてはどう動いているのか正確にはわからない。

Multishotスキルからの変更するときの注意点

  • CN (cltstfunc)列 = 11 にすると、弓を装備しないと発動しない
  • E(srvstfunc)列 = 4 にしていると、攻撃がすべて当たらなくなる(弓として当たろうとしている?)
  • GE(calc1)列が、Holy Baltの本数となるのでココを変更すれば良い

Holybaltがすべての的に有効になるとかなり強力なのでProjectDiablo2でも弱体化するかと思われていたスキルなので本数が多すぎると爽快感はあるがバランス崩れすぎるので注意

DiabloPD2徒然01

Project DIablo2ばかりを遊んでいるので他のゲームは何もしてないまま2021年になりました。Happy New Year !

段々とラダーも進んできてアイテムが行き渡り始めたのか大抵のアイテムはUm/Pul辺りでトレード出来るようになっています。トレードもDiscardを通じて行われ私自身は特に不自由なく利用できています。

トレード内の通貨

Runeになっていて価格は以下の表が一般的(2021/01/06時点)

Zod = 1.0
Cham = 0.5
Jah = 2.0
Ber = 3.5
Sur = 1.75
Lo  = 1.5
Ohm = 0.75
Vex = 0.5
Gul = 0.25
Ist = 0.15
Mal = 0.10
Um  = 0.05
Pul = 0.03
Lem = 0.02

見て分かるようにVexの価値が高くなっているので不要にRuneを合成はせずにそのままストックしておくか Vexまでにしてためておくのが良さそうです。PD2ではRuneは1マスで重ねられるのでそのまま持っておくのが一番わかり易いかなと思います。

HellfireへのKeyの相場

3 Keysets = 
6 Keysets = Gul
9 Keysets =
12 Keysets = Vex
15/18 Keysets = Ohm

概ね12Keysetsが一番売りやすい印象。今回Organsが100%ドロップではないのでそこそこしないとゲットできない。個人的には3セット使って1つくらいが平均のイメージなので最低9セット無いとトーチチャレンジができない。Organsの相場は取引したことがないのとDiscardでもあまり名指しででてこないのでわからないが現在、トーチの大半がVEX (0.5HR)で取引されているのでVEX以上であることはないと想像される。Orgransが手に入ればトーチはすぐ出し遊びの要素もあるのでOrgan自体は取引はほぼないと思ってよいのかもしれない。

Aniiへの相場

DiabloCloneを倒すためには、更に以下のアイテムが必要でこれがまたドロップしないのでこちらも取引がされている。それぞれの出現場所は

- Pure Demonic Essence(mapboss)
- Black Soulstone(Uber Trist)
- Prime Evil Soul(Hell DiabloまたはBaal)

上記のようになっておりMapも攻略しないと手にはいなないようになっている。このためUberTristを行わずにMapで遊んでいる人も Pure Demonic を持っている可能性も十分ある。この中では体感的には Black SoulStoneが一番落ちやすい気がする。実際トレード的にも 複数で Um ほど。最もでないのは Pure Demonic で

Pure Demonic Essence = 1.0 HR

Dcloneを倒して手に入るAnniの相場が、未鑑定で 2HR-3HR程度。物によってはそれ以上のHRで取引がされている模様(DiscardでOfferはされている)したがってこちらのアイテム自体も1HR程度は適切かなと思われる。100%DCloneを倒せるほどの人に取ってはもう少し価値があるのかもしれないが。

まとめ

現時点でT1マップをこなせるキャラがあるならひたすらRunしてPure Demonic を交換するのとその過程でのトレハンを楽しむのが良い気がする。召喚ネクロや召喚ドルはMFをかんたんに積むことが出来るのでそれほどの装備がなく(というかSETで十分)ともクリアして行けるので良いかと思う。

ということで貯めたHRで購入してみたLast Wish(現時点で14HR/自分で作るより安い)

今回Lifetapがなくなっていくなかで残されたまさにLast Wish。

Diablo2徒然その31

超級なんてまったくでないしHighRuneってなんだっけな感じだし、鍵はでないし臓器もでない。HellfireTouchを手に入れる道のりは長い。でもWSSは落ちるのでサイゴンを鍛える。

CorruptedをしてModがついても、Require Levelが上がらないみたいなので初心者セットであるサイゴンに使っている。いい感じに付けていくとノーマルからナイトメアまで使えそうな気がしている。これUpgradeして行けばどれくらい使えるんだろう。

上部へスクロール