UltimaForum

Skrypty [VX] - Bonus HP/MP z itemów

Teyan - Pon 14 Gru, 2009 10:23
Temat postu: Bonus HP/MP z itemów
Kolejny krótki i prosty w użyciu skrypt, który przetłumaczyłem. Możemy dzięki niemu zwiększać HP bohatera, który nosi dany przedmiot.

INSTRUKCJA:
wszystko w skrypcie.

DEMO i SCREENY:
niepotrzebne.
Spoiler:

Kod:
#==============================================================================
#  Itemy dodające HP/MP
#  Wersja: 1.0
#  Autor: modern algebra
#  Data: July 7, 2008
#  Tłumaczenie: Marcin (www.ultimateam.pl)
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  INSTRUKCJA:
#
#    Po prostu wpisz poniższy kod w notatkach/note danego przedmiotu:
#    Jeżeli chcesz dodać/odjąć HP:
#      \maxhp[x]  (x - liczba, o której wartość zmienia się HP, może być ujemna lub dodatnia)
#
#     Jeżeli chcesz dodać/odjąć MP:
#      \maxmp[x]  (x - liczba, o której wartość zmienia się MP, może być ujemna lub dodatnia)
#   
#==============================================================================

# Nie zmieniaj poniżej tego skryptu, chyba że wiesz co robisz (ja go nawet nie tłumaczyłem, myśle,
# że dla tych, którzy chcą zmienić ten skrypt angielskie wyjaśnienia będą bardziej zrozumiałe
# niż moje "transmówki").
#==============================================================================
# ** RPG::BaseItem
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Summary of Changes:
#    new methods - maxhp, maxmp
#==============================================================================

class RPG::BaseItem
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * MaxHP Bonus
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def maxhp
    return $1.to_i if self.note[/\\maxhp\[(-*\d+)\]/i] != nil
    return 0
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * MaxMP Bonus
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def maxmp
    return $1.to_i if self.note[/\\maxmp\[(-*\d+)\]/i] != nil
    return 0
  end
end

#==============================================================================
# ** Game_Actor
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Summary of Changes:
#    aliased method - setup, change_equip
#    new method - add_hpmp_bonuses
#==============================================================================

class Game_Actor
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Setup
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias modalg_levent_hpmpmax_upd_equipment_stup setup
  def setup (actor_id)
    # Run Original method
    modalg_levent_hpmpmax_upd_equipment_stup (actor_id)
    equips.each_index { |i| calc_hpmp_bonuses (equips[i]) }
    self.hp = self.maxhp
    self.mp = self.maxmp
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Change Equip
  #--------------------------------------------------------------------------
  #  Adds and subtracts maxhp upon equip
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias modalg_levnthn_maxhpmp_equip_change_9nej change_equip
  def change_equip (equip_type, item, test = false)
    calc_hpmp_bonuses (equips[equip_type], false)
    # Run Original Method
    modalg_levnthn_maxhpmp_equip_change_9nej (equip_type, item, test)
    calc_hpmp_bonuses (item)
    self.hp = [self.hp, self.maxhp].min
    self.mp = [self.mp, self.maxmp].min
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Add HPMP Bonuses
  #    item : the item in question
  #    sign : true => add, false => subtract
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def calc_hpmp_bonuses (item = nil, sign = true)
    return if item == nil
    hp = sign ? item.maxhp : -item.maxhp
    @maxhp_plus += hp
    mp = sign ? item.maxmp : -item.maxmp
    @maxmp_plus += mp
  end
end


MrBoomGood - Wto 03 Maj, 2011 15:30

Działa! Super szukałem czegoś takiego :)
Marson - Pią 02 Wrz, 2011 12:25

Dobre, działa, ale przydał by się jeszcze +ZR +INT itp.
SaE - Sob 03 Wrz, 2011 19:59

A nie można ustawić agility plus i spirit plus dla ekwipunku? Coś mi się zdaje że nie jest potrzebny żaden skrypt ^^
kolkav5 - Czw 21 Cze, 2012 11:00

Super skrypt.
Jeden z najlepszych!
Bardzo go polecam!
Użyję go w swojej grze.
P R O. :papa:

BezimiennyKot1 - Czw 21 Cze, 2012 11:02

Może się przydać... Użyję :-)
Laura - Wto 02 Paź, 2012 12:50

Dzięki za skrypt

Powered by phpBB modified by Przemo © 2003 phpBB Group