Project1

标题: 如何做出个技能事件在战斗中可以换头像,战斗结束后换回 [打印本页]

作者: dragonlibra    时间: 2018-3-11 21:10
标题: 如何做出个技能事件在战斗中可以换头像,战斗结束后换回
如何做出一个技能【变身】事件,可以在战斗中换头像,战斗结束后换回?

方法一:做了一个事件,直接改头像就可以,再做一个技能把事件代进去就行,但是战斗结束后没有变回来。。
方法二:技能页里不能引用图片。。
方法三:做了个变身的状态,再做了一个【变身】条件类事件:变身状态下显示变身后图,否则就变成老图,技能里添加变身状态,然而结果却是没有变化。

作者: MireniamuYuki    时间: 2018-3-11 21:40
原版的战斗不显示脸图的吧……你用了什么其他脚本吗?
作者: dragonlibra    时间: 2018-3-11 21:49
MireniamuYuki 发表于 2018-3-11 21:40
原版的战斗不显示脸图的吧……你用了什么其他脚本吗?

是的,用了战斗显示脸图的脚本,所以只要改掉基本脸图,战斗时的脸图也会改掉。
问题是改过去怎么在战斗结束改回来不知道。。。难道也要用脚本?
作者: dragonlibra    时间: 2018-3-15 18:28
没有事件,脚本有没有?
作者: QQ蚊子湯    时间: 2018-3-16 13:30
你可以用方法一
1在那個變身事件裡面增加一個開關作為變身過的判定
2新增一個以那個開關為條件自動執行的公共事件
3在自動執行的公共事件裡面變為原臉圖,並且自我關閉條件開關(這樣就只會執行一次)
作者: 文雅夕露    时间: 2018-3-16 20:19
本帖最后由 文雅夕露 于 2018-3-16 20:21 编辑

很简单:
Window_Base里的制角色肖像图加入判断即可。如下:
  1. #--------------------------------------------------------------------------
  2.   # ● 绘制角色肖像图
  3.   #--------------------------------------------------------------------------
  4.   def draw_actor_face(actor, x, y, enabled = true)
  5.     if actor.state?(20)20为变身状态序号
  6.     draw_face(actor.face_name, actor.face_index+1, x, y, enabled)
  7.     elsif
  8.     draw_face(actor.face_name, actor.face_index, x, y, enabled)
  9.   end
  10.   end
复制代码

技能设置为附加该状态,战斗结束后解除该状态即可。
作者: dragonlibra    时间: 2018-3-17 10:43
本帖最后由 dragonlibra 于 2018-3-17 10:49 编辑
文雅夕露 发表于 2018-3-16 20:19
很简单:
Window_Base里的制角色肖像图加入判断即可。如下:


技能附加【变身】状态即可?还是要把脚本里的变身状态序号20放在技能哪里?或是加载状态的哪里?
另外,如果有几个角色各有不同的变身,也可以用这个脚本?需不需要修改?
作者: dragonlibra    时间: 2018-3-17 11:00
文雅夕露 发表于 2018-3-16 20:19
很简单:
Window_Base里的制角色肖像图加入判断即可。如下:

但是具体改头像在哪儿设定呢?直接在脚本里填角色名字?
有几个角色的话是不是就要几个脚本填写不同的变身状态编号?
作者: 文雅夕露    时间: 2018-3-17 11:04
本帖最后由 文雅夕露 于 2018-3-17 11:05 编辑

1.draw_face(actor.face_name, actor.face_index+1, x, y, enabled)
里面设置了,actor.face_index为1号头像,actor.face_index+1为2号头像。
2.不需要,直接判断该状态即可,跟多少角色无关。
附上自制的范例工程:
变身技能.zip (1.47 MB, 下载次数: 95)
作者: dragonlibra    时间: 2018-3-17 11:08
文雅夕露 发表于 2018-3-17 11:04
1.draw_face(actor.face_name, actor.face_index+1, x, y, enabled)
里面设置了,actor.face_index为1号头 ...

谢谢大大,我参照一下,不懂再来请教
作者: dragonlibra    时间: 2018-3-17 12:28
文雅夕露 发表于 2018-3-17 11:04
1.draw_face(actor.face_name, actor.face_index+1, x, y, enabled)
里面设置了,actor.face_index为1号头 ...

弄出来了,请问可不可以设置进阶变身,和选择变身。
进阶变身:在变身1状态下才能变身2,是不是在第六行下追加下列第二行就行?
draw_face(actor.face_name, actor.face_index+1, x, y, enabled)
draw_face(actor.face_name+1, actor.face_index+2, x, y, enabled)
选择变身:在获得二个及以上的变身时,使用技能可以选择。
这个假象不出来。。
作者: 文雅夕露    时间: 2018-3-17 12:43
本帖最后由 文雅夕露 于 2018-3-17 13:01 编辑
dragonlibra 发表于 2018-3-17 12:28
弄出来了,请问可不可以设置进阶变身,和选择变身。
进阶变身:在变身1状态下才能变身2,是不是在第六行 ...


可以,不过不是加一句这么简单了。
要再次进行状态的判断才行。
不然显示的头像是不会变的,而且还要获取变身1状态才能使用的技能。
要改动的地方会稍微多一些。
#encoding:utf-8
#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
#  游戏中所有窗口的父类
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # ● 绘制角色肖像图
  #--------------------------------------------------------------------------
  def draw_actor_face(actor, x, y, enabled = true)
    if actor.state?(27)#27为变身状态序号
    draw_face(actor.face_name, actor.face_index+2, x, y, enabled)
    elsif actor.state?(26)#26为变身状态序号
    draw_face(actor.face_name, actor.face_index+1, x, y, enabled)
  else
    draw_face(actor.face_name, actor.face_index, x, y, enabled)
  end
end
end
利用状态法开启下一个变身的技能即可。
作者: dragonlibra    时间: 2018-3-17 13:13
文雅夕露 发表于 2018-3-17 12:43
可以,不过不是加一句这么简单了。
要再次进行状态的判断才行。
不然显示的头像是不会变的,而且还要获取 ...

选择变身是不是不能共用这个脚本了?
感觉上就像电路图,串联和并联的关系。
看大大头像改成元祖洛克人里的萝尔了,应该知道洛克人打掉一个boss会获得一个变身。
而洛克人x指令任务里x和z各有2个变身,axl打掉每个boss后会获得一个变身(虽然是技能),
战斗时可以选择变成哪个人物。
请问这个选择性变身咋弄?可以和上面进阶变身写在一起吗?
作者: 文雅夕露    时间: 2018-3-17 13:20
dragonlibra 发表于 2018-3-17 13:13
选择变身是不是不能共用这个脚本了?
感觉上就像电路图,串联和并联的关系。
看大大头像改成元祖洛克人里 ...

可以公用的,关键是思路。
选择变身的事件要做到哪里呢?
战斗事件吗?还是?
多做几个状态和多几行脚本罢了。
没什么难度。
作者: dragonlibra    时间: 2018-3-17 13:29
文雅夕露 发表于 2018-3-17 13:20
可以公用的,关键是思路。
选择变身的事件要做到哪里呢?
战斗事件吗?还是?

是战斗事件,战斗结束后变回。
战斗以外的时候可以用事件做掉,唯独战斗转一般的时候事件里基本没有,唯一有的也是战斗处理,必须要遇到一次战斗处理的怪才能执行。不变回来的话,直接在技能里放事件就可以了,因此战斗结束后也是新样子。
作者: 文雅夕露    时间: 2018-3-17 13:31
dragonlibra 发表于 2018-3-17 13:29
是战斗事件,战斗结束后变回。
战斗以外的时候可以用事件做掉,唯独战斗转一般的时候事件里基本没有,唯 ...

显示选择项
变身1
附加变身1状态
变身2
附加变身2状态
变身3
附加变身3状态
...
...
end
各种变身状态状态设置为战斗结束后解除。
作者: dragonlibra    时间: 2018-3-17 13:47
文雅夕露 发表于 2018-3-17 13:31
显示选择项
变身1
附加变身1状态

就是做个分支条件状态(变身)项选择的事件,然后在技能的使用效果里引用这个事件?
作者: 文雅夕露    时间: 2018-3-17 14:00
本帖最后由 文雅夕露 于 2018-3-17 14:23 编辑
dragonlibra 发表于 2018-3-17 13:47
就是做个分支条件状态(变身)项选择的事件,然后在技能的使用效果里引用这个事件? ...


战斗事件或者技能呼叫公共事件即可。



作者: dragonlibra    时间: 2018-3-17 14:33
@文雅夕露 请问大大另外一个问题,我弄了个战斗时换人的脚本,单单安装这个脚本的时候可以换人,但是只能换掉战斗中前2人,换来备用的人物,但是选择备用人物时,也只显示前2个人物,之后的人物显示不出来。后来和其他脚本放在一起使用后,就换不出来了,能麻烦看看是不是哪里冲突了?

ps:附件是尝试工程,文件名是人物仓库,这个脚本可以正常使用,问题是换人脚本,可以的话麻烦修改一下。

人物仓库.zip

1.48 MB, 下载次数: 49


作者: dragonlibra    时间: 2018-3-17 14:40
文雅夕露 发表于 2018-3-17 14:00
战斗事件或者技能呼叫公共事件即可。

明白了,我去重开一贴
作者: dragonlibra    时间: 2018-3-17 21:28
文雅夕露 发表于 2018-3-17 14:00
战斗事件或者技能呼叫公共事件即可。

如果要第三个变身是不是如下列脚本?
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Window_Base
  4. #------------------------------------------------------------------------------
  5. #  游戏中所有窗口的父类
  6. #==============================================================================

  7. class Window_Base < Window
  8.   #--------------------------------------------------------------------------
  9.   # ● 绘制角色肖像图
  10.   #--------------------------------------------------------------------------
  11.   def draw_actor_face(actor, x, y, enabled = true)
  12.     if actor.state?(27)#27为变身状态序号
  13.     draw_face(actor.face_name, actor.face_index+2, x, y, enabled)
  14.     elsif actor.state?(26)#26为变身状态序号
  15.     draw_face(actor.face_name, actor.face_index+1, x, y, enabled)
  16.     elsif actor.state?(28)#28为变身状态序号
  17.     draw_face(actor.face_name, actor.face_index+3, x, y, enabled)
  18.   else
  19.     draw_face(actor.face_name, actor.face_index, x, y, enabled)
  20.   end
  21. end
  22. end
复制代码





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