赞 | 3 |
VIP | 0 |
好人卡 | 0 |
积分 | 22 |
经验 | 46374 |
最后登录 | 2024-10-18 |
在线时间 | 1011 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 2175
- 在线时间
- 1011 小时
- 注册时间
- 2015-10-17
- 帖子
- 1285
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 fjm 于 2016-10-3 22:22 编辑
怎样使仓库里的角色在不出战的情况下,也能获得和出战人员相同的经验
#============================================================================== # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息 #============================================================================== #============================================================================== # ■ Interpreter (分割定义 4) #------------------------------------------------------------------------------ # 执行事件命令的解释器。本类在 Game_System 类 # 和 Game_Event 类的内部使用。 #============================================================================== class Interpreter #-------------------------------------------------------------------------- # ● 角色的替换 #-------------------------------------------------------------------------- def command_129 # 获取角色 actor = $game_actors[@parameters[0]] # 角色有效的情况下 if actor != nil # 操作分支 if @parameters[1] == 0 if @parameters[2] == 1 $game_actors[@parameters[0]].setup(@parameters[0]) end if $game_party.actors.size == 3 $game_party.add_actor(@parameters[0],2) else $game_party.add_actor(@parameters[0]) end else $game_party.remove_actor(@parameters[0],3) end end # 继续 return true end end #============================================================================== # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息 #==============================================================================
#==============================================================================
# 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
#==============================================================================
#==============================================================================
# ■ Interpreter (分割定义 4)
#------------------------------------------------------------------------------
# 执行事件命令的解释器。本类在 Game_System 类
# 和 Game_Event 类的内部使用。
#==============================================================================
class Interpreter
#--------------------------------------------------------------------------
# ● 角色的替换
#--------------------------------------------------------------------------
def command_129
# 获取角色
actor = $game_actors[@parameters[0]]
# 角色有效的情况下
if actor != nil
# 操作分支
if @parameters[1] == 0
if @parameters[2] == 1
$game_actors[@parameters[0]].setup(@parameters[0])
end
if $game_party.actors.size == 3
$game_party.add_actor(@parameters[0],2)
else
$game_party.add_actor(@parameters[0])
end
else
$game_party.remove_actor(@parameters[0],3)
end
end
# 继续
return true
end
end
#==============================================================================
# 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
#==============================================================================
#============================================================================== # ■ chaochao的人物仓库ver1.02正式版 # 修改了Game_Party # 功能: # 用来存放角色的仓库…… # 召唤画面用$scene = Chaochao_Scene_Party.new # 其它使用说明在代码里已经备注。 #------------------------------------------------------------------------------ # 作者:chaochao # [url]http://zhuchao.go1.icpcn.com[/url] #============================================================================== class Chaochao_Window_PartyLeft < Window_Selectable def initialize super(0, 0, 320, 224) self.contents = Bitmap.new(width - 32, height - 32) self.index = 0 self.opacity = 160 refresh end def actor return @actors[self.index] end def refresh if self.contents != nil self.contents.dispose self.contents = nil end @actors = [] for i in 0...$game_party.actors.size @actors.push($game_party.actors[i]) end @item_max = 3 if @item_max > 0 self.contents = Bitmap.new(width - 32, (row_max+1) * 32) for i in 0...@item_max draw_item(i) end end end def draw_item(index) if @actors[index] != nil actor = @actors[index] text = @actors[index].name lv = @actors[index].level.to_s + " " if $game_party.chaochao.include?(actor.id) or $game_party.actors.size <= 1 self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色 else self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色 end self.contents.draw_text(3, index * 32 + 32, 288, 32, text) self.contents.font.color = normal_color self.contents.font.size = 16 self.contents.draw_text(3, index * 32 + 36, 264, 32, "Lv: ", 2) colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max colory = [255.0000 / 60 * @actors[index].level,255].min self.contents.font.color = Color.new(colorx, colory, 0) self.contents.draw_text(3, index * 32 + 36, 288, 32, lv, 2) self.contents.font.color = normal_color self.contents.font.size = 22 else self.contents.draw_text(3, index * 32 + 32, 288, 32, "空缺") end end def update_cursor_rect if @index < 0 self.cursor_rect.empty return end row = @index / @column_max if row < self.top_row self.top_row = row end if row > self.top_row + (self.page_row_max - 1) self.top_row = row - (self.page_row_max - 1) end cursor_width = self.width / @column_max - 32 x = @index % @column_max * (cursor_width + 32) y = @index / @column_max * 32 - self.oy + 32 self.cursor_rect.set(x, y, cursor_width, 32) end def item_max return @item_max end def actor?(index) return @actors[index] == nil ? false : true end def set_index(x) @index = x end end #------------------------------------------------------------------------------ class Chaochao_Window_PartyRight < Window_Selectable def initialize super(320, 0, 320, 224) self.contents = Bitmap.new(width - 32, height - 32) self.opacity = 160 self.index = -1 refresh end def actor return @actors[self.index] end def refresh if self.contents != nil self.contents.dispose self.contents = nil end @actors = [] for i in 0...$game_party.actors2.size @actors.push($game_party.actors2[i]) end @item_max = $game_party.actors2.size if @item_max > 0 self.contents = Bitmap.new(width - 32, row_max * 32) for i in 0...@item_max draw_item(i) end elsif @item_max == 0 end end def draw_item(index) actor = @actors[index] text = @actors[index].name lv = @actors[index].level.to_s + " " if $game_party.chaochao2.include?(actor.id) or $game_party.actors.size >= 4 self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色 else self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色 end self.contents.draw_text(3, index * 32, 288, 32, text) self.contents.font.color = normal_color self.contents.font.size = 16 self.contents.draw_text(3, index * 32 + 4, 264, 32, "Lv: ", 2) colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max colory = [255.0000 / 60 * @actors[index].level,255].min self.contents.font.color = Color.new(colorx, colory, 0) self.contents.draw_text(3, index * 32 + 4, 288, 32, lv, 2) self.contents.font.color = normal_color self.contents.font.size = 22 end def update_cursor_rect if @index < 0 self.cursor_rect.empty return end row = @index / @column_max if row < self.top_row self.top_row = row end if row > self.top_row + (self.page_row_max - 1) self.top_row = row - (self.page_row_max - 1) end cursor_width = self.width / @column_max - 32 x = @index % @column_max * (cursor_width + 32) y = @index / @column_max * 32 - self.oy self.cursor_rect.set(x, y, cursor_width, 32) end def item_max return @item_max end def actor?(index) return @actors[index] == nil ? false : true end def set_index(x) @index = x end end #------------------------------------------------------------------------------ class Chaochao_Window_PartyData < Window_Base def initialize super(0, 224, 640, 256) self.contents = Bitmap.new(width - 32, height - 32) self.opacity = 160 @actor = nil end def set_actor(actor) self.contents.clear draw_actor_name(actor, 4, 0) draw_actor_state(actor, 140, 0) draw_actor_hp(actor, 284, 0) draw_actor_sp(actor, 460, 0) @actor = actor self.visible = true end def clear self.contents.clear end end #------------------------------------------------------------------------------ class Game_Party attr_reader :actors2 attr_reader :chaochao#不能从队伍向备用角色移动的角色ID attr_reader :chaochao2#不能从备用角色向队伍移动的角色ID def initialize @actors = [] @gold = 0 @steps = 0 @items = {} @weapons = {} @armors = {} @actors2 = [] [url=home.php?mod=space&uid=9543]@chaochao[/url] = [37] @chaochao2 = [] end def add_actor(actor_id,type=1)#type为1是向队伍中添加,为2则相反。 case type when 1 if $game_actors[actor_id] != nil actor = $game_actors[actor_id] #如果队伍没有满和队伍中没有此角色 if @actors.size < 4 and not @actors.include?(actor) and not @actors2.include?(actor) @actors.push(actor) $game_player.refresh end end when 2 if $game_actors[actor_id] != nil actor = $game_actors[actor_id] #如果角色不在队伍中和不在备用角色队伍中的情况下 #向备用角色中添加角色 if not @actors.include?(actor) and not @actors2.include?(actor) @actors2.push(actor) $game_player.refresh end end end end def huanren(index,type=1)#type为1是从备用角色向队伍中移动,为2则相反。 actor = $game_actors[index] case type when 1 if @actors.size < 3 and @actors2.include?(actor) and not @chaochao2.include?(index) and not @actors.include?(actor) @actors.push(actor) @actors2.delete(actor) $game_system.se_play($data_system.decision_se) $game_player.refresh end when 2 if @actors.include?(actor) and not @chaochao.include?(index) and not @actors2.include?(actor) @actors2.push(actor) @actors.delete(actor) $game_system.se_play($data_system.decision_se) $game_player.refresh end end end #type1,1是操作队伍中的角色能否向备用队伍移动,2则相反。 #type2,1是添加不能移动的,2是删除不能移动的。 def yidong(actor_id,type1,type2=1) case type2 when 1 case type1 when 1 @chaochao.push(actor_id) when 2 @chaochao2.push(actor_id) end when 2 case type1 when 1 @chaochao.delete(actor_id) when 2 @chaochao2.delete(actor_id) end end end #type,1从队伍中离开,2从备用角色中离开,3从队伍和备用角色中离开。 def remove_actor(actor_id,type=1) actor = $game_actors[actor_id] case type when 1 @actors.delete(actor) $game_player.refresh when 2 @actors2.delete(actor) $game_player.refresh when 3 @actors.delete(actor) @actors2.delete(actor) $game_player.refresh end end def refresh new_actors = [] new_actors2 = [] for i in [email]0...@actors.size[/email] if $data_actors[@actors[i].id] != nil new_actors.push($game_actors[@actors[i].id]) end end @actors = new_actors for i in [email]0...@actors2.size[/email] if $data_actors[@actors2[i].id] != nil new_actors2.push($game_actors[@actors2[i].id]) end end @actors2 = new_actors2 end end #------------------------------------------------------------------------------ class Chaochao_Scene_Party def main @left_temp_command = 0 @right_temp_command = 0 [url=home.php?mod=space&uid=263426]@temp[/url] = 0 @left_window = Chaochao_Window_PartyLeft.new @left_window.active = true @right_window = Chaochao_Window_PartyRight.new @right_window.active = false @data_window = Chaochao_Window_PartyData.new update_data Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @left_window.dispose @right_window.dispose @data_window.dispose end def update @left_window.update @right_window.update @data_window.update update_command update_data end def update_command if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) #画面切换 $scene = Scene_Map.new return end if @left_window.active update_left return end if @right_window.active update_right return end end def update_left if Input.trigger?(Input::RIGHT) if @right_window.item_max > 0 @left_temp_command = @left_window.index @left_window.set_index(-1) $game_system.se_play($data_system.cursor_se) @left_window.active = false @right_window.active = true @left_window.refresh @right_window.refresh @right_window.set_index(@right_temp_command) return else $game_system.se_play($data_system.buzzer_se) return end end if Input.trigger?(Input::C) if @left_window.active and @left_window.actor?(@left_window.index) and $game_party.actors.size > 1 and not $game_party.chaochao.include?($game_party.actors[@left_window.index].id) $game_party.huanren($game_party.actors[@left_window.index].id,2)#type为1是从备用角色向队伍中移动,为2则相反。 @left_window.refresh @right_window.refresh else $game_system.se_play($data_system.buzzer_se) end end return end def update_right if Input.trigger?(Input::LEFT) if @left_window.item_max > 0 @right_temp_command = @right_window.index @right_window.set_index(-1) $game_system.se_play($data_system.cursor_se) @left_window.active = true @right_window.active = false @left_window.refresh @right_window.refresh @left_window.set_index(@left_temp_command) return else $game_system.se_play($data_system.buzzer_se) return end end if Input.trigger?(Input::C) if $game_party.actors.size >= 3 $game_system.se_play($data_system.buzzer_se) return end if @right_window.active and @right_window.actor?(@right_window.index) and not $game_party.chaochao2.include?($game_party.actors2[@right_window.index].id) $game_party.huanren($game_party.actors2[@right_window.index].id,1)#type为1是从备用角色向队伍中移动,为2则相反。 if $game_party.actors2.size == 0 @right_temp_command = @right_window.index @right_window.set_index(-1) $game_system.se_play($data_system.cursor_se) @left_window.active = true @right_window.active = false @left_window.refresh @right_window.refresh @left_window.set_index(@left_temp_command) end if @right_window.index > 0 @right_window.set_index(@right_window.index-1) end @left_window.refresh @right_window.refresh else $game_system.se_play($data_system.buzzer_se) end end return end def update_data if @left_window.active if $game_party.actors[@left_window.index] != nil @data_window.set_actor($game_party.actors[@left_window.index]) else @data_window.clear end return end if @right_window.active if $game_party.actors2[@right_window.index] != nil @data_window.set_actor($game_party.actors2[@right_window.index]) else @data_window.clear end return end end end class Chaochao_Window_PartyData < Window_Base #-------------------------------------------------------------------------- # ● 初始化对像 #-------------------------------------------------------------------------- def initialize super(0, 224, 640, 256) self.contents = Bitmap.new(width - 32, height - 32) self.opacity = 160 @actor = nil end #-------------------------------------------------------------------------- # ● 设置角色 #-------------------------------------------------------------------------- def set_actor(actor) clear @actor = actor x = 4 + 32 y = 0 draw_actor_graphic(@actor, 32, 64) self.contents.font.color = normal_color self.contents.draw_text(x - 120 + 128, y, 120, 32, @actor.name, 2) draw_actor_state(@actor, x + 64, y + 32) x = 4 y = 72 draw_actor_level(@actor, x, y) self.contents.draw_text(x - 236 + 160, y, 236, 32, @actor.class_name, 2) draw_actor_hp(@actor, x, y + 32, 172) draw_actor_sp(@actor, x, y + 64, 172) self.contents.font.color = system_color self.contents.draw_text(x, y + 96 , 80, 32, "EXP") self.contents.draw_text(x, y + 128, 80, 32, "NEXP EXP") self.contents.font.color = normal_color self.contents.draw_text(x + 72, y + 96 , 84, 32, @actor.exp_s, 2) self.contents.draw_text(x + 72, y + 128, 84, 32, @actor.next_rest_exp_s, 2) x = 224 - 16 for i in 0..6 do draw_actor_parameter(@actor, x, 32*i, i) end x = 420 - 16 width = 96 self.contents.font.color = system_color self.contents.draw_text(x-16, 32*0, width, 32, "裝備") self.contents.draw_text(x-16, 32*1, width, 32, $data_system.words.weapon) self.contents.draw_text(x-16, 32*2, width, 32, $data_system.words.armor1) self.contents.draw_text(x-16, 32*3, width, 32, $data_system.words.armor2) self.contents.draw_text(x-16, 32*4, width, 32, $data_system.words.armor3) self.contents.draw_text(x-16, 32*5, width, 32, $data_system.words.armor4) draw_item_name($data_weapons[@actor.weapon_id], x + 36, 32*1) draw_item_name($data_armors[@actor.armor1_id] , x + 36, 32*2) draw_item_name($data_armors[@actor.armor2_id] , x + 36, 32*3) draw_item_name($data_armors[@actor.armor3_id] , x + 36, 32*4) draw_item_name($data_armors[@actor.armor4_id] , x + 36, 32*5) end #-------------------------------------------------------------------------- # ● 清除 #-------------------------------------------------------------------------- def clear self.contents.clear end end
#==============================================================================
# ■ chaochao的人物仓库ver1.02正式版
# 修改了Game_Party
# 功能:
# 用来存放角色的仓库……
# 召唤画面用$scene = Chaochao_Scene_Party.new
# 其它使用说明在代码里已经备注。
#------------------------------------------------------------------------------
# 作者:chaochao
# [url]http://zhuchao.go1.icpcn.com[/url]
#==============================================================================
class Chaochao_Window_PartyLeft < Window_Selectable
def initialize
super(0, 0, 320, 224)
self.contents = Bitmap.new(width - 32, height - 32)
self.index = 0
self.opacity = 160
refresh
end
def actor
return @actors[self.index]
end
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@actors = []
for i in 0...$game_party.actors.size
@actors.push($game_party.actors[i])
end
@item_max = 3
if @item_max > 0
self.contents = Bitmap.new(width - 32, (row_max+1) * 32)
for i in 0...@item_max
draw_item(i)
end
end
end
def draw_item(index)
if @actors[index] != nil
actor = @actors[index]
text = @actors[index].name
lv = @actors[index].level.to_s + " "
if $game_party.chaochao.include?(actor.id) or $game_party.actors.size <= 1
self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色
else
self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色
end
self.contents.draw_text(3, index * 32 + 32, 288, 32, text)
self.contents.font.color = normal_color
self.contents.font.size = 16
self.contents.draw_text(3, index * 32 + 36, 264, 32, "Lv: ", 2)
colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
colory = [255.0000 / 60 * @actors[index].level,255].min
self.contents.font.color = Color.new(colorx, colory, 0)
self.contents.draw_text(3, index * 32 + 36, 288, 32, lv, 2)
self.contents.font.color = normal_color
self.contents.font.size = 22
else
self.contents.draw_text(3, index * 32 + 32, 288, 32, "空缺")
end
end
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
return
end
row = @index / @column_max
if row < self.top_row
self.top_row = row
end
if row > self.top_row + (self.page_row_max - 1)
self.top_row = row - (self.page_row_max - 1)
end
cursor_width = self.width / @column_max - 32
x = @index % @column_max * (cursor_width + 32)
y = @index / @column_max * 32 - self.oy + 32
self.cursor_rect.set(x, y, cursor_width, 32)
end
def item_max
return @item_max
end
def actor?(index)
return @actors[index] == nil ? false : true
end
def set_index(x)
@index = x
end
end
#------------------------------------------------------------------------------
class Chaochao_Window_PartyRight < Window_Selectable
def initialize
super(320, 0, 320, 224)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 160
self.index = -1
refresh
end
def actor
return @actors[self.index]
end
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@actors = []
for i in 0...$game_party.actors2.size
@actors.push($game_party.actors2[i])
end
@item_max = $game_party.actors2.size
if @item_max > 0
self.contents = Bitmap.new(width - 32, row_max * 32)
for i in 0...@item_max
draw_item(i)
end
elsif @item_max == 0
end
end
def draw_item(index)
actor = @actors[index]
text = @actors[index].name
lv = @actors[index].level.to_s + " "
if $game_party.chaochao2.include?(actor.id) or $game_party.actors.size >= 4
self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色
else
self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色
end
self.contents.draw_text(3, index * 32, 288, 32, text)
self.contents.font.color = normal_color
self.contents.font.size = 16
self.contents.draw_text(3, index * 32 + 4, 264, 32, "Lv: ", 2)
colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
colory = [255.0000 / 60 * @actors[index].level,255].min
self.contents.font.color = Color.new(colorx, colory, 0)
self.contents.draw_text(3, index * 32 + 4, 288, 32, lv, 2)
self.contents.font.color = normal_color
self.contents.font.size = 22
end
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
return
end
row = @index / @column_max
if row < self.top_row
self.top_row = row
end
if row > self.top_row + (self.page_row_max - 1)
self.top_row = row - (self.page_row_max - 1)
end
cursor_width = self.width / @column_max - 32
x = @index % @column_max * (cursor_width + 32)
y = @index / @column_max * 32 - self.oy
self.cursor_rect.set(x, y, cursor_width, 32)
end
def item_max
return @item_max
end
def actor?(index)
return @actors[index] == nil ? false : true
end
def set_index(x)
@index = x
end
end
#------------------------------------------------------------------------------
class Chaochao_Window_PartyData < Window_Base
def initialize
super(0, 224, 640, 256)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 160
@actor = nil
end
def set_actor(actor)
self.contents.clear
draw_actor_name(actor, 4, 0)
draw_actor_state(actor, 140, 0)
draw_actor_hp(actor, 284, 0)
draw_actor_sp(actor, 460, 0)
@actor = actor
self.visible = true
end
def clear
self.contents.clear
end
end
#------------------------------------------------------------------------------
class Game_Party
attr_reader :actors2
attr_reader :chaochao#不能从队伍向备用角色移动的角色ID
attr_reader :chaochao2#不能从备用角色向队伍移动的角色ID
def initialize
@actors = []
@gold = 0
@steps = 0
@items = {}
@weapons = {}
@armors = {}
@actors2 = []
[url=home.php?mod=space&uid=9543]@chaochao[/url] = [37]
@chaochao2 = []
end
def add_actor(actor_id,type=1)#type为1是向队伍中添加,为2则相反。
case type
when 1
if $game_actors[actor_id] != nil
actor = $game_actors[actor_id]
#如果队伍没有满和队伍中没有此角色
if @actors.size < 4 and not @actors.include?(actor) and not @actors2.include?(actor)
@actors.push(actor)
$game_player.refresh
end
end
when 2
if $game_actors[actor_id] != nil
actor = $game_actors[actor_id]
#如果角色不在队伍中和不在备用角色队伍中的情况下
#向备用角色中添加角色
if not @actors.include?(actor) and not @actors2.include?(actor)
@actors2.push(actor)
$game_player.refresh
end
end
end
end
def huanren(index,type=1)#type为1是从备用角色向队伍中移动,为2则相反。
actor = $game_actors[index]
case type
when 1
if @actors.size < 3 and @actors2.include?(actor) and not @chaochao2.include?(index) and not @actors.include?(actor)
@actors.push(actor)
@actors2.delete(actor)
$game_system.se_play($data_system.decision_se)
$game_player.refresh
end
when 2
if @actors.include?(actor) and not @chaochao.include?(index) and not @actors2.include?(actor)
@actors2.push(actor)
@actors.delete(actor)
$game_system.se_play($data_system.decision_se)
$game_player.refresh
end
end
end
#type1,1是操作队伍中的角色能否向备用队伍移动,2则相反。
#type2,1是添加不能移动的,2是删除不能移动的。
def yidong(actor_id,type1,type2=1)
case type2
when 1
case type1
when 1
@chaochao.push(actor_id)
when 2
@chaochao2.push(actor_id)
end
when 2
case type1
when 1
@chaochao.delete(actor_id)
when 2
@chaochao2.delete(actor_id)
end
end
end
#type,1从队伍中离开,2从备用角色中离开,3从队伍和备用角色中离开。
def remove_actor(actor_id,type=1)
actor = $game_actors[actor_id]
case type
when 1
@actors.delete(actor)
$game_player.refresh
when 2
@actors2.delete(actor)
$game_player.refresh
when 3
@actors.delete(actor)
@actors2.delete(actor)
$game_player.refresh
end
end
def refresh
new_actors = []
new_actors2 = []
for i in [email]0...@actors.size[/email]
if $data_actors[@actors[i].id] != nil
new_actors.push($game_actors[@actors[i].id])
end
end
@actors = new_actors
for i in [email]0...@actors2.size[/email]
if $data_actors[@actors2[i].id] != nil
new_actors2.push($game_actors[@actors2[i].id])
end
end
@actors2 = new_actors2
end
end
#------------------------------------------------------------------------------
class Chaochao_Scene_Party
def main
@left_temp_command = 0
@right_temp_command = 0
[url=home.php?mod=space&uid=263426]@temp[/url] = 0
@left_window = Chaochao_Window_PartyLeft.new
@left_window.active = true
@right_window = Chaochao_Window_PartyRight.new
@right_window.active = false
@data_window = Chaochao_Window_PartyData.new
update_data
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@left_window.dispose
@right_window.dispose
@data_window.dispose
end
def update
@left_window.update
@right_window.update
@data_window.update
update_command
update_data
end
def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
#画面切换
$scene = Scene_Map.new
return
end
if @left_window.active
update_left
return
end
if @right_window.active
update_right
return
end
end
def update_left
if Input.trigger?(Input::RIGHT)
if @right_window.item_max > 0
@left_temp_command = @left_window.index
@left_window.set_index(-1)
$game_system.se_play($data_system.cursor_se)
@left_window.active = false
@right_window.active = true
@left_window.refresh
@right_window.refresh
@right_window.set_index(@right_temp_command)
return
else
$game_system.se_play($data_system.buzzer_se)
return
end
end
if Input.trigger?(Input::C)
if @left_window.active and @left_window.actor?(@left_window.index) and $game_party.actors.size > 1 and not $game_party.chaochao.include?($game_party.actors[@left_window.index].id)
$game_party.huanren($game_party.actors[@left_window.index].id,2)#type为1是从备用角色向队伍中移动,为2则相反。
@left_window.refresh
@right_window.refresh
else
$game_system.se_play($data_system.buzzer_se)
end
end
return
end
def update_right
if Input.trigger?(Input::LEFT)
if @left_window.item_max > 0
@right_temp_command = @right_window.index
@right_window.set_index(-1)
$game_system.se_play($data_system.cursor_se)
@left_window.active = true
@right_window.active = false
@left_window.refresh
@right_window.refresh
@left_window.set_index(@left_temp_command)
return
else
$game_system.se_play($data_system.buzzer_se)
return
end
end
if Input.trigger?(Input::C)
if $game_party.actors.size >= 3
$game_system.se_play($data_system.buzzer_se)
return
end
if @right_window.active and @right_window.actor?(@right_window.index) and not $game_party.chaochao2.include?($game_party.actors2[@right_window.index].id)
$game_party.huanren($game_party.actors2[@right_window.index].id,1)#type为1是从备用角色向队伍中移动,为2则相反。
if $game_party.actors2.size == 0
@right_temp_command = @right_window.index
@right_window.set_index(-1)
$game_system.se_play($data_system.cursor_se)
@left_window.active = true
@right_window.active = false
@left_window.refresh
@right_window.refresh
@left_window.set_index(@left_temp_command)
end
if @right_window.index > 0
@right_window.set_index(@right_window.index-1)
end
@left_window.refresh
@right_window.refresh
else
$game_system.se_play($data_system.buzzer_se)
end
end
return
end
def update_data
if @left_window.active
if $game_party.actors[@left_window.index] != nil
@data_window.set_actor($game_party.actors[@left_window.index])
else
@data_window.clear
end
return
end
if @right_window.active
if $game_party.actors2[@right_window.index] != nil
@data_window.set_actor($game_party.actors2[@right_window.index])
else
@data_window.clear
end
return
end
end
end
class Chaochao_Window_PartyData < Window_Base
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
super(0, 224, 640, 256)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 160
@actor = nil
end
#--------------------------------------------------------------------------
# ● 设置角色
#--------------------------------------------------------------------------
def set_actor(actor)
clear
@actor = actor
x = 4 + 32
y = 0
draw_actor_graphic(@actor, 32, 64)
self.contents.font.color = normal_color
self.contents.draw_text(x - 120 + 128, y, 120, 32, @actor.name, 2)
draw_actor_state(@actor, x + 64, y + 32)
x = 4
y = 72
draw_actor_level(@actor, x, y)
self.contents.draw_text(x - 236 + 160, y, 236, 32, @actor.class_name, 2)
draw_actor_hp(@actor, x, y + 32, 172)
draw_actor_sp(@actor, x, y + 64, 172)
self.contents.font.color = system_color
self.contents.draw_text(x, y + 96 , 80, 32, "EXP")
self.contents.draw_text(x, y + 128, 80, 32, "NEXP EXP")
self.contents.font.color = normal_color
self.contents.draw_text(x + 72, y + 96 , 84, 32, @actor.exp_s, 2)
self.contents.draw_text(x + 72, y + 128, 84, 32, @actor.next_rest_exp_s, 2)
x = 224 - 16
for i in 0..6 do draw_actor_parameter(@actor, x, 32*i, i) end
x = 420 - 16
width = 96
self.contents.font.color = system_color
self.contents.draw_text(x-16, 32*0, width, 32, "裝備")
self.contents.draw_text(x-16, 32*1, width, 32, $data_system.words.weapon)
self.contents.draw_text(x-16, 32*2, width, 32, $data_system.words.armor1)
self.contents.draw_text(x-16, 32*3, width, 32, $data_system.words.armor2)
self.contents.draw_text(x-16, 32*4, width, 32, $data_system.words.armor3)
self.contents.draw_text(x-16, 32*5, width, 32, $data_system.words.armor4)
draw_item_name($data_weapons[@actor.weapon_id], x + 36, 32*1)
draw_item_name($data_armors[@actor.armor1_id] , x + 36, 32*2)
draw_item_name($data_armors[@actor.armor2_id] , x + 36, 32*3)
draw_item_name($data_armors[@actor.armor3_id] , x + 36, 32*4)
draw_item_name($data_armors[@actor.armor4_id] , x + 36, 32*5)
end
#--------------------------------------------------------------------------
# ● 清除
#--------------------------------------------------------------------------
def clear
self.contents.clear
end
end
|
|