FireBlade - Pią 16 Kwi, 2010 20:38 Temat postu: Dziennik zadań
Dziennik Zadań v3.0
Opis
Skrypt na dziennik misji.
Zalety:
- Nie powinien kolidować z innymi skryptami.
- Możliwość dodania nieskończonej liczby zadań.
- Podział na nieukończone i ukończone.
- Gracz na początku gry nie widzi wszystkich zadań.
- Miejsce na krótki opis.
- Miejsce na opis nagrody.
- Tytuł.
- Duży opis po wejściu w tytuł zadania.
Wady:
- Trudny w konfiguracji.
- Wymaga dużo zmiennych do poprawnego działania.
Autor skryptu
Melvin
Kompatybilność
Tylko XP
Skrypt
Spoiler:
Kod:
#==============================================================================
# Scene_Zadania_Menu
#------------------------------------------------------------------------------
# Dziennik zadań by Melvin (v3.0)
#==============================================================================
class Scene_Zadania_Menu
def initialize(menu_index = 0)
@menu_index = menu_index
end
def main
if $game_switches[02] == true
s1 = "Przeprawa"
else
s1 = "???"
end
s2 = "???"
@command_window = Window_Command.new(175, [s1, s2])
@command_window.height = 15 * 32
@quests_window = Window_Zadania_Nazwa.new
@nagroda_window = Window_Zadania_Nagroda.new
@opis1_window = Window_Zadania_Informacja1.new
@opis2_window = Window_Zadania_Informacja2.new
@opis3_window = Window_Zadania_Informacja3.new
@opis4_window = Window_Zadania_Informacja4.new
@opis5_window = Window_Zadania_Informacja5.new
@opis6_window = Window_Zadania_Informacja6.new
@opis7_window = Window_Zadania_Informacja7.new
@opis8_window = Window_Zadania_Informacja8.new
@quests_window.update("")
@nagroda_window.update("")
@opis1_window.update("")
@opis2_window.update("")
@opis3_window.update("")
@opis4_window.update("")
@opis5_window.update("")
@opis6_window.update("")
@opis7_window.update("")
@opis8_window.update("")
@quests_window.x = 175
@quests_window.y = 0
@opis1_window.x = 175
@opis1_window.y = 70
@opis2_window.x = 175
@opis2_window.y = 70
@opis3_window.x = 175
@opis3_window.y = 70
@opis4_window.x = 175
@opis4_window.y = 70
@opis5_window.x = 175
@opis5_window.y = 70
@opis6_window.x = 175
@opis6_window.y = 70
@opis7_window.x = 175
@opis7_window.y = 70
@opis8_window.x = 175
@opis8_window.y = 70
@nagroda_window.x = 175
@nagroda_window.y = 350
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@quests_window.dispose
@opis1_window.dispose
@opis2_window.dispose
@opis3_window.dispose
@opis4_window.dispose
@opis5_window.dispose
@opis6_window.dispose
@opis7_window.dispose
@opis8_window.dispose
@nagroda_window.dispose
end
def update
case @command_window.index
when 0
@quests_window.update("???")
@nagroda_window.update("Nagroda: ???")
@opis1_window.update("???")
@opis2_window.update("")
@opis3_window.update("")
@opis4_window.update("")
@opis5_window.update("")
@opis6_window.update("")
@opis7_window.update("")
@opis8_window.update("")
if $game_switches[02] == true
if $game_switches[01] == true
@quests_window.update(" Zadanie - Ukończone (Dokładny opis)")
@nagroda_window.update("Nagroda: Całkowite wyleczenie")
@opis1_window.update("Dostań się na drugi brzeg")
@opis2_window.update("I dojdź do portalu.")
@opis3_window.update("Musisz wykonać:")
@opis4_window.update("- Przejdź przez rzekę")
@opis5_window.update("- Dostań się do portalu")
@opis6_window.update("To jest główne zadanie")
@opis7_window.update("- Brak")
@opis8_window.update("Dziennik zadań by Melvin (v3.0)")
else
@quests_window.update(" Zadanie - Nieukończone (Dokładny opis)")
@nagroda_window.update("Nagroda: Całkowite wyleczenie")
@opis1_window.update("Dostań się na drugi brzeg")
@opis2_window.update("I dojdź do portalu.")
@opis3_window.update("Zadaniea główne")
@opis4_window.update("- Przejdź przez rzekę")
@opis5_window.update("- Dostań się do portalu")
@opis6_window.update("Zadania dodatkowe")
@opis7_window.update("- Brak")
@opis8_window.update("Dziennik zadań by Melvin (v3.0)")
end
end
when 1
@quests_window.update("???")
@nagroda_window.update("Nagroda: ???")
@opis1_window.update("???")
@opis2_window.update("")
@opis3_window.update("")
@opis4_window.update("")
@opis5_window.update("")
@opis6_window.update("")
@opis7_window.update("")
@opis8_window.update("")
end
@command_window.update
if @command_window.active
update_command
return
end
if @quests_window.active
update_status
return
end
end
def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Menu.new(4)
return
end
if Input.trigger?(Input::C)
if $game_party.actors.size == 0 and @command_window.index < 4
$game_system.se_play($data_system.buzzer_se)
return
end
case @command_window.index
when 0
if $game_switches[02] == true
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@quests_window.active = true
@quests_window.index = 0
else
$game_system.se_play($data_system.buzzer_se)
end
when 1
$game_system.se_play($data_system.buzzer_se)
end
return
end
end
def update_status
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@quests_window.active = false
@quests_window.index = -1
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 0
if $game_switches[02] == true
$game_system.se_play($data_system.decision_se)
$scene = Scene_Zadanie_1.new
end
end
return
end
end
end
#------------------------------------------------------------------------------
# Window_Zadania_Nazwa
#------------------------------------------------------------------------------
class Window_Zadania_Nazwa < Window_Selectable
def initialize
super(0, 0, 465, 70)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = "Comic Sans MS"
self.contents.font.size = 32
self.back_opacity = 255
refresh
self.active = false
self.index = -1
end
def update(text1)
self.contents.clear
self.contents.draw_text(0, 0, 440, 30, text1)
end
def refresh
self.contents.clear
end
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(0, @index * 116, self.width - 32, 30)
end
end
end
#------------------------------------------------------------------------------
# Window_Zadania_Nagroda
#------------------------------------------------------------------------------
class Window_Zadania_Nagroda < Window_Base
def initialize
super(0, 0, 465, 70)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = "Comic Sans MS"
self.contents.font.size = 30
self.back_opacity = 255
end
def update(text2)
self.contents.clear
self.contents.draw_text(0, 0, 440, 32, text2)
end
end
#------------------------------------------------------------------------------
# Window_Zadania_Opis1 (Linijka 1)
#------------------------------------------------------------------------------
class Window_Zadania_Informacja1 < Window_Base
def initialize
super(0, 0, 465, 280)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Comic Sans MS"
self.contents.font.size = 30
self.back_opacity = 255
end
def update(text3)
self.contents.clear
self.contents.draw_text(4, 0, 640, 32, text3)
end
end
#------------------------------------------------------------------------------
# Window_Zadania_Opis2 (Linijka 2)
#------------------------------------------------------------------------------
class Window_Zadania_Informacja2 < Window_Base
def initialize
super(0, 0, 465, 280)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Comic Sans MS"
self.contents.font.size = 30
self.back_opacity = 255
end
def update(text4)
self.contents.clear
self.contents.draw_text(4, 0, 640, 94, text4)
end
end
#------------------------------------------------------------------------------
# Window_Zadania_Opis3 (Linijka 3)
#------------------------------------------------------------------------------
class Window_Zadania_Informacja3 < Window_Base
def initialize
super(0, 0, 465, 280)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Comic Sans MS"
self.contents.font.size = 30
self.back_opacity = 255
end
def update(text5)
self.contents.clear
self.contents.draw_text(4, 0, 640, 156, text5)
end
end
#------------------------------------------------------------------------------
# Window_Zadania_Opis4 (Linijka 4)
#------------------------------------------------------------------------------
class Window_Zadania_Informacja4 < Window_Base
def initialize
super(0, 0, 465, 280)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Comic Sans MS"
self.contents.font.size = 30
self.back_opacity = 255
end
def update(text6)
self.contents.clear
self.contents.draw_text(4, 0, 640, 218, text6)
end
end
#------------------------------------------------------------------------------
# Window_Zadania_Opis5 (Linijka 5)
#------------------------------------------------------------------------------
class Window_Zadania_Informacja5 < Window_Base
def initialize
super(0, 0, 465, 280)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Comic Sans MS"
self.contents.font.size = 30
self.back_opacity = 255
end
def update(text7)
self.contents.clear
self.contents.draw_text(4, 0, 640, 280, text7)
end
end
#------------------------------------------------------------------------------
# Window_Zadania_Opis6 (Linijka 6)
#------------------------------------------------------------------------------
class Window_Zadania_Informacja6 < Window_Base
def initialize
super(0, 0, 465, 280)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Comic Sans MS"
self.contents.font.size = 30
self.back_opacity = 255
end
def update(text8)
self.contents.clear
self.contents.draw_text(4, 0, 640, 342, text8)
end
end
#------------------------------------------------------------------------------
# Window_Zadania_Opis7 (Linijka 7)
#------------------------------------------------------------------------------
class Window_Zadania_Informacja7 < Window_Base
def initialize
super(0, 0, 465, 280)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Comic Sans MS"
self.contents.font.size = 30
self.back_opacity = 255
end
def update(text9)
self.contents.clear
self.contents.draw_text(4, 0, 640, 404, text9)
end
end
#------------------------------------------------------------------------------
# Window_Zadania_Opis8 (Linijka 8)
#------------------------------------------------------------------------------
class Window_Zadania_Informacja8 < Window_Base
def initialize
super(0, 0, 465, 280)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Comic Sans MS"
self.contents.font.size = 30
self.back_opacity = 255
end
def update(text10)
self.contents.clear
self.contents.draw_text(4, 0, 640, 466, text10)
end
end
#==============================================================================
# Scene_Zadania
#==============================================================================
#--------------------------------------------------------------------------
# Scene_Zadanie_1
#--------------------------------------------------------------------------
class Scene_Zadanie_1
def main
@status_window = Window_Zadanie_1.new
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@status_window.dispose
end
def update
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Zadania_Menu.new(0)
return
end
end
end
#--------------------------------------------------------------------------
# Window_Zadanie_1
#--------------------------------------------------------------------------
class Window_Zadanie_1 < Window_Base
def initialize
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Comic Sans MS"
self.contents.font.size = 24
self.back_opacity = 255
refresh
end
def refresh
self.contents.draw_text(4, 0, 640, 32, "Znajdź sposób na dostanie się na drugi brzeg i dojdź do portalu czasu.", 0)
end
end
Dodatki
Brak
Screenshot
Spoiler:
Brak zadań:
Zadanie "Przeprawa" jest nieukończone:
Zadanie "Przeprawa" jest ukończone:
Zaznaczone jest puste zadanie:
Dokładny opis zadania:
Demo 876.25 KB
Instalacja skryptu
1 - Wkleić skrypt nad main w edytorze skryptów.
Dalsza instalacja: (Instalacja pozycji w menu)
when 6 # quests
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to end game screen
$scene = Scene_Zadania_Menu.new
Po:
Cytat:
when 5 # end game
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to end game screen
$scene = Scene_End.new
Konfiguracja
Zmiana ustawień skryptu znajduję się na początku kodu.
Dodatkowe informacje
- Działa na polskiej jak i angielskiej wersji R'M XP.Czeliosss - Pią 16 Kwi, 2010 20:46 Skrypt fajny, ale powiedz Melvinowi, żeby dał też jakieś okno na obrazek to było by dobrze.
Typ obrazka:
- Postać od, której się dostało misję
- screen przedstawiający misję
- Przedmiot do zdobycia
- Nagroda
Pzdr.Nemma12 - Pią 11 Lut, 2011 17:52 ej a jak misje otszymac??superbaton - Pon 28 Lut, 2011 17:23 Moze by ktos podal jak uzyskac misje?Bezel - Nie 19 Cze, 2011 16:49 Może ktoś z re-hostować ?Melvin - Nie 19 Cze, 2011 17:19 http://rmxp.pl/index.php?topic=5055.0
Tu macie nowszą wersję.Bezel - Nie 19 Cze, 2011 18:24 A, można zrobić by nie było tych znaków zapytania jak nie masz tego zadania tylko poprostu pustka ?Melvin - Nie 19 Cze, 2011 18:31 Daruj sobie już ten skrypt, bo jak nie wiesz jak to usunąć, to go na pewno nie skonfigurujesz..Bezel - Nie 19 Cze, 2011 18:57 Narazie wogóle go nie sprawdzałem, ale widziałem, że były tam znaki zapytania...
Nie znam ruby, ale skrypt skonfigurować umiem...
Czy da się to przestawić w opcjach czy coś?Melvin - Nie 19 Cze, 2011 20:26 Jak zajrzysz w skrypt to się dowiesz...
Cytat:
Nie znam ruby, ale skrypt skonfigurować umiem...
A ten skrypt wymaga podstaw Ruby.MSQI - Nie 19 Cze, 2011 20:49 w dokładnie w które miejsce wkleić ten skrypt?Melvin - Nie 19 Cze, 2011 21:22 http://www.ultimateam.pl/viewtopic.php?t=2254MSQI - Nie 19 Cze, 2011 22:09 wkleiłem tak jak pokazane w tym poradniku najnowszą wersję twojego skryptu i jak klikam esc to nie ma tam zakładki zadaniaMelvin - Nie 19 Cze, 2011 22:13 OMG!!!!!!!!!!!!!!!!!!! TO TRZEBA DODAĆ W MENU!!!!MSQI - Pon 20 Cze, 2011 06:45 jak?Melvin - Pon 20 Cze, 2011 14:57 http://www.ultimateam.pl/viewtopic.php?t=2482
Tak samo jak to, tylko że w Scene_Menu.
Daruj sobie ten skrypt, bo i tak go nie będziesz umiał skonfigurować...Bezel - Pon 20 Cze, 2011 15:38 Pozostawie twój post bez komentarza, bo po prostu nie wiesz czasem co powiedzieć...
Nie znasz moich możliwości więc nie ci tu sądzić...
EDIT : Z resztą ten skrypt to beznadzieja gdyż teraz używam lepszego wg. mnie i jak widać większości skryptu...Melvin - Pon 20 Cze, 2011 18:40
Bezel napisał/a:
Nie znam ruby, ale skrypt skonfigurować umiem...
Czy da się to przestawić w opcjach czy coś?
Bezel napisał/a:
Nie znasz moich możliwości więc nie ci tu sądzić...
Jakbyś coś umiał, to byś nie pytał.
A wtedy ja bym Ci nie odpowiedział, żebyś sobie darował.
Cytat:
EDIT : Z resztą ten skrypt to beznadzieja gdyż teraz używam lepszego wg. mnie i jak widać większości skryptu...
Typowe wypowiedzenie 10 latka z IQ -5, który bulwersuje się, gdy ktoś się go czepia...MSQI - Pon 20 Cze, 2011 18:45 melvin chyba masz racje dam sobie spokój ;]
powiedz mi tylko jak to ejst w niektórych skryptach pisze, że skrypt wywołuje się takim i takim czymś np. scene coś tam gdzie to wkleić czy coś?Melvin - Pon 20 Cze, 2011 19:09 W poleceniu "Call script" (3 strona edycji eventa), wpisujesz:
Kod:
$scene = NAZWA.new
NAZWA - Klasa którą chcesz wywołać.
Jeśli podoba Ci się wygląd mojego dziennika to TU masz podobny i prostszy w konfiguracji.MSQI - Pon 20 Cze, 2011 20:23 dzięki chyba się, jednak nie skuszę dzięki za to że próbowałeś mi pomóc ;]matitus09 - Wto 27 Gru, 2011 11:35 Korzystam z pierwszej wersji skryptu bo druga mi się mniej podoba ale demo nie chce się pobrać.
Możesz mi powiedzieć jakim hasłem się odblokowuje zadanie.Melvin - Wto 27 Gru, 2011 13:08 Na przełącznikach. Tak mi się wydaje, że tylko ja ogarniam ten skrypt xD