キー操作すると

関数が機能しない…。

コンテナ、インベントリ、その他のメニューは、キーボードでもある程度の操作ができます。
ところが、キー操作するとOBSEの関数が動作しなくなります。

例えば、インベントリを開き、カーソルキーの上下でアイテムを選択します。
スクリプト側で選択しているアイテムに何らかの処理をしたい場合、それができなくなってしまいます。
カーソルキーを使わず、マウスカーソルでアイテムを選択すれば問題ありません。

コンテナメニューは宝箱や死体の所持品でも使うし、商人との取引中にも使います。
所持品アクセス中の「全て取る」ボタンは、商人との取引中でも押せてしまいます。
取引中に「全て取る」ボタンを押すと、商人の所持品を全て取ってしまうため、商人が丸裸になります。
これを防ぐ場合、商品との取引中は「全て取る」ボタンにはアクセスしない処理を入れなきゃいけません。


begin MenuMode 1008
  if Enterキーを押してる && IsBarterMenuActive == 0
    ClickMenuButton "#32" 1008
  endif
end

これなら、商人との取引中にEnterキーを押しても、「全て取る」ボタンは反応しないはずです。
でも実際、一度でもカーソルキーを使ってキー操作してしまうと、IsBarterMenuが0しか返さなくなります。
GameModeに戻るまでこの状態が続きます。

商人との取引は、会話ダイアログ→取引 という流れで遷移しますが、呼び出し元の会話ダイアログを閉じるまで、状態は変わりません。
例えば、会話ダイアログ表示中にカーソルキーで取引ボタンを選んだ場合、取引メニューでIsBarterMenuが0しか返さなくなります。
この状態でEnterキーを押すと、ウフーンなことになってしまうと…。

IsBarterMenuだけなく、OBSEのUIアクセス用のほとんどの関数が死にます。
もともとそういう仕様なのか、私の環境でのみ起こる不具合なのか、OBSE 0020に限定される不具合なのか、そこら辺が分かりません。
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。