Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Waga przedmiotów!
Autor Wiadomość
Saskio 




Preferowany:
RPG Maker VXAce

Pomógł: 1 raz
Dołączył: 20 Sie 2012
Posty: 51
Skąd: Włocławek
Wysłany: Sro 29 Sie, 2012 05:37
Waga przedmiotów!
~ XaiL System - Inventory Weight ~


Krótki opis:
Skrypt dodaje wagę dla każdego z naszych przedmiotów, jest dosyć łatwy w obsłudze i bardzo ładnie wygląda :-D

Autor:
Nicke

Tłumaczenie:
Saskio

Kompatybilność:
RPG Maker VX Ace

Skrypt:
Spoiler:

Kod:
#==============================================================================
#   XaiL System - Inventory Weight
#   Author: Nicke
#   Stworzony: 02/05/2012
#   Edytowany: 12/05/2012
#   Tłumaczenie: Saskio
#   Specjalnie dla Ultimateam.pl
#   Wersja: 1.0b
#==============================================================================
# Instrukcja
# -----------------------------------------------------------------------------
# Aby zainstalować ten skrypt, należy otworzyć Edytor Skryptów i wkleić
# go w wolny slot poniżej 'Materials' ale nad 'Main'. Pamiętaj o zapisie!
#
# Ten skrypt umożliwia ustawienie wagi przedmiotów.
# Maksymalna waga ekwipunku wrasta wraz ze zdobyciem poziomu.
# Zobacz szczegóły i ustaw je, według własnych potrzeb!
#
# Domyślna waga przedmiotu to 0.0 jednak możesz to zmienić, wpisując w komentarz danej rzeczy:
# <WEIGHT|weight: numer>
#
# Przykłady:
# <weight: 15.5>
# <WEIGHT: 4.5>
#
# Maksymalny udźwig na początku wynosi 0.0. Aby odświeżyć udźwig należy wywołać skrypt:
# $game_party.refresh_weight
#
# Dużym minusem jest to, że musimy manualnie powiększyć obciążenie.
# Aby dodać/usunąć wagę przedmiotu musisz wywołać następujący skrypt:
# $game_party.weight_item(ID, ilość = 1, typ = :item, weight_type = :gain)
#
# Examples:
# $game_party.weight_item(1)                   # // Dodaje wagę jednego przedmiotu z ID_1
# $game_party.weight_item(1, 2, :weapon)       # // Dodaje wagę 2 broni z ID_1
# $game_party.weight_item(1, 1, :armor, :lose) # // Usuwa wagę jednego pancerza z ID_1
#
# *** Jedynie na RPG Maker VX Ace. ***
#==============================================================================
($imported ||= {})["XAIL-INVENTORY-WEIGHT"] = true

module XAIL
  module INV_WEIGHT
  #--------------------------------------------------------------------------#
  # * Ustawienia
  #--------------------------------------------------------------------------#     
      # Czy masa zwiększa się, jeśli stackujesz przedmioty?
      # i.e jeśli masz 2 lub więcej itemów [???]
      # STACK_WEIGHT = true/false
      STACK_WEIGHT = true
 
      # 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.
 
 
cj2 




Preferowany:
RPG Maker VXAce

Ranga RM:
1 gra

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ę!
________________________
Porady dla twórców gier
Nie ma śniegu, a zgubiłem normalny avatar :I
 
 
Nex 




Preferowany:
RPG Maker XP

Pomógł: 15 razy
Dołączył: 27 Paź 2012
Posty: 145
Wysłany: Czw 27 Gru, 2012 17:58
Strzeszcie się ci kturzy noszą topory :-PP
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene