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.

XAS Action Rpg System (Secret Of Mana Styled)

@ Mimi Chan - For every monster you hit (given that you've selected "OVD" for the weapon/skill you're hitting them with under the skills tab in the database) your Overdrive meter will increase - you can set how much it increases by in the "MOG - XAS_Overdrive" script about 30 or 40 lines down.

When a player wants to use their overdrive (when the meter reaches 100) they simply press "Alt" and the move is executed.
 

Seib

Member

hi guys.
is that possible that set the ranged attacker enemy-s to unable to shoot through on the wall or objects?
 
Calvin, I can say I'm already getting pretty advanced to the XAS system, do you want me to write some tutorials?
But then I have a question. I want to increase a variable when you hit an enemy, EG,
you hit 10, so your variable goes up by 5.
you hit 20, so your variable goes up by 10.
I can already make it so that if you use a tool, a variable is increased. But I dont want that because you can simply swing in the air to get that level higher :box:
 
@Mr. Smith - That'd be great, I appreciate all input, the thing I like about the site is we have people of all abilities contributing - sometimes we can forget how difficult is was to get a grasp of the basics because they're second nature to us now.

As for your query I'll have a think and PM you if I come up with anything. If you could write some tuts that'd be great :biggrin: just revise what's already been covered - look forward to seeing what you come up with.
 
@Mr_Smith
i don´t now what you exactly guess

but if you paste this script under XAS System

Code:
module XAS

DAMAGE_VARIABLES = 1

end

 

 

 

module XRXS_CharacterDamagePop

  def update

    super

    if @battler == nil

      return

    end

    if @battler != nil 

       @battler.hit_it -= 1 if @battler.hit_it != nil 

     end

    if @character.collapse_duration != nil

      if @character.collapse_duration > 0

        collapse

      end

      @_collapse_duration = @character.collapse_duration

    end

    @battler_visible = @character.battler_visible

    @battler_visible = true if @battler_visible == nil

    if @battler.damage_pop

       if XAS_ABS_SETUP::DAMAGE_POP == true

       unless XAS_BA_ENEMY::ITEM_ENEMY.include?(@battler.id) or

              @battler.no_damage == true

       variables = XAS::DAMAGE_VARIABLES

       $game_variables[variables] = @battler.damage

       if $xrxs["xas_damage_pop"] == true       

       damage(@battler.damage, @battler.critical,@battler.state,@battler.item)

       else

       damage(@battler.damage, @battler.critical)

       end

       end

       end       

       @battler.damage = nil

       @battler.critical = false

       @battler.damage_pop = false

       if $xrxs["xas_damage_pop"] == true 

       @battler.state = false

       @battler.item = false

       end

    end    

    unless @battler_visible

      if not @battler.hidden and not @battler.dead? and

         (@battler.damage == nil or @battler.damage_pop)

        appear

        @battler_visible = true

      end

    end

    if @battler_visible

      if @battler.damage == nil and @battler.dead?

        if @battler.is_a?(Game_Enemy)

          $game_system.se_play($data_system.enemy_collapse_se) if not XAS_BA_ENEMY::ITEM_ENEMY.include?(@battler.id) 

        else

          $game_system.se_play($data_system.actor_collapse_se)

        end

        collapse

        @battler_visible = false

      end

    else

      if @_collapse_duration > 0

        @_collapse_duration -= 1

         if @battler.is_a?(Game_Enemy) and

            XAS_BA_ENEMY::ITEM_ENEMY.include?(@battler.id) 

            @character.opacity = 0

         else

         @character.opacity = 256 - (70 - @_collapse_duration) * 3

         if @battler.is_a?(Game_Enemy) and 

             XAS_BA_ENEMY::COLLAPSE_ZOOM_A.include?(@battler.id) 

             self.zoom_x -= 0.02

             self.zoom_y += 0.2 

          elsif @battler.is_a?(Game_Enemy) and 

             XAS_BA_ENEMY::COLLAPSE_ZOOM_B.include?(@battler.id) 

             self.zoom_x += 0.05

             self.zoom_y -= 0.02              

          elsif @battler.is_a?(Game_Enemy) and 

             XAS_BA_ENEMY::COLLAPSE_ZOOM_C.include?(@battler.id)          

             self.zoom_x += 0.05

             self.zoom_y += 0.05  

          elsif @battler.is_a?(Game_Enemy) and 

             XAS_BA_ENEMY::COLLAPSE_ZOOM_D.include?(@battler.id)          

             self.zoom_x -= 0.01

             self.zoom_y -= 0.01  

          elsif @battler.is_a?(Game_Enemy) and 

             XAS_BA_ENEMY::COLLAPSE_ZOOM_E.include?(@battler.id)          

            if @_collapse_duration > 30

             self.zoom_x += 0.04

             self.zoom_y -= 0.02   

            else 

             self.zoom_x -= 0.1

             self.zoom_y += 0.5              

            end                    

         end    

         end

        if @_collapse_duration == 0

           @character.collapse_done = true

        end

      end

    end

    @character.collapse_duration = @_collapse_duration

    @character.battler_visible   = @battler_visible

  end

end

class Sprite_Character < RPG::Sprite

  include XRXS_CharacterDamagePop

end

become the variables in de module XAS the damage of you last hit

sorry for the bad english
 
So if I use that script, the last hit of your character becomes variable 1? That might be the exact thing I need, as if it becomes a variable I have enough to calculate some xp thingys.
 
Great script Hackel, though its worth noting it gives you the last hit made by the player OR the enemy OR anything you use the damage pop facility for including items :sad: - if I understand Mr. Smith correctly he just wants the player's hit stored and if its over 10 to cause 5 more damage to the enemy and 10 if its more than 20 etc.

@Mr. Smith - I've already wrote a how to create an enemy tutorial (http://blogs.myspace.com/index.cfm?fuse ... =465443275) , but I didn't go into much detail about the movements you can set before and after the sensor is activated so if you want to concentrate on that aspect that'd be most useful :wink:
 
Calvin, the script Hackel provided is great. If it stores the hit from the player in a variable, it's what I needed as I can do calculations from that point on. I just store a formula behind it, and that'll give an answer I can give to a variable. It has nothing to do with extra damage:P
 
Just be careful because it stores all damage pops - i.e. when the enemy hits you and if you pick up a potion it'll store "1 x Potion" as the variable which will be no good to you if you're using it for calculations.
 
if think i fixed it

Code:
module XAS

DAMAGE_VARIABLES = 1

end

 

 

 

module XRXS_CharacterDamagePop

  def update

    super

    if @battler == nil

      return

    end

    if @battler != nil 

       @battler.hit_it -= 1 if @battler.hit_it != nil 

     end

    if @character.collapse_duration != nil

      if @character.collapse_duration > 0

        collapse

      end

      @_collapse_duration = @character.collapse_duration

    end

    @battler_visible = @character.battler_visible

    @battler_visible = true if @battler_visible == nil

    if @battler.damage_pop

       if XAS_ABS_SETUP::DAMAGE_POP == true

       unless XAS_BA_ENEMY::ITEM_ENEMY.include?(@battler.id) or

              @battler.no_damage == true

       variables = XAS::DAMAGE_VARIABLES

       if @battler.damage.is_a?(Numeric)

         if  @battler.damage > 0

         unless @battler.is_a?(Game_Actor)

       $game_variables[variables] = @battler.damage

       end

       end

       end

       if $xrxs["xas_damage_pop"] == true       

       damage(@battler.damage, @battler.critical,@battler.state,@battler.item)

       else

       damage(@battler.damage, @battler.critical)

       end

       end

       end       

       @battler.damage = nil

       @battler.critical = false

       @battler.damage_pop = false

       if $xrxs["xas_damage_pop"] == true 

       @battler.state = false

       @battler.item = false

       end

    end    

    unless @battler_visible

      if not @battler.hidden and not @battler.dead? and

         (@battler.damage == nil or @battler.damage_pop)

        appear

        @battler_visible = true

      end

    end

    if @battler_visible

      if @battler.damage == nil and @battler.dead?

        if @battler.is_a?(Game_Enemy)

          $game_system.se_play($data_system.enemy_collapse_se) if not XAS_BA_ENEMY::ITEM_ENEMY.include?(@battler.id) 

        else

          $game_system.se_play($data_system.actor_collapse_se)

        end

        collapse

        @battler_visible = false

      end

    else

      if @_collapse_duration > 0

        @_collapse_duration -= 1

         if @battler.is_a?(Game_Enemy) and

            XAS_BA_ENEMY::ITEM_ENEMY.include?(@battler.id) 

            @character.opacity = 0

         else

         @character.opacity = 256 - (70 - @_collapse_duration) * 3

         if @battler.is_a?(Game_Enemy) and 

             XAS_BA_ENEMY::COLLAPSE_ZOOM_A.include?(@battler.id) 

             self.zoom_x -= 0.02

             self.zoom_y += 0.2 

          elsif @battler.is_a?(Game_Enemy) and 

             XAS_BA_ENEMY::COLLAPSE_ZOOM_B.include?(@battler.id) 

             self.zoom_x += 0.05

             self.zoom_y -= 0.02              

          elsif @battler.is_a?(Game_Enemy) and 

             XAS_BA_ENEMY::COLLAPSE_ZOOM_C.include?(@battler.id)          

             self.zoom_x += 0.05

             self.zoom_y += 0.05  

          elsif @battler.is_a?(Game_Enemy) and 

             XAS_BA_ENEMY::COLLAPSE_ZOOM_D.include?(@battler.id)          

             self.zoom_x -= 0.01

             self.zoom_y -= 0.01  

          elsif @battler.is_a?(Game_Enemy) and 

             XAS_BA_ENEMY::COLLAPSE_ZOOM_E.include?(@battler.id)          

            if @_collapse_duration > 30

             self.zoom_x += 0.04

             self.zoom_y -= 0.02   

            else 

             self.zoom_x -= 0.1

             self.zoom_y += 0.5              

            end                    

         end    

         end

        if @_collapse_duration == 0

           @character.collapse_done = true

        end

      end

    end

    @character.collapse_duration = @_collapse_duration

    @character.battler_visible   = @battler_visible

  end

end

class Sprite_Character < RPG::Sprite

  include XRXS_CharacterDamagePop

end

@calvin624
can you delete this line from my script?

Code:
$game_variables[1] = drops

i used it for debugging
 
@Hackel - I've just checked the revised script, unfortunately its doing the same thing.

@Mr. Smith - Yeah, it saves the last action whether it be a weapon you've gained, an item you've picked up, the attack performed on you by an enemy or the attack you've made on an enemy.
 
calvin624":1iqaq3h1 said:
@Mr. Smith - Yeah, it saves the last action whether it be a weapon you've gained, an item you've picked up, the attack performed on you by an enemy or the attack you've made on an enemy.

no now it only save the damage and this is what Mr_Smith needed
 
Quick apology to Hackel, I just tried your script in a new XAS project and it works as advertised :biggrin: - for some reason it was storing all damage pop ups in my own project where I tested it initially (I've sinced moved the script just above "Main" apposed to under "XAS SYSTEM" and its working a treat :lol: )

Sorry once again.
 

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