Jump to content
Vlue

Weapon/Armor Randomization

Recommended Posts

Edit: I was struggling to figure out the script. I took a better look at the demo and figured it out. Really good work!

Edited by 7heHopeMan
  • Like 1

Share this post


Link to post
Share on other sites

Items generated by the script take their name, but none of the properties. You don't need to look further than your own demo.

 

Iron Hand Ax of Defense is supposed to boost attack(iron) and defense(of defense) - but it does nothing for the character. Might want to check everything over again.

 

Edit: stat boosts are applied to the weapon's stats that you set in the database, when they should be based off the character's total stats.. shouldn't they?

Edited by onikuma

Share this post


Link to post
Share on other sites

If you want the user's stats in general to be affected than you have to add that under the weapons features.

 

For Example:

 

10 => { :name => " of Vitality", 
                    :features => [[21,0,1.25]] },
 
This adds an overall parameter buff of your hp by 125%
 
Yes though, if you just add :ShpP => 10 it will only add 10% of the items total given HP.
 
To affect your overall stats use :features =>
 
To affect the items over stats use :Shp, Smp, etc, etc.... etc...
 
Edit: Also, i want to add, its a hard to implement script (was hard to learn for me). But very, very, very, very........ very nice one if it does get implemented. I think this script alone has added sooooo much to my game.
Edited by 7heHopeMan
  • Like 1

Share this post


Link to post
Share on other sites

Is it possible to make a prefix/suffix that doesn't affect the naming of the item? I would like the rarity to be displayed only by color, while the prefix denotes material and suffix denotes state inducer.

Share this post


Link to post
Share on other sites

If you don't specify a name in an affix then it won't edit the name of an item.

Share this post


Link to post
Share on other sites

Sorry, I missworded my question. Is there a way to use all three at once? The material type and rarity override eachother. Also, I'm using Eshra's Upgradable Items, and everytime i upgrade a randomized weapon, the name defaults to the base name. The randomized atributes seem to stay, so i'm not worried about that, but if there's a fix that'd be awesome.

Share this post


Link to post
Share on other sites

Is there no way to set a negative bonus on a weapon without affecting the character parameters?

for example, a weapon has 10 atk normally, however when the weapon has the affix "Rusted" at the start of it, it has 5 atk removed from the original value

I've tried doing :Satk => -5, but the game crashes before getting to the title screen.

 

Edit: Nevermind, I had it right all along, god knows why it didn't work when I first tried it

Edited by ChrisCtrl

Share this post


Link to post
Share on other sites

Hi Vlue,

 

Thanks for the script, it is one of my favorites.  I am, however, having a hard time getting the random enemy drops to work with any battle result scripts.  Specifically, Moghunters Battle Result (V1.7) or Yanfly's Victory Aftermath.  Only the base weapons are being dropped.

 

Any assistance on this would be awesome.

 

Thanks!

Share this post


Link to post
Share on other sites

If you could link one of the scripts I can take a look.

Share this post


Link to post
Share on other sites

No idea if you got the answer for your question, but for making enemies drop random items in Yanfly's Victory Aftermath, I did this:

 

 

module BattleManager
  #--------------------------------------------------------------------------
  # overwrite method: self.skip_aftermath - !!UPDATED!!
  #--------------------------------------------------------------------------
  def self.skip_aftermath
    $game_party.all_members.each do |actor|
      actor.gain_exp($game_troop.exp_total)
    end
    $game_party.gain_gold($game_troop.gold_total)
    $game_troop.make_drop_items.each do |item|
      if $imported[:Vlue_WARandom] && RANDOM_ENEMY_DROPS 
        if item.is_a?(RPG::Weapon)
          item = $game_party.add_weapon(item.id, 1)
        elsif item.is_a?(RPG::Armor)
          item = $game_party.add_armor(item.id, 1)
        else
          $game_party.gain_item(item, 1)
        end
      else
        $game_party.gain_item(item, 1)
      end
    end
    close_windows
    SceneManager.return
    replay_bgm_and_bgs
    battle_end(0)
  end
  #--------------------------------------------------------------------------
  # overwrite method: self.gain_drop_items - !!UPDATED!!
  #--------------------------------------------------------------------------
  def self.gain_drop_items
    drops = []
    $game_troop.make_drop_items.each do |item|
      if $imported[:Vlue_WARandom] && RANDOM_ENEMY_DROPS 
        if item.is_a?(RPG::Weapon)
          item = $game_party.add_weapon(item.id, 1)
        elsif item.is_a?(RPG::Armor)
          item = $game_party.add_armor(item.id, 1)
        else
          $game_party.gain_item(item, 1)
        end
      else
        $game_party.gain_item(item, 1)
      end
      drops.push(item)
    end
    SceneManager.scene.show_victory_spoils($game_troop.gold_total, drops)
    set_victory_text(@victory_actor, :drops)
    wait_for_message
  end
end

 

 

I imagine the same could be done with Moghunter's, so try putting this right below his Battle Result script:

 

class Window_Treasure < Window_Base 
  #--------------------------------------------------------------------------
  # overwrite method: draw_treasure - !!UPDATED!!
  #--------------------------------------------------------------------------
  def draw_treasure
    contents.clear
    space_x = Graphics.width / 3
    $game_troop.make_drop_items.each_with_index do |item, index|
      xi = (index * space_x) - ((index / 3) * (space_x * 3))        
      yi = (index / 3) * 32
      if $imported[:Vlue_WARandom] && RANDOM_ENEMY_DROPS 
        if item.is_a?(RPG::Weapon)
          item = $game_party.add_weapon(item.id, 1)
        elsif item.is_a?(RPG::Armor)
          item = $game_party.add_armor(item.id, 1)
        else
          $game_party.gain_item(item, 1)
          # or item = $game_party.add_item(item.id, 1) # if you want regular items randomized too
        end
      else
        $game_party.gain_item(item, 1)
      end
      draw_item_name(item,xi, yi, true, 140)
    end
    @range_max = ($game_troop.make_drop_items.size / 3) * 32
    @scroll = true if $game_troop.make_drop_items.size > 12
  end  
end

 

 

No idea how it displays the item names like that thou.

And note that this won't randomize regular items, only weapons and armors.

You can change that easily if you need, read the comment made in the snippet.

 

And you also need to comment out these lines in Vlue's script:

 

  module BattleManager
    def self.gain_drop_items
      $game_troop.make_drop_items.each do |item|
        if RANDOM_ENEMY_DROPS
          if item.is_a?(RPG::Weapon)
            item = $game_party.add_weapon(item.id, 1)
          elsif item.is_a?(RPG::Armor)
            item = $game_party.add_armor(item.id, 1)
          else
            $game_party.gain_item(item, 1)
          end
        else
          $game_party.gain_item(item, 1)
        end
        $game_message.add(sprintf(Vocab::ObtainItem, item.name))
      end
      wait_for_message
    end
  end

 

 

I will just leave it here if anyone else needs this. :)

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.

×
Top ArrowTop Arrow Highlighted