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

Project1

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

描写伤害数字颜色的脚本在哪里

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
200 小时
注册时间
2008-3-1
帖子
360
跳转到指定楼层
1
发表于 2008-12-23 18:57:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
比如伤害是白色的数字,加血是绿色的数字,这些描写数字颜色的脚本在哪里可以找到?
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

梦石
0
星屑
60
在线时间
9 小时
注册时间
2006-9-7
帖子
303
2
发表于 2008-12-23 19:15:35 | 只看该作者

修改这里.

      if value.is_a?(Numeric) and value < 0
        bitmap.font.color.set(255, 0, 0)   
      else
        bitmap.font.color.set(255, 0, 0)
      end



  1. module RPG
  2.   class Sprite < ::Sprite
  3.     @@_animations = []
  4.     @@_reference_count = {}
  5.     def initialize(viewport = nil)
  6.       super(viewport)
  7.       @_whiten_duration = 0
  8.       @_appear_duration = 0
  9.       @_escape_duration = 0
  10.       @_collapse_duration = 0
  11.       @_damage_duration = 0
  12.       @_animation_duration = 0
  13.       @_blink = false
  14.     end
  15.     def dispose
  16.       dispose_damage
  17.       dispose_animation
  18.       dispose_loop_animation
  19.       super
  20.     end
  21.     def whiten
  22.       self.blend_type = 0
  23.       self.color.set(255, 255, 255, 128)
  24.       self.opacity = 255
  25.       @_whiten_duration = 16
  26.       @_appear_duration = 0
  27.       @_escape_duration = 0
  28.       @_collapse_duration = 0
  29.     end
  30.     def appear
  31.       self.blend_type = 0
  32.       self.color.set(0, 0, 0, 0)
  33.       self.opacity = 0
  34.       @_appear_duration = 16
  35.       @_whiten_duration = 0
  36.       @_escape_duration = 0
  37.       @_collapse_duration = 0
  38.     end
  39.     def escape
  40.       self.blend_type = 0
  41.       self.color.set(0, 0, 0, 0)
  42.       self.opacity = 255
  43.       @_escape_duration = 32
  44.       @_whiten_duration = 0
  45.       @_appear_duration = 0
  46.       @_collapse_duration = 0
  47.     end
  48.     def collapse
  49.       self.blend_type = 1
  50.       self.color.set(255, 64, 64, 255)
  51.       self.opacity = 255
  52.       @_collapse_duration = 48
  53.       @_whiten_duration = 0
  54.       @_appear_duration = 0
  55.       @_escape_duration = 0
  56.     end
  57.     def damage(value, critical)
  58.       dispose_damage
  59.       if value.is_a?(Numeric)
  60.         #----------------------------------------------------------------
  61.           damage_string = (-value).to_s
  62.           damage_string = "+" + damage_string if damage_string.to_i > 0
  63.         #-----------------------------------------------------------------
  64.       else
  65.           damage_string = value.to_s
  66.       end
  67.       bitmap = Bitmap.new(160, 48)
  68.       bitmap.font.name = "宋体"
  69.       bitmap.font.size = 14
  70.       bitmap.font.bold = true

  71.     #  bitmap.font.color.set(0, 0, 0)
  72.     #  bitmap.draw_text(-1, 12-1, 160, 36, "-" + damage_string, 1)
  73.     #  bitmap.draw_text(+1, 12-1, 160, 36, "-" + damage_string, 1)
  74.     #  bitmap.draw_text(-1, 12+1, 160, 36, "-" + damage_string, 1)
  75.     #  bitmap.draw_text(+1, 12+1, 160, 36, "-" + damage_string, 1)
  76.       
  77.       if value.is_a?(Numeric) and value < 0
  78.         bitmap.font.color.set(255, 0, 0)
  79.       else
  80.         bitmap.font.color.set(255, 0, 0)
  81.       end
  82.       
  83.       bitmap.draw_text(0, 0, 160, 36, damage_string, 1)

  84.       if critical
  85.      #   bitmap.font.size = 20
  86.      #   bitmap.font.color.set(0, 0, 0)
  87.      #   bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
  88.      #   bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
  89.      #   bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
  90.      #   bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
  91.      #   bitmap.font.color.set(255, 255, 255)
  92.      #   bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1)
  93.       end

  94.       @_damage_sprite = ::Sprite.new(self.viewport)
  95.       @_damage_sprite.bitmap = bitmap
  96.       @_damage_sprite.ox = 80
  97.       @_damage_sprite.oy = 20
  98.       @_damage_sprite.x = self.x - 550
  99.       @_damage_sprite.y = self.y - self.oy / 2
  100.       @_damage_sprite.z = 3000
  101.       @_damage_duration = 40
  102.     end
  103.     def animation(animation, hit)
  104.       dispose_animation
  105.       @_animation = animation
  106.       return if @_animation == nil
  107.       @_animation_hit = hit
  108.       @_animation_duration = @_animation.frame_max
  109.       animation_name = @_animation.animation_name
  110.       animation_hue = @_animation.animation_hue
  111.       bitmap = RPG::Cache.animation(animation_name, animation_hue)
  112.       if @@_reference_count.include?(bitmap)
  113.         @@_reference_count[bitmap] += 1
  114.       else
  115.         @@_reference_count[bitmap] = 1
  116.       end
  117.       @_animation_sprites = []
  118.       if @_animation.position != 3 or not @@_animations.include?(animation)
  119.         for i in 0..15
  120.           sprite = ::Sprite.new(self.viewport)
  121.           sprite.bitmap = bitmap
  122.           sprite.visible = false
  123.           @_animation_sprites.push(sprite)
  124.         end
  125.         unless @@_animations.include?(animation)
  126.           @@_animations.push(animation)
  127.         end
  128.       end
  129.       update_animation
  130.     end
  131.     def loop_animation(animation)
  132.       return if animation == @_loop_animation
  133.       dispose_loop_animation
  134.       @_loop_animation = animation
  135.       return if @_loop_animation == nil
  136.       @_loop_animation_index = 0
  137.       animation_name = @_loop_animation.animation_name
  138.       animation_hue = @_loop_animation.animation_hue
  139.       bitmap = RPG::Cache.animation(animation_name, animation_hue)
  140.       if @@_reference_count.include?(bitmap)
  141.         @@_reference_count[bitmap] += 1
  142.       else
  143.         @@_reference_count[bitmap] = 1
  144.       end
  145.       @_loop_animation_sprites = []
  146.       for i in 0..15
  147.         sprite = ::Sprite.new(self.viewport)
  148.         sprite.bitmap = bitmap
  149.         sprite.visible = false
  150.         @_loop_animation_sprites.push(sprite)
  151.       end
  152.       update_loop_animation
  153.     end
  154.     def dispose_damage
  155.       if @_damage_sprite != nil
  156.         @_damage_sprite.bitmap.dispose
  157.         @_damage_sprite.dispose
  158.         @_damage_sprite = nil
  159.         @_damage_duration = 0
  160.       end
  161.     end
  162.     def dispose_animation
  163.       if @_animation_sprites != nil
  164.         sprite = @_animation_sprites[0]
  165.         if sprite != nil
  166.           @@_reference_count[sprite.bitmap] -= 1
  167.           if @@_reference_count[sprite.bitmap] == 0
  168.             sprite.bitmap.dispose
  169.           end
  170.         end
  171.         for sprite in @_animation_sprites
  172.           sprite.dispose
  173.         end
  174.         @_animation_sprites = nil
  175.         @_animation = nil
  176.       end
  177.     end
  178.     def dispose_loop_animation
  179.       if @_loop_animation_sprites != nil
  180.         sprite = @_loop_animation_sprites[0]
  181.         if sprite != nil
  182.           @@_reference_count[sprite.bitmap] -= 1
  183.           if @@_reference_count[sprite.bitmap] == 0
  184.             sprite.bitmap.dispose
  185.           end
  186.         end
  187.         for sprite in @_loop_animation_sprites
  188.           sprite.dispose
  189.         end
  190.         @_loop_animation_sprites = nil
  191.         @_loop_animation = nil
  192.       end
  193.     end
  194.     def blink_on
  195.       unless @_blink
  196.         @_blink = true
  197.         @_blink_count = 0
  198.       end
  199.     end
  200.     def blink_off
  201.       if @_blink
  202.         @_blink = false
  203.         self.color.set(0, 0, 0, 0)
  204.       end
  205.     end
  206.     def blink?
  207.       @_blink
  208.     end
  209.     def effect?
  210.       @_whiten_duration > 0 or
  211.       @_appear_duration > 0 or
  212.       @_escape_duration > 0 or
  213.       @_collapse_duration > 0 or
  214.       @_damage_duration > 0 or
  215.       @_animation_duration > 0
  216.     end
  217.     def update
  218.       super
  219.       if @_whiten_duration > 0
  220.         @_whiten_duration -= 1
  221.         self.color.alpha = 128 - (16 - @_whiten_duration) * 10
  222.       end
  223.       if @_appear_duration > 0
  224.         @_appear_duration -= 1
  225.         self.opacity = (16 - @_appear_duration) * 16
  226.       end
  227.       if @_escape_duration > 0
  228.         @_escape_duration -= 1
  229.         self.opacity = 256 - (32 - @_escape_duration) * 10
  230.       end
  231.       if @_collapse_duration > 0
  232.         @_collapse_duration -= 1
  233.         self.opacity = 256 - (48 - @_collapse_duration) * 6
  234.       end
  235.       
  236.       if @_damage_duration > 0
  237.         @_damage_duration -= 1
  238.         case @_damage_duration
  239.         
  240.     #    when 44..45
  241.     #      @_damage_sprite.y -= 2
  242.     #    when 42..43
  243.     #      @_damage_sprite.y -= 2
  244.     #    when 40..41
  245.     #      @_damage_sprite.y -= 2
  246.         when 38..39
  247.           @_damage_sprite.y -= 3
  248.         when 36..37
  249.           @_damage_sprite.y -= 3
  250.         when 34..35
  251.           @_damage_sprite.y -= 3
  252.         when 28..29
  253.           @_damage_sprite.y -= 3
  254.         when 26..27
  255.           @_damage_sprite.y -= 3  
  256.         when 24..25
  257.           @_damage_sprite.y -= 3            
  258.         when 22..23
  259.           @_damage_sprite.y -= 3  
  260.         when 20..21
  261.           @_damage_sprite.y -= 3
  262.         when 18..19
  263.           @_damage_sprite.y -= 3           
  264.         when 16..17
  265.           @_damage_sprite.y -= 3           
  266.         when 14..15
  267.           @_damage_sprite.y -= 3           
  268.         when 12..13
  269.           @_damage_sprite.y# -= 3
  270.         when 10..11
  271.           @_damage_sprite.y# -= 2
  272.         when 8..9
  273.           @_damage_sprite.y# -= 2
  274.         when 6..7
  275.           @_damage_sprite.y# -= 2           
  276.         when 4..5
  277.           @_damage_sprite.y# -= 2         
  278.         when 2..3
  279.           @_damage_sprite.y# -= 2
  280.          
  281.         end
  282.         
  283.      #   @_damage_sprite.opacity =256 - (1 - @_damage_duration) * 64
  284.       
  285.         if @_damage_duration == 0
  286.           dispose_damage
  287.         end
  288.         
  289.       end
  290.       if @_animation != nil and (Graphics.frame_count % 2 == 0)
  291.         @_animation_duration -= 1
  292.         update_animation
  293.       end
  294.       if @_loop_animation != nil and (Graphics.frame_count % 2 == 0)
  295.         update_loop_animation
  296.         @_loop_animation_index += 1
  297.         @_loop_animation_index %= @_loop_animation.frame_max
  298.       end
  299.       if @_blink
  300.         @_blink_count = (@_blink_count + 1) % 32
  301.         if @_blink_count < 16
  302.           alpha = (16 - @_blink_count) * 6
  303.         else
  304.           alpha = (@_blink_count - 16) * 6
  305.         end
  306.         self.color.set(255, 255, 255, alpha)
  307.       end
  308.       @@_animations.clear
  309.     end
  310.     def update_animation
  311.       if @_animation_duration > 0
  312.         frame_index = @_animation.frame_max - @_animation_duration
  313.         cell_data = @_animation.frames[frame_index].cell_data
  314.         position = @_animation.position
  315.         animation_set_sprites(@_animation_sprites, cell_data, position)
  316.         for timing in @_animation.timings
  317.           if timing.frame == frame_index
  318.             animation_process_timing(timing, @_animation_hit)
  319.           end
  320.         end
  321.       else
  322.         dispose_animation
  323.       end
  324.     end
  325.     def update_loop_animation
  326.       frame_index = @_loop_animation_index
  327.       cell_data = @_loop_animation.frames[frame_index].cell_data
  328.       position = @_loop_animation.position
  329.       animation_set_sprites(@_loop_animation_sprites, cell_data, position)
  330.       for timing in @_loop_animation.timings
  331.         if timing.frame == frame_index
  332.           animation_process_timing(timing, true)
  333.         end
  334.       end
  335.     end
  336.     def animation_set_sprites(sprites, cell_data, position)
  337.       for i in 0..15
  338.         sprite = sprites[i]
  339.         pattern = cell_data[i, 0]
  340.         if sprite == nil or pattern == nil or pattern == -1
  341.           sprite.visible = false if sprite != nil
  342.           next
  343.         end
  344.         sprite.visible = true
  345.         sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192)
  346.         if position == 3
  347.           if self.viewport != nil
  348.             sprite.x = self.viewport.rect.width / 2
  349.             sprite.y = self.viewport.rect.height - 160
  350.           else
  351.             sprite.x = 320
  352.             sprite.y = 240
  353.           end
  354.         else
  355.           sprite.x = self.x - self.ox + self.src_rect.width / 2
  356.           sprite.y = self.y - self.oy + self.src_rect.height / 2
  357.           sprite.y -= self.src_rect.height / 4 if position == 0
  358.           sprite.y += self.src_rect.height / 4 if position == 2
  359.         end
  360.         sprite.x += cell_data[i, 1]
  361.         sprite.y += cell_data[i, 2]
  362.         sprite.z = 2000
  363.         sprite.ox = 96
  364.         sprite.oy = 96
  365.         sprite.zoom_x = cell_data[i, 3] / 100.0
  366.         sprite.zoom_y = cell_data[i, 3] / 100.0
  367.         sprite.angle = cell_data[i, 4]
  368.         sprite.mirror = (cell_data[i, 5] == 1)
  369.         sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
  370.         sprite.blend_type = cell_data[i, 7]
  371.       end
  372.     end
  373.     def animation_process_timing(timing, hit)
  374.       if (timing.condition == 0) or
  375.          (timing.condition == 1 and hit == true) or
  376.          (timing.condition == 2 and hit == false)
  377.         if timing.se.name != ""
  378.           se = timing.se
  379.           Audio.se_play("Audio/SE/" + se.name, se.volume, se.pitch)
  380.         end
  381.         case timing.flash_scope
  382.         when 1
  383.           self.flash(timing.flash_color, timing.flash_duration * 2)
  384.         when 2
  385.           if self.viewport != nil
  386.             self.viewport.flash(timing.flash_color, timing.flash_duration * 2)
  387.           end
  388.         when 3
  389.           self.flash(nil, timing.flash_duration * 2)
  390.         end
  391.       end
  392.     end
  393.     def x=(x)
  394.       sx = x - self.x
  395.       if sx != 0
  396.         if @_animation_sprites != nil
  397.           for i in 0..15
  398.             @_animation_sprites[i].x += sx
  399.           end
  400.         end
  401.         if @_loop_animation_sprites != nil
  402.           for i in 0..15
  403.             @_loop_animation_sprites[i].x += sx
  404.           end
  405.         end
  406.       end
  407.       super
  408.     end
  409.     def y=(y)
  410.       sy = y - self.y
  411.       if sy != 0
  412.         if @_animation_sprites != nil
  413.           for i in 0..15
  414.             @_animation_sprites[i].y += sy
  415.           end
  416.         end
  417.         if @_loop_animation_sprites != nil
  418.           for i in 0..15
  419.             @_loop_animation_sprites[i].y += sy
  420.           end
  421.         end
  422.       end
  423.       super
  424.     end
  425.   end
  426. end

复制代码
十年磨一剑,蓦然回首,年华如水,青春如歌。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
200 小时
注册时间
2008-3-1
帖子
360
3
 楼主| 发表于 2008-12-23 19:29:51 | 只看该作者
上面的脚本我搜索不到,是新添加的吗?我是问缺省的脚本里描写伤害数字颜色的部分在哪里
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
9 小时
注册时间
2006-9-7
帖子
303
4
发表于 2008-12-23 19:34:34 | 只看该作者
这个脚本是新添加的,把这个脚本插在main前面,试试就知道了.
十年磨一剑,蓦然回首,年华如水,青春如歌。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
200 小时
注册时间
2008-3-1
帖子
360
5
 楼主| 发表于 2008-12-23 19:37:53 | 只看该作者
我插在了MAIN前面,但是战斗的时候连伤害数字的显示都没有了!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

蚂蚁卡卡

梦石
0
星屑
116
在线时间
66 小时
注册时间
2007-12-16
帖子
3081
6
发表于 2008-12-25 17:00:57 | 只看该作者
F1搜索Sprite < ::Sprite

全拷过来

找到 def damage(value, critical)

bitmap.font.color.set(0, 120, 0)

改成120 就变成绿色的
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
《隋唐乱》完整解密版点击进入
米兰,让我怎么说离开……

曾经我也是一个有志青年,直到我膝盖中了一箭……

《隋唐乱》博客地址
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
200 小时
注册时间
2008-3-1
帖子
360
7
 楼主| 发表于 2008-12-25 17:21:03 | 只看该作者
value < 0就是加血吗? value > 0是损血?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-20 03:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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