Project1
标题:
战斗画面,敌人状态的窗口问题~
[打印本页]
作者:
六芒幽狐
时间:
2008-8-14 03:38
标题:
战斗画面,敌人状态的窗口问题~
最近硬盘坏了,尝试修复数据~
结果导出后,发现原本正常的游戏出问题了~
在[战斗界面]中,当选择[攻击]时,会出现选择攻击对象~
当箭头指示向某个敌人时,画面上方会出现一个窗口,显示敌人的姓名和血量~
(战斗画面,使用的是默认的脚本)
问题就出在这里,这个窗口出现在左下方了,而且显示的内容也不完全~
请教,控制这个窗口的
位置
和
内容
的脚本是哪一段呢?
如果要恢复原来的正常显示,该如何修改?
谢谢~
==================================
附加情况说明:
[情况一:]
进入战斗画面后,选择[攻击]~
则出现选择攻击对象,敌人的详细消息窗口不正常~
(显示在左边或右边,内容只有名字,无HP,无MP,状态为[/])
[情况二:]
进入战斗画面后,选择[特技]~
使用对友方释放的魔法,此时出现选择特技作用对象,详细信息窗口正常~
(显示在顶部,内容包括名字,HP,MP)
之后再选择[攻击],则窗口显示位置和内容都正常
(显示在顶部,内容包括名字,HP,MP)
感觉,似乎是[攻击]的窗口释放出现了问题~
请教,该如何修复,谢谢~ [LINE]1,#dddddd[/LINE]
此贴于 2008-8-16 12:27:52 被版主darkten提醒,请楼主看到后对本贴做出回应。
[LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
灯笼菜刀王
时间:
2008-8-14 04:53
1,首先,默认脚本HELP窗口(也就是画面上方长长的一条)是不会显示敌人HP的。只有名字和状态。
2,那个窗口在脚本里是@help_window = Window_Help.new
控制位置的是@help_window.x和@help_window.y 不过默认脚本这个是缺省的,为0,所以窗口显示在上方。
3,选择敌人的内容是def start_enemy_select 这段里调用help窗口@enemy_arrow.help_window = @help_window就是选择敌人显示的内容。
4,不理解什么叫攻击窗口释放~~~ [LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者:
六芒幽狐
时间:
2008-8-14 16:59
哦,大致明白你的意思了~
尝试着找了一遍,不过依旧没有发现问题的缘故~
一气之下,我把脚本全部重新替换了一遍~
令人惊讶的是,问题依然存在??
难道说是程序,而不是脚本的原因?
费解~
可否....我的意思是,如果方便的话~
麻烦您给个邮箱,我把脚本程序发给你~ (删除大部分的素材,应该不会太大)
帮忙看一下,好么?
无论如何,还是要谢谢您的解答~
作者:
六芒幽狐
时间:
2008-8-17 00:37
非常感谢的 [灯笼菜刀王] 指点~
工程地址已经用站内短信发给您了~
还期待能早日得到回复~
辛苦拉~
先行认可你的答案~
作者:
六芒幽狐
时间:
2008-8-17 19:31
根据上面的指导,再次查看脚本~
发现是[帮助提示]脚本的问题~
#==============================================================================
# ■ Window_Help
#------------------------------------------------------------------------------
# 特技及物品的说明、角色的状态显示的窗口。
# 若要更改属性,请搜索element_set={1=>"火",2=>"冰",3=>"光",4=>"暗"} 改成对应属性即可
#
#
# 还有一点问题可能要到scene里去解决了……OJZ
# 在Scene_File的开头把
# @help_window.set_text(@help_text)
# 改成
# @help_window.set_text(@help_text,0)
# 就可以
# 另外,在商店里会出现窗口不会自动消失的问题,请参考以下方式更改:
# Scene_Shop里在update里(原版工程79行)插入
# @help_window.visible = !@number_window.active && !@dummy_window.visible
# 即可~
#==============================================================================
UNSHOW_STATE=[1,2,3,4,5]#记录不显示的状态数组
UNSHOW_ELEMENT=[1,2,3,4,5]#记录不显示的属性数组
class Window_Help < Window_Base
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
super(150,200, 180, 430)
self.opacity = 150
self.z=150
self.visible = false
self.contents = Bitmap.new(width - 32, height - 32)
description=""
@item=nil
@armor=nil
@weapon=nil
end
#--------------------------------------------------------------------------
# ● 设置文本
# text : 窗口显示的字符串
# align : 对齐方式 (0..左对齐、1..中间对齐、2..右对齐)
#--------------------------------------------------------------------------
def set_text(data, align=nil)
# 如果文本和对齐方式的至少一方与上次的不同
if align != nil
# 再描绘窗口和文本
self.width = 640
self.height = 64
self.x=0
self.y=0
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.clear
self.contents.font.color = normal_color
self.contents.font.size = 20
self.contents.draw_text(4, 0, self.width - 48, 32, data, align)
self.visible = true
return
end
if data == nil
self.visible=false
@data = nil
end
if data != nil && @data != data
@data=data
self.visible=true
self.width = 180
self.height = 200
self.x=180
self.y=430
self.contents = Bitmap.new(width - 32, height - 32)
case @data
when RPG::Item
set_item_text(@data)
when RPG::Weapon
set_weapon_text(@data)
when RPG::Armor
set_armor_text(@data)
when RPG::Skill
set_skill_text(@data)
end
else
return
end
end
#--------------------------------------------------------------------------
# ● 设置敌人
# enemy : 要显示名字和状态的敌人
#--------------------------------------------------------------------------
def set_enemy(enemy)
text = enemy.name
state_text = make_battler_state_text(enemy, 0, false)
if state_text != ""
text += " " + state_text
end
set_text(text, 1)
@data=nil
end
#--------------------------------------------------------------------------
# ● 设置角色
# actor : 要显示状态的角色
#--------------------------------------------------------------------------
def set_actor(actor)
if actor != @actor
self.width = 640
self.height = 64
self.x=0
self.y=0
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.clear
self.contents.font.size=20
self.contents.font.color = normal_color
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
@text = nil
self.visible = true
end
end
#--------------------------------------------------------------------------
# ● 校正帮助窗口位置
#--------------------------------------------------------------------------
def set_pos(x,y,width,oy,index,column_max)
#光标坐标
cursor_width = width / column_max - 32
xx = index % column_max * (cursor_width + 32)
yy = index / column_max * 32 - oy
self.x=xx+x+150
self.y=yy+y+30
if self.x+self.width>640
self.x=640-self.width
end
if self.y+self.height>480
self.y=480-self.height
end
end
end
class Window_Help < Window_Base
#--------------------------------------------------------------------------
# ● 物品帮助窗口
#--------------------------------------------------------------------------
def set_item_text(item)
@item=item
description=""
[email protected]
x=0
y=0
# 取得屬性、附加狀態、解除狀態之副本
element_set = @item.element_set.clone
plus_state_set = @item.plus_state_set.clone
minus_state_set = @item.minus_state_set.clone
# 過濾不顯示的描述
element_set -= UNSHOW_ELEMENT
plus_state_set -= UNSHOW_STATE
minus_state_set -= UNSHOW_STATE
height=1 #依要显示的内容确定高
#由描叙确定高
height+=description.size/3/10
if description.size%10!=0
height+=1
end
height+=3 #空行,效果范围,价格
if @item.recover_hp_rate!=0 #HP 回复率。
height+=1
end
if @item.recover_hp!=0 #HP 回复量。
height+=1
end
if @item.recover_sp_rate!=0 #SP 回复率。
height+=1
end
if @item.recover_sp!=0 #SP 回复量。
height+=1
end
if @item.parameter_type!=0 #增加能力值
height+=1
end
if element_set.empty?!=true #属性。为属性 ID 的数组
height+=1
end
if plus_state_set.empty?!=true #附加状态。为状态 ID 的数组
height+=plus_state_set.size
end
if minus_state_set.empty?!=true #解除状态。为状态 ID 的数组
height+=minus_state_set.size
end
self.height=height*15+40+15
self.contents = Bitmap.new(self.width - 32,self.height - 32)
self.contents.clear
#描绘名字
[email protected]
self.contents.font.color =text_color(6)
self.contents.font.size=18
if text!=nil
self.visible = true
self.contents.draw_text(0,0, @item.name.size*7, 20, text, 0)
else
self.visible = false
end
x=0
y+=1
text=description
#描绘描叙
while ((text = description.slice!(/./m)) != nil)
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x*15, y*15+5, 14, 14, text, 0)
x+=1
if x==10#每行10个字
x=0
y+=1
end
end
#由特技属性确定高
#效果范围
scope = {0=>"特殊物品",1=>"敌单体",2=>"敌全体",3=>"己方单体",4=>"己方全体",5=>"己方昏死单体",6=>"己方昏死全体",7=>"使用者"}#HASH表
text="范围:"+scope[@item.scope]
x=0
y+=2 #空一行
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
#价格
x=0
y+=1
text="价格:"
[email protected]
_s
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
#HP 回复率
if @item.recover_hp_rate!=0
x=0
y+=1
text="回复HP:"
[email protected]
_hp_rate.to_s+"%"
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
#HP回复量
if @item.recover_hp!=0
x=0
y+=1
text="回复HP:"
[email protected]
_hp.to_s
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
#SP 回复率
if @item.recover_sp_rate!=0
x=0
y+=1
text="回复SP:"
[email protected]
_sp_rate.to_s+"%"
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
#SP 回复量
if @item.recover_sp!=0
x=0
y+=1
text="回复SP:"
[email protected]
_sp.to_s
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
#增加能力值
if @item.parameter_type!=0
parameter_type={1=>"MaxHP",2=>"MaxSP",3=>$data_system.words.str,4=>$data_system.words.dex,5=>$data_system.words.agi,6=>$data_system.words.int}
x=0
y+=1
if @item.parameter_points>0
text="增益:"+parameter_type[@item.parameter_type]+" +"
[email protected]
_points.to_s
else
text="减少:"+parameter_type[@item.parameter_type]
[email protected]
_points.to_s
end
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
#物品属性
if element_set.empty?!=true #属性。为属性 ID 的数组
text="属性:"
for i in 0...element_set.size
text+=$data_system.elements[element_set[i]]+" "
end
x=0
y+=1
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
#附加状态
if plus_state_set.empty?!=true #附加状态。为状态 ID 的数组
text="附加状态:"
x=0
y+=1
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
y-=1
x+=text.size*5
for i in 0...plus_state_set.size
y+=1
text=$data_states[plus_state_set[i]].name
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
end
#解除状态
if minus_state_set.empty?!=true #解除状态。为状态 ID 的数组
text="解除状态:"
x=0
y+=1
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
y-=1
x+=text.size*5
for i in 0...minus_state_set.size
y+=1
text=$data_states[minus_state_set[i]].name
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
end
end
end
class Window_Help < Window_Base
#--------------------------------------------------------------------------
# ● 武器帮助窗口
#--------------------------------------------------------------------------
def set_weapon_text(weapon)
@weapon=weapon
description=""
[email protected]
# 取得屬性、附加狀態、解除狀態之副本
element_set = @weapon.element_set.clone
plus_state_set = @weapon.plus_state_set.clone
minus_state_set = @weapon.minus_state_set.clone
# 過濾不顯示的描述
element_set -= UNSHOW_ELEMENT
plus_state_set -= UNSHOW_STATE
minus_state_set -= UNSHOW_STATE
x=0
y=0
height=1 #依要显示的内容确定高
#由描叙确定高
height+=description.size/3/10
if description.size%10!=0
height+=1
end
height+=4 #2个空行,攻击,价格
if @weapon.pdef!=0 #物理防御
height+=1
end
if @weapon.mdef!=0 #魔法防御
height+=1
end
if @weapon.str_plus!=0 #力量
height+=1
end
if @weapon.dex_plus!=0#体质
height+=1
end
if @weapon.agi_plus!=0#敏捷
height+=1
end
if @weapon.int_plus!=0 #智力
height+=1
end
if element_set.empty?!=true #属性。为属性 ID 的数组
height+=1
end
if plus_state_set.empty?!=true #附加状态。为状态 ID 的数组
height+=plus_state_set.size
end
if minus_state_set.empty?!=true #解除状态。为状态 ID 的数组
height+=minus_state_set.size
end
self.height=height*15+40+15
self.contents = Bitmap.new(self.width - 32,self.height - 32)
self.contents.clear
#描绘名字
[email protected]
self.contents.font.color = text_color(6)#颜色脚本
self.contents.font.size=18
if text!=nil
self.visible = true
self.contents.draw_text(0,0, @weapon.name.size*7, 20, text, 0)
else
self.visible = false
end
x=0
y+=1
text=description
#描绘描叙
while ((text = description.slice!(/./m)) != nil)
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x*15, y*15+5, 14, 14, text, 0)
x+=1
if x==10#每行10个字
x=0
y+=1
end
end
#由特技属性确定高
#攻击
x=0
y+=2 #空行
text="攻击:"
[email protected]
_s
self.contents.font.color = text_color(6)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
#价格
x=0
y+=1
text="价格:"
[email protected]
_s
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
if @weapon.pdef!=0 #物理防御
x=0
y+=1
text="物理防御:"
[email protected]
_s
self.contents.font.color = text_color(6)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
if @weapon.mdef!=0 #魔法防御
x=0
y+=1
text="魔法防御:"
[email protected]
_s
self.contents.font.color = text_color(6)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
#武器属性
if element_set.empty? != true #属性。为属性 ID 的数组
text="属性:"
for i in 0...element_set.size
text+=$data_system.elements[element_set[i]]+" "
end
x=0
y+=1
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
#附加状态
if plus_state_set.empty? != true #附加状态。为状态 ID 的数组
text="附加状态:"
x=0
y+=1
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
y-=1
x+=text.size*5
for i in 0...plus_state_set.size
y+=1
text=$data_states[plus_state_set[i]].name
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
end
#解除状态
if minus_state_set.empty? != true #解除状态。为状态 ID 的数组
text="解除状态:"
x=0
y+=1
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
y-=1
x+=text.size*5
for i in 0...minus_state_set.size
y+=1
text=$data_states[minus_state_set[i]].name
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
end
y+=1 #空行
if @weapon.str_plus!=0 #力量
x=0
y+=1
if @weapon.str_plus > 0
text=$data_system.words.str+" + "
[email protected]
_plus.to_s
else
[email protected]
_plus
text=$data_system.words.str+" - "+str_minus.to_s
end
self.contents.font.color = text_color(6)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
if @weapon.dex_plus!=0#体质
x=0
y+=1
if @weapon.dex_plus > 0
text=$data_system.words.dex+" + "
[email protected]
_plus.to_s
else
[email protected]
_plus
text=$data_system.words.dex+" - "+dex_minus.to_s
end
self.contents.font.color = text_color(6)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
if @weapon.agi_plus!=0#敏捷
x=0
y+=1
if @weapon.agi_plus > 0
text=$data_system.words.agi+" + "
[email protected]
_plus.to_s
else
[email protected]
_plus
text=$data_system.words.agi+" - "+agi_minus.to_s
end
self.contents.font.color = text_color(6)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
if @weapon.int_plus!=0 #智力
x=0
y+=1
if @weapon.int_plus > 0
text=$data_system.words.int+" + "
[email protected]
_plus.to_s
else
[email protected]
_plus
text=$data_system.words.int+" - "+int_minus.to_s
end
self.contents.font.color = text_color(6)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
end
end
class Window_Help < Window_Base
#--------------------------------------------------------------------------
# ● 防具帮助窗口
#--------------------------------------------------------------------------
def set_armor_text(armor)
@armor=armor
description=""
[email protected]
# 取得屬性、附加狀態、解除狀態之副本
element_set = @armor.guard_element_set.clone
guard_state_set = @armor.guard_state_set.clone
# 過濾不顯示的描述
element_set -= UNSHOW_ELEMENT
guard_state_set -= UNSHOW_STATE
x=0
y=0
height=1 #依要显示的内容确定高
#由描叙确定高
height+=description.size/3/10
if description.size%10 !=0
height+=1
end
height+=2 #2个空行,价格
if @armor.pdef !=0 #物理防御
height+=1
end
if @armor.mdef !=0 #魔法防御
height+=1
end
if @armor.str_plus !=0 #力量
height+=1
end
if @armor.dex_plus !=0#体质
height+=1
end
if @armor.agi_plus !=0#敏捷
height+=1
end
if @armor.int_plus !=0 #智力
height+=1
end
if element_set.empty? != true #属性防御。为属性 ID 的数组
height+=1
end
if guard_state_set.empty? != true #状态防御。为状态 ID 的数组
height+=guard_state_set.size
end
self.height=height*16+70
self.contents = Bitmap.new(self.width - 32,self.height - 32)
self.contents.clear
#描绘名字
[email protected]
self.contents.font.color = text_color(6)#颜色脚本
self.contents.font.size=18
if text!=nil
self.visible = true
self.contents.draw_text(0,0, @armor.name.size*7, 20, text, 0)
else
self.visible = false
end
x=0
y+=1
text=description
#描绘描叙
while ((text = description.slice!(/./m)) != nil)
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x*15, y*15+5, 14, 14, text, 0)
x+=1
if x==10#每行10个字
x=0
y+=1
end
end
#由特技属性确定高
x=0
y+=2#空行
text="价格:"
[email protected]
_s
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
x=0
y+=1
if @armor.pdef!=0 #物理防御
text="物理防御:"
[email protected]
_s
self.contents.font.color = text_color(6)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
x=0
y+=1
end
if @armor.mdef!=0 #魔法防御
text="魔法防御:"
[email protected]
_s
self.contents.font.color = text_color(6)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
x=0
y+=1
end
#属性防御
if element_set.empty? !=true #属性。为属性 ID 的数组
text="属性防御:"
for i in 0...element_set.size
text+=$data_system.elements[element_set[i]]+" "
end
x=0
y+=1
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
#状态防御
if guard_state_set.empty?!=true #附加状态。为状态 ID 的数组
text="状态防御:"
x=0
y+=1
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
y-=1
x+=text.size*5
for i in 0...guard_state_set.size
y+=1
text=$data_states[guard_state_set[i]].name
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
end
# y+=1 #空行
if @armor.str_plus!=0 #力量
x=0
y+=1
if @armor.str_plus > 0
text=$data_system.words.str+" + "
[email protected]
_plus.to_s
else
[email protected]
_plus
text=$data_system.words.str+" - "+str_minus.to_s
end
self.contents.font.color = text_color(6)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
if @armor.dex_plus!=0#体质
x=0
y+=1
if @armor.dex_plus > 0
text=$data_system.words.dex+" + "
[email protected]
_plus.to_s
else
[email protected]
_plus
text=$data_system.words.dex+" - "+dex_minus.to_s
end
self.contents.font.color = text_color(6)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
if @armor.agi_plus!=0#敏捷
x=0
y+=1
if @armor.agi_plus > 0
text=$data_system.words.agi+" + "
[email protected]
_plus.to_s
else
[email protected]
_plus
text=$data_system.words.agi+" - "+agi_minus.to_s
end
self.contents.font.color = text_color(6)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
if @armor.int_plus!=0 #智力
x=0
y+=1
if @armor.int_plus > 0
text=$data_system.words.int+" + "
[email protected]
_plus.to_s
else
[email protected]
_plus
text=$data_system.words.int+" - "+int_minus.to_s
end
self.contents.font.color = text_color(6)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
end
end
class Window_Help < Window_Base
#--------------------------------------------------------------------------
# ● 技能帮助窗口
#--------------------------------------------------------------------------
def set_skill_text(skill)
@skill=skill
description=""
[email protected]
# 取得屬性、附加狀態、解除狀態之副本
element_set = @skill.element_set.clone
plus_state_set = @skill.plus_state_set.clone
minus_state_set = @skill.minus_state_set.clone
# 過濾不顯示的描述
element_set -= UNSHOW_ELEMENT
plus_state_set -= UNSHOW_STATE
minus_state_set -= UNSHOW_STATE
x=0
y=0
height=1 #依要显示的内容确定高
#由描叙确定高
height+=description.size/3/10
if description.size%10!=0
height+=1
end
height+=4 #空行,效果范围,消费SP,命中率
if @skill.power!=0 #威力,威力为0,则可能为状态魔法
height+=1
end
if element_set.empty?!=true #属性。为属性 ID 的数组
height+=1
end
if plus_state_set.empty?!=true #附加状态。为状态 ID 的数组
height+=plus_state_set.size
end
if minus_state_set.empty?!=true #解除状态。为状态 ID 的数组
height+=minus_state_set.size
end
self.height=height*15+40+15
self.contents = Bitmap.new(self.width - 32,self.height - 32)
self.contents.clear
#描绘名字
[email protected]
self.contents.font.color =text_color(6)
self.contents.font.size=18
if text!=nil
self.visible = true
self.contents.draw_text(0,0, @skill.name.size*7, 20, text, 0)
else
self.visible = false
end
x=0
y+=1
text=description
#描绘描叙
while ((text = description.slice!(/./m)) != nil)
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x*15, y*15+5, 14, 14, text, 0)
x+=1
text
if x==10#每行10个字
x=0
y+=1
end
end
#由特技属性确定高
#效果范围
scope = {0=>"特殊技能",1=>"敌单体",2=>"敌全体",3=>"己方单体",4=>"己方全体",5=>"己方昏死单体",6=>"己方昏死全体",7=>"使用者"}#HASH表
text="范围:"+scope[@skill.scope]
x=0
y+=2 #空一行
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
#威力
if @skill.power!=0
x=0
y+=1
[email protected]
> 0 ? @skill.power : -1* @skill.power
text="威力:"+c.to_s
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
#描绘消费SP
x=0
y+=1
text="消耗SP:"
[email protected]
_cost.to_s
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
#命中率
x=0
y+=1
text="命中率:"
[email protected]
_s+"%"
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
#攻击属性
if element_set.empty? != true #属性。为属性 ID 的数组
text="属性:"
for i in 0...element_set.size
text+=$data_system.elements[element_set[i]]+" "
end
x=0
y+=1
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
#附加状态
if plus_state_set.empty? != true #附加状态。为状态 ID 的数组
text="附加状态:"
x=0
y+=1
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
y-=1
x+=text.size*5
for i in 0...plus_state_set.size
y+=1
text=$data_states[plus_state_set[i]].name
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
end
#解除状态
if minus_state_set.empty? != true #解除状态。为状态 ID 的数组
text="解除状态:"
x=0
y+=1
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
y-=1
x+=text.size*5
for i in 0...minus_state_set.size
y+=1
text=$data_states[minus_state_set[i]].name
self.contents.font.color = normal_color
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
end
end
end
class Window_Item < Window_Selectable
#--------------------------------------------------------------------------
# ● 刷新帮助文本
#--------------------------------------------------------------------------
def update_help
# @help_window.set_text(self.item == nil ? "" : self.item.description)
@help_window.set_text(item)
#校正帮助窗口位置
@help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
end
end
class Window_Skill < Window_Selectable
#--------------------------------------------------------------------------
# ● 刷新帮助文本
#--------------------------------------------------------------------------
def update_help
# @help_window.set_text(self.skill == nil ? "" : self.skill.description)
@help_window.set_text(skill)
#校正帮助窗口位置
@help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
end
end
class Window_EquipRight < Window_Selectable
def update_help
# @help_window.set_text(self.item == nil ? "" : self.item.description)
@help_window.set_text(item)
#校正帮助窗口位置
@help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
end
end
class Window_EquipItem < Window_Selectable
def update_help
# @help_window.set_text(self.item == nil ? "" : self.item.description)
@help_window.set_text(item)
#校正帮助窗口位置
@help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
end
end
class Window_ShopBuy < Window_Selectable
def update_help
@help_window.set_text(item)
#校正帮助窗口位置
@help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
end
end
class Window_ShopSell < Window_Selectable
def update_help
@help_window.set_text(item)
#校正帮助窗口位置
@help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
end
end
复制代码
不过很遗憾的说,没有找到解决方法~
只好忍痛去掉此脚本,遗憾一下~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1