Project1

标题: 全屏法术重叠问题 [打印本页]

作者: 七仙女    时间: 2008-6-20 02:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: 灯笼菜刀王    时间: 2008-6-20 03:03
默认的话,范围设置是画面的话,就只播放一个。因为你的屏幕只有1个。
作者: 七仙女    时间: 2008-6-20 03:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: 灯笼菜刀王    时间: 2008-6-20 03:38
齐时动画?

那把一个设置为空的就行了嘛
作者: Quarcy    时间: 2008-6-20 05:42
查找Isalia雪的發布腳本
作者: link006007    时间: 2008-6-20 06:38
这是哪个脚本照成的?  默认好像没问题.
作者: link006007    时间: 2008-6-20 07:13
以下引用七仙女于2008-6-19 23:01:00的发言:
可能是这个  

{/gg}  orz, 然道是我...?
现在太晚,明天把它搞定...

作者: 七仙女    时间: 2008-6-20 07:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: cmbljsw    时间: 2008-6-20 08:09
LZ还是别指望了……雪的那个脚本,如果到齐时里运行会有另一个问题……我已经测试过了……

没办法,只能让他重叠了……
作者: zlink    时间: 2008-6-20 16:26
不太像那个def animation_set_sprites 的问题
你看看你的脚本你有没有def animation(animation, hit)

作者: link006007    时间: 2008-6-21 05:47
我是来解决残余问题的...
目前自己确认那个bug应该不是我的错
引用马甲:
以下引用zlink于2008-6-20 8:26:34的发言:

不太像那个def animation_set_sprites 的问题
你看看你的脚本有没有def animation(animation, hit)

animation_set_sprites 只是根据数据库设置精灵大小和输出的rect, 应该不会影响到动画播放数量


作者: dbshy    时间: 2008-6-21 05:50
LZ把工程传上来

作者: lldjjf    时间: 2008-6-21 06:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: link006007    时间: 2008-6-21 06:43
算了  我还是多试几下{/gg}
我已经脑残了

试了  默认脚本 注释掉这样写没问题啊{/gg}
        if position == 3        
          if self.viewport != nil  # 视口存在  居于视口中间
            sprite.x = self.viewport.rect.width / 2
            sprite.y = self.viewport.rect.height - 160  (默认战斗高320)
          else                     # 否则居于屏幕中间
            sprite.x = 320
            sprite.y = 240
          end
        else

和多个动画没什么关系啊
作者: 七仙女    时间: 2008-6-21 17:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: dbshy    时间: 2008-6-21 20:36
刚看了全动画的脚本,MS没问题

我果然是脚本废柴啊啊啊啊啊
作者: link006007    时间: 2008-6-21 22:43
不用看了  这个是脚本默认的bug............
      for target in @target_battlers
        target.animation_id = @animation2_id
        target.animation_hit = (target.damage != "Miss")
      end

  #--------------------------------------------------------------------------
  # ● 刷新画面 (主回合步骤 4 : 对像方动画)
  #--------------------------------------------------------------------------
  def update_phase4_step4
    # 对像方动画
    if 2 == $data_skills[@active_battler.current_action.skill_id].scope
      target = @target_battlers[0]
      target.animation_id = @animation2_id
      target.animation_hit = (target.damage != "Miss")
    else
      for target in @target_battlers
        target.animation_id = @animation2_id
        target.animation_hit = (target.damage != "Miss")
      end
    end   
    # 限制动画长度、最低 8 帧
    @wait_count = 8
    # 移至步骤 5
    @phase4_step = 5
  end

楼主的脚本是在def update_phase4_step3里
当然 这样做的bug就是: @target_battlers[0] 在下一回合因事件退出或战斗不能, 那么就不会显示动画.......
该怎么改看你们自己了RPG::Sprite def animation 或者 Sprite_Battler 的
      # 动画
      if @battler.animation_id != 0
作者: dbshy    时间: 2008-6-22 00:45
以下引用link006007于2008-6-21 14:43:29的发言:

不用看了  这个是脚本默认的bug............
     for target in @target_battlers
       target.animation_id = @animation2_id
       target.animation_hit = (target.damage != "Miss")
     end

#--------------------------------------------------------------------------
# ● 刷新画面 (主回合步骤 4 : 对像方动画)
#--------------------------------------------------------------------------
def update_phase4_step4
   # 对像方动画
   if 2 == $data_skills[@active_battler.current_action.skill_id].scope
     target = @target_battlers[0]
     target.animation_id = @animation2_id
     target.animation_hit = (target.damage != "Miss")
   else
     for target in @target_battlers
       target.animation_id = @animation2_id
       target.animation_hit = (target.damage != "Miss")
     end
   end   
   # 限制动画长度、最低 8 帧
   @wait_count = 8
   # 移至步骤 5
   @phase4_step = 5
end

楼主的脚本是在def update_phase4_step3里
当然 这样做的bug就是: @target_battlers[0] 在下一回合因事件退出或战斗不能, 那么就不会显示动画.......
该怎么改看你们自己了RPG::Sprite def animation 或者 Sprite_Battler 的
     # 动画
     if @battler.animation_id != 0


MS不是这样的,你可以去测试一下

作者: link006007    时间: 2008-6-22 01:05
呵呵 我不知道你是怎么试验的
但是我是这么做的
1 新建默认工程:
2 打开数据库: 队伍-->幽灵*2, 我们把幽灵数添加到最大值 8个
3:数据库    : 动画-->剑技1, 使用画面总括设置, 把不透明度调低, 比如50, 位置改成画面(
                            其实这不是关键)
              这个是十字斩的动画

战斗测试: 阿尔西斯使用十字斩, 你可以看见, 十字斩动画很不明显

然后:
4:数据库    : 特技-->十字斩, 效果范围敌全体

战斗测试: 阿尔西斯使用十字斩, 你可以看见, 十字斩动画很明显,原因: n多动画的重叠

那后加上上面代码: 再测试 恢复正常(显示和1个的一样)
作者: dbshy    时间: 2008-6-22 01:23
你的分析我觉得是对的,我试了下LZ的工程,好象没变化
作者: link006007    时间: 2008-6-22 06:09
以下引用dbshy于2008-6-21 17:23:32的发言:

你的分析我觉得是对的,我试了下LZ的工程,好象没变化

不是把{/gg}  我试过才发帖的   楼主的是update_phase4_step3
并且有两个 for target in @target_battlers
后面那个其实是多余的 操作和前面的一样 需要删掉
作者: lldjjf    时间: 2008-6-22 06:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: link006007    时间: 2008-6-22 06:35
以下引用lldjjf于2008-6-21 22:31:58的发言:

你把动画透明度调低来看就知道了 没有很多动画重叠  透明度低显示是不会明显的

看脚本也看的出
Scene_Battler
      for target in @target_battlers
        target.animation_id = @animation2_id
        target.animation_hit = (target.damage != "Miss")
      end

Sprite_Battler
      if @battler.animation_id != 0
        animation = $data_animations[@battler.animation_id]
        animation(animation, @battler.animation_hit)
        @battler.animation_id = 0
      end

然后我要说, 全体时, 每个target的动画是一样的, 所有动画在一帧里面一起显示



以下引用lldjjf于2008-6-21 22:31:58的发言:
看其def update_phase4_step3里,的确是有两遍对象方动画,不过这是属于重写一类的

我的意思是只要播放一个动画 就不要全部目标都赋值
而后面那个循环是全部目标都赋值... 所以要删掉  而且功能重复了  没必要留住
下面那个是改好的,只对位置为画面, 目标为全体敌方有效
有什么bug未知, 因为那个'全动画战斗'脚本有很多一辈子都不会被执行到的函数被我删掉了{/gg}
http://rpg.blue/upload_program/files/Scripts_94516269.rar
把这个替换掉lz的工程中的自己试试

[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: link006007    时间: 2008-6-22 06:42
orz 连贴....
作者: lldjjf    时间: 2008-6-22 07:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: 七仙女    时间: 2008-6-22 15:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: link006007    时间: 2008-6-22 18:14
orz...  原来那个脚本写错了一个地方,,,  只是对全屏亦然可以用{/gg}
Sprite_Battler.SetTeamAnimation(
      $data_skills[@active_battler.current_action.skill_id].scope && (
      3 == $data_animations[@animation2_id].position)
      )

改成 2 == $data_skills[@active_battler.current_action.skill_id].scope

然后还有一个bug = =...  如果没使用特技  会出现错误 orz 忘记了
作者: 七仙女    时间: 2009-6-12 08:00
提示: 作者被禁止或删除 内容自动屏蔽




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