Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

GTBS v1.5.1.4 - A FFT Styled Battle System (5/19/2010)

Hey GubiD, I've just implemented an Unarmed Battler script to your TBS, but it's made by Leon and it worked, now I'll try making my own animated battlers to further support the Leon's Unarmed Battler script.
 
Cool Dung..
Digi,
First import the background image for the status bar as TBS_Status.png to the pictures folder.  The script will auto skin the window with that picture. (Dont forget that the window can lie on both left and right sides.)  Then just update the -Status_Window- to display the other info. 
 

Untra

Sponsor

Damn! this really makes me want to make an advance wars fangame! which I also noticed is an upcoming feature. I'll give it a download when I see the advance wars addon in there :)
 
Gubid":lb0cvj2b said:
Cool Dung..
Digi,
First import the background image for the status bar as TBS_Status.png to the pictures folder.  The script will auto skin the window with that picture. (Dont forget that the window can lie on both left and right sides.)  Then just update the -Status_Window- to display the other info. 

I thught so, my scripting is sort of noobish, and i have been trying to figure out how to change the script so that it will show the info of the player, while it is still his turn (i.e when you are still choosing the actors move) also is there any job changin system out there, if i could figure out how to make you able to telepot for one map to another, and have it memorize the last loaction, i could try and do via event wise (i.e menu option or have an item call the event)
 
I did it Gubi!
in the Scene_Battle_Tbs, i added a part in Line 1511

def update_windows
    for window in @windows.values
      if window.is_a?(Windows_Status_GTBS)
        window.update(@selected) unless @windows["detail"].active == true
        if @windows["actor"].active or @windows["item"].active or @windows["skill"].active#and @active_battler == @selected
          window.visible = false
          @cursor_active = false
        else
          window.move_to("right")
        end
      elsif window.is_a?(Commands_All)
        if @show_dmg_pop_ind.size == 0
          if @active_battler != nil
            window.update unless !window.visible or @active_battler.moving?
          else
            window.update unless !window.visible
          end
        else
          @windows["status"].visible = true
        end
      else
        window.update unless window == nil
      end
    @windows["status"].visible = true
    end
  end

Now it keeps showing the stats all throught the turn!

2 more questions, what is AT for?
and How can i make it to where you can undo a move once you do it? just noticed that you cant udo a move turn
 
 
AT is Active Time, in other words its how close they are to taking their next turn.  When it reaches 100 (actually 1000 in the background) it is their turn.  AT in incremented by the actors AGI each "round" of "AT".

As for the undo move.. this system is not capable of doing that without some big changes.  I say this because adding that functionality would remove the ability of being able to attack then move or move then attack in any order.  The order would have to be changed to Move -> Action -> End.  I wanted the greater flexibility and that is why it was done this way.
 
Hey Gubid i really like the GTBS, but is there anyway to making a TBS using action points?
Ex: I have 10ap and i need 5ap to use a weapon, so i can attack 2 times.
Ex2: The mmo Dofus

I just think that in this way, you can use more startegy, because you can attack more times, use combos and wearing +ap equips. ^^
 
sabao, yes, just havent had the time with th new features I am doing.

jv, Thats a good idea.  I think that the system is configured a little poorly for that type of approach though.  It would require a rewrite of a number of sections to do that.  At this time I dont have the time or patiences to do that, sorry.
 
When I try to use the scrip

Code:
$scene.set_character("enemy",3,19,29,1)

I get the following error

Code:
undefined method '[]' for # <Game_Troop:0x34b6fd8>
 
Arajabat, I found the problem.  You will need to replace your set_character method with this one.

Code:
def set_character(type, id, x, y, anim = 0)
    case type
    when "actor"
      actor = $game_actors[id]
      if actor == nil# or !actor.setup
        actor = $game_actors[id].setup
      end
      $game_system.tactics_actors.push(actor)
      actor.place(x,y)
      actor.step_anime = GTBS::STOPPED_ANIM
      @spriteset.battler_sprites.push(Sprite_Battler.new(@spriteset.viewport1, actor))
      if GTBS::SUMMON_CLASS.include?(actor.class_id)
        if !GTBS::CONTROLABLE_SUMMONS.include?(id)
          actor.neutral = true
        end
        if GTBS::DOOM_SUMMONS
          actor.add_state(23, true) #add doom to them to auto remove from battle
        end
      end
      actor.animation_id = anim
      actor.blink = false
    when "enemy"
      $data_troops[@troop_id].members.push(Member.new(@troop_id, id))
      $game_troop.enemies.push(Game_Enemy.new(@troop_id,$data_troops[@troop_id].members.size-1))
      actor = $game_troop.enemies.last
      if actor != nil
        actor.moveto(x, y)
        $game_system.tactics_enemies.push(actor)
        @spriteset.battler_sprites.push(Sprite_Battler.new(@spriteset.viewport1, actor))
      end
      actor.animation_id = anim
      actor.blink = false
    when "neutral"
      actor = $game_actors[id+50]
      if actor == nil
        actor = $game_actors[id].setup
      end
      $game_system.tactics_neutral.push(actor)
      actor.place(x,y)
      actor.step_anime = GTBS::STOPPED_ANIM
      @spriteset.battler_sprites.push(Sprite_Battler.new(@spriteset.viewport1, actor))
      actor.neutral = true
      actor.blink = false
      actor.animation_id = anim
    end
  end
then repeat your command as you had done.
 
GubiD, if I happen to implement a random encounter using your map, I had this in mind where you have to set a variable in random and it determines whether you can meet up an enemy or go freely... I dunno if it's feasible but that's what I think...

Sometime I'll try implementing it.
 
Triforce, this should work for you.

Code:
#-------------------------------------------------------------
  # Use Phase Music?  Only used if in TEAM mode
  #-------------------------------------------------------------
  PHASE_MUSIC = true
    #-------------------------------------------------------------
    # Actor Music Setup
    #-------------------------------------------------------------
    # DEF_ACTOR_MUSIC if the Default music to be played when one is not specified 
    # for the ACTOR_TURN_MUSIC[ MAP_ID ]
    #-------------------------------------------------------------
    DEF_ACTOR_MUSIC = "044-Positive02"
    ACTOR_TURN_MUSIC = {} #this is to initialize the music hash * DO NOT REMOVE *
    ACTOR_TURN_MUSIC[1] = "044-Positive02"
    
    #-------------------------------------------------------------
    # Enemy Music Setup
    #-------------------------------------------------------------
    # DEF_ENEMY_MUSIC if the Default music to be played when one is not specified 
    # for the ENEMY_TURN_MUSIC[ MAP_ID ]
    #-------------------------------------------------------------
    DEF_ENEMY_MUSIC = "043-Positive01" 
    ENEMY_TURN_MUSIC = {} #this is to initialize the music hash * DO NOT REMOVE *
    ENEMY_TURN_MUSIC[1] = "001-Battle01"
  
    #-------------------------------------------------------------
    # Actor Phase Music - reads the music name for the battle map
    #-------------------------------------------------------------
    def self.actor_phase_music
      if ACTOR_TURN_MUSIC[$game_map.map_id] != nil
        return ACTOR_TURN_MUSIC[$game_map.map_id]
      else
        return DEF_ACTOR_MUSIC
      end
    end
    
    #-------------------------------------------------------------
    # Enemy Phase Music - reads the music name for the battle map
    #-------------------------------------------------------------
    def self.enemy_phase_music
      if ENEMY_TURN_MUSIC[$game_map.map_id] != nil
        return ENEMY_TURN_MUSIC[$game_map.map_id]
      else
        return DEF_ENEMY_MUSIC
      end
    end
Then search for GTBS::ENEMY_TURN_MUSIC and replace it with GTBS.enemy_phase_music and GTBS::ACTOR_TURN_MUSIC with GTBS.actor_phase_music

Dung.. not sure I understand what you are saying?  Can you give a little more information.
 
I've been making a Class change system. It uses both Script and event (like i said, noobish scripter) and i will post as soon as it is in "better order" Im making similar to the ffta 2 class change and unit stat menu, minus the rotation thing like in fft.

http://img99.imageshack.us/img99/3407/c ... ngeec3.png[/img]

I was wondering, where in the script can i make it show that when a character attacks, and there is a critical hit, it will shake the screen and display  a Critical hit image (if i supply it) and how do you set up an iso map, im having difficulties when making it,  the map bounderies are off.
 
I am also working on a class changing system, but mine is the whole FFT menu system and everything.  Here are some screenshots of what I have.
http://i218.photobucket.com/albums/cc200/GubiD/FFT_Menu_List.jpg[/img]http://i218.photobucket.com/albums/cc200/GubiD/Job_Scene.jpg[/img]http://i218.photobucket.com/albums/cc200/GubiD/FFTMenu3.jpg[/img]http://i218.photobucket.com/albums/cc200/GubiD/FFTMenu2.jpg[/img]http://i218.photobucket.com/albums/cc200/GubiD/FFTMenu1.jpg[/img]
As for how to setup an iso map, here is what I found works best, at least to find the corners and build in from there.
This will also help you in sizing your maps accordingly.
The width of the ISO map should be the width+height of the passability map
The height of the ISO map should be the width+height of the passability map /2

The x width of the map passability map will still be "width" in for all corners and "height"/2 down for the starting corners. 

I hope that made since, but good luck with your system.


Nathmatt,
If you would like a summon to be controlled by AI, then review the "Summon" checklist in the GTBS Tutorial section. 
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top