设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 114|回复: 0

[转载发布] DoubleX RMVXA State Triggers

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    9071

    主题

    864

    回帖

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    58883
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    68848

    灌水之王

    发表于 2026-8-1 16:34:06 | 显示全部楼层 |阅读模式
    Purpose


            Sets some states to trigger additional effects when conditions are met


    Games using this script


            None so far


    Notetag

    SpoilerSpoiler




    #  * State Notetags:                                                           |
    #    1. <timing state trigger: stcx, stax>                                     |
    #       - Sets a state to trigger stax when timing and stcx are met            |
    #       - timing can be add, turn, remove or custom timings set by you         |
    #       - add means the state's just added                                     |
    #       - turn means the state's remaining turn's just reduced by 1            |
    #       - remove means the state's just removed                                |
    #       - while means the stax effects are active as long as the state's active|
    #       - timing must only consist of alphanumeric characters                  |
    #       - stcx can be set in State Trigger Condition Notetag Values            |
    #       - stax can be set in State Trigger Action Notetag Values               |



    SpoilerSpoiler


                    Code:       
    1.     #--------------------------------------------------------------------------|
    2.     #  State Trigger Condition Notetag Values                                  |
    3.     #  - Setups stcx used by this script's notetags                            |
    4.     #--------------------------------------------------------------------------|
    5.     # stcx are read at:
    6.     # 1. RPG::State
    7.     #    - (@state_triggers[$1.downcase.to_sym] ||= []).push(
    8.     #      [$2.downcase, $3.downcase]) in load_state_triggers_notes
    9.     # stcx are used at:
    10.     # 1. Game_BattlerBase
    11.     #    - triggers.any? { |trigger| st.send(trigger[0], self, state) } in
    12.     #      meet_any_state_trigger?
    13.     #    - st.send(trigger[0], self, state) in state_trigger_features
    14.     # 2. Game_Battler
    15.     #    - st.send(trigger[1], self) if st.send(trigger[0], self) in
    16.     #      exec_state_triggers
    17.     # stcx are strings names of methods under DoubleX_RMVXA::State_Triggers
    18.     # stcx names can only use alphanumeric characters and can't use uppercase
    19.     # letters
    20.     # battler is the battler calling the stcx
    21.     # state is the state using the stcx
    22.     # The below stcx are examples added to help you set your stcx
    23.     # You can freely use, rewrite and/or delete these examples
    24.     # Sets the state trigger condition as always true
    25.     def self.stc1(battler, state)
    26.       true
    27.     end
    28.     # Sets the state trigger condition as always false
    29.     def self.stc2(battler, state)
    30.       false
    31.     end
    32.     # Sets the state trigger condition as needing switch with id x to be on
    33.     def self.stc3(battler, state)
    34.       $game_switches[x]
    35.     end
    36.     # Sets the state trigger condition as needing the state using this stcx to
    37.     # have its number of remaining turns greater than x
    38.     def self.stc4(battler, state)
    39.       battler.instance_exec { @state_turns[state_id] > x }
    40.     end
    41.     # Adds new stcx here
    42.    
    43.     #--------------------------------------------------------------------------|
    44.     #  State Trigger Action Notetag Values                                     |
    45.     #  - Setups stax used by this script's notetags                            |
    46.     #--------------------------------------------------------------------------|
    47.     # stax are read at:
    48.     # 1. RPG::State
    49.     #    - (@state_triggers[$1.downcase.to_sym] ||= []).push(
    50.     #      [$2.downcase, $3.downcase]) in load_state_triggers_notes
    51.     # stax are used at:
    52.     # 1. Game_BattlerBase
    53.     #    - }.collect! { |trigger| st.send(trigger[1], self, state) }.flatten! in
    54.     #      state_trigger_features
    55.     # 2. Game_Battler
    56.     #    - st.send(trigger[1], self) if st.send(trigger[0], self) in
    57.     #      exec_state_triggers
    58.     # stax are strings of names of methods under DoubleX_RMVXA::State_Triggers
    59.     # stax names can only use alphanumeric characters and can't use uppercase
    60.     # letters
    61.     # battler is the battler calling the stax
    62.     # state is the state using the stax
    63.     # If the timing using the stax is while, the stax must return an array of
    64.     # RPG::BaseItem::Feature
    65.     # You can refer to Game_BattlerBase and RPG::BaseItem::Feature for more info
    66.     # The below stax are examples added to help you set your stax
    67.     # You can freely use, rewrite and/or delete these examples
    68.     # Sets the state trigger action as what Special Effect Escape does
    69.     # This stax's not supposed to work with the timing while as it doesn't
    70.     # return an array of RPG::BaseItem::Feature
    71.     def self.sta1(battler, state)
    72.       battler.hide
    73.     end
    74.     # Sets the state trigger action as calling common event with id
    75.     # common_event_id
    76.     # This stax's not supposed to work with the timing while as it doesn't
    77.     # return an array of RPG::BaseItem::Feature
    78.     def self.sta2(battler, state)
    79.       $game_temp.reserve_common_event(common_event_id)
    80.     end
    81.     # Sets the state trigger action as executing damage equal to the value of
    82.     # game variable with id x to self with type equal to that of skill with id
    83.     # equal to y
    84.     # This stax's not supposed to work with the timing while as it doesn't
    85.     # return an array of RPG::BaseItem::Feature
    86.     def self.sta3(battler, state)
    87.       battler.result.clear
    88.       battler.result.make_damage($game_variables[x], $data_skills[y])
    89.       battler.execute_damage(battler)
    90.     end
    91.     # Sets the state trigger action as multiplying the battler's atk by x * 100%
    92.     # This stax's supposed to work with the timing while as it returns an array
    93.     # of RPG::BaseItem::Feature
    94.     def self.sta4(battler, state)
    95.       [RPG::BaseItem::Feature.new(21, 2, x)]
    96.     end
    97.     # Adds new stax here
    复制代码








    Script Call

    SpoilerSpoiler




    #  * Battler manipulations                                                     |
    #    1. exec_state_triggers(state_id, timing)                                  |
    #       - Executes all state triggers with timing timing of state with id      |
    #         state_id                                                             |
    #    2. meet_any_state_trigger?(state, timing)                                 |
    #       - Checks if any stcx with timing timing of state state is met          |
    #    3. state_trigger_features(state, timing)                                  |
    #       - Returns an array of features returned by all stax meeting stcx with  |
    #         timing timing of state                                               |
    #       - This script call's not supposed to work with timing add, turn nor    |
    #         remove but supposed to work with timing while                        |






    Prerequisites


            Abilities:


            1. Decent RGSS3 scripting proficiency to fully utilize this script


    Terms Of Use


            You shall keep this script's Script Info part's contents intact


            You shalln't claim that this script is written by anyone other than DoubleX or his aliases


            None of the above applies to DoubleX or his/her aliases


    Instructions


            Open the script editor and put this script into an open slot between Materials and Main. Save to take effect.


    FAQ


            None so far


    Authors


            DoubleX


    Changelog

    SpoilerSpoiler




    #    v1.03b(GMT 1400 10-5-2016):                                               |
    #    1. timing while won't replace but will combine the state's existing       |
    #       features with all stax meeting the corresponding stcx                  |
    #    v1.03a(GMT 1500 9-5-2016):                                                |
    #    1. adding the timing while to <timing state trigger: stcx, stax>          |
    #    v1.02a(GMT 1300 26-2-2016):                                               |
    #    1. stcx and stax take the state calling them as an argument as well       |
    #    v1.01b(GMT 0300 7-11-2015):                                               |
    #    1. Notetag values are now symbols of methods in the configuration regions |
    #    2. This script doesn't need DoubleX RMVXA State Triggers Compatibility to |
    #       be compatible with all its addressed scripts                           |
    #    3. Further improved this script's compatibility, efficiency and simplicity|
    #    v1.01a(GMT 1100 8-5-2015):                                                |
    #    1. Lets users use state triggers with timings set by them                 |
    #    v1.00g(GMT 1600 4-5-2015):                                                |
    #    1. Improved this script's efficiency                                      |
    #    v1.00f(GMT 0300 25-4-2015):                                               |
    #    1. Improved this script's effectiveness                                   |
    #    v1.00e(GMT 1400 21-4-2015):                                               |
    #    1. Further improved this script's robustness                              |
    #    v1.00d(GMT 1500 14-4-2015):                                               |
    #    1. Improved this script's robustness                                      |
    #    v1.00c(GMT 0200 12-4-2015):                                               |
    #    1. Fixed triggering remove actions upon adding state resists bug          |
    #    2. Fixed not triggering remove actions upon death, escape and recovery bug|
    #    v1.00b(GMT 1400 11-4-2015):                                               |
    #    1. Fixed not supporting multiple notetags on the same state bug           |
    #    v1.00a(GMT 1100 11-4-2015):                                               |
    #    1. 1st version of this script finished                                    |






    View attachment (DoubleX)State Triggers v1.03b.rar


    本贴来自国际rpgmaker官方论坛作者:DoubleX处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/doublex-rmvxa-state-triggers.38777/
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-8-18 00:22 , Processed in 0.064524 second(s), 55 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表