| XPでエリア設定+その他色々【2008/03/10】 |
XPでゲームを作ってるんだけれども、XPってエリア設定ができない。こいつぁ厳しい。 でも、VXのデータはXPでも使えるんじゃないかと思って(※)VXのエリア設定を XPに適用できるか試してみた。
※:ただし一部の独自データのみ。基本的に構造の違いから同じように処理するのは 不可能か非常に難しい。読み込む事自体は技術的には可能だが。
用意するもの:ツクールXPとVX。 対象 :ツクールXPでVXや2000のようにエリア設定したい人 注意 :かなり面倒なので、どうしてもXPでエリア設定したい人じゃないとオススメできない。 あと、エリア設定ファイルはXPの暗号化には対応していないので注意。 VXで読み込まれても正常に動かないようにファイル変換しておくのも一手法。 (スクリプトの知識がある程度無いとできないが、聞かれても答え…ない方がいいなこれは。)
まず、VX側で先にXPゲームに使う(エリア設定したいものだけでいい)マップを 作っておいた後、エリア設定。 この時、エリア設定したマップIDは、XP側のマップIDのものと同じでなければならない。 例えばXP側のフィールドマップ用のマップIDが4ならば VXでもフィールドマップ用のマップIDが同じ4でなければならない。 そのため、場合によってはダミーマップを作成しておく必要がある。
その後、設定したエリアデータをXPのDataフォルダにブチ込む。
…で、ここからスクリプト。
1.VXのヘルプからRPG::Areaを探し出して、モジュールが記述された スクリプトをXPにコピペ。
2.Game_playerクラスにVXから同じクラスにある 以下のメソッドをコピペ。
def in_area?、def make_encounter_troop_id
3.Scene_Mapクラスの102〜120行目を、以下のものに差し替える。
# エンカウント カウントが 0の場合 if $game_player.encounter_count == 0 # イベント実行中かエンカウント禁止中でなければ unless $game_system.map_interpreter.running? or $game_system.encounter_disabled # トループを決定 troop_id = $game_player.make_encounter_troop_id # トループが有効なら if $data_troops[troop_id] != nil # バトル呼び出しフラグをセット $game_temp.battle_calling = true $game_temp.battle_troop_id = troop_id $game_temp.battle_can_escape = true $game_temp.battle_can_lose = false $game_temp.battle_proc = nil end end end
4.Scene_Titleのデータ呼び出し部分に以下を加える。
$data_areas = load_data("Data/Areas.rvdata")
後はフツーにゲームを始めるだけ。 これでVXでできたエリア設定がXPでも反映される。 どうしてもXPで細かなエリア設定をしたいって人は、この手法を試してみてはいかがだろうか。
◆
D&Dの生みの親とか、〜って言ってみちゃったりなんかしちゃったりして…の人が 亡くなってしまったなぁ…これからも、「ええっ、あの人が?!」…って事、出てくるだろうなぁ。
◆
D&Dと言えば、新和版のルールブック欲しいなぁ…ヤフオクしか無いんかなぁ…ううむ。 実は、ネット歴8年のくせして、ネットオークションなんかやった事ねぇ。ファファファ
…いや、笑ってる場合じゃあねぇなぁ。勉強せにゃ。
昔のファミマガとファミ通をネット通販で偶然発見したけど、店舗を構えていないので 信用していいものかどうか…悩むぜ。
|
-->
|
|
|