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)

Well...what the problem is, is that it the battlesystem uses animated battlers, under the battler graphic slot in the database, so when i go to to start a TBS battle, it says "unable to find file/graphics/tharantyr_btl(or whatever animated battler name is). And then when I switch to just a normal default battler and try, I get this script error:

Script' (4) Miscellaneous ' line 205: NoMethod Error occurred

undefined method ' / for nil: NilClass

Any help with this is greatly appreaciated.
 
death by moogles - Please provide me a demo showing the problem and i will get to th bottom of it.

guitarshedderj - Better also provide me a demo..

fox5 - Sure you can have the status show.. Just find this.. and remove the DELETE lines.
.active == true
        if @windows["actor"].active #DELETE
          window.visible = false #DELETE
          @cursor_active = false #DELETE
        else #DELETE
          window.move_to("right") #DELETE
        end #DELETE
      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
    end
  end
[/code]
Well, that should cover it.
 
How do you make your new enemies show battle animations correctly?

How do you make your party battlers attack with a weapon? instead of just seeing an animation.

this is in vx 1.0  since this is misleading your 1.4 only seems to be in xp
 
I found a problem with the VX version. If I or the enemy uses dual attack (a pre-made skill) it doesn't show any battle animation... Because the animation is set on 'Same as normal Atk'. Can you fix that?
 
Cyrtii":3se6k2kb said:
I found a problem with the VX version. If I or the enemy uses dual attack (a pre-made skill) it doesn't show any battle animation... Because the animation is set on 'Same as normal Atk'. Can you fix that?

just change the animation number in the code to somthing. ex 105 then in your animations make sure Animation # 105 is called Anim_(whatevr) and is the animation you want.
 
Cyrtii":1bggj9ra said:
Thank you,
but i dont really get it...

I have a problem in trying to get "any" enemy to show battle animations!
but if you want char to show certain animations; the number in the code must be matched to the database/animation number. It also needs its name to be Anim_(name of skill).
 
Well the enemies do have a battle animation (that is animation 105 standard) But if they or the actor uses the skill 'Dual Attack' it doesn't show any animation, because the animation (in the database) is set on 'Same as Atk', How do I fix that?
 
Because VX doesnt have user database animations I had to add this feature in the script.  I use the following to determine attacks based on the Game_Battler class. 
Code:
#--------------------------------------------------------------------------
  # * Animation1 - User Animation
  #--------------------------------------------------------------------------
  def animation1
    case @current_action.kind
    when 0 #physical attack
      return GTBS::ANIM_ATK
    when 1 #skill/item
      return GTBS.get_skill_user_anim(@current_action.skill_id)
    when 2
      return 0
    end
  end
In otherwords.. if the attack is an "attack" then it will use the ATTACK animation.. but if a skill it will use the skill_id animation specified in the GTBS module under get_skill_user_anim.  Which is shown below...
Code:
def self.get_skill_user_anim(skill_id)
    case skill_id
    when 1 ; return ANIM_SPEC1
    when 99; return ANIM_SPEC2
    else; return ANIM_CAST
    end
  end
Simply add a 'when SKILL_ID; return ANIMATION_ID'
where skill_id is the id of the skill you are trying to use in the database and the animation_id is the animation id from the database you would like to use. (If the animation ID is greater than the number of db animations you may encounter an error)

If you dont understand that, then please let me know.
 

Vivere

Member

Hi :) I wanted to pop in here and first of all say that this script is awesome, even though I don't have to tell you that :P Anyway, I was wondering, would it be possible to make an addon to this script that makes it like the battle system in Live A Live? In case you don't know what that is, you can download an unofficially translated rom of it here: http://www.rom-world.com/file.php?id=27417

Basically, you get brought to a new map for the battles, that is a 7x7 grid with a panoramic background (no tiles, just walking on clear space with a picture behind it), and it's like turn based yet sort of real time at the same time. What I mean is, you can freely move up, down, left or right just by pressing the direction, but if you move a lot, then the enemy can also move at the same time (and use attacks on you). There's no attack command. Everything is a skill. Each skill has its own areas that it can attack.

In Final Fantasy Tactics, if a mage has a skill with a range of 3 tiles, you can cast it on any tile up to 3 away from the mage, but in Live A Live, some ranged attacks, like gun attacks..if it was a range of 3, you could shoot up to 3 tiles away vertically, horizontally, or diagonally in a line only. And there are attacks with cast times as well, where the enemy can move around as you channel it.

It's a lot easier to understand from playing it ^_^ but I tried my best to explain the basics of it just in case you're too busy to check out the game right away.
 
1. I still can't figure out how to scale the experience earned in battles.
I'm only earning 1 to 2 xp points at high levels where you need 10-20k plus to level.

2. Is there a way to increase monster level by your level. Like random world map encounters so.
Once you hit lv 10 you stop getting weaker monsters and get lv 10+ ones then 20+ etc
Scale them up with your char lv.

3. Also I cant seem to get attacks like spin fist to work. where u attack in four places in a square around you.


  o
o    o
  o

It just uses a animation on my char does 0 dmg because I told it to exclude caster and its set up just like your spin fist in your demo.

4. And how do I make the proj_norm animation show for any char that has bow set as true. they just use the anim_attk one.
I set it on animation id 18 like you said but it doesn't work.

5. Status effects don't seem to be working either. i set it up just like the other ones (armor bless) etc in the default rtp skills. I use them in battle the squares are green (your default ones) and it pops a 0 dmg on the char but doesn't show the status on him at all. (in states I have them all set up with icons)

6. EXACTLY what version have you released for VX..... Your main download for vx on page one says its version 1.0 is that a mistype or is v 1.4 somewhere else?
 
Can anyone help me with making the battle map change for every Area/Region that the actor is in. That would help very much with a world map.
Example:
AreaID:          BattleMap:
AreaID 001 => MapID 013
AreaID 002 => MapID 025
AreaID 003 => MapID 002
 
I am having trouble with the experiance too. I get how it works Enemy level +10 -Character level and if its 0 or less its 1 and double if you kill the monster. But setting the enemy level is hard cause it seems to read it by the number in the database. so I would have to set up a diffrent class for each enemy to get the experiance or copy paste some I want for others using the same class and exp level but change it to there number. ITs very confusing and doesnt always work.

When I attack a monster with no class at level 1 it give me 6 exp. Which would mean the character level is set to -3 which is odd for there being no class. so I dont know the best way to set exp values. Also I want it to stay simple. I want each enemy to give you 4 exp and 8 when you kill them. 8 and 16 for bosses. I am going to have 100 per level, like shining force. But I want it to stay that way in the game. So at level 50 I want to get the same exp per enemy as level 1. But If a character is behind I want them to get more. So I have to adjust each enemys class. Is there a better way to do this?

I know for level one I do -5 as the enemy level and -4 for level 2 and so on counting up with my character.

So what I really want to know is can I have the enemy's automatically change level based on what my main character is? If I could do this it would allow people behind him to catch up and stop people ahead from getting to far ahead. It would also make it so the game would remain balanced since this kind of game can get unbalanced easy. if you dont attack properly.

OH also is there a way to make using healing spells give you exp too?
 
sorry to ask such a simple question, but how do you make the iso map and the iso battlemap? im trying to understand the program but im going to nowhere... =\

How do I set the "isochild map" and the iso battlemap? If I change the Actor# event for an Place# I will be able to place my characters right?
 
Vivere, technically, as long as you dont say IS_BOW? = true for the weapon, then it will use direct line of site for attacks.  it wont fill in the 'between' tiles.  You could also just set L-SHAPE_FOR_BOWS = false, and it would do it all the time for all weapons... only direct line of site.
The changes you are asking for here is really more like a different battle system.  Kind of sounds more like the system that SephirothTDS has done for his VX game.  Its a tactics based as well, but is only a 9x9 grid and you can place bombs and other what not to occur in a couple turns etc.  Pretty neat stuff.  I just wish I had the time to do all the programming he does.

LtPLegend,
1. This is likely because the enemy level is really low compared to your current level and hence little to no experience.  Its like saying.. I am going to learn something by kicking this tiny kids butt that I know wont be able to do anything about it.
2. You could create a method to check the average party level and return that for the enemies +- 1,3 randomly..
something like this..
Code:
class Game_Party
  def get_average_level
    lev = 0
    for actor in @actors #if you are using VX it would be for actor in 'members' not @actors
       lev += actor.level
    end
    lev /= @actors.size # or members.size
    return lev
  end
end

Then under the section in the GTBS module..
Code:
  def level
    lev = Enemy_Levels[@enemy_id]
    return $game_party.get_average_level if lev == nil
    return lev
  end
This way.. if the enemy level is not manually specified they will "grow" with the party.. However this is only a level indicator and will not affect their hp/sp/attack/def etc.

3.
Code:
when 99; range = [0, 1, false, true ] #spin fist
What this means is...
[ Can Cast how far away,  Area of Effect, Only Affect in LINE?, Exclude Caster? ]
[0 = can only cast on self, 1 = 1 area of effect.. beyond casting postion, do not affect in line, and yes,exclude caster]
So.. if you are casting on yourself.. and you are excluding yourself.. and you have 1 range (1 cell beyond casting location) then it will affect the surrounding 4 cells.

Keep playing with it and let me know if you continue to have problems.  I hope I explained that clear enough.

4.
to create a projectile...
1. Set the weapon to the projectile element_id that you want.
2. Ensure that there is a "skill/weapon name".png file in the projectiles folder under GTBS (must be exact)
... and thats it.. everything else will take care of itself.  I would usually recommend that projectiles be ranged weapons.. but I have seen ones that are only 1 away.  It doesnt really care.. it just thinks.. ok, im a projectile.. where is my image.. go.

5. if you are using XP it should be fine.. however VX doesnt have 'autostate' animations and hence no "state' will display.  Something I didnt have the time to recreate when making the VX version.  Sorry :)

6. Technically XP 1.4 is VX 1.0..  There has been only the 1 version of VX released.  1.4 is reffering to XP users.  I will however be releasing XP 1.5 soon and thinking that I will just call it VX 1.5 so that there is no confusion.  as we are experiencing now.


Cyrtii...
Untested of course.. but
Code:
  #-------------------------------------------------------------
  # Sets battle_scene to change if called from specified map, otherwise it is self
  #-------------------------------------------------------------
  def self.battle_map(map_id)
    case map_id
    when 1
      for area in $data_areas.values
         case area.id
         when 1; map = 2
         else return 1
         end
      end
    else; map = map_id
    end
    return map
  end

That should do the trick..

Violent..
The response given to LtPLegend should work for you as well.
.. healling spells should already give you exp.  unless you are not doing "per hit exp".  In fact you should always receive 10exp for every actor affected by a healing skill the way it is setup.. however it should likely be doing it by average so that you dont get so much exp so quickly.  I will look into that for the future.

Well that is everyones responses... I hope.
Anyway, it looks like I will have to scrap the mouse support for both XP and VX.. it proves to buggy in response to keep in.  Perhaps in the future.. but i tried.  Its just one of those things that you cannot help I suppose.  But.. large units are coming along nicely.. Just need to resolve a movement bug with them and it should be ready to go.  Then next on the list is that DIM objects and updated Animation stuff!  I know.. I said a couple of weeks.. but life happens. Well later all.

Lucas Scoppio,
No problem.. you create iso maps like this..
1. Create the iso map.. the way it should look etc in a map..
2. create a sub map of that one.. name it whatever you like, but it must include 'ISO' somewhere in the name.
3. When teleported to the child map.. the parent (actual iso map) is called, while movement is based on the child map.

As for the actor# and place#..
dont put #'s after place cause it does nothing.. however it wont cause an error.  Regardless actor# is the index in the party.. so if you have 8 members.. then actor 5 would be the 5th member.  This is not based on ID, but party index.  again, hope that makes sense.  later!
 
Hey GubiD, I have a problem. For some reason nobody moves. Actors, enemies, nobody. Their move ranges are all zero. I went into the script, and it still has the default movement ranges set up, so it's not due to my giving them a range of zero. Do you have any idea why this may be?
 
Thanks... but I used the # in place of a number just to call it like an - "any number" - so i would not just say "place1" or "actor6".

Nice, i didnt know I could have more then 4 players in the party, it will help me alot!
 

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