| 
 
| 赞 | 0 |  
| VIP | 0 |  
| 好人卡 | 0 |  
| 积分 | 1 |  
| 经验 | 29377 |  
| 最后登录 | 2013-8-7 |  
| 在线时间 | 1 小时 |  
 Lv1.梦旅人 
	梦石0 星屑50 在线时间1 小时注册时间2008-8-3帖子976 | 
| 
-------我原来的提问:
x
加入我们,或者,欢迎回来。您需要 登录 才可以下载或查看,没有帐号?注册会员  
 VX默认的能力只有HP、MP、攻击力、防御力、精神力、敏捷度
 
 我想多加一些能力比如  魔法防御力、暴击率  之类的,要怎么做?
 
 目前我只会把计算公式改成不管物理攻击还是魔法攻击都是用防御力来抵抗的
 
 
 
 
 -------感谢各位的帮助,新增能力和能力在状态栏显示的问题已基本解决,方法如下-----
 
 
 例如,要加入声望值,
 
 1.在Game_Actor中  《定义实例变量》 部分加入声望变量prestige :
 
 #--------------------------------------------------------------------------
 # ● 定义实例变量
 #--------------------------------------------------------------------------
 attr_reader   :name                     # 姓名
 attr_reader   :character_name           # 步行图象文件名
 attr_reader   :character_index          # 步行图象索引
 attr_reader   :face_name                # 脸谱图象名
 attr_reader   :face_index               # 脸谱索引
 attr_reader   :class_id                 # 职业 ID
 attr_reader   :weapon_id                # 武器 ID
 attr_reader   :armor1_id                # 盾 ID
 attr_reader   :armor2_id                # 头防具 ID
 attr_reader   :armor3_id                # 身体防具 ID
 attr_reader   :armor4_id                # 装饰品 ID
 attr_reader   :level                    # 等级
 attr_reader   :exp                      # 经验值
 attr_accessor :last_skill_id            # 记忆光标用 : 特技
 attr_accessor :prestige                 # 声望
 
 
 
 
 
 2.Game_Actors     (注意有s)   全部改成:
 #==============================================================================
 # ■ Game_Actors
 #------------------------------------------------------------------------------
 #  处理角色排列的类。本类的实例请参考
 #  $game_actors。
 #==============================================================================
 
 class Game_Actors
 #--------------------------------------------------------------------------
 # ● 初始化对象
 #--------------------------------------------------------------------------
 def initialize
 @data = []
 end
 #--------------------------------------------------------------------------
 # ● 获取角色
 #     actor_id : 角色 ID
 #--------------------------------------------------------------------------
 def [](actor_id)
 if @data[actor_id] == nil and $data_actors[actor_id] != nil
 @data[actor_id] = Game_Actor.new(actor_id)
 #下面是增加的
 case actor_id                             #根据角色编号不同
 when 1                                    #1号角色
 @data[actor_id].prestige = 300        #设置声望初始值为300
 when 2                                    #2号角色
 @data[actor_id].prestige = 0          #其他角色类推
 end
 #上面是增加的
 end
 return @data[actor_id]
 end
 end
 
 
 
 
 3.Window_Status中  《刷新》 部分改成:
 
 #--------------------------------------------------------------------------
 # ● 刷新
 #--------------------------------------------------------------------------
 def refresh
 self.contents.clear
 draw_actor_name(@actor, 4, 0)
 draw_actor_class(@actor, 128, 0)
 draw_actor_face(@actor, 8, 32)
 draw_basic_info(128, 32)
 draw_parameters(32, 160)
 
 draw_extra(140, 160)    #附加值
 
 draw_exp_info(288, 32)
 draw_equipments(288, 160)
 end
 
 
 
 
 4.也是Window_Status中,在  最后  加入附加值描绘部分:
 
 #--------------------------------------------------------------------------
 # ● 描绘附加值
 #     x : 描绘目标 X 坐标
 #     y : 描绘目标 Y 坐标
 #--------------------------------------------------------------------------
 def draw_extra(x, y)
 draw_actor_extra(@actor, x, y + WLH * 0, 0)       #描绘声望
 #下面是扩展空间,可以再描绘3个附加值而不超出边框
 #    draw_actor_extra(@actor, x, y + WLH * 1, 1)
 #    draw_actor_extra(@actor, x, y + WLH * 2, 2)
 #    draw_actor_extra(@actor, x, y + WLH * 3, 3)
 end
 
 
 
 
 
 
 
 5.Window_Base中 《 描绘能力值》 部分改成:
 #--------------------------------------------------------------------------
 # ● 描绘能力值
 #     actor : 角色
 #     x     : 描绘目标 X 坐标
 #     y     : 描绘目标 Y 坐标
 #     type  : 能力值种类 (0~3)
 #--------------------------------------------------------------------------
 def draw_actor_parameter(actor, x, y, type)
 case type
 when 0
 parameter_name = Vocab::atk
 parameter_value = actor.atk
 when 1
 parameter_name = Vocab::def
 parameter_value = actor.def
 when 2
 parameter_name = Vocab::spi
 parameter_value = actor.spi
 when 3
 parameter_name = Vocab::agi
 parameter_value = actor.agi
 end
 self.contents.font.color = system_color
 self.contents.draw_text(x, y, 120, WLH, parameter_name)
 self.contents.font.color = normal_color
 self.contents.draw_text(x + 50, y, 36, WLH, parameter_value, 2)
 end
 
 6.也是Window_Base中, 结尾  加上
 
 #--------------------------------------------------------------------------
 # ● 描绘附加值
 #     actor : 角色
 #     x     : 描绘目标 X 坐标
 #     y     : 描绘目标 Y 坐标
 #     type  : 附加值种类 (0~3)
 #--------------------------------------------------------------------------
 def draw_actor_extra(actor, x, y, type)
 case type
 when 0
 parameter_name = "声望"
 parameter_value = actor.prestige
 #扩展空间    when 1
 
 #扩展空间    when 2
 
 #扩展空间    when 3
 
 end
 self.contents.font.color = system_color
 self.contents.draw_text(x, y, 120, WLH, parameter_name)
 self.contents.font.color = normal_color
 self.contents.draw_text(x + 60, y, 36, WLH, parameter_value, 2)
 end
 
 
 
 完毕
 
 
 
 余留问题:
 添加的能力值要在游戏中改变可以借助事件,要想随着升级等上升还要该其他脚本,我暂时不会= =
 
 
 
 有不对的地方请指正,谢谢!
 
 | 
 |