设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3320|回复: 10
打印 上一主题 下一主题

VX如何增加人物的能力种类(顶楼已经整理好解决方案)

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-8-3
帖子
976
跳转到指定楼层
1
发表于 2008-8-6 23:34:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

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



完毕



余留问题:
添加的能力值要在游戏中改变可以借助事件,要想随着升级等上升还要该其他脚本,我暂时不会= =



有不对的地方请指正,谢谢!
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-4
帖子
608
2
发表于 2008-8-7 00:00:06 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
帖子
466
3
发表于 2008-8-7 00:14:09 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

4
发表于 2008-8-7 01:01:44 | 只看该作者
以下引用約束于2008-8-6 16:00:06的发言:

我目前内个状态的地方不可视,但是装备时可以看到,是这样的



如果可以的话我给你这个的脚本-=

这些数据按道理游戏本身本来就是有的…… - -
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-8-3
帖子
976
5
 楼主| 发表于 2008-8-7 02:02:25 | 只看该作者
以下引用kissye于2008-8-6 16:14:09的发言:

Game_Actor类下增加能力种类,举例
attr_accessor :charm   #魅力
然后修改Game_Actors
#--------------------------------------------------------------------------
# ● 获取角色
#     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].charm = 70#设置魅力初始值
when 2#2号角色
@data[actor_id].charm = 70#其他角色类推
end
#上面是增加的
   end
   return @data[actor_id]
end
不过修改这些值必须用脚本,因为数据库里没有这些值,不能直接编辑





那要如何让这些能力显示在状态栏里呢??
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-7
帖子
9
6
发表于 2008-8-7 02:10:34 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-4
帖子
608
7
发表于 2008-8-7 03:54:51 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
8
发表于 2008-8-7 04:05:00 | 只看该作者

Window_Base

Window_Status
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

9
发表于 2008-8-7 04:19:20 | 只看该作者
以下引用約束于2008-8-6 19:54:51的发言:

不是的。。内是装了扩张装备画面才有的。。。

然后效果是可以选择自动装备最强装备,装备全卸,和变更装备

在裝某个装备时显示出他对各个属性值的影响,其中添加了回避 。命中 。会心 这三个数值影响。

回避、命中、会心是系统本身就有的,只不过是需要战斗时零时计算的,这个就是把这些属性先计算出来显示在菜单上而已。不是新增属性。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-8-3
帖子
976
10
 楼主| 发表于 2008-8-7 06:18:52 | 只看该作者
谢谢大家的回答!

问题已经基本解决,我会把解决方案整理一下写在顶楼
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

//
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-4 19:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表