Posts: 3
Threads: 1
Joined: Sep 2009
Hey all, I'm just having a lil trouble with what I am trying to achieve, hopefully someone here can help me again...
Below I have Two links and a Script
-XAS Battle Script
-An Extra Set of Actor Graphics for XAS Hero
-Modified DoD Change Leader
The Problem I Having is....
Is when the Leader Changes, the Skill Button 'D' doesn't change. For example if say 'Actor 1' knows Fire 1 and 'Actor 2' knows Thunder 1, when you change leader from 'Actor 1' to 'Actor 2' the skill doesn't change over.
Another issue (although not a big problem) is the same effect above happens to items as well.
Also if a 'Actor 1' leaves with the equipped with a Bronze Sword and is added back into the party the Sword is lost.
What Works
- When you change Leader the info gets updated in the HUD.
- The Equipped weapon stays with the Actor
http://atelier-rgss.com/RGSS/Battle/XAS_00a.html - XAS battle System
Script - MISC
Line 14 Change PHP Code: <?php
SKILL_CHANGE = Input::L
#Usar Item.
to
PHP Code: <?php
SKILL_CHANGE = Input::R
#Usar Item.
- This will make the Script below work to change Leader without having the menu pop up all the time.
http://tmnt-fsc.net/Characters.zip - Extra Hero Graphics
-DoD Change Leader Script
PHP Code: <?php
#------------------#
#Dod Change Leader #
#by:Dodoop #
#version:1.0 #
#------------------#
#
# Edited by: Night_Runner
# Date: 15/Sept/09
#
# Designed to: Turn on the switch corresponding with the leading player's ID
# (and turn off the switch from the last leading player). And update the
# leading player before battle (designed to be compatable with MOG XAS Hud
# V2.6.
#
#-----------------#
#Muda o lÃder quando uma certa tecla for pressionada no mapa.
module Dodoop
#Tecla que devera ser pressiona para mudar o lÃder.
CHANGE_LEADER_INPUT = Input::L
end
class Scene_Map
alias change_leader update
def update
change_leader
if Input.trigger?(Dodoop::CHANGE_LEADER_INPUT)
leader_read
end
$game_switches[$game_party.actors[0].id] = true # Turns on the switch of
# the leading hero
end
def leader_read
$game_switches[$game_party.actors[0].id] = false # Turns off the switch of
# the last hero
@actors = []
for i in 0...$game_party.actors.size
@actors[i] = $game_party.actors[i]
end
for i in 1...@actors.size
$game_party.actors[i - 1] = @actors[i]
end
$game_party.actors[@actors.size - 1] = @actors[0]
$game_player.refresh
$game_party.refresh # Needed to update the party order.
@sthero.refresh # Only to be used with MOG's XAS, refreshes the HUD.
@sthero.update if @sthero != nil
@sthero.refresh if @sthero != nil
@sthero.update if @sthero != nil
if @sthero != nil
@sthero.dispose
@sthero = Window_HUD.new
@sthero.x = XAS_HUD::XASHUD_X
@sthero.y = XAS_HUD::XASHUD_Y
if $game_switches[XAS_HUD::DISABLE_STATUS_HUD_SWITCH] == false
@sthero.visible = true
else
@sthero.visible = false
end
@sthero.update
end
end
end
#================================================#
# Game_Party
#================================================#
class Game_Party
def remove_actor(actor_id)
# Delete actor
@actors.delete($game_actors[actor_id])
# Refresh player
$game_player.refresh
$game_switches[actor_id] = false # If the actor is removed, they cannot
# be the leading hero.
end
end
Code: #_______________________________________________________________________________
# MOG XAS Hud V2.6
#_______________________________________________________________________________
# By Moghunter
# http://www.atelier-rgss.com
#_______________________________________________________________________________
# Apresenta o status do herói no mapa.
# (HP,SP,Condição,Exp,level) em imagens.
#_______________________________________________________________________________
# Imagens necessarias.
#
# Nome_do_Personagem + _Face.png
# HP_Meter.png
# SP_Meter.png
# HP_Tx.png
# SP_Tx.png
# LV_Tx.png
# Bar_Meter.png
# Exp_Back.png
# Exp_Meter.png
#
#_______________________________________________________________________________
module XAS_HUD
#Posição das janelas
XASHUD_X = 0
XASHUD_Y = 370
#ID da switch que desativa a janela do Status.
DISABLE_STATUS_HUD_SWITCH = 5
#Mostrar Ãcones dos status
ICON_STATES = true
#Deixar o HUD opaco caso o herói estiver em cima do HUD.
FADE = true
end
$mog_rgss_xas_hud = true
###############
# Window_Base #
###############
class Window_Base < Window
def draw_maphp2(actor, x, y)
actor = $game_party.actors[0]
self.contents.font.size = 18
back = RPG::Cache.picture("BAR_Meter")
cw = back.width
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 62, y - ch + 28, back, src_rect)
meter = RPG::Cache.picture("HP_Meter")
cw = meter.width * actor.hp / actor.maxhp
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 62, y - ch + 28, meter, src_rect)
text = RPG::Cache.picture("HP_Tx")
cw = text.width
ch = text.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 35, y - ch + 30, text, src_rect)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 76, y - 1, 48, 32, actor.hp.to_s, 2)
lowhp = actor.maxhp * 20 / 100
avhp = actor.maxhp * 50 / 100
if actor.hp <= lowhp
self.contents.font.color = Color.new(255,55,55,255)
elsif actor.hp <= avhp
self.contents.font.color = Color.new(255,255,55,255)
else
self.contents.font.color = Color.new(255,255,255,255)
end
self.contents.draw_text(x + 75, y - 2, 48, 32, actor.hp.to_s, 2)
end
def draw_mapsp2(actor, x, y)
actor = $game_party.actors[0]
self.contents.font.size = 18
back = RPG::Cache.picture("BAR_Meter")
cw = back.width
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 62, y - ch + 28, back, src_rect)
meter = RPG::Cache.picture("SP_Meter")
cw = meter.width * actor.sp / actor.maxsp
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 62, y - ch + 28, meter, src_rect)
text = RPG::Cache.picture("SP_Tx")
cw = text.width
ch = text.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 35, y - ch + 30, text, src_rect)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 76, y - 1, 48, 32, actor.sp.to_s, 2)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 75, y - 2, 48, 32, actor.sp.to_s, 2)
end
def nada
face = RPG::Cache.picture("")
end
def draw_heroface(actor,x,y)
face = RPG::Cache.picture(actor.name + "_face") rescue nada
cw = face.width
ch = face.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch, face, src_rect)
end
def draw_actor_statemap(actor, x, y, width = 100)
if XAS_HUD::ICON_STATES == false
self.contents.font.size = 16
text = make_battler_state_text(actor, width, true)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 1, y + 1, width, 32, text)
self.contents.font.color = Color.new(250,255,255,255)
self.contents.draw_text(x, y, width, 32, text)
else
sta = []
for i in actor.states
sta.push($data_states[i].name)
for s in 0...sta.size
if s < 4
bitmap = RPG::Cache.icon(sta[s])
self.contents.blt(x + (25 * s), y + 4, bitmap, Rect.new(0, 0, 32, 32))
end
end
end
end
#
end
def draw_actor_levelmap(actor, x, y)
bitmap2 = RPG::Cache.picture("Exp_Back")
cw = bitmap2.width
ch = bitmap2.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 10 , y - ch + 30, bitmap2, src_rect)
self.contents.font.size = 16
actor = $game_party.actors[0]
if actor.next_exp != 0
rate = actor.now_exp.to_f / actor.next_exp
else
rate = 1
end
bitmap = RPG::Cache.picture("Exp_Meter")
if actor.level < 99
cw = bitmap.width * rate
else
cw = bitmap.width
end
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 10 , y - ch + 30, bitmap, src_rect)
text = RPG::Cache.picture("LV_Tx")
cw = text.width
ch = text.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 0, y - ch + 30, text, src_rect)
self.contents.font.size = 18
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 30, y - 4, 24, 32, actor.level.to_s, 1)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 31, y - 5, 24, 32, actor.level.to_s, 1)
end
end
##############
# Game_Actor #
##############
class Game_Actor < Game_Battler
def now_exp
return @exp - @exp_list[@level]
end
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end
#####################
# Window_Status_Map #
#####################
class Window_HUD < Window_Base
def initialize
super(0, 0, 270, 125)
self.contents = Bitmap.new(width - 32, height - 32)
self.windowskin = RPG::Cache.windowskin("")
self.contents.font.bold = true
self.contents.font.name = "Georgia"
self.opacity = 0
@actor = $game_party.actors[0]
if @actor != nil
@old_hp = @actor.hp
@old_sp = @actor.sp
@old_level = @actor.level
@old_state = @actor.states.to_s
@old_exp = @actor.exp
refresh
end
end
def refresh
self.contents.clear
draw_maphp2(@actor, 5, 35)
draw_mapsp2(@actor, -35, 55)
draw_heroface(@actor, 0, 60)
draw_actor_statemap(@actor, 140, 62, 70)
draw_actor_levelmap(@actor, 45, 10)
@old_hp = @actor.hp
@old_sp = @actor.sp
@old_level = @actor.level
@old_state = @actor.states.to_s
@old_exp = @actor.exp
end
def update
if XAS_HUD::FADE == true
x = ($game_player.real_x - $game_map.display_x) / 4
y = ($game_player.real_y - $game_map.display_y) / 4
hud_size_x = 180
hud_size_y = 100
oc_range_x = hud_size_x + XAS_HUD::XASHUD_X
oc_range_y = hud_size_y + XAS_HUD::XASHUD_Y
if x < oc_range_x and x > XAS_HUD::XASHUD_X - 5 and
y > XAS_HUD::XASHUD_Y and y < oc_range_y
self.contents_opacity -= 10 if self.contents_opacity > 120
else
self.contents_opacity += 10 if self.contents_opacity < 255
end
end
if @actor != nil
if @old_hp != @actor.hp or
@old_sp != @actor.sp or
@old_level != @actor.level or
@old_state != @actor.states.to_s or
@old_exp != @actor.exp
refresh
end
end
end
end
###############
# Game_Player #
###############
class Game_Player < Game_Character
attr_accessor :wref
end
#############
# Scene_Map #
#############
class Scene_Map
alias mog11_main main
def main
@sthero = Window_HUD.new
@sthero.x = XAS_HUD::XASHUD_X
@sthero.y = XAS_HUD::XASHUD_Y
if $game_switches[XAS_HUD::DISABLE_STATUS_HUD_SWITCH] == false
@sthero.visible = true
else
@sthero.visible = false
end
mog11_main
@sthero.dispose
end
alias mog11_update update
def update
if $game_switches[XAS_HUD::DISABLE_STATUS_HUD_SWITCH] == false
@sthero.visible = true
else
@sthero.visible = false
end
@sthero.update
mog11_update
end
end
|