Project1

标题: 【已解决】我想把特定的怪物做成变图的快捷方法。。。 [打印本页]

作者: 未来灬future    时间: 2021-1-16 21:07
标题: 【已解决】我想把特定的怪物做成变图的快捷方法。。。
本帖最后由 未来灬future 于 2021-1-23 00:12 编辑

我想把特定的怪物做成这种变图片的,有没有快捷方法,求大佬告诉下,让我死心,我用这种笨方法每个怪物都得做两个,然后添加变身条件,这样太麻烦了,我要做318个怪物,扣完图就600多张,有点小崩溃

1.png (204.08 KB, 下载次数: 38)

1.png

2.png (44.55 KB, 下载次数: 42)

2.png

作者: alexncf125    时间: 2021-1-16 21:50
本帖最后由 alexncf125 于 2021-1-16 21:53 编辑

没看懂..你这是需要通用的敌群事件么??

YEA - Base Troop Events

作者: 未来灬future    时间: 2021-1-17 08:59
alexncf125 发表于 2021-1-16 21:50
没看懂..你这是需要通用的敌群事件么??

[fold=YEA - Base Troop Events]#=============================== ...

我的想法是把重装机兵的坦克怪物血量打到一定的百分比以下或自动变成破坏形态的那种,就是一张正常的坦克图,然后打掉血后会变成损坏的,冒烟的那种破旧图,类似小h游的爆衣效果,我在论坛里看到一个MV的插件,不适合咱们RMVA用啊
作者: alexncf125    时间: 2021-1-17 11:03
本帖最后由 alexncf125 于 2021-1-17 11:04 编辑

在Sprite_Battler的def update_bitmap里插段脚本就行了吧, 还用得著找插件
第54,55行中间插入这段
  1. if @battler.hp < @battler.mhp / 2
  2.   new_bitmap = Cache.battler(@battler.battler_name + "_destroyed", @battler.battler_hue)
  3. end
复制代码


如果敌人的图像名是Slime, 就在\Graphics\Battlers\放张Slime_destroyed.png
那么打Slime打到一半血下时, Slime的图像就会变了

范例
https://pan.baidu.com/s/1cdk_iXDZfcRAOgKLpGFocg
6sm5
作者: 未来灬future    时间: 2021-1-17 13:01
alexncf125 发表于 2021-1-17 11:03
在Sprite_Battler的def update_bitmap里插段脚本就行了吧, 还用得著找插件
第54,55行中间插入这段
...

哇,大佬,你就是我心目中永远的神!!!!!
作者: 未来灬future    时间: 2021-1-20 20:41
alexncf125 发表于 2021-1-17 11:03
在Sprite_Battler的def update_bitmap里插段脚本就行了吧, 还用得著找插件
第54,55行中间插入这段
...

大佬,我用你给的范例工程把名字和怪物图像更改完成后就好使,怎么放到别的游戏中就不管用了呢?是不是和别的脚本有关系,能帮我看下吗?谢谢

我改的是生物炮那个怪物,在数据库里面 敌人编号004    敌群编号019



测试游戏
https://pan.baidu.com/s/15IMVeB5LkILKWTxsyLFr9A
提取码:pe9m
作者: alexncf125    时间: 2021-1-20 21:07
我说, 就不能把问题工程压缩成10MB以內么
难道你不知道, 就百度那百多kb/s的速度, 下载个三百几MB的文件, 都得花接近一小时了
作者: 未来灬future    时间: 2021-1-20 21:51
alexncf125 发表于 2021-1-20 21:07
我说, 就不能把问题工程压缩成10MB以內么
难道你不知道, 就百度那百多kb/s的速度, 下载个三百几MB ...

我把音乐删除试试,emmmm
作者: alexncf125    时间: 2021-1-20 22:05
本帖最后由 alexncf125 于 2021-1-20 22:25 编辑

横版
第4409-4424行改成这样
  1.   #--------------------------------------------------------------------------
  2.   # ● 传输位图:敌人
  3.   #--------------------------------------------------------------------------
  4.   def update_bitmap_enemy
  5.     if @battler.battler_name != @battler_name or @battler.battler_hue != @battler_hue or @battler.hp != @battler_hp
  6.       @battler_name = @battler.battler_name
  7.       @battler_hue = @battler.battler_hue
  8.       @battler_hp = @battler.hp
  9.       @battler_graphic_file_index = @battler.sv.graphic_file_index
  10.       @graphic_mirror_flag = @battler.sv.graphic_mirror_flag
  11.       self.bitmap = Cache.battler(@battler_name + @battler_graphic_file_index, @battler_hue)
  12.       if @battler.hp < @battler.mhp / 2
  13.         self.bitmap = Cache.battler(@battler_name + @battler_graphic_file_index + "-大破", @battler_hue)
  14.       end
  15.       @battler.sv.setup(self.bitmap.width, self.bitmap.height, @battler_id != @battler.id)
  16.       create_shadow
  17.       init_visibility
  18.       @battler_id = @battler.id
  19.     end
  20.   end
复制代码

第4453-4468行改成这样
  1.   #--------------------------------------------------------------------------
  2.   # ● 更新传输矩形
  3.   #--------------------------------------------------------------------------
  4.   def update_src_rect
  5.     return if @battler.sv.collapse
  6.     if @battler_graphic_file_index != @battler.sv.graphic_file_index or @battler.hp != @battler_hp
  7.       @battler_graphic_file_index = @battler.sv.graphic_file_index
  8.       @battler_hp = @battler.hp
  9.       self.bitmap = Cache.character(@battler_name + @battler_graphic_file_index) if @battler.actor?
  10.       self.bitmap = Cache.battler(@battler_name + @battler_graphic_file_index, @battler_hue) if [email protected]?
  11.       if [email protected]? && @battler.hp < @battler.mhp / 2
  12.         self.bitmap = Cache.battler(@battler_name + @battler_graphic_file_index + "-大破", @battler_hue)
  13.       end
  14.       @battler.sv.set_graphics(self.bitmap.width, self.bitmap.height)
  15.     end
  16.     anime_off if @battler.sv.anime_off
  17.     self.src_rect.set(@battler.sv.sx, @battler.sv.sy, @battler.sv.cw, @battler.sv.ch)
  18.     self.opacity = @battler.sv.opacity if @battler_visible
  19.     set_process_timing(@battler.sv.timing) if @battler && @battler.sv.timing != []
  20.   end
复制代码

应该就可以了
作者: 未来灬future    时间: 2021-1-20 22:18
alexncf125 发表于 2021-1-20 21:07
我说, 就不能把问题工程压缩成10MB以內么
难道你不知道, 就百度那百多kb/s的速度, 下载个三百几MB ...

链接:https://pan.baidu.com/s/1v0DRVErh4SXKNZreJq9q8Q
提取码:orvj

看这个吧大佬   现在的怪物情况是和以前一样的,打剩少血的时候显示叹号,不会变图
作者: alexncf125    时间: 2021-1-20 22:36
本帖最后由 alexncf125 于 2021-1-20 22:37 编辑
我把你那336mb压缩成的9.7mb
你10楼压缩的21.6mb

作者: 未来灬future    时间: 2021-1-20 22:37
本帖最后由 未来灬future 于 2021-1-20 22:42 编辑
alexncf125 发表于 2021-1-20 22:36
[fold ...


emmm   新手小白  不会压缩啊  想改个图碰到脚本就各种头疼不会   要学的东西太多了,本来我是想靠事件那个怪物变身解决,但是图片太多了,300多 如果每种都这么做的话就是600多个怪物
作者: 水一川    时间: 2021-1-22 12:49
朋友,你这个fr版,是哪一版?开源吗?
作者: 未来灬future    时间: 2021-1-22 16:15
水一川 发表于 2021-1-22 12:49
朋友,你这个fr版,是哪一版?开源吗?

FR完整版2,自己更改后续呢
作者: 未来灬future    时间: 2021-1-23 00:15
alexncf125 发表于 2021-1-20 22:05
横版
第4409-4424行改成这样

对于一个不懂脚本的小白来说找到了一个小小的BUG,就是这样改的话普通怪物打掉一半血以后会变成空白的,所以我把以前的所有怪物也复制一个重命名加上后缀名了,还有哈,大佬,我想把游戏里加上你的名字,写上指导,希望你不要介意
作者: alexncf125    时间: 2021-1-23 00:27
本帖最后由 alexncf125 于 2021-1-23 01:26 编辑

那不算BUG, 9L代码的改法本来就没有「指定怪物才变」这一功能

要加也不难, 弄个module/数组, 条件补个include?(@battler.enemy_id)就是了~~

或者来个
@battler.enemy.note =~ /<Destroyed>/i
用敌人的备注来指定该敌人会变~~

又或者来个
File.exist?('Graphics/Battlers/' + @battler.battler_name + @battler_graphic_file_index + '-大破' + '.png')
当大破图片存在时才变
作者: 未来灬future    时间: 2021-1-23 10:48
alexncf125 发表于 2021-1-23 00:27
那不算BUG, 9L代码的改法本来就没有「指定怪物才变」这一功能

要加也不难, 弄个module/数组, 条 ...

呃。。。。有点懵 不知道加到哪 我用笨方法吧还是  就是多了一倍的图片




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