2019年08月23日

JNetHack フォント変更 スクリーンショット

jnhgnome.png

NetHack tty TrueType Tile Font で公開されているフォントに変更してみました. "{" と "}" のような, 一見で見分けづらいシンボルが見やすくなるし, なにより美しい. すばらしい. 私は, NPC だけはアルファベットで表示しています. そのほうがわかりやすい.

jnhmumak.png

ムーマクやばい. イメージほど遅くないし.


この表示だと, htmldump で出力した map がまともに表示されない. 一旦ゲームを終了し, フォントを戻して出力すると, 問題はなかった.

19/08/24 追記 文章を修正.
ラベル:nethack Roguelike
posted by Takenoko at 15:39| Comment(0) | game | このブログの読者になる | 更新情報をチェックする

2019年08月22日

JNetHack TNG Patch 用 Patch 1.20

JNetHack TNG Patch 用 Patch の Version 1.20 です. 以下の修正を行います.

1. reject された噂を追加
2. ショッカーの効果が機能するように
3. ショッカー使用時のメッセージを追加
4. 力の杖の SPFX_TOUCH が機能するように
5. 力の杖に SPFX_NOGEN フラグを追加
6. ムーマクベーンが巨大ムーマクにも効くように
7. ムーマク, 巨大ムーマクの色を白に変更

ムーマクベーンが, TNG で追加された巨大ムーマクに効果が無いのはあんまりだと思ったので.

ファイル ダウンロード

使い方は, JNetHack3.4.3-0.11 に TNG 最新安定版 Patch を当てた後,

$ bzcat ../jnh3.4.3-0.11-tng-fix-v121.patch.bz2 | patch -p1

と入力するだけです. テスト版に適用できるかどうかはわかりません.
ラベル:nethack Roguelike
posted by Takenoko at 13:08| Comment(0) | game | このブログの読者になる | 更新情報をチェックする

2019年08月09日

JNetHack TNG Patch 用 Patch を作製しました

以前の記事 の, TNG Patch への変更内容を Patch にしました. reject された部分も修正してあります.

ファイル

JNetHack3.4.3-0.11 に TNG 最新安定版 Patch を当てた後,

$ bzcat ../jnh3.4.3-0.11-tng-fix.patch.bz2 | patch -p1

と入力するだけです.
ラベル:Roguelike nethack
posted by Takenoko at 12:52| Comment(0) | game | このブログの読者になる | 更新情報をチェックする

2019年07月31日

JNetHack TNG Patch を当てた後に

JNetHack TNG (3.4.3 対応版, 最新安定版) で気になることがあったので, 少し変更してみました. パッチを当てた後に以下の変更を行い, コンパイルします.

1. 追加された属性武器が効果を発揮しない

ムーマクベーンは炎, ショッカーは電撃属性攻撃武器ですが, SPFX_ATTK フラグがついていません. これによりダメージ増加効果が発生しないことをショッカーで確認したので, これを解決します.

include/artilist.h

Mumakbane, Shocker に SPFX_ATTK flag を追加

2. ショッカーの攻撃時メッセージ

ショッカーで攻撃した際, 巨大なハンマーは, と形容されます. ミョルニール以外の電撃武器は考慮されていないようです. というわけで, ショッカー用のメッセージを追加します.

src/artifact.c

if (attacks(AD_ELEC, otmp)) {
if (realizes_damage)
の下のメッセージを



に変更する.

3. 力の杖

力の杖の効果は, コメントやコードを読むと, 他属性, 他クラスのアーティファクトに触れてもペナルティを受けずに使用できるようになる, という意図があるようですが, 実際にはうまく動いていないようです. そこで, 力の杖を wield 所持している場合, そういう風に動作するように変更しました.

include/prop.h

#define SECOND_CHANCE
の下に



を追加. その下の LAST_PROP の値を (ART_TOUCHABLE) に変更する.

include/youprop.h

#define Lifesaved
の下に



を追加

include/artilist.h

Wand of Might の
(SPFX_RESTR|SPFX_TOUCH), 0

SPFX_RESTR, SPFX_TOUCH
に置換

src/artifact.c

set_artifact_intrinsic の後半,
SPFX_REFLECT の on/off の下に



を追加. また,

if (oart->spfx & SPFX_TOUCH) return 1;

をコメントアウトし, その下に,



を追加.


間違いがある可能性があります. とりあえず, 期待したように動作することを, Wizard モードで確認しました.

19/08/08 追記
wield だと, 武器アーティファクトに効果が発揮されないため, 所持に修正.

19/08/09 追記
パッチ を作製しました.

19/08/22 追記
パッチ 1.20 を作製しました.
posted by Takenoko at 16:29| Comment(0) | game | このブログの読者になる | 更新情報をチェックする

2019年07月27日

JNetHack スクリーンショット

最近はネットハックばかり.
jnh-rq-tng-fig002.png
Geek の故郷へやってきた. ゲイツはマインドフレアと同じ吸い取り攻撃をしてきたと思うので, もっと武器が強くなるまで放っておくつもり.

jnh-rq-tng-fig003.png
願いを三回引いたであろうとわかる画像. ランプから二回, 泉から一回. 他クラスのクエストアーティファクトは, 後半になると手に入れづらくなるので, どうしても願ってしまう. 命の魔除けとかの方が安定するとは思う. PYEC は, 確か 3.2 から充填の効果が弱くなったが, 魔法のマーカは 50 まで充填できるし, まだ十分使える. アルゴルの太陽虎の歯は d20/d20 の威力がある. 3.4 では二刀流できるので, オリジナルの TNG よりも役に立つだろう.
ラベル:Roguelike nethack
posted by Takenoko at 14:11| Comment(0) | game | このブログの読者になる | 更新情報をチェックする

2019年07月20日

JNetHack 3.4.3-0.11 に複数のパッチを当ててコンパイル

JNetHack 3.4.3-0.11 に, Random Quest Patch, TNG Patch, Fighter Patch, UTF-8 Patch
を追加して, コンパイルしました. 未来の自分が読んでも理解できるように, 手順をなるべく丁寧に書きました. 必要ないことや余計なことをしている可能性があります. OS は Linux Mint 18.3 xfce です.

1. 必要なファイルを用意

nethack-343-src.tgz
jnethack-3.4.3-0.11.diff.gz
(url https://osdn.net/projects/jnethack/releases/)

Random_Quest-J343-v2.0.2_for_jnethack34311_diff.zip
Fighter-J343-v2.0.0.lzh
(url http://sakusha.s26.xrea.com/x/FHS/others.html)

jnethack-3.4.3-0.10-tng-0.7.9.5.patch.bz2
(url http://www.phys98.homeip.net/~ide/jnethack.html)

jnethack-3.4.3-0.10-utf8-2.patch.bz2
(url http://elbereth.seesaa.net/article/242387348.html)


以上のファイルを
/home/ユーザー名/
に用意する

2. 必要なものをインストール

$ sudo apt install build-essential flex bison libncurses-dev jlha-utils

3. パッチの展開および文字コード, 改行文字変換

$ cd $HOME
$ unzip Random_Quest-J343-v2.0.2_for_jnethack34311_diff.zip
$ nkf -e -Lu --overwrite Random_Quest-J343-v2.0.2_for_jnethack34311.diff
$ lha xi Fighter-J343-v2.0.0.lzh
$ nkf -e -Lu --overwrite Fighter-J343-v2.0.0-jnethack34310-080504[Release]-SJIS-LF.diff

4. ソースを展開

$ tar zxvf nethack-343-src.tgz
$ cd nethack-3.4.3

5. 日本語化

$ zcat ../jnethack-3.4.3-0.11.diff.gz | patch -p1

6. 差分用の元ディレクトリを作製

$ cd ..
$ cp -a -r nethack-3.4.3 nethack-3.4.3-orig
$ cd nethack-3.4.3

7. Random Quest, TNG, Fighter Patch を当てる. reject された場合, その都度 rej ファイルを参考に手動で当てる.

$ patch -p1 < ../Random_Quest-J343-v2.0.2_for_jnethack34311.diff

sys/winnt/Makefile.gcc
fighter.des を gnome.des に書き換え

$ bzcat ../jnethack-3.4.3-0.10-tng-0.7.9.5.patch.bz2 | patch -p1

src/role.c.rej は無視する

src/role.c
# ifdef TNG_ROLE で囲まれた 3 箇所を, healer の定義の上にカット & ペースト
PM_SOFTWARE_BUG を PM_GRID_BUG に書き換え
ART_NETHACK_SOURCE の末尾に S を追加
ifdef TNG_ROLE と, それに対応する endif を削除

include/you.h
#define Q_GEEK を #define Q_HEALER の上にカット & ペースト
Q_GEEK の値を (Q_FENCER+1) に, Q_HEALER の値を (Q_GEEK+1) にする
#define QR_GEEK を QR_HEALER の上にカット & ペースト

win/tty/wintty.c
630 行目 (healer の上) に
case 'g': flags.initrole = Q_GEEK; break;
を追加. 列を合わせる.

$ patch -p1 < ../Fighter-J343-v2.0.0-jnethack34310-080504[Release]-SJIS-LF.diff

src/role.c.rej は無視する

include/artifact.c.rej
copyright 表記の追加だけにする

include/artifact.c
artifact の生成数を抑制している部分 (260 行あたり),
#ifdef RANDOM_QUEST

#if defined(RANDOM_QUEST) || defined(FIGHTER)
に書き換える

win/share/objects.txt.rej, monsters.txt.rej はとりあえず無視.

src/u_init.c
Fighter のスキルに P_CHEMISTRY を P_SKILLED で追加.
他のクラスの, tng patch で追加された錬金術スキルと比較して, あってもいいと判断した.

include/qtext.h
N_HDR に上から +4, +2 する. これでいいか不安.

8. ここまでの差分を作製しておく.

$ cd ..
$ diff -urN nethack-3.4.3-orig nethack-3.4.3 > jnh3.4.3-0.11-rq-tng-fig.patch
$ bzip2 -f jnh3.4.3-0.11-rq-tng-fig.patch
$ cd nethack-3.4.3

9. utf-8 パッチを当てる

$ bzcat ../jnethack-3.4.3-0.10-utf8-2.patch.bz2 | patch -p1

sys/unix/unixmain.c の 22 行目に
#include <locale.h>
を追加.

10.インストール

$ sh sys/unix/setup.sh
$ python ../nhreplace.py
$ make all
$ sudo make install

11.設定ファイル

/home/ユーザー名/ に

OPTIONS=color
OPTIONS=windowtype:tty

を記述した .jnethackrc という名のテキストファイルを作成

12.起動

$ jnethack

jnh-rq-tng-fig001.png

utf-8 patch のおかげで, デフォルトの端末からでも文字化けせずに起動しました. 戦士とギークが追加されています.

13.補足

次にコンパイルする際は, 6, 7, 8 の過程を飛ばす代わりに,

$ bzcat ../jnh3.4.3-0.11-rq-tng-fig.patch.bz2 | patch -p1

と入力するだけで良いです.
posted by Takenoko at 13:33| Comment(0) | game | このブログの読者になる | 更新情報をチェックする

2019年07月15日

JNethack TNG をコンパイル

JSlash'EM に続いて, JNethack TNG もコンパイルしました. 初 Nethack は PC-98 の TNG だったので, もう一度やってみたくなったのです. 今回は, JNethack 3.4.3-0.11 のソースに TNG 最新安定版 のパッチを当てます. 少し対象バージョンが違いますが, 大丈夫だろうと判断しました.


nethack-343-src.tgz
jnethack-3.4.3-0.11.diff.gz

を,

jnethack-3.4.3-0.10-tng-0.7.9.5.patch.bz2


nhreplace.py

をダウンロードして,

/home/ユーザー名/

に用意し, 端末で下記を入力

$ cd $HOME
$ sudo apt install build-essential flex bison libncurses-dev
$ tar zxvf nethack-343-src.tgz
$ cd nethack-3.4.3
$ zcat ../jnethack-3.4.3-0.11.diff.gz | patch -p1
$ bzcat ../jnethack-3.4.3-0.10-tng-0.7.9.5.patch.bz2 | patch -p1

テキストエディタで, dat/jrumors.tru.rej の 7 行目 の 2 文字目から行末までコピーし, dat/jrumors.tru の 76 行目に挿入する.

$ sh sys/unix/setup.sh
$ python ../nhreplace.py
$ make all
$ sudo make install

ここまで入力.

/home/ユーザー名/ に

OPTIONS=color
OPTIONS=windowtype:tty
OPTIONS=kcode:jis

を記述した .jnethackrc という名のテキストファイルを作成

端末から, jnethack で起動. mlterm から起動すると, 文字化けしませんでした. mlterm のインストール方法 mlterm の設定

posted by Takenoko at 16:34| Comment(0) | game | このブログの読者になる | 更新情報をチェックする

2019年06月21日

JSlash'EM スクリーンショット

久々だし, せっかくなのでスクリーンショット.
jslashjedi01.png
自属性の寺院はいいんだが, 杖屋が無いのが残念. 壁はドワーフにボロボロにされる. いつものこと.

jslashjedi02.png
死体を三体ほど捧げただけで, いきなりグレイスワンダー. クエストアーティファクトとの二刀流が楽しみだが, そこまで生きられるかどうか.
posted by Takenoko at 15:21| Comment(0) | game | このブログの読者になる | 更新情報をチェックする

JSlash'EM にジェダイパッチを適用してインストール

久々に JSlash'EM を起動しようとしたら失敗しました. 以前, OS を再インストールしたのですが, その際に HOME ディレクトリ以外のファイルは消えたようです. というわけで, もう一度インストールしました. OS は Linux Mint 18.3 Xfce です. 前回の記事は, 今読むと少しわかりづらいので, 今回はもう少し丁寧に書きました.


se007e7f3.tar.gz
jslashem-0.0.7E7F3-J0.2.1.diff.gz
jslashem_jedi_0.5.patch


nhreplace.py

をダウンロードして,

/home/ユーザー名/

に用意し, 端末で下記を入力

cd $HOME
sudo apt install build-essential flex bison libncurses-dev
tar zxvf se007e7f3.tar.gz
cd slashem-0.0.7E7F3
zcat ../jslashem-0.0.7E7F3-J0.2.1.diff.gz | nkf -e | patch -p1
patch -p1 < ../jslashem_jedi_0.5.patch | nkf -e
sh sys/unix/setup.sh
python ../nhreplace.py
make all
sudo make install

ここまで入力.

/home/ユーザー名/ に

OPTIONS=color
OPTIONS=windowtype:tty
OPTIONS=kcode:jis

を記述した .jslashemrc という名のテキストファイルを作成

起動時は,
[ターミナル > 文字エンコーディング > 日本語 > ISO-2022-JP]
を選択し,

jslashem

と入力すると起動する.
ISO-2022-JP 以外だと文字化けする. 起動時に文字化けしている場合は, あわてずにエンコーディングを変更し, インベントリでも表示すれば直る.

操作メモ. よく忘れる, というか忘れていたので.
[Shift + アイテムの記号] でその種類の全てのアイテムを選択&選択解除できる
~ で全てのアイテム

posted by Takenoko at 14:59| Comment(0) | game | このブログの読者になる | 更新情報をチェックする

2018年07月14日

Cataclysm:DDA を 32bit Linux でコンパイル

前回の続き。make の引数を追加することで、日本語化できました。 ビルドとコンパイルの違いがいまいちよくわかってない。 以下、手順です。

lua がインストールされていない場合は以下の三行を実行する。 lua を使わない場合は不要。

sudo apt install lua5.2

sudo apt-get install liblua5.2-0-dev

sudo apt install luajit

clang が速いらしいので、今回はこっちを使ってみる。 使わない場合、既に入っている場合は必要のない一行。

sudo apt install clang

SDL2 をインストールする。

sudo apt-get install -y libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev

最新版をダウンロードし、コンパイルする。 CLANG=1 で clang、無い場合は gcc を使うのだと思う。 LUA=1 が無いと、lua で書かれた MOD が使えなくなる?-j オプションは、シングルコアだし古い PC だしということで使わなかった。

git clone --depth 1 https://github.com/CleverRaven/Cataclysm-DDA.git -b master --single-branch

cd Cataclysm-DDA/

make NATIVE=linux32 RELEASE=1 TILES=1 SOUND=1 LOCALIZE=1 LANGUAGES="ja" CLANG=1 LUA=1

起動。

./cataclysm-launcher

今回も、コンパイルに 50 分かかった。

CataclysmTitleJP.png

日本語化に成功。

CataclysmStart.png

タイルも表示されているし、音も鳴る。ただ、日本語入力ができない。よくある事だけど。

参考ページ

posted by Takenoko at 03:19| Comment(0) | game | このブログの読者になる | 更新情報をチェックする