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

Project1

 找回密码
 注册会员
搜索
楼主: 苍月的魔王

[已经过期] 新人请教,如何设计一种【反击】类型的技能

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2323
在线时间
274 小时
注册时间
2017-7-25
帖子
163
发表于 2017-9-20 00:58:56 | 显示全部楼层
本帖最后由 骷髅岛遗老 于 2017-9-20 01:05 编辑
  1.        if item.is_a?(RPG::Skill)        #这两句貌似是把数据库的技能ID加入item
  2.         case item.id                    #总之定义技能编号好像一定要这两句
  3.         
  4.           when 80                       #当使用80号技能(可设置为怪物的技能)时
  5.             if self.state?(2)           #如果被攻击者处于2号状态(反击状态)
  6.                user.add_state(2)        #攻击者进入2号状态
  7.             end
  8.          
  9.           when 83,84,85                 #当使用83\84\85号技能时
  10.             if self.state?(2)           #如果被攻击者处于2号状态(反击状态)
  11.                user.add_state(26)       #攻击者进入26号状态
  12.              end                        #
  13.             
  14.           when #技能编号                                                #如果你
  15.             if self.state?(#反击状态的编号)                        #想照样添加别的反击效果
  16.                user.add_state(#反击给攻击者的状态编号)  #复制这4行贴到后面
  17.              end                                                                 #按上面的格式自己填吧

  18.             #添加状态朝这贴

  19.            end  
  20.        end                  #差不多首行每个if对应一个end,case对应一个end……吧?
复制代码


自己重新写一遍,忽然成功了(所以12楼到底是哪里不对啊还是没看出来
可以自由更改添加任意想要的反击效果,仅针对【当敌人使用的技能不同时,反击导致的异常状态不同】的情况
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
343
在线时间
37 小时
注册时间
2017-7-1
帖子
17
 楼主| 发表于 2017-9-21 23:53:09 | 显示全部楼层
骷髅岛遗老 发表于 2017-9-20 00:58
自己重新写一遍,忽然成功了(所以12楼到底是哪里不对啊还是没看出来
可以自由更改添加任意想要的反击效 ...

额……真是非常抱歉,本人目前对脚本是一窍不通,虽然大佬对脚本中有注明,但是有些部分还是没看懂,比如说 【#这两句貌似是把数据库的技能ID加入item】,我都不知道具体要加到哪里……实际操作之后,也是发生脚本错误(说是第17行)……总之还是请大佬能够帮我详细的说明一下这个脚本的正确用法,拜托了

点评

前两行不用管他,14行到17行是给你自己添加别的效果的时候预备的格式,不用的话应该在前面加个#注释掉啊……  发表于 2017-9-22 12:40
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2323
在线时间
274 小时
注册时间
2017-7-25
帖子
163
发表于 2017-9-22 13:03:31 | 显示全部楼层
QQ图片20170922124537.png 实际用起来大概就是这样的了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
486 小时
注册时间
2007-5-27
帖子
807
发表于 2017-9-22 16:03:16 | 显示全部楼层
苍月的魔王 发表于 2017-9-19 02:15
那个……可能是我一开始的意思没有表达明确,我的想法其实是这样:当角色处于设置的状态时,如果对手对其 ...

……
做另外一个状态,添加“物理反击几率100%”的同时也添加“攻击附加状态”这个效果,这样处于“反击”状态时发动的攻击也会附加状态了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
486 小时
注册时间
2007-5-27
帖子
807
发表于 2017-9-22 16:03:45 | 显示全部楼层
骷髅岛遗老 发表于 2017-9-20 00:03
上状态很简单数据库里面设个无属性状态再来个技能加上就行了
不过被攻击时给攻击者附加不同异常状态的效 ...

……活用状态就能解决的……比写脚本简单多了……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2323
在线时间
274 小时
注册时间
2017-7-25
帖子
163
发表于 2017-9-22 18:13:19 | 显示全部楼层
紫苍焰 发表于 2017-9-22 16:03
……
做另外一个状态,添加“物理反击几率100%”的同时也添加“攻击附加状态”这个效果,这样处于“反击 ...

这样是做不出不同技能甚至不同血量使用者打到同一状态目标被进入不同状态的效果的,就算能做到肯定也要弄大量同名技能或者公共事件费时费力。而且你是不是理解错了,系统自带的那个攻击附加状态是只对普通攻击有效,而且是带有状态的人去攻击别人才附加,不是带有状态的人被攻击附加……
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
343
在线时间
37 小时
注册时间
2017-7-1
帖子
17
 楼主| 发表于 2017-9-22 22:14:08 | 显示全部楼层
骷髅岛遗老 发表于 2017-9-22 13:03
实际用起来大概就是这样的了

我已经按照你图上所标识的方法做了……但是,不知道为什么,好像并没有什么效果啊……
C:\Users\Administrator\Desktop

点评

那个,脚本里面变成棕色的数字,都改成你系统里设定的状态编号了吗  发表于 2017-9-22 22:59
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
343
在线时间
37 小时
注册时间
2017-7-1
帖子
17
 楼主| 发表于 2017-9-22 22:16:36 | 显示全部楼层
不会发图,再试一次
file:///C:/Users/Administrator/Desktop/图片/2017_09_22_22_10.41.bmp
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
343
在线时间
37 小时
注册时间
2017-7-1
帖子
17
 楼主| 发表于 2017-9-23 00:05:00 | 显示全部楼层
骷髅岛遗老 发表于 2017-9-22 13:03
实际用起来大概就是这样的了

已经全部改了……但还是没用啊……
def make_damage_value(user, item)
    value = item.damage.eval(user, self, $game_variables)

   
    if item.is_a?(RPG::Skill)        #这两句貌似是把数据库的技能ID加入item
        case item.id                    #总之定义技能编号好像一定要这两句
        
          when 384                       #当使用80号技能(可设置为怪物的技能)时
            if self.state?(133)           #如果被攻击者处于2号状态(反击状态)
               user.add_state(134)        #攻击者进入2号状态
            end
         
          when 384,384,384                #当使用83\84\85号技能时
            if self.state?(133)           #如果被攻击者处于2号状态(反击状态)
               user.add_state(134)       #攻击者进入26号状态
             end                        #
            
#~          when #技能编号                                                #如果你
#~            if self.state?(#反击状态的编号)                        #想照样添加别的反击效果
#~               user.add_state(#反击给攻击者的状态编号)  #复制这4行贴到后面
#~             end                                                                 #按上面的格式自己填吧

            #添加状态朝这贴

           end  
       end                  #差不多首行每个if对应一个end,case对应一个end
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2323
在线时间
274 小时
注册时间
2017-7-25
帖子
163
发表于 2017-9-23 00:37:09 | 显示全部楼层
本帖最后由 骷髅岛遗老 于 2017-9-23 00:48 编辑
苍月的魔王 发表于 2017-9-23 00:05
已经全部改了……但还是没用啊……
def make_damage_value(user, item)
    value = item.damage.eval(u ...


  when 384,384,384                #当使用83\84\85号技能时
            if self.state?(133)           #如果被攻击者处于2号状态(反击状态)
               user.add_state(134)       #攻击者进入26号状态
             end   
这一段全部注释掉,你只要一个技能就应该把多余的都注释掉,重复描述同一个技能程序就懵逼了,我写几段就是考虑你要做一堆技能才预留的
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 21:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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