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

Project1

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

[推荐问答] 脚本内在哪设定了回避率、命中率和暴击率

[复制链接]

Lv1.梦旅人

梦石
0
星屑
49
在线时间
3 小时
注册时间
2012-5-4
帖子
284
跳转到指定楼层
1
发表于 2012-6-24 20:06:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Luciffer 于 2012-6-28 09:09 编辑

还有暴击率
在哪更改
如果不同的人物拥有不同回避和命中又怎么改

Lv3.寻梦者

梦石
0
星屑
1379
在线时间
962 小时
注册时间
2012-4-30
帖子
1475

开拓者

2
发表于 2012-6-24 20:55:37 | 只看该作者
本帖最后由 铅笔描绘的思念 于 2012-6-24 21:05 编辑

在Game_Actor中def cri  def eva def hit  就是了。。
比如说会心一击率的话。。
  1. #--------------------------------------------------------------------------
  2.   # ● 获取会心一击率
  3.   #--------------------------------------------------------------------------
  4.   def cri
  5.     n = 4 # 初始值4
  6.     n += 4 if actor.critical_bonus#如果角色频发暴击勾了话+4
  7.     for weapon in weapons.compact
  8.       n += 4 if weapon.critical_bonus#如果武器频发暴击勾了话+4
  9.     end
  10.     return n #返回n值为cri
  11.   end
复制代码
就像这样

  1. #--------------------------------------------------------------------------
  2.   # ● 获取会心一击率
  3.   #--------------------------------------------------------------------------
  4.   def cri
  5.     n = 4 # 初始值4
  6.     n += 4 if actor.critical_bonus#如果角色频发暴击勾了话+4
  7.     for weapon in weapons.compact
  8.       n += 4 if weapon.critical_bonus#如果武器频发暴击勾了话+4
  9.     end
  10.     n += 4 if actor.id == 2 #2号角色再加4
  11.     n += actor.name.split(/#/)[1].to_i if actor.name.split(/#/)[1].to_i  != nil
  12.     #这样是在角色名称后加 #n 获取n这个数 在加n。。。不过这样需要再在Window_Base draw_actor_name改一下
  13.     return n #返回n值为cri
  14.   end
复制代码
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1444
在线时间
1592 小时
注册时间
2010-11-6
帖子
3193

贵宾

3
发表于 2012-6-24 21:55:54 | 只看该作者
就是在数据库中设置,跟脚本没关系。
数据库----人物
走你耶。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
2459 小时
注册时间
2011-12-18
帖子
1484
4
发表于 2012-6-24 22:16:04 | 只看该作者
  1. def hit
  2.     #if two_swords_style
  3.      # n1 = weapons[0] == nil ? 95 : weapons[0].hit
  4.      # n2 = weapons[1] == nil ? 95 : weapons[1].hit
  5.      # n = [n1, n2].min
  6.     #else
  7.      # n = weapons[0] == nil ? 95 : weapons[0].hit
  8.     #end
  9.     n= 80+agi*0.025
  10.     if n > 85 #agi = 200
  11.       n=(agi*0.025-5)/0.025*0.01+85 #n=90 agi=700
  12.     end
  13.     if n>90
  14.       n= (agi-700)*0.005+90
  15.     end
  16.     if n>100
  17.       n=100   #agi = 2700
  18.       end
  19.     return n
  20.   end
  21.   #--------------------------------------------------------------------------
  22.   # ● 获取闪躲率
  23.   #--------------------------------------------------------------------------
  24.   def eva
  25.     n = agi*0.01
  26.     if n>10
  27.       n= (agi - 1000)*0.008 + 10
  28.     end
  29.     if n>30 #agi>3500
  30.       n=(agi - 3500)*0.005 + 30
  31.     end
  32.     if n>40 #agi>5500
  33.       n=(agi - 5500)*0.004 + 40
  34.     end
  35.     if n>50 #agi>8000
  36.       n=(agi - 8000)*0.002 + 50
  37.       end
  38.     if n>70
  39.       n=(agi - 18000) * 0.001 + 70
  40.       end

  41.     if n>100
  42.       n= 100
  43.       end
  44.       
  45.     for item in armors.compact do n += item.eva end
  46.       
  47.     return n
  48.   end
复制代码
如上在GAME_ACTOR中修改定义,要不同的角色具有不同的命中率和回避率,加一个分歧即可
  1. if @actor_id == 1
  2. n = XXXXXX
  3. end
  4. if @actor_id == 2
  5. n = YYYYY
  6. end
  7. return n
复制代码

点评

觉得用 case也不错。。  发表于 2012-6-25 19:54
这是一个深不见底的坑,这是一个广袤无边的坑,我才刚刚放上了一抔泥土……

《六道·陈国篇》开坑了……↓点我
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 13:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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