Ogłoszenie 

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


Administracja Forum


Poprzedni temat «» Następny temat
Lockpick Minigame - Add-On "PickLock"
Autor Wiadomość
Melvin 




Preferowany:
RPG Maker XP

Ranga RM:
1 gra

Pomógł: 35 razy
Dołączył: 23 Paź 2009
Posty: 1063
Wysłany: Czw 19 Sty, 2012 13:11
Lockpick Minigame - Add-On "PickLock"
~ Lockpick Minigame - Add-On "PickLock" ~


Krótki opis:
Pozwala na ustalenie czasu otwierania zamku. Dodaje też opcję wytrycha.

Autor:
Melvin

Kompatybilność:
RPG Maker XP

Skrypt:
Spoiler:

Kod:
#=========================================================================
#                         === SCRIPT ADD-ON ===
#-------------------------------------------------------------------------
# Name: Lockpick Minigame - Add-on "PickLock"
# Author: Melvin
# Version: 1.1
#-----------------
# HISTORIA ZMIAN
#-----------------
# 1.1:
# Dodano okno informacyjne o końcu czasu.
#=========================================================================
# INSTRUKCJA
#=========================================================================
# Wklejić pod skryptem "Lockpick Minigame", nad main.
# Aby wyświetlić ile pozostało czasu do wyłączenia, należy nacisnąć
# "Shift"(A). Działa tylko w trybie testowym.
#-------------------------------------------------------------------------
# W zdarzeniu umieścić warunek, "Jeśli wytrych jest w ekwipunku":
# Wtedy uruchomi się Lockpick.
#=========================================================================
# KONFIGURACJA
#=========================================================================
module Melvin
# ID wytrycha:
  PickLockID = 33
# Ograniczony czas otwierania: (po upływie nastąpi powrót do mapy)
  Time = true # false
# Utrata wytrycha po wyjściu z minigry:
  LoseEsc = false # true
# Utrata wytrycha po skończeniu się czasu:
  LoseTime = true # false
# Pokazanie okna informacyjnego:
  Info = true # false
# Tekst na oknie informacji:
  InfoText = "Wytych został uszkodzony!"
#-------------------------------------
# Zaawansowane
#-------------------------------------
# Przedział losowania czasu:
  Rand = 3750 # nil - do opcji niżej
# 0 + 3750 = 3750, 3750 + 3750 = 7500
# Zakres = 3750 - 7500
# 5000 = ~2 min
#-------------------------------------
# Jeśli "Rand = nil":
#-------------------------------------
# Główny zakres:
  Rand1 = 3750
# Dodaje do obu stron liczbę:
  Rand2 = 3750
#-------------------------------------
# Czas do pokazania okna informacji:
  InfoTime = 50
#-------------------------------------
end
#=========================================================================
class Game_System
  attr_accessor :timer_lock
  alias gs_ini_mel initialize
  def initialize
    gs_ini_mel
    @timer_lock = 0
  end
  alias gs_up_mel update
  def update
    gs_up_mel
    if Melvin::Time == true and @timer_lock > 0
      @timer_lock -= 1
    end
  end
end
class Scene_LockpickMinigame < SDK::Scene_Base
  alias lm_mv_mel main_variable
  def main_variable
    lm_mv_mel
    if Melvin::Time == true
      if Melvin::Rand != nil
        @rand = Melvin::Rand
        @random_time = rand(@rand)+@rand
      else
        @random_time = rand(Melvin::Rand1)+Melvin::Rand2
      end
      $game_system.timer_lock = @random_time
    end
  end
  alias lm_mw_mel main_window
  def main_window
    @info_window = Window_LockInfo.new
    @info_window.back_opacity = 160
    @info_window.visible = false
    lm_mw_mel
  end
  alias lm_up_mel update
  def update
    if Input.trigger?(Input::B)
      if Melvin::LoseEsc == true
        $game_party.lose_item(Melvin::PickLockID, 1)
      end
      $scene = Scene_Map.new
    end
    if @info_window.visible == false
      if Melvin::Time == true
        if Melvin::Info == true and Melvin::LoseTime == true
          if $game_system.timer_lock == Melvin::InfoTime
            @info_window.visible = true
          end
        end
      end
      lm_up_mel
    end
    if Melvin::Time == true
      $game_system.update
      if $game_system.timer_lock == 0
        if Melvin::LoseTime == true
          $game_party.lose_item(Melvin::PickLockID, 1)
        end
        $scene = Scene_Map.new
      end
      if $DEBUG and Input.press?(Input::A)
        print "Time: #{$game_system.timer_lock}"
      end
    end
  end
end
class Window_LockInfo < Window_Base
  def initialize
    super(140, 240, 380, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    self.contents.draw_text(0, 0, 380, 32, Melvin::InfoText)
  end
end


Dodatkowe informacje:
1. Wklej skrypt nad "Main", pod "Lockpick Minigame" w Edytorze Skryptu.
2. Reszta instrukcji znajduje się w treści skryptu.
 
 
Mateusz SSJ8 




Preferowany:
RPG Maker XP

Pomógł: 1 raz
Dołączył: 07 Sty 2012
Posty: 46
Skąd: Polska
Wysłany: Czw 19 Sty, 2012 20:10
Do ograniczenia czasu na otwarcie zamków można też użyć standardowego stopera i zrobić to na mapie. Główne przełączniki się do tego nadają. Ale ogólnie skrypt wygląda na świetny dla kogoś, kto nie chce użyć standardowej mapy.
________________________
Ryzykując, że zrobisz super gniota, możesz zrobić super hit lub super gniota.
 
 
 
artekwnc 



Preferowany:
RPG Maker XP

Dołączył: 11 Paź 2009
Posty: 110
Wysłany: Czw 19 Sty, 2012 20:24
Próbowałem - w czasie mini gry stoper nie odlicza czasu...
________________________
Quantino
 
 
 
Melvin 




Preferowany:
RPG Maker XP

Ranga RM:
1 gra

Pomógł: 35 razy
Dołączył: 23 Paź 2009
Posty: 1063
Wysłany: Czw 19 Sty, 2012 20:35
Mateusz SSJ8, przecież to inna klasa. Trzeba by ją tak czy inaczej edytować, dodając $game_system.update i warunek, co się stanie jeśli czas = 0.
________________________
MelvinClass:
Spoiler:

 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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