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

Project1

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

在战斗时怎么直接显示伤害值?

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-22
帖子
22
跳转到指定楼层
1
发表于 2008-5-25 01:50:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

2
发表于 2008-5-25 01:52:52 | 只看该作者
在人物身上直接显示数值?

MS现在只有在地图上显示数值……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
142
在线时间
264 小时
注册时间
2006-11-22
帖子
1057
3
发表于 2008-5-25 03:06:01 | 只看该作者
  1. #==============================================================================
  2. # <<\/>> Vixotic_Damage_Pop up
  3. #------------------------------------------------------------------------------
  4. # Version 1.1
  5. # by Vixotic [[email protected]]
  6. # Exclusive Script for http://rpgmakervx.net/
  7. #
  8. # Place this script above Main
  9. #==============================================================================  

  10. module VIX
  11.   #--------------------------
  12.   # Damage Text Position
  13.   #------------------------
  14.   Damage_X_Plus = 0
  15.   # Move Damage Position in vertical direction ((-)up <= 0 => down(+))
  16.   
  17.   Damage_Y_Plus = -20
  18.   # Move Damage Position in horizontal direction ((-)left <= 0 => right(+))
  19.   
  20.   #--------------------------
  21.   # Damage Text Font/Size
  22.   #------------------------
  23.   Damage_Text_Font = "Arial Black"
  24.   Damage_Text_Size = 32
  25. end

  26. class Sprite_Base < Sprite
  27.   alias vix_sprbase_ini initialize
  28.   alias vix_sprbase_upd update

  29.   def initialize(viewport = nil)
  30.     vix_sprbase_ini(viewport)
  31.     @_damage_duration = 0
  32.   end
  33.   
  34.   def update
  35.     vix_sprbase_upd
  36.     if @_damage_duration > 0
  37.       @_damage_duration -= 1
  38.       case @_damage_duration
  39.       when 38..39
  40.         @_damage_sprite.y -= 4
  41.       when 36..37
  42.         @_damage_sprite.y -= 2
  43.       when 34..35
  44.         @_damage_sprite.y += 2
  45.       when 28..33
  46.         @_damage_sprite.y += 4
  47.       end
  48.         @_damage_sprite.opacity = 256 - (12 - @_damage_duration) * 32
  49.       if @_damage_duration == 0
  50.         dispose_damage
  51.       end
  52.     end
  53.   end
  54.   
  55.   
  56.   def damage(value)
  57.       dispose_damage
  58.       if value.is_a?(Numeric)
  59.         damage_string = value.abs.to_s
  60.       else
  61.         damage_string = value.to_s
  62.       end
  63.       bitmap = Bitmap.new(160, 48)
  64.       bitmap.font.name = VIX::Damage_Text_Font
  65.       bitmap.font.size = VIX::Damage_Text_Size
  66.       bitmap.font.color.set(0, 0, 0)
  67.       bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
  68.       bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
  69.       bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
  70.       bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
  71.       if value.is_a?(Numeric) and value < 0
  72.         bitmap.font.color.set(176, 255, 144)
  73.       else
  74.         bitmap.font.color.set(255, 255, 255)
  75.       end
  76.       bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
  77.       @_damage_sprite = ::Sprite.new(self.viewport)
  78.       @_damage_sprite.bitmap = bitmap
  79.       @_damage_sprite.ox = 80
  80.       @_damage_sprite.oy = 20
  81.       @_damage_sprite.x = self.x + VIX::Damage_X_Plus
  82.       @_damage_sprite.y = (self.y - self.oy / 2) + VIX::Damage_Y_Plus
  83.       @_damage_sprite.z = 3000
  84.       @_damage_duration = 40
  85.     end
  86.    
  87.     def dispose_damage
  88.       if @_damage_sprite != nil
  89.         @_damage_sprite.bitmap.dispose
  90.         @_damage_sprite.dispose
  91.         @_damage_sprite = nil
  92.         @_damage_duration = 0
  93.       end
  94.     end
  95.    
  96.   end

  97. class Game_Battler
  98.   attr_accessor :damage
  99.   
  100.   alias vix_gamebat_clr clear_sprite_effects
  101.   def clear_sprite_effects
  102.     @damage = 0
  103.     vix_gamebat_clr
  104.   end
  105.   
  106. end

  107. class Sprite_Battler < Sprite_Base
  108.   DAMAGE = 7
  109.   
  110.   alias vix_sprbat_set setup_new_effect
  111.   def setup_new_effect
  112.     vix_sprbat_set
  113.     if @battler.damage != 0
  114.       damage(@battler.damage)
  115.       @effect_type = DAMAGE
  116.       @battler.damage = 0
  117.     end
  118.   end
  119.   
  120. end

  121. class Scene_Battle < Scene_Base

  122.   def display_action_effects(target, obj = nil)
  123.     unless target.skipped
  124.       line_number = @message_window.line_number
  125.       wait(5)
  126.       target.damage = target.hp_damage if target.is_a?(Game_Enemy)
  127.       display_critical(target, obj)
  128.       display_damage(target, obj)
  129.       display_state_changes(target, obj)
  130.       if line_number == @message_window.line_number
  131.         display_failure(target, obj) unless target.states_active?
  132.       end
  133.       if line_number != @message_window.line_number
  134.         wait(30)
  135.       end
  136.       @message_window.back_to(line_number)
  137.     end
  138.   end
  139. end
复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-22
帖子
22
4
 楼主| 发表于 2008-5-25 03:36:16 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-25 09:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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