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
Pon 23 Sty, 2012 23:43
Lockpick Minigame
Autor Wiadomość
artekwnc 



Preferowany:
RPG Maker XP

Dołączył: 11 Paź 2009
Posty: 110
Wysłany: Sro 18 Sty, 2012 19:00
Lockpick Minigame
Posiadam LockpickMinigame i chciałbym użyć go w projekcie. Ale nie w zwykłej formie, tylko że trzeba posiadać item by móc rozpocząć minigre (np wytrych). To jako tako opanowałem, gorzej jest z tym że chce zrobić, że gdy próbujemy otworzyć zamek zbyt długo (przykładowo - 2 minuty) to wytrych nam się łamie i jak mamy kolejny to dalej możemy próbować otworzyć, a jak nie mamy to kończymy minigre. Ktoś wie jak mógłbym to zrobić?

Demo do tej minigry - http://www.mediafire.com/?wqz0wykgyzt
________________________
Quantino
 
 
 
Feniks 




Preferowany:
RPG Maker XP

Ranga RM:
2 gry

Pomógł: 62 razy
Dołączył: 04 Wrz 2010
Posty: 511
Wysłany: Sro 18 Sty, 2012 19:20
Dołączam się do prośby.
W skrócie:
Załóżmy, że masz 4 wytrychy. Chcesz otworzyć skrzynie. Zaczynasz grać w minigrę. Mijają 2minuty (więcej/mniej) i wytrych się łamie. Zostają 3. Po kolejnym czasie znowu... Jak zostanie 1 i się złamie. Minigra się wyłącza.
________________________

 
 
artekwnc 



Preferowany:
RPG Maker XP

Dołączył: 11 Paź 2009
Posty: 110
Wysłany: Sro 18 Sty, 2012 19:41
Ach i zapomniałem dodać, a nie da się edytować - czy da się zrobić, aby background był przeźroczysty? Gdy dałem takowy i podmieniłem - http://screenshooter.net/5423142/tpxhcbq
________________________
Quantino
 
 
 
Melvin 




Preferowany:
RPG Maker XP

Ranga RM:
1 gra

Pomógł: 35 razy
Dołączył: 23 Paź 2009
Posty: 1063
Wysłany: Sro 18 Sty, 2012 20:24
:lol2: Wytrych to przecież klucz :kable: Ja nie wyrabiam...

Dobra, ale żeby nie spamować to dam Ci kilka rad jak możesz to zrobić. Net mi na PC siadł, więc jestem na razie na lapie i mogę napisać tyle:
Uruchom w tej klasie Sprite_Timer i daj warunek, że jeśli timer == 0 to restartuje minigre i odejmuje zmienną kluczy o 1. Daj też przy wywoływaniu lockpicka, że jeśli zmienna kluczy == 0, nie włącza się.
Kapisz?
________________________
MelvinClass:
Spoiler:

 
 
artekwnc 



Preferowany:
RPG Maker XP

Dołączył: 11 Paź 2009
Posty: 110
Wysłany: Sro 18 Sty, 2012 20:36
Kurde, wytrych to jeden z rodzai klucza, nie zaprzeczam, ale z tą nierównością chodziło mi że to nie jest taki klucz zwykły (bo zrozumiałem że o taki Ci właśnie chodzi). Jeśli nie o to Ci chodzi - nie zrozumieliśmy się.


Co do sposobu - zaraz przetestuje i edit, albo Feniks napisze...
________________________
Quantino
 
 
 
artekwnc 



Preferowany:
RPG Maker XP

Dołączył: 11 Paź 2009
Posty: 110
Wysłany: Sro 18 Sty, 2012 20:44
Teoretycznie - mniej więcej kapisz, praktycznie - gorzej. Nie wiem jak to zrobić to po pierwsze, a też z innych źródeł dostałem info, że gdy takie coś ustawie, nie bd się np dało kupić wytrycha w sklepie ("Tylko, że wtedy w sklepie jak kupisz wytrych, to ci zmiennej nie doda"). Nie wiem jak to wygląda, ktoś obeznany w temacie może się wypowiedzieć?
________________________
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 12:45
Proszę bardzo:
Spoiler:

Kod:
#=========================================================================
#                         === SCRIPT ADD-ON ===
#-------------------------------------------------------------------------
# Name: Lockpick Minigame - Add-on "PickLock"
# Author: Melvin
# Version: 1.0
#=========================================================================
# 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
#-------------------------------------
# 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
#-------------------------------------
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_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
    lm_up_mel
    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


Po około 2-3 minutach minigra się wyłącza i zależnie od konfiguracji tracisz wytrych.
Masz wszystko w instrukcji, w skrypcie.
________________________
MelvinClass:
Spoiler:

 
 
artekwnc 



Preferowany:
RPG Maker XP

Dołączył: 11 Paź 2009
Posty: 110
Wysłany: Czw 19 Sty, 2012 19:22
Zrobiłem to tak - http://screenshooter.net/5423142/qjpvtcy , http://screenshooter.net/5423142/grtbcsm , http://screenshooter.net/5423142/pchwntv . Po odczekaniu tego czasu, wyrzuciło mnie z minigry, próbuje otworzyć skrzynke aby zagrać jeszcze raz minigre a tu - http://screenshooter.net/5423142/kpoxxmy . Gdzie jest problem?

Druga sprawa - czy możesz zrobić jeszcze tak że po wywaleniu z minigry pokazuje się wiadomość - Złamałeś wytrych...



EDIT - pierwszy błąd wyeliminowany (inny switch trzeba ustawić na drugim screenie)
________________________
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 19:38
Omg... Po co usuwasz wytrych w zdarzeniu? Już jest w skrypcie. Czytałeś wgl instrukcję?
Co do 2, zaraz coś zrobię. Dawaj "Pomógł" za moje nerwy i czas xD
________________________
MelvinClass:
Spoiler:

 
 
artekwnc 



Preferowany:
RPG Maker XP

Dołączył: 11 Paź 2009
Posty: 110
Wysłany: Czw 19 Sty, 2012 19:44
Już to zmieniłem, po dodaniu posta...Wcześniej jak zmieniłem w skrypcie na true to i tak mi nie zabrało wytrycha, dlatego dałem potem zdarzenie. Potem znów spróbowałem i zadziałało, więc może nie zauważyłem albo coś... Oczywiście zdarzenie już skasowane. Pomógł leci ;D
________________________
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:38
Trzymaj:
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


Okno włączy się, kiedy licznik będzie wynosił 50(domyślnie).
Tak swoją drogą to wydaje mi się, że lepszym rozwiązaniem było by losowanie liczby na początku i np 10% szansy, że wytrych złamie się przy wkładaniu go do zamka - bardziej prawdopodobne, niż łamanie po jakimś czasie. Później pomyślę nad taką opcją.
________________________
MelvinClass:
Spoiler:

 
 
artekwnc 



Preferowany:
RPG Maker XP

Dołączył: 11 Paź 2009
Posty: 110
Wysłany: Czw 19 Sty, 2012 20:44
Cytat:
Tak swoją drogą to wydaje mi się, że lepszym rozwiązaniem było by losowanie liczby na początku

Chodzi o losowanie i zmienianie tej liczby 3750? Tylko wtedy gdyby dało się ustawić, że nie może być mniej niż 3000 a więcej niż 5000... Bo jak np bd ciężki zamek do otwarcia i bd miał 1000 - nie ma szans na otworzenie...
________________________
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:48
Nie. Chodzi mi o wyłączenie łamania wytrycha po czasie a jedynie możliwość złamania go na początku - przy starcie minigry.
________________________
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