Project1
标题:
装备扩展跟颜色描绘冲突
[打印本页]
作者:
15968715431
时间:
2017-7-27 13:56
标题:
装备扩展跟颜色描绘冲突
draw_item_name 这里出现了冲突。 不知道怎么解决。求救!!
[pre lang="ruby" file="物品描绘"]
module RPG
class Skill
def description
description = @description.split(/@/)[0]
return description != nil ? description : ''
end
def name_color_66RPG
name_color = @description.split(/@/)[1]
return name_color != nil ? name_color.to_i : 0
end
end
class Weapon
def description
description = @description.split(/@/)[0]
return description != nil ? description : ''
end
def name_color_66RPG
name_color = @description.split(/@/)[1]
return name_color != nil ? name_color.to_i : 0
end
end
class Item
def description
description = @description.split(/@/)[0]
return description != nil ? description : ''
end
def name_color_66RPG
name_color = @description.split(/@/)[1]
return name_color != nil ? name_color.to_i : 0
end
end
class Armor
def description
description = @description.split(/@/)[0]
return description != nil ? description : ''
end
def name_color_66RPG
name_color = @description.split(/@/)[1]
return name != nil ? name_color.to_i : 0
end
end
end
class Window_Base < Window
def disabled_color
return Color.new(255, 255, 255, 128)
end
def draw_item_name(item, x, y, enabled = true)
if item != nil
draw_icon(item.icon_index, x, y, enabled)
self.contents.font.color = text_color(item.name_color_66RPG)
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(x + 24, y, 200, 21, item.name)
end
end
end
复制代码
[/pre]
[pre lang="ruby" file="装备扩展"]
#==============================================================================
# 此脚本来自
www.66rpg.com
#------------------------------------------------------------------------------
# 功能:[RMVA]增加装备栏数量
# 作者:后知后觉(
[email protected]
)
# 版本:v1.1 2012-02-20
# 使用说明:
# 1.在下面设置需要增加的数量以及增加部位的名字
# 2.在数据库-护甲-备注 里写入 @etype[位置编号]
# 默认系统一共有5个装备位置.占用了0~4号
# 所以扩展出来的装备栏位置编号是从 5 开始.比如 @etype[5] @etype[6]
# 3.在扩展位置上给角色设置初始装备的方法
# 在 数据库-角色-备注 里写入 @add_equips[装备1ID,装备2ID.....]
# 每个ID中间由半角的 , 分开 比如 @add_equips[61] @add_equips[61,63]
# 4.设置 固定装备 的初始值
# 在 数据库-角色-备注 里写入 @fix_equips[装备位置编号,装备位置编号......]
# 每个编号间由半角的 , 分开 比如 @fix_equips[5] @fix_equips[5,6]
# 5.设置 禁用装备 的初始值
# 在 数据库-角色-备注 里写入 @seal_equips[装备位置编号,装备位置编号......]
# 每个编号间由半角的 , 分开 比如 @seal_equips[5] @seal_equips[5,6]
# 6.游戏运行时可以使用:
# $game_actors[角色ID].fix_equips 来获取该角色被固定装备位置的数组
# $game_actors[角色ID].seal_equips 来获取该角色被禁用装备位置的数组
# 然后可以使用数组类的 delete 和 push 方法来删除/增加 etype_id
# 来达到解除与启用 固定、禁用的效果
# 比如 $game_actors[1].fix_equips.delete(5) 解除1号角色5号位置的固定
# $game_actors[2].seal_equips.push(6) 2号角色禁用6号装备位置
# 注意事项:
# 1.上面说的设置初始装备、固定装备、禁用装备都是只针对新扩展部位的
# 默认的前5个装备位置的固定、禁用、设置初始.还请使用RMVA默认方式设置
# 2.状态画面的描绘装备部分.在默认分辨率下.只能描绘6个装备.
# 我小改了一下.但还是觉得不怎么好看.建议你自己重新描绘那一块...
#==============================================================================
module HzhjEquip
# 设置要增加的装备部位数量
ETYPE_ADD_NUM = 2
# 设置要增加的装备部位的名字
ETYPE_ADD_NAME = ["魂环","特技"]
end
def Vocab.etype(etype_id)
etypes = $data_system.terms.etypes + HzhjEquip::ETYPE_ADD_NAME
etypes[etype_id]
end
class RPG::Actor < RPG::BaseItem
def add_equips
if /@add_equips\[(.+?)\]/ =~ @note
result = $1.split(/,/).collect{|str|str.to_i}
result << 0 while result.size < HzhjEquip::ETYPE_ADD_NUM
else
result = Array.new(HzhjEquip::ETYPE_ADD_NUM){0}
end
result
end
def fix_equips
if /@fix_equips\[(.+?)\]/ =~ @note
result = $1.split(/,/).collect{|str|str.to_i}
else
result = []
end
result
end
def seal_equips
if /@seal_equips\[(.+?)\]/ =~ @note
result = $1.split(/,/).collect{|str|str.to_i}
else
result = []
end
result
end
end
class RPG::Armor < RPG::EquipItem
def etype_id
if /@etype\[(.+?)\]/ =~ @note
return $1.to_i
else
return @etype_id
end
end
end
class Game_Actor < Game_Battler
attr_accessor :fix_equips
attr_accessor :seal_equips
alias hzhj_old_init_equips_game_actor init_equips
def init_equips(equips)
@fix_equips = actor.fix_equips
@seal_equips = actor.seal_equips
hzhj_equips = equips.clone
add_equips = actor.add_equips
HzhjEquip::ETYPE_ADD_NUM.times{hzhj_equips << add_equips.shift}
hzhj_old_init_equips_game_actor(hzhj_equips)
end
alias hzhj_old_equip_slots_game_actor equip_slots
def equip_slots
result = hzhj_old_equip_slots_game_actor
HzhjEquip::ETYPE_ADD_NUM.times{result << result.size}
result
end
def equip_type_fixed?(etype_id)
if etype_id > 4
return @fix_equips.include?(etype_id)
else
return super
end
end
def equip_type_sealed?(etype_id)
if etype_id > 4
return @seal_equips.include?(etype_id)
else
return super
end
end
end
class Window_EquipSlot < Window_Selectable
def actor=(actor)
return if @actor == actor
@actor = actor
create_contents
refresh
end
end
class Window_Status < Window_Selectable
def draw_equipments(x, y)
x = 240 if @actor.equips.size > 6
@actor.equips.each_with_index do |item, i|
dx = x + 150 * (i / 6)
dy = y + line_height * (i % 6)
self.draw_item_name_(item, dx, dy, true, 120)
end
end
end
[/pre]
作者:
300英雄
时间:
2017-7-27 21:26
我能给你一个新的装备拓展和显示,而且不会影响你的游戏速度
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1