OblivionWikiJP
(避難所)
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
(
+
) |
ヘルプ
|
ログイン
]
開発資料/コンパニオン改造手引/蘇生機能追加
をテンプレートにして作成
開始行:
*ねらい [#y2c8e105]
「コンパニオンを無敵にしない」と同様に、今度はコンパニオ...
*流れ [#xc446a3a]
-プレイヤー死亡
-コンパニオンが戦闘状態でない(敵をクリアにしている)
-プレイヤーに会話しに来た後のタイミングで蘇生処理
死んでしまったプレイヤーはコンパニオンの奮戦を見守って待...
#ref(GG_CJE_append01.jpg,nolink)
*スクリプト [#id098d34]
short bOnPlayerDead
float rstTimer
begin GameMode
;■プレイヤー死亡時。いったんResurrectした上で、Controls...
if Player.GetDead == 1
set bOnPlayerDead to 1
Player.Resurrect 1
DisablePlayerControls
endif
;■プレイヤーが死んでいて、戦闘中でなければ
if bOnPlayerDead == 1 && IsInCombat == 0
;演出上、少し間を空けておく
if rstTimer < 3
set rstTimer to rstTimer + GetSecondsPassed
else
set rstTimer to 0
set bOnPlayerDead to 2
endif
elseif bOnPlayerDead == 2
;会話しに来させる
StartConversation player, GGValForceRST
elseif bOnPlayerDead == 3
set bOnPlayerDead to 0
MessageBox "あなたは手当てをしてもらい、一命を取り留め...
;もう一度Resurrectした上でControls可にする。
player.Resurrect 1
player.EnablePlayerControls
endif
*解説 [#l2b66e3a]
**NPC蘇生とプレイヤー蘇生の違い [#o418b08c]
NPCを蘇生させるのとは勝手が違っていて試行錯誤しました。い...
プレイヤー蘇生に関しては[[Death Inc>NexusOblivion:2183]]...
Death Incで行っているのは下記のような処理です。
-毎フレーム、プレイヤーの生死を確認
-プレイヤーの死を検出したら即Resurrectしておく。さらにDis...
-死神の演出を絡めた後に、もう一度Resurrect。さらにEnableP...
NPC同様、単純にプレイヤーをResurrectするだけでもいちおう...
なので、
-一度目のResurrect→視点を正常な位置に留めておく。
-二度目のResurrect→本番の復活
という処理になっているのではないかと思います。
**会話後に蘇生処理 [#r2b8ff09]
上述のとおり、コンパニオンに蘇生させるといっても実は死亡...
StartConversation player, GGValForceRST
会話コマンドに、会話対象のplayer、そして会話内容のトピッ...
GGValForceRSTは新規に作成したトピックで、「しっかりして」...
set GGValeria.bOnPlayerDead to 3
を指定して、会話終了のタイミングで次の処理に進むようにし...
*既知の問題 [#ea082fa6]
**魔法効果が解除されてしまう問題 [#xb2a516e]
***現象: [#u525d176]
Resurrect後に起きる大きな問題としては、全てのActiveな魔法...
***対策: [#n5f6a402]
装備品は一度外して装備し直せば大丈夫です。ボーナスについ...
**Resurrectのキャラ飛び問題 [#ze9854a8]
***現象: [#cc2f73ae]
Resurrectコマンド実行後には対象キャラの位置がずれてしまう...
***対策: [#zfba439d]
このへんは仕様なのか、対策があるのか良く分かりません。
まあ今回の蘇生処理自体はあくまでおまけであって、もともと...
**Resurrectしたのにまた倒れる [#y56c69f5]
***現象: [#d23d04f5]
どういう条件で起こるのか良く分かってないのですが、歩いて...
***対策: [#da62d181]
コンパニオン会話のその他メニューに「強制Resurrect」を設け...
終了行:
*ねらい [#y2c8e105]
「コンパニオンを無敵にしない」と同様に、今度はコンパニオ...
*流れ [#xc446a3a]
-プレイヤー死亡
-コンパニオンが戦闘状態でない(敵をクリアにしている)
-プレイヤーに会話しに来た後のタイミングで蘇生処理
死んでしまったプレイヤーはコンパニオンの奮戦を見守って待...
#ref(GG_CJE_append01.jpg,nolink)
*スクリプト [#id098d34]
short bOnPlayerDead
float rstTimer
begin GameMode
;■プレイヤー死亡時。いったんResurrectした上で、Controls...
if Player.GetDead == 1
set bOnPlayerDead to 1
Player.Resurrect 1
DisablePlayerControls
endif
;■プレイヤーが死んでいて、戦闘中でなければ
if bOnPlayerDead == 1 && IsInCombat == 0
;演出上、少し間を空けておく
if rstTimer < 3
set rstTimer to rstTimer + GetSecondsPassed
else
set rstTimer to 0
set bOnPlayerDead to 2
endif
elseif bOnPlayerDead == 2
;会話しに来させる
StartConversation player, GGValForceRST
elseif bOnPlayerDead == 3
set bOnPlayerDead to 0
MessageBox "あなたは手当てをしてもらい、一命を取り留め...
;もう一度Resurrectした上でControls可にする。
player.Resurrect 1
player.EnablePlayerControls
endif
*解説 [#l2b66e3a]
**NPC蘇生とプレイヤー蘇生の違い [#o418b08c]
NPCを蘇生させるのとは勝手が違っていて試行錯誤しました。い...
プレイヤー蘇生に関しては[[Death Inc>NexusOblivion:2183]]...
Death Incで行っているのは下記のような処理です。
-毎フレーム、プレイヤーの生死を確認
-プレイヤーの死を検出したら即Resurrectしておく。さらにDis...
-死神の演出を絡めた後に、もう一度Resurrect。さらにEnableP...
NPC同様、単純にプレイヤーをResurrectするだけでもいちおう...
なので、
-一度目のResurrect→視点を正常な位置に留めておく。
-二度目のResurrect→本番の復活
という処理になっているのではないかと思います。
**会話後に蘇生処理 [#r2b8ff09]
上述のとおり、コンパニオンに蘇生させるといっても実は死亡...
StartConversation player, GGValForceRST
会話コマンドに、会話対象のplayer、そして会話内容のトピッ...
GGValForceRSTは新規に作成したトピックで、「しっかりして」...
set GGValeria.bOnPlayerDead to 3
を指定して、会話終了のタイミングで次の処理に進むようにし...
*既知の問題 [#ea082fa6]
**魔法効果が解除されてしまう問題 [#xb2a516e]
***現象: [#u525d176]
Resurrect後に起きる大きな問題としては、全てのActiveな魔法...
***対策: [#n5f6a402]
装備品は一度外して装備し直せば大丈夫です。ボーナスについ...
**Resurrectのキャラ飛び問題 [#ze9854a8]
***現象: [#cc2f73ae]
Resurrectコマンド実行後には対象キャラの位置がずれてしまう...
***対策: [#zfba439d]
このへんは仕様なのか、対策があるのか良く分かりません。
まあ今回の蘇生処理自体はあくまでおまけであって、もともと...
**Resurrectしたのにまた倒れる [#y56c69f5]
***現象: [#d23d04f5]
どういう条件で起こるのか良く分かってないのですが、歩いて...
***対策: [#da62d181]
コンパニオン会話のその他メニューに「強制Resurrect」を設け...
ページ名:
▲
■
▼