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

Project1

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

[已经过期] 关于武器的问题

[复制链接]

Lv2.观梦者

梦石
0
星屑
374
在线时间
55 小时
注册时间
2013-12-6
帖子
30
跳转到指定楼层
1
发表于 2013-12-14 22:54:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 柳妹妹 于 2013-12-15 13:35 编辑

请问一个武器如何有两个攻击动画和对象方动画,就比如说,当被主角一装备时,攻击动画和对象方动画为一
当长剑被主角二装备时,攻击动画和对象方动画为二。

Lv1.梦旅人

梦石
0
星屑
100
在线时间
211 小时
注册时间
2011-8-16
帖子
300
2
发表于 2013-12-15 00:26:56 | 只看该作者
  1.   #--------------------------------------------------------------------------
  2.   # ● 普通攻击 获取攻击方动画 ID
  3.   #--------------------------------------------------------------------------
  4.   def animation1_id
  5.     weapon = $data_weapons[@weapon_id]
  6.     # 如果角色ID=2 and 武器ID=1 时,攻击动画为3
  7.     return 3 if @id==2 and @weapon_id == 1
  8.     return weapon != nil ? weapon.animation1_id : 0
  9.   end
  10.   #--------------------------------------------------------------------------
  11.   # ● 普通攻击 获取对像方动画 ID
  12.   #--------------------------------------------------------------------------
  13.   def animation2_id
  14.     weapon = $data_weapons[@weapon_id]
  15.     return weapon != nil ? weapon.animation2_id : 0
  16.   end
复制代码
我也就能想到这么办了,下面的被击动画原理相同,不过麻烦。

点评

谢谢!大好人啊!  发表于 2013-12-15 00:34

评分

参与人数 1星屑 +90 收起 理由
myownroc + 90 塞糖

查看全部评分

RPGMaker 脚本/学习交流群:143356012
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
374
在线时间
55 小时
注册时间
2013-12-6
帖子
30
3
 楼主| 发表于 2013-12-15 13:28:07 | 只看该作者
774741359 发表于 2013-12-15 00:26
我也就能想到这么办了,下面的被击动画原理相同,不过麻烦。

貌似不行诶?是不是还要改哪里?这是我Sprite_Battler的脚本,看下是否还要改哪里?
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Sprite_Battler
  3. #------------------------------------------------------------------------------
  4. #  战斗显示用活动块。Game_Battler 类的实例监视、
  5. # 活动块的状态的监视。
  6. #==============================================================================
  7.  
  8. class Sprite_Battler < RPG::Sprite
  9.   #--------------------------------------------------------------------------
  10.   # ● 定义实例变量
  11.   #--------------------------------------------------------------------------
  12.   attr_accessor :battler                  # 战斗者
  13.   #--------------------------------------------------------------------------
  14.   # ● 初始化对像
  15.   #     viewport : 显示端口
  16.   #     battler  : 战斗者 (Game_Battler)
  17.   #--------------------------------------------------------------------------
  18.   def initialize(viewport, battler = nil)
  19.     super(viewport)
  20.     [url=home.php?mod=space&uid=133701]@battler[/url] = battler
  21.     @battler_visible = false
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 释放
  25.   #--------------------------------------------------------------------------
  26.   def dispose
  27.     if self.bitmap != nil
  28.       self.bitmap.dispose
  29.     end
  30.     super
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 刷新画面
  34.   #--------------------------------------------------------------------------
  35.   def update
  36.     super
  37.     # 战斗者为 nil 的情况下
  38.     if @battler == nil
  39.       self.bitmap = nil
  40.       loop_animation(nil)
  41.       return
  42.     end
  43.     # 文件名和色相与当前情况有差异的情况下
  44.     if @battler.battler_name != @battler_name or
  45.        @battler.battler_hue != @battler_hue
  46.       # 获取、设置位图
  47.       @battler_name = @battler.battler_name
  48.       @battler_hue = @battler.battler_hue
  49.       self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  50.       @width = bitmap.width
  51.       [url=home.php?mod=space&uid=291977]@height[/url] = bitmap.height
  52.       self.ox = @width / 2
  53.       self.oy = @height
  54.       # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
  55.       if @battler.is_a?(Game_Enemy)
  56.        if @battler.dead? or @battler.hidden
  57.          self.opacity = 0
  58.        end
  59.      end
  60.     end
  61.     # 动画 ID 与当前的情况有差异的情况下
  62.     if @battler.damage == nil and
  63.        @battler.state_animation_id != @state_animation_id
  64.       @state_animation_id = @battler.state_animation_id
  65.       loop_animation($data_animations[@state_animation_id])
  66.     end
  67.     # 应该被显示的角色的情况下
  68.     if @battler.is_a?(Game_Actor) and @battler_visible
  69.       # 不是主状态的时候稍稍降低点透明度
  70.       if $game_temp.battle_main_phase
  71.         self.opacity += 3 if self.opacity < 255
  72.       else
  73.         self.opacity -= 3 if self.opacity > 207
  74.       end
  75.     end
  76.     # 明灭
  77.     if @battler.blink
  78.       blink_on
  79.     else
  80.       blink_off
  81.     end
  82.     # 不可见的情况下
  83.     unless @battler_visible
  84.      # 出现
  85.      if not @battler.hidden and not @battler.dead? and
  86.         (@battler.damage == nil or @battler.damage_pop)
  87.        if @battler.is_a?(Game_Enemy)
  88.          appear
  89.        else
  90.          @battler.battler_name = @battler.battler_name.split(/★/)[0]
  91.        end
  92.        @battler_visible = true
  93.      end
  94.    end
  95.     # 可见的情况下
  96.     if @battler_visible
  97.       # 逃跑
  98.       if @battler.hidden
  99.         $game_system.se_play($data_system.escape_se)
  100.         escape
  101.         @battler_visible = false
  102.       end
  103.       # 白色闪烁
  104.       if @battler.white_flash
  105.         whiten
  106.         @battler.white_flash = false
  107.       end
  108.       # 动画
  109.       if @battler.animation_id != 0
  110.         animation = $data_animations[@battler.animation_id]
  111.         animation(animation, @battler.animation_hit)
  112.         @battler.animation_id = 0
  113.       end
  114.       # 伤害
  115.       if @battler.damage_pop
  116.         damage(@battler.damage, @battler.critical)
  117.         @battler.damage = nil
  118.         @battler.critical = false
  119.         @battler.damage_pop = false
  120.       end
  121.       # korapusu
  122.       if @battler.damage == nil and @battler.dead?
  123.        if @battler.is_a?(Game_Enemy)
  124.          $game_system.se_play($data_system.enemy_collapse_se)
  125.          collapse
  126.        else
  127.          $game_system.se_play($data_system.actor_collapse_se)
  128.          @battler.battler_name = @battler.battler_name.split(/★/)[0]
  129.          @battler.battler_name = @battler.battler_name + "★2"
  130.        end
  131.        @battler_visible = false
  132.      end
  133.     end
  134.     # 设置活动块的坐标
  135.     self.x = @battler.screen_x
  136.     self.y = @battler.screen_y
  137.     self.z = @battler.screen_z
  138.   end
  139. end
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
100
在线时间
211 小时
注册时间
2011-8-16
帖子
300
4
发表于 2013-12-15 14:22:33 | 只看该作者
理论上不会出错吧
RPGMaker 脚本/学习交流群:143356012
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
374
在线时间
55 小时
注册时间
2013-12-6
帖子
30
5
 楼主| 发表于 2013-12-15 14:43:42 | 只看该作者
774741359 发表于 2013-12-15 14:22
理论上不会出错吧

会不会是这一段?
# 动画
      if @battler.animation_id != 0
        animation = $data_animations[@battler.animation_id]
        animation(animation, @battler.animation_hit)
        @battler.animation_id = 0
      end
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-30 06:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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