OblivionWikiJP
(避難所)
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
(
+
) |
ヘルプ
|
ログイン
]
開発資料/コンパニオン改造手引/非無敵化
をテンプレートにして作成
開始行:
*無敵コンパニオンであることの問題
GG CompanionはキャラにEssential(重要人物)設定がされてい...
*ではどうするか?
-Essential状態を外して、実際に死亡するようにします。
-死亡したときのために「蘇生」メニューを作成します。
-ゲームの縛りとして、いったん戦闘状態を終わらせないと蘇生...
*スクリプト
**変数の宣言
short varDeadMenu
short btnDeadMenu
新たに2つの変数を使用するので冒頭に追加してください。
**NPCの設定
begin GameMode
;------------------------------------------------------...
;■essential設定
;essentialを解除して死亡するようにする。
;------------------------------------------------------...
; SetEssential GGValeria 1
SetEssential GGValeria 0
;------------------------------------------------------...
;■QuestObject設定
;死亡しても死体が消えないようにする。
;------------------------------------------------------...
SetQuestObject GGValeria 1
デフォルトのGG CompanionスクリプトでSetEssential 1になっ...
また、死亡後にキャラが消滅しないようにクエストオブジェク...
この2つはbegin GameMode(毎フレーム)ではなくてbegin OnLo...
**死体をActivateしたときの処理
begin OnActivate
if IsActionRef player == 1
;-----------------------------------------------------...
;死亡時:蘇生にトライするメニューを開く
;-----------------------------------------------------...
if GetDead == 1
MessageBox "Valeriaは意識を失っています。" "装備をさ...
set varDeadMenu to 1
;-----------------------------------------------------...
;スニーク時:盗み防止のためActivateさせない
;-----------------------------------------------------...
elseif player.IsSneaking == 1
Message "自分の仲間から盗みはできません。"
else
Activate
endif
else
Activate
endif
プレイヤーがアクションしたときに判定するのがこの部分です...
**MessageBox選択後の処理
begin GameMode
;=======================================================...
;■死亡時のactivateメニュー実行中
;------------------------------------------------------...
;押されたボタンNo.を取得。次フレームで処理。
;------------------------------------------------------...
if varDeadMenu == 1
set btnDeadMenu to GetButtonPressed
if btnDeadMenu > -1
if btnDeadMenu == 0
; choice 1 "装備をさぐる"
set varDeadMenu to 2
elseif btnDeadMenu == 1
; choice 2 "蘇生させる"
set varDeadMenu to 3
endif
endif
;------------------------------------------------------...
;選択1:通常の死体Activate(インベントリを開く)
;------------------------------------------------------...
elseif varDeadMenu == 2
Activate
set varDeadMenu to 0
;------------------------------------------------------...
;選択2:蘇生
;------------------------------------------------------...
elseif varDeadMenu == 3
if player.IsInCombat == 1
MessageBox "安全な場所でないと蘇生できません。"
set varDeadMenu to 0
else
MessageBox "Valeriaは意識を取り戻しました。"
Resurrect 1
;----------------------------------------------------...
;HPを1にする
;----------------------------------------------------...
set bTemp to (GetAV Health - 1) * -1
ModAV Health bTemp
set varDeadMenu to 0
endif
endif
;=======================================================...
今回のMessageBoxは「装備をさぐる」と「蘇生させる」の2択に...
このうち前者は、通常の死体をActivateしたときと同様にイン...
このとき、もしプレイヤーが戦闘状態であれば「安全な場所で...
※Resurrect 1を使って蘇生させるとき、起き上がり時に変なコ...
**死亡時の処理
begin OnDeath
;------------------------------------------------------...
;死亡(仮死)報告
;------------------------------------------------------...
Message "Valeriaは傷つき倒れました。"
end
これは無くても良いのですが、一応メッセージを出すようにし...
**既存スクリプトとの干渉回避
if varDeadMenu != 1
set pickButton to GetButtonPressed
endif
GGValeriaScriptの後ろのほうで、Messageboxの押されたボタン...
終了行:
*無敵コンパニオンであることの問題
GG CompanionはキャラにEssential(重要人物)設定がされてい...
*ではどうするか?
-Essential状態を外して、実際に死亡するようにします。
-死亡したときのために「蘇生」メニューを作成します。
-ゲームの縛りとして、いったん戦闘状態を終わらせないと蘇生...
*スクリプト
**変数の宣言
short varDeadMenu
short btnDeadMenu
新たに2つの変数を使用するので冒頭に追加してください。
**NPCの設定
begin GameMode
;------------------------------------------------------...
;■essential設定
;essentialを解除して死亡するようにする。
;------------------------------------------------------...
; SetEssential GGValeria 1
SetEssential GGValeria 0
;------------------------------------------------------...
;■QuestObject設定
;死亡しても死体が消えないようにする。
;------------------------------------------------------...
SetQuestObject GGValeria 1
デフォルトのGG CompanionスクリプトでSetEssential 1になっ...
また、死亡後にキャラが消滅しないようにクエストオブジェク...
この2つはbegin GameMode(毎フレーム)ではなくてbegin OnLo...
**死体をActivateしたときの処理
begin OnActivate
if IsActionRef player == 1
;-----------------------------------------------------...
;死亡時:蘇生にトライするメニューを開く
;-----------------------------------------------------...
if GetDead == 1
MessageBox "Valeriaは意識を失っています。" "装備をさ...
set varDeadMenu to 1
;-----------------------------------------------------...
;スニーク時:盗み防止のためActivateさせない
;-----------------------------------------------------...
elseif player.IsSneaking == 1
Message "自分の仲間から盗みはできません。"
else
Activate
endif
else
Activate
endif
プレイヤーがアクションしたときに判定するのがこの部分です...
**MessageBox選択後の処理
begin GameMode
;=======================================================...
;■死亡時のactivateメニュー実行中
;------------------------------------------------------...
;押されたボタンNo.を取得。次フレームで処理。
;------------------------------------------------------...
if varDeadMenu == 1
set btnDeadMenu to GetButtonPressed
if btnDeadMenu > -1
if btnDeadMenu == 0
; choice 1 "装備をさぐる"
set varDeadMenu to 2
elseif btnDeadMenu == 1
; choice 2 "蘇生させる"
set varDeadMenu to 3
endif
endif
;------------------------------------------------------...
;選択1:通常の死体Activate(インベントリを開く)
;------------------------------------------------------...
elseif varDeadMenu == 2
Activate
set varDeadMenu to 0
;------------------------------------------------------...
;選択2:蘇生
;------------------------------------------------------...
elseif varDeadMenu == 3
if player.IsInCombat == 1
MessageBox "安全な場所でないと蘇生できません。"
set varDeadMenu to 0
else
MessageBox "Valeriaは意識を取り戻しました。"
Resurrect 1
;----------------------------------------------------...
;HPを1にする
;----------------------------------------------------...
set bTemp to (GetAV Health - 1) * -1
ModAV Health bTemp
set varDeadMenu to 0
endif
endif
;=======================================================...
今回のMessageBoxは「装備をさぐる」と「蘇生させる」の2択に...
このうち前者は、通常の死体をActivateしたときと同様にイン...
このとき、もしプレイヤーが戦闘状態であれば「安全な場所で...
※Resurrect 1を使って蘇生させるとき、起き上がり時に変なコ...
**死亡時の処理
begin OnDeath
;------------------------------------------------------...
;死亡(仮死)報告
;------------------------------------------------------...
Message "Valeriaは傷つき倒れました。"
end
これは無くても良いのですが、一応メッセージを出すようにし...
**既存スクリプトとの干渉回避
if varDeadMenu != 1
set pickButton to GetButtonPressed
endif
GGValeriaScriptの後ろのほうで、Messageboxの押されたボタン...
ページ名:
▲
■
▼