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

Project1

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

[已经解决] 请问如何制作附加自身状态的武器?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2014-12-28
帖子
7
跳转到指定楼层
1
发表于 2014-12-28 14:17:44 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
比如我编辑了一个狂热状态,增加速度,灵巧,然后在钢枪上状态变化栏中选择,结果这个狂热状态是加到目标上的……我想加到武器携带者身上。
谢谢

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
5
发表于 2014-12-30 12:19:08 | 只看该作者
本帖最后由 幻耶 于 2014-12-30 12:20 编辑

大约在 Game_Actor 的402行添加红色部分,先得为武器勾选一个属性:例如,当武器附带6号属性时,就可以给装备者附加14号状态
  #--------------------------------------------------------------------------
  # ● 变更装备
  #     equip_type : 装备类型
  #     id    : 武器 or 防具 ID  (0 为解除装备)
  #--------------------------------------------------------------------------
  def equip(equip_type, id)
    case equip_type
    when 0  # 武器
      if id == 0 or $game_party.weapon_number(id) > 0
        $game_party.gain_weapon(@weapon_id, 1)
        @weapon_id = id
        $game_party.lose_weapon(id, 1)
        if $game_actors[@actor_id].weapon_id > 0 and $data_weapons[id].element_set.include?(6)
          $game_actors[@actor_id].add_state(14)
        else
          $game_actors[@actor_id].remove_state(14)
        end

      end

点评

可怜的 self 君……  发表于 2014-12-30 17:19
囡囚囨囚囨図囨囧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2014-12-28
帖子
7
4
 楼主| 发表于 2014-12-30 08:48:32 | 只看该作者
RyanBern 发表于 2014-12-28 19:08
武器不同于防具,没有“自动状态”这一说,因此如果要让武器附加自动状态要想别的办法才行。
第一步,让武 ...

谢谢指导,我用了设置公共事件附加状态也可以解决,但是需要触发,测试时不能用。
另外请问,武器状态和防具状态是有没有办法叠加起来?谢谢。

点评

如果用我提供的那个思路,应该可以叠加。  发表于 2014-12-30 12:47
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

3
发表于 2014-12-28 19:08:52 | 只看该作者
武器不同于防具,没有“自动状态”这一说,因此如果要让武器附加自动状态要想别的办法才行。
第一步,让武器也有自动状态这一属性,如果不能理解下面的脚本,最少要记住它的用法。
RUBY 代码复制
  1. module RPG
  2.   class Weapon
  3.     alias rb_description_20141228 description
  4.     def description
  5.       return rb_description_20141228.gsub(/%autostate\[\d+\]/, "")
  6.     end
  7.     def auto_state_id
  8.       /%autostate\[(\d+)\]/ =~ rb_description_20141228
  9.       return $1.nil? ? 0 : $1.to_i
  10.     end
  11.   end
  12. end

这样我们就可以设置武器的自动状态ID了,那么如何设置呢?方法就是在武器的物品说明那一行加入'%autostate[状态ID]'这一行字即可,这里为了和防具统一,一个武器只能有一个自动状态。
第二步,方法接入
现在我们为武器定义了自动状态,但是方法还没有接入到脚本中。更改角色自动状态的脚本在Game_Actor下,因此我们要在这里改改。
在398行,也就是if id == 0 or $game_party.weapon_number(id) > 0这一句的后面,加上:
RUBY 代码复制
  1. update_auto_state($data_weapons[@weapon_id], $data_weapons[id])

然后在第73行,也就是刷新自动状态那里加入:
RUBY 代码复制
  1. update_auto_state(nil, $data_weapons[@weapon_id])

这样方法算是接入了,可以启动游戏看的效果。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2014-12-28
帖子
7
2
 楼主| 发表于 2014-12-28 14:19:08 | 只看该作者
还有请问状态变化中的加减号是什么意思

点评

'+'表示给目标对象附加该状态,附加成功与否还要看对方的状态有效度;'-'表示给目标对象移除该状态,一定会成功。  发表于 2014-12-28 19:10
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-11 08:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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