KARINS_SOULKEEPER'S PROFILE
Search
Filter
Winterruption
author=pianotmauthor=LibertyFixed that for you...
Puppers aren't really known for climbing treesand then demanding someone get them down.
"...and then..." really doesn't come after that phrase. lol
I mean, we've seen cows get stuck on treetops, so why not dogs?
Winterruption
Oh, uh, howdy!
Oh, uh, howdy!
Eyy welcome to the club!
That manga maker, huh. I never saw that in action before. Is it any good?
In any case, most of the visual novels I've played so far were made in renpy, or a variation of it, so tutorials specific for this might not be easy to find on here, as Kyla said.
I swear, one of these days, Marrend is gonna blast us to oblivion.
But, until then... XD
That manga maker, huh. I never saw that in action before. Is it any good?
In any case, most of the visual novels I've played so far were made in renpy, or a variation of it, so tutorials specific for this might not be easy to find on here, as Kyla said.
author=BlackWolf1992
>.>
<.<
Welcome to RMN! Share your creativity with us!
*runs away*
I swear, one of these days, Marrend is gonna blast us to oblivion.
But, until then... XD
Winterruption
A-Actually Deckiller, I'm gonna have to retract my offer from a while ago; I realised it would be difficult to split up the game I'm trying to make.
Sorry, really...
Sorry, really...
Winterruption
I wouldn't mind, Deckiller. If you want to work with me and all :)
I could use help making the sidequests and stuff.
I could use help making the sidequests and stuff.
Winterruption
!! I HAS MADE PROGRESS !!
Did the entire thing with this beat on loop XD
Welp, time to go back to sleep then.
[RMVX ACE] Old dog trying to learn new tricks (basic questions)
For 3, I kinda modified Yanfly's ftb script to do just that a while ago. I''ll dig around in my pile and see if I can find it :)
Edit: Found it.
Edit2: Hide tags don't work with code tags?
Edit: Found it.
Edit2: Hide tags don't work with code tags?
# NOTE TO SELF: Truncate some more. # Once more, I took out some stuff from this script; # Effectively, I made it usable without YF's Battle System. # # I did this simply because I did not know how to make my actors # perform their move immediately after selection. I remembered that # this script does just that, so I decided to just use this. Stripping # down most of what makes it a "Free Turn Battle System", this script's main # purpose was downgraded to a mere "Whack when I tell ye" script. # # Not that I don't like his system and all, but I already have # One that I built myself, so... #============================================================================== # # ? Yanfly Engine Ace - Battle System Add-On: Free Turn Battle v1.02 # -- Last Updated: 2012.01.15 # -- Level: Normal, Hard # -- Requires: Yanfly Engine Ace - Ace Battle Engine v1.15+ # #============================================================================== $imported = {} if $imported.nil? $imported["YEA-BattleSystem-FTB"] = true #============================================================================== # ? Updates # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # 2012.01.15 - Bug fixed: Battle victory log doesn't play twice. # 2012.01.11 - Bug fixed: Dead actors are no longer inputable. # 2012.01.10 - Finished Script. # 2012.01.09 - Started Script. # #============================================================================== # ? Introduction # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # Free Turn Battle is a type of battle system made for Ace Battle Engine, where # actors perform their actions immediately (unless under the effects of berserk # or any other form of autobattle) as they're selected. After all of their # actions have been performed, the enemies will take their turn in battling the # actors. This becomes a system where actors and enemies will take turns # attacking one another as a whole. # #============================================================================== # ? Instructions # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # To install this script, open up your script editor and copy/paste this script # to an open slot below ? Materials/?? but above ? Main. Remember to save. # # First, set the default battle system for your game to be :ftb by either going # to the Ace Battle Engine script and setting DEFAULT_BATTLE_SYSTEM as :ftb or # by using the following script call: # # $game_system:set_battle_system(:ftb) # # ----------------------------------------------------------------------------- # Actor Notetags - These notetags go in the actors notebox in the database. # ----------------------------------------------------------------------------- # <ftb actions: +x> # <ftb actions: -x> # This increases or decreases the maximum number of actions available to an # actor by x. While an actor's individual maximum can be any value, it does not # provide more than the party maximum applied in the module. An actor's total # maximum cannot go below 1. # # ----------------------------------------------------------------------------- # Class Notetags - These notetags go in the classes notebox in the database. # ----------------------------------------------------------------------------- # <ftb actions: +x> # <ftb actions: -x> # This increases or decreases the maximum number of actions available to an # actor by x. While an actor's individual maximum can be any value, it does not # provide more than the party maximum applied in the module. An actor's total # maximum cannot go below 1. # # ----------------------------------------------------------------------------- # Skill Notetags - These notetags go in the skills notebox in the database. # ----------------------------------------------------------------------------- # <ftb cost: x> # This causes the skill to have an FTB cost of x. The FTB Cost does not occur # for individual chain skills, individual input skills, specialized input # skills, or instant skills. However, an FTB Cost can be used to put a specific # requirement on those listed types of skills. # # ----------------------------------------------------------------------------- # Item Notetags - These notetags go in the items notebox in the database. # ----------------------------------------------------------------------------- # <ftb cost: x> # This causes the item to have an FTB cost of x. The FTB Cost does not occur # for instant items. If items cost more actions than the party has available, # then the items will not appear in the usable item list during battle. # # ----------------------------------------------------------------------------- # Weapon Notetags - These notetags go in the weapons notebox in the database. # ----------------------------------------------------------------------------- # <ftb actions: +x> # <ftb actions: -x> # This increases or decreases the maximum number of actions available to an # actor by x. While an actor's individual maximum can be any value, it does not # provide more than the party maximum applied in the module. An actor's total # maximum cannot go below 1. # # ----------------------------------------------------------------------------- # Armour Notetags - These notetags go in the armour notebox in the database. # ----------------------------------------------------------------------------- # <ftb actions: +x> # <ftb actions: -x> # This increases or decreases the maximum number of actions available to an # actor by x. While an actor's individual maximum can be any value, it does not # provide more than the party maximum applied in the module. An actor's total # maximum cannot go below 1. # # ----------------------------------------------------------------------------- # State Notetags - These notetags go in the state notebox in the database. # ----------------------------------------------------------------------------- # <ftb actions: +x> # <ftb actions: -x> # This increases or decreases the maximum number of actions available to an # actor by x. While an actor's individual maximum can be any value, it does not # provide more than the party maximum applied in the module. An actor's total # maximum cannot go below 1. # #============================================================================== # ? Compatibility # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that # it will run with RPG Maker VX without adjusting. # # This script requires Yanfly Engine Ace - Ace Battle Engine v1.15+ and the # script must be placed under Ace Battle Engine in the script listing. # #============================================================================== module YEA module FTB #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - General FTB Settings - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # These settings adjust various general Free Turn Battle constants such as # the icons used for actions and no actions, whether or not party members # will have limited actions (or unlimited). #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ICON_ACTION = 188 # Icon displayed when there are actions left. ICON_EMPTY = 185 # Icon displayed to indicate a used action. # For every x% above the base AGI, actors will gain an extra action. Change # the value below to adjust the percentage needed. EXTRA_FTB_ACTION_BONUS = 10.00 # This is the maximum number of actions that the party can have despite the # maximum number of individual actor actions totalling to more than this. MAXIMUM_FTB_ACTIONS = 10 # If this setting is on, then each member can only perform a limited amount # of actions per turn as opposed to freely performing actions until the # party's action usage is depleted. LIMITED_ACTIONS_PER_MEMBER = true end # FTB end # YEA #============================================================================== # ? Editting anything past this point may potentially result in causing # computer damage, incontinence, explosion of user's head, coma, death, and/or # halitosis so edit at your own risk. #============================================================================== module YEA module REGEXP module BASEITEM FTB_ACTIONS = /<(?:FTB_ACTIONS|ftb actions):[ ]([\+\-]\d+)>/i end # BASEITEM module USABLEITEM FTB_COST = /<(?:FTB_COST|ftb cost):[ ](\d+)>/i end # USABLEITEM end # REGEXP end # YEA #============================================================================== # ¦ Icon #============================================================================== module Icon #-------------------------------------------------------------------------- # self.ftb_action #-------------------------------------------------------------------------- def self.ftb_action return YEA::FTB::ICON_ACTION end #-------------------------------------------------------------------------- # self.ftb_empty #-------------------------------------------------------------------------- def self.ftb_empty return YEA::FTB::ICON_EMPTY end end # Icon #============================================================================== # ¦ DataManager #============================================================================== module DataManager #-------------------------------------------------------------------------- # alias method: load_database #-------------------------------------------------------------------------- class <<self; alias load_database_ftb load_database; end def self.load_database load_database_ftb load_notetags_ftb end #-------------------------------------------------------------------------- # new method: load_notetags_ftb #-------------------------------------------------------------------------- def self.load_notetags_ftb groups = [$data_skills, $data_items, $data_actors, $data_classes, $data_weapons, $data_armors, $data_states] for group in groups for obj in group next if obj.nil? obj.load_notetags_ftb end end end end # DataManager #============================================================================== # ¦ RPG::BaseItem #============================================================================== class RPG::BaseItem #-------------------------------------------------------------------------- # public instance variables #-------------------------------------------------------------------------- attr_accessor :ftb_actions #-------------------------------------------------------------------------- # common cache: load_notetags_ftb #-------------------------------------------------------------------------- def load_notetags_ftb @ftb_actions = 0 #--- self.note.split(/[\r\n]+/).each { |line| case line #--- when YEA::REGEXP::BASEITEM::FTB_ACTIONS @ftb_actions = $1.to_i end } # self.note.split #--- end end # RPG::BaseItem #============================================================================== # ¦ RPG::UsableItem #============================================================================== class RPG::UsableItem < RPG::BaseItem #-------------------------------------------------------------------------- # public instance variables #-------------------------------------------------------------------------- attr_accessor :ftb_cost #-------------------------------------------------------------------------- # common cache: load_notetags_ftb #-------------------------------------------------------------------------- def load_notetags_ftb @ftb_cost = 1 #--- self.note.split(/[\r\n]+/).each { |line| case line #--- when YEA::REGEXP::USABLEITEM::FTB_COST @ftb_cost = $1.to_i end } # self.note.split #--- end end # RPG::UsableItem #============================================================================== # ¦ Icon #============================================================================== module Icon #-------------------------------------------------------------------------- # self.ftb_action #-------------------------------------------------------------------------- def self.ftb_action return YEA::FTB::ICON_ACTION end #-------------------------------------------------------------------------- # self.ftb_empty #-------------------------------------------------------------------------- def self.ftb_empty return YEA::FTB::ICON_EMPTY end end # Icon #============================================================================== # ¦ BattleManager #============================================================================== module BattleManager #-------------------------------------------------------------------------- # alias method: make_action_orders #-------------------------------------------------------------------------- class <<self; alias make_action_orders_ftb make_action_orders; end def self.make_action_orders make_action_orders_ftb end #-------------------------------------------------------------------------- # new method: make_ftb_action_orders #-------------------------------------------------------------------------- def self.make_ftb_action_orders @action_battlers = [] @action_battlers += $game_party.members unless @surprise @action_battlers += $game_troop.members unless @preemptive @action_battlers.each { |battler| battler.make_speed } @action_battlers.sort! {|a,b| a.screen_x <=> b.screen_x } end #-------------------------------------------------------------------------- # alias method: judge_win_loss #-------------------------------------------------------------------------- class <<self; alias judge_win_loss_ftb judge_win_loss; end def self.judge_win_loss if @phase && $game_troop.all_dead? && SceneManager.scene_is?(Scene_Battle) end judge_win_loss_ftb end end # BattleManager #============================================================================== # ¡ Game_Temp #============================================================================== class Game_Temp #-------------------------------------------------------------------------- # public instance variables #-------------------------------------------------------------------------- attr_accessor :battle_aid attr_accessor :evaluating attr_accessor :iconset #-------------------------------------------------------------------------- # alias method: initialize #-------------------------------------------------------------------------- alias game_temp_initialize_abe initialize def initialize game_temp_initialize_abe @iconset = Cache.system("Iconset") end end # Game_Temp #============================================================================== # ¦ Game_BattlerBase #============================================================================== class Game_BattlerBase #-------------------------------------------------------------------------- # new method: init_ftb_actions #-------------------------------------------------------------------------- def init_ftb_actions @used_ftb_actions = 0 end #-------------------------------------------------------------------------- # new method: ftb_actions #-------------------------------------------------------------------------- def ftb_actions init_ftb_actions if @used_ftb_actions.nil? return @used_ftb_actions end #-------------------------------------------------------------------------- # new method: max_ftb_actions #-------------------------------------------------------------------------- def max_ftb_actions n = make_action_times n += agi_bonus_max_ftb_actions n += trait_bonus_max_ftb_actions return [n, 1].max end #-------------------------------------------------------------------------- # new method: agi_bonus_max_ftb_actions #-------------------------------------------------------------------------- def agi_bonus_max_ftb_actions bonus_agi = agi - param_base(6) value_agi = param_base(6) * YEA::FTB::EXTRA_FTB_ACTION_BONUS return (bonus_agi / value_agi).to_i end #-------------------------------------------------------------------------- # new method: trait_bonus_max_ftb_actions #-------------------------------------------------------------------------- def trait_bonus_max_ftb_actions n = 0 if actor? n += self.actor.ftb_actions n += self.class.ftb_actions for equip in equips next if equip.nil? n += equip.ftb_actions end end for state in states next if state.nil? n += state.ftb_actions end return n end #-------------------------------------------------------------------------- # new method: use_ftb_action #-------------------------------------------------------------------------- def use_ftb_action(value = 1) init_ftb_actions if @used_ftb_actions.nil? @used_ftb_actions += value end #-------------------------------------------------------------------------- # alias method: inputable? #-------------------------------------------------------------------------- alias game_battlerbase_inputable_ftb inputable? def inputable? result = game_battlerbase_inputable_ftb return false unless result return result unless SceneManager.scene_is?(Scene_Battle) return result unless YEA::FTB::LIMITED_ACTIONS_PER_MEMBER return max_ftb_actions > ftb_actions end #-------------------------------------------------------------------------- # alias method: skill_conditions_met? #-------------------------------------------------------------------------- alias game_battlerbase_skill_conditions_met_ftb skill_conditions_met? def skill_conditions_met?(skill) return false unless ftb_item_conditions_met?(skill) return game_battlerbase_skill_conditions_met_ftb(skill) end #-------------------------------------------------------------------------- # alias method: item_conditions_met? #-------------------------------------------------------------------------- alias game_battlerbase_item_conditions_met_ftb item_conditions_met? def item_conditions_met?(item) return false unless ftb_item_conditions_met?(item) return game_battlerbase_item_conditions_met_ftb(item) end #-------------------------------------------------------------------------- # new method: ftb_item_conditions_met? #-------------------------------------------------------------------------- def ftb_item_conditions_met?(item) return true unless actor? return true unless SceneManager.scene_is?(Scene_Battle) return true if BattleManager.in_turn? return $game_party.ftb_actions_remaining >= item.ftb_cost end end # Game_BattlerBase #============================================================================== # ¦ Game_Battler #============================================================================== class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # alias method: on_battle_start #-------------------------------------------------------------------------- alias game_battler_on_battle_start_ftb on_battle_start def on_battle_start game_battler_on_battle_start_ftb init_ftb_actions end #-------------------------------------------------------------------------- # alias method: on_turn_end #-------------------------------------------------------------------------- alias game_battler_on_turn_end_ftb on_turn_end def on_turn_end game_battler_on_turn_end_ftb init_ftb_actions end #-------------------------------------------------------------------------- # alias method: make_action_times #-------------------------------------------------------------------------- alias game_battler_make_action_times_ftb make_action_times def make_action_times return make_ftb_action_times end #-------------------------------------------------------------------------- # new method: make_ftb_action_times #-------------------------------------------------------------------------- def make_ftb_action_times return action_plus_set.inject(1) {|r, p| p > 0.01 ? r + 1 : r } end end # Game_Battler #============================================================================== # ¦ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # alias method: next_command #-------------------------------------------------------------------------- alias game_actor_next_command_ftb next_command def next_command return game_actor_next_command_ftb end #-------------------------------------------------------------------------- # alias method: prior_command #-------------------------------------------------------------------------- alias game_actor_prior_command_ftb prior_command def prior_command return game_actor_prior_command_ftb end end # Game_Actor #============================================================================== # ¦ Game_Party #============================================================================== class Game_Party < Game_Unit #-------------------------------------------------------------------------- # alias method: inputable? #-------------------------------------------------------------------------- alias game_party_inputable_ftb inputable? def inputable? return false unless meet_ftb_requirements? return game_party_inputable_ftb end #-------------------------------------------------------------------------- # new method: meet_ftb_requirements? #-------------------------------------------------------------------------- def meet_ftb_requirements? return ftb_actions_remaining > 0 end #-------------------------------------------------------------------------- # new method: ftb_actions_remaining #-------------------------------------------------------------------------- def ftb_actions_remaining return ftb_actions_maximum - ftb_actions_used end #-------------------------------------------------------------------------- # new method: ftb_actions_maximum #-------------------------------------------------------------------------- def ftb_actions_maximum n = 0 for member in $game_party.members next unless member.game_battlerbase_inputable_ftb n += member.max_ftb_actions end return [n, YEA::FTB::MAXIMUM_FTB_ACTIONS].min end #-------------------------------------------------------------------------- # new method: ftb_actions_used #-------------------------------------------------------------------------- def ftb_actions_used n = 0 for member in $game_party.members next unless member.game_battlerbase_inputable_ftb n += member.ftb_actions end return n end end # Game_Party #============================================================================== # ¡ Window_BattleActor #============================================================================== class Window_BattleActor < Window_BattleStatus #-------------------------------------------------------------------------- # overwrite method: show #-------------------------------------------------------------------------- def show create_flags super end #-------------------------------------------------------------------------- # new method: create_flags #-------------------------------------------------------------------------- def create_flags set_select_flag(:any) select(0) return if $game_temp.battle_aid.nil? if $game_temp.battle_aid.need_selection? select(0) set_select_flag(:dead) if $game_temp.battle_aid.for_dead_friend? elsif $game_temp.battle_aid.for_user? battler = BattleManager.actor id = battler.nil? ? 0 : $game_party.battle_members.index(battler) select(id) set_select_flag(:user) elsif $game_temp.battle_aid.for_all? select(0) set_select_flag(:all) set_select_flag(:all_dead) if $game_temp.battle_aid.for_dead_friend? elsif $game_temp.battle_aid.for_random? select(0) set_select_flag(:random) if $game_temp.battle_aid.for_random? end end #-------------------------------------------------------------------------- # new method: set_flag #-------------------------------------------------------------------------- def set_select_flag(flag) @select_flag = flag case @select_flag when :all, :all_dead, :random @cursor_all = true else @cursor_all = false end end #-------------------------------------------------------------------------- # overwrite method: update_cursor #-------------------------------------------------------------------------- def update_cursor if @cursor_all cursor_rect.set(0, 0, contents.width, contents.height) self.top_row = 0 elsif @index < 0 cursor_rect.empty else ensure_cursor_visible cursor_rect.set(item_rect(@index)) end end #-------------------------------------------------------------------------- # overwrite method: cursor_movable? #-------------------------------------------------------------------------- def cursor_movable? return false if @select_flag == :user return super end #-------------------------------------------------------------------------- # overwrite method: current_item_enabled? #-------------------------------------------------------------------------- def current_item_enabled? return true if $game_temp.battle_aid.nil? if $game_temp.battle_aid.need_selection? member = $game_party.battle_members[@index] return member.dead? if $game_temp.battle_aid.for_dead_friend? elsif $game_temp.battle_aid.for_dead_friend? for member in $game_party.battle_members return true if member.dead? end return false end return true end end #============================================================================== # ¦ Scene_Battle #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # alias method: next_command #-------------------------------------------------------------------------- alias scene_battle_next_command_ftb next_command def next_command if ftb_action? perform_ftb_action else scene_battle_next_command_ftb end end #-------------------------------------------------------------------------- # new method: ftb_action? #-------------------------------------------------------------------------- def ftb_action? return false if BattleManager.actor.nil? return false if BattleManager.actor.current_action.nil? action = BattleManager.actor.current_action.item return !action.nil? end #-------------------------------------------------------------------------- # new method: perform_ftb_action #-------------------------------------------------------------------------- def perform_ftb_action hide_ftb_action_windows @subject = BattleManager.actor item = @subject.current_action.item execute_action process_event loop do @subject.remove_current_action break if $game_troop.all_dead? break unless @subject.current_action @subject.current_action.prepare execute_action if @subject.current_action.valid? end return if $game_troop.alive_members.size <= 0 process_action_end consume_ftb_action(item) @subject.make_actions @subject = nil show_ftb_action_windows end #-------------------------------------------------------------------------- # new method: consume_ftb_action #-------------------------------------------------------------------------- def consume_ftb_action(item) @subject.use_ftb_action(item.ftb_cost) unless item.nil? end #-------------------------------------------------------------------------- # new method: hide_ftb_action_windows #-------------------------------------------------------------------------- def hide_ftb_action_windows @info_viewport.visible = true @status_window.show @actor_command_window.show end #-------------------------------------------------------------------------- # new method: show_ftb_action_windows #-------------------------------------------------------------------------- def show_ftb_action_windows @info_viewport.visible = true end_ftb_action end #-------------------------------------------------------------------------- # new method: end_ftb_action #-------------------------------------------------------------------------- def end_ftb_action if $game_party.inputable? select_next_member else BattleManager.next_command turn_start end end #-------------------------------------------------------------------------- # new method: select_next_member #-------------------------------------------------------------------------- def select_next_member last_index = $game_party.battle_members.size - 1 for member in $game_party.battle_members.reverse break if member.inputable? last_index -= 1 end next_command if next_ftb_member?(last_index) return if BattleManager.actor.nil? if BattleManager.actor.index >= last_index && !BattleManager.actor.inputable? prior_command else start_actor_command_selection end end #-------------------------------------------------------------------------- # new method: next_ftb_member? #-------------------------------------------------------------------------- def next_ftb_member?(last_index) actor = BattleManager.actor return true if actor.nil? return false if actor.max_ftb_actions > actor.ftb_actions return false if BattleManager.actor.index >= last_index return BattleManager.actor.index != last_index end end # Scene_Battle #============================================================================== # # ? End of File # #==============================================================================
Winterruption
author=Seiromem
I'm actually making good progress right now!
And I've... finished another series, I guess? That's progress. I'm erm... researching. Looking for inspiration. Yeah! That. Deffo that.
Slip into Ruby - Under the Hood part 11: Do Nine Men Interpret(er)? Nine Men, I Nod.
author=Trihan
Question is, is an article of this length digestible enough, or would it be better to keep breaking it up the way I have been? I could probably cover the entire set of Sprite scripts in an article of a similar size to this one, but I'm concerned that too much text might make it more difficult to get to grips with.
It's probably best if you split them up by parts. Something like one article for character sprites, another for battle sprites, and that sort of thing. A lot of people are put off by large walls of text, regardless of how useful the content may be.
Plus, you'd get more ms XP