Project1

标题: 关于队友更换职业的问题,了解的请戳进来。 [打印本页]

作者: 绿坝    时间: 2014-4-19 17:21
标题: 关于队友更换职业的问题,了解的请戳进来。
事件-角色中有很多选项比如“经验值”“等级”“状态”等都可以用直接选定角色或变量的方式选定角色进行操作。
但是更换装备,名字,职业等选项里又没有变量选定角色的选项。
我想请教下如何使“更换职业”可以用变量来选择角色。
最后的3V奉上。
谢谢。

作者: taroxd    时间: 2014-4-19 17:21
本帖最后由 taroxd 于 2014-4-19 20:23 编辑

这样设置


公共事件可以做事情,也可以什么都不做,但是请设一个技能的用处,否则满血时会无法使用

复制用: b.change_class(职业ID); 0

图挂的话按照下面的设置:
  技能公式:b.change_class(职业ID); 0
  技能效果:执行任意一个公共事件
  技能对象:单个队友

本地测试没有发生问题。如果有问题的话上工程吧
作者: 345912390    时间: 2014-4-19 18:45
本帖最后由 345912390 于 2014-4-19 18:47 编辑

  1. class Game_Interpreter
  2.   Actor_Variables=1    #角色变量
  3.   Actor_Switches_Flag=1#标记开关
  4.   #--------------------------------------------------------------------------
  5.   # ● 更换装备
  6.   #--------------------------------------------------------------------------
  7.   alias actor_command_319 command_319
  8.   def command_319
  9.     if $game_switches[Actor_Switches_Flag]
  10.       actor = $game_actors[$game_variables[Actor_Variables]]
  11.       actor.change_equip_by_id(@params[1], @params[2]) if actor
  12.       $game_switches[Actor_Switches_Flag]=false
  13.     else
  14.       actor_command_319
  15.     end
  16.   end
  17.   
  18.   #--------------------------------------------------------------------------
  19.   # ● 更改职业
  20.   #--------------------------------------------------------------------------
  21.   alias actor_command_321 command_321
  22.   def command_321
  23.     if $game_switches[Actor_Switches_Flag]
  24.       actor = $game_actors[$game_variables[Actor_Variables]]
  25.       actor.change_class(@params[1]) if actor && $data_classes[@params[1]]
  26.       $game_switches[Actor_Switches_Flag]=false
  27.     else
  28.       actor_command_321
  29.     end
  30.   end
  31. end
复制代码

作者: 最后制帽匠    时间: 2014-4-19 19:40
你在需要的地方加这段脚本就行了,那2个数字自己改,第一个数字是储存要改变的角色ID的变量的代号,第二个数字是储存要改变的职业ID的代号
这段脚本就是让7号变量指定的角色转变为8号变量指定的职业

QQ图片20140419193746.jpg (14.91 KB, 下载次数: 37)

QQ图片20140419193746.jpg

作者: 绿坝    时间: 2014-4-19 19:48
最后制帽匠 发表于 2014-4-19 19:40
你在需要的地方加这段脚本就行了,那2个数字自己改,第一个数字是储存要改变的角色ID的变量的代号,第二个 ...

不行啊。1411错误
作者: 最后制帽匠    时间: 2014-4-19 19:50
绿坝 发表于 2014-4-19 19:48
不行啊。1411错误

$game_actors[ $game_variables[7]
].change_class($game_variables[8], true)

你把这个复制去试试,我开始被那个逗号给坑过
作者: taroxd    时间: 2014-4-19 19:54
本帖最后由 taroxd 于 2014-4-19 20:02 编辑

脚本编辑器插这段代码
RUBY 代码复制
  1. class Game_Interpreter
  2.   def 更换职业(var_id, class_id, keep_exp = false)
  3.     actor = $game_actors[$game_variables[var_id]]
  4.     actor.change_class(class_id, keep_exp) if actor
  5.   end
  6. end


然后事件编辑器(#号的行不需要输入):


作者: 最后制帽匠    时间: 2014-4-19 20:14
我测试都没问题呀,那2个变量你初始化了么

Project3.rar

1.42 MB, 下载次数: 82


作者: 绿坝    时间: 2014-4-19 21:09
{:2_268:}谢谢三位,方法都很有用,可惜答案只能选一个人的,很难取舍,选了天使的,因为比较简单。
谢谢。




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