Blizz Abs Combat Help

Started by Vexus, December 26, 2012, 11:34:11 am

Previous topic - Next topic

Vexus

December 26, 2012, 11:34:11 am Last Edit: December 26, 2012, 11:36:00 am by Vexus
To not flood the sticky with my questions I thought on making a thread where I'll post my problems/questions and hopefully people can help.

Okay so I'm testing the combat system on my project alive as in chapter 2 there will be combat and I'm having some issues that I can't understand and google search not helping.

1 - Can I animate only certain enemy attacks?

I don't need an animation sheet on the infected normal attack or bite but I need an animation on the bandit's attack as it's done with a gun. (Using blank pictures makes the event vanish for a second every time and using the same sprite sheet for each type makes the sprite show double)

2 - For some odd reason my character doesn't want to attack.

I checked controls I have it there, I don't exactly want to deal damage but I even tried changing the "weapon" damage from 1 to 100 still nothing. (In alive you don't fight but I want to have the option on pushing back the enemies which it's not working for me)

3 - Trying to make a ranged enemy and even tough I make it bow or even flail the retard goes melee and stands there.

Now I don't know what I changed but the 2nd enemy that should be attacking the infected goes to melee range and does nothing.

----------------------------------------------------------------

These are my issues for now hopefully people can help.

Thanks

(Once these are solved going to try objects against the infected and I don't know why but I think there will be issues and will need to post again :/ )
Current Project/s:

Vexus

-Bump-

Any help please?

I stumbled upon another issue but the more important is now even the infected stopped attacking and I don't understand why :S

Anyway the infected use a "skill" for scratch or bite on which list do I have to make it so it attacks only infront of it not the sides too?

Thanks
Current Project/s:

winkio

For each sprite option you turn on, you have to make animations for every instance of the sprite.  So if you turn on enemy action sprites, you have to make one for every enemy.  If you don't want to make unique sprites, you can just copy, paste, and rename the standard sprites, and use empty sprites for the weapon.

Attacking works.  You need to explain a little more what your problem is, because I am confused.

Did you set the range on the enemy that has a different weapon?  That is the only thing I can think of that is missing for you.

You can make the skill a shooting skill with no explosion with 1 square of range, and it will hit only in front.

Vexus

December 28, 2012, 05:36:34 pm #3 Last Edit: December 28, 2012, 06:06:42 pm by Vexus
Man either the project is screwing up or I have no clue what's happening.

I have all sprite control options unticked but every time I press esc It's asking me for some sprites I have no use for nor I understand the need of.

First it asked me for projectile_skill_2 then projectile_enemy_4 now projectile_skill_1

WTF?

Something is seriously wrong here as I tried using a bullet sprite as place holder and they don't show until I press Esc to open menu...  But there's more! The bullet I used as place holder doesn't go away but they remain on the map updating every time I open/close menu. (Note this is one of the projectile files I have no idea what they are being used for as the option is not even ticked)

Another odd thing is once I edited one of the enemies attacks from 2 skills only to an attack and skill it started attacking again using only the default attack not the skill and killed one of the events, now here goes another weird problem... Every time I opened/closed my menu the sound of a someone dying keeps on playing, every time.

So I say again wtf is happening to my project? I don't know what could be the cause..

--

The skills scratch and bite are currently listed under shooting/thrusting with 1 range but when they were attacking the enemies were able to hit diagonally too instead of only from the front.

--

Well for enemies no longer attacking I'm naming the event this:

Zombie \e[2] \g[2] \ai[01000000]


I'm using the help file as guidance and at first it worked but now they no longer attack just follow and keep on staring.

--

The supposedly ranged enemy is set this way:



Yet it still goes melee where I want it to stay at ranged all the time. (Tried flail too but keeps on going melee)

--

Well I have the control to attack on R, have a weapon equipped with 0 damage and on the config it's set to pushback 2 squares but nothing happens ingame.

Don't know how can I explain it better than that without a demo or something.

Thanks for the help.
Current Project/s:

Vexus

Any clue why those stuff happening?

I'm kinda losing all my patience trying to make it work....
Current Project/s:

winkio

I would just make a demo and upload it so we can take a look.  It sounds like a lot of the basic features aren't working for you, which means that it probably isn't a simple thing to fix.

Vexus

Ok so it seems I found the culprit on one of the problems or maybe more than 1.

This script:

http://www.hbgames.org/forums/viewtopic.php?f=11&t=74494

If placed under blizz abs doesn't seem to let the enemies attack from bow list but placing it over it seems to work. (Was afraid it would give an error as if I had to choose between the 2, that script would win as it's a must for the ambience of alive.)

This also seemed to fix the issue with the skill claw and bite and also my character unable to attack lol...

Still, how can I make the enemy try to stay at max range all the time when fighting instead of going melee? Trying to make a bandit fight an infected as a test but he keeps on rushing headon.

Thanks for telling me to do a demo else I wouldn't have found out the problem :P
Current Project/s:

Vexus

So there's no way to make an enemy staying at ranged instead of going melee?
Current Project/s:

winkio

Ranged enemies should stay ranged.  Post your config (part 1) so I can take a look.

Vexus

Ok here's part 1:

Spoiler: ShowHide
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Blizz-ABS by Blizzard and winkio
# Version: 2.84
# Auto-Generated Configuration Script
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
#                                    PART 1
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Copy-paste this auto-generated script into the script slot instead of Part 1
# of the default Blizz-ABS script.
#
# If you find any bugs, please report them here:
# http://forum.chaos-project.com
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

#==============================================================================
# BlizzABS
#------------------------------------------------------------------------------
#  This is the master control, configuration, utility and battle process
#  module for Blizz-ABS.
#==============================================================================

module BlizzABS
 
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
  # BlizzABS::Control
  #----------------------------------------------------------------------------
  #  This module provides in-game control configurations.
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
  module Control
   
    CUSTOM_CONTROLS = true
    DISABLE_DEFAULT = true
    UP = "Key['W'], Key['Arrow Up']"
    LEFT = "Key['A'], Key['Arrow Left']"
    DOWN = "Key['S'], Key['Arrow Down']"
    RIGHT = "Key['D'], Key['Arrow Right']"
    PREVPAGE = "Key['P']"
    NEXTPAGE = "Key['L']"
    CONFIRM = "Key['E'], Key['Enter']"
    CANCEL = "Key['Esc']"
    ATTACK = "Key['R']"
    DEFEND = "Key['G']"
    SKILL = "Key[',']"
    ITEM = "Key['Q']"
    SELECT = "Key['O']"
    HUD = "Key['V']"
    HOTKEY = "Key['X']"
    MINIMAP = "Key['M']"
    RUN = "Key['Left Shift']"
    SNEAK = "Key['Alt']"
    JUMP = "Key['.']"
    TURN = "Key['C']"
   
  end
 
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
  # BlizzABS::Config
  #----------------------------------------------------------------------------
  #  This module provides Blizz-ABS configurations.
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
  module Config
   
    # 2.1. # Basic Configuration
    MAX_PARTY = 4
    MAX_PETS = 1
    MAX_MONSTERS = 1
    MAX_SUMMONS = 1
    CATERPILLAR = false
    CORPSES = true
    EMPTY_CORPSES = true
    RECOVER_ON_LEVEL_UP = false
    FULL_DEFEND = false
    DIRECT_HOTKEYS = false
    AUTO_GAMEOVER = true
    DROP_AMMO = true
    MENU_COLOR_TINT = 8
    DISABLE_ABS_MODE = 0
    ITEM_DROP = true
    ITEM_PICKUP_SOUND_FILE = RPG::AudioFile.new('056-Right02', 80, 100)
    GOLD_DROP = ''
    GOLD_PICKUP_SOUND_FILE = RPG::AudioFile.new('', 80, 100)
    DROP_TIME = 65535
    EVENT_LOCK = 40
    ANIMATED_IDS = []
   
    # 2.2. # Movement Configuration
    PIXEL_MOVEMENT_RATE = 0
    REPAIR_MOVEMENT = true
    EIGHT_WAY_MOVEMENT = false
    SNEAK_ON_CHARGE = false
    NORMAL_SPEED = 3
    RUN_SPEED = 4
    SNEAK_SPEED = 2
    JUMPING = 0
    NO_JUMP_TAGS = []
    ALLOW_JUMP_TAGS = []
    NO_FLOOR_TAGS = [4, 5, 6, 7]
   
    # 2.3. # Lag Prevention Configuration
    INTELLIGENT_PASSABILITY = true
    ABSEAL_AUTOKILL = true
    ABSEAL_FACTOR = 4
    DISABLE_ANTILAG_IDS = []
   
    # 2.4. # Game Info Configuration
    HUD_ENABLED = true
    HUD_POSITION = 2
    HUD_TYPE = 1
    MINIMAP = false
    HOTKEYS = true
    ENEMY_HEALTH_BARS = 0
    ENEMY_HEALTH_BARS_MATCH_WIDTH = false
    BOUNCING_DAMAGE = false
    WEAPON_DATA_MODE = [0, 0]
    SKILL_DATA_MODE = [0, 0, 0]
    ITEM_DATA_MODE = [0, 0, 0]
   
    # 2.5. # Enemy Behavior Configuration
    AI_DEFAULT_ATTRIBUTES = '01000000'
    AI_DELAY_TIME = 40
    VIEW_RANGE = 20
    HEARING_RANGE_RATIO = 40
    RESPAWN_TIME = 0
    WALL_TAGS = [7]
    NO_ENEMY_TAGS = [6, 7]
    EXP_MODE = 2
    KNOCKBACK_MODE = 2
   
    # 2.6. # Animation Configuration
    ANIMATIONS = true
    SMALL_ANIMATIONS = true
    DISPLAY_LEVEL_UP = true
    LEVEL_UP_ANIMATION_ID = 0
    FLEE_ANIMATION_ID = 0
    CALL_HELP_ANIMATION_ID = 0
    DEFEND_ANIMATION_ID = 0
    UNSUMMON_ANIMATION_ID = 0
   
    # 2.7. # Sprite Control Configuration
    A_ACTION_SPRITES = false
    A_WEAPON_SPRITES = false
    A_DEFEND_SPRITES = false
    A_SKILL_SPRITES = false
    A_ITEM_SPRITES = false
    A_IDLE_SPRITES = false
    A_CHARGE_SPRITES = false
    A_CHARGE_WEAPON_SPRITES = false
    A_CHARGE_SKILL_SPRITES = false
    A_CHARGE_ITEM_SPRITES = false
    E_ACTION_SPRITES = false
    E_SKILL_SPRITES = false
    E_IDLE_SPRITES = false
    E_CHARGE_SPRITES = false
    E_CHARGE_SKILL_SPRITES = false
    RUNNING_SPRITES = false
    SNEAKING_SPRITES = false
    JUMPING_SPRITES = false
   
  end
 
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
  # BlizzABS::Alignments
  #----------------------------------------------------------------------------
  #  This module provides alignment configurations.
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
  module Alignments
   
    GROUPS = [1, 2, 3, 4, 5, 6, 7]
    LIFELESS_GROUPS = [5]
    LINKED_GROUPS = [6, 7]
    PERMANENT_GROUPS = [6, 7]
    ACTOR_GROUP = 1
    ENEMY_GROUP = 2
   
    def self.enemies(id)
      case id
      when 1 then return [2, 3]
      when 2 then return [1, 3, 4, 5, 6, 7]
      when 3 then return [1, 2, 6, 7]
      when 6 then return [2]
      end
      return []
    end
   
    def self.allies(id)
      case id
      when 1 then return [1]
      when 2 then return [2]
      when 3 then return [3]
      when 6 then return [5, 6]
      when 7 then return [5, 6]
      end
      return []
    end
   
    def self.neutral(id)
      case id
      when 1 then return [4, 5, 6, 7]
      when 3 then return [4, 5]
      when 4 then return [1, 2, 3, 4, 5, 6, 7]
      end
      return []
    end
   
  end
 
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
  # BlizzABS::Weapons
  #----------------------------------------------------------------------------
  #  This module provides weapon configurations.
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
  module Weapons
   
    def self.type(id)
      case id
      when 1 then return SPEAR # Main Actor Hands
      end
      return SWORD
    end
   
    def self.combo(id)
      return 0
    end
   
    def self.projectile_speed(id)
      return 5
    end
   
    def self.knockback(id)
      case id
      when 1 then return 1 # Main Actor Hands
      end
      return 1
    end
   
    def self.range(id)
      case id
      when 1 then return 1.0 # Main Actor Hands
      end
      return 1.5
    end
   
    def self.penalty(id)
      case id
      when 1 then return 40 # Main Actor Hands
      end
      return 16
    end
   
    def self.frames(id)
      return [3, 3, 3, 3]
    end
   
    def self.charge(id)
      return [CHARGENone, 0]
    end
   
    def self.charge_frames(id)
      return [3, 3, 3, 3]
    end
   
    def self.consume(id)
      return []
    end
   
  end
 
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
  # BlizzABS::Skills
  #----------------------------------------------------------------------------
  #  This module provides skill configurations.
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
  module Skills
   
    def self.type(id)
      case id
      when 1 then return [SHOOT, EXPLNone] # Claw
      when 2 then return [SHOOT, EXPLNone] # Bite
      end
      return [DIRECT, EXPLNone]
    end
   
    def self.combo(id)
      return 0
    end
   
    def self.projectile_speed(id)
      return 5
    end
   
    def self.knockback(id)
      case id
      when 1 then return 0 # Claw
      when 2 then return 0 # Bite
      end
      return 1
    end
   
    def self.range(id)
      return 1.0
    end
   
    def self.penalty(id)
      case id
      when 1 then return 40 # Claw
      when 2 then return 40 # Bite
      end
      return 24
    end
   
    def self.frames(id)
      return [3, 3, 3, 3]
    end
   
    def self.charge(id)
      return [CHARGENone, 0]
    end
   
    def self.charge_frames(id)
      return [3, 3, 3, 3]
    end
   
    def self.trap(id)
      return 10
    end
   
    def self.summon(id)
      return [SUMMONPet, 0, 0]
    end
   
  end
 
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
  # BlizzABS::Items
  #----------------------------------------------------------------------------
  #  This module provides item configurations.
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
  module Items
   
    def self.type(id)
      return [DIRECT, EXPLNone]
    end
   
    def self.combo(id)
      return 0
    end
   
    def self.projectile_speed(id)
      return 5
    end
   
    def self.knockback(id)
      return 1
    end
   
    def self.range(id)
      return 5.5
    end
   
    def self.penalty(id)
      return 24
    end
   
    def self.frames(id)
      return [3, 3, 3, 3]
    end
   
    def self.charge(id)
      return [CHARGENone, 0]
    end
   
    def self.charge_frames(id)
      return [3, 3, 3, 3]
    end
   
    def self.trap(id)
      return 10
    end
   
    def self.summon(id)
      return [SUMMONPet, 0, 0]
    end
   
    def self.drop_sprite(id)
      return false
    end
   
  end
 
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
  # BlizzABS::Enemies
  #----------------------------------------------------------------------------
  #  This module provides enemy configurations.
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
  module Enemies
   
    def self.type(id)
      case id
      when 2 then return SPEAR # Zombie
      when 3 then return SPEAR # Zombie
      when 4 then return BOW # Bandit
      end
      return SWORD
    end
   
    def self.combo(id)
      return 0
    end
   
    def self.projectile_speed(id)
      return 5
    end
   
    def self.knockback(id)
      case id
      when 2 then return 0 # Zombie
      when 3 then return 0 # Zombie
      when 4 then return 0 # Bandit
      end
      return 1
    end
   
    def self.range(id)
      case id
      when 2 then return 1.0 # Zombie
      when 3 then return 1.0 # Zombie
      when 4 then return 6.0 # Bandit
      end
      return 1.5
    end
   
    def self.penalty(id)
      case id
      when 2 then return 40 # Zombie
      when 3 then return 40 # Zombie
      when 4 then return 32 # Bandit
      end
      return 16
    end
   
    def self.frames(id)
      return [3, 3, 3, 3]
    end
   
    def self.charge(id)
      return [CHARGENone, 0]
    end
   
    def self.charge_frames(id)
      return [3, 3, 3, 3]
    end
   
    def self.delay(id)
      return nil
    end
   
    def self.perception(id)
      case id
      when 4 then return [8, 60] # Bandit
      end
      return nil
    end
   
    def self.ai(id)
      return nil
    end
   
    def self.destruct(id)
      return 0
    end
   
    def self.respawn(id)
      return 0
    end
   
  end
 
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
  # BlizzABS::Combos
  #----------------------------------------------------------------------------
  #  This module provides combo configurations.
  #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
  module Combos
   
    def self.total_actions(com)
      return 1
    end
   
    def self.commands(com)
      return []
    end
   
    def self.anim_data(com)
      return [0, [3, 3, 3, 3], '', false]
    end
   
  end
 
end
Current Project/s:

Vexus

(Finding it weird that I have to double post to get a reply every time.)
Current Project/s:

G_G

Just give it some time Vexus, winkio just hasn't found the time to reply yet.

Vexus

Wasn't exactly implying on winkio posting on the problems I'm having just in general.

Kinda feel the forums a little dead lately, very few reply/post nowadays.
Current Project/s:

KK20

Could also just be that no one else knows the answer.

I honestly believe that this is how the enemy is supposed to work. Have you ever tried a new project and test a projectile enemy for yourself? Do the actions mimic the enemies in your actual game?

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

winkio

I take as long as I need to in order to find the answer.  There were a lot of possibilities that turned out not to be the problem, but I finally narrowed it down to the 'Actions' attribute on the AI.  Without the actions attribute, the enemy stays at range, but with the attribute enabled, the enemy goes right next to the target.  This is a bug in the AI which I will fix in the future, but for now, just disable the actions attribute and you should be fine.

KK20

Totally forgot to consider this... recall when you asked how to make the enemies not move backwards after attacking? That's probably why.

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

Vexus

Didn't mean to offend you winkio sorry if it seemed like that.

So kk20 I either disable moving backwards every attack or disable movement?

Don't think I got it right.

I tried removing from the event name the action ai (You know \ai[01000000]) and also unticking the action for events that don't have an ai given but the bandit still goes melee.
Current Project/s:

winkio

that is because your ai is set to 01000000 by default in your config.  Either manually set the enemy to 00000000 or change the config.

Vexus

January 05, 2013, 02:54:15 pm #18 Last Edit: January 05, 2013, 02:57:59 pm by Vexus
I changed the config and made it default unticked.

I'll try that tough, thanks for the help.

[Edit]

Nope, still goes melee.
Current Project/s:

KK20

Just so that I know we're on the same page, I'm talking about this:
Quote from: KK20 on December 23, 2012, 09:57:25 pm
lol got bored and found out where it happens. Part 2, Line ~6295
char.move_away_random(ai.target, false, ai.act.range)

Comment that out.

I tested it. Enemy moves in close (either next to me or one space away) and stands there attacking.

Doing something like this instead

if [1].include?(char.battler.id)
  char.move_away_random(ai.target, false, ai.act.range)
end

can help with choosing what enemies you want to retreat.

I also take it you never tried my suggestion in creating a new project and see if the problem persists.

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!