Pastebin
API
tools
faq
paste
Login
Sign up
Please fix the following errors:
New Paste
Syntax Highlighting
=begin DO READ THIS PART! I MEAN IT! Since I am getting tired of answering the exact same question over and over again, I will just leave this little note here, at the top, thinking that maybe, just maybe, someone will actually read it before asking questions and/or reporting bugs which aren't even bugs... Read the green letters below! Read! Read them, just once! All of it. If you are still thinking about asking THAT question or reporting THAT "bug" after reading the green letters I wrote (for some mysterious reason, starting to think that it is just a colossal waste of time to even try to write a documentation for any script, since no one reads them if they are longer than 5 lines anyway...), please read those meany green letters again, carefully. IF you are still convinced that you have a valid question or a valid bug report, feel free to PM me on the forums. There, now you can start reading that documentation for real, thanks! =end #=============================================================================== # * [ACE] Bug Fixes for Falcao's Pearl ABS Liquid v3 #=============================================================================== # * Made by: Sixth (www.rpgmakervxace.net, www.forums.rpgmakerweb.com) # * Version: 2.2 # * Updated: 08/01/2017 # * Requires: Falcao's Pearl ABS Liquid v3 #------------------------------------------------------------------------------- # * < Change Log > #------------------------------------------------------------------------------- # * Version 1.0 (01/08/2015) # - Initial release. # * Version 1.1 (08/08/2015) # - Added settings to enable/disable the regen popups at will. # Cut-scenes just don't look nice while random numbers are on the screen... # - Added global cooldown note-tags for items. # You can now prevent the player from executing multiple tools at the same # time, so no more shooting fireballs and swinging your sword around while # drinking a potion, those times are over! # * Version 1.2 (27/08/2015) # - Added in the boss HP bar hiding feature. # You can now manually hide the HP bar of bosses anytime with eventing. # - Restored KO effect by slip damage. # * Version 1.3 (28/08/2015) # - Fixed an issue with the enemy auto-turn on casting feature. # Weapon and armor tools should no longer crash the game. # - Added in thanasulas's fix for the combo delay issue. # - I kinda missed the confusion state from this ABS, so... # Added a way to make confusion states possible in the ABS. # A character inflicted with confusion will get it's directions messed up! # This feature is optional, and configurable. # * Version 1.4 (02/09/2015) # - Fixed damage reduction on guarding. Damage will only be reduced if the # shield's user is facing towards the incoming tool attack. # The guarding state must be the default one (state 9) for this to work! # - Guarding did not work properly against tools with bigger sizes. # This is now fixed as well. # - Added a script call for changing the HP of the enemies manually. # - Added a note-tag that lets you make tools with "irregular" sizes. # This means that you are not limited to make tools with the same width and # height anymore. You can make a tool with 8 width and 1 height if you want, # for example (firewall, anyone?). # - Added a note-tag for reversing the targets of a tool. Since tools which # target allies work differently than tools which target enemies, it was not # possible to make a "Healing Glyph" skill, for example, without it healing # the enemies as well as the party members in range. Now you can make tools # like that and make them only affect the party/enemies, not both. # - Changed the way the effect of the tools are triggered. Turns out I did # this long time ago, and forgot about it. This resulted in me giving out # wrong advice on the forums. Now you can manipulate how many times a tool # hits the target(s) by adjusting it's effect and destroy delay properly. # For example, if you set the effect delay to 60, the tool would trigger # it's effect in every 60 seconds but only if the tool is not yet destroyed # (so the tool's destroy delay must be at least 2x more + 2 than the effect # delay to make a 2-hit tool, or it must be at least 3x more + 3 to make a # 3-hit tool, and so on)! # - By default, tools are destroyed immediately when the target guards it # completely ("Guard" text pops up). There are some tools which would not # work like this (Healing Glyph, Firewall, etc). Now you can note-tag your # tools to prevent their destruction when the target guards them. # - By default, all of the tools can be guarded, be it a restorative one or # an offensive one. You can note-tag any tools to make them ignore guarding. # - By default, if the target is hit by an offensive tool, the target gets a # 20 frames long invincibility effect (can not be hit with any other tool # for 20 frames). If the target is hit by multiple tools at the same time, # it is possible that only one of them will trigger it's effect, and I did # not like it this way. Also, since I changed the way when the effects are # triggered, this function is not really needed anymore, so I added an # option to completely remove it. This is an optional feature. # * Version 1.5 (04/09/2015) # - Made the new effect trigger feature an optional one. # Now you can use a note-tag to use my new effect trigger type. # Tools without that note-tag will behave the default way. # - Made another optional note-tag to set the invincible time of the targets # on a per tool basis instead of a global time for all tools. # You can set the default invincible time in the settings, and if you omit # the note-tag for this, that value will be loaded by default. # - Enemy sensors did not reset after a map change. This resulted in every # enemy in the range of the player when the map transfer took place # instantly become active after returning to the map at any later point, # regardless if the enemies were in range after a map reset or not. # This should be fixed now. # * Version 1.6 (05/10/2015) # - Enemy sensors were turned ON/OFF even for dead enemies. # This is not the case anymore. # This might increase performance if you have a lot of enemies on a map. # - Calling the tool/character selection menu was possible even when the # interpreter was running (during non-parallel events). This is fixed. # - Triggering a tool was possible even when the interpreter was running # (during non-parallel events). This is fixed. # - Added a switch setting to enable/disable the ABS tool triggers without # hiding the HUD. # - Added an experimental reflect feature. You can use it just like the normal # reflect feature, just add MRF to your actors/enemies/equips/etc in the # database. You can set which tools ignore the reflect state with a note-tag. # * Version 1.7 (06/05/2016) # - Added compatibility for Pikakapi's Battle Royale Addon. # - Fixed dual wield issues on tool usage. From now on, it will use the # correct tool type for dual wielding actors (meaning weapon tools and not # armor tools). # - It was not possible to equip weapons on the second tool slot from the # quick tool menu Falcao made. That is now fixed. It will check the actor's # second equip slot to determine if it should include weapons or armors on # the tool list. This is kinda necessary for the actors with dual wield # features. # - Now you can unequip any tool from the quick tool menu by pressing it's # hotkey in the menu. It was not possible to do this before. # * Version 1.8 (06/05/2016) # - Actors couldn't be equipped with any skills gained from equipment, state, # class or actor features with the 'set_skill' script call. Fixed it. # * Version 1.9 (01/07/2016) # - The characters will now be considered to be "acting" even if they guard. # - Added a compatibility patch for my Equip Engine. That is a private script, # so, if you are not me or the owner of that script, you don't have to worry # about this! # * Version 2.0 (22/07/2016) # - When used ally targeting items, the effect was based on the targets' # parameters instead of the user's parameters like it should be. # This is now fixed. # - Added a compatibility patch for my ABS Battle Royale script. # This is a private script, so if you are not me or the owner of that # script, you don't have to worry about this one! # * Version 2.1 (03/08/2016) # - Defeated enemy events did not reset their passive state. # This is now fixed. # * Version 2.2 (08/01/2017) # - Fixed a crash issue for enemies with the "Enemy Die Self Switch = x" # note-tag. # - Fixed drop items not showing up when using the above mentioned note-tag # on an enemy. #------------------------------------------------------------------------------- # * < Description > #------------------------------------------------------------------------------- # * This script fixes several bugs/weird behaviors found in Falcao's ABS, and # adds some new (optional) features too. # These include: # - The cooldown of the tools are updated even in the menu(s). Fixed. # - The player is able to change tools on cooldown. Fixed. # - The player is able to equip the same items/skills more than one time. # Fixed. Even if this is not a real thing which needed a fix, it was # necessary for the previous fix to work. # - The animation frames on iconset animation are wrong when the player faces # down. Fixed. # - The dead icon sprites above dead party members are not disposed upon a # map change. Fixed. # - The boss bar will not get disposed upon a map change. Fixed. # - The HP/MP/TP regen features are only working if these features are gained # with a state. Actor, class, equipment regen features aren't working. Fixed. # - HP/MP/TP regen states restore/damage the player in completely random # time intervals. Fixed. All regen effects will be executed in every second # from now on, instead of randomly triggering. # - Characters are able to move around freely even when they are in the middle # of casting. Fixed. This fix can be disabled at will. # - Even if you disable the player's movement on casting, you can still allow # the player to change directions during casting. This is not really a fix, # more like an optional feature which might come in handy if you disable # the player's movement during casting. # - It is not possible to disable a hotkey for a tool slot. Fixed. You can now # set 'nil' (without the apostrophes) for a tool's key setting to disable # that tool entirely. Note that it won't remove the visuals for the tool, # just restricts the usage of it! # - The player is able to trigger multiple tools at the same time. Fixed. # You need to tag your tools with the global cooldown note-tag for this! # - No way to implement any kind of confusion states. "Fixed". # Well, more like "added"... # - Multiple issues are found with the guard feature. Fixed. # - Added a new, optional feature for inverting the scope of the tools. # - Added a new, optional feature for changing the effect trigger type of # the tools. # - Added a new, optional feature for setting custom invincible times for # your tools. # - Added a new, optional feature for more freedom in creating tool sizes # with different width and height. #------------------------------------------------------------------------------- # * < Script Calls> #------------------------------------------------------------------------------- # * To hide the boss HP bar manually during the game, use this script call: # # hide_boss_bar # # This can come in handy in eventing. #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # * To manually change an enemy's HP, you can use this script call: # # change_enemy_hp(id,val,allow_ko) # # id = The ID of the event on the map (NOT the ID of the enemy!). # val = The HP change value. # allow_ko = This can be true or false. If true, the enemy can be killed with # the script call in case it reaches 0 HP. If false, the enemy can # not be killed with the script call (the enemy's HP will not be # reduced below 1 HP ever). # This can be omitted at will. The default value is true, so if you # omit it, it will default to true. # # Examples: # # change_enemy_hp(2,-50,true) # This would reduce the HP of the event with ID 2 by 50, and in case it # reaches 0 HP, it will die. # # change_enemy_hp(2,-9999,false) # Same as above, but this time it reduces 9999 HP and the enemy will not be # killed no matter how many HP it had before the script call. # # change_enemy_hp(2,200) # This would add 200 HP to the enemy (for the event with ID 2 on the map). #------------------------------------------------------------------------------- # * < Note-tags > #------------------------------------------------------------------------------- # * To prevent the player from triggering multiple tools at the same time, you # must tag your tools with the following note-tag: # # Tool Global Cool = time # # The 'time' is the number of frames the character (so any character who can # use tools, not just the player) can NOT execute any other skills after using # the note-tagged tool. #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # * To reverse the targets of the tool, you can use this note-tag: # # <reverse target> # # This means that if you set the scope of the tool for "All Allies" in the # database, and use this note-tag on the tool, it would hit all opponents, # instead of hitting all allies. # By default, tools with "One Ally", "All Allies", "One Ally (KO)" and # "All Allies (KO)" can not trigger their effects multiple times, only once, # regardless of their tool effect/destroy time. The easiest way to make that # happen is to reverse the scope of the target, and that is why this note-tag # has been made. #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # * To make the tool ignore the guard effect (damage reduction, and full guard), # use the following note-tag: # # <ignore guard> # # This will make the tool be completely "un-guardable". # I'm pretty sure that this word does not exist, but who cares, right? :D #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # * To make the tool ignore the reflect effect use the following note-tag: # # <ignore reflect> # # This will make the tool ignore the reflection and hit the target. #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # * To make the tool stay even if the target guarded it, # use the following note-tag: # # <no guard destroy> # # This will prevent the destruction of the tool if the target guards it. # Useful for multiple-hit and area effect tools. #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # * To set a custom invincibility frame for your tools, you can use the # following note-tag: # # <inv time: time> # # Replace 'time' with the time you want the target to be invincible after it's # hit with the (offensive) tool. # This is measured in frames, so 60 means 1 second! # If the target's invincibility frame is not 0, it can NOT be hit with any # offensive tools! An offensive tool means that it's scope is one of these: # One Enemy, All Enemy, X Random Enemies. # Invincibility frames are only triggered by offensive tools, regardless of # their effects (so, even a HP recovering tool will trigger it)! #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # * To use my new way of triggering the effects of the tools, use the following # note-tag: # # <new effect delay> <inv time: 0> # # This will make the tool repeat it's effect periodically until it's destroyed. # Only effective for tools with the following scopes: # One Enemy, All Enemies, X Random Enemies. # # Here is an example using these tool settings: # Tool Effect Delay = 30 # Tool Destroy Delay = 340 # If you did not use the note-tag mentioned above, the tool will execute it's # effect on the target first after 30 frames of it's usage. After the first # effect trigger, the tool executes it's effect continuously until it is # destroyed. If there would be no invincibility time after each hit, you # would see hell of a lot damage popups within the blink of an eye. But # there is an invincibility time by default, and it is set to 20 frames. # # (You can now set the default invincibility time in this script, or you can # make separate times for each of your tools by using the new note-tag for it. # In the default system, it was set to 20, and you had no way to change it # without editing the script itself, that's why I go with 20 frames now.) # # Since there is an invincibility time after the effect triggering, any other # offensive tool which hits the target while the invincibility frame is not 0 # will have absolutely no effect on the target. # # This means that the tool will execute it's effects in every 20 frames after # the effect delay countdown (which is 30 frames now). This also means that # the total number of hits (if the enemy is in the tool's range all the time) # equals: # (340 - 30) / 20 = 310 / 20 = 15.5 # So, it would hit maximum 15 times. # This is with the default effect trigger system Falcao made. # # Now let's see what happens with my new trigger... # Same tool settings, but now I will set the tool's invincibility frame # trigger time to 0 with the new note-tag for it, and will use the note-tag # to set the tool's effect trigger type to my new one. # What happens now? # # The tool will hit the target first after 30 frames, same like before, but # now every other hit will be triggered after 30 frames. The tool will not # trigger any invincibility frames for the targets at all, which means that # multiple tools can hit the target at the same time (as long as they don't # trigger any invincibility frame, that is), and all of them will execute # their effects. # This means: # (340 - 30) / 30 = 10.3333... # So, 10 hits maximum, with the ability to hit the target with any other tools # in the meantime. # This means that if the target is staying in a Fire Wall, and the opponent # shoots arrows at it, AND an ally puts a Healing Glyph below it's feet, ALL # of these effects will be executed if none of these tools got any # invincibility frames set for them. This is the main reason I made this, to # enable multiple tools to hit the targets at the same time. # # I hope it's clear enough what's the difference. # In case you don't want to use my new effect trigger, just don't use this # note-tag on any of your tools, and set the default invincibility time to # 20 frames in the settings below. That results in the default system. #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # * If you want to make tools with different width and height, you can use # this note-tag: # # <tool size ex: width, height, dir_based> # # Replace the width and height with the width and height of the tool. # These are measured in tiles, NOT in pixels! # Note that you still must use the default note-tag for size too! # # The 'dir_based' can be either 0 or 1. # 0 means that regardless of the direction of the tool (or user) it will # always have the same area of effect. # If it is set to 1, the area will change depending on the direction of the # tool. The note-tag represents the UP or DOWN directions in this case. # The LEFT and RIGHT directions will change the area of effect to be rotated # by 90 angles. So, the width and height will be exchanged in this case. # # Examples: <tool size ex: 4, 1, 0> | <tool size ex: 3, 2, 1> # # Now, these numbers aren't exactly what they seem to be. I will use the 1st # example to explain what they do. # # The 4 means that the tool will be (3*2+1) tiles wide. I bet you mean # WTFruit now, but look at the sketch below... (5 would be 4*2+1) # # ----------------------------- # | 4 | 3 | 2 | 1 | 2 | 3 | 4 | # ----------------------------- # # So, the 4 means the middle (indicated by an 1 on the sketch) plus the tiles # on the left and right sides (3 on both sides). # # If you would want a tool with 5 width, you would use 3 in the note-tag for # it's width, since the middle plus 2 tiles on both sides is 5. # Basically, just count from the middle and you will get the correct note-tag # values easily. # # The same applies to the height of the tools. # # Here is an example sketch for a tool with the second note-tag example: # # --------------------- # | 3 | 2 | 1 | 2 | 3 | This is the real tool size in the game with the # --------------------- note-tag <tool size ex: 3, 2, 1> used for the tool. # | 3 | 2 | 1 | 2 | 3 | The default note-tag that Falcao provided works # --------------------- the same way actually. Some examples for that can # | 3 | 2 | 1 | 2 | 3 | be found below for comparison. # --------------------- # # Falcao's tool size and note-tag examples: ----- # | 3 | # ----- ------------- # | 2 | | 2 | 2 | 2 | # ------------- <-- Tool Size = 2 --------------------- # | 2 | 1 | 2 | | 3 | 2 | 1 | 2 | 3 | # ------------- Tool Size = 3 --> --------------------- # | 2 | | 2 | 2 | 2 | # ----- ------------- # | 3 | # See? It's the same eventually. ----- # Just count from the middle and that's it. # # I made this feature for one-liner area effect tools, but you can use it for # making way bigger area effects too, if you want. #------------------------------------------------------------------------------- # * < Installation > #------------------------------------------------------------------------------- # * Place this script below all of Falcao's ABS scripts but above Main! # * If you are using my Stat Bonus Addon for Falcao's ABS, you must put this # script below that one! # * If you are using Pikakapi's Battle Royale Addon, this must be below that, # and the Battle Royale Compatibility Patch must be below this script! #------------------------------------------------------------------------------- # * < Compatibility Info > #------------------------------------------------------------------------------- # * No known incompatibilities. #------------------------------------------------------------------------------- # * < Known Issues > #------------------------------------------------------------------------------- # * No known issues. #------------------------------------------------------------------------------- # * < Terms of Use > #------------------------------------------------------------------------------- # * Free to use for whatever purposes you want. # * Credit me (Sixth) in your game, pretty please! :P # * Posting modified versions of this script is allowed as long as you notice me # about it with a link to it! #=============================================================================== $imported = {} if $imported.nil? $imported["SixthFalcaoABSBugFixes"] = true #=============================================================================== # Settings: #=============================================================================== module Falcao_ABS_Fix1 #----------------------------------------------------------------------------- # Regen Popup Settings #----------------------------------------------------------------------------- # You can enable or disable the regen pop up texts in the game with the # switches you set up here. Set them to 0 if you want them to be always enabled. # In case you don't want to show the MP regen texts, because the MP in your # game always increases slowly for the player, or you need to turn the popups # off because of a cut-scene, or for any other reason. # To show the popups, turn the assigned switches ON. # To hide them turn the switches OFF. #----------------------------------------------------------------------------- RegenPops = { :hp => 0, :mp => 0, :tp => 0 } #----------------------------------------------------------------------------- # Confusion Addon Settings #----------------------------------------------------------------------------- # These settings let you make a basic confusion state in the ABS system. # Like in many ABS based games, confusion messes up movement directions. # That is what this addon aims to do, mess up user directions when the user is # inflicted with confusion. # There are many settings for you to set up here. # # ConfEnabled = true/false # This can be true or false. Set it to false to completely disable this addon. # Set it to true to enable the confusion addon. # # ConfPlayerOnly = true/false # If you set this to true, only the player will be affected by the direction # changes on confusion. If it is set to false, enemies and followers alike # will be affected too! # # ConfStates = [state_id1, state_id2, ... , state_idN] # Any state IDs entered in the array here will be considered as a confusion # inflicting state. Add as many as you want. # # ConfType = :reverse/:random/:custom # You can set the type of confusion here. 3 options are available: # 1. :reverse = This simply inverts the movement directions when confused. # 2. :random = This will move in complete random directions when confused. # If you choose this type, you can be sure that this state will # be the most annoying state in your entire game! # You have been warned! :P # 3. :custom = With this type, you can set up your own unique directions for # the confusion state. You set up the direction groups in the # ConfCustom settings. Whenever the player is inflicted with a # confusion state, a random direction group will be selected # from those settings, and the movement of the characters will # depend on those settings until the confusion is cleared. # This type aims to give a slight random factor for confusion # directions while still keeping it below the uber-annoying # limits. Many games use this type of confusion mechanics, like # the YS series, for example. # # ConfCustom = { # setup1 => {dir1 => cdir1, dir2 => cdir2, dir3 => cdir3, dir4 => cdir4}, # setup2 => {dir1 => cdir1, dir2 => cdir2, dir3 => cdir3, dir4 => cdir4}, # ... # } # This is the place where you set up your own confusion directions. You can # add as many settings as you want here. When the player is inflicted with # confusion, a random setting will be loaded from here, and the directions # will depend on the selected setting. # The directions are named by numbers, and if you are ever in doubt which one # is which, just take a look at your numpad numbers and their placement. # In case you don't have a numpad (poor numpad-less laptops!): # 2 = Down, 4 = Left, 6 = Right, 8 = Up. # So, how to setup these groups correctly? First, name the group with a # unique name, it can be anything, numbers, strings, symbols, etc. # I used numbers, because I ... no real reasons, I always use numbers. :P # After this, in the group hash, you must pair the normal directions with # the confused directions. For example, 2 => 4 means that if the character is # confused, and when the character would like to move down (2), it will move # left (4) instead of down. # The left number represents the normal direction and the right number is the # direction change when confused. # You must set up all 4 directions for all of your groups! #----------------------------------------------------------------------------- ConfEnabled = false ConfPlayerOnly = false ConfStates = [73] ConfType = :custom ConfCustom = { 1 => { 2 => 6, 4 => 8, 6 => 2, 8 => 4 }, 2 => { 2 => 6, 4 => 8, 6 => 4, 8 => 2 }, 3 => { 2 => 2, 4 => 6, 6 => 4, 8 => 8 }, 4 => { 2 => 8, 4 => 4, 6 => 6, 8 => 2 }, 5 => { 2 => 8, 4 => 6, 6 => 4, 8 => 2 }, # Add more direction settings here! } #----------------------------------------------------------------------------- # Cast Time Settings #----------------------------------------------------------------------------- # All of the these settings are for changing some behaviors regarding the # usage of tools with cast times. # # CastMoveDisableEnemy = true/false # <-- For the enemies. # CastMoveDisablePlayer = true/false # <-- For the player. # Setting these settings to 'true' will prevent enemy/player movement while # a tool is being casted. Setting them to 'false' will disable this feature. # # AutoTurnToPlayer = true/false # Setting this setting to 'true' will make the enemies always turn toward # the player on any enemy targeting tool usage. # Setting it to 'false' will disable this feature. # NOTE: # Setting this to true automatically blocks enemy movement during cast time! # # AllowPlayerDirChange = true/false # Set this to 'true' if you want to allow the player to change directions # during casting. Set this to 'false' to disable direction changes on casting. #----------------------------------------------------------------------------- CastMoveDisableEnemy = true # <-- For the enemies. CastMoveDisablePlayer = false # <-- For the player. AutoTurnToPlayer = true AllowPlayerDirChange = true #----------------------------------------------------------------------------- # Invincible Settings #----------------------------------------------------------------------------- # When a target is hit with an offensive tool (scope set to any kind of # "enemy" type), it will become invincible for 20 frames by default. # Now you can change the default time with this setting. # Unless you make a custom invincibility time for an offensive tool with the # provided new note-tags, this will be used for the tools. # Remember that it is measured in frames, so 60 means 1 second! #----------------------------------------------------------------------------- InvincibleTime = 10 #----------------------------------------------------------------------------- # Switch Settings #----------------------------------------------------------------------------- # You can set up the switch used to enable/disable the tool usage of the # player, and the switch used to enable/disable the menu calling for the ABS # menus (tool selection and character selection). # When the assigned switches are turned ON, the features are enabled, when # they are turned OFF, they are disabled. #----------------------------------------------------------------------------- ToolToggleSwitch = 29 MenuToggleSwitch = 30 #----------------------------------------------------------------------------- # Tool Unequip Settings #----------------------------------------------------------------------------- # From v1.7, you can allow the player to unequip any tool from the quick tool # selection menu by pressing the assigned buttons for the tools in the menu. # It was not possible to unequip anything there before. # Set this setting to true to enable this feature or false to disable it! #----------------------------------------------------------------------------- ToolUnequip = true end #=============================================================================== # End of Settings! Editing anything below may lead to... you know it, right? #=============================================================================== module PearlKey def self.press?(key) return false if key.nil? return @press[key] end # Enables the disabling of certain tool trigger keys. def self.trigger?(key) return false if key.nil? return @trigger[key] end end class Game_Interpreter def hide_boss_bar SceneManager.scene.hide_boss_bar end def change_enemy_hp(id,val,allow_ko = true) return if $game_map.events[id].battler.nil? || $game_map.events[id].battler.dead? if allow_ko == false && val < 0 val = [val,-($game_map.events[id].battler.hp-1)].max end $game_map.events[id].battler.hp += val $game_map.events[id].colapse_time = 60 if $game_map.events[id].battler.dead? end end class Game_Map alias fix_sensors5542 setup def setup(map_id) reset_enemy_sensors fix_sensors5542(map_id) end # Sensor reset fix. def reset_enemy_sensors @event_enemies.each do |ev| next unless $game_self_switches[[@map_id, ev.id, PearlKernel::Enemy_Sensor]] $game_self_switches[[@map_id, ev.id, PearlKernel::Enemy_Sensor]] = false end end end class Game_Party < Game_Unit def set_skill(actor_id, sid, slot) actor = $game_actors[actor_id] ; skill = $data_skills[sid] return unless actor.skills.include?(skill) case slot when Key::Skill[1].to_sym then actor.assigned_skill = skill when Key::Skill2[1].to_sym then actor.assigned_skill2 = skill when Key::Skill3[1].to_sym then actor.assigned_skill3 = skill when Key::Skill4[1].to_sym then actor.assigned_skill4 = skill end end end class Game_Player < Game_Character # Cast direction feature for player. alias cast_dir_fix9989 move_by_input def move_by_input if Falcao_ABS_Fix1::AllowPlayerDirChange && !$game_map.interpreter.running? && @user_casting[0] > 0 set_direction(Input.dir4) if Input.dir4 > 0 else cast_dir_fix9989 end end # Cast movement fix for player. alias cast_move_dis6653 movable? def movable? return false if Falcao_ABS_Fix1::CastMoveDisablePlayer && @user_casting[0] > 0 cast_move_dis6653 end alias fix_tool_usage8864 update_tool_usage def update_tool_usage return if $game_switches[Falcao_ABS_Fix1::ToolToggleSwitch] == false return if $game_map.interpreter.running? return if PearlSkillBar.hidden? return unless normal_walk? if trigger_tool?(Key::Armor[0], :keys) || trigger_tool?(2, :mouse) if actor.equips[1] && actor.equips[1].is_a?(RPG::Weapon) use_weapon(actor.equips[1].id) # Dual wield fix 1! return end end if trigger_tool?(Key::Weapon[0], :keys) || trigger_tool?(1, :mouse) if actor.equips[0] && actor.equips[0].is_a?(RPG::Armor) use_armor(actor.equips[0].id) # Patch for my Equip Engine 1! return end end fix_tool_usage8864 end alias fix_menu_calls7731 update_menu_buttons def update_menu_buttons return if $game_map.interpreter.running? return if $game_switches[Falcao_ABS_Fix1::MenuToggleSwitch] == false fix_menu_calls7731 end end class Game_Character < Game_CharacterBase attr_accessor :reflect_flag alias add_reflect_flags9942 init_public_members def init_public_members @reflect_flag = {} add_reflect_flags9942 end def do_counter(tool,user) battler.reflecting = true @animation_id = 0 @animation_id = 94 while @animation_id > 0 turn_toward_character(user) SceneManager.scene.update end case tool when RPG::Weapon use_weapon(tool.id) user.set_reflect_flag(tool) when RPG::Armor use_armor(tool.id) user.set_reflect_flag(tool) when RPG::Skill use_skill(tool.id) user.set_reflect_flag(tool) when RPG::Item use_item(tool.id) user.set_reflect_flag(tool) end battler.reflecting = false end def set_reflect_flag(tool) @reflect_flag[tool] = true end end class Game_Event < Game_Character # Cast movement fix for enemies. alias cast_move_dis5543 update_self_movement def update_self_movement if @user_casting[0] > 0 if Falcao_ABS_Fix1::AutoTurnToPlayer == true && self.battler.is_a?(Game_Enemy) if @user_casting[1].is_a?(RPG::Weapon) || @user_casting[1].is_a?(RPG::Armor) || [1,2,3,4,5,6].include?(@user_casting[1].scope) turn_toward_player end end if Falcao_ABS_Fix1::CastMoveDisableEnemy == false cast_move_dis5543 end else cast_move_dis5543 end end alias fix_ko_sensors6652 update_enemy_sensor def update_enemy_sensor return if collapsing? fix_ko_sensors6652 end alias fix_revive1127 apply_respawn def apply_respawn @die_sswitch = nil fix_revive1127 @epassive = @enemy.enemy.tool_data("Enemy Passive = ", false) == "true" end def run_assigned_commands # Overwrite! transform = @enemy.enemy.tool_data("Enemy Die Transform = ") switch = @enemy.enemy.tool_data("Enemy Die Switch = ") $game_switches[switch] = true if switch != nil variable = @enemy.enemy.tool_data("Enemy Die Variable = ") $game_variables[variable] += 1 if variable != nil self_sw = @enemy.enemy.tool_data("Enemy Die Self Switch = ", false) #$game_map.event_enemies.delete(self) if @enemy.object #$game_map.enemies.delete(@enemy) if @enemy.object if self_sw.is_a?(String) $game_self_switches[[$game_map.map_id, self.id, self_sw]] = true apply_respawn make_drop_items if transform.nil? #myadd $game_map.event_enemies.delete(self) $game_map.enemies.delete(@enemy) unless $game_system.remain_killed.has_key?($game_map.map_id) $game_system.remain_killed[$game_map.map_id] = [] end $game_system.remain_killed[$game_map.map_id].push(self.id) unless $game_system.remain_killed[$game_map.map_id].include?(self.id) @die_sswitch = self_sw # Added! #@enemy = nil # Disabled by Sixth! else erase unless @deadposee respawn = @enemy.enemy.tool_data("Enemy Respawn Seconds = ") animation = @enemy.enemy.tool_data("Enemy Respawn Animation = ") @respawn_count = respawn * 60 unless respawn.nil? @respawn_anim = animation unless animation.nil? end if transform != nil @enemy = Game_Enemy.new(0, transform) apply_respawn end end end class Projectile < Game_Character alias add_new_stuffs6631 load_item_data def load_item_data add_new_stuffs6631 @tool_effect_type = @original_item.effect_delay_type @tool_inv_time = @original_item.tool_inv_time @tool_ori_delay = @tool_effect_delay @tool_reverse_target = @original_item.reverse_target @tool_no_guard_destroy = @original_item.no_guard_destroy @tool_ignore_guard = @original_item.ignore_guard @tool_size = @original_item.tool_size_ex if !@original_item.tool_size_ex.nil? end # Fixing combo delays. Thanks thanasulas for pointing this out! def check_combo_effect c = PearlKernel.tool_combo return if c == 'nil' || c.nil? c = c.split(", ") return unless rand(101) <= c[2].to_i @user.combodata << [c[0].to_sym, c[1].to_i, c[3], @tool_destroy_delay] @has_combo = true end def apply_damageto_enemy return if @tool_effect_delay > 0 $game_map.event_enemies.each do |event| next if event.collapsing? if event.battler.body_sized > 0 enabled = body_size?([event.x, event.y], @tool_size) enabled = body_size?([event.x - 1, event.y], @tool_size) if !enabled enabled = body_size?([event.x, event.y - 1], @tool_size) if !enabled enabled = body_size?([event.x + 1, event.y], @tool_size) if !enabled if event.battler.body_sized == 2 enabled = body_size?([event.x - 1, event.y-1], @tool_size) if !enabled enabled = body_size?([event.x, event.y - 2], @tool_size) if !enabled enabled = body_size?([event.x + 1, event.y-1], @tool_size) if !enabled end else enabled = body_size?([event.x, event.y], @tool_size) end if enabled and event.just_hitted == 0 event.just_hitted = @tool_inv_time next if event.page.nil? if !enable_dame_execution?(event.battler) unless event.battler.object RPG::SE.new(Key::GuardSe, 80).play event.pop_damage('Guard') play_hit_animation(event) end return end #------------------------- execute_damageto_enemy(event) end end end def apply_damageto_player return if @tool_effect_delay > 0 || $game_player.battler.dead? if obj_size?($game_player, @tool_size) and $game_player.just_hitted == 0 $game_player.just_hitted = @tool_inv_time return if guard_success?($game_player, 1) execute_damage($game_player) $game_player.damage_pop.push(DamagePop_Obj.new($game_player)) unless guard_success?($game_player, 2) apply_blow_power($game_player) end end def apply_damageto_followers return if @tool_effect_delay > 0 # followers for actor in $game_player.followers next unless actor.visible? if obj_size?(actor, @tool_size) and actor.just_hitted == 0 actor.just_hitted = @tool_inv_time next if actor.battler.dead? return if guard_success?(actor, 1) execute_damage(actor) $game_player.damage_pop.push(DamagePop_Obj.new(actor)) unless guard_success?(actor, 2) apply_blow_power(actor) end end end def can_reflect_tool?(target) return false if @original_item.reflect_pierce return false if target.reflect_flag[@original_item] return false unless target.tool_can_use? ref_sum = target.battler.features_sum(22, 5) return ref_sum > 0.0 && ref_sum > rand end alias fix_guard_dmg7753 execute_damage def execute_damage(target) if can_reflect_tool?(target) unless @tool_piercing @tool_distance = 0 @tool_destroy_delay = 0 end if target.battler.is_a?(Game_Enemy) target.awareness = true end target.do_counter(@original_item,@user) return end if target.battler_guarding[0] if faceto_face?(target) && !@tool_ignore_guard target.battler.add_state(9) else target.battler.remove_state(9) end end fix_guard_dmg7753(target) @user.reflect_flag[@original_item] = false if @user.reflect_flag[@original_item] end unless $imported && $imported["SixthABSBattleRoyale"] def apply_self_effect(target, pop=true) target.battler.item_apply(@user.battler, @item) target.animation_id = animation $game_player.damage_pop.push(DamagePop_Obj.new(target)) @destroy_it = true end def update_damage if @user.battler.is_a?(Game_Actor) apply_damageto_enemy unless @tool_reverse_target if @tool_selfdamage || @tool_reverse_target apply_damageto_player apply_damageto_followers unless @ignore_followers end elsif @user.battler.is_a?(Game_Enemy) if $game_player.normal_walk? && !@tool_reverse_target apply_damageto_player apply_damageto_followers unless @ignore_followers end apply_damageto_enemy if @tool_selfdamage || @tool_reverse_target end end end def update_timer update_tool_movement @mini_opacity -= 1 if @mini_opacity > 0 @opacity = 255 if @mini_opacity == 1 # Edited!!! - by Sixth if @tool_effect_type @tool_effect_delay -= 1 if @tool_effect_delay >= 0 if @tool_ori_delay != 0 && @tool_effect_delay < 0 @tool_effect_delay = @tool_ori_delay end else @tool_effect_delay -= 1 if @tool_effect_delay > 0 end # Edit END!!! - by Sixth if @tool_distance == 0 @tool_destroy_delay -= 1 if @tool_destroy_delay > 0 @destroy_it = true if @tool_destroy_delay == 0 end update_animation_setting end def guard_success?(userr, type) return false if @tool_ignore_guard if userr.battler_guarding[0] # guard if type == 1 if rand(101) <= userr.battler_guarding[1] return false unless faceto_face?(userr) RPG::SE.new(Key::GuardSe, 80).play $game_player.damage_pop.push(DamagePop_Obj.new(userr, 2)) unless @user.making_spiral || @tool_no_guard_destroy @tool_distance = 0 @tool_destroy_delay = 0 end play_hit_animation(userr) return true end # block elsif type == 2 return false unless faceto_face?(userr) $game_player.damage_pop.push(DamagePop_Obj.new(userr, 1)) return true end end return false end end module DisplayTools # Tools can't be changed on cooldown from now on. def self.tool_cool(type) case type when :wp return @pearl_tool_sprite.weapon_cooldown > 0 when :ar return @pearl_tool_sprite.armor_cooldown > 0 when :i1 return @pearl_tool_sprite.item_cooldown > 0 when :i2 return @pearl_tool_sprite.item_cooldown2 > 0 when :s1 return @pearl_tool_sprite.skill_cooldown > 0 when :s2 return @pearl_tool_sprite.skill_cooldown2 > 0 when :s3 return @pearl_tool_sprite.skill_cooldown3 > 0 when :s4 return @pearl_tool_sprite.skill_cooldown4 > 0 end end end class << Input # Now only reducing cooldown time on the Map and not in the menus! def update_pearl_abs_cooldown PearlKey.update # Removed! if SceneManager.scene_is?(Scene_Map) eval_cooldown($game_party.all_members) if !$game_party.nil? eval_cooldown($game_map.enemies) if !$game_map.nil? end end alias add_glob_cool3321 eval_cooldown def eval_cooldown(operand) operand.each { |char| char.glob_cool -= 1 if char.glob_cool > 0 } add_glob_cool3321(operand) end end class RPG::BaseItem def glob_cool @note =~ /Tool Global Cool = (\d+)/i ? $1.to_i : 0 end def reverse_target @note =~ /<reverse target>/i ? true : false end def tool_size_ex @note =~ /<tool size ex: (\d+), (\d+), (\d+)>/i ? [$1.to_i,$2.to_i,$3.to_i] : nil end def no_guard_destroy @note =~ /<no guard destroy>/i ? true : false end def ignore_guard @note =~ /<ignore guard>/i ? true : false end def effect_delay_type @note.include?("<new effect delay>") ? true : false end def tool_inv_time @note =~ /<inv time: (\d+)>/i ? $1.to_i : Falcao_ABS_Fix1::InvincibleTime end def reflect_pierce @note.include?("<ignore reflect>") ? true : false end end class Game_Battler < Game_BattlerBase attr_accessor :pop_fix, :glob_cool, :conf_type, :reflecting alias fix_regen_posp5542 initialize def initialize @glob_cool = 0 @conf_type = nil @reflecting = false @pop_fix = {:hp => false, :mp => false, :tp => false} fix_regen_posp5542 end alias conf_addon7411 add_new_state def add_new_state(state_id) if Falcao_ABS_Fix1::ConfStates.include?(state_id) @conf_type = Falcao_ABS_Fix1::ConfCustom.keys.sample end conf_addon7411(state_id) end def regenerate_hp old_hp = self.hp damage = -(mhp * hrg).to_i perform_map_damage_effect if $game_party.in_battle && damage > 0 @result.hp_damage = [damage, max_slip_damage].min self.hp -= @result.hp_damage @pop_fix[:hp] = old_hp != self.hp ? true : false end def regenerate_mp old_mp = self.mp @result.mp_damage = -(mmp * mrg).to_i self.mp -= @result.mp_damage @pop_fix[:mp] = old_mp != self.mp ? true : false end def regenerate_tp old_tp = self.tp @result.tp_damage = -(max_tp * trg).to_i self.tp -= @result.tp_damage @pop_fix[:tp] = old_tp != self.tp ? true : false end # Global cooldowns. alias add_glob_cool7764 apply_cooldown def apply_cooldown(item, value) @glob_cool = item.glob_cool add_glob_cool7764(item, value) end end class Game_CharacterBase attr_accessor :die_sswitch alias fix_act_check8836 battler_acting? def battler_acting? return true if @battler_guarding[0] fix_act_check8836 end if Falcao_ABS_Fix1::ConfEnabled == true alias confusion_addon7743 move_straight def move_straight(d, turn_ok = true) unless battler.nil? || self.is_a?(Projectile) if !Falcao_ABS_Fix1::ConfPlayerOnly || (Falcao_ABS_Fix1::ConfPlayerOnly && self.is_a?(Game_Player)) case Falcao_ABS_Fix1::ConfType when :reverse d = Falcao_ABS_Fix1::ConfStates.any? {|id| battler.state?(id)} ? reverse_dir(d) : d when :random d = Falcao_ABS_Fix1::ConfStates.any? {|id| battler.state?(id)} ? [2,4,6,8].sample : d when :custom d = Falcao_ABS_Fix1::ConfStates.any? {|id| battler.state?(id)} ? Falcao_ABS_Fix1::ConfCustom[battler.conf_type][d] : d end end confusion_addon7743(d, turn_ok) else confusion_addon7743(d, turn_ok) end end end # Guard fix - part 2. def faceto_face?(target) if @tool_size.is_a?(Array) case @direction when 2 return @tool_size[1] > 1 ? @y > target.y : target.direction == 8 when 4 return @tool_size[0] > 1 ? @x < target.x : target.direction == 6 when 6 return @tool_size[0] > 1 ? @x > target.x : target.direction == 4 when 8 return @tool_size[1] > 1 ? @y < target.y : target.direction == 2 end else case @direction when 2 return @tool_size > 1 ? @y > target.y : target.direction == 8 when 4 return @tool_size > 1 ? @x < target.x : target.direction == 6 when 6 return @tool_size > 1 ? @x > target.x : target.direction == 4 when 8 return @tool_size > 1 ? @y < target.y : target.direction == 2 end end end alias size_addon5543 obj_size? def obj_size?(target, size) return false if size.nil? || target.nil? if size.is_a?(Array) distx = (@x - target.x).abs disty = (@y - target.y).abs if [4,6].include?(@direction) && size[2] == 1 return true if distx <= size[1] - 1 && disty <= size[0] - 1 else return true if distx <= size[0] - 1 && disty <= size[1] - 1 end else size_addon5543(target,size) end end alias size_addon7721 body_size? def body_size?(target, size) #return false if size.nil? if size.is_a?(Array) distx = (@x - target[0]).abs disty = (@y - target[1]).abs if [4,6].include?(@direction) && size[2] == 1 return true if distx <= size[1] - 1 && disty <= size[0] - 1 else return true if distx <= size[0] - 1 && disty <= size[1] - 1 end else size_addon7721(target,size) end end def update_state_action_steps # New way of handling Regen features! if battler.alive? if Graphics.frame_count % 60 == 0 && battler.features_sum(22, 7) != 0.0 battler.regenerate_hp if battler.dead? @colapse_time = 80 if $imported && $imported["SixthABSBattleRoyale"] self.aggro_data = {} #if target.battler.is_a?(Game_Actor) @agroto_f = nil @chasetime = 0 if self.is_a?(Game_Event) $game_map.battler_data_ko << self if !$game_map.battler_data_ko.include?(self) $game_map.battler_data.delete(self) if $game_map.battler_data.include?(self) end end unless self.battler.is_a?(Game_Enemy) && self.battler.object == true pop_damage if battler.pop_fix[:hp] == true && check_popup_enable(:hp) end end if Graphics.frame_count % 60 == 20 && battler.features_sum(22, 8) != 0.0 battler.regenerate_mp pop_damage if battler.pop_fix[:mp] == true && check_popup_enable(:mp) end if Graphics.frame_count % 60 == 40 && battler.features_sum(22, 9) != 0.0 battler.regenerate_tp pop_damage(battler.trg) if battler.pop_fix[:tp] == true && check_popup_enable(:tp) end end for state in battler.states if state.remove_by_walking if !battler.state_steps[state.id].nil? && battler.state_steps[state.id] > 0 battler.state_steps[state.id] -= 1 end if battler.state_steps[state.id] == 0 battler.remove_state(state.id) pop_damage end end if state.restriction == 4 @stopped_movement = 10 @pattern = 2 if @knockdown_data[0] == 0 && !@die_sswitch end state.features.each do |feature| if feature.code == 22 && !@die_sswitch @knockdown_data[0] = 10 if state.restriction == 4 && feature.data_id == 1 # Removed the default way... #next unless feature.data_id.between?(7, 9) #apply_regen_state(state, feature.data_id) end end end end def check_popup_enable(data) if Falcao_ABS_Fix1::RegenPops[data] == 0 || $game_switches[Falcao_ABS_Fix1::RegenPops[data]] return true end return false end # Added global cooldown checks here. alias add_glob_cool1126 tool_can_use? def tool_can_use? return false if battler.nil? || battler.glob_cool > 0 #return false if battler.reflecting add_glob_cool1126 end end class Sprite_Character < Sprite_Base # Fixed wrong animation frames when the character is facing down. def perform_animated(pattern) case pattern when 0 apply_angle_pattern(10, -12, -166) if @character.user.direction == 2 if @character.user.direction == 4 || @character.user.direction == 6 apply_angle_pattern(-8, -26, -46) self.z = @character.user.screen_z - 1 end apply_angle_pattern(-22, -10, 0) if @character.user.direction == 8 when 1 apply_angle_pattern(8, -5, -210) if @character.user.direction == 2 apply_angle_pattern(-20, -10, 12) if @character.user.direction == 4 apply_angle_pattern(7, -20, -78) if @character.user.direction == 6 if @character.user.direction == 8 apply_angle_pattern(-8, -26, -46) self.z = @character.user.screen_z - 1 end when 2 apply_angle_pattern(0, 0, -266) if @character.user.direction == 2 apply_angle_pattern(-10, 2, 52) if @character.user.direction == 4 apply_angle_pattern(8, -15, -126) if @character.user.direction == 6 apply_angle_pattern(10, -16, - 100) if @character.user.direction == 8 end end end class Spriteset_Map # Dispose fix for dead icons on the map. alias fix_dead_icons5542 create_pearl_abs_sprites def create_pearl_abs_sprites fix_dead_icons5542 @dead_characters = [] @dead_iconsprites = [] for follower in $game_player.followers next if follower.visible? == nil next unless follower.battler.dead? unless @dead_characters.include?(follower) sprite = Sprite_DeadIcon.new(@viewport1, follower) @dead_iconsprites.push(sprite) @dead_characters.push(follower) if !@dead_characters.include?(follower) end end end alias fix_dead_icons8888 dispose_pearlabs_sprites def dispose_pearlabs_sprites fix_dead_icons8888 @dead_iconsprites.each {|dsprite| dsprite.dispose} @dead_iconsprites.clear @dead_characters = [] end def hide_boss_bar if !@enemyhpsp.nil? @enemyhpsp.dispose @enemyhpsp = nil $game_system.enemy_lifeobject = nil @enemy_lifeobject = nil end end end class Sprite_LifeBars < Sprite # Boss bar disposal fix on map changes. alias fix_map_change_bar6322 initialize def initialize(viewport, character) @map_id = $game_map.map_id fix_map_change_bar6322(viewport, character) end alias fix_map_change_bar5542 update def update fix_map_change_bar5542 if boss? dispose if !self.disposed? && @map_id != $game_map.map_id end end end class Scene_Map < Scene_Base def hide_boss_bar @spriteset.hide_boss_bar end end class Window_SlotConfirm < Window_Command # SE fix. def process_ok if current_item_enabled? Input.update deactivate call_ok_handler else Sound.play_buzzer end end end class Window_ActorQuickTool < Window_Selectable def refresh(actor, kind) # Dual wield fix 2! self.contents.clear if self.contents != nil @data = [] case kind when :weapon, :armor type = kind == :weapon ? actor.equip_slots[0] : actor.equip_slots[1] equips = $game_party.equip_items equips << actor.equips[0] if actor.equips[0] && !equips.include?(actor.equips[0]) equips << actor.equips[1] if actor.equips[1] && !equips.include?(actor.equips[1]) equips.each do |eq| next if eq.etype_id > 1 next unless actor.equippable?(eq) next if eq.etype_id != type next if eq.tool_data("Exclude From Tool Menu = ", false) == "true" @data.push(eq) end when :skill actor.skills.each do |sk| next if sk.tool_data("Exclude From Tool Menu = ", false) == "true" @data.push(sk) end when :item $game_party.items.each do |it| next if it.tool_data("Exclude From Tool Menu = ", false) == "true" @data.push(it) end end @item_max = @data.size if @item_max > 0 self.contents = Bitmap.new(width - 32, row_max * 24) for i in 0...@item_max draw_item(i) end end end end class Scene_QuickTool < Scene_MenuBase # Tool equip fixes. def perform_item_ok return if @items_w.item.nil? case @type_select.current_symbol when :weapon if DisplayTools.tool_cool(:wp) || $game_player.in_combat_mode? Sound.play_buzzer else actor.change_equip_by_id(0, @items_w.item.id) equip_play end when :armor if DisplayTools.tool_cool(:ar) || $game_player.in_combat_mode? Sound.play_buzzer else actor.change_equip_by_id(1, @items_w.item.id) equip_play end when :item activate_slots when :skill activate_slots end DisplayTools.sprite.refresh_texts end def open_slots if @type_select.current_symbol == :item case @slot_confirm.current_symbol when :slot1 if DisplayTools.tool_cool(:i1) || $game_player.in_combat_mode? || actor.assigned_item2 == @items_w.item Sound.play_buzzer else actor.assigned_item = @items_w.item; equip_play end when :slot2 if DisplayTools.tool_cool(:i2) || $game_player.in_combat_mode? || actor.assigned_item == @items_w.item Sound.play_buzzer else actor.assigned_item2 = @items_w.item; equip_play end end else case @slot_confirm.current_symbol when :slot1 if DisplayTools.tool_cool(:s1) || $game_player.in_combat_mode? || [actor.assigned_skill2,actor.assigned_skill3,actor.assigned_skill4].any? {|skill| skill == @items_w.item} Sound.play_buzzer else actor.assigned_skill = @items_w.item; equip_play end when :slot2 if DisplayTools.tool_cool(:s2) || $game_player.in_combat_mode? || [actor.assigned_skill,actor.assigned_skill3,actor.assigned_skill4].any? {|skill| skill == @items_w.item} Sound.play_buzzer else actor.assigned_skill2 = @items_w.item; equip_play end when :slot3 if DisplayTools.tool_cool(:s3) || $game_player.in_combat_mode? || [actor.assigned_skill2,actor.assigned_skill,actor.assigned_skill4].any? {|skill| skill == @items_w.item} Sound.play_buzzer else actor.assigned_skill3 = @items_w.item; equip_play end when :slot4 if DisplayTools.tool_cool(:s4) || $game_player.in_combat_mode? || [actor.assigned_skill2,actor.assigned_skill3,actor.assigned_skill].any? {|skill| skill == @items_w.item} Sound.play_buzzer else actor.assigned_skill4 = @items_w.item; equip_play end end end deactivate_slots DisplayTools.sprite.refresh_texts end alias add_tool_remove9937 update def update add_tool_remove9937 update_tool_remove if Falcao_ABS_Fix1::ToolUnequip end def update_tool_remove if PearlKey.trigger?(Key::Weapon[0]) return unless actor.equips[0] if actor.equip_change_ok?(0) actor.change_equip(0, nil) Sound.play_equip; DisplayTools.sprite.refresh_texts else Sound.play_buzzer end end if PearlKey.trigger?(Key::Armor[0]) return unless actor.equips[1] if actor.equip_change_ok?(1) actor.change_equip(1, nil) Sound.play_equip; DisplayTools.sprite.refresh_texts else Sound.play_buzzer end end if PearlKey.trigger?(Key::Skill[0]) && actor.assigned_skill actor.assigned_skill = nil Sound.play_equip; DisplayTools.sprite.refresh_texts elsif PearlKey.trigger?(Key::Skill2[0]) && actor.assigned_skill2 actor.assigned_skill2 = nil Sound.play_equip; DisplayTools.sprite.refresh_texts elsif PearlKey.trigger?(Key::Skill3[0]) && actor.assigned_skill3 actor.assigned_skill3 = nil Sound.play_equip; DisplayTools.sprite.refresh_texts end if PearlKey.trigger?(Key::Item[0]) && actor.assigned_item actor.assigned_item = nil Sound.play_equip; DisplayTools.sprite.refresh_texts end end end #============================================================================== # !!END OF SCRIPT - OHH, NOES!! #==============================================================================
Optional Paste Settings
Category:
None
Cryptocurrency
Cybersecurity
Fixit
Food
Gaming
Haiku
Help
History
Housing
Jokes
Legal
Money
Movies
Music
Pets
Photo
Science
Software
Source Code
Spirit
Sports
Travel
TV
Writing
Tags:
Syntax Highlighting:
None
Bash
C
C#
C++
CSS
HTML
JSON
Java
JavaScript
Lua
Markdown (PRO members only)
Objective C
PHP
Perl
Python
Ruby
Swift
4CS
6502 ACME Cross Assembler
6502 Kick Assembler
6502 TASM/64TASS
ABAP
AIMMS
ALGOL 68
APT Sources
ARM
ASM (NASM)
ASP
ActionScript
ActionScript 3
Ada
Apache Log
AppleScript
Arduino
Asymptote
AutoIt
Autohotkey
Avisynth
Awk
BASCOM AVR
BNF
BOO
Bash
Basic4GL
Batch
BibTeX
Blitz Basic
Blitz3D
BlitzMax
BrainFuck
C
C (WinAPI)
C Intermediate Language
C for Macs
C#
C++
C++ (WinAPI)
C++ (with Qt extensions)
C: Loadrunner
CAD DCL
CAD Lisp
CFDG
CMake
COBOL
CSS
Ceylon
ChaiScript
Chapel
Clojure
Clone C
Clone C++
CoffeeScript
ColdFusion
Cuesheet
D
DCL
DCPU-16
DCS
DIV
DOT
Dart
Delphi
Delphi Prism (Oxygene)
Diff
E
ECMAScript
EPC
Easytrieve
Eiffel
Email
Erlang
Euphoria
F#
FO Language
Falcon
Filemaker
Formula One
Fortran
FreeBasic
FreeSWITCH
GAMBAS
GDB
GDScript
Game Maker
Genero
Genie
GetText
Go
Godot GLSL
Groovy
GwBasic
HQ9 Plus
HTML
HTML 5
Haskell
Haxe
HicEst
IDL
INI file
INTERCAL
IO
ISPF Panel Definition
Icon
Inno Script
J
JCL
JSON
Java
Java 5
JavaScript
Julia
KSP (Kontakt Script)
KiXtart
Kotlin
LDIF
LLVM
LOL Code
LScript
Latex
Liberty BASIC
Linden Scripting
Lisp
Loco Basic
Logtalk
Lotus Formulas
Lotus Script
Lua
M68000 Assembler
MIX Assembler
MK-61/52
MPASM
MXML
MagikSF
Make
MapBasic
Markdown (PRO members only)
MatLab
Mercury
MetaPost
Modula 2
Modula 3
Motorola 68000 HiSoft Dev
MySQL
Nagios
NetRexx
Nginx
Nim
NullSoft Installer
OCaml
OCaml Brief
Oberon 2
Objeck Programming Langua
Objective C
Octave
Open Object Rexx
OpenBSD PACKET FILTER
OpenGL Shading
Openoffice BASIC
Oracle 11
Oracle 8
Oz
PARI/GP
PCRE
PHP
PHP Brief
PL/I
PL/SQL
POV-Ray
ParaSail
Pascal
Pawn
Per
Perl
Perl 6
Phix
Pic 16
Pike
Pixel Bender
PostScript
PostgreSQL
PowerBuilder
PowerShell
ProFTPd
Progress
Prolog
Properties
ProvideX
Puppet
PureBasic
PyCon
Python
Python for S60
QBasic
QML
R
RBScript
REBOL
REG
RPM Spec
Racket
Rails
Rexx
Robots
Roff Manpage
Ruby
Ruby Gnuplot
Rust
SAS
SCL
SPARK
SPARQL
SQF
SQL
SSH Config
Scala
Scheme
Scilab
SdlBasic
Smalltalk
Smarty
StandardML
StoneScript
SuperCollider
Swift
SystemVerilog
T-SQL
TCL
TeXgraph
Tera Term
TypeScript
TypoScript
UPC
Unicon
UnrealScript
Urbi
VB.NET
VBScript
VHDL
VIM
Vala
Vedit
VeriLog
Visual Pro Log
VisualBasic
VisualFoxPro
WHOIS
WhiteSpace
Winbatch
XBasic
XML
XPP
Xojo
Xorg Config
YAML
YARA
Z80 Assembler
ZXBasic
autoconf
jQuery
mIRC
newLISP
q/kdb+
thinBasic
Paste Expiration:
Never
Burn after read
10 Minutes
1 Hour
1 Day
1 Week
2 Weeks
1 Month
6 Months
1 Year
Paste Exposure:
Public
Unlisted
Private
Folder:
(members only)
Password
NEW
Enabled
Disabled
Burn after read
NEW
Paste Name / Title:
Create New Paste
Hello
Guest
Sign Up
or
Login
Sign in with Facebook
Sign in with Twitter
Sign in with Google
You are currently not logged in, this means you can not edit or delete anything you paste.
Sign Up
or
Login
Public Pastes
Untitled
3 hours ago | 1.88 KB
Untitled
3 hours ago | 0.67 KB
Untitled
3 hours ago | 3.33 KB
Untitled
4 hours ago | 1.00 KB
Untitled
4 hours ago | 0.33 KB
Untitled
4 hours ago | 1.55 KB
my software
7 hours ago | 0.03 KB
disable countdown timer in cart for drop pric...
PHP | 12 hours ago | 0.23 KB
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the
Cookies Policy
.
OK, I Understand
Not a member of Pastebin yet?
Sign Up
, it unlocks many cool features!