UltimaForum

Skrypty [XP] - Animowany title .

Bevoo - Pon 25 Sty, 2010 18:27
Temat postu: Animowany title .
Ten skrypt pozwala na zmienianie napisów titla na obrazek, tzn. tworzymy trzy obrazki w titles o nazwie 1,2,3 po obrazek nr. 1 będzie oznaczał "Nowa Gra", obrazek nr. 2 "Wczytaj" a nr. 3 "Koniec" zamiast podstawowego windowskinu .

Prościej .:

W Moje Dokumenty/RPGXP/"Twój projekt"/Graphics/Titles - Musisz zrobić Trzy titlesy o nazwach 1,2,3 .

Następnie wklejacie to zamiast Scene_Title

Uwaga, obrazki muszą być w takich wymiarach jak, 640x480 .

Spoiler:

Kod:
#=====================================================
# ** Scene_Title
#------------------------------------------------------------------------------
#  This class performs title screen processing.
#=========================================================

class Scene_Title
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # If battle test
    if $BTEST
      battle_test
      return
    end
    # Load database
    $data_actors        = load_data("Data/Actors.rxdata")
    $data_classes       = load_data("Data/Classes.rxdata")
    $data_skills        = load_data("Data/Skills.rxdata")
    $data_items         = load_data("Data/Items.rxdata")
    $data_weapons       = load_data("Data/Weapons.rxdata")
    $data_armors        = load_data("Data/Armors.rxdata")
    $data_enemies       = load_data("Data/Enemies.rxdata")
    $data_troops        = load_data("Data/Troops.rxdata")
    $data_states        = load_data("Data/States.rxdata")
    $data_animations    = load_data("Data/Animations.rxdata")
    $data_tilesets      = load_data("Data/Tilesets.rxdata")
    $data_common_events = load_data("Data/CommonEvents.rxdata")
    $data_system        = load_data("Data/System.rxdata")
    # Make system object
    $game_system = Game_System.new
    # Make title graphic
    @sprite = Sprite.new
   
    # NEW CODE
    @back_sprite = Sprite.new
    @back_sprite.z = @sprite.z - 10
   
    # transition between images, set to 0 if none
    @transition_frames = 10
    @delta = 255 / @transition_frames
    @wait = 0
    #END NEW CODE
   
    # Continue enabled determinant
    # Check if at least one save file exists
    # If enabled, make @continue_enabled true; if disabled, make it false
    @continue_enabled = false
    for i in 0..3
      if FileTest.exist?("Save#{i+1}.rxdata")
        @continue_enabled = true
      end
    end
   
    # If continue is enabled, move cursor to "Continue"
    # NEW CODE
    if @continue_enabled
      @sprite.bitmap = RPG::Cache.title("2")
      @back_sprite.bitmap = RPG::Cache.title("2")
      @index = 2
    else
      @sprite.bitmap = RPG::Cache.title("1")
      @back_sprite.bitmap = RPG::Cache.title("1")
      @index = 1
    end
    # END NEW CODE
   
    # Play title BGM
    $game_system.bgm_play($data_system.title_bgm)
    # Stop playing ME and BGS
    Audio.me_stop
    Audio.bgs_stop
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze

    # Dispose of title graphic
    @sprite.bitmap.dispose
    @sprite.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # NEW CODE
    if @wait >= 0
      if @wait == 0
        @sprite.bitmap = RPG::Cache.title(@index.to_s)
        @sprite.opacity = 255
      else
        @sprite.opacity -= @delta
      end
      @wait -= 1
      return
    end
    # if directional buttons are pressed
    if Input.trigger?(Input::LEFT) or Input.trigger?(Input::UP)
      $game_system.se_play($data_system.cursor_se)
      if @index == 1
        @index = 3
      else
        @index -= 1
      end
      @wait = @transition_frames
      @back_sprite.bitmap = RPG::Cache.title(@index.to_s)
    end
    if Input.trigger?(Input::RIGHT) or Input.trigger?(Input::DOWN)
      $game_system.se_play($data_system.cursor_se)
      if @index == 3
        @index = 1
      else
        @index += 1
      end
      @wait = @transition_frames
      @back_sprite.bitmap = RPG::Cache.title(@index.to_s)
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by index
      case @index
      when 1  # New game
        command_new_game
      when 2  # Continue
        command_continue
      when 3  # Shutdown
        command_shutdown
      end
    end
    # END NEW CODE
  end
  #--------------------------------------------------------------------------
  # * Command: New Game
  #--------------------------------------------------------------------------
  def command_new_game
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Stop BGM
    Audio.bgm_stop
    # Reset frame count for measuring play time
    Graphics.frame_count = 0
    # Make each type of game object
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables     = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party         = Game_Party.new
    $game_troop         = Game_Troop.new
    $game_map           = Game_Map.new
    $game_player        = Game_Player.new
    # Set up initial party
    $game_party.setup_starting_members
    # Set up initial map position
    $game_map.setup($data_system.start_map_id)
    # Move player to initial position
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    # Refresh player
    $game_player.refresh
    # Run automatic change for BGM and BGS set with map
    $game_map.autoplay
    # Update map (run parallel process event)
    $game_map.update
    # Switch to map screen
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # * Command: Continue
  #--------------------------------------------------------------------------
  def command_continue
    # If continue is disabled
    unless @continue_enabled
      # Play buzzer SE
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to load screen
    $scene = Scene_Load.new
  end
  #--------------------------------------------------------------------------
  # * Command: Shutdown
  #--------------------------------------------------------------------------
  def command_shutdown
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Fade out BGM, BGS, and ME
    Audio.bgm_fade(800)
    Audio.bgs_fade(800)
    Audio.me_fade(800)
    # Shutdown
    $scene = nil
  end
  #--------------------------------------------------------------------------
  # * Battle Test
  #--------------------------------------------------------------------------
  def battle_test
    # Load database (for battle test)
    $data_actors        = load_data("Data/BT_Actors.rxdata")
    $data_classes       = load_data("Data/BT_Classes.rxdata")
    $data_skills        = load_data("Data/BT_Skills.rxdata")
    $data_items         = load_data("Data/BT_Items.rxdata")
    $data_weapons       = load_data("Data/BT_Weapons.rxdata")
    $data_armors        = load_data("Data/BT_Armors.rxdata")
    $data_enemies       = load_data("Data/BT_Enemies.rxdata")
    $data_troops        = load_data("Data/BT_Troops.rxdata")
    $data_states        = load_data("Data/BT_States.rxdata")
    $data_animations    = load_data("Data/BT_Animations.rxdata")
    $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
    $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
    $data_system        = load_data("Data/BT_System.rxdata")
    # Reset frame count for measuring play time
    Graphics.frame_count = 0
    # Make each game object
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables     = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party         = Game_Party.new
    $game_troop         = Game_Troop.new
    $game_map           = Game_Map.new
    $game_player        = Game_Player.new
    # Set up party for battle test
    $game_party.setup_battle_test_members
    # Set troop ID, can escape flag, and battleback
    $game_temp.battle_troop_id = $data_system.test_troop_id
    $game_temp.battle_can_escape = true
    $game_map.battleback_name = $data_system.battleback_name
    # Play battle start SE
    $game_system.se_play($data_system.battle_start_se)
    # Play battle BGM
    $game_system.bgm_play($game_system.battle_bgm)
    # Switch to battle screen
    $scene = Scene_Battle.new
  end
end



Niestety łatwiej tego wytłumaczyć nie potrafię ...

Malian - Pon 25 Sty, 2010 18:44

No dobra ale w mojej grze jest troche ten skrypt zmodyfikowany, czyli mam cztery napisy zamiast trzech. Dla niektorych trzeba przetlumaczyc.
kamil26p2 - Czw 18 Lut, 2010 10:53

Ej ma ktoś skrypt na swoje enu główne prosze dajcie.......... :-(
Czeliosss - Czw 18 Lut, 2010 18:18

Cytat:
mojej grze jest trochę ten skrypt zmodyfikowany, czyli mam cztery napisy zamiast trzech. Dla niektórych trzeba przetłumaczyć.
U mnie podobnie, tylko że ja mam pięć. kamil26p2, nie wiem o co ci chodzi. Jak chcesz rozszerzyć ekran tytułowy jak ma Malian, to wejdź w mojego tutka.
kamcio22 - Nie 21 Mar, 2010 16:50

when 4 # Shutdown
command_shutdown

sprubójcie dopisać ;p, musicie tylko poszukać :D.

4Garbi - Nie 18 Kwi, 2010 17:49

I dałby ktoś może scenera?
Przydał by sie :-P

Valdali - Sob 29 Maj, 2010 10:09

Do tego skryptu nie da się dać screena. Są to przecież oddzielne obrazki. Dasz strzałkę w dół np. na wczytaj grę to ci się pojawi inny obrazek ;)

a tak wogóle to mi skrypt się przydał... dzięki!

Izaya - Nie 06 Cze, 2010 12:48

Skrypt bardzo fajny i w ogóle, ale jak daje kontynuuj grę to wyskakuje mi tylko SE a nic się nie dzieje, jestem nadal w Ekranie Tytułowym.
Może mi ktoś Pomóc?
Spróbuje jeszcze raz, lecz wątpię czy pójdzie.
Jakby co to mam PL wersje Maker'a.

[ Dodano: Czw 24 Cze, 2010 12:50 ]
Nie otwiera się =,='
Szkoda, tak bardzo chciałbym mieć ten skrypt w moim projekcie :cry:

Valdali - Pon 28 Cze, 2010 15:24

Bo może wcześniej nie zapisałeś gry. Ten skrypt nie zmienia koloru kiedy nie da się wcisnąc danej komędy. a co ci się włącza? buczek czy co?
Izaya - Nie 11 Lip, 2010 10:53

Tak, otwierał się Buczek.
A grę zapisałem chyba 3 razy.
Teraz mi się ten projekt nie chce otworzyć...
Pisze "niespodziewany format pliku".
Jakby ktoś mógł pomóc to będę wdzięczny.
Pozdrawiam :przytul:

Kazuki - Czw 29 Lip, 2010 12:09

Mógłby ktoś mi pomóc i przerobić skrypta w taki sposób aby w menu działału cztery pozycję? :p
U mnie są to:
- Nowa Gra
- Wczytaj
- Autorzy
- Koniec
Problem polega na tym że nie da się wybrać opcji "Koniec" tylko od razu przeskakuje na nowa gra. Próbowałem kombinować ze skryptem w tym miejscu:

when 1 # New game
command_new_game
when 2 # Continue
command_continue
when 3 # Authors
command_continue
when 4 # Shutdown

Chcąc tą trójkę zostawić na później ale opcja "Koniec" nadal nie działa.
Oczywiście odpowiedni obrazek mam wrzucony do folderu z projektem pod nazwą "4".
Pomoże mi ktoś? :-(

Sabikku - Pią 30 Lip, 2010 19:23

I (ograniczenie zmiany opcji przy obsłudze klawiatury). Pozmieniaj trójki (3) na czwórki (4) w tych miejscach:
Kod:
$game_system.se_play($data_system.cursor_se)
      if @index == 1
        @index = 3

Kod:
$game_system.se_play($data_system.cursor_se)
      if @index == 3
        @index = 1


II (dodanie nowego 'odnosnika' dla nowej opcji). Zamień:
Kod:
when 1  # New game
        command_new_game
      when 2  # Continue
        command_continue
      when 3  # Shutdown
        command_shutdown
      end

na
Kod:
when 1  # New game
        command_new_game
      when 2  # Continue
        command_continue
      when 3  # Autorzy
        command_autorzy
      when 4  # Shutdown
        command_shutdown
      end


III (kod, do którego prowadzi 'odnośnik'). Przed ostatnim 'end' w skrypcie wklej:
Kod:
  def command_autorzy
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Stop BGM
    Audio.bgm_stop
    # Reset frame count for measuring play time
    Graphics.frame_count = 0
    # Make each type of game object
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables     = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party         = Game_Party.new
    $game_troop         = Game_Troop.new
    $game_map           = Game_Map.new
    $game_player        = Game_Player.new
    # Set up initial party
    $game_party.setup_starting_members
    # Set up initial map position
    $game_map.setup(ID_MAPY)
    # Move player to initial position
    $game_player.moveto(X_NA_MAPIE, Y_NA_MAPIE)
    # Refresh player
    $game_player.refresh
    # Run automatic change for BGM and BGS set with map
    $game_map.autoplay
    # Update map (run parallel process event)
    $game_map.update
    # Switch to map screen
    $scene = Scene_Map.new
  end

Zamiast ID_MAPY, X_NA_MAPIE i Y_NA_MAPIE daj liczby odpowiadające mapie z autorami (mapie, na której dasz zdarzenie autostart wyświetlające napisy z autorami).

Jeśli zrobiłeś wszystko jak piszę, powinno działać, ale nie sprawdzałem więc nie mam pewności.

Kazuki - Pią 30 Lip, 2010 19:55

Wielkie dzięki, wszystko już działa :)
Jeszcze nie mam gotowej mapki z autorami,
ale gdyby wystąpiły z nią jakieś problemy to się odezwę ;)

Scot - Pią 03 Wrz, 2010 13:17

Ej pomoże ktoś?
Nie wiem czy każdy tak ma ale wszystko zrobiłem dobrze i normalnie są obrazki ale nie ma tych napisów:Nowa gra,wczytaj,koniec..Tak zawsze jest?Czy co?Muszę sam na obrazkach to napisać i zmieniać kolory jeśli najadę na inny obrazek???Proszę o pomoc.

MiT - Pią 03 Wrz, 2010 13:23

Scot.
Usuń Polską wersję i ściągnij Ang.

PaKiTos - Sob 04 Wrz, 2010 08:49

Dodaj RGSS100J.dll do folderu z grą, wtedy na twierdzówce wszystko działa 8-)
Scot - Wto 07 Wrz, 2010 12:58

Ale jak dodaje to wtedy jak odpalam grę to nie działa gra i pisze że rgss przestał działać :/ Ej a jak jest angielski to można spolszczyć go żeby chodził tak samo jak angielski?
radek02 - Pon 11 Paź, 2010 18:29

FilipsO napisał/a:
Ale trzeba mieć właściwe pliki. A to nie są te. Pamiętam kiedyś że chyba na twierdzy albo na innej stronce były. Mogę wysłać na PW.

mateuszglodowski123 - Pią 22 Paź, 2010 19:03

Mangekyou wiem jak naprawić ten buczek
szukasz rubryki z :

Cytat:
#--------------------------------------------------------------------------
# * Command: Continue
#--------------------------------------------------------------------------


i usuwasz

Cytat:
return

Pepczak - Nie 23 Sty, 2011 12:40

Mógłby mi ktoś pomóc? Bo ja tak oprócz Nowa gra, Wczytaj, Wyjście, to chciałbym mieć jeszcze opcje i autorzy. jeśli ktoś pomoże dam pomógł. Z góry dzięks
Shlizer - Nie 23 Sty, 2011 13:59

Zrób dodatkowe sceny (autorzy i opcje - zresztą po cholerę Ci opcje.. sporo z tym roboty, a skoro pytasz jak je dodać to długa droga jeszcze przed Tobą).
Potem dodaj te dwie rzeczy do menu (masz kilka tutów jak dodawać np. autorów - opcje dodaj analogicznie i tylko zmień wnętrze klasy tychże), odświeżanie klas w pętli głównej i viola =p

A tak serio - wątpię, aby ktoś Ci zrobił tak zaawansowane rzeczy jak opcje (a poradniki to autorów masz na tym forum). Jeśli zaczynasz przygodę z RM to lepiej zrób jakiś prosty projekt na start - może być nawet w RTP. Nauczysz się wielu pożytecznych rzeczy i będziesz w stanie robić bardziej zaawansowane projekty.

tracersgta - Nie 23 Sty, 2011 14:02

Przeczytaj ten tutorial:
http://rpgmaker.pl/?co=ku...&id=rmxp-ruby-9

Jak ci nie wyjdzie przeczytaj jeszcze 5 razy.

Xevo - Pią 25 Lut, 2011 17:17

A wie kto jak zrobić aby dwie mgły poruszały się w titlu. :?: :-(
Valdali - Sob 26 Lut, 2011 21:30

załóż temat w dziale pomoc moze ayene ci pomoze :lol:
batista1230 - Sob 17 Wrz, 2011 15:01

Dlaczego jak wgram ten skrypt wszystko działa super oprócz wczytania zapisu skrypt super i chciałem go użyć ale bez wczytywania niema sensu ;-(
Ayene - Nie 18 Wrz, 2011 11:22

batista1230, wytłumacz na spokojnie, o co Tobie chodzi? Nie chcesz opcji wczytywania na ekranie tytułowym?
Valdali - Pon 19 Wrz, 2011 15:05

batista1230, mniemam, że masz polską wersje rpg makera :arrow: :arrow: tnz piracką :arrow: :arrow: tzn. która zawiera wiele błędów. między innymi ten, że nie działa tu opcja wczytania. przykro mi. musisz posiadać anglika :DDD
Heron10 - Pią 21 Gru, 2012 16:50

Valdali napisał/a:
batista1230, mniemam, że masz polską wersje rpg makera :arrow: :arrow: tnz piracką :arrow: :arrow: tzn. która zawiera wiele błędów. między innymi ten, że nie działa tu opcja wczytania. przykro mi. musisz posiadać anglika :DDD


:evil: :evil: :evil: O co ci chodzi? Mi to niedziała w angliku. :-D Szkoda, niewarko pobierać anglika i dobrze, że go niemam.


Batista1230, NIEMUSIŚ POSIADAĆ ANGLIKA, bo to skandal!
W tym skrypcie znajdz linijkę (linijka 52):

Kod:
if FileTest.exist?("Save#{i+1}.rxdata")


i zmień ją na:

Kod:
if FileTest.exist?("Save#{i+1}.sav")



Wszystko działa, bez zbędnego pobierania tego głupiego i bezwartościowego anglika. Jak nadal niedziała to napisz w komentarzu, lub sprawdz czy dobrze zrobiłeś.

ka0909 - Pią 21 Gru, 2012 17:28

Przecież ten skrypt może działać na polskiej wersji tylko że trzeba zaktualizować biblioteczki ^ ^
Heron10 - Nie 23 Gru, 2012 12:11

ka0909 napisał/a:
Przecież ten skrypt może działać na polskiej wersji tylko że trzeba zaktualizować biblioteczki ^ ^


Jakie biblioteczki? Ja niemam biblioteczek i mi działa.

ka0909 - Nie 23 Gru, 2012 22:29

biblioteczki czyli dll. Heron10 musisz mieć te biblioteczki bo inaczej nie mógłbyś odpalić żadnej gry z XP. Przy instalacji programu automatycznie instaluje też biblioteki używane przez gry. A jeśli biblioteczki nie są aktualne to po prostu nowsze skrypty mogą nie działać
albo mogą być problemy ze zgodnością z windowsem itp.^ ^


Powered by phpBB modified by Przemo © 2003 phpBB Group