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

Project1

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

[已经过期] 请问如何用闪光。判断对象受伤,弹出伤害

[复制链接]

Lv1.梦旅人

梦石
0
星屑
155
在线时间
230 小时
注册时间
2009-7-2
帖子
204
跳转到指定楼层
1
发表于 2010-11-17 19:41:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
请问如何用闪光。判断弹出伤害
就是这样。
不要告诉我横板。我只想要教程。或者范例。。。。
谢谢了

Lv1.梦旅人

梦石
0
星屑
47
在线时间
557 小时
注册时间
2010-8-19
帖子
307
2
发表于 2010-11-17 22:15:16 | 只看该作者
  1. #伤害值美化脚本  Beside--------------------------------------------------------
  2. #66RPG 转载请保留此信息--------------------------------------------------------
  3. class Game_Battler
  4.   attr_accessor   :hp_damage
  5.   attr_accessor   :mp_damage
  6.   attr_accessor   :damage_pop
  7.   attr_accessor   :critical
  8.   alias ini initialize
  9.   def initialize
  10.     ini
  11.     @damage_pop = false
  12.   end
  13. end

  14. class Sprite_Base
  15.   def initialize(viewport = nil)
  16.     super(viewport)
  17.     @use_sprite = true          # 活动块使用的标志
  18.     @animation_duration = 0     # 动画剩余时间
  19.     @_damage_duration = 0
  20.   end
  21.    def update
  22.     super
  23.     if @animation != nil
  24.       @animation_duration -= 1
  25.       if @animation_duration % 4 == 0
  26.         update_animation
  27.       end
  28.     end
  29.     @@animations.clear
  30.      if @_damage_duration > 0
  31.         @_damage_duration -= 1
  32.         case @_damage_duration
  33.         when 38..39
  34.           @_damage_sprite.y -= 4
  35.         when 36..37
  36.           @_damage_sprite.y -= 2
  37.         when 34..35
  38.           @_damage_sprite.y += 2
  39.         when 28..33
  40.           @_damage_sprite.y += 4
  41.         end
  42.         @_damage_sprite.opacity = 256 - (12 - @_damage_duration) * 32
  43.         if @_damage_duration == 0
  44.           dispose_damage
  45.         end
  46.       end
  47.   end
  48.   def damage(value, critical)
  49.       dispose_damage                             # 释放伤害
  50.       if value.is_a?(Numeric)                    # 如果伤害值是数值
  51.         damage_string = value.abs.to_s           # 绝对值转为字符串
  52.       else
  53.         damage_string = value.to_s               # 转为字符串
  54.       end
  55.       bitmap = Bitmap.new(162, 64)               # 初始化位图
  56.       bitmap.font.name = "Arial Black"
  57.       bitmap.font.size = 23
  58.       if value.is_a?(Numeric)
  59.         damage_array = damage_string.scan(/./)   # 分割伤害值字符串
  60.         damage_x = 81 - damage_string.size * 9
  61.         if value < 0                              # 伤害值为负的情况下
  62.           rect_y = 32                            # 调用回复数字表
  63.         else
  64.           rect_y = 0                             # 调用伤害数字表
  65.         end
  66.         for char in damage_array                 # 循环伤害值字符串
  67.           number = char.to_i
  68.           bitmap.blt(damage_x, 32, Cache.picture("Damage1"), Rect.new(number * 18, rect_y, 18, 32))
  69.           damage_x += 18                         # 后移一位
  70.         end
  71.       else
  72.         if value == "Evaded"  
  73.           bitmap.blt(36, 28, Cache.picture("Damage1"), Rect.new(0, 96, 84, 32))
  74.         else
  75.           # 显示未击中图画
  76.           bitmap.blt(36, 28, Cache.picture("Damage1"), Rect.new(90, 64, 90, 32))
  77.         end
  78.       end
  79.       if critical                                # 会心一击标志打开的情况
  80.         # 显示会心一击图画
  81.         bitmap.blt(36, 0, Cache.picture("Damage1"), Rect.new(0, 64, 90, 32))
  82.       end
  83.       # 伤害值定位
  84.       @_damage_sprite = Sprite_Base.new(self.viewport)
  85.       @_damage_sprite.bitmap = bitmap
  86.       @_damage_sprite.ox = 81
  87.       @_damage_sprite.oy = 20
  88.       @_damage_sprite.x = self.x
  89.       @_damage_sprite.y = self.y - self.oy
  90.       @_damage_sprite.z = 3000
  91.       @_damage_duration = 40
  92.     end
  93.   def dispose_damage
  94.     if @_damage_sprite != nil
  95.       @_damage_sprite.bitmap.dispose
  96.       @_damage_sprite.dispose
  97.       @_damage_sprite = nil
  98.       @_damage_duration = 0
  99.     end
  100.   end
  101. end

  102. class Sprite_Battler
  103.   alias setup_new_effect_66RPG setup_new_effect
  104.   def setup_new_effect
  105.     setup_new_effect_66RPG
  106.       if @battler.damage_pop
  107.       if @battler.hp_damage != 0 and  @battler.hp_damage != nil
  108.       damage(@battler.hp_damage, @battler.critical)
  109.       end
  110.       if @battler.mp_damage != 0 and  @battler.mp_damage != nil
  111.       damage(@battler.mp_damage, @battler.critical)
  112.       end
  113.       if @battler.missed
  114.       damage("Miss", @battler.critical)
  115.       end
  116.       if @battler.evaded
  117.       damage("Evaded", @battler.critical)
  118.       end
  119.       @battler.damage_pop = false
  120.       end
  121.   end
  122. end

  123. class Scene_Battle
  124.     def display_action_effects(target, obj = nil)
  125.     unless target.skipped
  126.       line_number = @message_window.line_number
  127.       wait(10)
  128.       target.damage_pop = true if target.is_a?(Game_Enemy)              
  129.       display_critical(target, obj)
  130.       display_damage(target, obj)
  131.       display_state_changes(target, obj)
  132.       @status_window.refresh
  133.       if line_number == @message_window.line_number
  134.         display_failure(target, obj) unless target.states_active?
  135.       end
  136.       if line_number != @message_window.line_number
  137.         wait(30)
  138.       end
  139.       @message_window.back_to(line_number)
  140.     end
  141.   end
  142. end

复制代码
这个貌似可行?

damage1.png (20.75 KB, 下载次数: 31)

damage1.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
155
在线时间
230 小时
注册时间
2009-7-2
帖子
204
3
 楼主| 发表于 2010-11-18 09:06:17 | 只看该作者
这个值是伤害美化啊
比如。角色冲过去打一下对手。对象挨打。身上出现闪光。然后角色返回。出现伤害。
这样很假
我想要的是闪光出现的时候,就出现伤害。不要等角色返回。动画播放结束,敌人才出现伤害。

有个单独的范例就行了。
或者告诉我如何判断闪光的语句和函数
不要告诉我叫我去用横板什么的整合脚本。

谢谢了啊
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1357
在线时间
677 小时
注册时间
2009-11-11
帖子
2790
4
发表于 2010-11-18 11:21:00 | 只看该作者
介个可以搞,最低价格1/2Vip的说

嘿。嘿。嘿
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
155
在线时间
230 小时
注册时间
2009-7-2
帖子
204
5
 楼主| 发表于 2010-11-18 12:06:10 | 只看该作者
本帖最后由 晴. 于 2010-11-18 12:06 编辑

2/1VIp =多少经验啊???
~~~帮帮忙啊大哥。。。。

点评

500把,你给1Vip,也是可以接受的~~~~  发表于 2010-11-18 12:27
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
155
在线时间
230 小时
注册时间
2009-7-2
帖子
204
6
 楼主| 发表于 2010-11-18 12:42:45 | 只看该作者
我给你500经验吧,。我0VIP啊   行吗。你帮我搞下啊。。。。

点评

随便传个网盘,要么本站也可以  发表于 2010-11-18 16:10
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
518 小时
注册时间
2010-6-16
帖子
1073
7
发表于 2010-11-18 12:50:46 | 只看该作者
每个武器(或技能)动画伤害时闪光……(PIA飞)
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
624
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

8
发表于 2010-11-18 15:19:33 | 只看该作者
彩虹神剑。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-13 02:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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