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

[转载发布] Make more out of weather than just a visual effect

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

    连续签到: 2 天

    [LV.7]常住居民III

    7959

    主题

    864

    回帖

    3万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

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

    灌水之王

    发表于 4 天前 | 显示全部楼层 |阅读模式
    Already a while ago I written myself a whole bunch of weather related plugins.
    First I wanted to make this just one plugin, but it took not long to realize it became a mess, so I had to split it
    into a core an extension plugins. Pretty sure some of those things I did can be done with simple eventing, too.
    The basic idea came from the weather mechanics of Pokémon which can drastically affect battles.
    Altough those plugins heavily affect battle they do not add the weather effect into the battle themselves.
    This is because there are already at least three plugin creators (Yanfly, Tsukihime, OcRam) that did that and I didn't want to
    commit the crime of plugiarism.
    My plugins will work on the default weather engine and thus are compatible to those three plugins, but not to MOG_WeatherEx.
    I will constantly update this thread to explain each single one of my plugins and upload them once they are all explained.
    If you have any further ideas around the weather that are not covered by my plugins, please let me know and I will see if I can
    convert them to code.

    Usage
    The plugins can be used for commercial and non-commercial use. Normally I do not want any credits, but as this was a lot of work,
    I would appreciate it if I get credited by my user name on this forum.
    Don't repost these plugin in this forum and please link always back to this thread
    when mentioning the plugin in another thread.
    The plugins cannot be used in an existing save file.

    Compatibility issues:
    Place this above YEP_BattleEngineCore
    and you have to comment this part of YEP_BattleEngineCore otherwise BO_WeatherSummon wont work correctly:

                    Code:       
    1. Yanfly.BEC.Game_Action_applyGlobal = Game_Action.prototype.applyGlobal;
    2. Game_Action.prototype.applyGlobal = function() {
    3.     //if ($gameParty.inBattle()) return;
    4.     Yanfly.BEC.Game_Action_applyGlobal.call(this);
    5. };
    复制代码


    or use BO_YepX_WeatherBattleEngineCore

    BO_WeatherCore
    - Builds the basic for the extension plugins.
    - 1 Plugin Parameter: BattleWeatherEffectsMap
    - The plugins that add weather effects into the battle screen normally do not change the weather back at the end of the battle in case it changed during battle. BO_WeatherCore provides this functionality which can be switched on/off via this plugin parameter.
    - The global variable $wpow is always set to current weather power. It can be used in formulas, e.g. 2 * (a.atk + $wpow) - b.def.

    BO_WeatherCharacterStyles
    Doesn't affect the battle. This is rather for visual aspects. It changes the actors/enemies/events appearance during different weathers only via notetags. In the notetags 'None' can be used as a weather name.

    Actor notetags are:
    <Weather X Face:Y> Where X is the name of the weather and Y is the name of the file which should used for the actors face image during the weather X. Please note: The face image index stayes the same, e.g. Marsha is at 8 or 7 (do not know if it zero based), so please make sure the 8th (7th) part of the new image actually contains some non transparent pixels.

    <Weather X Character:Y> The same as above for the character image file name.
    <Weather X Battler:Y> The same but for the battler image name.

    Examples:

    <Weather Rain Face:Harold_Rain>
    <Weather Rain Character:Harold_Rain>
    <Weather Rain Battler:Harold_Rain>
    <Weather Storm Face:Harold_Storm>
    <Weather Storm Character:Harold_Storm>
    <Weather Storm Battler:Harold_Storm>

    The enemy notetag is:
    <Weather X Hue:Y> Where X is the name of the weather and Y is the new Hue value to be used during battle.

    Examples:
    <Weather Storm Hue:267>
    <Weather Rain Hue:33>
    <Weather Snow Hue:204>
    <Weather None Hue:129>

    Event Notetags:
    <Weather X Page Y:[Z,Idx] Where X is the name of the weather and Y is the zero-based index of the event page that should get a weather dependend image. Z is the name of the new image file to be used and Idx the index within this image file to be used.

    Examples:
    <Weather Rain Page 0:[Event1,1]><Weather Snow Page 0:[Event1,2]>








    BO_WeatherSummon
    This plugin is all about changing the weather at the start of the battle or during the battle. It is entirely notetag based.

    Actor/Enemy/Class notetags:
    <WeatherSummon:X Pow Dur Turns> Actor/Enemy entering battle will immediately
      change the current weather into the given weather.
      Where
        - X is the name of the weather, e.g. Rain
        - Pow is the new weather power, may exceed the default maximum of 9
        - Dur is the duration in Frames it takes to change the weather to the new one
        - Turns is the amount of turns the weather stayes active during battle after summoned
          (0 means infinite).

    <WeatherClear> As soon as this Actor/Enemy enters the battle the active weather will
    be set to 'None'.

    Entering the battle could mean:
    - At the start of the battle, where the actor/enemy with the lowest speed defines the starting weather.
    - Being swapped out, e.g. by using YEP_PartySystem
    - Appearing halfway. But do not make an enemy appearing halfway being a weather summoner and have a weather specific Hue, because it won't be displayed correctly and I don't know why.

    Item/Skill notetags:
    The same as above, but the weather changes upon using the skill/item.

    <WeatherEnhance: Pow>Upon using the skill/item the current weathers power will be strengthend/weakend by the amount given by Pow, where Pow can be negative.

    <WeatherEnhance:X,Pow>Same as above, but only works if the current weather is X (e.g. Rain)

    Examples:
    <WeatherSummon: Snow 12 0 0>
    <WeatherSummon: Rain 12 0 1>
    <WeatherClear>
    <WeatherEnhance:Rain,3>
    <WeatherEnhance:5>

    BO_WeatherRestrictedUsage

    This plugin allowes the usage of skills and items to be restricted to certain weather.

    Skill/Item Notetags:
    <WeatherUse X> Where X is the name of the weather: A skill/item can only be used during this weather.
    <WeatherSeal X> Where X is the name of the weather: The skill/item cannot be used during this weather.

    Both can also be applied to element names, which will add the restriction to all skills/elements that do damage of this element.
    Don't worry the plugin will remove the tag from the element name.

    Examples (Sorry for german screenshots):
    <WeatherUse Rain>
    <WeatherSeal Storm>
    Fire<WeatherSeal Rain>


    My Stormbringen can only be used during rain.

    [/url]
    My Let it snow cannot be used during rain.

    [url=https://forums.rpgmakerweb.com/attachments/elements-png.120387/]

    All fire element attacks cannot be used during rain.

    You may also use the 'None' weather with this.

    BO_WeatherBGS

    This plugin does not required BO_WeatherCore. It basically adds background sounds to the weather, which can be defined in the plugin parameters. If you are already using OcRam_WeatherEx you do not need this plugin, because OcRam has a way better implementation of background sounds for weather.

    BO_WeatherCustomSkillsAndItems

    I do not recall why I thought it was a good idea to do this. This plugin basically let's you customize almost every single property of a skill/items except the effects for certain weathers. It is entirely notetag based.

    <Weather X Name: Y> Where X is the name of the weather and Y is the name
    of the skill/item during this weather.

    <Weather X TextColor: Y> Where X is the name of the weather and Y is the
    color in which the skill should be displayed during this weather, e.g.
    <Weather Rain TextColor: Blue> or <Weather Snow TextColor:#00BBFF>

    <Weather X DamageType: Y> Where X is the name of the weather and Y is
    a number indicating the damage type during this weather.
    - 0: None
    - 1: HP Damage
    - 2: MP Damage
    - 3: HP Heal
    - 4: MP Heal
    - 5: HP Drain
    - 6: MP Drain

    <Weather X DamageFormula: Y> Where X is the name of the weather and Y
    is the damage formula to be used during this weather.

    <Weather X AttackSpeed: Y> Where X is the name of the weather and Y
    is the attack speed of the given skill/item during this weather.

    <Weather X AttackTimes: Y> Where X is the name of the weather and Y
    is the number of times the opponent is attacked consecutively during
    this turn by the item/skill when this weather is active. Minimum 1, Maximum 9.

    <Weather X Scope: Y> Where X is the name of the weather and Y is
    a number indicating the scope of the skill/item.
    - 0 None
    - 1: Single Enemy
    - 2: All Enemies
    - 3: One random Enemy
    - 4: Two random Enemy
    - 5: Three random Enemy
    - 6: Four random Enemy
    - 7: One ally
    - 8: All allies
    - 9: One ally (dead)
    - 10: All allies (dead)
    - 11: The user

    <Weather X Animation: Y> Where X is the name of the weather and Y is the database
    id of the animation to be played for the item/skill during this weather.

    <Weather X Icon: Y> Where X is the name of the weather and Y is the icon to be
    displayed next to the skill/item in the selection window during this weather.

    <Weather X Description: Y> Where X is the name of the weather and Y is the decription
    to be displayed for this skill/item during the given weather.

    <Weather X CanCrit: >Y> Where X is the name of the weather and Y is either
    true or false to indicate whether this skill/item can cause critical hits during
    the given weather.

    <Weather X Variance: Y> Where X is the name of the weather and Y is the
    the damage variance percentage during this weather. Minimum 0, Maximum 100.

    <Weather X Element: Y> Where X is the name of the weather and Y is either
    the database id of the element or name of the element of this skill/item
    during the given weather, e.g. <Weather Rain Element: 2> or <Weather Rain Element: Wate

    <Weather X MpCost: Y> Where X is the name of the weather and Y is the
    number of MP to be used for the skill during this weather.

    <Weather X TpCost: Y> The same as above but for TP.

    <Weather X TpGain: Y> Where X is the name of the weather and Y is the
    amount of TP to be gained when using this skill/item during the given weather.

    <Weather X HitType: Y> Where X is the name of the weather and Y is a number
    indicating the hit type of the skill/item during this weather.
    - 0: Certain Hit
    - 1: Physical
    - 2: Magical

    <Weather X SuccessRate: Y> Where X is the name of the weather and Y is the
    successrate of the skill/item during this weather. Minimum 0, Maximum 100.

    Examples:
    <Weather Rain Name:Water Triple Strike>
    <Weather Rain TextColor: Blue>
    <Weather Storm DamageType:1> // For HP Damage
    <Weather Rain DamageFormula: (4 * (a.atk + $wpow) - 2 * b.def) / 3>
    <Weather Storm AttackSpeed:500>
    <Weather Rain AttackTimes: 3>
    <Weather Snow Scope:2> // For all enemies
    <Weather Rain Animation:81>
    <Weather Rain Icon:67>
    <Weather Rain Description:Hits the opponent three times doing water damage.>
    <Weather Storm CanCrit:false>
    <Weather Storm Variance:0>
    <Weather Rain Element:Water>
    <Weather Rain MpCost: 5>

    <Weather Storm TpCost:10>
    <Weather Rain TpGain: 10>
    <Weather Snow HitType:0> // For certain hit
    <Weather Rain SuccessRate:80>


    It does not make sense but you may also use the 'None' weather with this.

    BO_WeatherRandomEncounter

    With this plugin you can make random encounter appear only during certain weather.
    This is accomplished via notetags on the map. It does not require BO_WeatherCore.

    <X Encounter: Y/> where X is the name of the weather and Y is a comma seperated list of troop ids.

    All troops with ids listed under those notetags will only appear during the given weather. All troops which are not part of any of those notetags will appear during each weather.

    You still have to set up all these encounters with rarity and region ids normally in the map screen.

    [/url]

    BO_WeatherTraits

    This plugin provides additional traits via notetags,
    that are only active during certain weather.
    All the notetags can be applied to Actors, Classes, Enemies, States and Equipment.
    Note: Not all of the existing traits of the editor are supported.
    The supported notetags are explained in the plugins helpfile.

    BO_WeatherActionEffects

    With this plugin items and skills might have effects, that only trigger during a certain
    weather. It is entirely notetag based and all the supported notetags are explained in the
    plugins helpfile.

    BO_WeatherDamageMultiplier

    This plugin provides additional damage multipliers depending on the weather via notetags and suffixes on the type names.
    Type Name Suffixes (Skill Types, Element Types, Weapon Types, Armor Types):
    <Weather X Damage Y> Where x is the name of the weather and Y is a floating value representing the damage factor.
    The factor can be negative.

    Examples:
    * Fire<Weather Rain Damage 0.5>: Fire Element Skills/Items will deal half damage during rain
    * Shield<Weather Snow Damage 0.25>: All armor of type shield will reduce damage to quarter during snow.
    * Sword<Weather Storm Damage 2.0> All skills performed with weapons of type sword will deal twice as much damage.

    <Weather X Heal Y> Where x is the name of the weather and Y is a floating point number defining the healing factor.
    The factor can be negative.

    Examples:
    * White Magic<Weather Rain Heal -1.0> All healing skills of type white magic will do damage during rain instead.
    * Water<Weather Rain Heal 2.0> All healing skills of the water element will heal twice as much during rain.

    Notetags (Actor, Class, Enemy):
    <Weather X Damage Deal: Y> Where X is the name of the weather and Y is a floating point
    value representing the damage factor. This damage factor will be applied if an actor/class/enemy
    uses a damaging or draining skill/item on an actor/enemy during the given weather.

    <Weather X Damage Receive: Y> Where X is the name of the weather and Y is a floating point
    value representing the damage factor. This damage factor will be applied if an actor/class/enemy
    is attacked by a damaging or draining skill/item by an actor/enemy during the given weather.

    <Weather X Drain Deal: Y> Where X is the name of the weather and Y is a floating point
    value representing the damage factor. This damage factor will be applied if an actor/class/enemy
    uses a draining skill/item on an actor/enemy during the given weather. Will overrule the damage deal
    factor.

    <Weather X Drain Receive: Y> Where X is the name of the weather and Y is a floating point
    value representing the damage factor. This damage factor will be applied if an actor/class/enemy
    is attacked by a draining skill/item by an actor/enemy during the given weather. Will overrule the
    damage receive factor.

    <Weather X Heal Deal: Y> Where X is the name of the weather and Y is a floating point
    value representing the heal factor. This factor will be applied when an actor/class/enemy uses
    a healing skill/item on an actor/enemy during the given weather.

    <Weather X Heal Receive: Y> Where X is the name of the weather and Y is a floating point
    value representing the damage factor. This factor will be applied when an actor/class/enemy
    receives healing from another actor/enemy during the given weather.

    <Weather X ElementHeal: Y> Where X is the name of the weather and Y is the id or name of the
    element. Skills/Items with the given element will always heal units with this notetag applied
    during the given weather.

    <Weather X ElementDamage: Y> Where X is the name of the weather and Y is the id or name of the
    element. Skills/Items with the given element will always damage units with this notetag applied
    during the given weather. ElementDamage will always overrule ElementHeal for the same Element
    independend of the notetag order.

    All factors can be negative.

    Edit:
    Fixed a bug in BO_WeatherSummon I found while using it in another project then my test project.

    Edit 2:
    Fixed a bugs in BO_WeatherDamageMultiplier: ElementHeal and ElementDamage didn't work. They also didn't apply the element of normal attacks.


    BO_WeatherTurnsDisplay

    One big thing I noticed, which was really missing from this is a display for how many turns the weather in battle lasts.
    It is an extension plugin for BO_WeatherSummon and creates a small window in the battle scene, that displays the remaining turns of the weather.
    And sorry I forgot to include a help file in this one. Now I just hope it is self explanatory enough.

    Here you see screenshots of it's default position and layout, which can be adjusted in the plugin parameters:
    [url=https://forums.rpgmakerweb.com/attachments/snow-display-png.125646/]


    It will hide itself when the turn count reaches 0 and is also able to display endless amount of turns:


    BO_YepX_WeatherBattleEngineCore

    Added multiple workarounds for YEP_BattleEngineCore compatibility with BO_WeatherSummon and BO_WeatherCustomSkillsAndItems.
    Requires BO_WeatherSummon abd YEP_BattleEngineCore and needs to be placed under both.
    With this it is no longer needed to comment out the code in Game_Action.prototype.applyGlobal in YEP_BattleEngineCore for BO_WeatherSummon to work properly.



    本贴来自国际rpgmaker官方论坛作者:BurningOrca处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/make-more-out-of-weather-than-just-a-visual-effect.111653/

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

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

    本版积分规则

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

    幸运抽奖

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

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2026-8-1 05:44 , Processed in 0.096152 second(s), 55 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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