Ogłoszenie 

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


Administracja Forum


Poprzedni temat «» Następny temat
Zamknięty przez: Ayene
Czw 01 Kwi, 2010 13:25
CMS
Autor Wiadomość
Melvin 




Preferowany:
RPG Maker XP

Ranga RM:
1 gra

Pomógł: 35 razy
Dołączył: 23 Paź 2009
Posty: 1063
Wysłany: Wto 30 Mar, 2010 16:58
CMS
ELO!!!!

Znów mam problem z moim CMS'em....

Po 1. Coś mi się okienko zacięło i bohater nie chodzi...
Helpnie ktoś?

Tu mój skrypt:
Spoiler:

Kod:
#==============================================================================
# C M S
#------------------------------------------------------------------------------
# CMS by Melvin
#==============================================================================
#------------------------------------------------------------------------------
# class Scene_CMS
#------------------------------------------------------------------------------
class Scene_CMS
  def main
    @okno1 = Window_Gold_CMS.new
    @okno2 = Window_PlayTime_CMS.new
    @okno3 = Window_Steps_CMS.new
    @okno4 = Window_Location_CMS.new
    @okno5 = Window_MenuStatus_CMS.new
    @okno1.x = -160
    @okno1.y = 95
    @okno2.x = 640
    @okno2.y = 158
    @okno3.x = -160
    @okno3.y = 0
    @okno4.x = 160
    @okno4.y = -65
    @okno5.x = 420
    @okno5.y = 480
    @spriteset = Spriteset_Map.new
    @appearing = true
    @disappearing = false
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @okno1.dispose
    @okno2.dispose
    @okno3.dispose
    @okno4.dispose
    @okno5.dispose
    @spriteset.dispose
  end
  def appear   
    @okno1.x += 5 if @okno1.x < 0
    @okno2.x -= 5 if @okno2.x > 0
    @okno3.x += 5 if @okno3.x < 0
    @okno4.y += 2 if @okno4.y < 0
    @okno5.y -= 5 if @okno5.y > 0
    if Input.trigger?(Input::B)
      @appearing = false   
    end   
    if @okno1.x == 0 and @okno2.x == 0 and @okno3.x == 0 and
      @okno4.y == 0 and @okno5.y == 0
      @appearing = false
    end
  end
 
  def disappear
    @okno1.x -= 5 if @okno1.x > -160
    @okno2.x += 15 if @okno2.x < 640
    @okno3.x -= 5 if @okno3.x > -160
    @okno4.y -= 2 if @okno4.y > -65
    @okno5.y += 7 if @okno5.y < 480
    if @okno1.x == -160 and @okno2.x == 640 and @okno3.x == -160 and
      @okno4.y == -65 and @okno5.y == 480
      $scene = Scene_Map.new
    end
  end
  def update
    if @appearing
      appear
    end
    if @disappearing
      disappear
    end
    @okno1.update
    @okno2.update
    @okno3.update
    @okno4.update
    @okno5.update
    @spriteset.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @disappearing = true
    end
  end
end
#--------------------------------------------------------------------------
# Window_Steps_CMS
#--------------------------------------------------------------------------
class Window_Steps_CMS < Window_Base
  def initialize
    super(0, 0, 160, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "Ilość kroków")
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 32, 120, 32, $game_party.steps.to_s, 2)
    self.back_opacity = 255
  end
end
#--------------------------------------------------------------------------
# Window_PlayTime_CMS
#--------------------------------------------------------------------------
class Window_PlayTime_CMS < Window_Base
  def initialize
    super(0, 0, 160, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "Czas gry")
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 32, 120, 32, text, 2)
    self.back_opacity = 255
  end
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end
#--------------------------------------------------------------------------
# Window_Gold_CMS
#--------------------------------------------------------------------------
class Window_Gold_CMS < Window_Base
  def initialize
    super(2, 77, 160, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  def refresh
    self.contents.clear
    cx = contents.text_size($data_system.words.gold).width
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
    self.back_opacity = 255
  end
end
class Game_Map
  def name
    $map_info[@map_id]
  end
end
class Scene_Title
  $map_info = load_data("Data/MapInfos.rxdata")
  for key in $map_info.keys
    $map_info[key] = $map_info[key].name
  end
end
class Window_Base < Window
end
#--------------------------------------------------------------------------
# Window_Location_CMS
#--------------------------------------------------------------------------
class Window_Location_CMS < Window_Base
  def initialize
    super(0, 0, 480, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = "Arial"
    self.contents.font.size = 22
    self.back_opacity = 255
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.draw_text(0, 0, 100, 32, "Lokacja:", 1)
    self.contents.draw_text(0, 0, 350, 32, $game_map.name, 1)
  end
end
#------------------------------------------------------------------------------
# Window_MenuStatus_CMS
#------------------------------------------------------------------------------
class Window_MenuStatus_CMS < Window_Selectable
  def initialize
    super(0, 0, 220, 320)
    self.contents = Bitmap.new(width - 32, height - 32)
    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 * 116
      actor = $game_party.actors[i]
      draw_actor_graphic(actor, x - 40, y + 80)
      draw_actor_name(actor, x, y)
      draw_actor_class(actor, x + 144, y)
      draw_actor_level(actor, x, y + 32)
      draw_actor_state(actor, x + 90, y + 32)
      draw_actor_exp(actor, x, y + 64)
      draw_actor_hp(actor, x + 236, y + 32)
      draw_actor_sp(actor, x + 236, y + 64)
    end
  end
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
    end
  end
end



Po 2. Jak zrobić w CMS'e menu z polem do zaznaczania?
Oczywiście z animacją wjazdową...

Pzdr
________________________
MelvinClass:
Spoiler:

 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 31 Mar, 2010 07:53
1. Scene_Map załącza się dopiero wówczas, gdy:
Kod:
@okno1.x == -160 and @okno2.x == 640 and @okno3.x == -160 and
      @okno4.y == -65 and @okno5.y == 480

jeżeli do położenia np. @okno2 dajesz przyrost 15, to nie ma jak osiągnąć wartości 640 (podziel 640 na 15, pozostaje reszta, a nie powinna). Dlatego Scene_map się nie włącza i nie możesz chodzić postacią.

2. O jakie menu 'z polem do zaznaczenia' Tobie chodzi?
________________________


 
 
 
Melvin 




Preferowany:
RPG Maker XP

Ranga RM:
1 gra

Pomógł: 35 razy
Dołączył: 23 Paź 2009
Posty: 1063
Wysłany: Sro 31 Mar, 2010 17:01
Cytat:
2. O jakie menu 'z polem do zaznaczenia' Tobie chodzi?

Chodzi mi o takie jak:
Plecak
Czary
Ekwipunek
ipt........

A jeszcze co do 1:
THX! :-D
________________________
MelvinClass:
Spoiler:

 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Czw 01 Kwi, 2010 13:15
Jak podejrzysz klasę Scene_Manu to zobaczysz kod:
Kod:
s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Status"
    s5 = "Save"
    s6 = "End Game"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index

i właśnie ten fragment odpowiada za stworzenie okna poleceń (window command).
________________________


 
 
 
Melvin 




Preferowany:
RPG Maker XP

Ranga RM:
1 gra

Pomógł: 35 razy
Dołączył: 23 Paź 2009
Posty: 1063
Wysłany: Czw 01 Kwi, 2010 13:23
Ah... Dzięki Wielki!!! :przytul:
Można zamknąć.
________________________
MelvinClass:
Spoiler:

 
 
Wyświetl posty z ostatnich:   
Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi
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