Krótki opis
Skrypt dodaje Bestiariusz, czyli wykaz wszystkich napotkanych na drodze przeciwników.
Zawiera on opcje:
- wyłączenia/włączenia bestiariusza w menu
- ukrycia konkretnych bestii (by nie były wyświetlane)
- wykorzystania przełącznika, by wyłączyć gromadzenie informacji o przeciwnikach na wybranym etapie gry (wywołanie odpowiedniego skryptu).
Autor skryptu
Woratana [woratana@hotmail.com]
Tłumaczenie i poprawki
Ayene [yurika@o2.pl]
Kompatybilność
Tylko VX
Skrypt
Spoiler:
Kod:
#===============================================================
# [VX] BESTIARIUSZ
#--------------------------------------------------------------
# by Woratana [woratana@hotmail.com]
# tłumaczenie i korekta by Ayene [yurika@o2.pl]
#--------------------------------------------------------------
# ** ZASTOSOWANIE
#--------------------------------------------------------------
# * By otworzyć Bestiariusz wywołaj skrypt:
# $scene = Scene_MonsterBook.new
# * Zresetowanie wykazu bestii:
# $game_system.reset_monbook
#--------------------------------------------------------------
# * Pokaż informacje o potworze z ID:
# $game_system.monbook[id_potwora] = true
# * Ukryj informacje o potworze z ID:
# $game_system.monbook[id_potwora] = false
# ^ Zmień 'id_potwora' na ID wybranej bestii
# ** e.g. $game_system.monbook[10] = true
# pokazuje w Bestiariuszu dane potwora Z ID 10
#===============================================================
module Wora_Monbook
#===============================================================
# ** [Część do edycji] - Konfiguracja skryptu
#--------------------------------------------------------------
SHOW_IN_MENU = true # Pokazuj Bestiariusz w Menu? (true / false)
MENU_COMMAND = 'Bestiariusz' # Nazwa komendy w menu
MENU_INDEX = 2 # Położenie w menu od góry (2 - czyli na trzeciej pozycji)
TEXT_TITLE = 'Bestiariusz'
# Tytuł Bestariusza (Wyświetla się w górnym lewym rogu okna)
TEXT_FOUND = 'Znalezione: '
# Tekst przed liczbą znalezionych potworów
TEXT_COMPLETED = 'Pokonane: '
# Tekst przed wykazem procentowym pokonanych bestii
NO_RECORD_SWITCH = 10
# Włączony przełącznik na ON -> nowo napotkane potwory nie będą dodawane do
# bestiariusza.
NO_DATA_MONSTER = [1, 3]
# Ukrywa bestie w bestariuszu. Wystarczy wpisać ID potwora.
# np. [1, 3, 5] ukrywa potwory z ID 1, 3 i 5.
module AYENE # <-- nie usuwać
TEKST_ZLOTA = 'ZŁ' # tekst ZŁOTA w bestiariuszu
TEKST_PD = 'PD' # tekst PUNKTÓW DOŚWIADCZENIA
TEKST_HIT = 'HIT' # tekst TRAFIENIA
TEKST_UNIK = 'UNIK' # tekst UNIKU
TEKST_PRZEDMIOT_1 = 'Przedmiot 1' # tekst pierwszego przedmiotu
TEKST_PRZEDMIOT_2 = 'Przedmiot 2' # tekst drugiego przedmiotu
end # <-- nie usuwać
#===============================================================
end
# Koniec konfiguracji
#===============================================================
# ** [Alias] Game_System
#--------------------------------------------------------------
class Game_System
attr_accessor :monbook
alias :wora_monbook_gamsys_ini :initialize
def initialize
wora_monbook_gamsys_ini
create_monbook
end
def create_monbook
@monbook ||= Array.new($data_enemies.size) {false}
end
def set_monbook_complete
@monbook = Array.new($data_enemies.size) {true}
@monbook[0] = false
end
def reset_monbook
@monbook = Array.new($data_enemies.size) {false}
end
end
#===============================================================
# ** [Alias] Game_Troop
#--------------------------------------------------------------
class Game_Troop < Game_Unit
alias :wora_monbook_gamtroop_setup :setup
def setup(*args)
wora_monbook_gamtroop_setup(*args)
$game_system.create_monbook
unless $game_switches[Wora_Monbook::NO_RECORD_SWITCH]
@enemies.each {|e| $game_system.monbook[e.enemy_id] = true }
end
end
end
#===============================================================
# ** Window_MonsterBHelp
#--------------------------------------------------------------
class Window_MonsterBHelp < Window_Base
include Wora_Monbook
def draw_enemy_stat(actor, x, y, width, stat)
color1 = system_color
color2 = normal_color
slash = false
case stat
when 'hp'
vocab = Vocab::hp
number = actor.maxhp
slash = true
when 'mp'
vocab = Vocab::mp
number = actor.maxmp
slash = true
when 'atk'
vocab = Vocab::atk
number = actor.atk
when 'def'
vocab = Vocab::def
number = actor.def
when 'spi'
vocab = Vocab::spi
number = actor.spi
when 'agi'
vocab = Vocab::agi
number = actor.agi
when 'hit'
vocab = Wora_Monbook::AYENE::TEKST_HIT
number = actor.hit
when 'eva'
vocab = Wora_Monbook::AYENE::TEKST_UNIK
number = actor.eva
when 'exp'
vocab = Wora_Monbook::AYENE::TEKST_PD
number = actor.exp
color2 = crisis_color
when 'gold'
vocab = Wora_Monbook::AYENE::TEKST_ZLOTA
number = actor.gold
color2 = crisis_color
end
contents.font.color = color1
contents.draw_text(x, y, 50, WLH, vocab)
xr = x + width
contents.font.color = color2
if slash
contents.draw_text(xr - 95, y, 40, WLH, number, 2)
contents.draw_text(xr - 55, y, 11, WLH, '/', 2)
end
w_ava = slash ? 40 : 80
contents.draw_text(xr - w_ava, y, w_ava, WLH, number, 2)
end
def draw_enemy_drop(actor, drop_id, x, y)
drop = eval('actor.drop_item' + drop_id.to_s)
if drop.kind.zero?
contents.font.color = normal_color
contents.draw_text(x, y, 200, WLH, " ---------")
else
case drop.kind
when 1; item = $data_items[drop.item_id]
when 2; item = $data_weapons[drop.weapon_id]
when 3; item = $data_armors[drop.armor_id]
end
draw_item_name(item, x, y)
end
end
end
#===============================================================
# ** Scene_MonsterBook
#--------------------------------------------------------------
class Scene_MonsterBook < Scene_Base
def initialize(from_menu = false)
@from_menu = from_menu
end
def start
super
create_menu_background
$game_system.create_monbook
@window_help = Window_MonsterBHelp.new
# Tworzenie listy potworów
monlist = []
$game_system.monbook.each_index do |i|
next if i == 0
# Jeśli gracz znalazł potwora
if $game_system.monbook[i] and
!Wora_Monbook::NO_DATA_MONSTER.include?(i)
montext = i.to_s + '. ' + $data_enemies[i].name
else # Jeśli gracz nie znalazł
montext = i.to_s + '.'
end
monlist << montext
end
@window_monlist = Window_Command.new(544, monlist, 2)
@window_monlist.y = @window_help.height
@window_monlist.height = Graphics.height - @window_help.height
@window_monlist.active = true
@window_mondetail = Window_MonsterBDetail.new(@window_monlist)
@window_mondetail.visible = false
end
def update
super
if @window_monlist.active
@window_monlist.update
if Input.trigger?(Input::C)
# Wyświetlenie informacji o potworze
if $game_system.monbook[@window_monlist.index + 1] and
!Wora_Monbook::NO_DATA_MONSTER.include?(@window_monlist.index + 1)
Sound.play_decision
@window_monlist.active = false
@window_monlist.visible = false
@window_mondetail.active = true
@window_mondetail.visible = true
@window_mondetail.write_detail(@window_monlist.index + 1)
else
Sound.play_cancel
end
elsif Input.trigger?(Input::B)
Sound.play_cancel
# Powrót
$scene = @from_menu ? Scene_Menu.new(Wora_Monbook::MENU_INDEX) :
Scene_Map.new
end
elsif @window_mondetail.active
if Input.trigger?(Input::B)
Sound.play_cancel
@window_monlist.active = true
@window_monlist.visible = true
@window_mondetail.active = false
@window_mondetail.visible = false
end
end
end
def terminate
super
dispose_menu_background
@window_help.dispose
@window_monlist.dispose
@window_mondetail.dispose
end
end
#=============================================================
# * Window_Command Insert Tool
#=============================================================
class Window_Command < Window_Selectable
unless method_defined? :wora_cominstool_wincom_ini
alias wora_cominstool_wincom_ini initialize
alias wora_cominstool_wincom_drawitem draw_item
end
#--------------------------------------------------------------------------
# * [Alias] Update Command Selection
#--------------------------------------------------------------------------
alias wora_menucomorg_scemenu_updcomsel update_command_selection
def update_command_selection(*args)
@menucomorpg_change = false
if Input.trigger?(Input::C) and @command_window.index ==
Wora_Monbook::MENU_INDEX
Sound.play_decision
$scene = Scene_MonsterBook.new(true)
else
if Input.trigger?(Input::C) and @command_window.index >
Wora_Monbook::MENU_INDEX
@command_window.index -= 1
@menucomorpg_change = true
end
wora_menucomorg_scemenu_updcomsel(*args)
end
@command_window.index += 1 if @menucomorpg_change
end
#--------------------------------------------------------------------------
# * [Alias] Update Actor Selection
#--------------------------------------------------------------------------
alias wora_menucomorg_scemenu_updactsel update_actor_selection
def update_actor_selection(*args)
@menucomorpg_change = false
if Input.trigger?(Input::C) and @command_window.index >
Wora_Monbook::MENU_INDEX
@command_window.index -= 1
@menucomorpg_change = true
end
wora_menucomorg_scemenu_updactsel(*args)
@command_window.index += 1 if @menucomorpg_change
end
end
end
Demo
niepotrzebne
Screenshot
Instrukcja
1. Wklej skrypt nad "Main" w Edytorze Skryptu.
2. Reszta instrukcji znajduje się w treści skryptu.
Konfiguracja skryptu
Spoiler:
Kod:
#--------------------------------------------------------------
# ** ZASTOSOWANIE (ręczne wywoływanie skryptów)
#--------------------------------------------------------------
# * By otworzyć Bestiariusz wywołaj skrypt:
# $scene = Scene_MonsterBook.new
# * Zresetowanie wykazu bestii:
# $game_system.reset_monbook
#--------------------------------------------------------------
# * Pokaż informacje o potworze z ID:
# $game_system.monbook[id_potwora] = true
# * Ukryj informacje o potworze z ID:
# $game_system.monbook[id_potwora] = false
# ^ Zmień 'id_potwora' na ID wybranej bestii
# ** e.g. $game_system.monbook[10] = true
# pokazuje w Bestiariuszu dane potwora Z ID 10
#===============================================================
Piszcie w razie problemów.Greed - Czw 22 Paź, 2009 13:37 Wow! Ten skrypt jest świetny. dzięki!
Czegoś takiego mi brakowało :)Szczurek - Czw 22 Paź, 2009 16:44 No, właśnie ten skrypt znalazłem i spolszczyłem :D
Jak na razie spisuje się nieźle.
Mam tylko jeden kłopot - w common events dodałem, że po wciśnięciu klawisza "x" ma wywoływać bestiariusz, zrobiłem proces równoległy, który uruchamia ten event i owszem, bestiariusz się odpala, ale po wciśnięciu "a" Gdy podpisałem pod "c", uruchamiał się po wciśnięciu shifta :/
Że tak zapytam ocb ?Lartarin - Czw 22 Paź, 2009 17:30 Podczas gry wciśnij F1 i tam spróbuj ustawićAyene - Czw 22 Paź, 2009 21:35 Tak jak napisała Lartarin. Zmiany przycisków możesz dokonać po wciśnięciu F1 i po przejściu na odpowiednią zakładkę. Klawisze odpowiadają poszczególnym "triggerom" (bo tak się one nazywają w Rubym).
I tak domyślnie:
- trigger C - to Enter / Spacja / Z na klawiaturze (OK)
- trigger B - to ESC / X / Num0 / Insert na klawiaturze (Anuluj)
- trigger A - Shift na klawiaturze (szybkie chodzenie na mapie)
- trigger x - A na klawiaturze
- trigger Y - S na klawiaturze
- trigger Z - D na klawiaturze
- trigger R - W na klawiaturze (następny bohater)
- trigger L - Q na klawiaturze (poprzedni bohater)
Wykorzystanie triggerów może być dowolne. Domyślnie jednak w skryptach używa się triggera C dla wszystkich komend zatwierdzających oraz triggera B dla komend wyjścia.
Reszta zależy od autora.
Po wciśnięciu F1 można również ustawić przyciski na pada.Szczurek - Czw 22 Paź, 2009 21:48 Mhmmmm... Dziękuję za profesjonalną pomoc ;)
Mam nadzieję, że niedługo dołączę do szanownego grona speców RM'a :)MaTe - Sob 23 Sty, 2010 12:03 Bardzo potrzebuje tego bestiariusza, a robię grę na XP i Bestiariusz XP tam niedziała. I mam pytanei czy jeśli ściągnę VX'a, będę mógł otworzyć Projekt z XP ?? I czy się w nim nic nie pozmienia.Ayene - Sob 23 Sty, 2010 13:33 Projektów utworzonych w VX'ie nie można otworzyć w XP i vice versa. Podobnie ze skryptami - te z XP nie działają po VX i odwrotnie MaTe - Sob 23 Sty, 2010 17:25 Wiem, że Google nie gryzie, ale Czy moglby mi ktoś podać SPRAWDZONY link do SPRAWDZONEGO RPG Maker VX (najlepiej ten link, z którego wy ściągaliście), bo jak dzisiaj ściągnąłem, to instalacja zatrzymywała się na 0 %. I jescze (już ostatnie) pytanko:
- Czy mogę mieć naraz zainstalowane RPG Maker XP i RPG Maker VX ??bionicl - Sob 23 Sty, 2010 17:30 i VX i Xp na raz można... A z tym zaufanym linkiem, to ja nie pamiętam...Pr0mes - Sro 27 Sty, 2010 13:32 Skrypt bardzo przydatny, a do Xp jest już skrypt podanyAgumon - Sob 30 Sty, 2010 19:41 ej a jak umieścić bestiariusz żeby nie pokazywał się w menu gracza tylko jak się da zdarzenie książki to dopiero sie pokaże???Ayene - Sob 30 Sty, 2010 20:10 Wyłączasz Bestiariusz w skrypcie:
Kod:
SHOW_IN_MENU = false
Dajesz zdarzenie z grafiką książki. Przechodzisz na trzecią stronę poleceń i wybierasz Script.
Następnie wpisujesz:
Kod:
$scene = Scene_MonsterBook.new
Agumon - Sob 30 Sty, 2010 21:58 Wyświetla się błąd :
Ayene - Sob 30 Sty, 2010 22:07 Hmm... ciekawe... a spróbuj zamienić fragment:
Kod:
alias :wora_monbook_gamsys_ini :initialize
def initialize
wora_monbook_gamsys_ini
create_monbook
end
# * Zresetowanie wykazu bestii:
# $game_system.reset_monbook
#--------------------------------------------------------------
# * Pokaż informacje o potworze z ID:
# $game_system.monbook[id_potwora] = true
# * Ukryj informacje o potworze z ID:
# $game_system.monbook[id_potwora] = false
# ^ Zmień 'id_potwora' na ID wybranej bestii
# ** e.g. $game_system.monbook[10] = true
# pokazuje w Bestiariuszu dane potwora Z ID 10
#===============================================================
module Wora_Monbook
#===============================================================
# ** [Część do edycji] - Konfiguracja skryptu
#--------------------------------------------------------------
SHOW_IN_MENU = false # Pokazuj Bestiariusz w Menu? (true / false)
MENU_COMMAND = 'Bestiariusz' # Nazwa komendy w menu
MENU_INDEX = 2 # Położenie w menu od góry (2 - czyli na trzeciej pozycji)
TEXT_TITLE = 'Bestiariusz'
# Tytuł Bestariusza (Wyświetla się w górnym lewym rogu okna)
TEXT_FOUND = 'Znalezione: '
# Tekst przed liczbą znalezionych potworów
TEXT_COMPLETED = 'Pokonane: '
# Tekst przed wykazem procentowym pokonanych bestii
NO_RECORD_SWITCH = 10
# Włączony przełącznik na ON -> nowo napotkane potwory nie będą dodawane do
# bestiariusza.
NO_DATA_MONSTER = [3]
# Ukrywa bestie w bestariuszu. Wystarczy wpisać ID potwora.
# np. [1, 3, 5] ukrywa potwory z ID 1, 3 i 5.
module AYENE # <-- nie usuwać
TEKST_ZLOTA = 'ZŁ' # tekst ZŁOTA w bestiariuszu
TEKST_PD = 'PD' # tekst PUNKTÓW DOŚWIADCZENIA
TEKST_HIT = 'HIT' # tekst TRAFIENIA
TEKST_UNIK = 'UNIK' # tekst UNIKU
TEKST_PRZEDMIOT_1 = 'Przedmiot 1' # tekst pierwszego przedmiotu
TEKST_PRZEDMIOT_2 = 'Przedmiot 2' # tekst drugiego przedmiotu
end # <-- nie usuwać
#===============================================================
end
# Koniec konfiguracji
#===============================================================
# ** [Alias] Game_System
#--------------------------------------------------------------
class Game_System
attr_accessor :monbook
def draw_enemy_stat(actor, x, y, width, stat)
color1 = system_color
color2 = normal_color
slash = false
case stat
when 'hp'
vocab = Vocab::hp
number = actor.maxhp
slash = true
when 'mp'
vocab = Vocab::mp
number = actor.maxmp
slash = true
when 'atk'
vocab = Vocab::atk
number = actor.atk
when 'def'
vocab = Vocab::def
number = actor.def
when 'spi'
vocab = Vocab::spi
number = actor.spi
when 'agi'
vocab = Vocab::agi
number = actor.agi
when 'hit'
vocab = Wora_Monbook::AYENE::TEKST_HIT
number = actor.hit
when 'eva'
vocab = Wora_Monbook::AYENE::TEKST_UNIK
number = actor.eva
when 'exp'
vocab = Wora_Monbook::AYENE::TEKST_PD
number = actor.exp
color2 = crisis_color
when 'gold'
vocab = Wora_Monbook::AYENE::TEKST_ZLOTA
number = actor.gold
color2 = crisis_color
end
contents.font.color = color1
contents.draw_text(x, y, 50, WLH, vocab)
xr = x + width
contents.font.color = color2
if slash
contents.draw_text(xr - 95, y, 40, WLH, number, 2)
contents.draw_text(xr - 55, y, 11, WLH, '/', 2)
end
w_ava = slash ? 40 : 80
contents.draw_text(xr - w_ava, y, w_ava, WLH, number, 2)
end
def draw_enemy_drop(actor, drop_id, x, y)
drop = eval('actor.drop_item' + drop_id.to_s)
if drop.kind.zero?
contents.font.color = normal_color
contents.draw_text(x, y, 200, WLH, " ---------")
else
case drop.kind
when 1; item = $data_items[drop.item_id]
when 2; item = $data_weapons[drop.weapon_id]
when 3; item = $data_armors[drop.armor_id]
end
draw_item_name(item, x, y)
end
end
end
#===============================================================
# ** Scene_MonsterBook
#--------------------------------------------------------------
class Scene_MonsterBook < Scene_Base
def initialize(from_menu = false)
@from_menu = from_menu
end
def start
super
create_menu_background
$game_system.create_monbook
@window_help = Window_MonsterBHelp.new
# Tworzenie listy potworów
monlist = []
$game_system.monbook.each_index do |i|
next if i == 0
# Jeśli gracz znalazł potwora
if $game_system.monbook[i] and
!Wora_Monbook::NO_DATA_MONSTER.include?(i)
montext = i.to_s + '. ' + $data_enemies[i].name
else # Jeśli gracz nie znalazł
montext = i.to_s + '.'
end
monlist << montext
end
@window_monlist = Window_Command.new(544, monlist, 2)
@window_monlist.y = @window_help.height
@window_monlist.height = Graphics.height - @window_help.height
@window_monlist.active = true
@window_mondetail = Window_MonsterBDetail.new(@window_monlist)
@window_mondetail.visible = false
end
def update
super
if @window_monlist.active
@window_monlist.update
if Input.trigger?(Input::C)
# Wyświetlenie informacji o potworze
if $game_system.monbook[@window_monlist.index + 1] and
!Wora_Monbook::NO_DATA_MONSTER.include?(@window_monlist.index + 1)
Sound.play_decision
@window_monlist.active = false
@window_monlist.visible = false
@window_mondetail.active = true
@window_mondetail.visible = true
@window_mondetail.write_detail(@window_monlist.index + 1)
else
Sound.play_cancel
end
elsif Input.trigger?(Input::B)
Sound.play_cancel
# Powrót
$scene = @from_menu ? Scene_Menu.new(Wora_Monbook::MENU_INDEX) :
Scene_Map.new
end
elsif @window_mondetail.active
if Input.trigger?(Input::B)
Sound.play_cancel
@window_monlist.active = true
@window_monlist.visible = true
@window_mondetail.active = false
@window_mondetail.visible = false
end
end
end
def terminate
super
dispose_menu_background
@window_help.dispose
@window_monlist.dispose
@window_mondetail.dispose
end
end
cj2 - Sro 10 Mar, 2010 14:35 A można zmienić nazwę bestiaurusza na np. Spis wrogów ?Ayene - Sro 10 Mar, 2010 22:00 Tak, można w linijce:
Kod:
MENU_COMMAND = 'Bestiariusz' # Nazwa komendy w menu
FireBlade - Sro 05 Maj, 2010 00:04 A mi nie wyświetla pokonanego potwora ale pisze że znalezione 1/30 po jego pokonaniu
jak to naprawić ? :/Ayene - Sro 05 Maj, 2010 10:01 Jesteś pewna, że ID potworka nie jest wymienione tutaj:
Kod:
NO_DATA_MONSTER = [1, 3]
Jak wiadomo w powyższej tablicy wpisuje się ID potworów z Bazy danych po to, aby ich dane się nie wyświetlały.sitax5 - Wto 20 Lip, 2010 16:59 kiedy włączam kod do normalnego spisu wszystkich potworów i otwieram w menu przedmioty(bo zrobiłem książke z listą wszystkich potworów) to pojawia się błąd o takiej treści:
??? 'MonsterBook' ? 459 ??? NoMethodError ????????
undefined method `index' for nil:NilClassFlanagan - Wto 20 Lip, 2010 17:18 napisałeś "MonsterBook
napisz to i będzie dobrze:
$scene = Scene_MonsterBook.newsitax5 - Wto 20 Lip, 2010 18:31 chodzi mi oto żebym nie musiał pokonywać potworów tylko odrazu będą wszystkie z informacjami i żeby niebyło napisów: Pokonane 0% Znalezione 0/30 bo jak próbuje wpisać kod aktywujący pełną liste potworów to nic się nie dziejeAyene - Wto 20 Lip, 2010 19:43 Używając polecenia "Script" w edycji zdarzeń, wywołaj:
Kod:
$game_system.set_monbook_complete
sitax5 - Sro 21 Lip, 2010 08:59 Songoxyz
Hyba skrypt koliduje z ring menu bo jak klikam przedmioty albo coś to mi to wyskakuje
Ayene
Cały czas używam tego kodu ale nic się nie dzieje jak by projekt wogóle nie zwracał uwagi na toKarlos - Nie 01 Sie, 2010 11:50 A jak zrobić tak, aby niektóre potwory nie pojawiały się w Bestiariuszu wogóle? Żeby nie było informcji Pokonane 10% Znalezione 1/10 gdy wygra się walkę z nowym stworem oraz żeby nie było miejsca na nie?pokpo - Sob 06 Lis, 2010 22:38 da się zrobić żeby ten skrypt działał ze skryptem WALKA W CZASIE RZECZYWISTYM
tzn. jak zabije potwora w czasie rzeczywistym to wyświetla się on w bestariuszuItaki - Wto 23 Lis, 2010 14:15 A można ten skrypt skonfigurować na menu środkowe??kylu31 - Wto 23 Lis, 2010 19:31 mam pytanie co do tego bo fajnie i pięknie wszystko ale jak daje aby w bestariuszu nie widać jak dam putworka nr.1 nie wiem jak to wysłumaczyć jak jest :
1. 2.
3. 4.
5. 6.
to nie moge dac potworków pod 1,3,5 itd a z prawej stronie 1,4,6 itd. widać (nazwy ?) no ;p i lepiej tego wytłumaczyć nie umiem :DPaKiTos - Nie 28 Lis, 2010 10:27 na samej górze skryptu masz
Spoiler:
Kod:
#===============================================================
# [VX] BESTIARIUSZ
#--------------------------------------------------------------
# by Woratana [woratana@hotmail.com]
# tłumaczenie i korekta by Ayene [yurika@o2.pl]
#--------------------------------------------------------------
# ** ZASTOSOWANIE
#--------------------------------------------------------------
# * By otworzyć Bestiariusz wywołaj skrypt:
# $scene = Scene_MonsterBook.new
# * Zresetowanie wykazu bestii:
# $game_system.reset_monbook
#--------------------------------------------------------------
# * Pokaż informacje o potworze z ID:
# $game_system.monbook[id_potwora] = true
# * Ukryj informacje o potworze z ID:
# $game_system.monbook[id_potwora] = false
# ^ Zmień 'id_potwora' na ID wybranej bestii
# ** e.g. $game_system.monbook[10] = true
# pokazuje w Bestiariuszu dane potwora Z ID 10
#===============================================================
module Wora_Monbook
#===============================================================
# ** [Część do edycji] - Konfiguracja skryptu
#--------------------------------------------------------------
SHOW_IN_MENU = true # Pokazuj Bestiariusz w Menu? (true / false)
MENU_COMMAND = 'Bestiariusz' # Nazwa komendy w menu
MENU_INDEX = 2 # Położenie w menu od góry (2 - czyli na trzeciej pozycji)
TEXT_TITLE = 'Bestiariusz'
# Tytuł Bestariusza (Wyświetla się w górnym lewym rogu okna)
TEXT_FOUND = 'Znalezione: '
# Tekst przed liczbą znalezionych potworów
TEXT_COMPLETED = 'Pokonane: '
# Tekst przed wykazem procentowym pokonanych bestii
NO_RECORD_SWITCH = 10
# Włączony przełącznik na ON -> nowo napotkane potwory nie będą dodawane do
# bestiariusza.
NO_DATA_MONSTER = [1, 3]
# Ukrywa bestie w bestariuszu. Wystarczy wpisać ID potwora.
# np. [1, 3, 5] ukrywa potwory z ID 1, 3 i 5.
Zamień to na
Spoiler:
Kod:
#===============================================================
# [VX] BESTIARIUSZ
#--------------------------------------------------------------
# by Woratana [woratana@hotmail.com]
# tłumaczenie i korekta by Ayene [yurika@o2.pl]
#--------------------------------------------------------------
# ** ZASTOSOWANIE
#--------------------------------------------------------------
# * By otworzyć Bestiariusz wywołaj skrypt:
# $scene = Scene_MonsterBook.new
# * Zresetowanie wykazu bestii:
# $game_system.reset_monbook
#--------------------------------------------------------------
# * Pokaż informacje o potworze z ID:
# $game_system.monbook[id_potwora] = true
# * Ukryj informacje o potworze z ID:
# $game_system.monbook[id_potwora] = false
# ^ Zmień 'id_potwora' na ID wybranej bestii
# ** e.g. $game_system.monbook[10] = true
# pokazuje w Bestiariuszu dane potwora Z ID 10
#===============================================================
module Wora_Monbook
#===============================================================
# ** [Część do edycji] - Konfiguracja skryptu
#--------------------------------------------------------------
SHOW_IN_MENU = true # Pokazuj Bestiariusz w Menu? (true / false)
MENU_COMMAND = 'Bestiariusz' # Nazwa komendy w menu
MENU_INDEX = 2 # Położenie w menu od góry (2 - czyli na trzeciej pozycji)
TEXT_TITLE = 'Bestiariusz'
# Tytuł Bestariusza (Wyświetla się w górnym lewym rogu okna)
TEXT_FOUND = 'Znalezione: '
# Tekst przed liczbą znalezionych potworów
TEXT_COMPLETED = 'Pokonane: '
# Tekst przed wykazem procentowym pokonanych bestii
NO_RECORD_SWITCH = 10
# Włączony przełącznik na ON -> nowo napotkane potwory nie będą dodawane do
# bestiariusza.
NO_DATA_MONSTER = []
# Ukrywa bestie w bestariuszu. Wystarczy wpisać ID potwora.
# np. [1, 3, 5] ukrywa potwory z ID 1, 3 i 5.
Cloudziuszek - Sob 12 Lut, 2011 00:24 Hej. Mam drobny problem. Jak mam zwiększyć bestiariusz? Chciałbym aby było miejsce na około 56 wrogów. Jak to zrobić?
Pytanie numer dwa. Jak zrobić aby JAKIŚ wróg był na przykład na 15 miejscu. Powiedzmy, że jest bossem i chciałbym by miał wyznaczone miejsce. Jak mam to zrobić? *-*Ayene - Sob 12 Lut, 2011 01:22 Cloudziuszek, bestiariusz dopasowuje się automatycznie do ilości potworów w bazie danych. Jeśli nie wypiszesz ID bestii, których ma nie wyświetlać, to wyświetli wszystkie. Żeby 'wróg' był na 15 miejscu wystarczy w bazie danych przypisać go pod ID 15.Cloudziuszek - Sob 12 Lut, 2011 01:57 Dziękuję. ♥ Nie ma to jak szybka pomoc. <3reshi - Pią 18 Mar, 2011 18:38 Ja mam taki problem że wklejam skrypt nad main potem ok biję potwora gdy go pobiję wchodzę w bestariusz to mam 1/45 2% czy tam 4% lecz idę na dół i szukam nazwy tego potwora (pełzak czy tam palzak) i nie ma jej ! Co zrobić żeby była ? I gdzie wkleić Konfiguracja skryptu ? Pliz szybko potrzebuje pomocy bo teraz skrypty wklejam i z tym mam problem .Angius - Pią 18 Mar, 2011 19:24 Pełzak. I bardzo możliwe, że w konfiguracji jest on ustawiony jako potwór, którego nie zlicza.
Konfiguracji nigdzie nie wklejasz, to przecież fragmenty skryptu! Skoro masz skrypt nad main, to kilka jego linijek jest właśnie konfiguracją.
Edit:
Dokładnie. Masz linijkę
Kod:
NO_DATA_MONSTER = [1, 3]
, która sprawia, że nie wyświetla się potwór o ID 1 oraz 3. Po prostu wpisz tam 0, albo zostaw puste.
Masz to samo napisane w poście Ayene wyżej. Jest tam, ze jeśli nie podasz ID, to wyświetli wszystkie.reshi - Sob 19 Mar, 2011 10:17 Aha dzięki teraz już czaję ale mam nowy problem nie mam bestariusza w menu a oto screen
aha a mam pytanie da się żeby to menu dało się przesuwać paskiem tak jak np na stronie po prawej tym paskiem się przesuwa (góra,dół) bo mi się wydaję że ja tam nie mam miejsca już na bestariusz i dlatego go nie czyta a jak miałbym ten suwak to może by go czytało . Wkleiłem bestariusz nad main .MrSturm94 - Sob 09 Lip, 2011 12:36 Cześć mam coś takiego
a bestsariusza dale nie ma :/ czy ja coś robię źle bo męcze się z tym a skrypt jak by nie reagował :/ Ayene - Sob 09 Lip, 2011 13:41 Pewnie masz inne skrypty, które ingerują w Menu. Może jakieś rozdawanie punktów albo dodatkowe opcje?MrSturm94 - Nie 10 Lip, 2011 12:10 pobawię się coś w opcjach
nie ma co się dziwić skryptów dodałem że hoho :D
jak nic nie znajdę to odpuszcze sobie ten skrypt
*EDIT
heh jak daje nowy projekt to jest ten bestsariusz :D
przerzucę skrypt po skrypcie i sprawdzę co było tego przyczyną.
*EDIT
Odnalazłem skrypt który nie współpracuje z bestsariuszem jest to "Menu z dodatkami" czyli ile trzeba expa itp
Czy ktoś mógłby pomóc? Bardzo mi zależy...Michu_1999 - Nie 06 Lis, 2011 12:35 A co zrobić żeby po naciśnięciu przycisku "B" pokazywał się BestiariuszOgr78 - Nie 06 Lis, 2011 12:39 yyyyyyyyyyy Ayene tylko zrob tak zeby sie odrazu wszystkie potwory wywietlaly bo wszystko jest puste!tracersgta - Nie 06 Lis, 2011 12:47 @Michu Typowe Zdarzenie(równoległe!): Warunek: gdy przycisk B jest naciśnięty(w programie jest to inny, ale nie paamiętam jaki) to wywołaj skrypt Scene_MonsterBook.new Killerczyc - Nie 06 Lis, 2011 15:59
Ogr78 napisał/a:
yyyyyyyyyyy Ayene tylko zrob tak zeby sie odrazu wszystkie potwory wywietlaly bo wszystko jest puste!
Ten skrypt zapisuje wszystkie potworki jakie spotkałeś tzn. z którymi walczyłeś -.-Michu_1999 - Nie 06 Lis, 2011 16:18 Sprawdzałem wszystkie przyciski i nic. Ogr78 - Nie 06 Lis, 2011 17:04 Chodzi mi o to ze nie jak pokonasz tylko odrazu wszystkie sa!Ayene - Nie 06 Lis, 2011 17:56 Czytajcie konfigurację ze zrozumieniem:
Wystarczy na początku gry wywołać polecenie 'Script' za pomocą zdarzenia, w jego treści wpisując powyższą frazę.Danbo - Pon 05 Gru, 2011 21:02 Może odkopuje ten temat po miesiącu, ale mam pytanie. Ponieważ skrypt nie jest komaptybilny z obrotowym menu, mógłby ktoś go napisać tak by się wyświetlał w obrotowym menu?Finwe - Wto 06 Gru, 2011 15:38 Masz, łap. Ring menu z bestiariuszem, powinieneś poprosić tam, ale to nic
Spoiler:
Kod:
# =====================================================
# ~ Ring Menu VX ~
# Data publikacji: 23.10.2009
# Autor: DouglasMF
# Tłumaczenie i poprawki: Ayene [yurika@o2.pl]
# Zapraszamy na stronę Ultima Forum - http://www.ultimateam.pl
# =========================================================
# Instalacja: Umieść ten skrypt nad Main w Edytorze Skryptu.
# =========================================================
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# --------------------------- POCZĄTEK SKRYPTU -------------------------------
module AYENE
# ---------------------------- POCZĄTEK EDYCJI -------------------------------
IKONA_PRZEDMIOT = 144 # Ikona przedmiotu
IKONA_UMIEJETNOSC = 128 # Ikona umiejętności
IKONA_EKWIPUNEK = 40 # Ikona ekwipunku
IKONA_STATUS = 137 # Ikona statusu
IKONA_ZAPIS = 149 # Ikona zapisu
IKONA_WYJSCIE = 112 # Ikona wyjścia
IKONA_BESTIARIUSZ = 179 # Ikona bestiariusza
# ----------------------------- KONIEC EDYCJI --------------------------------
end
# -----------NIE EDYTUJ PONIŻEJ, CHYBA ŻE WIESZ CO ROBISZ ^^------------------
#========================================================
# Scene_Menu
#-----------------------------------------------------------------------------
class Scene_Menu < Scene_Base
#--------------------------------------------------------------------------
# Rozpoczęcie
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# Start
#--------------------------------------------------------------------------
def start
super
@spriteset = Spriteset_Map.new
@gold_window = Window_Gold.new(0, 360)
@win_local = Window_Local.new(0,0)
@status_window = Window_MenuStatus.new(160, 0)
px = $game_player.screen_x - 16
py = $game_player.screen_y - 28
@ring_menu = Window_RingMenu_Comando.new(px,py)
@status_window.z = @ring_menu.z + 20
@status_window.visible = false
end
#--------------------------------------------------------------------------
# Zakończenie
#--------------------------------------------------------------------------
def terminate
super
@spriteset.dispose
@ring_menu.dispose
@gold_window.dispose
@win_local.dispose
@status_window.dispose
end
#--------------------------------------------------------------------------
# Aktualizacja menu
#--------------------------------------------------------------------------
def update
super
@ring_menu.update
@gold_window.update
@win_local.update
@spriteset.update
@status_window.update
if @ring_menu.active
update_command_selection
elsif @status_window.active
update_actor_selection
end
end
#--------------------------------------------------------------------------
# Aktualizacja komend w menu
#--------------------------------------------------------------------------
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
if $game_party.members.size == 0 and @ring_menu.index < 3
Sound.play_buzzer
return
elsif $game_system.save_disabled and @ring_menu.index == 3
Sound.play_buzzer
return
end
Sound.play_decision
case @ring_menu.indice
when 0
$scene = Scene_Item.new
when 1,2,3
start_actor_selection
when 4
$scene = Scene_MonsterBook.new
when 5
$scene = Scene_File.new(true, false, false)
when 6
$scene = Scene_End.new
end
end
if Input.trigger?(Input::UP) or Input.trigger?(Input::LEFT)
Sound.play_cursor
@ring_menu.girar(3)
return
end
if Input.trigger?(Input::DOWN) or Input.trigger?(Input::RIGHT)
Sound.play_cursor
@ring_menu.girar(4)
return
end
end
#--------------------------------------------------------------------------
# Rozpoczęcie wyboru postaci
#--------------------------------------------------------------------------
def start_actor_selection
@ring_menu.active = false
@status_window.visible = true
@status_window.active = true
if $game_party.last_actor_index < @status_window.item_max
@status_window.index = $game_party.last_actor_index
else
@status_window.index = 0
end
end
#--------------------------------------------------------------------------
# Zakończenie wyboru postaci
#--------------------------------------------------------------------------
def end_actor_selection
@ring_menu.active = true
@status_window.active = false
@status_window.visible = false
@status_window.index = -1
end
#--------------------------------------------------------------------------
# Aktualizacja wyboru postaci
#--------------------------------------------------------------------------
def update_actor_selection
if Input.trigger?(Input::B)
Sound.play_cancel
end_actor_selection
elsif Input.trigger?(Input::C)
$game_party.last_actor_index = @status_window.index
Sound.play_decision
case @ring_menu.indice
when 1
$scene = Scene_Skill.new(@status_window.index)
when 2
$scene = Scene_Equip.new(@status_window.index)
when 3
$scene = Scene_Status.new(@status_window.index)
end
end
end
end
class Window_Local < Window_Base
#--------------------------------------------------------------------------
# Rozpoczęcie
#--------------------------------------------------------------------------
def initialize(x, y)
super(x, y, 160, 96)
refresh
end
#--------------------------------------------------------------------------
# Aktualizacja
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = normal_color
self.contents.draw_text(4, 0, 120, 32, "Lokacja:")
self.contents.font.color = system_color
self.contents.draw_text(4, 32, 120, 32, $data_mapinfo[$game_map.map_id].name, 2)
end
end
Theron - Sro 07 Gru, 2011 11:25 Niby wszystko ok... tylko takie pytanie... czy działa on z lewelowaniem potworów
?Ayene - Sro 07 Gru, 2011 12:28 Wytłumacz proszę, o jakie lewelowanie chodzi? Zresztą zawsze możesz sprawdzić jmielczarek7 - Czw 05 Sty, 2012 22:50 Temat postu: inny bestariusz nie wiem skąd
Spoiler:
Kod:
#====================================================================#
# #*****************# Dinamic bestiary V 1 Falcao script #
# #*** By Falcao ***# Permite mostrar un albun de cada #
# #*****************# mostruo que derrotas V 1.5 #
# RMVX #
# makerpalace.onlinegoo.com Date: 10/29/2009 #
#====================================================================#
#---------------------------------------------------------------------
# * Instructions
#
# Solo copiar y pegar el script encima de main luego llamarlo con
# tecla 'A' puesta por defecto. Editar el modulo de abajo a su gusto
#
# Place the script above main, then call it with key 'A' by deafault
# Edit the module below as you prefer.
#
# License: Puede ser usado en juegos comerciales o no comerciales
# This script can be used in comercial or non-comercial games
#---------------------------------------------------------------------
module Falcao
# Descripcion Para cada enemigo / Enemy desciption
# A = Id del enemigo / Enemy ID
# B = Description
Description = {
1=> '',
2=> '',
3=> 'Ten rodzaj szczura wystepuje najczęściej w lasach i jaskiniach',
4=> '',
5=> '',
21=> '',
}
# Tecla que llama el script / Key to call script
# Puesdes elejir entre las siguientes / choose between the followings keys
# Z, A, S, D, Q, W, ALT
TeclaBestiary = 'A'
# Interruptor que desabilita llamar el script con la tecla especificada
# Disable script call by input key
KeyDisable_Switch = 100
# Tocar musica / play music (true o false)
PlayMusic = true
# Vocabulario / Vocabulary
FalVocab = ['Nie spotkano', # No datos / No data
'Przedmiot', # Tesoro 1 / Treasure 1
'Przedmiot', # tesoro 2 / Treasure 2
'Brak', # Sin tesoro / No treasure
'????', # Enemigo no derrotado / Enemy no defeated
'Bestiary', # Titulo / Title
'Pokonany', # Derrotado / defeated
'Rodzaj Wroga', # Clase de enemigo / enemy class
'Moc', # Energia maxima / Power
'Ilość', # Veces derrotado / times defeated
'Postęp'] # Progreso / Progress
# Clases de enemigos / enemy classes
# Calculos basados en parametros / Values based on parameters(Def, atk, etc.)
EnemyLevel[1] = "Noob"
EnemyLevel[2] = "Łatwy"
EnemyLevel[3] = "Średni"
EnemyLevel[4] = "Trudny"
EnemyLevel[5] = "Bardzo Trudny"
EnemyLevel[6] = "Boski"
#-----------------------------------------------------------------------------
# Cuando un enemigo es derrotado es automaticamente agregado al invetario pero
# puedes administrarlos manualmente con los siguientes comandos
# When you defeat an enemy automaticly is added, but you can add or remove
# enemies manualy with the following comands
# Falcao.add_enemy(X) Agrega enemigo X, en ves de X poner ID de enemigo
# Add enemy X, instead X put enemy ID
#
# Falcao.remove_enemy(X) remueve enemigo X, En ves de X poner ID de enemigo
# Remove Enemy X, Instead X put enemy ID
#
# Falcao.fill_bestiary Agrega todos los monstruos al bestiario
# Fill bestiary
#
# Para llamar el script manualmente llamarlo directamente asi
# To call the script manually call it
#
# $scene = Scene_Monsters.new
#
# * Creditos:
#
# Script creado por Falcao, puede ser publicado en cualquier foro siempre
# y cuando los creditos sean mencionados
#-----------------------------------------------------------------------------
def self.fill_bestiary
for enemy in $data_enemies
next if enemy == nil
unless $derrotados.include?(enemy.id)
$derrotados.push(enemy.id)
$enemy_counter.push(enemy.id)
end
end
end
def self.add_enemy(id)
unless $derrotados.include?(id)
$derrotados.push(id)
$enemy_counter.push(id)
end
end
def self.remove_enemy(id)
if $derrotados.include?(id)
$derrotados.delete(id)
$enemy_counter.push(id)
end
end
end
#--------------------------------------------------------------------------
# * Crear informacion general y parametros enemigos
#--------------------------------------------------------------------------
class Moster_Info < Window_Base
include Falcao
def initialize(x, y)
super(x, y, 385, 380)
self.opacity = 0
end
def refresh(enemy_id)
self.contents.clear
@enemigo = $data_enemies[enemy_id]
if $derrotados.include?(@enemigo.id)
contents.font.size = 20
draw_enemy_hp(0, 205)
draw_enemy_mp(0, 230)
enemy_parametros
draw_drop_item1
draw_drop_item2
else
contents.font.size = 30
contents.draw_text(100, 100, 500, 92, FalVocab[0])
end
end
def draw_drop_item1
item = @enemigo.drop_item1
contents.draw_text(35, 260, 92, 92, FalVocab[1])
if item.kind == 0
contents.draw_text(0, 284, 92, 92, FalVocab[3])
return
end
case item.kind
when 1; drop_item = $data_items[item.item_id]
when 2; drop_item = $data_weapons[item.item_id]
when 3; drop_item = $data_armors[item.armor_id]
end
draw_icon(drop_item.icon_index,94, 318)
contents.draw_text(0, 284, 92, 92, drop_item.name)
end
def draw_drop_item2
item = @enemigo.drop_item2
contents.draw_text(226, 260, 92, 92, FalVocab[2])
if item.kind == 0
contents.draw_text(200, 284, 92, 92, FalVocab[3])
return
end
case item.kind
when 1; drop_item = $data_items[item.item_id]
when 2; drop_item = $data_weapons[item.item_id]
when 3; drop_item = $data_armors[item.armor_id]
end
draw_icon(drop_item.icon_index,300, 318)
contents.draw_text(200, 284, 92, 92, drop_item.name)
end
def draw_enemy_hp(x, y)
self.contents.fill_rect(x, y, 102, 10, Color.new(0,0,0))
self.contents.fill_rect(x+1, y+1, 100*@enemigo.maxhp/@enemigo.maxhp, 4,
Color.new(205,255,205))
self.contents.fill_rect(x+1, y+5, 100*@enemigo.maxhp/@enemigo.maxhp, 4,
Color.new(10,220,45))
end
def draw_enemy_mp(x, y)
if @enemigo.maxmp != 0
self.contents.fill_rect(x, y, 102, 10, Color.new(0,0,0))
self.contents.fill_rect(x+1, y+1, 100*@enemigo.maxmp/@enemigo.maxmp, 4,
Color.new(180,225,245))
self.contents.fill_rect(x+1, y+5, 100*@enemigo.maxmp/@enemigo.maxmp, 4,
Color.new(20,160,225))
else
self.contents.fill_rect(x, y, 102, 10, Color.new(0,0,0))
end
end
end
#--------------------------------------------------------------------------
# * Objeto creador de las descripciones y el progreso en porcentaje
#--------------------------------------------------------------------------
class Moster_Description < Window_Base
include Falcao
def initialize(x, y, ancho = 544, alto = 56)
super(x, y, ancho, alto)
@tiempo = 0
@scroll = 0
end
def set_texto(texto)
self.contents.clear
self.contents.draw_text(0, -4, 92, 32, texto)
for i in 0...$derrotados.size
number = i + 1
end
texto2 = "#{FalVocab[10]} #{number * 100/$all_mosnters}%" rescue texto2 =
"#{FalVocab[10]} 0 %"
self.contents.draw_text(0, 24, self.width, 32, texto2)
end
def refresh(enemy_id)
self.contents.clear
@enemigo = $data_enemies[enemy_id]
if $derrotados.include?(@enemigo.id)
draw_descriptions
else
self.contents.draw_text(-130, -4, 600, 32 , FalVocab[0],1)
end
end
def draw_descriptions
if Description.has_key?(@enemigo.id)
Description.each do |id, value|
if id == @enemigo.id
cx = contents.text_size(value).width
scroll_text(value)
self.contents.draw_text(@scroll, -4, cx + 10, 32 , value)
end
end
else
text = [" ",
" ",
"Description no available ",
"Falcao script Bestiary V 1.5 "
]
scroll_text(text,false)
cx = contents.text_size(text).width
self.contents.draw_text(@scroll, -4, cx + 10, 32, text )
end
end
def scroll_text(texto, result_ok=true)
cx = contents.text_size(texto).width
if cx > 350
@tiempo += 1
if @tiempo > 60
@scroll -= 1 if @result == nil
if @scroll == -cx
@result = true
end
end
end
if @result
result_ok ? @scroll += 10 : @scroll = 0
if @scroll >= 0
@scroll = 0; @tiempo = 0
@result = nil
end
end
if Input.press?(Input::UP) or Input.press?(Input::DOWN)
@scroll = 0; @tiempo = 0; @result = nil
end
end
end
#--------------------------------------------------------------------------
# * Objeto que dibuja el indice de los enemigos con su nombre
#--------------------------------------------------------------------------
class Monster_indice < Window_Selectable
def initialize(y)
super(0, y, 160, 334)
@column_max = 1
refresh
self.index = 0
end
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
for i in 1...$data_enemies.size
@data.push($data_enemies[i])
end
@item_max = @data.size
if @item_max > 0
self.contents = Bitmap.new(width - 32, row_max * 26)
for i in 0...@item_max
draw_item(i)
$all_mosnters = i + 1
end
end
end
def draw_item(index)
enemy = @data[index]
self.contents.font.color = normal_color
x, y = 4, index * 24
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
opacity = self.contents.font.color == normal_color ? 255 : 128
if $derrotados.include?(index+1)
contents.draw_text(x, y, 212, 24, enemy.name)
else
contents.draw_text(x, y, 212, 24, Falcao::FalVocab[4])
end
end
end
#--------------------------------------------------------------------------
# * Objeto que dibuja el Power y el conteo de mostruos derrotados
#--------------------------------------------------------------------------
class Adicional_Data < Window_Base
include Falcao
attr_accessor :number
attr_accessor :counter
def initialize
super(0, 0, 160, 334)
@number = 0.0
@counter = 0.0
@color = [Color.new(180,225,245), Color.new(20,160,225)]
end
def draw_enemy_counter
i = 0
for c in $enemy_counter
if c == @enemigo.id
i += 1
number = i
end
end
contents.font.color = normal_color
contents.draw_text(0, 40, 212, 24, FalVocab[6])
contents.draw_text(80, 70, 212, 24, number.to_s)
contents.draw_text(0, 70, 212, 24, FalVocab[9])
end
def get_power(enemy)
add = 0
number1 = enemy.spi + enemy.agi
number2 = enemy.atk + enemy.def
case enemy.maxhp
when 1...400
add = 60
when 400...1000
add = 100
when 1000...10000
add = 140
when 10000...999999
add = 200
end
@number = number1 + number2 + add
@counter = @number
@number = 1
end
def draw_enemy_power(x,y)
case @counter
when 1...150
value = 150; add = 1; level = EnemyLevel[1]
@color = [Color.new(180,225,245), Color.new(20,160,225)]
when 150...350
value = 350; add = 3; level = EnemyLevel[2]
@color = [Color.new(255, 120, 0), Color.new(255, 80, 50)]
when 350...600
value = 600; add = 6; level = EnemyLevel[3]
@color = [Color.new(205,255,205), Color.new(10,220,45)]
when 600...1000
value = 1000; add = 10; level = EnemyLevel[4]
@color = [Color.new(255,255,100), Color.new(255,200,0) ]
when 1000...4196
value = 3996; add = 20; level = EnemyLevel[5]
@color = [Color.new(255,255,100), Color.new(255,200,0) ]
end
@number = @counter if @number >= @counter
@number += add if @number < @counter
contents.font.color = Color.new(255, 140, 0)
contents.draw_text(30, 120, 212, 24, FalVocab[7])
contents.font.color = normal_color
contents.draw_text(0, 150, 212, 24, level)
self.contents.fill_rect(x, y, 128, 14, Color.new(0,0,0))
self.contents.fill_rect(x+1, y+1, 126*@number/value, 6, @color[0])
self.contents.fill_rect(x+1, y+7, 126*@number/value, 6, @color[1])
contents.draw_text(0, 210, 212, 24, FalVocab[8])
contents.draw_text(80, 210, 212, 24, @number.to_s)
end
end
#--------------------------------------------------------------------------
# * Clase que agrega los enemigos al bestiario automaticamente
#--------------------------------------------------------------------------
class Game_Enemy < Game_Battler
alias falcao_collapse perform_collapse
def perform_collapse
falcao_collapse
unless $derrotados.include?(enemy.id)
$derrotados.push(enemy.id)
end
if $game_temp.in_battle and dead?
$enemy_counter.push(enemy.id)
end
end
end
#--------------------------------------------------------------------------
# * Clase que define la fuente del bestiario
#--------------------------------------------------------------------------
class Font
alias falcaoBest_font initialize
def initialize
falcaoBest_font
if $scene.is_a?(Scene_Monsters)
self.name = "Georgia"
self.size = 20
end
end
end
#--------------------------------------------------------------------------
# * Aqui se crea la scene que organiza todo en conjunto
#--------------------------------------------------------------------------
class Scene_Monsters < Scene_Base
def start
super
@spriteset = Spriteset_Bestiary.new
@mostruos_index = Monster_indice.new(84)
@info_mosters = Moster_Info.new(160,56)
@help = Moster_Description.new(160,0, 386)
@title = Moster_Description.new(0,0, 160, 84)
@title.set_texto(Falcao::FalVocab[5])
@info_mosters.refresh(@mostruos_index.index + 1)
@help.refresh(@mostruos_index.index + 1)
@extra_data = Adicional_Data.new
@extra_data.y = 84
@extra_data.visible = false
@moster_graphic = Sprite.new
@moster_graphic.bitmap = Cache.battler("",0)
@moster_graphic.z = 99
@moster_graphic.y = 65
@time = 0
if Falcao::PlayMusic
$game_temp.map_bgm = RPG::BGM.last
$game_temp.map_bgs = RPG::BGS.last
$game_system.battle_bgm.play
end
create_enemy_graphics
end
def terminate
super
@mostruos_index.dispose
@info_mosters.dispose
@help.dispose
@spriteset.dispose
@title.dispose
@moster_graphic.dispose
end
def update
super
@spriteset.update
@mostruos_index.update
@help.refresh(@mostruos_index.index + 1)
animate_graphic
if Input.press?(Input::DOWN) or Input.press?(Input::UP)
@info_mosters.refresh(@mostruos_index.index + 1)
create_enemy_graphics
if @extra_data.visible
@extra_data.get_power($data_enemies[@mostruos_index.index + 1])
end
end
if Input.trigger?(Input::C) and @extra_data.visible == false
Sound.play_decision
@extra_data.get_power($data_enemies[@mostruos_index.index + 1])
@extra_data.refresh(@mostruos_index.index + 1)
@extra_data.visible = true
@mostruos_index.y = 600
end
if @extra_data.visible
if @extra_data.number < @extra_data.counter
@extra_data.refresh(@mostruos_index.index + 1)
end
end
if Input.trigger?(Input::B)
if @extra_data.visible
Sound.play_cancel
@extra_data.visible = false
@mostruos_index.y = 84
else
Sound.play_cancel
if Falcao::PlayMusic
$game_temp.map_bgm.play
$game_temp.map_bgs.play
end
$scene = Scene_Map.new
end
end
end
def animate_graphic
if Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN)
@moster_graphic.zoom_x = 1
@moster_graphic.zoom_y = 1
@time = 0
end
h = 240; @time += 1
if @time < 40
if @moster_graphic.height <= h
@moster_graphic.zoom_x += 0.002
@moster_graphic.zoom_y += 0.002
elsif @moster_graphic.height > h
@moster_graphic.zoom_x += 0.001
@moster_graphic.zoom_y += 0.001
end
elsif @time > 40
if @moster_graphic.height <= h
@moster_graphic.zoom_x -= 0.002
@moster_graphic.zoom_y -= 0.002
elsif @moster_graphic.height > h
@moster_graphic.zoom_x -= 0.001
@moster_graphic.zoom_y -= 0.001
end
if @time == 80
@moster_graphic.zoom_x = 1
@moster_graphic.zoom_y = 1
@time = 0
end
end
end
end
#--------------------------------------------------------------------------
# * Objeto que define la tecla para acceder al bestiario
#--------------------------------------------------------------------------
class Scene_Map
alias falcao_bestiary_update update
def update
falcao_bestiary_update
update_finput
end
def update_finput
return if $game_switches[Falcao::KeyDisable_Switch]
case Falcao::TeclaBestiary
when 'Z'; key = Input::C #C
when 'A'; key = Input::X #X
when 'S'; key = Input::Y #Y
when 'D'; key = Input::Z #Z
when 'Q'; key = Input::L #L
when 'W'; key = Input::R #R
when 'ALT'; key = Input::ALT #alt
end
if Input.trigger?(key)
$scene = Scene_Monsters.new
end
end
end
#--------------------------------------------------------------------------
# * Guardar variables de enemigos derrotados
#--------------------------------------------------------------------------
class Scene_File < Scene_Base
alias falcaosave_data write_save_data
def write_save_data(file)
falcaosave_data(file)
Marshal.dump($derrotados, file)
Marshal.dump($enemy_counter, file)
end
end
#--------------------------------------------------------------------------
# * Cargar variables de enemigos derrotados
#--------------------------------------------------------------------------
class Scene_File < Scene_Base
alias falcaoload_data read_save_data
def read_save_data(file)
falcaoload_data(file)
$derrotados = Marshal.load(file)
$enemy_counter = Marshal.load(file)
end
end
#--------------------------------------------------------------------------
# * Objeto que crea el fondo animado usando el mapa
#--------------------------------------------------------------------------
class Spriteset_Bestiary
def initialize
create_battleback
update
end
def create_battleback
@viewport1 = Viewport.new(0, 0, 544, 416)
source = $game_temp.background_bitmap
bitmap = Bitmap.new(640, 480)
bitmap.stretch_blt(bitmap.rect, source, source.rect)
bitmap.radial_blur(90, 12)
@battleback_sprite = Sprite.new(@viewport1)
@battleback_sprite.bitmap = bitmap
@battleback_sprite.ox = 320
@battleback_sprite.oy = 240
@battleback_sprite.x = 272
@battleback_sprite.y = 176
@battleback_sprite.wave_amp = 8
@battleback_sprite.wave_length = 240
@battleback_sprite.wave_speed = 120
end
def dispose
@battleback_sprite.bitmap.dispose
@battleback_sprite.dispose
@viewport1.dispose
end
def update
@battleback_sprite.update
@viewport1.update
end
end
mam nadzieje, że się przydaTheron - Pią 20 Sty, 2012 22:04 Jeśłi tylko mi się uda wejśc na twój profil to chętnie dam pomógł , ale chodzi o ten skrypt...
http://www.ultimateam.pl/...p?p=70987#70987TheMrMinish - Sob 21 Kwi, 2012 08:29 Temat postu: Skrypty VX Ace A jak się da do RPG makera VX Ace skrypty z VX (nie Ace) to beda mi działać? plz o szybka odpowiedź!Vrona - Sob 21 Kwi, 2012 09:09 Nie.kamokeg - Sob 21 Kwi, 2012 22:31 Ej a jest jakiś bestiariusz współpracujący z walką w czasie rzeczywistym?Abercjusz - Sob 28 Kwi, 2012 13:29 Ciekawe , lecz w wypadku Takentai'a i animowanych battlerów...
Niemniej jednak polecam.kolkav5 - Pon 25 Cze, 2012 20:40 Ale, gdy dodałem bestiariusz, to mi zaczęło wyskakiwać. barti2287 - Sob 04 Sie, 2012 01:46
Cytat:
Wiem, że Google nie gryzie, ale Czy moglby mi ktoś podać SPRAWDZONY link do SPRAWDZONEGO RPG Maker VX (najlepiej ten link, z którego wy ściągaliście), bo jak dzisiaj ściągnąłem, to instalacja zatrzymywała się na 0 %. I jescze (już ostatnie) pytanko:
- Czy mogę mieć naraz zainstalowane RPG Maker XP i RPG Maker VX ??