设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 183477|回复: 588
打印 上一主题 下一主题

[RMVA发布] [RMVA]横版战斗模板v1.7 2012-02-09 修正两处重要BUG

  [复制链接]

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

1
发表于 2011-12-28 15:19:29 | 显示全部楼层
我想应该是用行走图作战斗图,且用时间制的模式更受欢迎,之前我在主站下载的VX游戏大多是这样的(图没有战斗画面情况下),不大可能是是巧合吧。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

2
发表于 2012-9-23 21:51:14 | 显示全部楼层
@后知后觉,在这里提一个问:
在使用自身+敌人的动画进行普通攻击时,如果两人不在一条水平线上显示就会出bug,
但使用真位移
的话貌似只是角色平移过去,在攻击前没有动画(本来打算使真位移和待机、死亡有单独的一套图片),我想应该是在以下地方修改:
  1. #==============================================================================
  2. # ■ Game_Battler
  3. #==============================================================================
  4. class Game_Battler < Game_BattlerBase
  5.   def set_normal_battler_name
  6.     @battler_name = @battler_name.split(/★/)[0]
  7.   end
  8.   def set_beaten_battler_name
  9.     if guard?
  10.       if (UseActorGuardGraphic && actor?) or
  11.          (UseEnemyGuardGraphic && enemy?)
  12.         set_guard_battler_name
  13.         return
  14.       end
  15.     end
  16.     @battler_name = @battler_name.split(/★/)[0] + "★1"
  17.     if UseActorWBSE && actor?
  18.       Audio.se_play("Audio/SE/AWBSE_#{id}", 100, 100)
  19.     elsif UseEnemyWBSE && enemy?
  20.       Audio.se_play("Audio/SE/EWBSE_#{enemy_id}", 100, 100)
  21.     end
  22.   end
  23.   def set_dead_battler_name
  24.     @battler_name = @battler_name.split(/★/)[0] + "★2"
  25.   end
  26.   def set_guard_battler_name
  27.     @battler_name = @battler_name.split(/★/)[0] + "★3"
  28.     if UseActorGDSE && actor?
  29.       Audio.se_play("Audio/SE/AGDSE_#{id}", 100, 100)
  30.     elsif UseEnemyGDSE && enemy?
  31.       Audio.se_play("Audio/SE/EGDSE_#{enemy_id}", 100, 100)
  32.     end
  33.   end
  34. end
  35. #==============================================================================
  36. # ■ Sprite_Battler
  37. #==============================================================================
  38. class Sprite_Battler < Sprite_Base
  39.   #--------------------------------------------------------------------------
  40.   # ● 初始化(追加定义)
  41.   #--------------------------------------------------------------------------
  42.   alias hzhj_old_init_for_dead_spr_battler initialize
  43.   def initialize(viewport, battler = nil)
  44.     hzhj_old_init_for_dead_spr_battler(viewport, battler)
  45.     @dead_graphic_used = false
  46.     if @battler
  47.       @battler.set_normal_battler_name
  48.       if @battler.dead?
  49.         if (UseActorDeadGraphic && @battler.actor?) or
  50.            (UseEnemyDeadGraphic && @battler.enemy?)
  51.           @battler.set_dead_battler_name
  52.           @dead_graphic_used = true
  53.         end
  54.       end
  55.     end
  56.     @beaten_duration = -1
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 设置战斗者(追加定义)
  60.   #--------------------------------------------------------------------------
  61.   alias hzhj_old_set_battler_for_dead_spr_battler battler=
  62.   def battler=(value)
  63.     if @battler != value
  64.       @dead_graphic_used = false
  65.       if value
  66.         value.set_normal_battler_name
  67.         if value.dead?
  68.           if (UseActorDeadGraphic && value.actor?) or
  69.              (UseEnemyDeadGraphic && value.enemy?)
  70.             value.set_dead_battler_name
  71.             @dead_graphic_used = true
  72.           end
  73.         end
  74.       end
  75.       @beaten_duration = -1
  76.     end
  77.     hzhj_old_set_battler_for_dead_spr_battler(value)
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● 源位图(Source Bitmap)的更新(重定义)
  81.   #--------------------------------------------------------------------------
  82.   alias hzhj_old_update_bitmap_for_was_beaten_spr_battler update_bitmap
  83.   def update_bitmap
  84.     if @beaten_duration > 0
  85.       @beaten_duration -= 1
  86.     elsif @beaten_duration == 0
  87.       @beaten_duration = -1
  88.       set_bitmap(:normal)
  89.     end
  90.     hzhj_old_update_bitmap_for_was_beaten_spr_battler
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 初始化可视状态(追加定义)
  94.   #--------------------------------------------------------------------------
  95.   alias hzhj_old_visibility_for_dead_spr_battler init_visibility
  96.   def init_visibility
  97.     hzhj_old_visibility_for_dead_spr_battler
  98.     if @battler.dead?
  99.       if (UseActorDeadGraphic && @battler.actor?) or
  100.          (UseEnemyDeadGraphic && @battler.enemy?)
  101.         self.opacity = 255
  102.       end
  103.     end
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● 效果开始(追加定义)
  107.   #--------------------------------------------------------------------------
  108.   alias hzhj_old_start_effect_for_dead_spr_battler start_effect
  109.   def start_effect(effect_type)
  110.     if effect_type == :appear
  111.       if @dead_graphic_used
  112.         set_bitmap(:normal)
  113.         @effect_type = nil
  114.         @effect_duration = 0
  115.         @dead_graphic_used = false
  116.         @battler_visible = true
  117.         return
  118.       end
  119.     elsif effect_type == :collapse or
  120.           effect_type == :boss_collapse or
  121.           effect_type == :instant_collapse
  122.       if @beaten_duration >= 0
  123.         @beaten_duration = -1
  124.         set_bitmap(:normal)
  125.       end
  126.       if (UseActorDeadGraphic && @battler.actor?) or
  127.          (UseEnemyDeadGraphic && @battler.enemy?)
  128.         set_bitmap(:dead)
  129.         @effect_type = nil
  130.         @effect_duration = 0
  131.         @dead_graphic_used = true
  132.         @battler_visible = false
  133.         return
  134.       end
  135.     end
  136.     hzhj_old_start_effect_for_dead_spr_battler(effect_type)
  137.   end
  138.   #--------------------------------------------------------------------------
  139.   # ● 设置新的位图(新增定义)
  140.   #--------------------------------------------------------------------------
  141.   def set_bitmap(sym)
  142.     case sym
  143.     when :normal
  144.       @battler.set_normal_battler_name
  145.     when :was_beaten
  146.       @battler.set_beaten_battler_name
  147.     when :dead
  148.       @battler.set_dead_battler_name
  149.     else
  150.       return
  151.     end
  152.     new_bitmap = Cache.battler(@battler.battler_name, @battler.battler_hue)
  153.     if bitmap != new_bitmap
  154.       self.bitmap = new_bitmap
  155.       @dynamic_duration = 0
  156.       @sx = 0
  157.       @sw = bitmap.width / DynamicPatternMax
  158.       @sh = bitmap.height
  159.       self.ox = @sw / 2
  160.       self.oy = @sh
  161.       src_rect.set(@sx, 0, @sw, @sh)
  162.     end
  163.     update_origin
  164.     update_position
  165.   end
  166. end
复制代码
本来是想照其他图的相应脚本的格式穿插的,不过好像不行,请问该情况如何解决?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

3
发表于 2012-9-25 07:56:08 | 显示全部楼层
本帖最后由 hcm 于 2012-9-25 08:05 编辑

使用时出现了角色身上爆出的数字和实际伤害明显不符的状况(下图的实际伤害加起来只有2000多,我设定的也是2000,若换成巨浪RMVA的动画显示伤害减半),
是和动画本身有关吗?我只加了战斗脸图和战斗中整队的脚本,该动画使用了两个DamageSection。

无标题.png (289.89 KB, 下载次数: 0)

无标题.png

点评

hcm
哦,这样啊,谢谢。  发表于 2012-9-25 12:38
百分比  发表于 2012-9-25 11:50
红色的数值就是伤害百分百,比如100,显示的就是实际伤害,估计你那里的红色数值是255吧。  发表于 2012-9-25 11:50
回复 支持 反对

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

4
发表于 2012-11-10 11:07:41 | 显示全部楼层
ROM 发表于 2012-11-10 09:37
我想请教一下
有办法弄成普通攻击显示动画是真位移然后不限定装备吗?

原本有限定吗?
想要无装备真位移的话,把默认攻击动画改成真位移的动画就行了。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

5
发表于 2013-3-12 21:18:24 | 显示全部楼层
是否有可以指定一定条件敌人攻击的动画反转?
如果是极不对称的动画技能敌人和主角同时拥有,是不是一定要另外备一份反过来的动画呢?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

6
发表于 2013-3-12 23:21:28 | 显示全部楼层
后知后觉 发表于 2013-3-12 21:34
VA默认有 animation_mirror 的标志
只要在合适的地方判断条件然后 把这个标志弄成 true  就会有左右翻转 ...

这我知道,以前有试过,
但没办法指定到敌人使用的技能。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

7
发表于 2013-5-3 21:05:48 | 显示全部楼层
想问一下关于敌人坐标的问题:
在使用横版脚本前,想改版敌人整体坐标(数据库里的移动范围是五百多乘四百多的,不能满足要求)
只需在以下脚本
  1.   def init_position(battler)
  2.     battler.add_x = 0
  3.     battler.add_y = 0
  4.     self.x = battler.real_screen_x
  5.     self.y = battler.real_screen_y
  6.     self.z = battler.screen_z
  7.   end
复制代码
中,增加或减少x的数值或y的数值即可,
当使用横版脚本后,
我在你的横版脚本中找到以上部分后增加y值大小,
但是这样修改后发现真位移无法正常使用,
当增加battler.add_y的值时,真位移攻击后不能回到原位,
当增加self.y的值时,使用真位移动画游戏会卡死,
请问该如何解决?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

8
发表于 2013-5-3 22:53:34 | 显示全部楼层
后知后觉 发表于 2013-5-3 21:51
对 Game_Enemy 的
def screen_x 和 def screen_y 下手.
要整体偏移的话直接改这2函数 ...
  1.   def screen_x
  2.     return real_screen_x + 50
  3.   end
  4.   def screen_y
  5.     return real_screen_y + 50
  6.   end
复制代码
这样添加发现无法运行,
screen_?和real_screen_?貌似不可以用相同的 。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

9
发表于 2013-5-21 16:07:17 | 显示全部楼层
本帖最后由 hcm 于 2013-5-21 21:07 编辑

请问是否可以通过开关或者在数据库-敌人-敌人名称后面加脚本的方式,
使战斗图显示变回只有单帧的(主要是发现有些不打算让它会待机动作的大号战斗图和其他战斗图一样使用一连串图片很烧空间)。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

10
发表于 2014-4-27 13:53:57 | 显示全部楼层
@后知后觉
关于动画 Z 坐标值默认变化量,
在修改小后,连地图上显示的动画的动画Z值也一起被改了,
请问如何令战斗和地图动画不挂钩?

点评

hcm
算了,我自己把需要不同z值的动画拷贝一份行了。  发表于 2014-6-1 10:05
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-27 21:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表