查看: 2297|回复: 3

[已经解决] 有关于装备替换的事情

[复制链接]
梦石
5
星屑
50
在线时间
103 小时
注册时间
2012-9-9
回帖
13
发表于 2015-9-5 23:57:33 | 显示全部楼层 |阅读模式

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

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

×
在事件中替换装备的话,是必须先持有那件装备才能替换成那件装备
有没有办法在事件中设置替换装备时,不管是否持有,直接变成要替换的装备(希望是从脚本处修改)
如果不能直接变的话...有没有在将装备替换后直接将被替换下的装备销毁的办法(纯事件一个个删也行,就是太蠢了而且数量庞大,所以想要从脚本出更改)
因为本人不会RUBY,求助各位前辈了

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2015-9-6 08:58:14 | 显示全部楼层
找到Interpreter6中的command_319,把它改成下面这样:
[pre lang="Ruby"]  #--------------------------------------------------------------------------
  # ● 变更装备
  #--------------------------------------------------------------------------
  def command_319
    # 获取角色
    actor = $game_actors[@parameters[0]]
    # 变更角色
    if actor != nil
      if @parameters[1] == 0
        n = $game_party.weapon_number(@parameters[2])
        $game_party.gain_weapon(@parameters[2], 1) if n == 0
      else
        n = $game_party.armor_number(@parameters[2])
        $game_party.gain_armor(@parameters[2], 1) if n == 0
      end
      actor.equip(@parameters[1], @parameters[2])
    end
    # 继续
    return true
  end
[/pre]
然后正常使用[变更装备],这样此指令的效果就变成,如果有这个装备则直接装备,没有的话自动获得1件然后再装备。注意,这种方法卸下装备时,装备不会被销毁。
回复

使用道具 举报

梦石
5
星屑
50
在线时间
103 小时
注册时间
2012-9-9
回帖
13
 楼主| 发表于 2015-9-6 12:53:34 | 显示全部楼层
RyanBern 发表于 2015-9-6 08:58
找到Interpreter6中的command_319,把它改成下面这样:
  #--------------------------------------------- ...

非常感谢!
但是使用脚本后发现,是使用【更变装备】后,除了装备上那个装备后,物品栏还会再多出一件相同的装备,能取消掉吗
回复

使用道具 举报

梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2015-9-6 13:41:08 | 显示全部楼层
本帖最后由 RyanBern 于 2015-9-6 13:49 编辑
白兔先生 发表于 2015-9-6 12:53
非常感谢!
但是使用脚本后发现,是使用【更变装备】后,除了装备上那个装备后,物品栏还会再多出一件相 ...


出现这样的问题原因是主角正穿戴的装备和你要变更的装备相同。
请避免这样的操作。如果无法避免,请改成这样(相应部分增加即可):
      if @parameters[1] == 0
        n = $game_party.weapon_number(@parameters[2])
        $game_party.gain_weapon(@parameters[2], 1) if n == 0 && actor.weapon_id != @parameters[2]
      else
        n = $game_party.armor_number(@parameters[2])
        $game_party.gain_armor(@parameters[2], 1) if n == 0 && eval("actor.armor#{@parameters[1]}_id != @parameters[2]")
      end

点评

哦哦原来如此!非常非常感谢!  发表于 2015-9-6 21:57
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部