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

Project1

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

[已经过期] 为什么战斗结束了还显示状态

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2011-11-26
帖子
90
跳转到指定楼层
1
 楼主| 发表于 2013-1-27 21:11:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x

就像这样......但有时他自己也会消失
又有时会一直在那里.......
我装了一个状态颜色的脚本才出现的。。。
自己也不会改啊..........
RUBY 代码复制
  1. #============================================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],由sdxsdx转载。使用请保留此信息
  3. #============================================================================================
  4. #============================================
  5. #  自定义
  6. #============================================
  7. class Window_BattleStatus < Window_Base
  8.   STATE_DRAW_FRAME     = 20   # 状态框的间隔
  9.   STATE_DRAW_X         = 160  # X 坐标
  10.   STATE_DRAW_Y         = 96   # Y 坐标
  11.   STATE_DRAW_COLOR_USE = true # 文字颜色是否有效
  12.   #--------------------------------------------------------------------------
  13.   # ● ステートの文字色設定
  14.   #     actor       : アクター
  15.   #     text        : 描画文字列
  16.   #--------------------------------------------------------------------------
  17.   def state_font_color(actor, text)
  18.     if STATE_DRAW_COLOR_USE
  19.       color = normal_color
  20.       case text
  21.       when "[正常]"
  22.         color = normal_color
  23.       when "[死亡]"
  24.         color = Color.new(255, 0, 0)
  25.       when "[灼伤]"
  26.         color = Color.new(241, 71, 14, 255)
  27.       when "[愤怒]"
  28.         color = Color.new(240, 252, 10, 255)
  29.       when "[激动]"
  30.         color = Color.new(255, 123, 15, 255)
  31.       when "[晕血]"
  32.         color = Color.new(197, 73, 163, 255)
  33.       when "[混乱]"
  34.         color = Color.new(200, 255, 140, 255)
  35.       when "[睡眠]"
  36.         color = Color.new(64, 64, 200, 255)
  37.       when "[麻痺]"
  38.         color = Color.new(254, 235, 1, 255)
  39.       when "[无力]","[干扰]","[濒死]"
  40.         color = Color.new(128, 128, 128, 255)
  41.       when "[大力]","[疾风]","[热血]"
  42.         color = Color.new(128, 128, 255, 255)
  43.       when "[冻伤]"
  44.         color = Color.new(3, 22, 254, 255)
  45.       when "[风毒]"
  46.         color = Color.new(117, 130, 140, 255)
  47.       when "[水毒]"
  48.         color = Color.new(10, 181, 254, 255)
  49.       when "[火毒]"
  50.         color = Color.new(214, 99, 50, 255)
  51.       when "[土毒]"
  52.         color = Color.new(191, 165, 72, 255)
  53.       when "[雷毒]"
  54.         color = Color.new(9, 237, 255, 255)
  55.       end
  56.     else
  57.       # STATE_DRAW_COLOR_USEがfalseの場合はデフォの処理(戦闘不能のみ赤で描画)
  58.       color = actor.hp == 0 ? knockout_color : normal_color
  59.     end
  60.     @state_sprite.bitmap.font.color = color
  61.   end
  62.   attr_accessor :state_count
  63.   alias window_battlestatus_state_draw_initialize initialize
  64.   def initialize
  65.     window_battlestatus_state_draw_initialize
  66.     # ステート表示用のカウンタを作成
  67.     @state_count = 0
  68.     # ステート表示用のスプライトを作成
  69.     @state_sprite = Sprite.new(self.viewport)
  70.     @state_sprite.bitmap = Bitmap.new(self.width - 32, self.height - 32)
  71.     @state_sprite.x = self.x + 16
  72.     @state_sprite.y = self.y + 16
  73.     @state_sprite.z = self.z + 2
  74.     # ステート表示用スプライトをリフレッシュ
  75.     state_draw_refresh
  76.   end
  77.   alias window_battlestatus_state_draw_dispose dispose
  78.   def dispose
  79.     window_battlestatus_state_draw_dispose
  80.     # ステート表示用スプライトを開放
  81.     @state_sprite.dispose
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 描画用のステート文字列作成
  85.   #     actor       : アクター
  86.   #     width       : 描画先の幅
  87.   #     need_normal : [正常] が必要かどうか (true / false)
  88.   #--------------------------------------------------------------------------
  89.   def make_battler_state_text(battler, width, need_normal)
  90.     # 括弧の幅を取得
  91.     brackets_width = self.contents.text_size("[]").width
  92.     # ステート名の文字列を作成
  93.     text = ""
  94.     # 実際表示するステートの配列作成
  95.     show_state = []
  96.     for i in battler.states
  97.       if $data_states[i].rating >= 1
  98.         show_state.push($data_states[i].name)
  99.       end
  100.     end
  101.     # 表示ステートの配列が空の場合は "[正常]" にする
  102.     if show_state.size == 0
  103.       if need_normal
  104.         text = "[正常]"
  105.       else
  106.         text = ""
  107.       end
  108.     else
  109.       # カウントに見合ったステートを文字列に設定
  110.       text = show_state[(@state_count / STATE_DRAW_FRAME) % show_state.size]
  111.       # 括弧をつける
  112.       text = "[" + text + "]"
  113.     end
  114.     # 完成した文字列を返す
  115.     return text
  116.   end  
  117.  
  118.   def state_draw_refresh
  119.     # ステート表示用のカウントを増加
  120.     @state_count += 1
  121.     # ステート更新間隔でなく、最初の更新時でなければ更新しない
  122.     return if @state_count % STATE_DRAW_FRAME != 0 and @state_count != 1
  123.     @state_sprite.bitmap.clear
  124.     for i in 0...$game_party.actors.size
  125.       actor = $game_party.actors[i]
  126.       actor_x = i * STATE_DRAW_X + 4
  127.       if @level_up_flags[i]
  128.         @state_sprite.bitmap.font.color = normal_color
  129.         @state_sprite.bitmap.draw_text(actor_x, STATE_DRAW_Y, 120, 32, "升级!")
  130.       else
  131.         text = make_battler_state_text(actor, 120, true)
  132.         state_font_color(actor, text)
  133.         @state_sprite.bitmap.draw_text(actor_x, STATE_DRAW_Y, 120, 32, text)
  134.       end
  135.     end
  136.   end
  137.  
  138.   def draw_actor_state(actor, x, y, width = 120)
  139.     # 通常のdraw_actor_stateを実行させない為のダミー
  140.   end
  141. end
  142. class Scene_Battle
  143.   alias scene_battle_state_draw_update update
  144.   def update
  145.     # update毎にステート表示を更新
  146.     @status_window.state_draw_refresh
  147.     scene_battle_state_draw_update
  148.   end
  149. end



求高手解决

Lv1.梦旅人

梦石
0
星屑
60
在线时间
568 小时
注册时间
2012-9-7
帖子
611
2
发表于 2013-1-28 00:38:11 | 只看该作者
原版应该是没有什么问题的,你是不是加了其他的战斗类脚本?最好列出来
FTM正式版已经发布,点击图片开启传送门
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2011-11-26
帖子
90
3
 楼主| 发表于 2013-1-28 14:27:34 | 只看该作者
wingzeroplus 发表于 2013-1-28 00:38
原版应该是没有什么问题的,你是不是加了其他的战斗类脚本?最好列出来

状态颜色(上面有)
敌方战斗力:
RUBY 代码复制
  1. #==============================================================================
  2. # Zenith RGSS4 エネミー残勢力表示  ver1.00
  3. #   by 水夜
  4. #  [url]http://zenith.ifdef.jp/[/url]
  5. #------------------------------------------------------------------------------
  6. # 显示敌方剩余战斗力
  7. #==============================================================================
  8. #==============================================================================
  9. # □ 常数设置
  10. #==============================================================================
  11. module ZENITH4
  12.   # エネミー残勢力の表示?非表示を切り替えるスイッチのID(スイッチON時に非表示)
  13.   E_SWITCH = 1
  14.   # 残勢力ゲージの長さ
  15.   EG_WIDTH = 160
  16.   # 残勢力ゲージの色
  17.   EG_COLOR = Color.new(255, 0, 0, 255)
  18.   # 表示する文字列
  19.   EW_NAME = "敌方剩余战斗力"
  20.   # 表示する文字列の色
  21.   EW_COLOR = Color.new(255, 255, 255, 255)
  22. end
  23. #==============================================================================
  24. # ■ Window_BattleStatus
  25. #==============================================================================
  26. class Window_BattleStatus < Window_Base
  27.   #--------------------------------------------------------------------------
  28.   # ● オブジェクト初期化
  29.   #--------------------------------------------------------------------------
  30.   alias zenith4_initialize initialize
  31.   def initialize
  32.     # エネミー勢力スプライト作成
  33.     @enemy_force = Sprite.new
  34.     @enemy_force.bitmap = Bitmap.new(8 + ZENITH4::EG_WIDTH, 34)
  35.     @enemy_force.x = 640 - (12 + ZENITH4::EG_WIDTH)
  36.     @enemy_force.y = 62
  37.     @enemy_force.z = 50
  38.     # 呼び戻す
  39.     zenith4_initialize
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● 解放
  43.   #--------------------------------------------------------------------------
  44.   alias zenith4_dispose dispose
  45.   def dispose
  46.     # エネミー勢力スプライト解放
  47.     @enemy_force.bitmap.dispose
  48.     @enemy_force.dispose
  49.     # 呼び戻す
  50.     zenith4_dispose
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   # ● リフレッシュ
  54.   #--------------------------------------------------------------------------
  55.   alias zenith4_refresh refresh
  56.   def refresh
  57.     # 呼び戻す
  58.     zenith4_refresh
  59.     if $game_switches[ZENITH4::E_SWITCH] == false  
  60.       @enemy_force.visible = true
  61.       @enemy_force.bitmap.clear
  62.       x = 4
  63.       y = 4
  64.       width = ZENITH4::EG_WIDTH
  65.       # 文字列を描画
  66.       @enemy_force.bitmap.font.size = 18
  67.       @enemy_force.bitmap.font.color = Color.new(0, 0, 0, 255)
  68.       @enemy_force.bitmap.draw_text(x+1, y+1, width, 22, ZENITH4::EW_NAME)
  69.       @enemy_force.bitmap.draw_text(x-1, y-1, width, 22, ZENITH4::EW_NAME)
  70.       @enemy_force.bitmap.draw_text(x+1, y-1, width, 22, ZENITH4::EW_NAME)
  71.       @enemy_force.bitmap.draw_text(x-1, y+1, width, 22, ZENITH4::EW_NAME)
  72.       @enemy_force.bitmap.font.color = ZENITH4::EW_COLOR
  73.       @enemy_force.bitmap.draw_text(x, y, width, 22, ZENITH4::EW_NAME)
  74.       # エネミー勢力を描画
  75.       @item_max = $game_troop.enemies.size
  76.       enemy_mh = 0
  77.       enemy_h = 0
  78.       for i in 0...@item_max
  79.         enemy = $game_troop.enemies[i]
  80.         enemy_mh += enemy.maxhp
  81.         enemy_h += enemy.hp
  82.       end
  83.       @enemy_force.bitmap.fill_rect(x-1, y+24, width+2,5, Color.new(0, 0, 0, 150))
  84.       w = width * enemy_h / enemy_mh
  85.       @enemy_force.bitmap.fill_rect(x+width-w, y+25, w,3, ZENITH4::EG_COLOR)
  86.     else
  87.       @enemy_force.visible = false
  88.     end
  89.   end
  90. end


CP制战斗(这个就不用放代码了吧)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
568 小时
注册时间
2012-9-7
帖子
611
4
发表于 2013-1-28 16:33:47 | 只看该作者
敌方战斗力给我放状态没什么关系,也许真是CP制战斗的问题,建议你吧工程传上来
FTM正式版已经发布,点击图片开启传送门
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2011-11-26
帖子
90
5
 楼主| 发表于 2013-1-29 18:34:24 | 只看该作者
wingzeroplus 发表于 2013-1-28 16:33
敌方战斗力给我放状态没什么关系,也许真是CP制战斗的问题,建议你吧工程传上来 ...

其实我还装了彩虹神剑和动态指标......
但经测试,这两个没问题,还真是CP战斗的问题......
因为我把CP战斗的脚本贴上去后就出现了这种情况



我还是把工程放上来吧(我希望能得到解决): Project2.7z (214.19 KB, 下载次数: 11)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2011-11-26
帖子
90
6
 楼主| 发表于 2013-1-29 18:42:26 | 只看该作者
wingzeroplus 发表于 2013-1-28 16:33
敌方战斗力给我放状态没什么关系,也许真是CP制战斗的问题,建议你吧工程传上来 ...

如果可以的话,能不能帮我把彩虹神剑弄出显示SP伤害的效果.........
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
568 小时
注册时间
2012-9-7
帖子
611
7
发表于 2013-1-29 22:10:30 | 只看该作者
把 “敌方战斗力” 和 “状态颜色”  两个脚本放到“速度条”下方即可解决问题
另外彩虹神剑我不怎么熟悉,你另外开个帖子问其他人吧

点评

谢谢  发表于 2013-1-30 17:03

评分

参与人数 1星屑 +66 收起 理由
hcm + 66 感谢回答

查看全部评分

FTM正式版已经发布,点击图片开启传送门
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-5 11:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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