Project1

标题: 怎样在换职业时 设置初期装备? [打印本页]

作者: 乐之魂    时间: 2016-4-16 05:37
标题: 怎样在换职业时 设置初期装备?
你好,我的问题是
     主角的初期装备是跟着数据库主角所选的职业的,我用了公共事件更改主角职业,更改主角图片。
但是发现主角的职业的初期装备是空白,
如果要想要的装备,必须不换职业就放在主角的原职业里,但是这不是想要的效果。
我想要换职业,连装备和特技全部换成另一个人。
     这样,该如何设置初期装备呢,换完职业,初期装备是空白的。求教
作者: 夜狠简单    时间: 2016-4-16 10:48
本帖最后由 夜狠简单 于 2016-4-16 10:52 编辑
效果图


事件指令脚本内容-获取所有武器防具

事件指令脚本内容-变更装备

作者: 乐之魂    时间: 2016-4-17 12:15
夜狠简单 发表于 2016-4-16 10:48
[fold=事件指令脚本内容-获取所有武器防具]

for i in 1...$data_armors.size

谢谢你的脚本啊,效果出来了,但是换职业后为何拥有了两种职业就是转换职业前的特技都保留下来了……
而且还拥有了原先职业和现在职业的所有打勾装备。
我是希望在事件编辑里直接给初期装备,不要到游戏里让我再选择装备默认装备不喜欢我想直接配上喜欢的,

勾的装备是这个职业的所有装备啊,全部初期都给了都不用奋斗了这样不合理。
我只希望再编辑里设置装备就行
作者: 夜狠简单    时间: 2016-4-17 18:02
@RyanBern 老大帮他看看
作者: RyanBern    时间: 2016-4-22 12:42
本帖最后由 RyanBern 于 2016-4-22 14:38 编辑

楼主这个问题如果光借助RMXP数据库编辑器是无法达成的,不知道我的理解是否正确,你的问题应该是这样:
给定一个人物A,现在他的职业是C1,中途需要将他的职业改成C2,然后希望变更职业后有C2职业所对应的初始装备。但是问题是,在RMXP中,变更装备指令可用的装备是以数据库为准的,它不会考虑使用事件改变人物职业的情况,因此,当试着使用【装备变更】来更改角色A的装备时,它只会显示职业C1能够穿上的装备,而不会显示职业C2能穿上的装备。

为此我们需要使用脚本突破这个限制。

首先,熟悉一下这段脚本的用法
RUBY 代码复制
  1. actor = $game_actors[1] # 获取 1 号角色
  2. actor.equip(0, 武器ID) # 变更武器
  3. actor.equip(1, 防具ID) # 变更盾
  4. actor.equip(2, 防具ID) # 变更头部防具
  5. actor.equip(3, 防具ID) # 变更身体防具
  6. actor.equip(4, 防具ID) # 变更装饰品

上面这些语句用于强制更改角色的装备,书写时请务必对照数据库ID,否则会出现把盾穿在头上的情况。如果想要单纯卸下某装备,则对应的ID设置为 0 即可。
RUBY 代码复制
  1. actor.equip(0, 0) # 卸下武器

然后,我们使用事件进行设置。

先使用事件命令变更职业,然后,使用上述脚本进行角色装备的变更。注意:在变更角色装备之前,背包里至少要有该装备,否则这个脚本是没有效果的。例如,新职业的初始武器是“铜斧”,但是背包里没有这个装备,这样的话直接使用脚本是无效的,必须使用事件指令增加一件目标装备,然后再调用脚本即可。

总的说来,事件要写成这样:
变更职业:角色A, 职业C2
增减武器:XXX
增减防具:XXX
增减防具:XXX

脚本:actor = $game_actors[角色ID]
          actor.equip(0, 武器ID)
          actor.equip(1, 防具ID)
          # 其他装备


作者: chd114    时间: 2016-4-22 16:59
RyanBern 发表于 2016-4-22 12:42
楼主这个问题如果光借助RMXP数据库编辑器是无法达成的,不知道我的理解是否正确,你的问题应该是这样:
给 ...

直接用自带的强制修改就好了啊= =|||话说改装备你都用脚本了直接改职业也用脚本吧···
作者: yang1zhi    时间: 2016-4-22 18:51
事件也可以做的。
转换职业事件执行后,再执行个更改装备的事件就好了
作者: nyynnn    时间: 2016-4-28 19:12
换职业不同名字相同的人物,在角色界面设置换的人物初期装备
作者: 傲天哲    时间: 2016-5-1 13:55
用事件一个一个把装备卸了又装上,用事件一个一个把特级遗忘和领悟,再更改一下职业和图像,虽然麻烦,但对新手来说应该算是比较简单粗暴的方法了吧
作者: 乐之魂    时间: 2016-5-5 05:15
RyanBern 发表于 2016-4-22 12:42
楼主这个问题如果光借助RMXP数据库编辑器是无法达成的,不知道我的理解是否正确,你的问题应该是这样:
给 ...

用了你介绍的这个简洁代码有效果了,武器防具初期装备有了,职业也换了,但是一看特技还是原来第一个战士的职业特技,我换了猎人的职业特技,它会保留原来战士的所有特技升级后附加猎人的特技,这样显得有些混乱啊,我只是想要猎人的特技就行,
就是想要完全换成猎人的,特技完全改为猎人,把原来战士的特技清空。
作者: 夜狠简单    时间: 2016-5-5 11:22
乐之魂 发表于 2016-5-5 05:15
用了你介绍的这个简洁代码有效果了,武器防具初期装备有了,职业也换了,但是一看特技还是原来第一个战士 ...

你可以判断新职业中技能是否包含老职业的技能,把不包含的去掉。用脚本指令来弄的话应该方便一些
作者: cinderelmini    时间: 2016-5-5 16:58
本帖最后由 cinderelmini 于 2016-5-6 12:02 编辑
  1. class Game_Actor < Game_Battler
  2.   def set_class_skills(clear = false)
  3.     @skills.clear if clear
  4.     for i in 1..@level
  5.       $data_classes[@class_id].learnings.each{ |j| learn_skill(j.skill_id) if j.level == i }
  6.     end
  7.   end
  8. end
复制代码
这段放在Main前或者放在【Game_Actor】之下,
然后想在换职业之后更换技能列表的话,
在更改职业之后,事件中使用【脚本】,输入:
  1. $game_actors[角色ID].set_class_skills
复制代码
就好,角色ID自己填数字,对应数据库的ID。

如果要清除原职业技能的话就输入:
  1. $game_actors[角色ID].set_class_skills(true)
复制代码





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