Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Czw 22 Paź, 2009 10:16
Bestiariusz VX
~ Bestiariusz VX ~
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
#===============================================================
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 ?
________________________ Embrace your dreams... And... whatever happens... protect your honor...
Interesuje Cię moja gra ? Dowiedz się więcej TUTAJ lub na FORUM GRY
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: 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.
Mhmmmm... Dziękuję za profesjonalną pomoc ;)
Mam nadzieję, że niedługo dołączę do szanownego grona speców RM'a :)
________________________ Embrace your dreams... And... whatever happens... protect your honor...
Interesuje Cię moja gra ? Dowiedz się więcej TUTAJ lub na FORUM GRY
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.
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 ??
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