collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: Scene_Shop  (Gelesen 2156 mal)

ERZENGEL

  • Gast
Scene_Shop
« am: Februar 19, 2008, 21:42:05 »
  • Anleitung:
    Einfach normal einfügen. Siehe FAQ (RGSS2, Wie baue ich die Skripte ein?)

  • Screenshot:
    Spoiler for Hiden:

  • Skript:[/u]
    Spoiler for Hiden:
    #==============================================================================
    # ** Scene_Shop by Jão (1.0)
    #==============================================================================
    class Scene_Shop < Scene_Base

      def start
        super
        create_menu_background
        create_command_window
        @help_window = Window_Help.new
        @help_window.y = 360
        @gold_window = Window_Gold.new(384,0)
        @dummy_window = Window_Base.new(0, 112, 544, 304)
        @dummy_window.visible = false
        @buy_window = Window_ShopBuy.new(0, 56)
        @buy_window.active = false
        @buy_window.visible = false
        @buy_window.help_window = @help_window
        @sell_window = Window_ShopSell.new(0, 56, 544, 304)
        @sell_window.active = false
        @sell_window.visible = false
        @sell_window.help_window = @help_window
        @number_window = Window_ShopNumber.new(0, 56)
        @number_window.active = false
        @number_window.visible = false
        @status_window = Window_ShopStatus.new(304, 56)
        @status_window.visible = false
      end

      def terminate
        super
        dispose_menu_background
        dispose_command_window
        @help_window.dispose
        @gold_window.dispose
        @dummy_window.dispose
        @buy_window.dispose
        @sell_window.dispose
        @number_window.dispose
        @status_window.dispose
      end

      def update
        super
        update_menu_background
        @help_window.update
        @command_window.update
        @gold_window.update
        @dummy_window.update
        @buy_window.update
        @sell_window.update
        @number_window.update
        @status_window.update
        if @command_window.active
          update_command_selection
        elsif @buy_window.active
          update_buy_selection
        elsif @sell_window.active
          update_sell_selection
        elsif @number_window.active
          update_number_input
        end
      end

      def create_command_window
        s1 = Vocab::ShopBuy
        s2 = Vocab::ShopSell
        s3 = Vocab::ShopCancel
        @command_window = Window_Command.new(384, [s1, s2, s3], 3)
        @command_window.y = 0
        if $game_temp.shop_purchase_only
          @command_window.draw_item(1, false)
        end
      end

      def dispose_command_window
        @command_window.dispose
      end

      def update_command_selection
        if Input.trigger?(Input::B)
          Sound.play_cancel
          $scene = Scene_Map.new
        elsif Input.trigger?(Input::C)
          case @command_window.index
          when 0  
            Sound.play_decision
            @command_window.active = false
            @dummy_window.visible = false
            @buy_window.active = true
            @buy_window.visible = true
            @buy_window.refresh
            @status_window.visible = true
          when 1  
            if $game_temp.shop_purchase_only
              Sound.play_buzzer
            else
              Sound.play_decision
              @command_window.active = false
              @dummy_window.visible = false
              @sell_window.active = true
              @sell_window.visible = true
              @sell_window.refresh
            end
          when 2  
            Sound.play_decision
            $scene = Scene_Map.new
          end
        end
      end
      
      def update_buy_selection
        @status_window.item = @buy_window.item
        if Input.trigger?(Input::B)
          Sound.play_cancel
          @command_window.active = true
          @dummy_window.visible = false
          @buy_window.active = false
          @buy_window.visible = false
          @status_window.visible = false
          @status_window.item = nil
          @help_window.set_text("")
          return
        end
        if Input.trigger?(Input::C)
          @item = @buy_window.item
          number = $game_party.item_number(@item)
          if @item == nil or @item.price > $game_party.gold or number == 99
            Sound.play_buzzer
          else
            Sound.play_decision
            max = @item.price == 0 ? 99 : $game_party.gold / @item.price
            max = [max, 99 - number].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

      def update_sell_selection
        if Input.trigger?(Input::B)
          Sound.play_cancel
          @command_window.active = true
          @dummy_window.visible = false
          @sell_window.active = false
          @sell_window.visible = false
          @status_window.item = nil
          @help_window.set_text("")
        elsif Input.trigger?(Input::C)
          @item = @sell_window.item
          @status_window.item = @item
          if @item == nil or @item.price == 0
            Sound.play_buzzer
          else
            Sound.play_decision
            max = $game_party.item_number(@item)
            @sell_window.active = false
            @sell_window.visible = false
            @number_window.set(@item, max, @item.price / 2)
            @number_window.active = true
            @number_window.visible = true
            @status_window.visible = true
          end
        end
      end

      def update_number_input
        if Input.trigger?(Input::B)
          cancel_number_input
        elsif Input.trigger?(Input::C)
          decide_number_input
        end
      end

      def cancel_number_input
        Sound.play_cancel
        @number_window.active = false
        @number_window.visible = false
        case @command_window.index
        when 0  
          @buy_window.active = true
          @buy_window.visible = true
        when 1  
          @sell_window.active = true
          @sell_window.visible = true
          @status_window.visible = false
        end
      end

      def decide_number_input
        Sound.play_shop
        @number_window.active = false
        @number_window.visible = false
        case @command_window.index
        when 0  
          $game_party.lose_gold(@number_window.number * @item.price)
          $game_party.gain_item(@item, @number_window.number)
          @gold_window.refresh
          @buy_window.refresh
          @status_window.refresh
          @buy_window.active = true
          @buy_window.visible = true
        when 1  
          $game_party.gain_gold(@number_window.number * (@item.price / 2))
          $game_party.lose_item(@item, @number_window.number)
          @gold_window.refresh
          @sell_window.refresh
          @status_window.refresh
          @sell_window.active = true
          @sell_window.visible = true
          @status_window.visible = false
        end
      end
    end

  • Credits:
    • Jão
  • Links:
    Download (v1.0)
« Letzte Änderung: Februar 19, 2008, 21:43:39 von ERZENGEL »

Scene_Shop

Yatzumo

  • Gast
Scene_Shop
« Antwort #1 am: Februar 20, 2008, 16:36:31 »
Hat sich ja nicht viel verändert, außer dass ein Fenster verschoben wurde. ^^
Mir gefällts persönlich besser, so wie der Standard ist, ist aber Geschmackssache.
Danke fürs Posten.

MFG Yatzumo

Scene_Shop

Izzy

  • Gast
Scene_Shop
« Antwort #2 am: März 22, 2008, 00:24:25 »
Sorry für die blöde Frage, aber wie geht das mit dem Skill Shop?
Muss ich den mit nem EV platzieren, oder wie, und kann ich die Preise selber festlegen?

Scene_Shop

Afenishakur

  • Gast
Scene_Shop
« Antwort #3 am: März 22, 2008, 00:31:47 »
Per Event geht sowas auch, aber nen bissl umständlicher, oder du fügst das oben verspoilerte Script in dein Script Editor ein unter Materials, oder ziehst dir die Demo und kopierst einfach alles =)

edit:
sitz heute schon zulange am rechner -> auffassunggabe vermindert -> seh eigenschaften eingeschränkt
-> selber nicht gesehen das das nur ein verändertes shop interface ist -.-
« Letzte Änderung: März 22, 2008, 01:01:21 von Afenishakur »

Scene_Shop

ERZENGEL

  • Gast
Scene_Shop
« Antwort #4 am: März 22, 2008, 00:55:29 »
@Izzy: Das hier ist kein Skill Shop ^^ Da sind nur die Fenster verändert und man sieht die Map im Hintergrund.
Jedoch gibt es ein Skill Shop Script und wenn du dazu Fragen hast, frag einfach mal in VX Technik nach.

 


 Bild des Monats

rooftop party

Views: 3162
By: papilion

 Umfrage

  • Wer soll das BdM gewinnen?
  • Dot Kandidat 1
  • 3 (25%)
  • Dot Kandidat 2
  • 1 (8%)
  • Dot Kandidat 3
  • 2 (16%)
  • Dot Kandidat 4
  • 0 (0%)
  • Dot Kandidat 5
  • 6 (50%)
  • Stimmen insgesamt: 12
  • View Topic

 Schnellsuche





SimplePortal 2.3.3 © 2008-2010, SimplePortal