このページは0.Gから利用可能になった外部拡張言語EoCの説明であるEFFECT_ON_CONDITION.mdを機械翻訳したものをもとに加筆中のページです。 まだノウハウが溜まっていないため、ガリガリ加筆してくれる有識者を募集しています。
Identifier | Type | Description |
recurrence | 整数またはオブジェクトまたはArray | effect_on_condition は、この秒数の間に自動的に呼び出されます (アクティブ化されます)。 オブジェクトの場合は、文字列 `name`、`type`、および `context` が必要です。 `default` は int または期間を表す文字列のいずれかです。 `global` はオプションの bool (デフォルトは false) です。true の場合、使用される変数は常に、ダイアログのターゲットではなくプレイヤー キャラクターからのものになります。 配列の場合、int または varible_objects のいずれかである 2 つの値が必要です。 |
condition | condition | この effect_on_condition がアクティブ化されると、その効果が発生する条件。 完全な構文については、[NPCs](NPCs.md) の「対話条件」セクションを参照してください。 |
deactivate_condition | condition | *オプション* effect_on_condition が自動的にアクティブ化 (呼び出され) され、その条件が失敗した場合、deactivate_condition が存在し、false_effect エントリがないかどうかがテストされます。 true が返された場合、この effect_on_condition は「recurrence」秒ごとに自動的に呼び出されなくなります。 プレーヤー/npc が特性またはバイオニックを獲得/喪失するたびに、無効化されたすべての effect_on_conditions で `deactivate_condition` が実行されます。 false が返されると、effect_on_condition の実行が再び開始されます。 これは、ターゲットのバイオニック/特性がない場合に、実行時間を無駄にしない特定の特性またはバイオニックに effect_on_conditions を追加できるようにするためです。 完全な構文については、[NPCs](NPCs.md) の「対話条件」セクションを参照してください。 |
effect | effect | アクティベーション時に `condition` が true を返す場合に生じる効果。 完全な構文については、[NPCs](NPCs.md) の「対話効果」セクションを参照してください。 |
false_effect | effect | アクティベーション時に `condition` が false を返す場合に発生する効果。 完全な構文については、[NPCs](NPCs.md) の「対話効果」セクションを参照してください。 |
global | bool | これが true の場合、この繰り返し eoc はプレーヤーとグローバル キューのすべての npc で実行されます。 無効化条件はアバターに基づいて機能します。 false の場合、アバターとすべてのキャラクターは、独自のコピーと独自の無効化されたリストを持ちます。 デフォルトは false です。 |
run_for_npcs | bool | global が true の場合にのみ true になります。 false の場合、eoc はアバターに対してのみ実行されます。 true の場合、アバターとすべての npc に対して eoc が実行されます。 デフォルトは false です。 |
EOC_TYPE | string | ACTIVATION…何らかの外的要因で起動。省略時はこれ。 RECURRING…別途指定間隔で起動。(recurrence指定時は自動でこれ。) SCENARIO_SPECIFIC…シナリオ開始時に一度起動。 AVATAR_DEATH…現在のアバター死亡時にアバターをu、殺害者をNPCとして起動。 NPC_DEATH…NPCが起動した場合に起動。 OM_MOVE…プレイヤーがマップ画面のマスをまたいだ時起動。 PREVENT_DEATH…現在のアバターが死ぬたびに、アバターをuとして起動。その後、プレイヤーが死んでいない場合は死なず、複数ある場合は、プレイヤーが死んでいないまですべて実行されます。 |
{ "type": "effect_on_condition", "id": "test_deactivate", "recurrence": 1, "condition": { "u_has_trait": "SPIRITUAL" }, "deactivate_condition": {"not":{ "u_has_trait": "SPIRITUAL" } }, "effect": { "u_add_effect": "infection", "duration": 1 } },
{ "type": "effect_on_condition", "id": "test_stats", "recurrence": [ 1, 10 ], "condition": { "not": { "u_has_strength": 7 } }, "effect": { "u_add_effect": "infection", "duration": 1 } }
{ "type": "effect_on_condition", "id": "EOC_SLEEP", "effect": [ { "u_message": "You feel very sleepy…" }, { "arithmetic": [ { "u_val": "fatigue" }, "+=", { "const": 40 } ] } ] }
{ "id": "poppy_sleep", "type": "COMESTIBLE", "comestible_type": "MED", "name": { "str": "poppy sleep" }, "description": "A potent sleep aid extracted from mutated poppy seeds. Effective, but as an opiate it can be addictive.", 略 "use_action": { "type": "effect_on_conditions", "description": "Can be used to treat insomnia.", "effect_on_conditions": [ "EOC_SLEEP" ] } }
種類 | variable object | math式 | 会話タグ | 説明 |
u_variable | { "u_val": "var_name" } | { "math": [ "u_var_name" ] } | "<u_val:var_name>" | Alpha Talkerに保存される変数 |
npc_variable | { "npc_val": "var_name" } | { "math": [ "n_var_name" ] } | "<npc_val:var_name>" | Beta Talkerに保存される変数 |
global_variable | { "global_val": "var_name" } | { "math": [ "var_name" ] } | "<global_val:var_name>" | ゲーム中どこからでも参照できる変数 |
context_variable | { "context_val": "var_name" } | { "math": [ "_var_name" ] } | "<context_val:var_name>" | 呼び出し元によって設定された変数 |
var_val | { "var_val": "variable" } | { "math": [ "v_variable" ] } | - | context variable: "variable"に保存されている文字列の名前の変数を参照する |
{ "type": "effect_on_condition", "id": "eoc_name", "condition": { "u_has_item": "pass" }, "effect": { "u_message": "ようこそ" }, "false_effect": { "u_message": "帰れ!" } }
{ "type": "effect_on_condition", "id": "eoc_name", "eoc_type": "EVENT", "required_event": "game_start", "effect": { "u_message": "Hello World!" } }
{ "type": "effect_on_condition", "id": "eoc_check_generic_guns", "//0: "ゲーム開始時に実行", "eoc_type": "EVENT", "required_event": "game_start", "//1": "MODがロードされているか", "condition": { "mod_is_loaded": "generic_guns" }, "//2": ポップアップを表示", "effect": { "u_message": "MODなんとかは「変更 - 汎用銃器」と互換性がありません", "popup": true, "type": "warning" } }
{ "type": "effect_on_condition", "id": "eoc_set_timer", "effect": { "u_add_var": "timer", "time": true } }, { "type": "effect_on_condition", "id": "eoc_check_timer", "condition": { "and": [ { "not": { "u_has_var": "timer", "value": "" } }, { "u_compare_time_since_var": "timer", "op": "<", "time": "3 m" } ] }, "effect": {...} }
{ "type": "effect_on_condition", "id": "eoc_set_timer", "effect": { "math": [ "u_timer", "=", "time('now')" ] } }, { "type": "effect_on_condition", "id": "eoc_check_timer", "condition": { "and": [ { "math": [ "has_var(u_timer)" ] }, { "math": [ "time_since(u_timer)", "<", "time('3 m')"] } ] }, "effect": {...} }
{ "type": "effect_on_condition", "id": "eoc_mutate_in_category", "//0": "primerが設定されてないとエラー", "condition": { "expects_vars": [ "primer" ] }, "//1": "プライマーを最大にして変異、その後値を復元", "effect": [ { "math": [ "_vitamin_backup", "=", "u_vitamin(_primer)" ] }, { "math": [ "u_vitamin(_primer)", "=", "2500" ] }, { "u_mutate": 0, "use_vitamins": false }, { "math": [ "u_vitamin(_primer)", "=", "_vitamin_backup" ] } ] }, { "type": "effect_on_condition", "id": "eoc_mutate_alpha", "//0": "context variableを設定してEOCを呼び出す", "effect": { "run_eoc_with": "eoc_mutate_in_category", "variables": { "primer": "mutagen_alpha" } } }
{ "type": "effect_on_condition", "id": "eoc_drink_by_addiction", "//0": "10分~1時間で実行", "recurrence": [ "10 m", "1 h" ], "//1": "眠っていない&10未満の乱数<アルコール依存症の強度", "condition": { "and": [ { "not": { "u_has_effect": "sleep" } }, { "math": [ "rand(10)", "<", "u_addiction_intensity('alcohol')" ] } ] }, "//2": "依存症がなくなったら停止", "deactivate_condition": { "math": [ "u_addiction_intensity('alcohol')", "==", "0" ] }, "//3": "所持品から素材:アルコール&カテゴリ:食品の物を1個選びそれをBetaに設定しEOCを実行", "effect": { "u_run_inv_eocs": "random", "search_data": [ { "material": "alcohol", "category": "food" } ], "true_eocs": "eoc_alcohol_found" } }, { "type": "effect_on_condition", "id": "eoc_alcohol_found", "//0": "Beta=アイテムで呼び出される", "effect": [ { "u_message": "我慢できずに<npc_name>を飲んでしまいました。"}, { "u_activate": "ALCOHOL" }, { "u_activate": "ALCOHOL_WEAK" } ] }, { "//0": "依存症獲得時には周期EOC再開が評価されないので手動で呼び出す", "type": "effect_on_condition", "id": "eoc_start_drinking", "//1": "依存症になった時に実行", "eoc_type": "EVENT", "required_event": "gains_addiction", "//2": "獲得した依存症はアルコール依存症か", "condition": { "compare_string": ["alcohol", {"context_val": "add_type"}] }, "//3": "EOCを呼び出す" "effect": { "run_eocs": "eoc_drink_by_addiction" } }
{ "type": "effect_on_condition", "id": "eoc_add_1", "condition": { "expects_vars": [ "var" ] }, "effect": [ { "u_message": "<context_val:var>を+1する" }, { "math": [ "v_var", "+=", "1" ] } ] }, { "type": "effect_on_condition", "id": "eoc_var_val_test", "effect": [ { "math": ["u_var_1", "=", "0" ] }, { "run_eoc_with": "eoc_add_1", "variables": {"var": "u_var_1" } }, { "u_message": "<u_val:var_1>" }, { "math": ["u_var_2", "=", "10" ] }, { "run_eoc_with": "eoc_add_1", "variables": {"var": "u_var_2" } }, { "u_message": "<u_val:var_2>" } ] }
{ "type": "effect_on_condition", "id": "eoc_follow_npc_in_sight", "effect": { "//0": "対象のNPCをAlphaに設定してEOCを呼び出す", "u_run_npc_eocs": [ "eoc_call_eoc_npc_as_beta" ], "//1": "60マス以内にいるNPCが対象", "npc_range": 60, "//2": "プレイヤーから見えているNPCのみが対象", "npc_must_see": true, "//3": "読み込み範囲内のみ対象、npc_rangeなどを使う時はtrueの必要あり", "local": true } }, { "type": "effect_on_condition", "id": "eoc_call_eoc_npc_as_beta", "effect": { "//0": "呼び出すEOCのid", "run_eoc_with": "eoc_make_npcs_follow_inner_inner", "//1": "Alpha=プレイヤーに設定", "alpha_talker": "avatar", "//2": "Beta=現在のAlphaに設定、上記のEOCからの呼出で視界内のNPCとなる", "beta_talker": "u" }, }, { "type": "effect_on_condition", "id": "eoc_make_npc_follow", "//0": "follow、leaveなどの効果は対象がBetaに設定する必要があり、", "//1": "そうでなければエラーが起きてしまう。", "effect": [ { "message": "<npc_name>を仲間にします" }, "follow" ] }
"eoc_follow_npc_in_sight"は開発版と同じなので省略 { "type": "effect_on_condition", "id": "eoc_call_eoc_npc_as_beta", "//": [ "H版はrun_eoc_withでAlphaをBetaに設定する機能は未実装である。", "呪文詠唱によるEOC呼び出しでは詠唱者がBetaに設定されるのを利用して", "Betaを対象とする効果を使用する事ができる。", "ただこの方法は実際にNPCが行動できるようになるまで効果を発揮せず、", "一瞬ウィンドウが表示されてしまう欠点がある。" ], "effect": { "//0": "呪文を詠唱させる", "//1": "上記のEOCから呼び出される場合、ここでのAlphaは視界内のNPC", "u_cast_spell": { "id": "SPELL_NPC_FOLLOW" } } }, { "type": "SPELL", "id": "SPELL_NPC_FOLLOW", "name": "NPCを仲間にする呪文", "description": "この呪文は詠唱者が仲間になるEOCを呼び出します", "//0": "呪文が成功した時にEOCを呼び出す", "effect": "effect_on_condition", "//1": "呼び出されるEOCのid", "effect_str": "eoc_make_npc_follow", "valid_targets": [ "self", "hostile", "ally" ], "shape": "blast", "min_aoe": 0, "max_aoe": 0, "base_casting_time": 0, "final_casting_time": 0, "flags": [ "NO_FAIL" ] }, "eoc_make_npc_follow"は開発版と同じなので省略