Project1

标题: 请问如何制作一个道具~使用者使用之后可以变换职业 [打印本页]

作者: pajiman1999    时间: 2019-1-10 15:42
标题: 请问如何制作一个道具~使用者使用之后可以变换职业
比如骑士之证  角色1使用 角色1职业变成骑士 角色2使用角色2职业变成骑士 这样
作者: 蹲厕所的女孩    时间: 2019-1-15 22:04
我自己刚写了个吧,也不算插件,就几行代码你自己加到你自己的工程里面去吧,我就不发代码文件了

首先贴上代码图:


代码如果有疑问可以再提出来,测试过应该是没什么问题

再就是使用的方法了,做个道具,名称说明价格什么的就随便你了,物品类型普通物品,是消耗品(或者你有什么特殊设定用了不消耗都行),效果范围单个队友(或者你想整个队伍都转职),使用场合仅菜单中(这个我测试了的,其他的我没试,不知道可不可以,战斗中好像是不行的你可以自己试试)
重点在右边两个框吧,使用效果加上个空的公共事件(如果不加的话人物在满血或者死亡的时候好像是不会使用的,因为当药瓶去处理了,我是这样理解的不知道是不是这个原因),再就是下面的备注一定要加上<TRANSFER XX>其中XX表示你要转职的职业编号,比如我图中测试的是战士转斗士,斗士职业ID是2,所以就是<TRANSFER 2>,一定注意一个字母都不要错,错了就转不了。

图在下面:


职业ID截图:


如果还有什么不清楚的可以再问我,看到了我就回复。
作者: pajiman1999    时间: 2019-1-18 04:07
蹲厕所的女孩 发表于 2019-1-15 22:04
我自己刚写了个吧,也不算插件,就几行代码你自己加到你自己的工程里面去吧,我就不发代码文件了

首先贴上 ...

谢谢大佬 你回复的太用心了~·万分感谢
作者: pajiman1999    时间: 2019-1-18 04:23
pajiman1999 发表于 2019-1-18 04:07
谢谢大佬 你回复的太用心了~·万分感谢

Game_BattlerBase

187行  feature_objects.inject([]) {|r, obj| r + obj.features }

报错
作者: pajiman1999    时间: 2019-1-18 04:33
应该没写错吧.............
class RPG::Item
  def transfer_index
    /<TRANSFFER\s*(\d+)>/ =~ note ? $1.to_i : 0
  end
end

class Scene_ItemBase
  def use_item_to_actors
    item_target_actors.each do |target|
      item.repeats.times {
        target.item_apply(user, item)
        use_transfer_item(user, item.transfer_index) if item.transfer_index
      }
    end
  end

  def use_transfer_item(user, index)
    user.change_class(index, true)
  end
end
作者: RMVXA    时间: 2019-1-18 07:01
公共事件就好了啊… 还可以添加转职文字。
一声不吭地就转职了,有点随便了吧哈哈
作者: 世界第一中二    时间: 2019-1-18 17:34
道具效果里添加公共事件
可以用变量读取角色id进行判断来做成不同角色不同转职
作者: pajiman1999    时间: 2019-1-19 14:31
世界第一中二 发表于 2019-1-18 17:34
道具效果里添加公共事件
可以用变量读取角色id进行判断来做成不同角色不同转职 ...

可否具体一点 我做了几百个人物 会不会很麻烦????
作者: pajiman1999    时间: 2019-1-19 14:33
RMVXA 发表于 2019-1-18 07:01
公共事件就好了啊… 还可以添加转职文字。
一声不吭地就转职了,有点随便了吧哈哈 ...

请问如何实现几百个人物和几十种职业的公共事件转职????
作者: pajiman1999    时间: 2019-1-20 00:52
本帖最后由 pajiman1999 于 2019-1-20 00:55 编辑
pajiman1999 发表于 2019-1-19 14:33
请问如何实现几百个人物和几十种职业的公共事件转职????


-----123------
作者: 蹲厕所的女孩    时间: 2019-1-21 10:31
pajiman1999 发表于 2019-1-18 04:23
Game_BattlerBase

187行  feature_objects.inject([]) {|r, obj| r + obj.features }

不会吧,,为啥Game_BattlerBase会报错,没有改那个类啊
作者: 蹲厕所的女孩    时间: 2019-1-21 13:10
class RPG::Item
  def transfer_index
    /<TRANSFER\s*(\d+)>/ =~ note ? $1.to_i : 0
  end
end


class Scene_ItemBase
  
  #--------------------------------------------------------------------------
  # ● 对角色使用物品
  #--------------------------------------------------------------------------
  def use_item_to_actors
    item_target_actors.each do |target|
      item.repeats.times {
        target.item_apply(user, item)
        use_transfer_item(target, item.transfer_index) if item.transfer_index
      }
    end
  end
  
  def use_transfer_item(user, index)
    user.change_class(index, true)
  end
  
end


我测试的没什么问题,要不你直接复制我的代码看看?
作者: 丰富多彩    时间: 2019-1-24 23:30
pajiman1999 发表于 2019-1-18 04:33
应该没写错吧.............
class RPG::Item
  def transfer_index

use_transfer_item(user, item.transfer_index) if item.transfer_index
改为 use_transfer_item(target, item.transfer_index) if item.transfer_index > 0




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1