RPGVX.net

  RPG-Maker VX => VX Skripte [Fertiger Code] => Thema gestartet von: Kasaar am November 16, 2010, 21:44:55

Titel: Xtended Equipment
Beitrag von: Kasaar am November 16, 2010, 21:44:55
So hier stelle ich euch mal ein neues Script von mir zur Verfügung...
Das Xtended Equipment by Hamsterhai...

Was kann es?
Durch einfache Notiz in der Database kann es beim ausrüsten..
- Skills lernen (beim abrüsten verlernen)
- Dem Spieler eine neue Grafik geben
- Einen bestimmten Wert eines Attributs erfordern
- Bestimmten Level erfordern

Die Funktionen sind im Script nachzulesen ;)

v1.1
#-------------------------------------------------------------------------------
#
#                           Xtended Equipment
#                    code by HamsterHai aka. Sartekk
#                           Released 16.11.2010
#                           version 1.1
#
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#   * Funktionen... (In der Notiz)
#
#   E_Level = X
#   Der Charakter muss Level X sein, um das Item ausrüsten zu können
#
#   E_Attack = X
#   Erfordert, dass das Attribut ATK des Charakters = X ist
#
#   E_Defense = X
#   Erfordert, dass das Attribut DEF des Charakters = X ist
#
#   E_Spirit = X
#   Erfordert, dass das Attribut SPI des Charakters = X ist
#
#   E_Agility = X
#   Erfordert, dass das Attribut AGI des Charakters = X ist
#
#   T_Skill = ID
#   Solange das Item ausgerüstet ist, kann der Character den Skill[ID]
#
#   New_Graphic = XY
#   Ändert die Grafik des Charakters in XY
#
#   New_GIndex = X
#   Ändert den Characterset-Index in X
#
#   New_Face = XY
#   Ändert die Face-Grafik des Charakters in XY
#
#   New_FIndex = X
#   Ändert den Faceset-Index in X
#
#    * Es ist ratsam, Groß-/Klein-Schreibung zu berücksichtigen!!!
#
#-------------------------------------------------------------------------------
class Game_Actor < Game_Battler
  
  alias check_for_params equippable?
  def equippable?(item)
    return false if item.e_level != nil and self.level < item.e_level
    return false if item.e_atk != nil and self.atk < item.e_atk
    return false if item.e_def != nil and self.def < item.e_def
    return false if item.e_spi != nil and self.spi < item.e_spi
    return false if item.e_agi != nil and self.agi < item.e_agi
    check_for_params(item)
  end
  
end

class Scene_Equip < Scene_Base
  
  alias ews_t_skill update_item_selection
  def update_item_selection
    @ews_equipped = @actor.equips[@equip_window.index]
    if Input.trigger?(Input::C)
      @ews_item = @item_window.item
      if @ews_equipped != nil and @ews_equipped.t_skill != nil
        @actor.forget_skill(@ews_equipped.t_skill)
      end
      
      if @ews_item != nil and @ews_item.t_skill != nil  
        @actor.learn_skill(@ews_item.t_skill)
      end
      @new_look = false
#-------------------------------------------------------------------------------
      @gra = $game_temp.actor_list[@actor.id][0]
      if @ews_item != nil
        if @ews_item.g_change != nil
          @gra = @ews_item.g_change;@new_look = true
          if @gra.include?('Self')
            @gra.slice!(0,4)
            @gra.insert(0,'$' + @actor.name)
          else
            @gra = @ews_item.g_change;@new_look = true
          end
        else
          @new_look = true
          @gra = $game_temp.actor_list[@actor.id][0]  
          if @gra.include?('Self')
            @gra.slice!(0,4)
            @gra.insert(0,'$' + @actor.name)
          else
            @new_look = true
            @gra = $game_temp.actor_list[@actor.id][0]
          end
        end
      else
        if @ews_equipped.g_change != nil
          @new_look = true
          @gra = $game_temp.actor_list[@actor.id][0]
        else
          @new_look = true
          @gra = $game_temp.actor_list[@actor.id][0]
        end
      end
#-------------------------------------------------------------------------------
      @gri = $game_temp.actor_list[@actor.id][1]
      if @ews_item != nil
        if @ews_item.gi_change != nil
          @gri = @ews_item.gi_change;@new_look = true
        else
          @new_look = true
          @gri = $game_temp.actor_list[@actor.id][1]
        end
      else
        if @ews_equipped.gi_change != nil
          @new_look = true
          @gri = $game_temp.actor_list[@actor.id][1]
        end
      end
      
#-------------------------------------------------------------------------------
      @fa = $game_temp.actor_list[@actor.id][2]
      if @ews_item != nil
        if @ews_item.f_change != nil
          @fa = @ews_item.f_change;@new_look = true  
        else
          @new_look = true
          @fa = $game_temp.actor_list[@actor.id][2]
        end
      else
        if @ews_equipped.f_change != nil
          @new_look = true
          @fa = $game_temp.actor_list[@actor.id][2]
        end
      end
#-------------------------------------------------------------------------------
      @fi = $game_temp.actor_list[@actor.id][3]
      if @ews_item != nil
        if @ews_item.fi_change != nil
          @fi = @ews_item.fi_change;@new_look = true  
        else
          @new_look = true
          @fi = $game_temp.actor_list[@actor.id][3]
        end
      else
        if @ews_equipped.fi_change != nil
          @new_look = true
          @fi = $game_temp.actor_list[@actor.id][3]
        end
      end
      #p(@gra,@gri,@fa,@fi)
#-------------------------------------------------------------------------------
      if @new_look == true
        @actor.set_graphic(@gra,@gri,@fa,@fi)
        $game_player.refresh
      end
    end
    ews_t_skill
  end
  
end


module RPG
  class BaseItem
    
    def e_level
      self.note.each_line { |line|
      return line.gsub('E_Level = ', '').chomp.to_i if line.include?('E_Level = ')
      }
      return nil
    end
    
    def e_atk
      self.note.each_line { |line|
      return line.gsub('E_Attack = ', '').chomp.to_i if line.include?('E_Attack = ')
      }
      return nil
    end
    
    def e_def
      self.note.each_line { |line|
      return line.gsub('E_Defense = ', '').chomp.to_i if line.include?('E_Defense = ')
      }
      return nil
    end
    
    def e_spi
      self.note.each_line { |line|
      return line.gsub('E_Spirit = ', '').chomp.to_i if line.include?('E_Spirit = ')
      }
      return nil
    end
    
    def e_agi
      self.note.each_line { |line|
      return line.gsub('E_Agility = ', '').chomp.to_i if line.include?('E_Agility = ')
      }
      return nil
    end
    
    def t_skill
      self.note.each_line { |line|
      return line.gsub('T_Skill = ', '').chomp.to_i if line.include?('T_Skill = ')
      }
      return nil
    end
    
    
    def g_change
      self.note.each_line { |line|
      return line.gsub('New_Graphic = ', '').chomp.to_s if line.include?('New_Graphic = ')
      }
      return nil
    end
    
    def gi_change
      self.note.each_line { |line|
      return line.gsub('New_GIndex = ', '').chomp.to_i if line.include?('New_GIndex = ')
      }
      return nil
    end
    
    def f_change
      self.note.each_line { |line|
      return line.gsub('New_Face = ', '').chomp.to_s if line.include?('New_Face = ')
      }
      return nil
    end
    
    def fi_change
      self.note.each_line { |line|
      return line.gsub('New_FIndex = ', '').chomp.to_i if line.include?('New_FIndex = ')
      }
      return nil
    end
  end
end

class Game_Temp
  
  attr_accessor :actor_list
  
  alias graphic_change_new_start initialize
  def initialize
    graphic_change_new_start
    @actor_list = {}
  end
end

class Game_Actor < Game_Battler
  
  alias save_origin_gras initialize
  def initialize(actor_id)
    save_origin_gras(actor_id)
      cn = @character_name
      ci = @character_index
      fn = @face_name
      fi = @face_index
      $game_temp.actor_list[actor_id] = [cn,ci,fn,fi]
  end
  
  
end

Fix-Log
Fix-Log
v1.1 - Error behoben bei anderem Grafikname(Blöder Fehler aber auch -.-)

KEIN "" Zur Notiz!!!!

Achso etwas noch:
Solltet ihr ein charset benutzen, welches den Namen eures Helden hat... wie z.b. $Held und wollt mit einer Rüstung die Grafik $Held_Rüstung verwenden, könnt ihr als Notiz auch einfach folgendes benutzen:
New_Graphic = Self_Rüstung


Alle Fehler und Bugs bitte melden! (damit sie behoben werden können)
+Credit-Eintrag wäre nett =)

mfG Hamster
Titel: Re:Xtended Equipment
Beitrag von: Atego am November 16, 2010, 21:48:11
Danke HH^^

Das hilft mir jetzt bei meinem Projekt weiter :D

mfG Atego

EDIT: Ich habs jzt getestet aber ich kapiere nicht:
New_Graphic = XY  Was kommt bei XY?
Titel: Re:Xtended Equipment
Beitrag von: Kasaar am November 16, 2010, 21:54:13
XY steht für den Namen...
X steht für ne Zahl...

Also z.b.
New_Graphic = "$krieger_leder"

ind Die Notizbox von deiner Lederrüstung
Titel: Re:Xtended Equipment
Beitrag von: Atego am November 16, 2010, 21:59:47
Ergebnis als Screenshots:
(http://img694.imageshack.us/img694/8027/equipz.jpg)
(http://img259.imageshack.us/img259/7789/fehlera.jpg)

mfG Atego
Titel: Re:Xtended Equipment
Beitrag von: Kasaar am November 16, 2010, 22:11:51
hm okay ich werd den Fehler beheben und nomma reinstelln
Titel: Re:Xtended Equipment
Beitrag von: CliXx am November 16, 2010, 22:32:12
Wow super Leistung :D
Werd ich bestimtm fpr mein jetziges Projekt verwenden!
Danke Hamster
Titel: Re:Xtended Equipment
Beitrag von: Kasaar am November 16, 2010, 22:53:47
So Fehler ist behoben es sollte jetz klappen...
und noch was... setzt bitte keine "" hinter die Notiz...
So ists Richtig:
New_Graphic = $Krieger_Leder
Titel: Re:Xtended Equipment
Beitrag von: Atego am November 16, 2010, 22:59:23
Habe es getestet und es funktioniert.

HH du bist einfach der beste :D

mfG Atego
Titel: Re:Xtended Equipment
Beitrag von: Syforc am November 18, 2010, 15:30:56
Danke für dieses geile Script! Das kommt perfekt das Script! Suche schon die ganze Zeit solche Scripts ohne Erfolg, das interessanteste ist für mich das es dem Spieler eine neue Graphik  gibt, großes THX! Deine Scripts sind einfach der Hammer!^^
 
mfG Syforc
Titel: Re: Xtended Equipment
Beitrag von: Anykey am Juni 03, 2011, 07:10:36
Edit: geht doch ;) danke
SimplePortal 2.3.3 © 2008-2010, SimplePortal