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

Project1

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

[已经过期] 怎样做到在原有战斗基础上在怪物头顶显示伤害数值

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
85
在线时间
83 小时
注册时间
2010-10-16
帖子
140
跳转到指定楼层
1
发表于 2011-8-13 19:46:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 忧雪の伤 于 2011-8-13 20:08 编辑

就是说,进入战斗(默认的,不是横板)对着怪使用各神马,命中且造成伤害时
能打出一大堆数字?没命中显示MISS???

评分

参与人数 1星屑 -10 收起 理由
忧雪の伤 -10 不要使用【严重问题】这种无关字眼。.

查看全部评分

[img]http://rpg.blue/static/image/smiley/default/victory.
回归中........

Lv1.梦旅人

梦石
0
星屑
48
在线时间
678 小时
注册时间
2010-8-11
帖子
1533
2
发表于 2011-8-13 20:21:49 | 只看该作者
又见lz……第一次见这么nb伸手党……
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ スリップダメージ拡張 - KGC_SlipDamageExtension ◆ VX ◆
  3. #_/    ◇ Last update : 2009/09/13 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  スリップダメージの設定を詳細化します。
  6. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  7. #==============================================================================
  8. # ★ カスタマイズ項目 - Customize ★
  9. #==============================================================================

  10. module KGC
  11. module SlipDamageExtension
  12.   # ◆ 歩行ダメージ時のフラッシュ色
  13.   DAMAGE_FLASH_COLOR    = Color.new(255, 0, 0, 64)
  14.   # ◆ 歩行ダメージ時のフラッシュ時間 (フレーム)
  15.   DAMAGE_FLASH_DURATION = 4
  16.   # ◆ 歩行ダメージで戦闘不能にする
  17.   #  true  : HP 0 になる。
  18.   #  false : HP 1 で止まる。
  19.   DIE_MAP_DAMAGE = false
  20. end
  21. end

  22. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  23. $imported = {} if $imported == nil
  24. $imported["SlipDamageExtension"] = true

  25. module KGC::SlipDamageExtension
  26.   # 正規表現
  27.   module Regexp
  28.     # ステート
  29.     module State
  30.       # スリップダメージ
  31.       SLIP_DAMAGE = /<(?:SLIP|スリップ)\s*([HM]P)?\s*([\-\+]?\d+)([%%])?
  32.         (?:\s*,\s*([\-\+]?\d+))?\s*>/ix
  33.     end
  34.   end
  35. end

  36. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  37. #==============================================================================
  38. # ■ RPG::State
  39. #==============================================================================

  40. class RPG::State
  41.   #--------------------------------------------------------------------------
  42.   # ○ 「スリップダメージ拡張」のキャッシュ生成
  43.   #--------------------------------------------------------------------------
  44.   def create_slip_damage_extension_cache
  45.     @__slip_damage = false
  46.     @__slip_damage_hp_rate  = 0
  47.     @__slip_damage_hp_value = 0
  48.     @__slip_damage_hp_map   = 0
  49.     @__slip_damage_mp_rate  = 0
  50.     @__slip_damage_mp_value = 0
  51.     @__slip_damage_mp_map   = 0

  52.     self.note.each_line { |line|
  53.       case line
  54.       when KGC::SlipDamageExtension::Regexp::State::SLIP_DAMAGE
  55.         # スリップダメージ
  56.         @__slip_damage = true
  57.         analyse_slip_damage($~)
  58.       end
  59.     }

  60.     # デフォルトのスリップダメージ量を設定
  61.     unless @__slip_damage
  62.       @__slip_damage_hp_rate = 10
  63.       @__slip_damage_hp_map = 1
  64.     end
  65.   end
  66.   #--------------------------------------------------------------------------
  67.   # ○ スリップダメージの解析
  68.   #--------------------------------------------------------------------------
  69.   def analyse_slip_damage(match)
  70.     # タイプ判定
  71.     if match[1] == nil
  72.       type = :hp
  73.     else
  74.       if match[1] =~ /MP/i
  75.         type = :mp
  76.       else
  77.         type = :hp
  78.       end
  79.     end
  80.     # ダメージ量取得
  81.     n = match[2].to_i
  82.     # 即値 or 割合判定
  83.     is_rate = (match[3] != nil)
  84.     # マップダメージ取得
  85.     map_n = (match[4] != nil ? match[4].to_i : 0)

  86.     # スリップダメージ値加算
  87.     case type
  88.     when :hp
  89.       if is_rate
  90.         @__slip_damage_hp_rate -= n
  91.       else
  92.         @__slip_damage_hp_value -= n
  93.       end
  94.       @__slip_damage_hp_map -= map_n
  95.     when :mp
  96.       if is_rate
  97.         @__slip_damage_mp_rate -= n
  98.       else
  99.         @__slip_damage_mp_value -= n
  100.       end
  101.       @__slip_damage_mp_map -= map_n
  102.     end
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● スリップダメージ
  106.   #--------------------------------------------------------------------------
  107.   unless method_defined?(:slip_damage_KGC_SlipDamageExtension)
  108.     alias slip_damage_KGC_SlipDamageExtension slip_damage
  109.   end
  110.   def slip_damage
  111.     create_slip_damage_extension_cache if @__slip_damage == nil
  112.     return (@__slip_damage || slip_damage_KGC_SlipDamageExtension)
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ○ HP スリップダメージ (割合)
  116.   #--------------------------------------------------------------------------
  117.   def slip_damage_hp_rate
  118.     create_slip_damage_extension_cache if @__slip_damage_hp_rate == nil
  119.     return @__slip_damage_hp_rate
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ○ HP スリップダメージ (即値)
  123.   #--------------------------------------------------------------------------
  124.   def slip_damage_hp_value
  125.     create_slip_damage_extension_cache if @__slip_damage_hp_value == nil
  126.     return @__slip_damage_hp_value
  127.   end
  128.   #--------------------------------------------------------------------------
  129.   # ○ HP スリップダメージ (マップ)
  130.   #--------------------------------------------------------------------------
  131.   def slip_damage_hp_map
  132.     create_slip_damage_extension_cache if @__slip_damage_hp_map == nil
  133.     return @__slip_damage_hp_map
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ○ MP スリップダメージ (割合)
  137.   #--------------------------------------------------------------------------
  138.   def slip_damage_mp_rate
  139.     create_slip_damage_extension_cache if @__slip_damage_mp_rate == nil
  140.     return @__slip_damage_mp_rate
  141.   end
  142.   #--------------------------------------------------------------------------
  143.   # ○ MP スリップダメージ (即値)
  144.   #--------------------------------------------------------------------------
  145.   def slip_damage_mp_value
  146.     create_slip_damage_extension_cache if @__slip_damage_mp_value == nil
  147.     return @__slip_damage_mp_value
  148.   end
  149.   #--------------------------------------------------------------------------
  150.   # ○ MP スリップダメージ (マップ)
  151.   #--------------------------------------------------------------------------
  152.   def slip_damage_mp_map
  153.     create_slip_damage_extension_cache if @__slip_damage_mp_map == nil
  154.     return @__slip_damage_mp_map
  155.   end
  156. end

  157. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  158. #==============================================================================
  159. # ■ Game_Battler
  160. #==============================================================================

  161. class Game_Battler
  162.   #--------------------------------------------------------------------------
  163.   # ● スリップダメージの効果適用
  164.   #--------------------------------------------------------------------------
  165.   def slip_damage_effect
  166.     return unless slip_damage?

  167.     slip_damage_effect_hp
  168.     slip_damage_effect_mp
  169.   end
  170.   #--------------------------------------------------------------------------
  171.   # ○ HP スリップダメージの効果適用
  172.   #--------------------------------------------------------------------------
  173.   def slip_damage_effect_hp
  174.     return if dead?

  175.     n = 0
  176.     self.states.each { |state|
  177.       next unless state.slip_damage
  178.       n += self.maxhp * state.slip_damage_hp_rate / 100
  179.       n += state.slip_damage_hp_value
  180.     }
  181.     return if n == 0

  182.     @hp_damage = [n, self.hp - 1].min
  183.     self.hp -= @hp_damage
  184.   end
  185.   #--------------------------------------------------------------------------
  186.   # ○ MP スリップダメージの効果適用
  187.   #--------------------------------------------------------------------------
  188.   def slip_damage_effect_mp
  189.     return if dead?

  190.     n = 0
  191.     self.states.each { |state|
  192.       next unless state.slip_damage
  193.       n += self.maxmp * state.slip_damage_mp_rate / 100
  194.       n += state.slip_damage_mp_value
  195.     }
  196.     return if n == 0

  197.     @mp_damage = [n, self.mp].min
  198.     self.mp -= @mp_damage
  199.   end
  200.   #--------------------------------------------------------------------------
  201.   # ○ 歩行時のスリップダメージの効果適用
  202.   #--------------------------------------------------------------------------
  203.   def slip_damage_effect_on_walk
  204.     last_hp = self.hp
  205.     last_mp = self.mp
  206.     self.states.each { |state|
  207.       next unless state.slip_damage
  208.       hp_damage = state.slip_damage_hp_map
  209.       unless KGC::SlipDamageExtension::DIE_MAP_DAMAGE
  210.         hp_damage = [hp_damage, self.hp - 1].min
  211.       end
  212.       self.hp -= hp_damage
  213.       self.mp -= state.slip_damage_mp_map
  214.     }
  215.     # ダメージを受けた場合はフラッシュ
  216.     if self.hp < last_hp || self.mp < last_mp
  217.       $game_map.screen.start_flash(
  218.         KGC::SlipDamageExtension::DAMAGE_FLASH_COLOR,
  219.         KGC::SlipDamageExtension::DAMAGE_FLASH_DURATION)
  220.     end
  221.   end
  222.   #--------------------------------------------------------------------------
  223.   # ○ 歩行時の自動回復の実行
  224.   #--------------------------------------------------------------------------
  225.   def do_auto_recovery_on_walk
  226.     return if dead?

  227.     if auto_hp_recover
  228.       self.hp += 1
  229.     end
  230.   end
  231. end

  232. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  233. #==============================================================================
  234. # ■ Game_Party
  235. #==============================================================================

  236. class Game_Party < Game_Unit
  237.   #--------------------------------------------------------------------------
  238.   # ● プレイヤーが 1 歩動いたときの処理
  239.   #--------------------------------------------------------------------------
  240.   def on_player_walk
  241.     for actor in members
  242.       if actor.slip_damage?
  243.         actor.slip_damage_effect_on_walk
  244.       end
  245.       actor.do_auto_recovery_on_walk
  246.     end
  247.   end
  248. end
复制代码

点评

原来有这样的脚本么……(我以前去KGC只看XP脚本……  发表于 2011-8-13 20:32
小艾工作室开张= =
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
85
在线时间
83 小时
注册时间
2010-10-16
帖子
140
3
 楼主| 发表于 2011-8-14 07:09:36 | 只看该作者
沙发,你的脚本难道不需要什么图吗,不能用,是怎么回事???
[img]http://rpg.blue/static/image/smiley/default/victory.
回归中........
回复

使用道具 举报

Lv1.梦旅人

雨狸

梦石
0
星屑
48
在线时间
625 小时
注册时间
2011-3-19
帖子
1296
4
发表于 2011-8-14 08:18:27 | 只看该作者
其实我觉得任意一个横版战斗脚本都会有的吧{:nm_7:}
明夕,何夕
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-4 07:08

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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