変愚蛮怒のメインリポジトリ

Overview

最初に

本readmeは大分古くなっていますので、追々更新します。

インストールの方法

Windows

Windows用バイナリをダウンロードし、適当なフォルダに展開します。後は展開したフォルダに移動し、hengbandをクリックすれば遊べます。

Windows版独自の機能(by Kokaさん)

Option - 壁紙を使う で壁紙を設定できます。使用する壁紙は Option - 壁紙を選択 で選択できます。

UNIX

ソースをダウンロードします。そして、

tar -jxvf hengband-x.x.x.tar.bz2
cd hengband-x.x.x
./configure
make install

でコンパイル及びトップディレクトリへのコピーができます(x.x.x はバージョン番号)。

後は、ASCII文字画面なら、

./hengband -- -n<ウィンドウの数>

タイルグラフィックス画面なら、

./hengband -g -- -n<ウィンドウの数>      ## 通常の8x8タイル
./hengband -g -- -b -n<ウィンドウの数>   ## 2倍幅サイズのタイル
./hengband -g -- -a -n<ウィンドウの数>   ## 16x16タイル(別配布のタイルが必要)

等で遊べます。

また、スーパーユーザーとして setgid を付けてインストールしたい場合は、

./configure --with-setgid=games
make

の後、rootとして

make install

を実行すれば、/usr/local/ 以下にインストールされます。インストール場所の変更等については ./configure --help を参照してください。

標準の表示フォントはメインウィンドウが

"---medium-r-normal--24------iso8859-1,---medium-r-normal--24------jisx0208.1983-0"

で、サブウィンドウが

"---medium-r-normal--16------iso8859-1,---medium-r-normal--16------jisx0208.1983-0"

ですが、環境変数 ANGBAND_X11_FONT_? や ANGBAND_X11_FONT で変更できます。 ANGBAND_X11_FONT_? は ?番目のウィンドウ(?は0から7)の設定になり、ANGBAND_X11_FONT は前者によって設定されなかったその他のウィンドウの設定になります。

また、ウィンドウの表示位置やサイズを変える事もできます。 ?番目のウィンドウ(?は0から7)について、

  • ANGBAND_X11_AT_X_?でウィンドウのX位置、
  • ANGBAND_X11_AT_Y_?でウィンドウのY位置、
  • ANGBAND_X11_COLS_?でウィンドウのXサイズ(単位は半角の文字数)、
  • ANGBAND_X11_ROWS_?でウィンドウのYサイズ(単位は半角の文字数)

を設定できます。

XFree86 4.0 でXIMを使うときは、環境変数 XMODIFIERS に "@im=skkinput" や "@im=kinput2" と設定する必要があります。

基本操作

標準の設定ならば、テンキーで移動しフルキーでコマンド入力を行います。 コマンドが分からない場合、リターンキー又は'x'キーを押すとコマンドメニューが 出るので、そこから選んで実行することができます。 コマンドの最後についているアルファベットはコマンドを実行するためのキーです。 例えば、「休息する(R)」は'R'を押すことでも実行でき(大文字・小文字は区別)、 「周りを調べる(l/x)」は標準のキー配置なら'l'、ローグライクキー配置なら'x'を 押すことでも実行できます。

最初は辺境の地のすぐ隣りにある「イークの洞穴」に行くことをお勧めします。 ここは最深階に住んでいる「イークの大王」が強敵ですが、それ以外は安全な 小さな洞穴です。このダンジョンを征覇できるくらい強くなったら、街の外へ出て いろいろなダンジョンへ潜ってみるといいでしょう。 街の外へ出るときは、多くの食料を持っていかなければいけません。 この世界は非常に広いので、街の外に出るときは'<'で広域マップに入り、 目的地についたところで'>'で通常マップに戻る、という移動の仕方が便利です。 荒野では道や草原は比較的安全ですが、溶岩地帯や海の上は強力なモンスターが いて危険です。こういったところへ行くためにはさらに強くならないといけません。

辺境の地と同じ島にある火山は駆け出しの冒険者ではまだまだ歯が立ちません。 もっと強くなってから戻ってくるといいでしょう。 西に行くと辺境の地とモリバントの中間付近にオークの住む洞窟があり、 その南の島にはミノタウロスが住むと噂される魔法の迷宮があります。 他にも多くのダンジョンが勇敢な冒険者が訪れるのを待っています。 このゲームのメインとなるダンジョンであり、最終目的である 「混沌のサーペント」の棲む「鉄獄」のダンジョンはマップのほぼ中央、 モリバントの北東に位置します。

コマンド

詳しいゲームの説明はオンライン・ヘルプ('?'キーを押して表示)を参照 してください。ここでは基本的なコマンドだけ説明します。

コマンドは大文字と小文字を区別します。 多くのコマンドは小文字なのでCapsはOFFにしておきましょう。 以下のコマンドが全てではありませんが、 あまり使わないコマンドはリターンキーのメニューで選べば十分です。 u/Z ってあるのは、オリジナルキー配置ならu、ローグライクキー配置ならZです。

  • [移動]
    • テンキー(1-9) 各方向に移動(オリジナルキー配置)
    • h,j,k,l,y,u,b,n 各方向に移動(ローグライクキー配置)
    • 5/, その場にとどまる
    • < 上り階段を上る。地上では広域マップに入る。
    • > 下り階段を下る。広域マップから通常のマップに戻る。
    • Shift+方向 走る
    • Ctrl+方向 モンスターがいれば攻撃、ドアがあれば開閉、岩があれば掘る
  • [道具]
    • r 巻物を読む
    • q 薬を飲む
    • u/Z 杖を使う
    • a/z 魔法棒を使う
    • z/a ロッドを使う
    • E 食べ物を食べる
    • A 装備品の特殊能力を使う
    • F ランタンに油を補充する
    • f/t 飛び道具で攻撃する
  • [行動]
    • d アイテムを落とす
    • g アイテムを拾う
    • R その場で休む(HP・MPの回復)
    • o ドアや箱を開ける
    • s トラップやドアを探索する
    • k/Ctrl+d アイテムを壊す
  • [魔法]
    • m 魔法・祈りを使う
    • G 魔法・祈りを覚える
    • U/O 特殊能力を使う
    • b/P 持っている本を読む(自分の使える魔法の効力を調べる)
  • [装備]
    • w 武器・防具などを装備する
    • t 武器・防具などの装備を外す
    • F ランタンに油を補充する
  • [確認]
    • x 店で売っている物の能力を調べる
    • C キャラクターの情報を調べる
  • I 鑑定をした物の能力を見る 
    • i 持ち物の一覧表示
    • l/x 周りを見る
    • M 現在の階の全体マップを見る
    • ~ 様々な重要な情報を見るメニューを開く
  • [その他]
    • p ペットに命令する
    • = オプション設定
    • $ 自動拾いファイルを再読み込みする
    • _ 自動拾いファイルの編集
    • n/[ 前のコマンドを繰り返す
    • @ マクロの設定をする
  • [ヘルプ]
    • ? オンライン・ヘルプを開く ( a-z で項目選択。スペースで次ページ。)

アイテム表記

  • (XdY)

    • 打撃武器に使われる表記でその武器の基本攻撃力を示します。
    • Y面ダイスをX個振った合計のダメージを与えられます。
  • (+h,+d)

    • 基本的に武器に使われる表記で、攻撃力が増加します。
    • +hは命中率、+dはダメージに対する修正を示します。
    • 武器以外に攻撃力が増加する鎧や指輪、アミュレットで使われる場合もあります。
    • 重い鎧では+dの部分が省略されて(-h)とのみ表示され、鎧の重さのせいで動きが鈍り、命中率が下がることを示します。
  • [a,+b]([+b])

    • 防具なら[a,+b]、それ以外なら[+b]と表示されます。
    • aは防具本来の防御力(AC,アーマークラス)を示し、+bは魔法による増強を示します。
  • (+p)

    • そのアイテムが独自に持つ効果の修正を示します。
    • ダメージの指輪ならダメージ修正が+pされ、スピードの指輪なら+pの速度を得ることができます。
    • 武器や防具の場合は(+p隠密)や(+p探索)といったふうに効果が分かるように書かれる場合もあります(その場合でも全ての効果のうち1つしか分かりません)。
  • (xn)

    • 飛び道具に使われる表記で、その飛び道具のダメージ倍率を示します。
    • このnの値に腕力修正を加えたものが射撃武器倍率になり(キャラクターの情報コマンド'C'で確認可能)、大きいほど矢や弾を強く撃つことができます。

例1) (聖戦者)ダガー (2d4) (+10,+15) [+2] (+3)

このダガーは基本ダメージが4面ダイス2つで命中率に+10,ダメージに+15のボーナスがあります。さらに、防御力が2上昇し、+3の修正を何かに得ることができます(何が+3されるかは鑑定することによって分かります)。

例2) エルフの鎖かたびら (-2) [14,+12] (+3隠密)

この鎖かたびらはその重量のせいで命中率が2下がります。 基本防御力が14、魔法による防御力が12で合計26のACを得ることができます。 さらに隠密行動能力に+3の修正を得られます。

アイテムの頭に★や☆がついているものはアーティファクトと呼ばれるもので、世界に1つしか存在しません。 ★がついたものは最初から用意されているもので、発見したものは知識コマンド'~'の既知の伝説のアイテムで見ることができます。

全ての★や☆がついたアイテムや、多くの名のあるアイテムのように見ただけでは効果が分からないものは、鑑定することによってそのアイテムの能力を完全に知ることができます。

地形

自分のいる場所の地形によって様々な影響を受けます。周りを見るコマンド('l'又は'x')でそこの地形が何かを調べることができます。

  • '.': 床, 地面

    • 普通に通過することのできる床や地面です。
  • '#': 壁, 木, 草, 暗い穴

    • Windowsでは壁は灰色の■で表されます。
    • 壁は普通は通り抜けられません。
    • 木はレンジャーや浮遊能力のあるときは普通に通り抜けられますが、それ以外では通常よりもターン数がかかります。
    • 草は普通に通り抜けられます。
    • 暗い穴は浮遊がないと通れません。
  • '~': 水, 溶岩

    • 青の'~'は深い水, 薄い青の'~'は浅い水,赤の'~'は深い溶岩、薄い赤の'~'は浅い溶岩です。
    • アイテムを持ちすぎて重量が多いと深い水/溶岩で溺れてダメージを受けます。
    • 溶岩の上を通ると火のダメージを受けます。
  • '^': 山, トラップ

    • 茶色の'^'は山で、地上で浮遊能力があれば通り抜けられます。
    • それ以外の状況では通り抜けられません。
    • 山以外の'^'はトラップでさまざまな悪い効果のある罠が仕掛けられています。
  • '<', '>': 階段, 坑道

    • '<'は上りの、'>'は下りです。
    • 白は階段で階を1つ移動し、茶色は坑道で階を2つ移動します。

ちょっと高度なプレイ

知らなくてもプレイはできますが、知っているとより快適なプレイが楽しめます。

マクロ

変愚蛮怒ではある一連の動作を1つのキーに割り当てることができます。 例えば、a)の位置に[カオスの徴]を持っているときにマジックミサイルの魔法を 使うとき、普通のコマンド入力ではまず'm'で魔法の使用を選択、'a'で 魔法書[カオスの徴]を選択、'a'でマジックミサイルを選択、というふうになります。 つまり、'maa'と3回キーを押さなければなりません。 マクロを使えばこの動作を1つのキーを押すだけで実現できます。

例えば、次のようにすればF1キーを押すとマジックミサイルを撃つマクロを作る ことができます。 まず、'@'を押してマクロの設定に入ります。 そこで「(4) マクロの作成」を選び、「トリガーキー:」のところでF1を押します。 そして「マクロ行動:」のところで maa と入力し、リターンを押します。 これでF1キーを押すだけで maa と入力するのと同じ意味になります。

作ったマクロはセーブしないと、次にゲームを起動したときにまた登録しなおす 必要があります。 「(2) ファイルにマクロを追加」を選べばセーブできます。 このとき、ファイル名を「(名前).prf」にしておくと名前が(名前)のキャラで プレイするときに自動的に読み込まれます。

変愚蛮怒ではアイテムに対して'{'コマンドで「銘」をつけることができます。 ただ好きな名前を付けるだけでなく、一部の文字には特別な効果があります。 どの文字にどういう効果があるかについて、次に解説します。 なお、文中のコマンドはオリジナルキー配置でのコマンドを示します。 うまく銘を付けて上記のマクロと組み合わせると、非常に快適にプレイできます。

  • '=g'

    • この銘が書かれたアイテムは自動的に拾います。
    • 矢に書いておくと便利でしょう。
  • '#'

    • アイテムを'#'以降に書かれた名前のアーティファクトであるかのように表示します。
    • 例えば、ダガーに'#チキンナイフ'という銘をつけると、「ダガー『チキンナイフ』」と表示されます。
    • 表示が変わるだけでアイテムの持つ効能は一切変わりません。
  • '@a?'(aは任意のコマンド文字, ?は任意のタグ文字)

    • アイテムがどの位置にあっても固定した文字でそのアイテムを指定できるようにする為の銘です。コマンド'a'でアイテムを選択するときに、文字キー'?'を押すことによってこの銘の付いたアイテムを選択できます。
    • 魔法を使うときは'@ma'等のアルファベットを使った銘が便利です。
  • '@?'(?は0~9のタグ数字)

    • 任意のコマンドにおいてアイテムを選択するときに、数字キー'?'を押すことによってこの銘の付いたアイテムを選択できます。
    • この形式の場合はアルファベットは使用できません。
  • '!a'(aは任意のコマンド)

    • そのアイテムを'a'で実行できるコマンドで選択したときに確認をとります。
    • 例えば、帰還の詔の巻物に'!r'とつけておけば、巻物を読むコマンド'r'でその帰還の詔の巻物を選択したときに本当に使うか質問されるため、うっかり読んでしまうことを防止できます。
    • '!*'という銘を付けた場合は、あらゆるコマンドで確認をとります。
  • '.'

    • 一部のアイテムにはランダムなテレポートを引き起こすものがあり、そのアイテムを装備するとたまに「テレポートしますか?[Y/N]」という確認メッセージが出てプレイが中断されますが、ほとんどの場合はテレポートする必要はありません。
    • '.'という銘をつけておけば、この確認メッセージを表示しなくなります。
  • '$'

    • 一部のアイテムには警告の能力があり, トラップにかかりそうな時や, 強い攻撃をする敵の視界に入るときに警告しますが, '$'という銘をつけておけば, この警告がなくなります. この銘の使用は推奨しません.
  • '^a'(aは任意のコマンド)

    • この銘は装備しているアイテムにつけると効果があります。
    • この銘がついたアイテムを装備すると、コマンド'a'を使うときに確認があります。
    • 例えば、'^k'と銘をつけたアイテムを装備していると、アイテム破壊コマンド'k'を使うときには必ず確認されます。
  • '%'/'%all'/'%%'/'%%all'

    • これらの文字列を'{'で刻むと、武器、防具の耐性や能力を表わす文字に自動的に置き換えられます。'%' と刻むと漢字、'%%'ならアルファベットです。
    • 例えば火の耐性なら 'r火' または 'rFi'等です。
    • ただし、既に耐性が全て判っている(鑑定されている)アイテムに限ります。
    • 'all'が付いていない時は固定アーティファクとやエゴアイテムのデフォルトの耐性は無視して、追加耐性のみを表示します。'all'が付いていれば全て表示します。
    • この機能に慣れると、いちいち 'I'コマンドで耐性を表示する必要がなく一目で追加耐性が判るので装備を選ぶ時に便利でしょう。

    これらのコマンドは複合することができます。 '@[email protected]!k!k!d#ほげ' という銘をつけると、装備するときには0で、装備から外す ときには1で選択でき、破壊しようとするときには2回、床に落とそうとするときには 1回確認があり、名前が『ほげ』であるアイテムとなります。 アイテムの名前に変な文字が入らないよう、'#'を付けるときは最後につけることを お勧めします。

自動拾い/自動破壊

  • 簡単な自動拾い

    • 銘に'=g'が含まれているアイテムは自動的に拾います。
    • 矢等にこういう銘をつけると便利でしょう。また、オプション設定の(1)にある、「常にアイテムを拾う」をはいにすると、全てのアイテムを自動的に拾います。
  • 簡単な自動破壊

    • オプション設定の(6)にある、「アイテムの自動破壊を使用する」をはいにすると、アイテムを自動的に破壊します。
    • このままでは全てのアイテムを破壊しようとするので、同じくオプションの6番の、「価値があるアイテムは壊さない」~「がらくたは壊さない」をはいにすれば、自動破壊を使用していても対応するアイテムは破壊しなくなります。
  • 複雑な自動拾い/自動破壊

    • 細かく自動拾いや自動破壊を設定することもできます。プレイ中に'_'キーを押すと設定ファイルの編集画面に入ります。詳しい設定の書式についてはautopick.txtを参照して下さい。

タイルグラフィック、二倍幅タイル表示、大画面表示

  • グラフィック

    • WindowsとMacではメニューから選んで選択、Linux では起動時に -g オプションを付けると、画面をタイル・グラフィックを使った表示にする事ができます。8x8サイズの旧タイルと16x16サイズのAdam boltタイルがあります。
    • WindowsとMacではメニューから選ぶだけで使えますが、ソースアーカイブには16x16タイルは付属していないので、Linuxの場合はheng_graf.tar.gzを別にダウンロードして内容をlib/xtra/graf/以下に解凍してください。
    • -- -a オプションで使用できます。
  • 二倍幅タイル (Big tile)

    • タイルが小さすぎて見難いと感じる場合はさらに「タイルを2倍幅で表示」を選択(Linux では -- -b オプション)すると漢字と同じサイズの正方形のタイルで表示されます。
  • 大画面表示 (Big screen)

    • Windows、mac、Linuxのどれでも、プレイ中にマウスでウィンドウの大きさを変えるとマップ画面の表示領域が大きくなり、より広い領域を同時に見渡す事ができます。

おまけ

ゲームには直接関係ないおまけの機能です。

プレイ記録

UNIXでは ~/.angband/Hengband/ 、それ以外のOSでは変愚蛮怒の中の lib/user/ の ディレクトリに playrecord-(名前).txt というファイル名でプレイ記録があります。 ゲーム中に'|'コマンドで見ることができます。 どういう行動をしたときに記録をするかは'='コマンドのオプション設定で、 「(R) プレイ記録オプション」を選択すれば設定できます。

スコア登録

死亡したときや引退したときに、インターネットを通じてスコアを登録することが できます。 イントラネット内等、直接外部にアクセスできない人は lib/pref/proxy.prf に プロキシのアドレスを書くことによって、プロキシ経由で登録することができます。 ただし、データを改造したものや、セーブファイルをバックアップしてプレイした ものは登録しないで下さい。


Mr.hoge http://hengband.sourceforge.jp/ echizen@users.sourceforge.jp

Issues
  • 敵対モンスターの友好モンスター召喚時のバグについて

    敵対モンスターの友好モンスター召喚時のバグについて

    #1241 モンスター生成処理の際、友好化の条件が「モンスターが友好的な特性を持つ場合、"または"召喚主が友好、または強制的に友好にする場合」という処理だったため、モンスターが友好の特性を持つかどうかの判定を自然生成(whoが0)の時にのみするように変更するのはいかがでしょうか。 これであれば召喚主が敵対している場合は普段友好なモンスターも召喚された際に敵対して生成されます。

    bug 
    opened by Slimebreath6078 16
  • ObjectType::xtra3 を抹殺してchest_level とcaptured_monster_speed に分離した

    ObjectType::xtra3 を抹殺してchest_level とcaptured_monster_speed に分離した

    全くの動作未確認につきドラフトというかWIP状態です ObjectTypeの定義に書いてある以上にxtra3の役割が多いので、分離した後セーブデータをどう構成すべきか悩ましいです 特に、smith_customizedはSmithEffectTypeがnulloptかどうかで判定できそうな気がしますし、「MIN_SPECIAL_ESSENCE」のdefine文はもう役目を終えたので消してもいいか? と考えているところです どなたか (できればMIN_SPECIAL_ESSENCE の件で何かご存知のHabuさん)、このコードを確認して怪しげな点があるか確認してもらえると助かります → ごく古いバージョンのセーブデータで鍛冶師関連のマイグレーションをしていますが、今はv2.2.1からのマイグレーションすらできないので、削除の上[email protected]扱いでも良い気がします

    refactor 
    opened by Hourier 13
  • 鍛冶師の新規耐性へのエッセンス対応について

    鍛冶師の新規耐性へのエッセンス対応について

    鍛冶師の新規耐性へのエッセンス対応について

    呪力・水・時間逆転についてエッセンスが非対応になっていますので処理を追加できないでしょうか

    Originally posted by @gold-onion in https://github.com/hengband/hengband/discussions/321#discussioncomment-1043166

    enhancement 
    opened by sikabane-works 11
  • 【バグ】 キャラクタ情報のファイル出力で装備の記号が表示されない場合がある

    【バグ】 キャラクタ情報のファイル出力で装備の記号が表示されない場合がある

    環境

    • OS: Mac X11
    • バージョン: 3.0.0Alpha22 developブランチ

    バグの詳細

    キャラクタ情報のファイル出力で装備の記号 / }=="*[(]]] 等が表示されないことがある

    再現手順

    1. 適当なキャラクターで始める( 再現しない場合もあり条件は不明 )
    2. 適当な武器、防具を購入して装備する
    3. C コマンドから f コマンドでファイル出力する

    期待される正常な動作

    記号が表示される

    スクリーンショット

    補足事項

    最近の例 Alpha22 がまんづよい マインドフレア 元素使い http://mars.kmc.gr.jp/~dis/heng_score/show_dump.php?score_id=83542 Alpha21 セクシーギャル アンドロイド 戦士 http://mars.kmc.gr.jp/~dis/heng_score/show_dump.php?score_id=83541 Alpha21 ちからじまん クラッコン レンジャー http://mars.kmc.gr.jp/~dis/heng_score/show_dump.php?score_id=83540 Alpha20 ちからじまん コボルド 修行僧 http://mars.kmc.gr.jp/~dis/heng_score/show_dump.php?score_id=83539 Alpha20 すばしっこい ドラコニアン 盗賊 http://mars.kmc.gr.jp/~dis/heng_score/show_dump.php?score_id=83520

    Alpha12でも発生を確認しました

    Mac X11 以外でも発生していると思われます

    bug duplicate 
    opened by tanguband 11
  • GCU版の機能拡張: bigscreen / color / layout customize / cursor flicker fix

    GCU版の機能拡張: bigscreen / color / layout customize / cursor flicker fix

    Implement bigscreen for curses and use it as the default behaviour. The old behaviour is still avilable using -o as a subopt for -mgcu. Also implements a new syntax for user-controlled subwindow layouts (from poschengband), documented within code comments.

    enhancement 
    opened by OwenGHB 10
  • Compilation in Cygwin failed

    Compilation in Cygwin failed

    環境

    • OS: Windows 10
    • バージョン: 3.0.0Alpha49

    バグの詳細

    When compiling Hengband in Cygwin, following the instructions for Unix at https://github.com/hengband/hengband/blob/develop/readme-eng.md , I get an error:

    io/uid-checker.cpp:6:10: fatal error: util.h: No such file or directory 6 | #include "util.h"

    再現手順

    • From Cygwin setup, you'll need the autoconf-archive and libcurl-devel packages, in addition to the packages used in compiling vanilla ASCII Angband ( http://angband.oook.cz/forum/showthread.php?t=11013 )
    • In Cygwin, enter

    git clone https://github.com/hengband/hengband.git

    • Enter:

    cd hengband aclocal autoconf autoheader automake --add-missing autoreconf ./configure --disable-japanese make install

    • Compilation aborts with the "io/uid-checker.cpp:6:10: fatal error: util.h: No such file or directory" error noted above.

    期待される正常な動作

    The game would compile without errors.

    補足事項

    On the Angband forum, @backwardsEric commented http://angband.oook.cz/forum/showpost.php?p=156900&postcount=2 that

    That looks like a bug. I'd post an issue about it on Hengband's issue list. My guess as to why they haven't seen it when they compile for Linux is that SAFE_SETUID_POSIX somehow isn't set there while it is set on cygwin. Commenting out lines 51 to 53 of src/system/h-config.h and recompiling may work around the problem.

    With that suggested workaround, the game compiles, but dies with "Fatal Error" when run in Cygwin.

    bug 
    opened by smbhax 10
  • 鍛冶師リファクタリング

    鍛冶師リファクタリング

    鍛冶師のコードのリファクタリングの方針を見てもらうため、DraftPRを出しておきます。

    まず、鍛冶関連の処理を行う Smith クラスを object-enchant/object-smith.cpp,h に新設しました。 鍛冶関連の処理はすべてこのクラスを経由して行うことを基本としています。

    cmd-smith.cpp の内部で行っていた鍛冶の処理をほぼすべて Smith クラスに逃したので、 cmd-smith.cpp のコードはゲーム画面のインターフェースの処理に集中できるようになっています。

    鍛冶クラスには以下のenum classがあり、それぞれの情報を管理します。

    • Effect:アイテムに与えることができる鍛冶効果
    • Category:鍛冶のカテゴリ (Effectの大分類)
    • Essence:抽出できるエッセンスの種類

    object-smith.cpp に定義された、以下のテーブルで鍛冶の動作を管理します。

    • essence_drain_info_table:エッセンス抽出に関する情報
    • smith_info_table:鍛冶効果付与に関する情報

    複数のエッセンス消費や特性フラグ付与にも対応しているので、今まであったこれらのエッセンス(全耐性やオーラ・一時耐性発動など)に対するハードコーディングがかなり減っています。(小手への殺戮付与はあまりにも特殊なため、仕方ないので残っていますが) これにより、新たな耐性のエッセンス抽出や鍛冶効果の付与なども対応できるかと思います。

    ただ、現状すでに所持エッセンスの表示領域が画面いっぱいいっぱいになってしまっており、あらたなエッセンスや鍛冶効果を追加するとなるとページネーションに対応する必要があるかもなど、関係ないところの苦労もありそうな気がします。

    refactor 
    opened by habu1010 10
  • モンスターボールで捕まえたモンスターの情報をグローバル変数ではなくローカル変数で引き回した

    モンスターボールで捕まえたモンスターの情報をグローバル変数ではなくローカル変数で引き回した

    effect-processor::project() だけは呼んでいる箇所が多すぎたため、一旦ここでグローバル変数のまま受け取り、Alpha54以降に再度呼び出しの統合作業を実施します 最終的にはinput-key-processor::process_command() で宣言すればまとまりそうです

    問題はPlayerType (よりはかなりマシですが、近いレベル)と言っていいような引き回しっぷりです しかしどうしようもないかな? と思っています ご確認下さい

    refactor Priority:MIDDLE 
    opened by Hourier 9
  • 鍛冶コマンドの複数ページ対応/いくつかの鍛冶効果を追加

    鍛冶コマンドの複数ページ対応/いくつかの鍛冶効果を追加

    鍛冶効果を追加するにあたり、エッセンス一覧や付与画面が1画面に収まりきらなくなるので複数ページに対応させました。 また、複数ページ対応の動作を見るに当たり実際に増やして確認する必要があるので、同じPRにてかねてから予定していた以下の鍛冶エッセンスの追加を行います。

    • 耐水(水耐性)
    • 耐時間逆転(時間逆転耐性)
    • 耐呪力(呪力耐性)
    • 善良倍打(善良スレイ/*善良スレイ*/善良ESP)
    enhancement 
    opened by habu1010 8
  • 朦朧効果の調整

    朦朧効果の調整

    #249 にも関連するが、そもそもダイスの指定次第で朦朧の蓄積量が爆発的に跳ね上がる現在の朦朧蓄積ルール自体にも問題があると判断。

    今後追加されるモンスターでも網の目を抜けてしまうケースが多そうなので、ルールの方を間抜けに何ターンも殴り合わない限りは不明瞭まではそうそうないくらいまで調整することを考える。

    duplicate enhancement 
    opened by sikabane-works 8
  • 新しい朦朧の仕様を実装した

    新しい朦朧の仕様を実装した

    掲題の通りです 今回は、直接打撃に基づく朦朧値の蓄積を緩やかにしました それ以外 (例:轟音ブレス)は敢えて手つかずにすることで緩やかな蓄積となるように調整しました 手元で確認したところ、「Lv50のちからじまんサイクロプス戦士が宵闇のローブ+両手に肉体強化の指輪を着ている」というレベルの極端な状況でない限り「昏倒=行動不能」にはならないようになりました また、そうであるが故にアイテム使用全般に失率を設けるのも妥当と判断しました ご確認下さい

    enhancement 
    opened by Hourier 7
  • is_a_vowel()が日本語版だと宣言抜けているせいで日本語版Windowsでビルドエラー

    is_a_vowel()が日本語版だと宣言抜けているせいで日本語版Windowsでビルドエラー

    日本語ビルドで同関数のヘッダファイルが#ifndef JPに囲われていてエラー発生。

    重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 エラー C3861 'is_a_vowel': 識別子が見つかりませんでした Hengband C:\hengband-1\src\locale\english.cpp 49

    bug 
    opened by sikabane-works 0
  • アリーナから出てくると乗っていないペットが消える

    アリーナから出てくると乗っていないペットが消える

    環境

    • OS: [例: Windows 版
    • バージョン: [例: 3.0.0Alpha61

    バグの詳細

    アリーナから出てくると乗っていないペットが消える

    再現手順

    ペットを連れた状態でアリーナに入り、勝利し、出る

    期待される正常な動作

    クエスト受注などによるMAP再生成と同様にペットはそのまま残る

    opened by daradarach 0
  • 【バグ】両手で構えるところ右手で構えたとメッセージされる

    【バグ】両手で構えるところ右手で構えたとメッセージされる

    環境

    • OS: [Windows 版.]
    • バージョン: [例: 3.0.0Alpha61]

    バグの詳細

    両手持ち武器を持っているのに「右手で構えた」と表示される。

    再現手順

    ホビット盗賊、ショート・ソードと野太刀 右手に武器(ショート・ソード)を持った状態でさらに両手持ち武器(野太刀)を装備 「二刀流で戦いますか?」y 右手に武器(ショート・ソード)、左手に両手持ち武器(野太刀)を装備した状態で、右手の武器(ショート・ソード)をはずす。 「野太刀を右手で構えた。」とメッセージされる。

    装備一覧ウインドウは両手と表示しています。 セーブファイルは省略します、すみません

    期待される正常な動作

    「(両手持ち武器)を両手で構えた。」とメッセージする。

    スクリーンショット

    省略します

    補足事項

    過去のバグ報告は確認していないためダブっていたら無視してください。 失礼しました。

    bug 
    opened by 16003 1
  • C5246 コンパイル警告の無効化

    C5246 コンパイル警告の無効化

    最新のdevelopブランチをVS2022 v17.2.2 でコンパイルすると、掲題の警告が大量に出ます 以下のURLによると、規定で無効化されているようです 対処しても良さげで (※)、かつ無視するようにプロジェクトファイルを修正しても良さそうです どちらにすべきか相談お願いします https://docs.microsoft.com/ja-jp/cpp/preprocessor/compiler-warnings-that-are-off-by-default?view=msvc-170

    ※ 直し方はイマイチ不明瞭

    refactor Priority:LOW 
    opened by Hourier 0
Releases(3.0.0Alpha62)
  • 3.0.0Alpha62(Jun 19, 2022)

  • 3.0.0Alpha61(Jun 5, 2022)

  • 3.0.0Alpha60(May 15, 2022)

  • 3.0.0Alpha59(Apr 24, 2022)

  • 3.0.0Alpha58(Apr 10, 2022)

  • 3.0.0Alpha57(Mar 27, 2022)

  • 3.0.0Alpha56(Mar 10, 2022)

  • 3.0.0Alpha55(Mar 5, 2022)

  • 3.0.0Alpha54(Feb 28, 2022)

    本リリースはHotFixです。リファクタリングのエンバグにより発生した、特に致命的な以下の問題を解決しました。

    • 自分のキャラ表示が @ ではなく別の文字に変わってしまう #2331
    • スレイが効くべき相手に効かず、効かないはずの相手に効く #2323
    • 忍者が重い装備を付けると加速が+99になる #2322
    • ペットを押し退けて移動することができない #2308
    • 店売りに並の矢と並のクロスボウの矢が売られない #2282

    その他更新内容詳細については、下記比較でお願いします。

    Full Changelog: https://github.com/hengband/hengband/compare/3.0.0Alpha53...3.0.0Alpha54

    Source code(tar.gz)
    Source code(zip)
    Hengband-3.0.0Alpha54-en.zip(5.01 MB)
    Hengband-3.0.0Alpha54-jp.zip(5.22 MB)
  • 3.0.0Alpha53(Feb 20, 2022)

  • 3.0.0Alpha52(Feb 6, 2022)

  • 3.0.0Alpha51(Jan 23, 2022)

  • 3.0.0Alpha50(Jan 9, 2022)

  • 3.0.0Alpha49(Dec 26, 2021)

  • 3.0.0Alpha48(Dec 12, 2021)

    追加仕様

    • (今回はなし)

    デバッグ

    • アヌビス&チャリオッツ二刀流で二重にAC低下を起こす #1894
    • 継続しない歌と呪術の熟練度が上昇しない #1900
    • 長いマクロを確認しようとするとゲームが落ち、起動できなくなる #1897 #1899
    • 詐欺オプションの「その他のことをのぞき見る」が一度死んだあと次のゲームでも有効になってしまう #1891 #1904

    リファクタリング

    • effect_player_type のクラス化 #1423 #1880
    Source code(tar.gz)
    Source code(zip)
    Hengband-3.0.0Alpha48-en.zip(4.96 MB)
    Hengband-3.0.0Alpha48-jp.zip(5.17 MB)
  • 3.0.0Alpha47(Nov 28, 2021)

    ゲームシステム関係

    • 自傷フラグの自動スポイラー対応 #1875

    ゲームバランス調整

    • ★ダイアナの長弓の追加と調整 #1877 #1881
    • ランダムアーティファクトの発動に加速(50+d50)追加 #1876 #1692
    • ランダムアーティファクトの発動にヒーロー+祝福(25+d25)追加 #1878 #1693
    • 強力に呪われている武器の恐怖/狂戦士化の呪い効果を強化 #1879
    • 「執拗な呪い」の実装 #1873
    • 「呪力弱点」の呪い追加 #1884
    • アヌビス神のカタナの性質を原作により近づけつつ、シルバーチャリオッツとの二刀流補正を追加 #1886 #1868 #1869

    リファクタリング

    • モンスター闘技場のモンスター種族評価値を calc_monrace_power() に分離して、monster-race.cpp/h へ移動。 #1872 #1871
    • 真*勝利*者条件の整理とメソッド化 #1859 #1874
    • rbm_type を enum class 化しつつ RaceBlowMethodType に改名。 #1889

    デバッグ

    • 英語翻訳の各種ミス修正 #1882
    • 地震による落盤の死因表記が「0feet」になる #1885 #1883
    Source code(tar.gz)
    Source code(zip)
    Hengband-3.0.0Alpha47-en.zip(4.96 MB)
    Hengband-3.0.0Alpha47-jp.zip(5.17 MB)
  • 3.0.0Alpha46(Nov 14, 2021)

    ゲーム追加要素

    • 継続自傷ダメージ装備の導入 #1849

    ゲームバランス調整

    • ★バルログの長ゴスモグのムチの性能を大幅変更 #1849
    • ★『レイトウメカジキ』の追加 #1854

    リファクタリング

    • spell_type の enum class 化 #1830 #1848
    • ソースコード内BattleForm表記をStance表記に統一 #1852
    • rbe_type の enum class 化 #1761 #1829
    • モンスターにダメージを与えた際の属性を取得 #1853
    • MonsterDamageProseccorに複合属性渡しを許可する #1855
    • 『手負いの熊』に適用された生成時初期HPを CURHP_* フラグで%指定できるように汎用化。 #1857 #1856
    • enum spells-typeをenum class ATTRIBUTEに置換 #1858
    • enum classの名称整理 #1861 #1824
    • struct player_type を class PlayerType に置換。 #1862 #1814

    デバッグ

    • 誰得の巻物で固定アーティファクトが生成されない #1863
    Source code(tar.gz)
    Source code(zip)
    Hengband-3.0.0Alpha46-en.zip(4.95 MB)
    Hengband-3.0.0Alpha46-jp.zip(5.16 MB)
  • 3.0.0Alpha45(Oct 31, 2021)

    ゲーム追加要素

    • 新規モンスター『カルバノグの殺人兎』#1755

    ゲームバランス調整

    • 天上のクロークに浮遊能力を追加 #1806 #1807

    リファクタリング

    • 魔法の熟練度処理を PlayerSkill クラスに移設 #1804
    • object_type宣言の余計なセミコロンを機械的に削除。 #1832
    • ビルドテストの順序を変更 #1835
    • RBE_TYPE を RaceBlowEffectType に改名して enum class 化。 #1829
    • PlayerSkill クラスへのリファクタリング #1833 #1789
    • FlagGroup クラスで EnumRange を受け取れるようにする #1834
    • PlayerRaceクラスに処理の集約 #1842
    • 変身中の切り傷無効処理の可読性向上 #1843
    • 熟練度レベルの定数を enum class にする #1836 #1789
    • モンスターのHP最大値30000のマジックナンバーを修正 #1837 #1838

    デバッグ

    • カメレオンの王の死亡時変身先のモンスターが死亡扱いになる #1839 #1840
    Source code(tar.gz)
    Source code(zip)
    Hengband-3.0.0Alpha45-en.zip(4.95 MB)
    Hengband-3.0.0Alpha45-jp.zip(5.16 MB)
  • 3.0.0Alpha44(Oct 20, 2021)

  • 3.0.0Alpha43(Oct 19, 2021)

  • 3.0.0Alpha42(Oct 18, 2021)

  • 3.0.0Alpha41(Oct 17, 2021)

    システム追加/調整

    • デバッグコマンドで固定アーティファクトをリストから選択できるようにする #1704
    • 乱数生成に STL を使用する #1759
    • 英語版のフレーバーテキストの連結を改善 #1768

    ゲームバランス追加/調整

    • 秩序の指輪が他の指輪より重いのを同じにした #1790
    • 装備している武器と同系統の武器にも武器熟練度の経験値が入るようにする #1782 #1799

    デバッグ

    • 詐欺オプションでカーソルが動かない #1702
    • 呪術四冊目の全復活の不具合 #1708
    • キャラクタ情報表示で確認できる各種フラグで鍛冶で付与した発動が表示されない #1740 #1742
    • 元素使いで切り傷治癒の呪文が切り傷を蓄積させる #1772 #1773
    • 店主のクラス・種族リストが未初期化のまま追加されようとしてソフトウェアが落ちていた不具合を解消した #1777 #1776
    • init_towns() とinit_buildings() の返り値が使われていないので削除した #1780
    • おじゃまぷよの英文フレーバーが余計だった(爆発は別にしない)ので修正。 #1797

    リファクタリング

    • make_object() の引数rq_level を std::optional にする #1737 #1741
    • '? true : false' 形式の判定を適切に差し替えた #1749 #1523
    • player_race_type を PlayerRaceType に置換した #1751
    • セーブデータフラグ群をenum class として定義した #1745
    • 機能的に無意味と判断されたexe_reading_savefile()中のrd_unique_info()の呼び出しと関数そのものを削除 #1757 #1756
    • Patronクラスのコンストラクタからp_ptrを外した #1762
    • arena-type構造体をbuilding-type-definition.h から arena-info-table.h に移した #1764
    • 店舗の種類を enum class StoreSaleType 型に変更しリファクタリング。 #1760 #1758
    • enum および enum class の列挙値の範囲を扱うクラス #1769 #1760 #1770 #1771
    • enum tval_type を enum class ItemKindType に改名した #1767
    • 敵の呪文詠唱のメッセージを表示する関数の文字列変数を改名・構造体化する #1522 #1521
    • enum tval_type を enum class ItemKindType に改名する #1766
    • player_class_type を enum → enum class に変換した #1754
    • 武器熟練度のテーブルを std::map にする #1774
    • MAX() のマクロ関数をstd::max() に差し替えた #1433 #1784
    • ABS() のマクロ関数をstd::abs() に差し替えた #1434 #1785
    • MIN() のマクロ関数をstd::min() に差し替えた #1432 #1786
    • モンスターのオーラ情報をflag2/3 からaura_flags へ分離した #1791 #1787
    • ポンド→キログラム の変換をh-define.h からjapanese.h/cpp へ移した #1788
    • lbtokg() の関数化 #1437
    • 熟練度関連の処理を扱う PlayerSkill クラス #1792
    • savedata_item_flag_type とsavedata_monster_flag_type をenum classとして定義する #1744
    • deleteしているだけのデフォルトコンストラクタを消す #1793 #1794
    • 敵の呪文詠唱のメッセージを表示する関数の文字列変数を改名する #1521
    • item-loader.cpp/h をクラス化し、ファクトリクラスで処理を分割した #1798 #1796
    • monster-loader.cpp/h をクラス化し、ファクトリクラスで処理を分割した #1801 #1746
    • セーブファイルのenum(enum class)値とbool値を読み書きする関数を追加する #1729 #1783
    • get_value()が参照代入値ポインタの入力前値をデフォルト値にするよう仕様追加。 #1778 #1779

    謝辞

    本バージョンもコミッター、ソース寄稿者、アイデア提供、およびデバッグ報告を行っていただいたGitHub及びDiscordコミュニティの各位の力添えでリリースできました。ありがとうございます。 (文責:deskull)

    Source code(tar.gz)
    Source code(zip)
    Hengband-3.0.0Alpha41-en.zip(4.95 MB)
    Hengband-3.0.0Alpha41-jp.zip(5.16 MB)
  • 3.0.0Alpha40(Oct 3, 2021)

    主な変更

    今回、最大規模のリファクタリングや仕様変更が行われました。バグなどありましたら報告いただければ幸いです。 2021/10/05一部重複修正、加筆。

    システム追加/調整

    • 階段昇降時の効果音追加 #1574 #1612
    • ウィザードモードを廃止してデバッグモードに統一した #1534 #1507
    • モンスター・ボールを武器と交換できるようにする #1668 #1442
    • 初心者用簡単モードを削除した #1686
    • オプションの基本ウェイト量をms単位に変更可能 #83 #1706
    • デバッグコマンドの固定アーティファクト生成をリストで選択する #1705 #1704
    • Windows版アイコンを斑多氏デザインに変更 #469 #260 #1733
    • ランダムクエスト報酬を上方修正した #1736 #1413

    ゲームバランス追加/調整

    • 鍛冶師の付加発動に「階のユニークモンスターを表示する」を追加 #1608
    • 体重について騎乗に若干の影響を及ぼしていた処理を削除し、フレーバーの表示以外に使わなくした #1656 #1654
    • 生命領域の魔法「究極の耐性」/剣術家の「無双の型」を新規に追加された耐性に対応させる #1675 #1678
    • プレイヤーの朦朧度について理不尽なケースが減るようマイルドに調整した #553 #1682
    • 鍛冶で岩石溶解の発動付加のエッセンス消費量を増やした #1730 #1731

    デバッグ

    • src/term/z-form.cppに関するLinuxビルドエラーを修正 #1581 #1582
    • 鍛冶師がエッセンス抽出すると割引率が消去される #1575 #1583
    • 鍛冶で矢弾を強化する時エッセンス数が足りているのに不足していると判定される #1584 #1577
    • floor_typeの配列的に扱うメンバ、荒野、クエスト、ダンジョン探索深度に std::vector を使用する #1586
    • Windows版でマウスドラッグ時にメモリリーク #1595
    • string_make で確保した領域に C_KILL している #1596
    • 維持のない能力値アップが明るい緑でなく深い緑で表示されるようになっていた #1603 #1602
    • quark_add() においてコンパイル警告が出るのを修正した #1605
    • リファクタリング中のテンプレート処理に関するビルドエラー問題を修正 #1610 #1611
    • 誤ってterm_dataへのポインタを初期化してゲームが起動しなくなっていた #1620 #1618
    • ウィザードモードのID指定モンスター生成(N/n)が回数指定の事前入力のみを想定した仕様で手動指定が足りなかった #1615 #1614
    • エッセンス抽出した時にベースアイテムの修正値がマイナスだった場合、その数値になるまで吸ってしまう #1624
    • player-info/class-specific-data.h リファクタリング時のLinuxビルドバグ修正 #1632 #1631
    • 魔道具術師で暗闇の杖が取り込んでいなくても使用できる #1633
    • 呪術の処理から吟遊詩人の処理を呼んでいるエンバグ #1638
    • 呪術ハイメイジで詠唱一時中断後に詠唱を再開しなくなっているエンバグ #1637
    • player-info/bard-data-type.hのビルド設定抜け修正 #1647 #1646
    • 攻撃魔法キャンセル時の魔力消費のタイミング変更して一部魔法キャンセル時にもMPを消費する不具合修正 #1293
    • 痛恨の一撃を食らった時に朦朧値が正しく蓄積しない不具合を修正した #1676
    • player-info/monk-data-type.h のLinuxビルド設定ミス修正 #1720 #1719
    • 詐欺オプションでカーソルが動かない #1728 #1702
    • 忍者の変わり身が意図せず発動する事象を修正した #1734 #1727
    • 塔のクエストがクリア状態にならない不具合を解消した #1735

    リファクタリング

    • ロード情報の明記化 #1524
    • *_info 配列に対するループを range-based for に置き換える #1566
    • Visual Studio の警告に対処 #1568
    • C_MAKEによる一時的バッファをstd::vectorで置き換える #1570
    • player_type::inventory_list の型を shared_ptr<object_type[]> に変更 #1585
    • 街・店舗・店舗のアイテム情報を std::vector もしくは std::unique_ptr にする #1587
    • マクロ関連の配列変数をstd::vectorにする #1589
    • ファイル読み書き用のバッファを std::vector にする #1588
    • quark関連のコード #1590
    • alloc_*_table に std::vector を使用する #1591
    • 自動拾い関連の配列変数を std::vector にする #1592
    • to_wchar と to_multibyte の内部バッファを std::vector にする #1593
    • X11版のメモリ領域確保の方法を変更 #1597
    • C_MAKE / C_KILL マクロを排除する #1567 #1601
    • bad-status-setter.cpp/h のクラス化 #1558 #1576
    • デバッグコマンドのメニューテーブルの型 #1606
    • WIPE/C_WIPE/COPY マクロを削除する #1604
    • max_*_idx を廃止する #1619
    • BadStatusSetterクラスのリファクタリング #1578
    • PlayerCutクラスを作成して切り傷処理を移管した #1609
    • 職業固有のデータを持てるようにするシステムの導入 #1617 #1520
    • BadStatusSetterクラスに 各種バッドステータス値変更メソッドを定義した #1625 #1599
    • chest.cpp/h のクラス化 #1569
    • デバッグ時のアイテム選択を日本語化した #1621 #1623
    • game-data-initializer.cpph/h に定義されているメソッドの無意味な返り値をvoidに変更した #1622
    • calc_monster_critical() を廃止してPlayerCut/PlayerStun::get_accumulation()/get_accumulation_rank() に個別定義した #1626
    • 青魔道士の固有データを magic_num から分離 #1628
    • 青魔法のタイプを enum から enum class にする #1630
    • 魔道具術師の固有データを magic_num から分離する #1634
    • 吟遊詩人の固有データを magic_num から分離する #1639
    • 不要になった magic_num1/2 を player_type から削除 #1640
    • 職業専用データのメンバに初期化子をつける #1641
    • ものまね師の専用データを職業固有データに移動する #1645
    • perilous_secrets() をspells-object.cpp/h からspecific-object/stone-of-lore.cpp/h へ移動させる #1571 #1627
    • プリコンパイルヘッダをいくつか追加 #1652
    • スナイパーの専用データを職業固有データに移動する #1650
    • ソース中キーワード seikaku をpersonality に改名した (スコアサーバのパラメータを除く) #1657
    • 馬鹿馬鹿よりカオスパトロンのクラス化移行を移植. #1649 #1390
    • SourceTrailの解析 (clangベース)でエラーが出た箇所を修正した #1660
    • FlagGroup::first() を実装 #1672
    • chest.cpp/h のクラス化 w/ ChestTrapTypeの定義 #1629 #1598
    • clang-format の整形ルールの調整 #1673 #1671
    • 職業由来の特性フラグの処理のリファクタリング #1674
    • 種族関連の処理を PlayerRace クラスへ移動する #1677
    • アイテムの使用に関する exe_hoge() 関数をhoge-execution.cpp/h に移しクラス化した #1648
    • デバッグコマンド実行時に職業固有データを更新する #1684
    • Windows(Visual Studio)用の必要ヘッダファイルの調整 #1687
    • 青魔法の選択処理 #1667 #1689
    • effect-player.cpp の整形 #1691
    • ASCII文字↔整数の変換マクロ群を関数化する #1697
    • スポイラー出力に使用するアイテムのカテゴリ分けテーブルを整理 #1703
    • activation_info を配列からvectorに差し替えた #1698
    • 剣術家の型を職業固有データに移動する #1707
    • alloc-entry-definition.h を alloc-entries.h に吸収合併した #1714 #1715
    • 修行僧の構えを職業固有データに移動する #1718
    • random-art-activation-type をenum classに置換した #1709
    • random_art_activation_type の16ビット化 #1700
    • quest-completion-checker.cpp/h をクラス化した #1712 #1710

    謝辞

    本バージョンもコミッター、ソース寄稿者、アイデア提供、およびデバッグ報告を行っていただいたGitHub及びDiscordコミュニティの各位の力添えでリリースできました。ありがとうございます。 (文責:deskull)

    Source code(tar.gz)
    Source code(zip)
    Hengband-3.0.0Alpha40-en.zip(4.93 MB)
    Hengband-3.0.0Alpha40-jp.zip(5.14 MB)
  • 3.0.0Alpha39(Sep 20, 2021)

    今回の更新に関する重要事項

    今回Alpha38の重大な不具合修正のための緊急リリースとなります。

    Alpha38で鍛冶師の新要素への対応についてセーブデータの引継ぎまで可能にするのは極めて煩雑になるため、非対応を決定しました。本バージョンの更新をまたいでの鍛冶師セーブデータの更新はできなくなるのでご了承ください。

    不具合修正

    • 鍛冶で遠隔武器や矢弾の命中/ダメージ修正を強化できない #1561 #1562
    • ピカチャウ(ルルイエのすがた) の警戒度と進化経験値を取り違えていたので修正した #1560

    リファクタリング

    • info 配列の要素のメンバに自身のindexを持たせる #1549 #1538
    Source code(tar.gz)
    Source code(zip)
    Hengband-3.0.0Alpha39-en.zip(4.84 MB)
    Hengband-3.0.0Alpha39-jp.zip(5.05 MB)
  • 3.0.0Alpha38(Sep 19, 2021)

    今回の更新に関する重要事項

    今回鍛冶師の新要素への対応についてセーブデータの引継ぎまで可能にするのは極めて煩雑になるため、非対応を決定しました。本バージョンの更新をまたいでの鍛冶師セーブデータの更新はできなくなるのでご了承ください。

    またモンスターやアイテムの追加や調整については後日追記します。

    主な変更

    システム追加/調整

    • 地形や毒等のダメージ発生時の効果音を追加 #1483 #1401

    ゲームバランス追加/調整

    • 鍛冶師仕様の大幅変化 #1497 #1527
      • 鍛冶師エッセンス付与時のエッセンス量表記を「必要数/所持数」から「所持数/必要数」に変える #1493 #1494
      • 鍛冶師のエッセンスを全て最大所持量にするデバッグコマンド #1516
      • 鍛冶コマンドの複数ページ対応/いくつかの鍛冶効果を追加 #1515
      • 鍛冶師の発動効果の追加と仕様変更 #1527
      • 新しいエッセンス対応 #1273
    • あてどなくふらつく商人の説明文に誤訳、「魅力のアミュレット」ではなく「装飾のアミュレット」に修正した #1138 #1542
    • モンスターとアイテムの調整と追加(詳細はリンク先へ) #1405 #1547 #1552 #1550 #1551 #1543 #1537 #1555 #1460 #1429
      • 可能ならば後日追記します。

    デバッグ

    • X11版インターフェースのメモリリーク #1463
    • 地形ダメージ判定時の自然回復フラグ修正 #1475
    • Linux/Unix with --disable-pch, object-enchant/object-smith.h のコンパイルミス修正 #1505 #1506
    • モンスターが直接攻撃をしなくなるエンバグを修正した #1546 #1545
    • 鍛冶師関係のデバッグ
      • 鍛冶師効果定義の重複修正 #1513
      • +2以上の追加攻撃の鍛冶ができてしまうエンバグ #1525
      • 新規鍛冶効果の追加 #1519
      • 矢弾に効果の無いエッセンスが付与できてしまう #1531 #1541
      • メニューコマンドでエッセンス付与する時の挙動 #1540 #1528

    リファクタリング

    • もう使われていないプリプロセッサの削除 #1417
    • NULLのnullptr置換 #1448
    • オブジェクトの特性フラグ変数をFlagGroupクラスに移行する #1478
    • すべてのソースファイルをBOM付きUTF-8にする #1480 #1481
    • spells-hex.cpp/h のクラス化&メソッド分割 #1482 #1469
    • monster-attack-player.cpp に定義されていた呪術関係の処理をspells-hex.cpp/h へ移す #1485 #1486
    • PlayerRace/PlayerClassの再定義とメソッド移行 #1495 #1489
    • clang-format調整 #1501 #1502
    • 鍛冶師に伴うリファクタリング #1497 #1488
      • 新規エッセンスのためのリファクタリング #1282
      • 鍛冶効果情報をカスタマイズしやすく再設計 #1510
    • 不要な型エイリアス削除 #1464 #1503
    • grid.cpp/h の分割 #1444
    • プレイヤー構造体の変数名やコメント名を統一 #1499 #1504 #1479 #1511 #1512
    • arg_fiddleを常時真として削除した #1526
    • spells-hex.h に定義された関数マクロの除去 #1473 #1518
    • arg_wizardを常時偽として削除した #1530 #1529
    • 整数値をenum(enum class)型に変換する関数テンプレートの追加 #1532 #1533
    • モンスター進化のスポイラー生成ルーチン改善 #1539
    • player_type から時限ステータスを分離した (朦朧のみ) #1548 #1498

    謝辞

    本バージョンもコミッター、ソース寄稿者、アイデア提供、およびデバッグ報告を行っていただいたGitHub及びDiscordコミュニティの各位の力添えでリリースできました。ありがとうございます。 (文責:deskull)

    Source code(tar.gz)
    Source code(zip)
    Hengband-3.0.0Alpha38-en.zip(4.84 MB)
    Hengband-3.0.0Alpha38-jp.zip(5.05 MB)
  • 3.0.0Alpha37(Sep 5, 2021)

    主な修正

    ゲーム調整

    • 最近追加された耐性がランダムな耐性付与するように #1451 #1453

    デバッグ

    • サブウィンドウのアイテム欄の記号が表示されない #1426 #1427
    • 乗馬中に「乗馬にふさわしくない武器」を判定するルーチンが正しく動作していなかった #1443 #1441
    • object_type::is_offerable() のコンパイル警告修正 #1456

    リファクタリング

    • 列挙型の値を基底型の整数値に変換する関数の導入 #1404 #1406
    • オブジェクト判定関数から不要なplayer_type引数を削除 #1412
    • アイテム破損関数のクラス化 #1398 #1407
    • グローバル変数 item_tester_hook を廃止する #1414
    • report_score() の型リファクタリング #1425
    • ItemTester の clone() メンバ関数をCRTPで共通化 #1438
    • Windowsとそれ以外で使用するプリプロを分ける #1428
    • object_is_foobar() 系の関数を object_type のメンバ関数にする #1446
    • ランダムアーティファクトの銘を選択するルーチンが冗長だったので簡略化した #1445
    • SGN() の削除 他 jump_floors() の微修正 #1435 #1457
    • typedef struct hoge_type hoge_type; をstruct hoge_type; に置換する #1458 #1447
    • io-dump ディレクトリ内のコメントを Doxygen 向けに整理. #1421
    • avatar ディレクトリ以下のコメントをDoxygen向けに追加、整理. #1408
    • もう使えないコンパイラ環境の削除 #1415 #1416
    • object_flags関数のインターフェースを変更する #1461
    • 使われていないhook-*.cpp/h の削除 #1462
    • 'NULL' を 'nullptr' に変える (Win32APIを除く) #1465
    • grid-type.cpp/h のリファクタリング&メソッド移動 #1467

    Web告知

    • MacOSX版のGitHubWeb移行他リンク先修正 #1449

    謝辞

    本バージョンもコミッター、ソース寄稿者、アイデア提供、およびデバッグ報告を行っていただいたGitHub及びDiscordコミュニティの各位の力添えでリリースできました。ありがとうございます。 (文責:deskull)

    Source code(tar.gz)
    Source code(zip)
    Hengband-3.0.0Alpha37-en.zip(4.79 MB)
    Hengband-3.0.0Alpha37-jp.zip(5.01 MB)
  • 3.0.0Alpha36(Aug 22, 2021)

    主な修正

    (2021/08/24:空腹進行殴りについて記述追加、修正)

    ゲーム調整

    • 空腹進行殴りを追加し、第三の乗り手『フェミン』のEAT_FOODを空腹進行に変更 #1357
    • スナイパーの火炎/冷気の矢のスレイを弱点の敵に対して更に高倍率にした #1391
    • ★鼠小僧の黒装束調整 #1336 #1337

    デバッグ

    • HPが再計算された時に体力ランクを不明にならなくなっていた #1291 #1338
    • Debian時のstd:functionビルド問題を修正 #1323
    • 各種の階層ワープ手段で鉄獄のランクエ放棄は行われるタイミングを統一 #1276 #1342
    • ヨグ=ソトートの落とし子のmonspeak修正 #1288 #1341
    • プレイヤーの感知外で起きる効果音を抑止 #1340 #1339
      • そのさらにデバッグ #1375

    リファクタリング

    • ビットフラグ操作マクロ群を関数に変更 #1353 #1347
    • player_race_typeをenumからenum classに置換 #1343
    • autopick内の関数コメントをDoxygen向けに整形 #1365
    • cfm_typeをDoxygenコメントに置換し、未使用フラグを改名 #1345
    • C無印の頃の陳腐化した型エイリアスを削除 #1367 #1369 #1366
    • TRフラグ変数の配列型を型エイリアス化 #1374 #1381
    • cmd-throw.cpp に定義されていたit_type関連の処理をthrow-util.cpp/h に移した #1380
    • it_type 構造体におけるinitialize_*() メソッドをコンストラクタに変換する #1370
    • ダンジョン特性フラグと地形特性フラグ変数のFlagGroup化 #1384 #1385
    • mind_kind_type を enum class 化 #1386
    • monster_race からr_xtra2 を削除し、r_xtra1 をr_can_evolve に改名した #1395 #1399

    言語関係

    • 英文のスペースの打ち方がおかしいのを校正 #1364
    • 敵を倒したメッセージの動詞がおかしいのを校正 #1348 #1359
    • 空腹進行に関する英文を校正 #1360
    • 鼠小僧のフレーバーテキストを校正 #1362
    • パクマンのフレーバーテキストを校正 #1363

    謝辞

    本バージョンもコミッター、ソース寄稿者、アイデア提供、およびデバッグ報告を行っていただいたGitHub及びDiscordコミュニティの各位の力添えでリリースできました。ありがとうございます。 (文責:deskull)

    Source code(tar.gz)
    Source code(zip)
    Hengband-3.0.0Alpha36-en.zip(4.79 MB)
    Hengband-3.0.0Alpha36-jp.zip(5.00 MB)
  • 3.0.0Alpha35(Aug 10, 2021)

    主な修正内容

    Alpha34で全く反映されていなかったため、以下の修正を改めてAlpha35に反映させました。手違いでお騒がせしたことを各方面にお詫びいたします。

    • エンバグによるモンスターの移動ルーチンの異常 #1325 #1329
    • 血の呪い(悪魔)や太古の怨念の効果で無限ステ減少が起きる #1324 #1326
    Source code(tar.gz)
    Source code(zip)
    Hengband-3.0.0Alpha35-en.zip(4.78 MB)
    Hengband-3.0.0Alpha35-jp.zip(4.99 MB)
  • 3.0.0Alpha33(Aug 8, 2021)

    主な修正

    ゲームシステム面

    • ロケット発射のみ、または射撃のみのモンスターについても確率を表示するようにした #1294 #1153
    • ピンク・ホラー分裂時の効果音追加 #1148
    • 天使に攻撃を仕掛けた場合の徳条件の修正(Aシンボルでなく、ANGELフラグ持ちに適用) #1317

    ゲーム調整

    • モンスター/アイテムの調整 #1294 #1148
      • ライオンのシンボル色変更
      • ××クラゲの追加
      • 『リー・ナス』の悲鳴を無効化する代わりに魔法使用率を上げた
      • ギャグ漫画枠系ユニークを実装した(死神ももえ/パクマン)
      • ミミックネタ天丼3種追加
      • 一部ミミックが死亡時ミミックが飛び出す
      • 黙示録の乗り手3種追加
      • 火蜂のパラメータ調整
      • たこぶえのパラメータ調整
      • 『サウロンのロ』にフレーバーテキスト追加
      • 自動スポイラーのユニーク英語名から The 表記を外す
      • 『ヌル』に量子生物フラグ追加
      • 鼠小僧のドロップを新規★に追加/変更
      • 『ディオ・ブランドー』の目つぶし攻撃が骸骨には無効になった

    デバッグ

    • 床上のアイテムのエッセンスを抽出するとスタック順が変わる #1241 #1285
    • 敵対モンスターが召喚したモンスターが友好的になる #1241 #1268
    • コンパイル警告/エラーの解消 #1295 #1296

    リファクタリング

    • デバッグのモンスター生成についてコメント側を修正 #1306
    • magic-apply-*.cpp/h のクラス化 #1304
    • フラグ管理のリファクタリング(one-monster-placer.cpp) #1311 #1307
    • 不要な型エイリアスの削減 #1299
    • grid.cpp/h の分割 #1315
    • IDを外れたモンスターの生成を抑止 #1148
    • monster-status.cpp/h の分割 #929 #1309
    • monster-sweep-grid.cpp/h のクラス化/メソッド分割 #1313

    言語関係

    • 新規要素の英文にスペースの未調整、表現の誤りがあったので修正 #1292

    謝辞

    本バージョンもコミッター、ソース寄稿者、アイデア提供、およびデバッグ報告を行っていただいたGitHub及びDiscordコミュニティの各位の力添えでリリースできました。ありがとうございます。 (文責:deskull)

    Source code(tar.gz)
    Source code(zip)
    Hengband-3.0.0Alpha33-en.zip(4.78 MB)
    Hengband-3.0.0Alpha33-jp.zip(4.99 MB)
  • 3.0.0Alpha32(Jul 25, 2021)

    主な修正

    ゲーム調整

    • 魔法を防ぐクローク、ミスリル製、アダマンタイト製の防具を自動拾い上のRARE扱いに変更 #1270 #1271

    デバッグ

    • Linux版bootstrapの陳腐化した記述による警告修正 #1262
    • 鏡使いの静水のMP回復量の表示がおかしい #1266 #1269
    • 高速移動時のダンプ表示を修正 #1211 #1272

    リファクタリング

    • ウィザードモードのジャンプ処理を分離して他機能に応用できるようにする #1228 #1246

    言語関係

    • 最近追加されたアーティファクトの英文修正 #1264
    • 最近追加されたモンスターの英文修正 #1265

    謝辞

    本バージョンもコミッター、ソース寄稿者、アイデア提供、およびデバッグ報告を行っていただいたGitHub及びDiscordコミュニティの各位の力添えでリリースできました。ありがとうございます。 (文責:deskull)

    Source code(tar.gz)
    Source code(zip)
    Hengband-3.0.0Alpha32-en.zip(4.78 MB)
    Hengband-3.0.0Alpha32-jp.zip(4.99 MB)