Poster27 - Sob 30 Paź, 2010 12:52 Temat postu: Menu jedno osoboweChciałbym aby Menu jedno osobowe było kompatybilne ze skryptem rozdawania punktów.Ayene - Sob 30 Paź, 2010 14:48 Heh, problem tylko w tym, że wszystkie komendy nie zmieszczą się w jednym rzędzie. Więc są dwa wyjścia - albo dam dwa rzędy poleceń, albo usunę jedną z komend, np. koniec gry (Game End), a w to miejsce dam "Poziom plus". Niemniej jednak rozwiązanie pierwsze wydaje się lepsze. Polskie odpowiedniki "Item", "Skill" itd. są dłuższe, więc można by wprowadzić 7 komend, cztery w górnym i trzy w dolnym rzędzie.
Podmień za Menu jednoosobowe:
Spoiler:
Kod:
#==============================================================================
# Menu Jednoosobowe [VX]
#==============================================================================
# Autor: Matheus2
# Poprawki by Ayene
# Skrypt zmienia menu na jednoosobowe - wyświetlane są dane tylko
# pierwszej osoby w drużynie.
#==============================================================================
module Ayene
# Wyświetla awatar postaci zamiast characters
AWATAR_ZAMIAST_CHARA = true
end
#------------------------------------------------------------------------------#
# Game_Party
#------------------------------------------------------------------------------#
class Game_Party < Game_Unit
MAX_MEMBERS = 1
end
#------------------------------------------------------------------------------#
# Game_Map
#------------------------------------------------------------------------------#
class Game_Map
attr_reader :map_id
def namemap
@name_map = load_data("Data/MapInfos.rvdata")
@name_map[@map_id].name
end
end
#------------------------------------------------------------------------------#
# Window_Status
#------------------------------------------------------------------------------#
class Window_Stats < Window_Base
def initialize(actor)
super(250, 264, 294, 152)
@actor = actor
refresh
end
def terminate
super
dispose_menu_background
@command_window.dispose
@gold_window.dispose
@status_window.dispose
@map_window.dispose
@equips_window.dispose
@time_window.dispose
@stats_window.dispose
end
def update
super
update_menu_background
@command_window.update
@gold_window.update
@status_window.update
@time_window.update
update_command_selection
end
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 @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
$scene = Scene_Item.new
when 1
$scene = Scene_Skill.new(0)
when 2
$scene = Scene_Equip.new(0)
when 3
$scene = Scene_Status.new(0)
when 4
$scene = Scene_RequiemUpgrade.new(0)
when 5
$scene = Scene_File.new(true, false, false)
when 6
$scene = Scene_End.new
end
end
end
end
def update
super
update_menu_background
@requiem_upgwindow.update
@requiem_upgcmdwnd.update
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Menu.new(4)
elsif Input.trigger?(Input::C)
if @actor.points > 0
Sound.play_decision
else
Sound.play_buzzer
return
end
case @requiem_upgcmdwnd.index
when 0
@actor.points -= 1
@actor.maxhp += 10
when 1
@actor.points -= 1
@actor.maxmp += 10
when 2
@actor.points -= 1
@actor.atk += 1
when 3
@actor.points -= 1
@actor.def += 1
when 4
@actor.points -= 1
@actor.spi += 1
when 5
@actor.points -= 1
@actor.agi += 1
end
end
end
def terminate
super
dispose_menu_background
@requiem_upgwindow.dispose
@requiem_upgcmdwnd.dispose
end
end
#------------------------------------------------------------------------------
class Scene_File < Scene_Base
def return_scene
if @from_title
$scene = Scene_Title.new
elsif @from_event
$scene = Scene_Map.new
else
$scene = Scene_Menu.new(5)
end
end
end
#------------------------------------------------------------------------------
class Scene_End < Scene_Base
def return_scene
$scene = Scene_Menu.new(6)
end
end
Poster27 - Pon 01 Lis, 2010 17:50 Dzięki wielkie Ayene!!!
PS. Czy mogłabyś jeszcze dodać samo wyskakujące okno?Ayene - Pon 01 Lis, 2010 20:08 Nie rozumiem. Samo wyskakujące?FireBlade - Pon 01 Lis, 2010 20:23 Chodziło mu chyba o floating windows od thieffera czyli wyskakujące okienka w RubyPoster27 - Wto 02 Lis, 2010 20:32 Podawałaś na forum dodatek z samo wyskakującym oknem (z rozdawaniem punktów) po zdobyciu levela.Jeśli już jest to przepraszam za kłopot.Ayene - Sro 03 Lis, 2010 19:11 Sprawdź ten temat http://www.ultimateam.pl/...p?p=18014#18014Poster27 - Sro 03 Lis, 2010 19:56 Tak, ale żeby to był ten skrypt
Ayene napisał/a:
Podmień za Poziom plus
Ayene - Sro 03 Lis, 2010 20:24 Sprawdź ten skrypt:
# Samowyświetlające się okno - przy każdym następnym awansie okno samo będzie
# się pojawiać
OKNO_UP = true # true / false
end
Points_Gained = 5 # Ilość punktów co poziom
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
class Game_Actor < Game_Battler
attr_accessor :points
alias requiem_upgwnd_initialize initialize
alias requiem_upgwnd_lvlup level_up
def initialize(actor_id)
requiem_upgwnd_initialize(actor_id)
@points = 0
end
def level_up
requiem_upgwnd_lvlup
@points += Points_Gained
# gdy awans na poziom następuje poprzez bezpośrednie dodanie exp drużynie
if Ayene::OKNO_UP == true
$scene = Scene_RequiemUpgrade.new(0,false) unless $game_temp.in_battle == true
end
end
end
# by Ayene
# okno ze statystykami wyświetla się po walce, gdy ktoś z drużyny ma awans
if Ayene::OKNO_UP == true
class Scene_Battle < Scene_Base
alias ayene_proc_vic process_victory
def process_victory
ayene_proc_vic
if $game_party.members.any? {|actor| actor.points > 0}
$scene = Scene_RequiemUpgrade.new(0,false)
else
battle_end(0)
end
end
end
end
# koniec
#------------------------------------------------------------------------------
class Requiem_UpgradeWindow < Window_Base
def initialize(actor)
super(0,65,320,320)
@actor = actor
update
end
# by Ayene
# Niewielka modyfikacja Window_Help
class Window_Help < Window_Base
def initialize (y = 0, width = 544)
super(0, y, width, WLH + 32)
end
end
# koniec
#------------------------------------------------------------------------------
class Scene_RequiemUpgrade < Scene_Base
# by Ayene
# następny / poprzedni bohater
def next_actor
@actor_index += 1
@actor_index %= $game_party.members.size
if @from_menu == true
$scene = Scene_RequiemUpgrade.new(@actor_index,true)
else
$scene = Scene_RequiemUpgrade.new(@actor_index,false)
end
end
def prev_actor
@actor_index += $game_party.members.size - 1
@actor_index %= $game_party.members.size
if @from_menu == true
$scene = Scene_RequiemUpgrade.new(@actor_index,true)
else
$scene = Scene_RequiemUpgrade.new(@actor_index,false)
end
end
# koniec
def update
super
update_menu_background
@requiem_upgwindow.update
@requiem_upgcmdwnd.update
@help_window.update
if Input.trigger?(Input::B)
Sound.play_cancel
if @from_menu
$scene = Scene_Menu.new(4)
else
$scene = Scene_Map.new
end
# by Ayene
# następny / poprzedni bohater
elsif Input.trigger?(Input::R)
Sound.play_cursor
next_actor
elsif Input.trigger?(Input::L)
Sound.play_cursor
prev_actor
# koniec
elsif Input.trigger?(Input::C)
if @actor.points > 0
Sound.play_decision
else
Sound.play_buzzer
return
end
case @requiem_upgcmdwnd.index
when 0
@actor.points -= 1
@actor.maxhp += 10
when 1
@actor.points -= 1
@actor.maxmp += 10
when 2
@actor.points -= 1
@actor.atk += 1
when 3
@actor.points -= 1
@actor.def += 1
when 4
@actor.points -= 1
@actor.spi += 1
when 5
@actor.points -= 1
@actor.agi += 1
end
end
end
def terminate
super
dispose_menu_background
@requiem_upgwindow.dispose
@requiem_upgcmdwnd.dispose
@help_window.dispose
end
end
#------------------------------------------------------------------------------
class Scene_File < Scene_Base
def return_scene
if @from_title
$scene = Scene_Title.new
elsif @from_event
$scene = Scene_Map.new
else
$scene = Scene_Menu.new(5)
end
end
end
#------------------------------------------------------------------------------
class Scene_End < Scene_Base
def return_scene
$scene = Scene_Menu.new(6)
end
end
Poster27 - Czw 04 Lis, 2010 14:04 Tak to to, temat do zamknięcia.