赞 | 5 |
VIP | 0 |
好人卡 | 2 |
积分 | 36 |
经验 | 24079 |
最后登录 | 2024-11-27 |
在线时间 | 1892 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 3616
- 在线时间
- 1892 小时
- 注册时间
- 2010-6-19
- 帖子
- 1211
|
本帖最后由 黑米馒头 于 2011-5-6 21:14 编辑
求高手帮忙给下面的脚本加入图片功能...自己琢磨半天不会弄...
就像这样
脚本:
#==============================================================================
# ■ Window_Help
#------------------------------------------------------------------------------
# 特技及物品的说明、角色的状态显示的窗口。
# 若要更改属性,请搜索element_set={1=>"火",2=>"冰",3=>"光",4=>"暗"} 改成对应属性即可
#==============================================================================
class Window_Help_Self < Window_Base
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
super(150,200, 180, 430)
self.opacity = 160
self.z= 9999
self.visible = false
end
#--------------------------------------------------------------------------
# ● 设置文本
# text : 窗口显示的字符串
# align : 对齐方式 (0..左对齐、1..中间对齐、2..右对齐)
#--------------------------------------------------------------------------
def set_text(data)
@data=data
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
end
#--------------------------------------------------------------------------
# ● 物品帮助窗口
#--------------------------------------------------------------------------
def set_item_text(item)
@item=item
[email protected]
x=0
y=0
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 @item.element_set.empty?!=true #属性。为属性 ID 的数组
height+=1
end
if @item.plus_state_set.empty?!=true #附加状态。为状态 ID 的数组
[email protected]_state_set.size
end
if @item.minus_state_set.empty?!=true #解除状态。为状态 ID 的数组
[email protected]_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(4)
self.contents.font.size=18
self.contents.font.color = Color.new(255, 255, 128)
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
text="增益:"+parameter_type[@item.parameter_type]+" +"[email protected]_points.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.element_set.empty?!=true #属性。为属性 ID 的数组
# element_set={1=>"火",2=>"冰",3=>"光",4=>"暗"}
# text="属性:"
# for i in [email protected]_set.size
# text+=element_set[@item.element_set]+" "
# 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 @item.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 [email protected]_state_set.size
y+=1
text=$data_states[@item.plus_state_set].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 @item.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 [email protected]_state_set.size
y+=1
text=$data_states[@item.minus_state_set].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
#--------------------------------------------------------------------------
# ● 武器帮助窗口
#--------------------------------------------------------------------------
def set_weapon_text(weapon)
@weapon=weapon
[email protected]
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 @weapon.element_set.empty?!=true #属性。为属性 ID 的数组
height+=1
end
if @weapon.plus_state_set.empty?!=true #附加状态。为状态 ID 的数组
[email protected]_state_set.size
end
if @weapon.minus_state_set.empty?!=true #解除状态。为状态 ID 的数组
[email protected]_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 = Color.new(255, 255, 168)#颜色脚本
self.contents.font.size=18
self.contents.font.color = Color.new(255, 255, 128)
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 = Color.new(255, 255, 168)#颜色脚本
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 = Color.new(255, 255, 168)#颜色脚本
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 = Color.new(255, 255, 168)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
#武器属性
if @weapon.element_set.empty?!=true #属性。为属性 ID 的数组
element_set={1=>"火",2=>"冰",3=>"光",4=>"暗"}
text="属性:"
for i in [email protected]_set.size
text+=element_set[@weapon.element_set]+" "
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 @weapon.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 [email protected]_state_set.size
y+=1
text=$data_states[@weapon.plus_state_set].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 @weapon.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 [email protected]_state_set.size
y+=1
text=$data_states[@weapon.minus_state_set].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
text=$data_system.words.str+" + "[email protected]_plus.to_s
self.contents.font.color = Color.new(255, 255, 168)#颜色脚本
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
text=$data_system.words.dex+" + "[email protected]_plus.to_s
self.contents.font.color = Color.new(255, 255, 168)#颜色脚本
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
text=$data_system.words.agi+" + "[email protected]_plus.to_s
self.contents.font.color = Color.new(255, 255, 168)#颜色脚本
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
text=$data_system.words.int+" + "[email protected]_plus.to_s
self.contents.font.color = Color.new(255, 255, 168)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
end
#--------------------------------------------------------------------------
# ● 防具帮助窗口
#--------------------------------------------------------------------------
def set_armor_text(armor)
def set_armor_text(armor)
@armor=armor
[email protected]
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 @armor.guard_element_set.empty?!=true #属性防御。为属性 ID 的数组
height+=1
end
if @armor.guard_state_set.empty?!=true #状态防御。为状态 ID 的数组
[email protected]_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 = Color.new(255, 255, 168)#颜色脚本
self.contents.font.size=18
self.contents.font.color = Color.new(255, 255, 128)
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)
if @armor.pdef!=0 #物理防御
x=0
y+=1
text="物理防御:"[email protected]_s
self.contents.font.color = Color.new(255, 255, 168)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
if @armor.mdef!=0 #魔法防御
x=0
y+=1
text="魔法防御:"[email protected]_s
self.contents.font.color = Color.new(255, 255, 168)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
#属性防御
if @armor.guard_element_set.empty?!=true #属性。为属性 ID 的数组
element_set={1=>"火",2=>"冰",3=>"光",4=>"暗"}
text="属性防御:"
for i in [email protected]_element_set.size
text+=element_set[@armor.guard_element_set]+" "
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 @armor.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 [email protected]_state_set.size
y+=1
text=$data_states[@armor.guard_state_set].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
text=$data_system.words.str+" + "[email protected]_plus.to_s
self.contents.font.color = Color.new(255, 255, 168)#颜色脚本
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
text=$data_system.words.dex+" + "[email protected]_plus.to_s
self.contents.font.color = Color.new(255, 255, 168)#颜色脚本
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
text=$data_system.words.agi+" + "[email protected]_plus.to_s
self.contents.font.color = Color.new(255, 255, 168)#颜色脚本
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
text=$data_system.words.int+" + "[email protected]_plus.to_s
self.contents.font.color = Color.new(255, 255, 168)#颜色脚本
self.contents.font.size=14
self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
end
end
#--------------------------------------------------------------------------
# ● 技能帮助窗口
#--------------------------------------------------------------------------
def set_skill_text(skill)
@skill=skill
[email protected]
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 @skill.element_set.empty?!=true #属性。为属性 ID 的数组
height+=1
end
if @skill.plus_state_set.empty?!=true #附加状态。为状态 ID 的数组
[email protected]_state_set.size
end
if @skill.minus_state_set.empty?!=true #解除状态。为状态 ID 的数组
[email protected]_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
self.contents.font.color = Color.new(255, 255, 128)
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
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 @skill.element_set.empty?!=true #属性。为属性 ID 的数组
# element_set={1=>"火",2=>"冰",3=>"光",4=>"暗"}
# text="属性:"
# for i in [email protected]_set.size
# text+=element_set[@skill.element_set]+" "
# 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 @skill.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 [email protected]_state_set.size
y+=1
text=$data_states[@skill.plus_state_set].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 @skill.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 [email protected]_state_set.size
y+=1
text=$data_states[@skill.minus_state_set].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
#--------------------------------------------------------------------------
# ● 设置角色
# actor : 要显示状态的角色
#--------------------------------------------------------------------------
def set_actor(actor)
if 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
@text = nil
self.visible = true
end
end
#--------------------------------------------------------------------------
# ● 设置敌人
# enemy : 要显示名字和状态的敌人
#--------------------------------------------------------------------------
def set_enemy(enemy)
text = enemy.name
state_text = make_battler_state_text(enemy, 112, false)
if state_text != ""
text += " " + state_text
end
set_text(text, 1)
end
#--------------------------------------------------------------------------
# ● 校正帮助窗口位置
#--------------------------------------------------------------------------
def set_pos(x,y,width,oy,index,column_max)
#光标坐标
cursor_width = 43 #width / column_max - 48
xx = index % column_max * (cursor_width - 1)
yy = index / column_max * 42 - oy# self.oy
self.x=xx+x+59
self.y=yy+y+59
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
|
|