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.

ACBS - Atoa Custom Battle System 3.2

hmm what graphic could it be missing though ? i downloaded the demo, and the demo seems to be working for everyone else, so why would mine be missing a graphic but no one elses?

If you have the script running correctly would you mind posting your graphics folder so i can see which graphic im missing, or just copy and paste into the game folder too see if it works

Thanks
 
... okay... could be your RGSS file... it's the only thing it could be at this point.. otherwise.. i really dunno... i can't help anymore than that.....
 
Okay just i bought the game, and its still doing the same problem. I didint know if maybe having the demo would be causing a problem.

Well i cant seem to figure this out, version 2 works fine for me, but version 3 does not. i keep getting that same error, and im pretty sure a graphic file is not missing.
 
I'm not sure what to tell you then, i had no problem getting anything to work... so.. i. i dunno.
I hope you can figure it out though.
 
I'm not sure what to tell you then, i had no problem getting anything to work... so.. i. i dunno.
I hope you can figure it out though.
I'm not sure how i posted twice... sorry... my net sucks.
 
hmmm, do you happen to have the demo still ? if you do would you mind sending it to me. If it works for you maybe it will work for me. If it doesnt then it must be something with my computer.

If you can post it id greatly appreciate it.
Thanks again
 

Yin

Member

Just add this

Random_Move = false # Random motion to view the damage (only if Pop_Move = true)

in your damage display settings under Pop_Move. You must be trying to use old settings with the new version.
 
Anyone know how to change the order in which some visual effects happen?
I'm trying to get this battle system customized more to be like Final Fantasy 4.. yet turn based.
But when my players start to cast a spell, rather then stepping forward, then doing a pose with the casting animation on them, then the animation for either the attack or healing of another player, they just stand there with the casting animation playing over them, then they step forward doing their pose, then the healing or attacking animation plays over the player or enemy on screen i target.
Basically, i want to change the order in which some things happen.
So far everything is working well, i just gotta get the order changed for some things... unless their might be some way around it without changing script info.
I might be wasting my time on this, but i thought i would ask anyhow.
Ever since i got RMXP, i have been struggling to make a turn based Final Fantasy battle system..(not like the newer final fantasy games, i never got into the much newer ones, i'm more into the classic 8 and 16 bit versions)
Anyhow, any help would be appreciated, if no one can help, it's cool.. i will just mess around with the script until i figure it all out.
I keep thinking it might be something with SEQUENCE, and if i adjust something there i can change the order of some things.
 
Hi. Im working in a few addons, one of them quickly configures your acbs to show the combat frontal and the positions and all like the dbs.

Code:
=begin

 

#==============================================================================

# Quick and improved front view setting - ACBS Addon

# By gerkrt/gerrtunk

# Version: 1.1

# License: GPL, credits

#==============================================================================

 

If you dont want a classic frontview battle remove or put this script after main.

 

1- Go to ACBS Config 1 Basic:(you can ignore this step if Autoconfig_acbs is enabled)

Battle_Style = 2

Auto_Set_Postions = false

Custom_Postions = [[80,464],[240,464],[400,464],[560,464]]

 

These last values emulate the DBS actor battlers coordinates. [x,y]

 

2- When you import a classic static battler you must add a $ before the filename.

Example: Soldier.png --> $Soldier.png

 

Classic_battler: This enable a new option in the battler position priority

of the Atoa configs: between battle window contents and battle window back. This

just means that you will see it like in the old default battle system.

Also this must be enabled to select the actors opacity.

 

Actor_battler_opacity: With this you can select the opacity of the actors

battlers, that in the default battle system was like 200.

 

Autoconfig_acbs: This option make all the config changues needed for a

frontview system automatically. But that values of ACBS Config 1 are overriden.

 

=end

 

module Wep

  Actor_battler_opacity = 200

  Classic_battler = true

  Autoconfig_acbs = true

end

 

 

 

 

# Force atoa module configuration if actived

if Wep::Autoconfig_acbs

  module Atoa

    Battle_Style = 2

    Auto_Set_Postions = false

    Custom_Postions = [[80,464],[240,464],[400,464],[560,464]]  

  end

end

 

#==============================================================================

# ■ Sprite_Battler

#   moded to set opacity based on user configuration

#==============================================================================

class Sprite_Battler < RPG::Sprite

#--------------------------------------------------------------------------

  def update

    super

    return self.bitmap = nil && loop_animation(nil) if @battler.nil?

    if @_collapse_duration > 0

      update_position unless $atoa_script['Atoa Chrono Trigger Battle']

      update_throw

      update_dummy_sprite

      return

    end

    make_battler

    update_current_frame

    update_move_anim

    update_move_postion

    update_damage_postion

    update_moving

    update_position

    update_effect

    reset_idle_anim

    update_pose

    update_throw

    update_dummy_sprite

    # Set opacity for classic style

    self.opacity = Wep::Actor_battler_opacity if @battler.is_a? Game_Actor and Wep::Classic_battler

  end

end

 

if Wep::Classic_battler

#==============================================================================

# ■ Spriteset_Battle

# moded some priorities to show the battler beyond the window text and the

# window back.

#==============================================================================

class Spriteset_Battle

  #--------------------------------------------------------------------------

  def set_viewport

    @viewport1 = Viewport.new(0, 0, 640, 480)

    @viewport2 = Viewport.new(0, 0, 640, 480)

    @viewport3 = Viewport.new(0, 0, 640, 480)

    @viewport4 = Viewport.new(0, 0, 640, 480)

    @viewport2.z = Battler_High_Priority ? 901 : 101 # 900. Window back.z+1

    @viewport3.z = Battler_High_Priority ? 2200 : 200

    @viewport4.z = 5000

    $game_temp.battlers_viweport = @viewport2

  end

end

 

end

My problem is that using this script, that make a very little modifications, when i kill a monster the battler didnt disappear but it stays on front. Its killed(it cant be objective, etc, i can win the battle).

Im not sure if its a bug of yours o mine, but sure you understand better your code. I have only touched some little aspects of your script for now...
 
First, comments: Really enjoying the amount of customization available in this system. Having the battle system and the animation system tied together internally allows for some things that I haven't seen with many other setups, like having actions that move the battler to multiple custom locations and execute multiple locations.

Next up, bug hunting, my favorite part of development: I've located (and fixed) a few relatively small issues that I figured might be worth posting. Appologies if these are repeats, I'm relatively new to the RMXP community. This is all based on the v3.0 demo, as the scripts-only download appears to be down at the moment.

Items use problems:
-Items can't be used from the menu when out of battle. They'll either simply fail when they should work (try using a potion) or actually cause a crash (try an elixer). I tracked the problem to the script ACBS | Game_Battler, where a small change to 2 methods solves it (changes marked with the "#CHANGED" comment in all code samples):
Code:
  def item_effect(item, user = self)

    self.critical = self.sp_damage = false

    if ((item.scope == 3 or item.scope == 4) and self.hp == 0) or

       ((item.scope == 5 or item.scope == 6) and self.hp >= 1)

      return false

    end

    effective = false

    effective |= item.common_event_id > 0

    if (rand(100) < item.hit)

      effective |= make_item_damage_value(item, user, effective)

      effective |= set_item_state_change(item, user, effective) #CHANGED need to send user

    else

      attacker.target_damage[self] = Miss_Message

    end

    user.target_damage[self] = nil unless $game_temp.in_battle

    return effective

  end
That needs to be sent because user will be used in this method, which just needs 1 line change:
Code:
def set_item_state_change(item, user, effective) #CHANGED add user param
Finally, I noticed that "make_item_damage_value" isn't returning anything even though its return value is being used in "item_effect". I added:
Code:
return effective
as the last line of make_item_damage_value.

-Second item issue: Items can only be used on self in battle. This one ended up being a really simple fix, but it took me a while to locate it since I'm just getting started with RGSS. The "item_effect" method takes a value for "user" however this value is never sent. Because damage is tied into the damage animation system, the user value must be set in order for the whole thing to go off correctly.

I went to ACBS | Scene_Battle4 and changed the line where item_effect is called to include the user:
Code:
  def make_item_action_result(battler)

    battler.current_item = $data_items[battler.current_action.item_id]

    return unless $game_party.item_can_use?(battler.current_item.id)

    if battler.current_item.consumable and not battler.multi_action_running

      $game_party.lose_item(battler.current_item.id, 1) 

    end

    battler.multi_action_running = battler.action_done = true

    @status_window.refresh if status_need_refresh

    battler.animation_1 = battler.current_item.animation1_id

    battler.animation_2 = battler.current_item.animation2_id

    @common_event_id = battler.current_item.common_event_id

    index = battler.current_action.target_index

    target = $game_party.smooth_target_actor(index)

    for target in battler.target_battlers

      target.item_effect(battler.current_item, battler) #CHANGED send user

    end

  end

That's it for items, next up is the ATB code. There's functionality for casting time in place, however casting time is always 0 because of a missing line:
Code:
alias step2_part1_atb step2_part1

  def step2_part1(battler)

    <<...SNIPPED START OF FUNCTION...>>

    if (battler.now_action.is_a?(RPG::Skill) or battler.now_action.is_a?(RPG::Item)) and 

       battler.cast_action.nil? and active_cast.nil?

      battler.cast_action = battler.now_action

      battler.cast_target = battler.current_action.target_index

      cast_speed = battler.now_action.cast_speed(battler)

      battler.cast_action = nil if cast_speed == 0

      unless cast_speed == 0

        battler.movement = false 

        battler.current_phase = 'Phase 5-1'

        battler.atb = 0 #CHANGED reset the ATB for casting

      end

    end

    if cant_use_action(battler) and battler.cast_action != nil

      battler.cast_action = nil

      battler.moviment = false 

      battler.current_phase = 'Phase 5-1'

    end

  end
That seems to work correctly, resetting the ATB to 0 when a casting action is set. Otherwise the ATB will already be full next frame and the action will fire regardless of cast speed.

There's also a glitch with the ATB meter positions if you place them under the battlers and enable them for enemies. Kind of obscure, but still worth fixing since it's fairly easy. Basically when enemies start to die their bars end up getting placed in the wrong location. Code first, then I'll explain what I was doing:
Code:
  def initialize

    @meters = []

    @skin = RPG::Cache.windowskin(Meter_Skin)

    i = 0

    c = 0 #CHANGED two counters

    for enemy in $game_troop.enemies

      #CHANGED>

      #next if enemy.dead?

      if (enemy.dead?)

        c += 1

        next

      end 

      #<CHANGED

      @meter = MeterSprite.new(@skin, 5)

      refresh_meter(i, c) #HNT

      i += 1

      c += 1 #CHANGED

    end

    refresh

  end

And:
Code:
  def refresh_meter(mIndex, index) #CHANGED added mIndex

    enemy = $game_troop.enemies[index]

    case Enemy_Meter

    when 1

      @meter.x = enemy.base_x - @skin.width / 2

      @meter.y = enemy.base_y - @skin.height / 5

      @meter.z = 100

    when 2

      @meter.x = enemy.base_x - @skin.width / 2

      @meter.y = enemy.base_y - @skin.height / 5 - 64

      @meter.z = 1000

    when 3

      @meter.x = 32

      @meter.y = 80 + index * 32

      @meter.z = 3000

    end

    @meters[mIndex] = @meter #CHANGED use mIndex

  end

Basically, as monsters die their ATB meters will be removed, but they still exist in the battle (they're just at hp 0). So as they die, the meter index and the enemy index will no longer match up, thus the refresh function needs to know both numbers.

Finally there are the 2 issues with the demo, one of which seems to be common knowledge now. The line Random_Move = false (actually could be set to true or false, but needs to be set) is missing from the config in the demo so it crashes as soon as anyone takes damage.

The other issue is the throw animation graphic, which apparently didn't get translated. The demo looks for "throw" however the file in the animations folder has an untranslated name. Changing it to "throw" solves this issue.

Anyway, that's all I've got for the moment. Just want to restate that I'm really liking this system regardless of the fact that it needs a small amount of poking and prodding to get it running the way you want. Thanks for making this. =)
 
Okay.. this is odd.. cause all the problems you found and fixed, i never had to begin with, with the latest build.
Then again, i'm not using ATBs... never mind..
Still, i'm not having a lot of problems other are.. it's baffling.
 
It could be a large variety of things. I've been tasting these builds since August and haven't run into any problems, and suddenly with the latest 'version', I'm having problems as well. (minor issues, but issues none-the-less). Back to bug-testing it seems.

Regardless of what it is that is causing this, it's good to know people are still providing assistance.
 

Atoa

Member

It's been an long time since the last time i posted.

I was going to update it on christmas, i actually updated the download link, but it had a lot of issues, (that's why i hate when i hush things XD) so i didn't even annoucend the update. i was going to relase it with the unstralated comments, but i changed my mind an i will relase it only when all comments are done.

The glitches that UberMonkey pointed are some of them

@Mikepjr
About your doubt with the order of action, you ansewerd your self.
I keep thinking it might be something with SEQUENCE, and if i adjust something there i can change the order of some things.
The sequence is the key, Create dummy skills, with the "NODAMAGE" and "SEQUENCE/**" settings. In my opinion, these are the most powerful tool of the ACBS, allowing to create an really big variety of animations.

If you downloaded the latest (and glitchy) version after christmas, you will see that "DarkLuar" have an new skill: Arrow Rain. This skill use exactly that principle.
Here is the settings of this skill
Code:
  Skill_Settings[147] = ["MOVETYPE/NOMOVE","ANIME/12","NODAMAGE","SEQUENCE/148,149,150"]

  Skill_Settings[148] = ["MOVETYPE/NOMOVE","ANIME/0","NODAMAGE","HELPHIDE"]

  Skill_Settings[149] = ["MOVETYPE/NOMOVE","ANIME/0","TIMEAFTERANIM/6",

                         "IMPACTDELAY/0","DAMAGEDELAY/0","NODAMAGE","HELPHIDE"]

  Skill_Settings[150] = ["MOVETYPE/NOMOVE","ANIME/0","TIMEAFTERANIM/0",

                         "IMPACTDELAY/0","DAMAGEDELAY/0","HITS/6","HELPHIDE"]
- The skill 147, is targeted on the actual targets of the skill, has the "MOVETYPE/NOMOVE","NODAMAGE" effect, and calls the skill sequence.
- The skill 148, is targeted on self, and shows the "casting" animation (it still need the "NODAMAGE" since it's only for animation purpouse)
- The skill 149, shows the target animation.
- The skill 150, cause the actual damage.
 
So.. with that.. i could change when the casting animation happens?
So i'm basically trying to change when the User Animation happens...
Okay i just checked it, that's not what i'm talking about at all, i'm talking about the "User Animation" and when it appears.
The player would step forward, place his hands in the air, an effect would appear over the player for the casting.. then the player would put his hands down, and then the "Target Animation" would appear over him while his is still standing there.. over him.. or who ever you targeted, then when it's all done, he would step back.
When i talking about animations, i'm not talking about player animations, i'm talking about animations you set up in the Database for casting, as it is the casting animations from the database, it happens before ever stepping forward, and i'm trying to change when that happens.
If you have played Final Fantasy 2/4 for the super nintendo, you know what i'm trying to do.

And i keep trying to use those setting to get what i want and it's not working.. that just makes him use different spells in a row..
 

Atoa

Member

You need to be creative if you want to use the ACBS.
You can't change time that the database user animation happens, but you don't need it.

You will need 3 skills:
- the first skill, with no animation, no damage, the step foward, and the sequence calling the second and the third skills.
- the second skill, targeted on self, no damage, and with the cast anim.
- the third skill, with the damage and target animations.
 
Isn't that a bit of an overkill when the database already has a lot of things you can use?
I mean, you could have just added options for the User Animation from the database into your script.
Creative is one thing, but making a script where you use skills just for skill animations is a bit..... um. it's a bit.. well i don't know what word to use to describe it, it just adds to the work load, and means i have to type out more things that i could just set up most of in the database as stated before.
I am not a scripter, but would it not have been easier to just add options for the User Animations in your script?
Also, why do i have to set what items drop now in the scripts?
It's already there so you can set up what items drop in the database, it just makes some things more complicated then they have to be.
Same thing with the animations themselves, i noticed a part of your script where you set up where the animation appears over the battlers, that kinda thing can already be set in the database.
A lot of that is just adding to the work load and making it take longer to get some things done.
 

Atoa

Member

Mikepjr":232x6ymy said:
I mean, you could have just added options for the User Animation from the database into your script.
You talk like it's easy to add settings for *all* things that people might like.

Some people want animations before move, some want after move, some want no animation, some want 2 animations, some want things i cant even imagine.
The sequence system allow people to put things in the order they want, whatever it is, so i won't put something that's is already avaliable on the system, just because people aren't in the mod to do some hard work on it.

Mikepjr":232x6ymy said:
it's a bit.. well i don't know what word to use to describe it, it just adds to the work load, and means i have to type out more things that i could just set up most of in the database as stated before.
I am not a scripter, but would it not have been easier to just add options for the User Animations in your script?
The animations are already there, they don't happens when you want, so it's not a problem with the system, if you want to make things different you should forget the lazyness and start working, the options are already there, if you don't like the way they are now too bad, but i wont put effort in doing new ways to make things that are already possible.
It's not my fault if your database settings don't work well with the script functions.

Also adding the animations after move would solve *your* problem, but would cause problems with the sequences and multi hit actions, wich is, for me, far more important than that, since you already can make custom actions in another way.

Mikepjr":232x6ymy said:
Also, why do i have to set what items drop now in the scripts?
Who said you need to set the drops on the scripts? You can still set drops on the database.
The drops on the script are for MULTI DROP, and don't interfere the drops of the database.

Mikepjr":232x6ymy said:
Same thing with the animations themselves, i noticed a part of your script where you set up where the animation appears over the battlers, that kinda thing can already be set in the database.
Wrong. The animations ALWAYS, are shown above battlers. Also the animation position takes in consideration the graphic height, wich is quite annoying when workinkg with animated battler, that might have an frame higher than the actual battler height. Also not all settings are mandatory.
If you want to use the crap RMXP animation position just don't mess with the Animations Settings, but don't blame the script if they're not showing on the same place as you set on the database.

Also you must notice that many features of the system DO NOT REPLACE the default settings of the rmxp (like the items and animations you mentioned), they're just opitional addition, that you use if you want or need.

Mikepjr":232x6ymy said:
A lot of that is just adding to the work load and making it take longer to get some things done.
If you want an copy > paste > play script, you should consider using another system. To use the ACBS you will have to work hard.
These additions might not be useful for *you*, but some people appreciate them and some even consider them necessary.
 
... i'm sorry.. okay?...
Just aggravated....
A lot has not been this difficult until now.
I'm more of a point and click kinda guy, i can't script to save my ass.. i can do a few modifys here and there sure.. but.. i'm not used to having to go into the scripting area to modify everything or add so much.. .
And for some reason.. items i'm telling to drop don't seem to be dropping.. sure the ones in the script that are told to drop are dropping, but anything i tell to drop in the database does not seem to want to.
Also i noticed in the latest script, animations are off-centered, i basically told the part where you can tell it where the animations sit not to effect it, but they still seem off centered.. so i keep having to adjust in the database to compensate for where animations oddly enough, want to show up over battlers.. maybe both are bugs?
 
@Atoa:
Okay, this an unusual error that I found recently. I have an enemy that gives up 1 XP a piece. I have a troop of three of those enemy. One character, alone, fights them. He should get 3 XP. He gets 6 XP. This is with XP share on or off. Any ideas what's going on? Is there another setting I'm not aware of and messing up? Thanks!
 

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