# Max MAX_WEIGHT_TYPE = :symbol
# :default = Maksymalny udźwig bazowany na poziomie.
# :str = Maksymalny udźwig bazowany na ataku.
# :custom = Maksymalny udźwig bazowany na własnej opcji
MAX_WEIGHT_TYPE = :default
# Formuła na maksymalny udźwig bazowany na poziomie.
def self.weight_level
case $game_party.leader.level
when 1..10 ; weight = 20.0
when 11..19 ; weight = 40.0
when 20..30 ; weight = 60.0
when 31..40 ; weight = 80.0
when 41..50 ; weight = 99.0
end
return weight
end
# Inna formuła. Obecnie bazuje na ataku i zręczności bohatera podzielonych
# przez 2
# Wybierz tu, co chcesz.
def self.weight_custom
$game_party.leader.atk.to_f + $game_party.leader.agi.to_f / 2.0
end
# Włącz tą opcję, jeśli chcesz aby postać mogła być obciążona.
# Na przykład: Kiedy jest 50% obciążenia bohater będzie biegał wolniej,
# dopóki nie sprzeda/wyrzuci kilku itemów.
# Kiedy jest 90% obciążenia wojowniczość nie jest zbyt świetna.
# USE_ENCUMBER = true/false
USE_ENCUMBER = true
# Ta opcja decyduje o szybkości biegu, jeśli USE_ENCUMBER jest 'true'
# Objaśnienie:
# Kiedy bohater ma 50% obciążenia prędkość poruszania się to 3.8.
# Kiedy bohater ma 75% obciążenia prędkość poruszania się to 3.4.
# Kiedy bohater ma 90% obciążenia prędkość poruszania się to 3.2.
# Kiedy bohater ma 95% obciążenia prędkość poruszania się to 3.0
# Poniżej 50% obciążenia- prędkość biegu domyślna
def self.encumber_speed(weight, max, default)
$game_player.move_speed = 3.8 if weight >= max * 0.50
$game_player.move_speed = 3.4 if weight >= max * 0.75
$game_player.move_speed = 3.2 if weight >= max * 0.90
$game_player.move_speed = 3.0 if weight >= max * 0.95
$game_player.move_speed = default if weight <= max * 0.50
end
end
end
# *** Nie edytuj poniżej, chyba, że wiesz co robisz. ***
#==============================================================================#
# ** RPG::BaseItem
#==============================================================================#
class RPG::BaseItem
def weight
# // Method to set a item weight.
@note.scan(/<(?:WEIGHT|weight):\s(\d+.\d+)>/i)
return ($1.to_f > 0.0 ? $1.to_f : 0.0)
end
end
#==============================================================================#
# ** Game_Party
#==============================================================================#
class Game_Party < Game_Unit
attr_reader :weight
attr_reader :max_weight
alias xail_item_weight_sys_init initialize
def initialize(*args, &block)
# // Method to initialize.
xail_item_weight_sys_init(*args, &block)
@weight = 0.0
@max_weight = 0.0
end
def refresh_weight
# // Method to refresh the max weight.
@max_weight = max_weight? unless leader.nil?
end
def max_weight?
# // Method to check the max weight.
case XAIL::INV_WEIGHT::MAX_WEIGHT_TYPE
when :default ; return @max_weight = XAIL::INV_WEIGHT.weight_level
when :str ; return @max_weight = leader.atk.to_f
when :custom ; return @max_weight = XAIL::INV_WEIGHT.weight_custom
end
end
def weight_item(item, amount = 1, type = :item, weight_type = :gain)
# // Method to gain an item with weight.
case type
when :item ; type = $data_items
when :weapon ; type = $data_weapons
when :armor ; type = $data_armors
end
item = type[item]
case weight_type
when :gain
# // Gain: Increase the current weight.
unless item.nil?
unless XAIL::INV_WEIGHT::STACK_WEIGHT
unless has_item?(type[item.id])
@weight += item.weight
end
else
@weight += item.weight
end
if @weight > max_weight?
return @weight -= item.weight
end
gain_item(item, amount, false)
end
when :lose
# // Lose: Decrease the current weight.
return unless has_item?(type[item.id])
unless item.nil?
unless XAIL::INV_WEIGHT::STACK_WEIGHT
unless has_item?(type[item.id])
@weight -= item.weight unless @weight <= 0.0
end
if item_number(item) < 2
@weight -= item.weight unless @weight <= 0.0
end
else
@weight -= item.weight unless @weight <= 0.0
end
gain_item(item, -amount, false)
end
end
end
end
#==============================================================================#
# ** Game_Player
#==============================================================================#
class Game_Player < Game_Character
attr_accessor :move_speed
alias xail_item_weight_game_player_init initialize
def initialize
# // Method to initialize game player.
@weight = $game_party.weight
@max_weight = $game_party.max_weight
xail_item_weight_game_player_init
@default_move_speed = @move_speed.to_f
end
alias xail_item_weight_game_player_dash? dash?
def dash?
# // Method to check if player can dash.
return false if $game_party.weight >= $game_party.max_weight * 0.90 if XAIL::INV_WEIGHT::USE_ENCUMBER
xail_item_weight_game_player_dash?
end
alias xail_item_weight_game_player_update update
def update
# // Method to refresh game player.
if XAIL::INV_WEIGHT::USE_ENCUMBER
if @weight != $game_party.weight
@weight = $game_party.weight
@max_weight = $game_party.max_weight
XAIL::INV_WEIGHT.encumber_speed(@weight, @max_weight, @default_move_speed)
end
end
xail_item_weight_game_player_update
end
end
#==============================================================================#
# ** Game_Interpreter
#==============================================================================#
class Game_Interpreter
def w_item(item, amount = 1, type = :item, weight_type = :gain)
# // Quick method to add/remove an item with weight.
$game_party.weight_item(item, amount, type, weight_type)
end
end # END OF FILE
#=*==========================================================================*=#
# ** END OF FILE
#=*==========================================================================*=#
Screeny:
Spoiler:
Dodatkowe informacje: Instrukcja:
1.Wklej skrypt nad 'Main' w edytorze skryptów.
2.Dalsza instrukcja znajduje się w treści skryptu!
Skrypt nie potrzebuje żadnych dodatkowych grafik!
Ważne:
Skrypt nie działa bez XaiL System - Icon Menu
Link: http://www.ultimateam.pl/...p?p=82433#82433 Jeszcze Ważniejsze:
W skrypcie jest mały błąd, mianowicie w hudzie nie mieści się więcej niż 5 cyferek (5.5 / 20), niestety kiedy jest więcej to przycina numerek Czy ktoś mógłby edytować ten skrypt i wydłużyć hud???
________________________ Praca uszlachetnia, lenistwo uszczęśliwia.
Pomóg³: 6 razy Do³±czy³: 07 Mar 2010 Posty: 261 Sk±d: Gliwice
Wys³any: Czw 27 Gru, 2012 17:19
Dłuższy czas temu myślałem "kurde, fajnie by było, gdybym mógł ustalić maksymalną wagę jaką może udźwignąć bohater. Nie nosiłby wtedy 20 toporów niepotrzebnie." Dzisiaj zakupiłem VX Ace i to będzie mój podstawowy skrypt. Dziękuję!
Nie mo¿esz pisaæ nowych tematów Nie mo¿esz odpowiadaæ w tematach Nie mo¿esz zmieniaæ swoich postów Nie mo¿esz usuwaæ swoich postów Nie mo¿esz g³osowaæ w ankietach Nie mo¿esz za³±czaæ plików na tym forum Mo¿esz ¶ci±gaæ za³±czniki na tym forum