Jump to content
DP3

'Fire Emblem / Disgaea' Weapon System

Recommended Posts

I noticed that you asked for input on future versions:

 

Any chance you could make Ranks customizable? Instead of E thru S, we could make 1 thru 10, I thru X, etc etc etc.

 

Also, maybe make the bonus be for more than just ATK/DEF/MAT/MDF/AGI. Maybe add HIT/CRI/CNT bonuses as well, or just make that section customizable overall.

 

And what about adding compatibility for Armor would be great too!!!

 

Just my 2 cents! Awesome script, take care!

 

 

So, I began using your script and I have run into a pretty severe problem... If the number of weapons you have in your game exceeds the length of the menu scene, the rest get cut off -_-

 

I have 20 different weapons in my game but I can only see 12 of them...

Share this post


Link to post
Share on other sites

Open up your Script Editor.

Press Ctrl+Shift+F and search up: def create_oy_params

Double Click on the one which shows up next to this script.

 

In there you should see

@oy_finish = (90 + (25 * (WeaponAccumulation.size - do_not_equip_types.size)))
Which is a temporary hacky way of overcoming the problem. Anyway change the 90 to something higher like 120 until it works fine :) Edited by DP3

Share this post


Link to post
Share on other sites

Hello,

 

I was wondering if you could tell me where the section of the script is that draws the new stat values when equipping a weapon. For some reason, your script's ATK, DEF, MAT, MDF, and AGI upgrade text is slightly bigger than the standard game size text.

 

It ends up looking something like this:

MHP     x -> x

MMP    x -> x

ATK     x -> X

DEF    x -> X

MAT    x -> X

MDF    x -> X

AGI     x -> X

LUK    x -> x

 

The second X (New Value) is slightly bigger than the other x's. Just trying to fix it to make it look nicer.

 

Thanks!

Share this post


Link to post
Share on other sites

Search up:

draw_text(x, y, 32, line_height, new_value, 2)
That is the same as the default script so I will assume you have either modified the original script or used a custom script.

In either case that line needs to match the editted version.

Share this post


Link to post
Share on other sites

Whelp, I did the wrong thing.

 

Copy this below the Weapon Script and Change the Font Size:

#==============================================================================
# ** Window_EquipStatus
#------------------------------------------------------------------------------
#  This window displays actor parameter changes on the equipment screen.
#==============================================================================
 
class Window_EquipStatus < Window_Base
  
  # FONT SIZE
  WeaponSystemParamFontSize = 24
  
  #--------------------------------------------------------------------------
  # * Draw Post-Equipment Change Parameter
  #--------------------------------------------------------------------------
  def draw_new_param(x, y, param_id)
    bool1 = @temp_actor && @temp_actor.equips[@dp3_slot_id].is_a?(RPG::Weapon)
    bool2 = param_id > 1 && param_id < 7
    if bool1 && bool2
      font_size = contents.font.size
      contents.font.size = WeaponSystemParamFontSize
      
      # Get Weapon Types
      wType  = @actor.equips[@dp3_slot_id] && @actor.equips[@dp3_slot_id].is_a?(RPG::Weapon) ? @actor.equips[@dp3_slot_id].wtype_id : 0
      wType2 = @temp_actor.equips[@dp3_slot_id].wtype_id
      weapon_bonus_param = 0
     
      unless wType2 == wType || wType2 == DiamondandPlatinum3::WeaponLevels::get_opposing_weapon_slot_weapon_type( @actor.id, @dp3_slot_id )
        # Remove Negative Bonus Param from Temp Actor (AKA Current Actor Equipped Weapon)
        curr_skill = DiamondandPlatinum3::WeaponLevels::get_current_weapon_level( wType, @actor.id, @actor.dp3_weapon_level[wType - 1] )
        @temp_actor.dp3_decrement_param(param_id, DiamondandPlatinum3::WeaponLevels::get_bonus_param( wType, @actor.id, param_id - 2, curr_skill ))
       
        # Get Bonus Param (AKA New Weapon)
        curr_skill = DiamondandPlatinum3::WeaponLevels::get_current_weapon_level( wType2, @temp_actor.id, @temp_actor.dp3_weapon_level[wType2 - 1] )
        weapon_bonus_param = DiamondandPlatinum3::WeaponLevels::get_bonus_param( wType2, @temp_actor.id, param_id - 2, curr_skill )
      end
     
      # Apply Param
      new_value = (@temp_actor.param(param_id) + weapon_bonus_param)
      change_color(param_change_color(new_value - @actor.param(param_id)))
      draw_text(x, y, 32, line_height, new_value, 2)
     
      contents.font.size = font_size
    else      
      # Call Original Method
      dp3_weaplev_windowequipstatus_drawnewparam_0edku(x, y, param_id)
    end
  end
end

Share this post


Link to post
Share on other sites

Thanks! Works perfectly!

 

1 last question:

Is there a way for me to adjust where the Menu Command appears? Right now it's appearing under Formation, which feels a little out of place to me. I'd like it to appear above or below the Equipment Command. Is that possible?

Share this post


Link to post
Share on other sites

Put this below the Weapon System Script:

#==============================================================================
# ** Window_MenuCommand
#------------------------------------------------------------------------------
#  This command window appears on the menu screen.
#==============================================================================
 
class Window_MenuCommand < Window_Command
  #--------------------------------------------------------------------------
  # * For Adding Original Commands
  #--------------------------------------------------------------------------
  def add_original_commands
    for i in 0..(@list.size-1)
      if @list[i][:symbol] == :equip
        @list.insert(i+1, {:name=>DiamondandPlatinum3::WeaponLevels::Menu_Option_Title, :symbol=>:weapon_level_status_command, :enabled=>main_commands_enabled, :ext=>nil})
        break
      end
    end
    dp3_weaplev_winmenucommand_addorigcommd_0edku()
  end
end
Edited by DP3

Share this post


Link to post
Share on other sites

Hello DP3,

 

First of all, thanks for the great script! It has done wonders for my alternative skill learning.

 

I have 5 types of skills; Artes (Weapon Skills), Magic (spells, summons etc), Talent (class specific abilities), Passives (auto class specific abilities) and Limits (Overdrive ultimate that activates when 100 TP)

 

Thanks to your script it has allowed me to reward the player for using a certain weapon for x time, learning skills specific to the weapon.

 

I do have a question though, Like Disgaea (Prinnies ftw \m/), classes have different ranks in weapons ( if my memory serves me right, fighters had higher ranks in swords, but rank E in staffs) is there a way to do that in this script?

 

If not, this would be another great addition to your script.

 

Hope to here from you soon! Thanks so much!

Share this post


Link to post
Share on other sites

You could use the following in a script call:

toggle_weapon_level_message_display( on_or_off )
add_specific_weapon_type_skill_points( Actor_ID, WeaponType, Points )
toggle_weapon_level_message_display( on_or_off )
Example:

toggle_weapon_level_message_display( false )              # Turn Off The Level Up Display Box, so that this is done without the player being made aware of it.
add_specific_weapon_type_skill_points( 1, 4, 60 )         # Give Eric {Actor_ID = 1}(our soldier) an upgrade of 60 points towards the swords weapon type {WeaponeType = 4}, which will level up his rank by one.
toggle_weapon_level_message_display( true )               # Now Simply Turn Back on the Level Up Display Box, so that the player will see when they have leveled up their weapon rank on their own.
Edited by DP3

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×