今更なオブリビオンブログ
おもにMOD関連のメモを書いていくと思います、MODをいじったり、作ってるのが楽しいです。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MOD作り7
今度は、ドラゴンボールの瞬間移動のようなものを作ってみました。

ターゲットをセットする魔法と、場所移動用の魔法の二つになりました。



ターゲットを取得するにはRef変数を宣言して使います。
この辺は自分でもよく分かってないんですが、オブジェクトのデータを格納するための変数は、
Ref変数を使わなければいけないそうです。


クエストスクリプトにターゲットのデータ格納用の変数を宣言しておき、
それを二つの魔法のスクリプト内から参照するという形にしました。

ターゲット取得用の魔法で「GetSelf」関数をつかって、対象のデータを取得して、クエストスクリプトの変数に格納しています。
ワープ用の魔法では、クエストスクリプトの変数を参照してターゲットを取得しています。



また、ターゲットには、32人分の枠を用意したので、今回はメッセージボックスを活用して、ページの切り替えを出来るメニューを用意しました。
今回初めてページの切り替えができるメッセージボックスを作ったのですが、ボタンを複数作るだけのメッセージボックスとはまた勝手が違ってちょっと苦労しました。

以下はターゲットを設定する時の魔法のスクリプトの一部になります。

Short Stage
Short Page
Short Button

中略


begin ScriptEffectStart

中略

set Page to 0
set Stage to 1
end


begin GameMode
if Stage == 0
return
elseif Stage == 1
If Page == 0
[1つ目のメニュー]
set Stage to 2
ElseIf Page == 1
[2つ目のメニュー]
set Stage to 2
ElseIf Page == 2
[3つ目のメニュー]
set Stage to 2
ElseIf Page == 3
[4つ目のメニュー]
set Stage to 2
endif

elseif Stage == 2
If Page == 0
[1ページ目のメニューのボタンの処理]
elseif Page == 1
[2ページ目のメニューのボタンの処理]
elseif Page == 2
[3ページ目のメニューのボタンの処理]
elseif Page == 3
[4ページ目のメニューのボタンの処理]
endif
endif
end


・変数の役割ですが、
「Button」は、「GetButtonPressed」を使ってボタンの処理をするための変数です。
「Page」と言う変数で現在どのページを表示しているのかを表します。
「Stage」と言う変数で現在行っている処理を分けています。最初、処理を分けずに書いたら、メッセージボックスの表示から処理が進まなくて困りました。


・最初に「begin ScriptEffectStart」のブロックで初期化設定を行っています。
これは魔法を使った時に初めに一回だけ処理されます。

1枚目のページを表示するために、「Page」に0を、メッセージボックスを表示するために「Stage」に1を入れています。


・次の「begin GameMode」のブロック内でメッセージボックスの表示とボタンの処理を行っています。
これは魔法の効果が現れている間、常に処理されています。

「Stage」が0の時は「return」で、何の処理もしていません。

「Stage」が1の時はメッセージボックスの表示です。その中で「Page」を判定してそれぞれに対応したメニューを出しています。
メッセージボックスの表示後に「Stage」に「2」を入れてボタンの判定に移ります。

「Stage」が2の時はボタンの処理をしています。ここで「Stage」に「0」を入れれば処理を抜けます。
「Stage」に「1」を入れればメッセージボックスの再表示になります。
その際に「Page」に数字を入れればそのページのメニューを出すことになります。






追記
現在行っている処理を示す変数に使う名前は、「Stage」ではなく、「State」という名前を使うのが一般的なようです。
自分は処理の段階という意味で、「Stage」という名前を使いましたが、これだとQuestStage等と混同しそうで紛らわしいですね。
スポンサーサイト

テーマ:PCゲー - ジャンル:ゲーム

コメント

コメントの投稿














管理者にだけ表示を許可する


トラックバック
トラックバック URL
http://5588ob.blog.fc2.com/tb.php/21-7c18e258
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。