トップ «前の日記(2013/11/19) 最新 次の日記(2013/11/21)» 編集

SikabaneWorksが関係するコンテンツ(主に*band系ローグライク)の開発近況・補足から全く個人的な雑記まで。

[WEB:屍の見える丘公園]| [RSS]

Angband | Badiashimshe | C# | CRAUZEL | D'angband/小説草稿 | D'angband/開発 | DarkSouls | Demon'sSouls | DungeonCrawl | ElvenUteruses | Haskell | Hengband | J9シリーズ | LEGO | LineDrawing | MISC | MTG | Mac | Math | Moria | R-18 | Roguelike | Rough | RoughSketch | Ruby | SDL | UNIX | VMware | WarHammer | Zangband | アタシラヂョウヲウ | イラスト | ガジェット | ゲーム | ゲーム紹介 | ゲーム製作技術 | ゲーム論 | スケッチ | ツクール | テクノロジー | ニコニコ動画 | ファルコム | ファンタジー | マリオ | ヴィーヤウトゥムノ | 別記事追加予定 | 変愚蛮怒 | 変愚蛮怒/スポイラー | 変愚蛮怒/元ネタ探訪 | 変愚蛮怒/攻略 | 変愚蛮怒/開発 | 宗教 | 情報 | 政治 | 文字コード | 日ペ昔話 | 東方 | 東方ワンドロ | 東方外法漢女 | 歴史 | 漫画製作 | 版権絵 | 画像処理 | 翻訳 | 自然言語 | 艦隊これくしょん | 落書き | 言語解析 | 読書 | 超人ロック | 追記予定 | 通信 | 鉄獄旅慕情 | 阿片窟 | 馬鹿馬鹿蛮怒/開発 | 魔法少女まどか☆マギカ | 魚類版深夜の真剣お絵描き60分一本勝負


2013/11/20

[変愚蛮怒/スポイラー]GUARDIANフラグつきモンスターの再生成の保証処理(変愚蛮怒 Ver2.1.4 rev3503)

GUARDIANフラグつきのモンスターは*破壊*で即座に復活はしないが、自然生成処理で優先的に生成される。

ダンジョンフロアの自然生成を行うalloc_monster()関数はダンジョンフロアを生成するcave_gen()関数で複数回行われる他、ターン経過毎に各ダンジョン毎に指定された確率で一回実行される。

/* Check for creature generation. */
if (one_in_(d_info[dungeon_type].max_m_alloc_chance) &&
	!p_ptr->inside_arena && !p_ptr->inside_quest && !p_ptr->inside_battle)
{
	/* Make a new monster */
	(void)alloc_monster(MAX_SIGHT + 5, 0);
}

第一引数はプレイヤーの視界内に突然モンスターが生成されることを防ぐために指定された配置外範囲(半径 20(MAX_SIGHT)+5)、第二引数は生成オプション。

alloc_monster()関数は上記リンクでの解説の及び実際のソースの通り、最初にalloc_guardian()関数による、GUARDIANフラグつきモンスターの生成を最優先する。よって、該当のダンジョンの主は多少時間がかかったとしてもほぼ確実に再生する。

bool alloc_monster(int dis, u32b mode)
{
	int y = 0, x = 0;
	int attempts_left = 10000;

	/* Put the Guardian */
	if (alloc_guardian(FALSE)) return TRUE;

	/* Find a legal, distant, unoccupied, space */
	while (attempts_left--)
(以下略)