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 :)
http://rmrk.net/index.php/topic,36737.0.html
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.
Quote from: 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.
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
Ah, then I apologize for my hasty remarks Lord grafikal :)
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
Quote from: Mr_Wiggles on April 16, 2010, 04:13:00 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
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.
Quote from: Mr_Wiggles on April 16, 2010, 05:41:11 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!
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.
Quote from: modern algebra on April 16, 2010, 04:07:29 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.
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 :)
@Mr_Wiggles: Do you think you could share how to fix the two items bug? I've got the same problem.
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
#-------------------------------------------------------------------------------
# * Game_Temp
#-------------------------------------------------------------------------------
class Game_Temp
attr_accessor :_tidloc_itemweight
attr_accessor :_tidloc_weaponweight
attr_accessor :_tidloc_armorweight
attr_accessor :_tidloc_groupweight
attr_accessor :_tidloc_groupweight_max
attr_accessor :_tidloc_groupweight_carry_over_max
attr_accessor :_tidloc_iweight_slow
attr_accessor :recentdrop
attr_accessor :item_description_lentgh
alias wo_weight_initialize initialize
def initialize
wo_weight_initialize
self._tidloc_itemweight = []
self._tidloc_weaponweight = []
self._tidloc_armorweight = []
self.recentdrop = []
self.item_description_lentgh = 0
self._tidloc_groupweight = 0
self._tidloc_groupweight_max = TIDLOC_GROUPWEIGHT_MAX
self._tidloc_groupweight_carry_over_max = TIDLOC_GROUPWEIGHT_CARRY_OVER_MAX
self._tidloc_iweight_slow = false
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=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.
#==============================================================================
# ** Game_System :: Rewrite to update equiped Wieght
#==============================================================================
class Game_System
alias equip_init initialize
def initialize
@old_weapon = 0
@old_shield = 0
@old_head = 0
@old_body_id = 0
@old_accessory_id = 0
@weapon_equiped = false
@shield_equiped = false
@head_equiped = false
@body_equiped = false
@accessory_equiped = false
@weapon_id = 0
@shield_id = 0
@head_id = 0
@body_id = 0
@accessory_id = 0
equip_init
end
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
[/spoiler]
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?
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.
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.