PhoenixSoul 1,404 Posted April 20, 2021 4 hours ago, Gump said: Maybe post the demos in their own posts but the smaller scripts in here? What I would do is if any of them are bug fixes for other scripts, that you made, paste those here. The rest, host/revive your own topics for. As Riki said, this is mainly for the lost/dead/abandoned scripts, whose writers/developers are for whatever reason/s, no longer actively supporting them and whose links/code formatting is borked/vanished. Of course, feel free to post any findings you come across. 1 Share this post Link to post Share on other sites
PhoenixSoul 1,404 Posted November 21, 2021 As of posting this; @Tsukihime's RGSS3 script blog is still up, and this script is still available for grabs in text form. However, this script I'm archiving here is an updated version, which @roninator2 made additions to, for @MasterMoes. I took the liberty of cleaning it up and turning it into a proper ruby file, for archiving purposes, with proper text updating. For those that would rather copy and paste directly:  Spoiler =begin #=============================================================================== Title: Custom Use Conditions Author: Hime Date: Jan 4, 2014 Updated: Nov. 21, 2021 Updated By: Roninator2, KBGaming as aid to MasterMoes URL: https://himeworks.com/2013/11/26/custom-use-conditions/ For KBGaming: https://kbgamingmusic.itch.io/ -------------------------------------------------------------------------------- ** Change log Nov. 21, 2021 - Allows one to use features to add skills and check for those skills as conditions - Considered a QoL update - Archived on RPG Maker Central because the internet is volatile Jan 4, 2014 - allows for "recursive" calls. Recursive calls do not check custom use conditions - added "Actor" condition Nov 29, 2013 - fixed bug where no use conditions caused it to always fail Nov 26, 2013 - Initial release -------------------------------------------------------------------------------- ** Terms of Use * Free to use in non-commercial projects * Contact me for commercial use * No additional commercial use contact necessary for KBGaming * No real support. The script is provided as-is * Will do bug fixes, but no compatibility patches * Features may be requested but no guarantees, especially if it is non-trivial * Credits to Hime Works in your project * Credits also to Roninator2, and KBGaming (the latter is optional) * Preserve this header -------------------------------------------------------------------------------- ** Description This script allows you to define custom skill requirements for your skills. By default, you can choose two require up to two weapon types. This script allows you to define requirements based on things like - actor's class - equipped weapons - equipped armors - equipped weapon types - equipped armor types - learned skills - New: skills given by features (if an equip/state gives a skill for example) - active states - formulas, for anything else You can create conditions to require multiple conditions to be met, or require at least one condition to be met. -------------------------------------------------------------------------------- ** Installation In the script editor, place this script below Materials and above Main -------------------------------------------------------------------------------- ** Usage -- Specifying Use Conditions -- Note-tag your skills or items with the following <use conditions> TYPE1: VALUE1 TYPE2: VALUE2 </use conditions> Refer to the reference section for a list of available use conditions. There is a special "formula" type that allows you to evaluate any arbitrary formula. The following formula variables are available a - current actor p - game party t - game troop s - game switches v - game variables -- Use Condition Groups -- All use conditions are organized into separate "use condition groups". The notetag that you see above describes a single condition group. You can have multiple condition groups by simply defining multiple notetags. A skill is said to be "usable" if at least one condition group is satisfied. A condition group is satisfied only if all conditions within the group are satisfied. That is, they evaluate to true. Therefore, if you have multiple condition groups, you are only required to satisfy one group in order to use the skill. See the example to understand how condition groups are used. -------------------------------------------------------------------------------- ** Example Suppose you have a Fire Slash skill that can be used under two different conditions as follows 1. You must have the "fire enchant" state (state 7), and equip a sword type weapon (wtype 2) 2. You are using the "Fire Dragon Sword" (weapon 21) To accomplish this, you will define two use condition groups by notetagging your skill with <use conditions> state: 7 wtype: 2 </use conditions> <use conditions> weapon: 21 </use conditions> -------------------------------------------------------------------------------- ** Reference The following use condition types are available type: weapon value: ID desc: requires the weapon to be equipped type: armor value: ID desc: requires the armor to be equipped type: wtype value: ID desc: requires the weapon type to be equipped type: atype value: ID desc: requires the armor type to be equipped type: actor value: ID desc: requires the user to be a specific actor type: class value: ID desc: requires the actor to have the given class type: state value: ID desc: requires the state to be currently applied to the actor type: learned value: ID desc: requires the actor to have learned the specified skill # New. Looks for if a skill is added by any feature. type: osl (other skill learned) value: ID desc: requires the actor to have acquired the specified skill, via any means including features # end New type: formula value: ruby formula desc: requires the formula to evaluate to true -------------------------------------------------------------------------------- ** Examples #=============================================================================== =end $imported = {} if $imported.nil? $imported["TH_CustomUseConditions"] = true #=============================================================================== # ** Configuration #=============================================================================== module TH module Custom_Use_Conditions Regex = /<use[-_ ]conditions>(.*?)<\/use[-_ ]conditions>/im end end #=============================================================================== # ** Rest of Script #=============================================================================== module RPG class UsableItem < BaseItem def use_conditions load_notetag_use_conditions unless @use_conditions return @use_conditions end def load_notetag_use_conditions @use_conditions = [] res = self.note.scan(TH::Custom_Use_Conditions::Regex) res.each do |result| group = Data_UseConditionGroup.new result[0].strip.split("\r\n").each do |option| case option.strip when /weapon:\s*(\d+)\s*/i cond = make_custom_use_condition(:weapon, $1.to_i) when /armor:\s*(\d+)\s*/i cond = make_custom_use_condition(:armor, $1.to_i) when /learned:\s*(\d+)\s*/i cond = make_custom_use_condition(:learned, $1.to_i) # New. Looks for if a skill is added by any feature. when /osl:\s*(\d+)\s*/i cond = make_custom_use_condition(:osl, $1.to_i) # end New when /wtype:\s*(\d+)\s*/i cond = make_custom_use_condition(:wtype, $1.to_i) when /atype:\s*(\d+)\s*/i cond = make_custom_use_condition(:atype, $1.to_i) when /actor:\s*(\d+)\s*/i cond = make_custom_use_condition(:actor, $1.to_i) when /class:\s*(\d+)\s*/i cond = make_custom_use_condition(:class, $1.to_i) when /state:\s*(\d+)\s*/i cond = make_custom_use_condition(:state, $1.to_i) when /formula:\s*(.*)\s*/i cond = make_custom_use_condition(:formula, $1) end group.conditions << cond end @use_conditions << group end end def make_custom_use_condition(type, value) return Data_UseCondition.new(type, value) end end end class Data_UseConditionGroup attr_reader :conditions def initialize @conditions = [] end end class Data_UseCondition attr_reader :type attr_reader :value def initialize(type, value) @type = type @value = value end def eval_use_condition(a, p=$game_party, t=$game_troop, s=$game_switches, v=$game_variables) eval(@value) end end class Game_BattlerBase def custom_use_conditions_met?(item) true end end class Game_Actor < Game_Battler alias :th_use_conditions_usable? :usable? def usable?(item) bool = th_use_conditions_usable?(item) return false unless bool unless @check_use_custom_conditions @check_use_custom_conditions = true bool = custom_use_conditions_met?(item) @check_use_custom_conditions = false end return bool end #----------------------------------------------------------------------------- # #----------------------------------------------------------------------------- alias :th_use_conditions_custom_use_conditions_met? :custom_use_conditions_met? def custom_use_conditions_met?(item) return false unless th_use_conditions_custom_use_conditions_met?(item) return true if item.nil? || item.use_conditions.empty? weapons = self.weapons armors = self.armors weapon_ids = weapons.collect {|obj| obj.id} wtype_ids = weapons.collect {|obj| obj.wtype_id} armor_ids = armors.collect {|obj| obj.id} atype_ids = armors.collect {|obj| obj.atype_id} state_ids = self.states.collect {|obj| obj.id } # New. Looks for if a skill is added by any feature. skill_ids = skills.collect {|obj| obj.id} # end New # for each group item.use_conditions.each do |group| # skip if any are not satisfied next if group.conditions.any? do |cond| value = cond.value case cond.type when :weapon !weapon_ids.include?(value) when :armor !armor_ids.include?(value) when :state !state_ids.include?(value) when :class !(@class_id == value) when :actor !(@actor_id == value) when :wtype !wtype_ids.include?(value) when :atype !atype_ids.include?(value) when :learned !@skills.include?(value) # New. Looks for if a skill is added by any feature. when :osl !skill_ids.include?(value) # end New when :formula !cond.eval_use_condition(self) end end # all are satisfied, so this group is satisfied return true end return false end end class Window_BattleItem < Window_ItemList #-------------------------------------------------------------------------- # Overwrite. Item usability is based on actor, not party #-------------------------------------------------------------------------- def include?(item) BattleManager.actor.usable?(item) end end   Hime-Roninator-Custom Use Conditions.rb Share this post Link to post Share on other sites
PhoenixSoul 1,404 Posted March 18 (edited) Scrolling Battleback: Currently, this script is available, but the formatting, is broken, even Archeia's editing didn't fix it properly. Well, this archive has it fixed properly.  Spoiler =begin Scrolling Battle Background Creator: Ossra (RMWeb) Fixer: KBGaming =end #============================================================================== #** NS #============================================================================== class NS; end #NS #============================================================================== # ** NS::Battle_Plane #============================================================================== class NS::Battle_Plane # Switch to Enable Scrolling Background Enable_Switch = 15 # Variables for Horizontal and Vertical Scroll Speed Back1_X_Variable = 10 Back1_Y_Variable = 11 Back2_X_Variable = 12 Back2_Y_Variable = 13 end # NS::Battle_Plane #============================================================================== #** Spriteset_Battle #============================================================================== class Spriteset_Battle #-------------------------------------------------------------------------- #* Create Battle Background (Floor) Sprite #-------------------------------------------------------------------------- unless method_defined?(:battleback_C42W53GD_sb_create_battleback1) alias_method(:battleback_C42W53GD_sb_create_battleback1, :create_battleback1) end def create_battleback1(*args, &block) if $game_switches[NS::Battle_Plane::Enable_Switch] == true @back1_sprite = Plane.new(@viewport1) @back1_sprite.bitmap = battleback1_bitmap @back1_sprite.z = 0 @back1_sprite_ox = 0 @back1_sprite_oy = 0 else battleback_C42W53GD_sb_create_battleback1(*args, &block) end end #-------------------------------------------------------------------------- # * Create Battle Background (Wall) Sprite #-------------------------------------------------------------------------- unless method_defined?(:battleback_ms67JgWE_sb_create_battleback2) alias_method(:battleback_ms67JgWE_sb_create_battleback2, :create_battleback2) end def create_battleback2(*args, &block) if $game_switches[NS::Battle_Plane::Enable_Switch] == true @back2_sprite = Plane.new(@viewport1) @back2_sprite.bitmap = battleback2_bitmap @back2_sprite.z = 1 @back2_sprite_ox = 0 @back2_sprite_oy = 0 else battleback_ms67JgWE_sb_create_battleback2(*args, &block) end end #-------------------------------------------------------------------------- #* Update Battle Background (Floor) Sprite #-------------------------------------------------------------------------- unless method_defined?(:battleback_HNirC0QE_sb_update_battleback1) alias_method(:battleback_HNirC0QE_sb_update_battleback1, :update_battleback1) end def update_battleback1(*args, &block) if $game_switches[NS::Battle_Plane::Enable_Switch] == true @back1_sprite_ox += $game_variables[NS::Battle_Plane::Back1_X_Variable].to_f / 64 @back1_sprite_oy += $game_variables[NS::Battle_Plane::Back1_Y_Variable].to_f / 64 @back1_sprite.ox = @back1_sprite_ox * 16 @back1_sprite.oy = @back1_sprite_oy * 16 else battleback_HNirC0QE_sb_update_battleback1(*args, &block) end end #-------------------------------------------------------------------------- # * Update Battle Background (Wall) Sprite #-------------------------------------------------------------------------- unless method_defined?(:battleback_zmrQkMCU_sb_update_battleback2) alias_method(:battleback_zmrQkMCU_sb_update_battleback2, :update_battleback2) end def update_battleback2(*args, &block) if $game_switches[NS::Battle_Plane::Enable_Switch] == true @back2_sprite_ox += $game_variables[NS::Battle_Plane::Back2_X_Variable].to_f / 64 @back2_sprite_oy += $game_variables[NS::Battle_Plane::Back2_Y_Variable].to_f / 64 @back2_sprite.ox = @back2_sprite_ox * 16 @back2_sprite.oy = @back2_sprite_oy * 16 else battleback_zmrQkMCU_sb_update_battleback2(*args, &block) end end end # Spriteset_Battle  For those who would rather DL directly... Ossra-Scrolling Battle BG.rb Internet volatility is garbage! I am glad this topic is PINNED. Edited March 18 by PhoenixSoul Share this post Link to post Share on other sites