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

Project1

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

[已经解决] 求教怎么在普通攻击中满足条件触发特技?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
386 小时
注册时间
2006-12-10
帖子
231
跳转到指定楼层
1
发表于 2011-8-31 22:49:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面这段是在Game_Battler中
def make_attack_damage_value(attacker)
    damage = attacker.atk * 4 - self.def * 2        # 基本计算
    damage = 0 if damage < 0                        # 减少为 0
    damage *= elements_max_rate(attacker.element_set)   # 修正属性
    damage /= 100
以下为触发特技的条件
    if attacker.name=="good" #攻击者为主角的名字时。已经在前面添加了name的类
      if $game_party.item_number(61) == 1  #当主角包裹里带有IP61的物品时,这个不知如何表达,这个不能用。还请帮忙纠正。
         #这里是发动特技代码,不会写,找了很多资料,也没找到,才寻找帮忙。
         p "gooddd" #验证用。
       end
    end

求知道的朋友帮忙补充一下,谢谢。

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

2
发表于 2011-9-1 07:11:58 | 只看该作者
判断攻击者为主角可以用attacker.actor? and attacker.id==X来判断
物品数量仅为1个时?

你修改的这段为计算物理攻击的伤害,这里可以实现满足上述条件时对物理攻击的伤害带来一些变化,想要实现你说的发动技能,可以考虑在 Scene_Battle 的 execute_action 处直接修改成技能。
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
386 小时
注册时间
2006-12-10
帖子
231
3
 楼主| 发表于 2011-9-1 16:40:03 | 只看该作者
很感谢星辰的答案。让我实现了多次攻击效果的应用.但普攻后再特攻,却不知如何实现.
  def execute_action
    case @active_battler.action.kind
    when 0  # 基本
      case @active_battler.action.basic
      when 0  # 攻击
        execute_action_attack
         if @active_battler.id==1
           p "攻击后使用特技"
           #在这里加入特技的使用ID,摸索良久还是不会,继续在这里求教.
          execute_action_skill
         end
         if @active_battler.id==2
           p "攻击四次"
           execute_action_attack
           execute_action_attack
           execute_action_attack
         end
         
           另外,如何判断包裹里持有某物的表达式?



derdfyga于2011-9-1 17:02补充以下内容:
下面这样,终于可以实行攻击后再使用特技,但是 如何判断包裹里持有某物的表达式却仍不会写,继续求教.

#--------------------------------------------------------------------------
  # ● 执行战斗行动
  #--------------------------------------------------------------------------
  def execute_action
    case @active_battler.action.kind
    when 0  # 基本
      case @active_battler.action.basic
      when 0  # 攻击
        execute_action_attack
         if @active_battler.id==1 # and 角色持有某物是如何表达?
           p "攻击后使用特技"
          @active_battler.action.set_skill(61)
          execute_action_skill
         end
         if @active_battler.id==1
           p "攻击四次"
           execute_action_attack
           execute_action_attack
           execute_action_attack
         end
         
           
      when 1  # 防御
        execute_action_guard
      when 2  # 逃走
        execute_action_escape
      when 3  # 待机
        execute_action_wait
      end
    when 1  # 特技
      execute_action_skill
    when 2  # 物品
      execute_action_item
    end
  end



derdfyga于2011-9-1 17:10补充以下内容:
$game_party.has_item?($data_weapons[1]
原来是这样,跟XP完全不同,好一阵找.终于成了.
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

4
发表于 2011-9-1 17:52:31 | 只看该作者
if @active_battler.id==1
这个.id还要斟酌一下,.id是个比较特殊的方法,它对于rgss里所有的对象都会产生一个值(其实一切都是对象……),所以还是建议用actor?方法来判断一下是否为己方角色。

点评

星叔触爆了.  发表于 2011-9-1 18:17
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
386 小时
注册时间
2006-12-10
帖子
231
5
 楼主| 发表于 2011-9-1 21:15:20 | 只看该作者
if @active_battler.actor?
这个方法能指具体角色名不
我想加入几个角色,每个角色都有不同的特性,如刺客攻击速度快,一次攻击四次,其他人不能。
而特攻魔师则可以普通攻击后施放一个魔法等,都需要指明具体的角色,然后满足一些条件触发这种攻击特性。
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 03:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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