| 
		
	
	
	
		
	Posts: 59Threads: 14
 Joined: Jun 2011
 
	
	
		can somone make this compatible with 777's multislot equip pls ?!
	 
	
	
	
		
	Posts: 59Threads: 14
 Joined: Jun 2011
 
	
	
		bump !
 pls DerVVulfman help me out it cant be much work !
 
 i got it bymyself so that it equip extra slots but only if theyre unique, that means if you have 2x Ring
 it doesnt work for the second one ...
 also the weapon slot 2 isnt get equiped...
 
 so pls pls pls help me out !!!
 
	
	
	
		
	Posts: 59Threads: 14
 Joined: Jun 2011
 
	
	
		sry for bumping again ...i need this so much !
 
	
	
	
		
	Posts: 11,566Threads: 672
 Joined: May 2009
 
	
	
		Split from RPG Advocate's thread as this is a request for a patch or merger between two separate scripts.
 Just tried.  DAMN hard.  Not the only one to try though.  I asked Guillaume about it years ago when he was developing his system.
 
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
  Above are clickable links 
	
	
	
		
	Posts: 59Threads: 14
 Joined: Jun 2011
 
	
	
		so its even for you to hard ?!
 damn !
 
	
	
	
		
	Posts: 11,566Threads: 672
 Joined: May 2009
 
	
	
		I didn't say it was impossible, did I? However, Guillaume777 said it would have been difficult to integrate it into his system. He did most all the other RPG Advocate equip menu scripts though. I was the one to remind him about cursed items.    
However, I crafted this. Mind you, it assumes no removal of slots... kept at a basic level:
 Code: # Automatic Equipment Optimization# by RPG Advocate
 
 
 #==============================================================================
 # ** Scene_Equip
 #------------------------------------------------------------------------------
 #  This class performs equipment screen processing.
 #==============================================================================
 
 class Scene_Equip
 #--------------------------------------------------------------------------
 # * Constants
 #--------------------------------------------------------------------------
 WEAPON_ATK_WEIGHT = 1.0
 WEAPON_PDF_WEIGHT = 0.0
 WEAPON_MDF_WEIGHT = 0.0
 WEAPON_STR_WEIGHT = 0.0
 WEAPON_DEX_WEIGHT = 0.0
 WEAPON_AGI_WEIGHT = 0.0
 WEAPON_INT_WEIGHT = 0.0
 ARMOR_EVA_WEIGHT  = 0.0
 ARMOR_PDF_WEIGHT  = 0.75
 ARMOR_MDF_WEIGHT  = 0.25
 ARMOR_STR_WEIGHT  = 0.0
 ARMOR_DEX_WEIGHT  = 0.0
 ARMOR_AGI_WEIGHT  = 0.0
 ARMOR_INT_WEIGHT  = 0.0
 NO_ACCESSORY_OPTIMIZATION = false
 #--------------------------------------------------------------------------
 # * Frame Update (when right window is active)
 #--------------------------------------------------------------------------
 alias aeo_update_right update_right
 def update_right
 # Perform the original call
 aeo_update_right
 # If X button was pressed
 if Input.trigger?(Input::X)
 # Play decision SE
 $game_system.se_play($data_system.decision_se)
 # optimize
 optimize(@right_window.index)
 # Refresh windows
 @left_window.refresh
 @right_window.refresh
 for i in 0..@actor.armor_slots.max+1
 @item_windows[i].refresh
 end
 return
 end
 # If Y button was pressed
 if Input.trigger?(Input::Y)
 # Play decision SE
 $game_system.se_play($data_system.decision_se)
 for i in 0..@actor.armor_slots.max+1
 optimize(i)
 end
 @left_window.refresh
 @right_window.refresh
 for i in 0..@actor.armor_slots.max+1
 @item_windows[i].refresh
 end
 return
 end
 end
 #--------------------------------------------------------------------------
 # * Optimize Equipment
 #     slot : equipment slot
 #--------------------------------------------------------------------------
 def optimize(slot)
 old_slot = slot
 slot = index_to_equip_kind(old_slot)
 if slot == 0
 
 return if @actor.cursed?(slot)
 object = $data_weapons[@actor.weapon_id]
 optimal = object.id
 current = 0.00
 if @actor.weapon_id != 0
 current += object.atk  * WEAPON_ATK_WEIGHT
 current += object.pdef * WEAPON_PDF_WEIGHT
 current += object.mdef * WEAPON_MDF_WEIGHT
 current += object.str_plus * WEAPON_STR_WEIGHT
 current += object.dex_plus * WEAPON_DEX_WEIGHT
 current += object.agi_plus * WEAPON_AGI_WEIGHT
 current += object.int_plus * WEAPON_INT_WEIGHT
 else
 optimal = 0
 end
 max_eval = current
 @actor.equip(0, 0)
 flag = false
 zero_flag = true
 for weapon in $data_weapons
 if !flag
 flag = true
 next
 end
 evaluation = 0.00
 evaluation += weapon.atk  * WEAPON_ATK_WEIGHT
 evaluation += weapon.pdef * WEAPON_PDF_WEIGHT
 evaluation += weapon.mdef * WEAPON_MDF_WEIGHT
 evaluation += weapon.str_plus * WEAPON_STR_WEIGHT
 evaluation += weapon.dex_plus * WEAPON_DEX_WEIGHT
 evaluation += weapon.agi_plus * WEAPON_AGI_WEIGHT
 evaluation += weapon.int_plus * WEAPON_INT_WEIGHT
 if evaluation > 0
 zero_flag = false
 end
 if @actor.equippable?(weapon) &&
 $game_party.weapon_number(weapon.id) > 0 && evaluation > max_eval
 max_eval = evaluation
 optimal = weapon.id
 end
 end
 optimal = 0 if zero_flag
 @actor.equip(0, optimal)
 # If two-handed weapon
 @actor.equip(1, 0) if object.nb_hands > 1
 
 
 
 end
 # if armor slots.....
 if slot >= 1
 not_equipped = false
 case slot
 when 1
 # Skip Shield slot if two-handed...
 object = $data_weapons[@actor.weapon_id]
 return if object.nb_hands > 1
 if @actor.armor1_id == 0
 not_equipped = true
 else
 object = $data_armors[@actor.armor1_id]
 end
 when 2
 if @actor.armor2_id == 0
 not_equipped = true
 else
 object = $data_armors[@actor.armor2_id]
 end
 when 3
 if @actor.armor3_id == 0
 not_equipped = true
 else
 object = $data_armors[@actor.armor3_id]
 end
 when 4
 if NO_ACCESSORY_OPTIMIZATION
 return
 end
 if @actor.armor4_id == 0
 not_equipped = true
 else
 object = $data_armors[@actor.armor4_id]
 end
 end
 optimal = object.id
 # Skip if cursed and unremovable
 return if @actor.cursed?(optimal)
 # Calculate
 current = 0.00
 if not_equipped = false
 current += object.eva  * ARMOR_EVA_WEIGHT
 current += object.pdef * ARMOR_PDF_WEIGHT
 current += object.mdef * ARMOR_MDF_WEIGHT
 current += object.str_plus * ARMOR_STR_WEIGHT
 current += object.dex_plus * ARMOR_DEX_WEIGHT
 current += object.agi_plus * ARMOR_AGI_WEIGHT
 current += object.int_plus * ARMOR_INT_WEIGHT
 else
 optimal = 0
 end
 max_eval = current
 @actor.equip(slot, 0)
 flag = false
 zero_flag = true
 for armor in $data_armors
 if !flag
 flag = true
 next
 end
 next if armor.kind != slot-1
 # Calculate
 evaluation = 0.00
 evaluation += armor.eva  * ARMOR_EVA_WEIGHT
 evaluation += armor.pdef * ARMOR_PDF_WEIGHT
 evaluation += armor.mdef * ARMOR_MDF_WEIGHT
 evaluation += armor.str_plus * ARMOR_STR_WEIGHT
 evaluation += armor.dex_plus * ARMOR_DEX_WEIGHT
 evaluation += armor.agi_plus * ARMOR_AGI_WEIGHT
 evaluation += armor.int_plus * ARMOR_INT_WEIGHT
 #
 zero_flag = false if evaluation > 0
 #
 if @actor.equippable?(armor) &&
 $game_party.armor_number(armor.id) > 0 && evaluation > max_eval
 max_eval = evaluation
 optimal = armor.id
 end
 end
 #
 optimal = 0 if zero_flag
 @actor.equip(slot, optimal)
 end
 end
 end
Even though I use my own system nowadays.
	
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
  Above are clickable links 
	
	
	
		
	Posts: 59Threads: 14
 Joined: Jun 2011
 
	
	
		thx alot !but what means " it assumes no removal of slots" ??
 can i not change slots during class change like [0,0,2,3,4,5,6,6,7,7,8] to [0,2,3,4,5,6,6,7,7,8] ?!
 
	
	
	
		
	Posts: 11,566Threads: 672
 Joined: May 2009
 
	
	
		Well, I don't know anything about that.  After your response, I turned on Guillaume777's system and did a class change call and didn't get the message.  Oh... a new version of the above in the works.  That's a prelim job.  The 2nd will deal with multiple weapon slots and variations on the armor such as having two helmet slots, removed shields and the like.
 Mind you, I haven't messed with his system in over a year.
 
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
  Above are clickable links 
	
	
	
		
	Posts: 59Threads: 14
 Joined: Jun 2011
 
	
	
		woah cool ! 
thats exactly that what i meant ^^ 
i call at class change a method which sets the slots for every class new. 
like warriors has 2 hands and all armor slots, mages have only one weapon slot and all armor slots and knights have 1 hand, the shield slot and all armor slots. 
also i have multiple slot types like earrings and rings, you can equip 2 of each kind... 
thats why i need this and you really do this ?! 
awsome, really awsome !    
edit: if its not to much work, can you maybe add a switch to enable desable the key methods, 
and use only a script call for optimizing. 
this method must check the actors weapons/armor slots and optimize only those which the actor at the moment have. 
this would be a nice addition, maybe not only for me...
	 
	
	
	
		
	Posts: 11,566Threads: 672
 Joined: May 2009
 
	
	
		Thankies!  I just posted a separate thread for the Guillaume version of the system.  Probably the closest you're gonna get.  
 I don't mess with changing slots by classes.  Didn't know you could do that.  I deal with them by actors.  Less headache I guess.  That and I don't get that error.
 
 Now about disabling it and making automated script calls, the optimization is run straight from the Equipment Menu.  So there's no 'calling' the optimzation method.
 
 But... at least it handles the multiple weapons and even the dumb things like two HEAD slots.   Cursed thingies too.
 
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
  Above are clickable links |