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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 89444640
打印 上一主题 下一主题

[已经解决] 角色自身防御力、魔防 及其他

[复制链接]

Lv5.捕梦者

梦石
0
星屑
33480
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

11
发表于 2017-12-28 16:22:34 | 只看该作者
简单的改一下还是行得通的

  1. #==============================================================================
  2. module XdRs
  3.   #--------------------------------------------------------------------------
  4.   #每升一级,角色增加的攻击力,物防和魔防。格式:角色ID => [攻击力,物防,魔防]
  5.   Level_add_data = {1=>[5,3,3],2=>[2,3,3]}
  6.   #--------------------------------------------------------------------------
  7.   #攻击以4项属性的百分比附加。
  8.   #格式:[力量百分比,敏捷百分比,速度百分比,智力百分比]
  9.   Properties_atk_rate = [50,0,0,0]
  10.   #--------------------------------------------------------------------------
  11.   #物防以4项属性的百分比附加。
  12.   Properties_pdef_rate = [0,30,0,0]
  13.   #--------------------------------------------------------------------------
  14.   #魔防以4项属性的百分比附加。
  15.   Properties_mdef_rate = [0,0,0,30]
  16.   #--------------------------------------------------------------------------
  17.   #未装备武器时攻击方动画ID。(格式:角色ID=>动画ID)
  18.   Eh_anm_id1 = {1=>10,2=>12}
  19.   #--------------------------------------------------------------------------
  20.   #未装备武器时对象方动画ID。(格式:角色ID=>动画ID)
  21.   Eh_anm_id2 = {1=>20,2=>21}
  22. #==============================================================================
  23.   #--------------------------------------------------------------------------
  24.   def self.ar_rate(type)
  25.     return [Properties_atk_rate,Properties_pdef_rate,Properties_mdef_rate][type]
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   def self.level_add(actor_id)
  29.     return Level_add_data[actor_id] || [0,0,0]
  30.   end
  31.    #--------------------------------------------------------------------------
  32.   def self.eh_anm1(actor_id)
  33.     return Eh_anm_id1[actor_id] || 0
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   def self.eh_anm2(actor_id)
  37.     return Eh_anm_id2[actor_id] || 0
  38.   end
  39. end
  40. #==============================================================================
  41. class Game_Actor < Game_Battler
  42.   #--------------------------------------------------------------------------
  43.   def level_increase(type)
  44.     return XdRs.level_add(@actor_id)[type] * @level
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   def attribute_increase(type)
  48.     data = [str,dex,agi,int]
  49.     rate = XdRs.ar_rate(type)
  50.     4.times{|i| data[i] = data[i] * rate[i] / 100}
  51.     return eval(data.join("+")) + level_increase(type)
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   def has_weapon?
  55.     return !!$data_weapons[@weapon_id]
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   alias xr_aia_base_atk base_atk
  59.   def base_atk
  60.     return xr_aia_base_atk + attribute_increase(0)
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   alias xr_aia_base_pdef base_pdef
  64.   def base_pdef
  65.     return xr_aia_base_pdef + attribute_increase(1)
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   alias xr_aia_base_mdef base_mdef
  69.   def base_mdef
  70.     return xr_aia_base_mdef + attribute_increase(2)
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   alias xr_aia_animation1_id animation1_id
  74.   def animation1_id
  75.     return has_weapon? ? xr_aia_animation1_id : XdRs.eh_anm1(@actor_id)
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   alias xr_aia_animation2_id animation2_id
  79.   def animation2_id
  80.     return has_weapon? ? xr_aia_animation2_id : XdRs.eh_anm2(@actor_id)
  81.   end
  82. end
  83. #==============================================================================
复制代码

点评

刚才帖子我又增加了几句,麻烦看一下实现的难易程度,按照固定数值增加,没个等级随机分配整数这样设置会不会更合理些呢?  发表于 2017-12-28 16:29
刚才我又思考了一下,推翻了自己的想法,按照角色id固定数值增加,这个造成角色攻击力差的太多了,数值小的话是倍数关系,98 196 394 492 太不平衡  发表于 2017-12-28 16:27
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33480
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

12
发表于 2017-12-28 16:56:27 | 只看该作者
那么,直接设置100级时增加了多少不就行了

  1. #==============================================================================
  2. module XdRs
  3.   #--------------------------------------------------------------------------
  4.   #100级时,角色增加的攻击力,物防和魔防。格式:角色ID => [攻击力,物防,魔防]
  5.   Level_add_data = {1=>[100,60,35],2=>[85,50,55]}
  6.   #--------------------------------------------------------------------------
  7.   #攻击以4项属性的百分比附加。
  8.   #格式:[力量百分比,敏捷百分比,速度百分比,智力百分比]
  9.   Properties_atk_rate = [50,0,0,0]
  10.   #--------------------------------------------------------------------------
  11.   #物防以4项属性的百分比附加。
  12.   Properties_pdef_rate = [0,30,0,0]
  13.   #--------------------------------------------------------------------------
  14.   #魔防以4项属性的百分比附加。
  15.   Properties_mdef_rate = [0,0,0,30]
  16.   #--------------------------------------------------------------------------
  17.   #未装备武器时攻击方动画ID。(格式:角色ID=>动画ID)
  18.   Eh_anm_id1 = {1=>10,2=>12}
  19.   #--------------------------------------------------------------------------
  20.   #未装备武器时对象方动画ID。(格式:角色ID=>动画ID)
  21.   Eh_anm_id2 = {1=>20,2=>21}
  22. #==============================================================================
  23.   #--------------------------------------------------------------------------
  24.   def self.ar_rate(type)
  25.     return [Properties_atk_rate,Properties_pdef_rate,Properties_mdef_rate][type]
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   def self.level_add(actor_id)
  29.     return Level_add_data[actor_id] || [0,0,0]
  30.   end
  31.    #--------------------------------------------------------------------------
  32.   def self.eh_anm1(actor_id)
  33.     return Eh_anm_id1[actor_id] || 0
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   def self.eh_anm2(actor_id)
  37.     return Eh_anm_id2[actor_id] || 0
  38.   end
  39. end
  40. #==============================================================================
  41. class Game_Actor < Game_Battler
  42.   #--------------------------------------------------------------------------
  43.   def level_increase(type)
  44.     return (XdRs.level_add(@actor_id)[type] * @level / 100.0).round
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   def attribute_increase(type)
  48.     data = [str,dex,agi,int]
  49.     rate = XdRs.ar_rate(type)
  50.     4.times{|i| data[i] = data[i] * rate[i] / 100}
  51.     return eval(data.join("+")) + level_increase(type)
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   def has_weapon?
  55.     return !!$data_weapons[@weapon_id]
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   alias xr_aia_base_atk base_atk
  59.   def base_atk
  60.     return xr_aia_base_atk + attribute_increase(0)
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   alias xr_aia_base_pdef base_pdef
  64.   def base_pdef
  65.     return xr_aia_base_pdef + attribute_increase(1)
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   alias xr_aia_base_mdef base_mdef
  69.   def base_mdef
  70.     return xr_aia_base_mdef + attribute_increase(2)
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   alias xr_aia_animation1_id animation1_id
  74.   def animation1_id
  75.     return has_weapon? ? xr_aia_animation1_id : XdRs.eh_anm1(@actor_id)
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   alias xr_aia_animation2_id animation2_id
  79.   def animation2_id
  80.     return has_weapon? ? xr_aia_animation2_id : XdRs.eh_anm2(@actor_id)
  81.   end
  82. end
  83. #==============================================================================
复制代码

评分

参与人数 1星屑 +100 收起 理由
RyanBern + 100 精品文章

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1387
在线时间
184 小时
注册时间
2007-2-28
帖子
145
13
发表于 2017-12-28 17:21:11 | 只看该作者
本帖最后由 梦幻想 于 2017-12-28 17:29 编辑

说错了,自删
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35186
在线时间
4169 小时
注册时间
2007-12-15
帖子
10067
14
 楼主| 发表于 2017-12-28 21:45:20 | 只看该作者
SailCat 发表于 2017-12-27 23:05
用我的数据库备注插件,设定打开狂野模式,然后备注#price=999999;str_plus=1999;dex_plus=2999这样就行了
...

改了一会,能用了,写多少都行了,果然好用。
然后看到了 SEP 插件公共核心的96行
FRAME_RATE        = 40              # 游戏运行的帧率
我改80试了一下,速度提升很明显。
然后我就想,能不能做个开关锁某个按键,可以高倍速运行,
按住比如跟ps一样,按住X快速跳过重复对话,战斗时候高速运行,松开立即返回原始速率,就是40帧的那个,感觉特别实用啊。就是不知道怎么做。
估计类似的应用还有很多。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 19:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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