トップ «前の日記(2013/02/03) 最新 次の日記(2013/02/05)» 編集

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/02/04

[変愚蛮怒/スポイラー]teleport_monster_to関数の処理(変愚蛮怒 Ver2.1.1 rev3259)

teleport_monster_to()関数はモンスターを指定された地点にテレポートさせる関数である。以下の処理中で呼び出されている。

  • 魔法の笛の発動(プレイヤーのいる地点へ確率100%のテレポート/PASSIVE)
  • ものまねの「引き寄せる」(プレイヤーのいる地点へ確率100%のテレポート/PASSIVE)
  • 青魔法の「引き寄せる」(プレイヤーのいる地点へ確率100%のテレポート/PASSIVE)
  • 鷲系モンスターが他のモンスターに対して「特別な行動(掴みかかる)」(鷲系モンスターのいる地点へ確率100%のテレポート/PASSIVE/NON_MAGICAL)
  • モンスターがモンスターに対して「引き寄せる」(プレイヤーのいる地点へ確率100%のテレポート/PASSIVE)
  • プレイヤーがteleport_player関数で能動的にテレポートした場合の追尾(プレイヤーのいる地点へ確率(モンスターレベル)%のテレポート)
  • プレイヤーがteleport_away関数でテレポートアウェイされた場合の追尾(プレイヤーのいる地点へ確率(モンスターレベル)%のテレポート)

追尾時に関数が呼び出される前提は双方とも、teleport_player()中で@さんがテレポートした際、その周囲の1マスのモンスターにTELEPORTフラグがあり、かつRES_TELEフラグがない場合である。

各関数にPASSIVEや、NON_MAGICALなどのフラグは指定されているが現在の実装中でこれらが処理の影響を及ぼすことはない。

teleport_monster_to()の処理の流れは以下の通りである。

  • 引数で予め定められた成功率での判定が通らなければキャンセルされる。
  • テレポート先候補の目標地点間との距離(dis)を1からスタートする。
  • (dis)範囲内のマスを500回ランダムに拾い、そこがテレポート可能な地点であった時点でテレポート先確定。
  • 500回試行して拾えなかった場合はdisを倍にして再度検索、ここまでの流れをさらに500回試行する。
  • 以上を繰り返してもテレポート先が無かった場合はキャンセル。
  • テレポート先が確定したならば、実際にモンスターの座標を当該に移し、各種更新を行う。