2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

OBLIVION MOD作成支援/相談スレPart6

419 :名無しさんの野望:2010/06/05(土) 11:49:42 ID:GMgr7BwF
>>418
何を実現したいのかによりますが、ScriptEffectの変数はそういう振る舞いがあるので私は以下のような手段で回避してます。

 1.Quest変数として保存して初期化を防ぐ
  例:zzVarQuestなど適当な変数用クエストを予め作成しそのQuestScript内で定義した値zzVarQuest.timerを使用する
    ※或いは数が少ないならGlobal変数とか

 2.別セルで走行したのを検出したらスペルを止める
  例:事象を検出するためにScriptEffectStart部に専用のFlagを用意して固定値1などを入れておいて
    ScriptEffectUpdate部の冒頭でFlagが1かチェックする。1じゃなければそのスペルは正常動作可能な状態じゃないのでDispelなどして終了

上記の1だとtimerが共有になってしまい複数NPCに適用したりするのが難しいので
そういう場合はOBSEのStringMapで応用するのをお勧めします。
例えば、Quest変数を使うのは同じですが、宣言するのを普通の変数ではなく配列にしておいて
ScriptEffect側ではStart部でNPCのIDをキーに値を初期化し、Update部で同様にNPCのIDをキーに値を参照、更新するという感じです。

ただ、別セルに移動したNPCのScriptEffectをどう制御するかは変数以外も色々面倒なので
上記2の手段でスパッと処理を打ち切るのが楽な気はします
ScriptEffect内で変数を色々使用してるとうっかりゼロ除算やらかしたりするので

311 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)