MicroSeven - Wto 02 Lis, 2010 15:35 Temat postu: Kilka pytań.Cześć, mam kilka pytań dotyczących RMXP.
A więc, pierwsze brzmi:
- Czy w XP'ku możliwe jest 'Rozmazywanie' w menu ? Coś jak w VX.
- Czy istnieje jakiś skrypt, który zmienia w wiadomościach, że zamiast 'przeskakującej' grafiki wyboru jest jej płynne przesuwanie ?
- Istnieje możliwość przerobienia tego skryptu by działał pod XP [ wersja automatyczna np. po walce, nie w menu. ] widziałem już podobny do XP'ka, lecz był ciut 'trudniejszy' i bardziej 'skomplikowany'...Ayene - Wto 02 Lis, 2010 18:07 1. Rozmazanie menu? Możesz przecież dać rozmazane tło obrazkowe.
2. Poszukaj skryptów Custom Message System, nie wiem dokładnie czyjego autorstwa, ale na pewno znajdziesz.
3. Przerobiony skrypt z VX na XP, usunięte punkty w menu, dodane automatyczne wywoływanie.
Mam nadzieję, że wszystko działa.
Points_Gained = 5 # Points that hero will gain when level-up
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
class Game_Actor < Game_Battler
attr_accessor :points
alias requiem_upgwnd_setup setup
def setup(actor_id)
requiem_upgwnd_setup(actor_id)
@points = 0
end
def exp=(exp)
@exp = [[exp, 9999999].min, 0].max
while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
@level += 1
@points += Points_Gained
for j in $data_classes[@class_id].learnings
if j.level == @level
learn_skill(j.skill_id)
end
end
end
while @exp < @exp_list[@level]
@level -= 1
end
@hp = [@hp, self.maxhp].min
@sp = [@sp, self.maxsp].min
end
end
#------------------------------------------------------------------------------
class Requiem_UpgradeWindow < Window_Base
def initialize(actor)
super(0,0,320,320)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
update
end
if Input.trigger?(Input::R)
$game_system.se_play($data_system.cursor_se)
@actor_index += 1
@actor_index %= $game_party.actors.size
$scene = Scene_RequiemUpgrade.new(@actor_index)
return
end
if Input.trigger?(Input::L)
$game_system.se_play($data_system.cursor_se)
@actor_index += $game_party.actors.size - 1
@actor_index %= $game_party.actors.size
$scene = Scene_RequiemUpgrade.new(@actor_index)
return
end
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
if @from_menu
$scene = Scene_Menu.new(4)
else
$scene = Scene_Map.new
end
return
end
if Input.trigger?(Input::C)
if @actor.points > 0
$game_system.se_play($data_system.decision_se)
else
$game_system.se_play($data_system.buzzer_se)
return
end
case @requiem_upgcmdwnd.index
when 0
@actor.points -= 1
@actor.maxhp += 10
when 1
@actor.points -= 1
@actor.maxsp += 10
when 2
@actor.points -= 1
@actor.str += 1
when 3
@actor.points -= 1
@actor.dex += 1
when 4
@actor.points -= 1
@actor.agi += 1
when 5
@actor.points -= 1
@actor.int += 1
end
return
end
end
end
class Scene_Map
alias ayene_scmap_update update
def update
ayene_scmap_update
if $game_party.actors.any? {|actor| actor.points > 0}
$scene = Scene_RequiemUpgrade.new(0)
end
end
end
MicroSeven - Wto 02 Lis, 2010 18:40 1. Dobra myśl.
2. Poszukam.
3. Tak skrypt działa, jest tylko jeden błąd, w okienku tło jest czarne.Ayene - Wto 02 Lis, 2010 18:46 A jakie ma być? Można dać obrazek lub mapę w tle?MicroSeven - Wto 02 Lis, 2010 18:54 Myślałem że powinna być widoczna mapa, mh... moja wina, mogłem napisać wcześniej.Ayene - Wto 02 Lis, 2010 20:16 Podmień na poniższy
Points_Gained = 5 # Points that hero will gain when level-up
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
class Game_Actor < Game_Battler
attr_accessor :points
alias requiem_upgwnd_setup setup
def setup(actor_id)
requiem_upgwnd_setup(actor_id)
@points = 0
end
def exp=(exp)
@exp = [[exp, 9999999].min, 0].max
while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
@level += 1
@points += Points_Gained
for j in $data_classes[@class_id].learnings
if j.level == @level
learn_skill(j.skill_id)
end
end
end
while @exp < @exp_list[@level]
@level -= 1
end
@hp = [@hp, self.maxhp].min
@sp = [@sp, self.maxsp].min
end
end
#------------------------------------------------------------------------------
class Requiem_UpgradeWindow < Window_Base
def initialize(actor)
super(0,0,320,320)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
update
end
def update
@requiem_upgwindow.update
@requiem_upgcmdwnd.update
@spriteset.update
if Input.trigger?(Input::R)
$game_system.se_play($data_system.cursor_se)
@actor_index += 1
@actor_index %= $game_party.actors.size
$scene = Scene_RequiemUpgrade.new(@actor_index)
return
end
if Input.trigger?(Input::L)
$game_system.se_play($data_system.cursor_se)
@actor_index += $game_party.actors.size - 1
@actor_index %= $game_party.actors.size
$scene = Scene_RequiemUpgrade.new(@actor_index)
return
end
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
if @from_menu
$scene = Scene_Menu.new(4)
else
$scene = Scene_Map.new
end
return
end
if Input.trigger?(Input::C)
if @actor.points > 0
$game_system.se_play($data_system.decision_se)
else
$game_system.se_play($data_system.buzzer_se)
return
end
case @requiem_upgcmdwnd.index
when 0
@actor.points -= 1
@actor.maxhp += 10
when 1
@actor.points -= 1
@actor.maxsp += 10
when 2
@actor.points -= 1
@actor.str += 1
when 3
@actor.points -= 1
@actor.dex += 1
when 4
@actor.points -= 1
@actor.agi += 1
when 5
@actor.points -= 1
@actor.int += 1
end
return
end
end
end
class Scene_Map
alias ayene_scmap_update update
def update
ayene_scmap_update
if $game_party.actors.any? {|actor| actor.points > 0}
$scene = Scene_RequiemUpgrade.new(0)
end
end
end
MicroSeven - Sro 03 Lis, 2010 05:39 Wszystko jest teraz w porządku, wielkie dzięki.