RMXP script issue - can't use skills on menu

Status
Not open for further replies.

Qeo

Veteran
Veteran
Joined
Jan 12, 2014
Messages
112
Reaction score
24
Primarily Uses
I'm trying to finish an old RMXP game, but I found out I can't use any skills in the menu. Seems to be a script compatibility issue.

I'm using:

Scene Password
Wordlock Chest
Mog Scene Menu
Mog Scene Item
Mog Scene Skill
Mog Scene Equip
Mog Scene Status
Mog Scene Shop
Mog Treasure Name
Limit Break (DVV)
HP/MP/ATB (Seph Slant)
Game Party
Timed_Hit Data
Timed_Hit Functions
Timed Hit 1
Timed Hit 2
Timed Hit Bar
Triple Triad XP
Mog Scene Story
Dynamic Lights
Scrolling Panorama
Icy Floors
Reflection

Any help would be appreciated.
 

slimmmeiske2

Little Red Riding Hood
Global Mod
Joined
Sep 6, 2012
Messages
7,867
Reaction score
5,240
First Language
Dutch
Primarily Uses
RMXP
I assume you've checked if you set them up correctly in the database?

Have you tried removing a script one by one to see which one is causing this?

Edit: Might also be helpful to link to them.
 

Qeo

Veteran
Veteran
Joined
Jan 12, 2014
Messages
112
Reaction score
24
Primarily Uses
I assume you've checked if you set them up correctly in the database?

Have you tried removing a script one by one to see which one is causing this?

Edit: Might also be helpful to link to them.
Thanks for responding. I have, they're set to "occasion: always"

I've tried removing each one that has any connection to skill use. I would link them, but I forgot where they are as I got them a very long time ago.

I can select them, but can't actually use them. It's as if the skill menu thinks I have full HP and MP when I don't.
 

MobiusXVI

Game Maker
Veteran
Joined
Mar 20, 2013
Messages
383
Reaction score
91
First Language
English
Primarily Uses
I've tried removing each one that has any connection to skill use. I would link them, but I forgot where they are as I got them a very long time ago.
Go through your scripts and do a search - CTRL+F - for the term "Scene_Skill" (without quotes). That will tell you which ones you should test by removing. There might be more than you think.

Without links to the scripts, there's very little troubleshooting I can do from here. Without being able to inspect the scripts, I can't tell you might be causing the issue.
 

DerVVulfman

Resident Werewolf
Veteran
Joined
Jun 26, 2012
Messages
315
Reaction score
155
First Language
English
Primarily Uses
RMXP
Well, we can eliminate MOST of the Moghunter menus... just not Scene_Skill per say. Er, which one? Original or my rewrite of his system?
And of mine, is that the more recent one I just updated after all these years?
Zephren's Timed Hits? Nice choice. Should work no problem. Unless you're using ParaDog's battlesystem. Then you'd need a bit of patching. Pity I lost it. :p
Sounds like one of my old projects.

You should be able to eliminate all the graphics scripts by Rataime and Near Fantastica. And no way can Triple Triad be the culprit. Ya have Seph's card game too? Haha.. sweet.

It does seem odd. They should work fine. While I didn't have Wordlock, Mog's Treasure and Scene_Password, they all worked fine for me.

If ALL ELSE fails, make a COPY of your project.... and start deleting systems one-by-one. Each time you delete, check to see if Menu Skills begin functioning again. Once you see them working in your menu... that's the culprit.
 
Last edited:

Qeo

Veteran
Veteran
Joined
Jan 12, 2014
Messages
112
Reaction score
24
Primarily Uses
Go through your scripts and do a search - CTRL+F - for the term "Scene_Skill" (without quotes). That will tell you which ones you should test by removing. There might be more than you think.

Without links to the scripts, there's very little troubleshooting I can do from here. Without being able to inspect the scripts, I can't tell you might be causing the issue.
I deleted the ones with anything to do with skills mentioned and the problem still remained - I'm beginning to think it's not these added scripts, but the fact that my game was built on top of Behemoth's metroid script [so I can use it as a minigame) - his scripts are in the middle of the main scripts instead of at the bottom, so I feel like he may have changed some of the scripts.

Well, we can eliminate MOST of the Moghunter menus... just not Scene_Skill per say. Er, which one? Original or my rewrite of his system?
And of mine, is that the more recent one I just updated after all these years?
Zephren's Timed Hits? Nice choice. Should work no problem. Unless you're using ParaDog's battlesystem. Then you'd need a bit of patching. Pity I lost it. :p
Sounds like one of my old projects.

You should be able to eliminate all the graphics scripts by Rataime and Near Fantastica. And no way can Triple Triad be the culprit. Ya have Seph's card game too? Haha.. sweet.

It does seem odd. They should work fine. While I didn't have Wordlock, Mog's Treasure and Scene_Password, they all worked fine for me.

If ALL ELSE fails, make a COPY of your project.... and start deleting systems one-by-one. Each time you delete, check to see if Menu Skills begin functioning again. Once you see them working in your menu... that's the culprit.
Hey nice seeing you again, I remember you helped me years ago with your limit break script. It's your rewritten one.

I've tried the copying and deleting method but now that I realize the problem may be Behemoth's metroid script, which may have changed different parts of old existing scripts and I don't know which ones.

The ones that are there are game_options, game_framedata, game_character4, game_shotman, game_shot, and sprite shot. None of them affect anything related to skills. I checked Scene_Skill and looks unchanged from the regular Scene_Skill in another project.
 
Last edited:

Qeo

Veteran
Veteran
Joined
Jan 12, 2014
Messages
112
Reaction score
24
Primarily Uses
I found the problem script "Timed Hit 1", but I still want to use it.

How should I edit this script so that it won't cause this issue?

class Game_Battler
attr_accessor :timed_hit_hit_percent
attr_accessor :timed_hit_use_percent
attr_accessor :timed_hit_state_to_add

alias timed_hit_attack_effect attack_effect
def attack_effect(attacker)
if @timed_hit_use_percent
hp = self.hp

timed_hit_attack_effect(attacker)

if self.damage.is_a?(Numeric)
self.hp = hp
self.damage = Integer((@timed_hit_hit_percent * self.damage) / 100.0)
self.hp -= Integer(self.damage)
if @timed_hit_state_to_add != nil
self.add_state(@timed_hit_state_to_add)
end
end
elsif attacker.is_a?(Game_Enemy)
timed_hit_attack_effect(attacker)
end

@timed_hit_use_percent = false
@timed_hit_state_to_add = nil
end

alias timed_hit_skill_effect skill_effect
def skill_effect(user, skill)
if @timed_hit_use_percent
hp = self.hp

timed_hit_skill_effect(user, skill)

if self.damage.is_a?(Numeric)
self.hp = hp
self.damage = Integer((@timed_hit_hit_percent * self.damage) / 100.0)
self.hp -= Integer(self.damage)
end
elsif user.is_a?(Game_Enemy)
timed_hit_skill_effect(user, skill)
end

@timed_hit_use_percent = false
end
end

#--------------------------------------------------------------------------
# Game_Actor
#--------------------------------------------------------------------------
class Game_Actor < Game_Battler
attr_reader :actor_id
end
 

DerVVulfman

Resident Werewolf
Veteran
Joined
Jun 26, 2012
Messages
315
Reaction score
155
First Language
English
Primarily Uses
RMXP
Gotcha TWO better. Two flaws in fact, one for each 'effect' method therein:

First, if you examine the attack_effect and skill_effect methods, they have a return value, be it either true or false. If false, some things do not get triggered by the system.... like the sound effects and updates when you heal someone. As such, methods now have something akin to:
effective = timed_hits_attack_effect(attacker)
This was 100% needed.

Second, the author apparently didn't account for skills in menus.... that's true. So any non-battle/non-timed-hits skills were made 'enemy-only'. Yeah, that too had to be fixed.

So... Here's a replacement:

Code:
#==============================================================================
# ** Game_Battler
#------------------------------------------------------------------------------
#  This class deals with battlers. It's used as a superclass for the Game_Actor
#  and Game_Enemy classes.
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # * Alias Listings
  #-------------------------------------------------------------------------- 
  alias timed_hit_attack_effect attack_effect
  alias timed_hit_skill_effect skill_effect
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :timed_hit_hit_percent
  attr_accessor :timed_hit_use_percent
  attr_accessor :timed_hit_state_to_add
  #--------------------------------------------------------------------------
  # * Applying Normal Attack Effects
  #     attacker : battler
  #--------------------------------------------------------------------------
  def attack_effect(attacker)    
    effective = false
    # If part of Timed Hits
    if @timed_hit_use_percent
      hp = self.hp
      # Perform the original call and get effective
      effective = timed_hit_attack_effect(attacker)
      if self.damage != "Miss"
        self.hp = hp
        self.damage = Integer((@timed_hit_hit_percent * self.damage) / 100.0)
        self.hp -= Integer(self.damage)
        if @timed_hit_state_to_add != nil
          self.add_state(@timed_hit_state_to_add)
        end
      end
    # If not part of Timed Hits
    else
      # Perform the original call and get effective
      effective = timed_hit_attack_effect(attacker)
    end
    @timed_hit_use_percent  = false
    @timed_hit_state_to_add = nil
    return effective
  end
  #--------------------------------------------------------------------------
  # * Apply Skill Effects
  #     user  : the one using skills (battler)
  #     skill : skill
  #--------------------------------------------------------------------------
  def skill_effect(user, skill)
    effective = false
    # If part of Timed Hits
    if @timed_hit_use_percent
      hp = self.hp
      # Perform the original call and get effective
      effective = timed_hit_skill_effect(user, skill)
      if self.damage != "Miss"
        self.hp = hp
        self.damage = Integer((@timed_hit_hit_percent * self.damage) / 100.0)
        self.hp -= Integer(self.damage)
      end
    # If not part of Timed Hits
    else
      # Perform the original call and get effective
      effective = timed_hit_skill_effect(user, skill)
    end
    @timed_hit_use_percent = false
    return effective
  end
end



#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles the actor. It's used within the Game_Actors class
#  ($game_actors) and refers to the Game_Party class ($game_party).
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader   :actor_id
end
Yeah, I like things in a classic format. :p
 

Qeo

Veteran
Veteran
Joined
Jan 12, 2014
Messages
112
Reaction score
24
Primarily Uses
Gotcha TWO better. Two flaws in fact, one for each 'effect' method therein:

First, if you examine the attack_effect and skill_effect methods, they have a return value, be it either true or false. If false, some things do not get triggered by the system.... like the sound effects and updates when you heal someone. As such, methods now have something akin to:
effective = timed_hits_attack_effect(attacker)
This was 100% needed.

Second, the author apparently didn't account for skills in menus.... that's true. So any non-battle/non-timed-hits skills were made 'enemy-only'. Yeah, that too had to be fixed.

So... Here's a replacement:

Code:
#==============================================================================
# ** Game_Battler
#------------------------------------------------------------------------------
#  This class deals with battlers. It's used as a superclass for the Game_Actor
#  and Game_Enemy classes.
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # * Alias Listings
  #--------------------------------------------------------------------------
  alias timed_hit_attack_effect attack_effect
  alias timed_hit_skill_effect skill_effect
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :timed_hit_hit_percent
  attr_accessor :timed_hit_use_percent
  attr_accessor :timed_hit_state_to_add
  #--------------------------------------------------------------------------
  # * Applying Normal Attack Effects
  #     attacker : battler
  #--------------------------------------------------------------------------
  def attack_effect(attacker)   
    effective = false
    # If part of Timed Hits
    if @timed_hit_use_percent
      hp = self.hp
      # Perform the original call and get effective
      effective = timed_hit_attack_effect(attacker)
      if self.damage != "Miss"
        self.hp = hp
        self.damage = Integer((@timed_hit_hit_percent * self.damage) / 100.0)
        self.hp -= Integer(self.damage)
        if @timed_hit_state_to_add != nil
          self.add_state(@timed_hit_state_to_add)
        end
      end
    # If not part of Timed Hits
    else
      # Perform the original call and get effective
      effective = timed_hit_attack_effect(attacker)
    end
    @timed_hit_use_percent  = false
    @timed_hit_state_to_add = nil
    return effective
  end
  #--------------------------------------------------------------------------
  # * Apply Skill Effects
  #     user  : the one using skills (battler)
  #     skill : skill
  #--------------------------------------------------------------------------
  def skill_effect(user, skill)
    effective = false
    # If part of Timed Hits
    if @timed_hit_use_percent
      hp = self.hp
      # Perform the original call and get effective
      effective = timed_hit_skill_effect(user, skill)
      if self.damage != "Miss"
        self.hp = hp
        self.damage = Integer((@timed_hit_hit_percent * self.damage) / 100.0)
        self.hp -= Integer(self.damage)
      end
    # If not part of Timed Hits
    else
      # Perform the original call and get effective
      effective = timed_hit_skill_effect(user, skill)
    end
    @timed_hit_use_percent = false
    return effective
  end
end



#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles the actor. It's used within the Game_Actors class
#  ($game_actors) and refers to the Game_Party class ($game_party).
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader   :actor_id
end
Yeah, I like things in a classic format. :p

Problem solved! Thank you for your help I really appreciate it :)
 

slimmmeiske2

Little Red Riding Hood
Global Mod
Joined
Sep 6, 2012
Messages
7,867
Reaction score
5,240
First Language
Dutch
Primarily Uses
RMXP

This thread is being closed, due to being solved. If for some reason you would like this thread re-opened, please report this post and leave a message why. Thank you.

 
Status
Not open for further replies.

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Day 9 of giveaways! 8 prizes today :D
He mad, but he cute :kaopride:

Our latest feature is an interview with... me?!

People4_2 (Capelet off and on) added!

Just beat the last of us 2 last night and starting jedi: fallen order right now, both use unreal engine & when I say i knew 80% of jedi's buttons right away because they were the same buttons as TLOU2 its ridiculous, even the same narrow hallway crawl and barely-made-it jump they do. Unreal Engine is just big budget RPG Maker the way they make games nearly identical at its core lol.

Forum statistics

Threads
106,040
Messages
1,018,472
Members
137,822
Latest member
madelbylz
Top