Pszełoncznik - Yoroiookami - 01-11-17 18:07
Jak wiecie, na niektórych mapkach w Kabelku gra się przycinała, szczególnie na słabszych tosterach z 2005 roku. :L
Ponieważ typowe zdarzenie z ubrankami oraz ze skillami są dwukrotnie większe niż w Kable III, chciałbym żeby przełączniki uruchamiały się jedynie po wyjściu z menu. (Czyli po zmianie ekwipunku)
Istnieje jakiś sposób na uruchomienie przełącznika gdzieś w skryptach? Albo na wywołanie skryptu?
Cokolwiek oszczędniejszego.
Pytam, bo pamiętam że kiedyś gra strasznie się zacinała gdy miałem zbyt wiele opcji w warunkach, a zdarzenie typowe które je sprawdzało było odpalone cały czas.
Trochę nietypowa prośba, ale może ktoś coś wie.
RE: Pszełoncznik - AlmostNoRuby - 01-11-17 18:49
Aby przełączyć przełącznik gdzieś w skrypcie, wystarczy:
Kod:
$game_switches[id] = wartość
gdzie id to numer przełącznika, a gdzie wartość to true albo false. 
No chyba, że chcesz uruchomić dane typowe zdarzenie po prostu po wyjściu z menu.
To jak masz w Scene_Menu takie trzy linijki:
Kod:
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
to trzeba je podmienić na
Kod:
if Input.trigger?(Input::B)
Sound.play_cancel
$game_temp.common_event_id = numer
$scene = Scene_Map.new
i tam, gdzie jest numer, wpisać numer typowego zdarzenia. No chyba, że podasz wszystkie skrypty, które coś zmieniają ilość pozycji w opcjach w menu, to wtedy coś ci skleję (i wiem, że będzie to działało).
(Widać, że dopiero w połowie przeczytałem post do końca )
RE: Pszełoncznik - Yoroiookami - 01-11-17 19:09
Kod:
#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
# This class performs the menu screen processing.
#==============================================================================
class Scene_Menu < Scene_Base
#--------------------------------------------------------------------------
# * Object Initialization
# menu_index : command cursor's initial position
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# * Start processing
#--------------------------------------------------------------------------
def start
super
create_menu_background
create_command_window
@gold_window = Window_Gold.new(0, 360)
@status_window = Window_MenuStatus.new(160, 0)
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
@command_window.dispose
@gold_window.dispose
@status_window.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
update_menu_background
@command_window.update
@gold_window.update
@status_window.update
if @command_window.active
update_command_selection
elsif @status_window.active
update_actor_selection
end
end
#--------------------------------------------------------------------------
# * Create Command Window
#--------------------------------------------------------------------------
def create_command_window
s1 = Vocab::item
s2 = Vocab::skill
s3 = Vocab::equip
s4 = Vocab::game_end
@command_window = Window_Command.new(160, [s1, s2, s3, s4])
@command_window.index = @menu_index
if $game_party.members.size == 0 # If number of party members is 0
@command_window.draw_item(0, false) # Disable item
@command_window.draw_item(1, false) # Disable skill
@command_window.draw_item(2, false) # Disable equipment
@command_window.draw_item(3, false) # Disable status
end
if $game_system.save_disabled # If save is forbidden
@command_window.draw_item(4, false) # Disable save
end
end
#--------------------------------------------------------------------------
# * Update Command Selection
#--------------------------------------------------------------------------
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$game_temp.common_event_id = 98
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
if $game_party.members.size == 0 and @command_window.index < 4
Sound.play_buzzer
return
elsif $game_system.save_disabled and @command_window.index == 4
Sound.play_buzzer
return
end
Sound.play_decision
case @command_window.index
when 0 # Item
$scene = Scene_Item.new
when 1,2 # Skill, equipment, status
start_actor_selection
when 3 # End Game
$scene = Scene_End.new
end
end
end
#--------------------------------------------------------------------------
# * Start Actor Selection
#--------------------------------------------------------------------------
def start_actor_selection
@command_window.active = false
@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
#--------------------------------------------------------------------------
# * End Actor Selection
#--------------------------------------------------------------------------
def end_actor_selection
@command_window.active = true
@status_window.active = false
@status_window.index = -1
end
#--------------------------------------------------------------------------
# * Update Actor Selection
#--------------------------------------------------------------------------
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 @command_window.index
when 1 # skill
$scene = Scene_Skill.new(@status_window.index)
when 2 # equipment
$scene = Scene_Equip.new(@status_window.index)
when 3 # status
$scene = Scene_File.new(true, false, false)
end
end
end
end
Przełącznik się nie uruchamia. Nie wiem co zrobiłem źle. :L
RE: Pszełoncznik - AlmostNoRuby - 01-11-17 20:38
Zrobiłeś wszystko dobrze, tylko reszta skryptów psuje tą poprawkę (głównie te, które dodają jakieś opcje w menu, np. dziennik misji czy bestariusz). Po prostu podaj skrypty, które dodają jakieś opcje w menu i spróbuję ci coś na to zaradzić.
RE: Pszełoncznik - Yoroiookami - 02-11-17 00:41
Problem polega na tym, że ja żadnych takich skryptów nie używam. Dziennik mam na zdarzeniach.
Posiadam "sort inventory", które zmienia układ przedmiotów w plecaku, nie wiem czy to istotne.
A opcje w menu wyglądają u mnie tak, bo usunąłem "status".
![[Obrazek: af357de556.jpg]](http://puu.sh/ycCyv/af357de556.jpg)
EDIT: Przetestowałem na pustym projekcie i też nie działa.
RE: Pszełoncznik - AlmostNoRuby - 02-11-17 16:08
Trzymaj. U mnie działa.
Kod:
class Scene_Menu < Scene_Base
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$game_temp.common_event_id = 98
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
if $game_party.members.size == 0 and @command_window.index < 3
Sound.play_buzzer
return
end
Sound.play_decision
case @command_window.index
when 0 # Przedmioty
$scene = Scene_Item.new
when 1,2 # Umiejętności, ekwipunek
start_actor_selection
when 3 # Koniec gry
$scene = Scene_End.new
end
end
end
Wstaw najniżej materials jak się tylko da. Zminimalizuje ryzyko.
RE: Pszełoncznik - Yoroiookami - 02-11-17 17:35
W Kabelku nie działało. Odpaliłem znowu na czystym projekcie. Też nie działa.
![[Obrazek: ced1414b93.jpg]](http://puu.sh/yd8IL/ced1414b93.jpg)
Nie wiem co robię źle, ani dlaczego u ciebie działa. :L
Mam też wstawić to co wcześniej napisałęś do Scene_Menu?
Syntax error w linijce 22.
EDIT: Używając siły 'logicznego' myślenia, dodałem dodatkowe "end" na końcu i przestało wywalać błąd.
Tylko że samo przełącznikowanie nie działa. :L
Przetestowałem na czystym i na Kabelku.
RE: Pszełoncznik - AlmostNoRuby - 02-11-17 18:46
Może dlatego, że mam wersję 1.02 . Naprawdę, nie wiem.
I tak, rzeczywiście uciąłem jeden end.
RE: Pszełoncznik - Yoroiookami - 02-11-17 19:30
Mam dokładnie tę wersję. :L
Z tym że przełącznik po prostu nie reaguje na wchodzenie/wychodzenie z menu.
RE: Pszełoncznik - AlmostNoRuby - 02-11-17 20:14
To ja już nie wiem.
|