RMRK RPG Maker Creation => XP => XP Scripts Database => Topic started by: DaniAngione on April 16, 2010, 03:35:43 PM
Title: [XP] Tidloc's Item Weight 2.1
Post by: DaniAngione on April 16, 2010, 03:35:43 PM
Well, I've been working on a XP project for some time now and I've been collecting lots (I mean LOTS) of scripts around the internet and I must say that I found some really good ones here :) You guys are great... Well, that's why I felt kinda guilty for leeching all the scripts here... So to not feel guilty anymore I thought I should at least contribute a little ;D (Sorry for bad english, I'm not a native english speaker :) )
One of the scripts I liked the most here is Tidloc's Weighted Items with Mr Wiggles modification that added Item Storage system from Game Guy + item dropping to storage.
Original Script: http://rmrk.net/index.php/topic,36737.0.html Mr Wiggles Version: http://rmrk.net/index.php/topic,37795.0.html
However after playing around with it for some time I found some bugs regarding item adding and dropping and Weight counting, for example:
:savepoint: On shops, after reaching Overweight, you could still buy items AND LOSE gold but the Item didn't appear. :savepoint: When reaching overweight and getting more items sometimes you keep increasing weight but not adding items... So if you drop EVERYTHING you would still have weight on you. :savepoint: The opposite happened as well, sometimes you could drop items and get them back without adding the weight and then dropping everything again, reaching NEGATIVE weight :savepoint: When you had overweight reached and grabbed back items from the Storage they simply disappeared.
Well, these were some of the issues I encountered. Basically they were all about the disappearance of Items or addition of weight without items. Since it's a great script I decided to try to fix it as best as I could (And implement some new stuff that I would need to use it on my project)
So that's basically it... I bring forth Tidloc's Item Weight 2.0 (Download link for 2.1 already released!!) http://rapidshare.com/files/376697322/Weighted_Items_2.1.exe.html
CREDITS: -> Tidloc, the creator of the Weight System -> Albertfish, not sure but apparently helped Tidloc (It's on the original credits) -> Mr Wiggles, the one who brought Item Storage with Drops and the event system -> Game_Guy, the Designer of the Item Storage system
and now me, DaniAngione! (Or Daniel Angione) Here's a list of the changes I made:
TIDLOC'S ITEM WEIGHT 2.0
:savepoint: Removal and fixing of many bugs (some of them listed above) :savepoint: New UI for the weight system with colored text for maxweight and overweight, always visible on bottom of Item menu with maximum weight displayer. :savepoint: Weight Count displayer for Shops and the Item Storage scene. :savepoint: Brought Tidloc's Decimal weight from his version of the script to the Mr Wiggles version and adapted it to the International Units System, using kilograms (that can be changed on the script) :savepoint: Adapted a running and pixel movement I had to it - Now you can't use C to run when above max weight. :savepoint: My favorite addition: Added an Item Filter! You can easily setup it on the beggining of the script by placing the items, armor and weapons IDs in the respective arrays. That way, the player WON'T be able to drop those items (like key items, quest items and else)
TIDLOC'S ITEM WEIGHT 2.1 :savepoint: Fixed the bug where your item disappeared when unequipping it with overweight limit reached. :savepoint: Fixed the bug found by Mr Wiggles that made it possible to store Quest Items in the Item Storage bag and destroy them by changing maps. :savepoint: Added support for items found on the map (like chests, bodies, bookshelfs and any other kind of event) :savepoint: Completely translated to English (at least the parts important for this Tutorial)
I also have good and bad news :)
The good one is that I experimented with aliasing and managed to change the Scene_Equip without needing to change the standard XP script... :) Like I said I'm not really a good scripter and we're always learning I guess :)
The bad thing is that the only way I found to make the support for chests and else work is kinda crude but at least it works and chests won't cause bugs on weight anymore :)
IDEAS FOR NEXT RELEASES: :savepoint: Improve Chest Support :savepoint: Try aliasing with all the other parts I edited so the script works alone (without having to change standard XP scripts)
Any ideas, suggestions or opinions are welcome :)
Well I think that's it :)
Now a list of known issues:
:savepoint: And the second thing (which is also an apologize) is that I'm not a good scripter... so... I have some trouble with script linking and aliasing and all that... So the script is working nice but it's not really clean (And I also had to slightly edit some of the standard XP scripts - more details about that on the Weight System Script) :savepoint: It's not really an issue, it's more like an apologize... Like I said, I'm not a native english speaker... So... My RPGmaker is in Portuguese (I'm from Brazil) and I didn't translate some stuff but you guys won't have problems with that, I mean... When starting the game, there are 3 options: everyone knows they're "Start", "Load" and "Quit" ;D The most important things (Like the weight system and item names) are in english. (FIXED 2.1) :savepoint: You can store Items even if they're filtered and then delete them by changing map. (FIXED 2.1) :savepoint: Items disappear when taking off equipment with overweight. (FIXED 2.1)
Feel free to throw rocks at me or say anything you'd like to :) And use and edit the script, of course :)
Title: Re: [XP] Tidloc's Item Weight 2.0
Post by: Grafikal on April 16, 2010, 03:42:17 PM
http://rmrk.net/index.php/topic,36737.0.html
Title: Re: [XP] Tidloc's Item Weight 2.0
Post by: modern algebra on April 16, 2010, 03:59:39 PM
It looks like he made some modifications to it grafikal - he links to that thread in his original post :)
Anyway, looks like the additions are pretty cool. Nice work Dani, but I suggest you ask tidloc if he/she's OK with you making these mods.
Title: Re: [XP] Tidloc's Item Weight 2.0
Post by: DaniAngione on April 16, 2010, 04:03:48 PM
It looks like he made some modifications to it grafikal - he links to that thread in his original post :)
Anyway, looks like the additions are pretty cool. Nice work Dani, but I suggest you ask tidloc if he/she's OK with you making these mods.
No, grafikal was right :) I forgot the original script at first, I added it by editing the post :)
And Tidloc says on the script it's free to use the way I want but I sent him/her a PM just to make sure
Title: Re: [XP] Tidloc's Item Weight 2.0
Post by: modern algebra on April 16, 2010, 04:07:29 PM
Ah, then I apologize for my hasty remarks Lord grafikal :)
Title: Re: [XP] Tidloc's Item Weight 2.0
Post by: Mr_Wiggles on April 16, 2010, 04:13:00 PM
Cool, yea i found some problems with tidlocs weighed items script as well, i tried to bani-ad it but i only fixed actor[0] cause i only have one actor. I'll be sure to check this version out.
[Edit] - I like your version, did things that i didn't even think of at the time that and saves me work latter. (cause i would've had to do something about it) ;D
Title: Re: [XP] Tidloc's Item Weight 2.0
Post by: DaniAngione on April 16, 2010, 05:03:30 PM
[Edit] - I like your version, did things that i didn't even think of at the time that and saves me work latter. (cause i would've had to do something about it) ;D
Thanks! :) But like I said I'm not a really good scripter so there's plenty of stuff to clean up and all... I used your version because that Item Storage Drop idea was awesome :)
Personally the thing I like the most in my version is the Item Filter..
Oh, btw I just found a bug, something I forgot to test :( When you've reached maximum weight and try to UNequip an item it just disappears :( I'll have to fix that :P
Title: Re: [XP] Tidloc's Item Weight 2.0
Post by: Mr_Wiggles on April 16, 2010, 05:41:11 PM
also, i have some stuff tangled up in my game with this script. It is showing that i have 2 of every item, and when i try to replace just the chunks that you edited i get a syntax in The chest storage script. ;9
so im trying to sort that out, also i should note that im using a new items menu, and shop system. But it will even show up for the chest window as well.
i push drop i drop 2 items, i only see 1 in the chest. since you made the edits perhaps you can help find where its doing this at.
[edit] never mind im editing my script in my game to be "up to date". Also you know that you can drop an item, then when in the item dropped bag you can put items that you couldn't drop in it, then when you leave the map its deleted.
Title: Re: [XP] Tidloc's Item Weight 2.0
Post by: DaniAngione on April 16, 2010, 06:36:21 PM
[edit] never mind im editing my script in my game to be "up to date". Also you know that you can drop an item, then when in the item dropped bag you can put items that you couldn't drop in it, then when you leave the map its deleted.
Omg! Sorry! And thanks for letting me know - Yeah, I forgot to put the Item Filter conditional on the Item_Storage system! ::)
I'll fix that tonight (I'm not at home :( ) I also guess that if I upload it again I'll translate everything to english ;D But it's pretty easy to fix - just need to put a conditional checking the array before sending the item to the storage :P
That's the good part of publishing scripts, people find issues you wouldn't think of
I'll also update the main post with those issues until they're fixed! Thanks for your feedback, Mr Wiggles!
Title: Re: [XP] Tidloc's Item Weight 2.0
Post by: Mr_Wiggles on April 16, 2010, 07:24:02 PM
No problem, thanks for showing some new things that can be done to it, i finished making the script i had in my project up to date with what you showed in your version. I'll be sure to find some place to credit you in the game.
Title: Re: [XP] Tidloc's Item Weight 2.0
Post by: Grafikal on April 16, 2010, 07:51:42 PM
Ah, then I apologize for my hasty remarks Lord grafikal :)
lol, no problem, at the time I didn't realize that this topic was an updated version of what I liked, so I had thought I was linking to a duplicate script topic. Cool that it's been updated though.
Title: Re: [XP] Tidloc's Item Weight 2.0
Post by: DaniAngione on April 16, 2010, 08:42:19 PM
Another issue found:
When on maximum weight or near it: You find a chest with an Item inside it and when you try to get it you don't get the item but the chest activates the switch and changes to empty, making the contents disappear...
I already fixed the other 2 issues but I'll fix this one before releasing 2.1 :)
[EDIT!]----------------------------------------
Ok, it's done. Version 2.1 released and updates already edited on the main post :)
Feedback would certainly be appreciated and thanks for the support everyone :)
Title: Re: [XP] Tidloc's Item Weight 2.1
Post by: CountVlad on April 20, 2010, 04:50:24 PM
@Mr_Wiggles: Do you think you could share how to fix the two items bug? I've got the same problem.
Title: Re: [XP] Tidloc's Item Weight 2.1
Post by: Mr_Wiggles on April 21, 2010, 01:02:13 AM
whoops sorry i answered you other question i saw in another thread. (equipped items weight messes up)
any ways if you still need that i put it in the spoiler. for you question here i can post my version of the script although it has been altered a little for my needs so tell me if you get any errors, but I'm busy this week so I can't fix it until latter.
This will be the Weighted items, the chest storage should be unchanged. If it has a syntax error let me know and i will paste my version of that as well. Also this version lacks the item filter, i didn't need it so i didn't put it in.
################################################################################ # Item Weight V 1.0 # # by Tidloc # ################################################################################ # V 1.4 # # by Mr Wiggles - Drop to map. # ################################################################################ # This script allows the player to carry only a limited amount of weight. # # To define the weight of an item, weapon or armor simply enter \w<*VALUE*> # # in the description box of that item. If left out the weight will be 0! # ################################################################################ # Definition of the constants: # # TIDLOC_GROUPWEIGHT_MAX ................. limit of weight, where the # # player will be slowed down. # # TIDLOC_GROUPWEIGHT_SHOW_MAX ............ true if GROUPWEIGHT_MAX shall be # # used for max weight, not # # CARRY_OVER_MAX. # # TIDLOC_GROUPWEIGHT_CARRY_OVER_MAX ...... maximum weight, if exceeding # # this limit, no more items can be # # picked up. # # TIDLOC_GROUPWEIGHT_MAXWEIGHT_SWITCH .... the number of the global switch # # which shall be turned true if # # the max-limit is exceeded. # # TIDLOC_GROUPWEIGHT_OVERWEIGHT_SWITCH ... the number of the global switch # # which shall be turned true if # # you cannot carry any more. # # if a switch is 0, it's not used # ################################################################################ # To alter this limits in game use the following script-commands: # # $game_temp._tidloc_pweight(*VALUE*) for GROUPWEIGHT_MAX # # $game_temp._tidloc_pmax(*VALUE*) for CARRY_OVER_MAX # # You may leave Value empty to reset to the constants. # ################################################################################ # You are free to use this script in what ever game you want, but please # # credit me for this hell of work ^_^ # # Credits also to Albertfish for his help when it was needed! # ################################################################################ # Mr Wiggles: # # # # This version will store recently dropped items, which then can be picked # # up through an event that calls a chest in Game_Guy's Item Storage Script. # # # # Use $game_temp.recentdrop for the chest that will house the recently # # dropped items from Tidloc's Weighted Items Script. # ################################################################################ TIDLOC_GROUPWEIGHT_MAX = 10 # Set by players Skill TIDLOC_GROUPWEIGHT_CARRY_OVER_MAX = 1000000000 TIDLOC_GROUPWEIGHT_MAT_POWER = 2 # Number of decimal algarisms. TIDLOC_GROUPWEIGHT_MAXWEIGHT_SWITCH = 20 TIDLOC_GROUPWEIGHT_OVERWEIGHT_SWITCH = 3
module CHEST_DROP # Mr Wiggles
# Switch that when false erases items that where dropped (like for a map change) DROPED_ITEM_SW = 5 # This switch is Turned on when player drops new items RELOCATE_ITEM = 9 # Button to drop item DROP_ITEM = Input::Letters["D"] # Button to use item USE_ITEM = Input::C # Space, Enter, "C" # Chest that will store items DROP_CHEST_ID = 1
end # Mr Wiggles
#------------------------------------------------------------------------------- # * Window_Weight #------------------------------------------------------------------------------- class Window_Weight < Window_Base def initialize super(0, 0, 640, 480) # 140, 80 self.z = 200 self.contents = Bitmap.new(width - 32, height - 32) self.opacity = 0 refresh end def refresh self.contents.font.name = "Times New Roman" self.contents.font.size = 20 self.contents.clear self.contents.font.color = system_color a = 1 for i in 0...TIDLOC_GROUPWEIGHT_MAT_POWER a*=10.0 end # Draw Weight in Maxed out color if over max if $game_temp._tidloc_groupweight/a > $game_temp._tidloc_groupweight_max/a self.contents.font.color = knockout_color weight = ($game_temp._tidloc_groupweight/a).to_s max_weight = ($game_temp._tidloc_groupweight_max/a).to_s self.contents.draw_text(5, 9, 160, 32,weight+" / "+max_weight, 0) # Draw Weight in Warning color if close to max elsif $game_temp._tidloc_groupweight/a >= $game_temp._tidloc_groupweight_max/a - 15 self.contents.font.color = crisis_color weight = ($game_temp._tidloc_groupweight/a).to_s max_weight = ($game_temp._tidloc_groupweight_max/a).to_s self.contents.draw_text(5, 9, 160, 32,weight+" / "+max_weight, 0) else # Draw Weight in normal color if under max self.contents.font.color = normal_color weight = ($game_temp._tidloc_groupweight/a).to_s max_weight = ($game_temp._tidloc_groupweight_max/a).to_s self.contents.draw_text(5, 9, 160, 32,weight+" / "+max_weight, 0) end # Draw Weight Total: self.contents.draw_text(0,-9, 120, 32, "Weight Total:\n") self.contents.font.color = normal_color # Draw Weight help self.contents.font.color = normal_color self.contents.draw_text(280, -9, 200, 32, "Use items with Space,") self.contents.draw_text(280, 9, 200, 32, "Drop items with \"D\".") end end
#============================================================================== # * Window_Item #============================================================================== class Window_Item < Window_Selectable #-------------------------------------------------------------------------- # * Help Text Update #-------------------------------------------------------------------------- def update_help @help_window.set_text(self.item == nil ? "" : self.item.description) if self.item != nil help = self.item.description.to_s $game_temp.item_description_lentgh = help.length end end end
for i in 1...$data_items.size if $data_items[i].description[0] != nil text = $data_items[i].description text2 = "" text.gsub!(/\\w<([0-9]+)>/) {"\1[#{$1}]"} while ((c = text.slice!(/./m)) != nil) if c != "\1" text2 += c else text.sub!(/\[([_A-Za-z0-9-]+)\]/, "") self._tidloc_itemweight[i]=$1.to_i end end $data_items[i].description = text2 end self._tidloc_itemweight[i] = 0 if self._tidloc_itemweight[i].nil? end for i in 1...$data_weapons.size if $data_weapons[i].description[0] != nil text = $data_weapons[i].description text2 = "" text.gsub!(/\\w<([0-9]+)>/) {"\1[#{$1}]"} while ((c = text.slice!(/./m)) != nil) if c != "\1" text2 += c else text.sub!(/\[([_A-Za-z0-9-]+)\]/, "") self._tidloc_weaponweight[i]=$1.to_i end end $data_weapons[i].description = text2 end self._tidloc_weaponweight[i] = 0 if self._tidloc_weaponweight[i].nil? end for i in 1...$data_armors.size if $data_armors[i].description[0] != nil text = $data_armors[i].description text2 = "" text.gsub!(/\\w<([0-9]+)>/) {"\1[#{$1}]"} while ((c = text.slice!(/./m)) != nil) if c == "\1" text.sub!(/\[([_A-Za-z0-9-]+)\]/, "") self._tidloc_armorweight[i]=$1.to_i else text2 += c end end $data_armors[i].description = text2 end self._tidloc_armorweight[i] = 0 if self._tidloc_armorweight[i].nil? end end
def _tidloc_pweight(new_weight=TIDLOC_GROUPWEIGHT_MAX) self._tidloc_groupweight_max = new_weight end
def _tidloc_pmax(new_max=TIDLOC_GROUPWEIGHT_CARRY_OVER_MAX) self._tidloc_groupweight_carry_over_max = new_max end end
#------------------------------------------------------------------------------- # * Game_Party #------------------------------------------------------------------------------- class Game_Party def tidloc_slowing(slow=true) if slow $game_player.tidloc_alt_speed -1 else $game_player.tidloc_alt_speed 1 end end #---------------------- # Gain Item #---------------------- alias tidloc_iweight_item gain_item def gain_item(item_id, n) # Add Wieght if item_id > 0 $game_temp._tidloc_groupweight += $game_temp._tidloc_itemweight[item_id] * n #([[item_number(item_id) + n, 0].max, 999].min - item_number(item_id)) end # check if over weight if $game_temp._tidloc_groupweight > $game_temp._tidloc_groupweight_carry_over_max $game_switches.[]=(TIDLOC_GROUPWEIGHT_OVERWEIGHT_SWITCH, true) if TIDLOC_GROUPWEIGHT_OVERWEIGHT_SWITCH != -1 if !$game_temp._tidloc_iweight_slow $game_temp._tidloc_iweight_slow = true tidloc_slowing end elsif ($game_temp._tidloc_groupweight > $game_temp._tidloc_groupweight_max && !$game_temp._tidloc_iweight_slow) $game_temp._tidloc_iweight_slow = true $game_switches.[]=(TIDLOC_GROUPWEIGHT_MAXWEIGHT_SWITCH, true) if TIDLOC_GROUPWEIGHT_MAXWEIGHT_SWITCH != -1 tidloc_slowing tidloc_iweight_item(item_id, n) elsif ($game_temp._tidloc_groupweight <= $game_temp._tidloc_groupweight_max && $game_temp._tidloc_iweight_slow) $game_temp._tidloc_iweight_slow = false $game_switches.[]=(TIDLOC_GROUPWEIGHT_MAXWEIGHT_SWITCH, false) if TIDLOC_GROUPWEIGHT_MAXWEIGHT_SWITCH != -1 tidloc_slowing false tidloc_iweight_item(item_id, n) else tidloc_iweight_item(item_id, n) end end #---------------------- # Gain Weapon #---------------------- alias tidloc_iweight_weap gain_weapon def gain_weapon(weapon_id, n) if weapon_id > 0 $game_temp._tidloc_groupweight += $game_temp._tidloc_weaponweight[weapon_id] * n #([[weapon_number(weapon_id) + n, 0].max, 99].min - weapon_number(weapon_id)) end if $game_temp._tidloc_groupweight > $game_temp._tidloc_groupweight_carry_over_max $game_switches.[]=(TIDLOC_GROUPWEIGHT_OVERWEIGHT_SWITCH, true) if TIDLOC_GROUPWEIGHT_OVERWEIGHT_SWITCH != -1 if !$game_temp._tidloc_iweight_slow $game_temp._tidloc_iweight_slow = true tidloc_slowing end elsif $game_temp._tidloc_groupweight > $game_temp._tidloc_groupweight_max && !$game_temp._tidloc_iweight_slow $game_temp._tidloc_iweight_slow = true $game_switches.[]=(TIDLOC_GROUPWEIGHT_MAXWEIGHT_SWITCH, true) if TIDLOC_GROUPWEIGHT_MAXWEIGHT_SWITCH != -1 tidloc_slowing tidloc_iweight_weap(weapon_id, n) if TIDLOC_GROUPWEIGHT_CARRY_OVER_MAX $game_switches.[]=(TIDLOC_GROUPWEIGHT_OVERWEIGHT_SWITCH, true) if !TIDLOC_GROUPWEIGHT_CARRY_OVER_MAX elsif $game_temp._tidloc_groupweight <= $game_temp._tidloc_groupweight_max && $game_temp._tidloc_iweight_slow $game_temp._tidloc_iweight_slow = false $game_switches.[]=(TIDLOC_GROUPWEIGHT_MAXWEIGHT_SWITCH, false) if TIDLOC_GROUPWEIGHT_MAXWEIGHT_SWITCH != -1 tidloc_slowing false tidloc_iweight_weap(weapon_id, n) else tidloc_iweight_weap(weapon_id, n) end end #---------------------- # Gain Armor #---------------------- alias tidloc_iweight_arm gain_armor def gain_armor(armor_id, n) if armor_id > 0 $game_temp._tidloc_groupweight += $game_temp._tidloc_armorweight[armor_id] * n #([[armor_number(armor_id) + n, 0].max, 99].min - armor_number(armor_id)) end if $game_temp._tidloc_groupweight > $game_temp._tidloc_groupweight_carry_over_max $game_switches.[]=(TIDLOC_GROUPWEIGHT_OVERWEIGHT_SWITCH, true) if TIDLOC_GROUPWEIGHT_OVERWEIGHT_SWITCH != -1 if !$game_temp._tidloc_iweight_slow $game_temp._tidloc_iweight_slow = true tidloc_slowing end elsif $game_temp._tidloc_groupweight > $game_temp._tidloc_groupweight_max && !$game_temp._tidloc_iweight_slow $game_temp._tidloc_iweight_slow = true $game_switches.[]=(TIDLOC_GROUPWEIGHT_MAXWEIGHT_SWITCH, true) if TIDLOC_GROUPWEIGHT_MAXWEIGHT_SWITCH != -1 tidloc_slowing tidloc_iweight_arm(armor_id, n) if TIDLOC_GROUPWEIGHT_CARRY_OVER_MAX $game_switches.[]=(TIDLOC_GROUPWEIGHT_OVERWEIGHT_SWITCH, true) if !TIDLOC_GROUPWEIGHT_CARRY_OVER_MAX elsif $game_temp._tidloc_groupweight <= $game_temp._tidloc_groupweight_max && $game_temp._tidloc_iweight_slow $game_temp._tidloc_iweight_slow = false $game_switches.[]=(TIDLOC_GROUPWEIGHT_MAXWEIGHT_SWITCH, false) if TIDLOC_GROUPWEIGHT_MAXWEIGHT_SWITCH != -1 tidloc_slowing false tidloc_iweight_arm(armor_id, n) else tidloc_iweight_arm(armor_id, n) end end end
#------------------------------------------------------------------------------- # * Game_Player #------------------------------------------------------------------------------- class Game_Player def tidloc_set_speed(speed=4) @move_speed = speed end
def tidloc_alt_speed(speed=0) @move_speed += speed end end
#------------------------------------------------------------------------------- # * Scene_Item #------------------------------------------------------------------------------- class Scene_Item alias _tidloc_iweight_main main def main @weight_window = Window_Weight.new @weight_window.x = 0 @weight_window.y = 0 _tidloc_iweight_main @weight_window.dispose end
alias _tidloc_iweight_update update def update @weight_window.update _tidloc_iweight_update @weight_window.refresh end #------------------------------------------------------------------------------- alias _tidloc_iweight_item update_item def update_item @item = @item_window.item #------------------ if Input.trigger?(CHEST_DROP::USE_ITEM) # If not an item unless @item.is_a?(RPG::Item) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end unless $game_party.item_can_use?(@item.id) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) if @item.scope >= 3 @item_window.active = false @target_window.x = (@item_window.index + 1) % 2 * 304 @target_window.visible = true @target_window.active = true if @item.scope == 4 || @item.scope == 6 @target_window.index = -1 else @target_window.index = 0 end # if scope == 4 else if @item.common_event_id > 0 $game_temp.common_event_id = @item.common_event_id $game_system.se_play($data_system.decision_se) if @item.consumable $game_party.lose_item(@item.id, 1) @item_window.draw_item(@item_window.index) end # if consumable $scene = Scene_Map.new return end # if common event end # if item scope >= 3 @item_window.refresh @weight_window.refresh return end # if Input::C #------------------ if Input.trigger?(CHEST_DROP::DROP_ITEM) # Drop Item $game_switches[CHEST_DROP::RELOCATE_ITEM] = true # define $chest if $game_system.chests[CHEST_DROP::DROP_CHEST_ID] == nil $chest = Game_Chest.new(GameGuy::ChestMaxItems) else $chest = $game_system.chests[CHEST_DROP::DROP_CHEST_ID] end # if it is an Item if @item.is_a?(RPG::Item) $game_system.se_play($data_system.buzzer_se) $game_party.gain_item(@item.id,-1) # add items into drop bag $chest.add_item(@item.id, 1) $game_switches[CHEST_DROP::DROPED_ITEM_SW] = true # if it is a Weapon elsif @item.is_a?(RPG::Weapon) $game_system.se_play($data_system.buzzer_se) $game_party.gain_weapon(@item.id,-1) # add items into drop bag $chest.add_weapon(@item.id, 1) $game_switches[CHEST_DROP::DROPED_ITEM_SW] = true # if it is an Armor elsif @item.is_a?(RPG::Armor) $game_system.se_play($data_system.buzzer_se) $game_party.gain_armor(@item.id,-1) # add items into drop bag $chest.add_armor(@item.id, 1) $game_switches[CHEST_DROP::DROPED_ITEM_SW] = true end # item type $game_map.refresh @item_window.refresh @weight_window.refresh # update droped items $game_system.add_chest(CHEST_DROP::DROP_CHEST_ID) $game_map.game_chest_size(CHEST_DROP::DROP_CHEST_ID) chest_size = $number_of_droped_items return end # Input Drop button #------------------ _tidloc_iweight_item end # def end # class
#------------------------------------------------------------------------------- # * Scene_Shop #------------------------------------------------------------------------------- class Scene_Shop alias _tidloc_iweight_buy update_buy def update_buy _tidloc_iweight_buy if Input.trigger?(Input::C) @item = @buy_window.item if @item == nil or @item.price > $game_party.gold $game_system.se_play($data_system.buzzer_se) return end case @item when RPG::Item number = $game_party.item_number(@item.id) max2 = $game_temp._tidloc_itemweight[@item.id] when RPG::Weapon number = $game_party.weapon_number(@item.id) max2 = $game_temp._tidloc_weaponweight[@item.id] when RPG::Armor number = $game_party.armor_number(@item.id) max2 = $game_temp._tidloc_armorweight[@item.id] end if number == 999 $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) max = @item.price == 0 ? 999 : $game_party.gold / @item.price return if max2 == 0 max2 = ($game_temp._tidloc_groupweight_max - $game_temp._tidloc_groupweight) / max2 max = [max, 999 - number, max2].min @buy_window.active = false @buy_window.visible = false @number_window.set(@item, max, @item.price) @number_window.active = true @number_window.visible = true end end end #------------------------------------------------------------------------------- # Scene Map #------------------------------------------------------------------------------- class Scene_Map alias wieght_update update def update # Erase items that where droped if DROPED_ITEM_SW switch is off or if # there are no droped items to pick up if $game_system.chests[CHEST_DROP::DROP_CHEST_ID] != nil $game_map.game_chest_size(CHEST_DROP::DROP_CHEST_ID) end chest_size = $number_of_droped_items if chest_size == 0 and $game_switches[CHEST_DROP::DROPED_ITEM_SW] == true $game_switches[CHEST_DROP::DROPED_ITEM_SW] = false end if $game_switches[CHEST_DROP::DROPED_ITEM_SW] == false $game_temp.recentdrop.clear $number_of_droped_items = 0 $game_system.chests[CHEST_DROP::DROP_CHEST_ID] = nil end wieght_update end end
Spoiler for other answer:
sure, its just a patch that you can paste bellow the weighted items script, although it will only fix one member party, im sure i can rig it to do all four.
Just paste this in the Weighted items script bellow every thing.
alias equip_update update def update @weapon_id = $game_party.actors[0].weapon_id @shield_id = $game_party.actors[0].armor1_id @head_id = $game_party.actors[0].armor2_id @body_id = $game_party.actors[0].armor3_id @accessory_id = $game_party.actors[0].armor4_id #-------------------- # Weapon if @weapon_id != 0 and @weapon_equiped == false $game_temp._tidloc_groupweight += $game_temp._tidloc_weaponweight[@weapon_id] @old_weapon = @weapon_id @weapon_equiped = true return elsif @weapon_equiped == true and @weapon_id != @old_weapon and @weapon_id != 0 $game_temp._tidloc_groupweight -= $game_temp._tidloc_weaponweight[@old_weapon] @old_weapon = @weapon_id $game_temp._tidloc_groupweight += $game_temp._tidloc_weaponweight[@weapon_id] return elsif @weapon_id == 0 and @weapon_equiped == true and @old_weapon != 0 $game_temp._tidloc_groupweight -= $game_temp._tidloc_weaponweight[@old_weapon] @weapon_equiped = false @old_weapon = 0 return end #-------------------- # Shield if @shield_id != 0 and @shield_equiped == false $game_temp._tidloc_groupweight += $game_temp._tidloc_weaponweight[@shield_id] @old_shield = @shield_id @shield_equiped = true return elsif @shield_equiped == true and @shield_id != @old_shield and @shield_id != 0 $game_temp._tidloc_groupweight -= $game_temp._tidloc_weaponweight[@old_shield] @old_shield = @shield_id $game_temp._tidloc_groupweight += $game_temp._tidloc_weaponweight[@shield_id] return elsif @shield_id == 0 and @shield_equiped == true and @old_shield != 0 $game_temp._tidloc_groupweight -= $game_temp._tidloc_weaponweight[@old_shield] @shield_equiped = false @old_shield = 0 return end #-------------------- # Head if @head_id != 0 and @head_equiped == false $game_temp._tidloc_groupweight += $game_temp._tidloc_weaponweight[@head_id] @old_head = @head_id @head_equiped = true return elsif @head_equiped == true and @head_id != @old_head and @head_id != 0 $game_temp._tidloc_groupweight -= $game_temp._tidloc_weaponweight[@old_head] @old_head = @head_id $game_temp._tidloc_groupweight += $game_temp._tidloc_weaponweight[@head_id] return elsif @head_id == 0 and @head_equiped == true and @old_head != 0 $game_temp._tidloc_groupweight -= $game_temp._tidloc_weaponweight[@old_head] @head_equiped = false @old_head = 0 return end #-------------------- # Body if @body_id != 0 and @body_equiped == false $game_temp._tidloc_groupweight += $game_temp._tidloc_weaponweight[@body_id] @old_body = @body_id @body_equiped = true return elsif @body_equiped == true and @body_id != @old_body and @body_id != 0 $game_temp._tidloc_groupweight -= $game_temp._tidloc_weaponweight[@old_body] @old_body = @body_id $game_temp._tidloc_groupweight += $game_temp._tidloc_weaponweight[@body_id] return elsif @body_id == 0 and @body_equiped == true and @old_body != 0 $game_temp._tidloc_groupweight -= $game_temp._tidloc_weaponweight[@old_body] @body_equiped = false @old_body = 0 return end #-------------------- # Accessory if @accessory_id != 0 and @accessory_equiped == false $game_temp._tidloc_groupweight += $game_temp._tidloc_weaponweight[@accessory_id] @old_accessory = @accessory_id @accessory_equiped = true return elsif @accessory_equiped == true and @accessory_id != @old_accessory and @accessory_id != 0 $game_temp._tidloc_groupweight -= $game_temp._tidloc_weaponweight[@old_accessory] @old_accessory = @accessory_id $game_temp._tidloc_groupweight += $game_temp._tidloc_weaponweight[@accessory_id] return elsif @accessory_id == 0 and @accessory_equiped == true and @accessory_body != 0 $game_temp._tidloc_groupweight -= $game_temp._tidloc_weaponweight[@accessory_body] @accessory_equiped = false @old_accessory = 0 return end #-------------------- equip_update end end
#============================================================================== # ** Game_Actor :: Rewrite to update equiped Wieght #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # * Change Equipment # equip_type : type of equipment # id : weapon or armor ID (If 0, remove equipment) #-------------------------------------------------------------------------- def equip(equip_type, id) case equip_type when 0 # Weapon if id == 0 or $game_party.weapon_number(id) > 0 $game_party.gain_weapon(@weapon_id, 1) @weapon_id = id $game_party.gain_weapon(@weapon_id, -1) end when 1 # Shield if id == 0 or $game_party.armor_number(id) > 0 update_auto_state($data_armors[@armor1_id], $data_armors[id]) $game_party.gain_armor(@armor1_id, 1) @armor1_id = id $game_party.gain_armor(@armor1_id, -1) end when 2 # Head if id == 0 or $game_party.armor_number(id) > 0 update_auto_state($data_armors[@armor2_id], $data_armors[id]) $game_party.gain_armor(@armor2_id, 1) @armor2_id = id $game_party.gain_armor(@armor1_id, -1) end when 3 # Body if id == 0 or $game_party.armor_number(id) > 0 update_auto_state($data_armors[@armor3_id], $data_armors[id]) $game_party.gain_armor(@armor3_id, 1) @armor3_id = id $game_party.gain_armor(@armor1_id, -1) end when 4 # Accessory if id == 0 or $game_party.armor_number(id) > 0 update_auto_state($data_armors[@armor4_id], $data_armors[id]) $game_party.gain_armor(@armor4_id, 1) @armor4_id = id $game_party.gain_armor(@armor1_id, -1) end end end end # class
Title: Re: [XP] Tidloc's Item Weight 2.1
Post by: CountVlad on April 21, 2010, 03:04:07 PM
Thanks! It's fixed now! ;D
EDIT: In the first script, what did you actually do to stop two items from showing up when there's only one? It's just that I'd customised the script myself and I'd be a bit loathed to get rid of my mods. Can you remember which lines you edited?
Title: Re: [XP] Tidloc's Item Weight 2.1
Post by: Mr_Wiggles on April 26, 2010, 10:06:57 PM
UH, well, i think that it would just be easier to re-mod my version with what you edited. What i did to my old version to get this new one that i posted. Sorry.
Title: Re: [XP] Tidloc's Item Weight 2.1
Post by: CountVlad on April 26, 2010, 10:25:27 PM
No problem. I'll see if I can analyze the two scripts and spot any changes. If I can't, I'll just have to use yours. Thanks for the help anyway.