UltimaForum

Skrypty [XP] - Mini CMS

PaKiTos - Sro 22 Gru, 2010 18:42
Temat postu: Mini CMS
Taki CMS, ale mniejszy
Spoiler:

Kod:
#MINI CMS

class Scene_Menu
 
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
 
  def main
 @telko = Spriteset_Map.new
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Status"
    s5 = "Zapis gry"
    s6 = "Koniec"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
 
    if $game_party.actors.size == 0
 
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
 
    if $game_system.save_disabled
 
      @command_window.disable_item(4)
    end
 
 
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 224
 
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
 
    Graphics.transition
 
    loop do
 
      Graphics.update
 
      Input.update
 
      update
 
      if $scene != self
        break
      end
    end
 
    Graphics.freeze
 
    @command_window.dispose
    @gold_window.dispose
    @status_window.dispose
    @telko.dispose
  end
 
  def update
 
    @command_window.update
    @gold_window.update
    @status_window.update
 
    if @command_window.active
      update_command
      return
    end
 
    if @status_window.active
      update_status
      return
    end
  end
 
  def update_command
 
    if Input.trigger?(Input::B)
 
      $game_system.se_play($data_system.cancel_se)
 
      $scene = Scene_Map.new
      return
    end
 
    if Input.trigger?(Input::C)
 
      if $game_party.actors.size == 0 and @command_window.index < 4
 
        $game_system.se_play($data_system.buzzer_se)
        return
      end
 
      case @command_window.index
      when 0   
 
        $game_system.se_play($data_system.decision_se)
 
        $scene = Scene_Item.new
      when 1 
 
        $game_system.se_play($data_system.decision_se)
 
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2 
        $game_system.se_play($data_system.decision_se)       
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 3         
        $game_system.se_play($data_system.decision_se)       
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 4       
        if $game_system.save_disabled         
          $game_system.se_play($data_system.buzzer_se)
          return
        end       
        $game_system.se_play($data_system.decision_se)       
        $scene = Scene_Save.new
      when 5         
        $game_system.se_play($data_system.decision_se)       
        $scene = Scene_End.new
      end
      return
    end
  end
 
  def update_status   
    if Input.trigger?(Input::B)     
      $game_system.se_play($data_system.cancel_se)     
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end   
    if Input.trigger?(Input::C)     
      case @command_window.index
      when 1         
        if $game_party.actors[@status_window.index].restriction >= 2         
          $game_system.se_play($data_system.buzzer_se)
          return
        end       
        $game_system.se_play($data_system.decision_se)     
        $scene = Scene_Skill.new(@status_window.index)
      when 2         
        $game_system.se_play($data_system.decision_se)       
        $scene = Scene_Equip.new(@status_window.index)
      when 3         
        $game_system.se_play($data_system.decision_se)       
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
end
#==============================================================================
# &#9632; Window_MenuStatus
#==============================================================================

class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 220, 150)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $defaultfonttype  # "Main" window font
    self.contents.font.size = $defaultfontsize
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = 64
      y = i * 25
      actor = $game_party.actors[i]
      draw_actor_name(actor, x, y)
    end
  end
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(0, @index * 25, self.width - 22, 22)
    end
  end
end


Jesteś w Pako Arts? Napisz na PMS a powiem jak zrobić takie coś.

Screen:
Spoiler:


Ganiroo - Pią 24 Gru, 2010 14:34

Wklej Screena, bo głupio tak brać w ciemno :P
PaKiTos - Pią 24 Gru, 2010 15:18

To sobie daj do gry
Ganiroo - Pią 24 Gru, 2010 19:15

Niektórzy nie lubią brać w ciemno, więc screen nie zaszkodzi...

Nawet... niby nic ale fajne :P Dodaj jakieś bajery [Tylko błagam nie reputację/liczbę kroków/czas gry] i będzie git...

David - Wto 28 Gru, 2010 15:28

Mi nie działa.
■ - czy to nie ten chiński znaczek w polskiej wersji makera?

PaKiTos - Wto 28 Gru, 2010 15:30

Musi działać, skopiowałeś wszystko dokładnie?
David - Wto 28 Gru, 2010 15:54

Wszystko dokładnie skopiowałem.

Script 'Mini_CMS' line 176: TypeError occurred
no implit conversion from nil to intger

Edit

Zedytowałem te dwie linijki i działa.
Kod:
    self.contents.font.name = "Comic Sans MS"
    self.contents.font.size = 18


Dałbym tak 4/5. Rzeczywiście brakuje jakichś dodatków i dziwnie wyglądają te nazwy bohaterów.

Edit2
Wrzuć na górę:
Spoiler:


PaKiTos - Wto 28 Gru, 2010 16:18

Cytat:
Nie możesz edytować postów, na które jest odpowiedź


Powered by phpBB modified by Przemo © 2003 phpBB Group