UltimaForum

Skrypty [VX] - Save Point w stylu Finala

Ozzma - Czw 08 Paź, 2009 11:20
Temat postu: Save Point w stylu Finala
Dzień Dobry
Dzisiaj dodam skrypt który umożliwi zapis gry w stylu Final Fantasy. Daje nam on również możliwość zhealowania drużyny za pomocą tentów.

Skrypt ten uruchamia się w evencie komendą:

Kod:
$scene = Scene_Savepoint.new


Print Screen:
Spoiler:




Spoiler:

Kod:
#===========================================
#  Final Fantasy Styled Savepoint System
#               for RMVX
#                 v1.0
#             by  Rubymatt tłum. Ozzma
#===========================================

class Scene_Savepoint < Scene_Base
  def start
    super
    create_menu_background
    create_command_window
  end
  def post_start
    super
    open_command_window
  end
  def terminate
    super
    dispose_command_window
    dispose_menu_background
  end
  def update
    super
    update_menu_background
    @command_window.update
    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
        $scene = Scene_File.new(true, false, true)
      when 1
        if $game_party.item_number($data_items[@tent]) < 1         
          Sound.play_buzzer 
        else
          Sound.play_recovery
          $game_party.lose_item($data_items[@tent], 1, false)
          for actor in $game_party.members
            actor.recover_all
          end
          @command_window.dispose
          create_command_window
          @command_window.index = 1
          @command_window.update
        end
      when 2 
        Sound.play_cancel
        $scene = Scene_Map.new
      end
    end
  end
  def update_menu_background
    super
    @menuback_sprite.tone.set(0, 0, 0, 0)
  end
  def create_command_window
    #początek edycji ---------------------------------
    @tent = 21   #tu zmieniasz ID tenta w bazie danych
    #koniec edycji ----------------------------------
    s1 = Vocab::save
    s2 = "Tent (" + $game_party.item_number($data_items[@tent]).to_s + " left)"
    s3 = Vocab::cancel
    @command_window = Window_Command.new(172, [s1, s2, s3])
    @command_window.x = (544 - @command_window.width) / 2
    @command_window.y = (416 - @command_window.height) / 2
    if $game_party.item_number($data_items[@tent]) < 1         
      @command_window.draw_item(1, false)   
    end
  end
  def dispose_command_window
    @command_window.dispose
  end
  def open_command_window
    @command_window.open
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 255
  end
  def close_command_window
    @command_window.close
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 0
  end
  def dispose_command_window
    @command_window.dispose
  end
end



:cmok:

Skrypt dodany na prośbę użytkownika

Greed - Czw 08 Paź, 2009 13:54

Mnie przyda się na pewno, dzięki :-D

Jeśli można, czy nie dałoby się zrobić tak aby opcja "savu" całkowicie nie była widoczna
w menu głównym?

Squall - Czw 08 Paź, 2009 16:07

Ej ty chyba czytasz w moich myślach :mrgreen: Miałem właśnie napisać żeby ktoś wrzucił taki skrypt, przyda się! Dzięki
Aha jeszcze jedno jak usunąć opcję zapisu z menu ? Z góry dzięki

SaE - Czw 08 Paź, 2009 17:48

Chcesz zablokować przycisk czy go zupełnie usunąć?
Squall - Czw 08 Paź, 2009 17:55

Chcę usunąć opcję save żeby z savepoint tylko była możliwość zapisu gry
SaE - Czw 08 Paź, 2009 18:03

No to skoro nie chcesz żeby ktoś mógł zapisać w każdym momencie gry, to ustawisz na trzeciej stronie Change Save Access na disable.
Squall - Czw 08 Paź, 2009 18:17

Na trzeciej stronie? mogła byś troszkę jaśniej? :-o
Cyklop - Czw 08 Paź, 2009 19:05

Spoiler:


Teraz jasne ;-)

Greed - Czw 08 Paź, 2009 19:15

Ok, opcja save jest przyciemniona co znaczy że nie może być użyta, ale nadal jest widoczna w menu. Mnie chodzi o to by została całkowicie usunięta z menu.
Ozzma - Czw 08 Paź, 2009 20:25

Zapraszam tutaj -> http://www.ultimateam.pl/viewtopic.php?t=2012
Killerczyc - Sro 28 Lip, 2010 11:11

To będzie tak jak we wszystkich seriach Grand Theft Auto ?!
(Tylko w wyznaczonym punkcie będzie można zapisać?!)

[ Dodano: Sro 28 Lip, 2010 13:16 ]
A by zrobić punkt z zapisem muszę wywołać jakiś skrypt ?!
:|

CreeperCrisis - Sro 28 Lip, 2010 11:23

Ozzma napisał/a:
Skrypt ten uruchamia się w evencie komendą:

Kod:
$scene = Scene_Savepoint.new


Czytaj xD

Killerczyc - Sro 28 Lip, 2010 11:42

Przepraszam za moje fazy i wizje
Wystarczy skrypt który usuwa opcje Save w Menu-By Ozzma
Jeśli chcecie by tylko w pewnym punkcie dało się zapisać
zrubcie tak:np.
Pokaż wybór:
-Zapisz
-Wywołaj menu zapisu gry- I tak możecie to zrobić
-Nie teraz
Koniec warunku
Jeśli pomogłem dajcie pomógł, choć sam nie umiem dać opcji pomógł innemu
użytkownikowi :P

[ Dodano: Sro 28 Lip, 2010 15:44 ]
Albo po prostu po dotknięciu zdarzenia wyświetlało się menu zapisu gry

Vznyxn - Nie 07 Lis, 2010 06:52

I'm Bad Men: Chyba nie rozumiesz o co chodzi w całym pomyśle tego skryptu.
A chodzi o to, aby stworzyć klimat w grze... Od kieeeedy tyyyylko pamiętam,
save w rpg'ach na ps'a był tylko i wyłącznie na specjalnych eventach. Ale to lubiło się.
No bo.. co to za uczucie, kiedy zbliżając się do Fou'Lou w Breath of Fire IV, zapisujemy co krok?
No właśnie..
Ten skrypt rządzi! :-)

Seyfer - Nie 13 Lut, 2011 17:09

Mam pytanie 3 pytania odnośnie tego skryptu:
1. jak zmienić opcje Save, Tent (X left) i Cancel na język polski?
2. Jak ustawić ilość tentów?
3. I żeby dało się wywołać save menu na tzw. mapie świata, używając jakiegoś przycisku?

Ayene - Pon 14 Lut, 2011 08:06

1. Słowa Save i Cancel możesz edytować w Bazie danych w zakładce Terms. Co do tenta, to znajdź linijkę:
Kod:
s2 = "Tent (" + $game_party.item_number($data_items[@tent]).to_s + " left)"

i po prostu zmień fragment 'Tent' np. na 'Namiot'

2. Edytuj linijkę:
Kod:
@tent = 21   #tu zmieniasz ID tenta w bazie danych

'ID tenta', czyli ID przedmiotu Tent w bazie danych. Ile gracz ma namiotów przy sobie, tyle może ich użyć.

3. Możesz skorzystać z Common Eventsa (CE). Ustaw 'trigger' na Parallel, wybierz przełącznik, który musi być podczas gry aktywowany. W treści CE wstaw warunek - 4 strona, opcja Button i wybierz przycisk, a w środku warunku wpisz komendę:
Kod:
$scene = Scene_Savepoint.new

Seyfer - Pon 14 Lut, 2011 12:04

Dzięki za pomoc.
I jeszcze jedno, da się ustawić przycisk inny niż te które są do wyboru?

Ayene - Pon 14 Lut, 2011 12:54

Można ustawić inny przycisk, wówczas trzeba by było skorzystać ze skryptu na dodatkowe klawisze :arrow: http://www.ultimateam.pl/viewtopic.php?t=2602
Wyrzuć warunek w Common Eventsie i wpisz w jego treści tylko (Script):
Kod:
if Input.trigger?(Input::Letters["T"])
$scene = Scene_Savepoint.new
end

Możesz wybrać inną literkę (ja dałam 'T') :->

Mikołaj - Pon 14 Lut, 2011 15:43

Naprawdę fajny skrypt :-D
piotrb7 - Pią 20 Sty, 2012 12:58

thx :D
aha i dzięki ayene że wytłumaczyłaś ten kawałek :-)
a tak.. skrypt:
bardzo mi się podoba
przyda mi się :)

kolkav5 - Czw 21 Cze, 2012 11:03

To mój ulubiony skrypcik.
Jest trudniej jak nie możesz zapisać tuż przed walką.
Pro skrypt!
:lol: :lol:


Powered by phpBB modified by Przemo © 2003 phpBB Group