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

Project1

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

[已经解决] 【提问】这种技能怎么做?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
17 小时
注册时间
2011-7-14
帖子
8
跳转到指定楼层
1
发表于 2014-7-21 02:14:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这是敌人使用的单体攻击技能。使用这个技能时,如果敌人攻击的我方角色没有状态1,则对我方角色使用一个增加状态1的技能,技能结束。如果有状态1没有状态2时,则对我方角色使用一个增加状态2的技能,技能结束。如果有状态1状态2没有状态3时,则对我方角色使用一个增加状态3的技能,技能结束。如果有状态1妆台2状态3都有时,对我方角色使用一个秒杀技能。

大神们能提供个思路么?

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10073
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

2
发表于 2014-7-21 04:56:37 | 只看该作者
  1. class Game_Battler < Game_BattlerBase
  2.   
  3.   alias make_damage_value2 make_damage_value
  4.   #计算伤害
  5.   def make_damage_value(user, item)
  6.     make_damage_value2(user, item)
  7.     if item.is_a?(RPG::Skill)
  8.       case item.id
  9.         when 20  #设置20号技能
  10.           if self.state?(11) && self.state?(12) && self.state?(13)  #3种状态
  11.             
  12.               self.add_state(1)    # "秒杀" 1号为 "战斗不能"
  13.             
  14.             elsif self.state?(11) && self.state?(12)  #2种状态
  15.               
  16.               self.add_state(13)   # 目标附加"3"状态 ID为13
  17.             
  18.             elsif self.state?(11)  #1种状态
  19.               
  20.               self.add_state(12)   # 目标附加"2"状态   ID为12
  21.             
  22.             else  #没有状态
  23.               
  24.               self.add_state(11)    # 目标附加"1"状态   ID为11
  25.           end
  26.         end
  27.       end            
  28.     end
  29. end
复制代码
思路就是这样,未测试

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 你self打得累不累……

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
17 小时
注册时间
2011-7-14
帖子
8
3
 楼主| 发表于 2014-7-21 15:15:02 | 只看该作者
VIPArcher 发表于 2014-7-21 04:56
思路就是这样,未测试

谢谢大神指导,经测试,技能不设置伤害时无效,设置时有效。还有一个小问题想请教一下,就是如果想改成判断状态之后敌人对我方释放一个技能,self.add_state可以改成什么指令?

点评

user.use_item($data_skills[技能id]) 未测试  发表于 2014-7-21 15:27
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
17 小时
注册时间
2011-7-14
帖子
8
4
 楼主| 发表于 2014-7-21 17:43:19 | 只看该作者
xiaolang96163 发表于 2014-7-21 15:15
谢谢大神指导,经测试,技能不设置伤害时无效,设置时有效。还有一个小问题想请教一下,就是如果想改成判 ...

换完出现错误 undefined method "user" for #<Game_Actor:0xabcb27c>  

想到可能可以用force_action(skill_id, target_index),不出错,但是也不使出技能,不知道什么原因。

点评

user不是方法的参数么,怎么会没有。你把这句话写哪儿了  发表于 2014-7-21 17:47
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
17 小时
注册时间
2011-7-14
帖子
8
5
 楼主| 发表于 2014-7-21 17:52:38 | 只看该作者
xiaolang96163 发表于 2014-7-21 17:43
换完出现错误 undefined method "user" for #  

想到可能可以用force_action(skill_id, target_index), ...

class Game_Battler < Game_BattlerBase
  
  alias make_damage_value2 make_damage_value
  #计算伤害
  def make_damage_value(user, item)
    make_damage_value2(user, item)
    if item.is_a?(RPG::Skill)
      case item.id
        when 900  #设置20号技能
          if self.state?(29) && self.state?(30) && self.state?(31)  #3种状态
            
             self.user.use_item($data_skills[752])   # "秒杀" 1号为 "战斗不能"
            
            elsif self.state?(29) && self.state?(30)  #2种状态
              
              self.add_state(31)   # 目标附加"3"状态 ID为13
            
            elsif self.state?(29)  #1种状态
              
              self.add_state(30)   # 目标附加"2"状态   ID为12
            
            else  #没有状态
              
              self.add_state(29)    # 目标附加"1"状态   ID为11
          end
        end
      end            
    end
end
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-25 17:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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