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

Project1

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

[已经过期] 关于Game_Enemy的问题

[复制链接]

Lv4.逐梦者

梦石
0
星屑
12580
在线时间
1445 小时
注册时间
2012-7-24
帖子
1302
跳转到指定楼层
1
发表于 2014-4-10 16:02:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RT,又来请教各位大神了,这次主要是有一些名词不大懂
1.
  1.   #--------------------------------------------------------------------------
  2.   # ● 属性防御判定
  3.   #     state_id : 状态 ID
  4.   #--------------------------------------------------------------------------
  5.   def state_guard?(state_id)
  6.     return false
  7.   end
复制代码
这里为什么是直接返回false呢,难道是直接让状态不可抵抗,可是我看数据库中有些状态还是没有勾选无法抵抗的选项的,或者是初始化的效果??{:2_276:}
2.
  1.     # 抽取现在有效的行动
  2.     available_actions = []
  3.     rating_max = 0
  4.     for action in self.actions
  5.       # 确认回合条件
  6.       n = $game_temp.battle_turn
  7.       a = action.condition_turn_a
  8.       b = action.condition_turn_b
  9.       if (b == 0 and n != a) or
  10.          (b > 0 and (n < 1 or n < a or n % b != a % b))
  11.         next
  12.       end
  13.       # 确认 HP 条件
  14.       if self.hp * 100.0 / self.maxhp > action.condition_hp
  15.         next
  16.       end
  17.       # 确认等级条件
  18.       if $game_party.max_level < action.condition_level
  19.         next
  20.       end
  21.       # 确认开关条件
  22.       switch_id = action.condition_switch_id
  23.       if switch_id > 0 and $game_switches[switch_id] == false
  24.         next
  25.       end
  26.       # 符合条件 : 添加本行动
  27.       available_actions.push(action)
  28.       if action.rating > rating_max
  29.         rating_max = action.rating
  30.       end
  31.     end
  32.     # 最大概率值作为 3 合计计算(0 除外)
  33.     ratings_total = 0
  34.     for action in available_actions
  35.       if action.rating > rating_max - 3
  36.         ratings_total += action.rating - (rating_max - 3)
  37.       end
  38.     end
  39.     # 概率合计不为 0 的情况下
  40.     if ratings_total > 0
  41.       # 生成随机数
  42.       value = rand(ratings_total)
  43.       # 设置对应生成随机数的当前行动
  44.       for action in available_actions
  45.         if action.rating > rating_max - 3
  46.           if value < action.rating - (rating_max - 3)
  47.             self.current_action.kind = action.kind
  48.             self.current_action.basic = action.basic
  49.             self.current_action.skill_id = action.skill_id
  50.             self.current_action.decide_random_target_for_enemy
  51.             return
  52.           else
  53.             value -= action.rating - (rating_max - 3)
  54.           end
  55.         end
  56.       end
  57.     end
  58.   end
复制代码
哪位大大能够有时间稍微解释一下这里首先是rating_max = 0这里不懂,查看帮助是额定值的意思。。。但是。。。感觉说了跟没说一样
还有action.condition_turn_a和action.condition_turn_b又是指什么呢?没时间的话解释一下这三个也行的,拜托各位了


欢迎大家加我

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41150
在线时间
7572 小时
注册时间
2009-7-6
帖子
13499

开拓者贵宾

2
发表于 2014-4-10 16:35:28 | 只看该作者
因为调用state_guard?这个方法判定是针对Game_Battler的,所以Game_Actor和Game_Enemy都有这个方法,而默认系统里属性防御对敌人没有意义,故相当于留空。

后面一个问题你可以在F1帮助手册里面查看RPG::Enemy::Action相关说明。

评分

参与人数 2星屑 +70 收起 理由
myownroc + 60 塞糖
化螺耕 + 10 感谢你的回答~~

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
135
在线时间
271 小时
注册时间
2013-7-25
帖子
64
3
发表于 2014-4-10 17:46:08 | 只看该作者
在设置战斗中事件或动作的触发条件时不是可以选择在第_+_x回合触发吗,action.condition_turn_a和action.condition_turn_b就是用来表示这个触发条件的,即在第action.condition_turn_a+action.condition_turn_b * x回合触发

评分

参与人数 2星屑 +70 收起 理由
myownroc + 60 塞糖
化螺耕 + 10 感谢你的回答~~

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12580
在线时间
1445 小时
注册时间
2012-7-24
帖子
1302
4
 楼主| 发表于 2014-4-11 13:33:38 | 只看该作者
fux2 发表于 2014-4-10 16:35
因为调用state_guard?这个方法判定是针对Game_Battler的,所以Game_Actor和Game_Enemy都有这个方法,而默认 ...

求版主大大解释额定值的意思。。。

欢迎大家加我
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-30 17:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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