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

Project1

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

[已经过期] 关于刷新状态的问题

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2009-8-9
帖子
52
跳转到指定楼层
1
发表于 2009-10-4 11:43:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 372349799 于 2009-10-9 22:34 编辑

我弄了个技能,显示动画后,执行公共事件,然后附加状态,主角行走图和战斗图改变,但是我发现
行走图很快就改变了,但是战斗图和状态要等敌人攻击或自己行动才变化,怎样刷新主角战斗图与状态?

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2009-8-9
帖子
52
2
 楼主| 发表于 2009-10-4 12:55:04 | 只看该作者
自己顶上
回复 支持 反对

使用道具 举报

Lv3.寻梦者

小柯的徒弟

梦石
0
星屑
1535
在线时间
1157 小时
注册时间
2008-5-24
帖子
3085

贵宾

3
发表于 2009-10-4 14:00:25 | 只看该作者
战斗的行走图,楼主可以提供你所使用的关于战斗的脚本吗?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2009-8-9
帖子
52
4
 楼主| 发表于 2009-10-4 17:27:25 | 只看该作者
本帖最后由 372349799 于 2009-10-4 18:41 编辑

就是那个行走图战斗动画脚本~~
对了,附带一句,我做的技能是在战斗中使用的。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2009-8-9
帖子
52
5
 楼主| 发表于 2009-10-4 18:44:20 | 只看该作者
我做的技能在战斗中使用后,附加状态,经历公共事件,然后主角行走图和战斗图改变。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

小柯的徒弟

梦石
0
星屑
1535
在线时间
1157 小时
注册时间
2008-5-24
帖子
3085

贵宾

6
发表于 2009-10-4 20:54:17 | 只看该作者
为什么我找不到一个既有行走图又有战斗图的脚本><

楼主贴脚本or上传工程吧……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2009-8-9
帖子
52
7
 楼主| 发表于 2009-10-4 21:11:10 | 只看该作者
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2009-8-9
帖子
52
8
 楼主| 发表于 2009-10-4 22:02:18 | 只看该作者
额……经过研究,我发现是用了战斗血条这一脚本状态显示才出来问题,请高手解决!
  1. # ————————————————————————————————————
  2. # 本脚本来自www.66rpg.com,转载请保留此信息
  3. # ————————————————————————————————————

  4. # ▼▲▼ XRXS_BP 7. バトルステータス?クリアデザイン ver.1.03 ▼▲▼
  5. # by 桜雅 在土

  6. #==============================================================================
  7. # ■ Window_BattleStatus
  8. #==============================================================================
  9. class Window_BattleStatus < Window_Base
  10.   #--------------------------------------------------------------------------
  11.   # ● 公開インスタンス変数
  12.   #--------------------------------------------------------------------------
  13.   attr_accessor :update_cp_only # CPメーターのみの更新
  14.   #--------------------------------------------------------------------------
  15.   # ● オブジェクト初期化
  16.   #--------------------------------------------------------------------------
  17.   alias xrxs_bp7_initialize initialize
  18.   def initialize
  19.     # 初期化
  20.     @previous_hp = []
  21.     @previous_sp = []
  22.     # 呼び戻す
  23.     xrxs_bp7_initialize
  24.     # ↓Full-Viewの場合は下二行の # を消してください。
  25.     self.opacity = 160
  26.     self.back_opacity = 160  
  27.    
  28. =begin   
  29.    @hp = []
  30.    for j in 0...$game_party.actors.size
  31.      @hp[j] = $game_party.actors[j].hp
  32.    end
  33.    @refresh_flag = true
  34.    refresh
  35. =end   
  36.    
  37.    
  38.   end
  39. #★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  40.   def draw_battler_graphic(actor, x, y)
  41.     battler=RPG::Cache.battler(actor.battler_name, actor.battler_hue)
  42.     w = battler.width
  43.     h = battler.height
  44.     self.contents.blt(x-w/2, y-h, battler, Rect.new(0, 0, w,h),255)
  45.     self.z = 20
  46.   end
  47. #★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

  48.   #--------------------------------------------------------------------------
  49.   # ● リフレッシュ
  50.   #--------------------------------------------------------------------------
  51.   alias xrxs_bp7_refresh refresh
  52.   def refresh
  53.     # CPメーターの更新のみ の場合
  54.     if @update_cp_only
  55.       xrxs_bp7_refresh
  56.       return
  57.     end
  58.     # 変更するものがない場合、飛ばす
  59.     @item_max = $game_party.actors.size
  60.     bool = false
  61.     for i in 0...@item_max
  62.       actor = $game_party.actors[i]
  63.       if (@previous_hp[i] != actor.hp) or (@previous_sp[i] != actor.sp)
  64.         bool = true
  65.       end
  66.     end
  67.     return if bool == false
  68.     # 描写を開始
  69.     self.contents.clear
  70.     for i in 0...@item_max
  71.       actor = $game_party.actors[i]
  72.       actor_x = i * 160 + 21
  73.       # 歩行キャラグラフィックの描写
  74.       draw_battler_graphic(actor, actor_x + 43, 80)
  75.       # HP/SPメーターの描写
  76.       
  77.       
  78.       draw_actor_hp_meter_line(actor, actor_x - 17, 82, 120, 10)
  79.       
  80.       
  81.       draw_actor_sp_meter_line(actor, actor_x - 17, 98, 120, 10)
  82.       # HP数値の描写
  83.       self.contents.font.size = 18 # HP/SP数値の文字の大きさ
  84.       self.contents.font.color = Color.new(0,0,0,192)
  85.       self.contents.draw_text(actor_x, 72, 96, 24, actor.hp.to_s, 2)
  86.       self.contents.font.color = actor.hp == 0 ? knockout_color :
  87.       actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
  88.       self.contents.draw_text(actor_x-2, 70, 96, 24, actor.hp.to_s, 2)
  89.       # SP数値の描写
  90.       self.contents.font.color = Color.new(0,0,0,192)
  91.       self.contents.draw_text(actor_x, 88, 96, 24, actor.sp.to_s, 2)
  92.       self.contents.font.color = actor.sp == 0 ? knockout_color :
  93.       actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
  94.       self.contents.draw_text(actor_x-2, 86, 96, 24, actor.sp.to_s, 2)
  95.       # 用語「HP」と用語「SP」の描写
  96.       self.contents.font.size = 18 # 用語「HP/SP」の文字の大きさ
  97.       self.contents.font.color = Color.new(0,0,0,192)
  98.       self.contents.draw_text(actor_x - 7, 74, 196, 24, $data_system.words.hp)
  99.       self.contents.draw_text(actor_x - 7, 90, 196, 24, $data_system.words.sp)
  100.       self.contents.font.color = system_color # 用語「HP/SP」の文字の色
  101.       self.contents.draw_text(actor_x - 7, 72, 196, 24, $data_system.words.hp)
  102.       self.contents.draw_text(actor_x - 7, 88, 196, 24, $data_system.words.sp)
  103.       # ステートの描写
  104.       draw_actor_state(actor, actor_x-20, 103) #X- 55
  105.       # 描画角色姓名
  106.       #draw_actor_name(actor, actor_x-17, 103)
  107.       # 値を更新
  108.       @previous_hp[i] = actor.hp
  109.       @previous_sp[i] = actor.sp
  110.     end
  111.   end
  112. end
  113. #==============================================================================
  114. # ■ Window_Base
  115. #==============================================================================
  116. class Window_Base < Window
  117.   #--------------------------------------------------------------------------
  118.   # ● HPメーター の描画
  119.   #--------------------------------------------------------------------------
  120.   def draw_actor_hp_meter_line(actor, x, y, width = 156, height = 4)
  121.     w = width * actor.hp / actor.maxhp
  122.     hp_color_1 = Color.new(255, 0, 0, 192)
  123.     hp_color_2 = Color.new(255, 255, 0, 192)
  124.     self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  125.     draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  126.     x -= 1
  127.     y += (height/4).floor
  128.     self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  129.     draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  130.     x -= 1
  131.     y += (height/4).ceil
  132.     self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  133.     draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  134.     x -= 1
  135.     y += (height/4).ceil
  136.     self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  137.     draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  138.   end
  139.   #--------------------------------------------------------------------------
  140.   # ● SPメーター の描画
  141.   #--------------------------------------------------------------------------
  142.   def draw_actor_sp_meter_line(actor, x, y, width = 156, height = 4)
  143.     w = width * actor.sp / actor.maxsp
  144.     hp_color_1 = Color.new( 0, 0, 255, 192)
  145.     hp_color_2 = Color.new( 0, 255, 255, 192)
  146.     self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  147.     draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  148.     x -= 1
  149.     y += (height/4).floor
  150.     self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  151.     draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  152.     x -= 1
  153.     y += (height/4).ceil
  154.     self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  155.     draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  156.     x -= 1
  157.     y += (height/4).ceil
  158.     self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  159.     draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  160.   end
  161.   #--------------------------------------------------------------------------
  162.   # ● 名前の描画
  163.   #--------------------------------------------------------------------------
  164.   alias xrxs_bp7_draw_actor_name draw_actor_name
  165.   def draw_actor_name(actor, x, y)
  166.     xrxs_bp7_draw_actor_name(actor, x, y) #if @draw_ban != true
  167.   end
  168.   #--------------------------------------------------------------------------
  169.   # ● ステートの描画
  170.   #--------------------------------------------------------------------------
  171.   alias xrxs_bp7_draw_actor_state draw_actor_state
  172.   def draw_actor_state(actor, x, y, width = 120)
  173.     xrxs_bp7_draw_actor_state(actor, x, y, width) if @draw_ban != true
  174.   end
  175.   #--------------------------------------------------------------------------
  176.   # ● HP の描画
  177.   #--------------------------------------------------------------------------
  178.   alias xrxs_bp7_draw_actor_hp draw_actor_hp
  179.   def draw_actor_hp(actor, x, y, width = 144)
  180.     xrxs_bp7_draw_actor_hp(actor, x, y, width) if @draw_ban != true
  181.   end
  182.   #--------------------------------------------------------------------------
  183.   # ● SP の描画
  184.   #--------------------------------------------------------------------------
  185.   alias xrxs_bp7_draw_actor_sp draw_actor_sp
  186.   def draw_actor_sp(actor, x, y, width = 144)
  187.     xrxs_bp7_draw_actor_sp(actor, x, y, width) if @draw_ban != true
  188.   end
  189. end
  190. #==============================================================================
  191. # ■ Scene_Battle
  192. #==============================================================================
  193. class Scene_Battle
  194.   #--------------------------------------------------------------------------
  195.   # ● フレーム更新
  196.   #--------------------------------------------------------------------------
  197.   alias xrxs_bp7_update update
  198.   def update
  199.     xrxs_bp7_update
  200.     # メッセージウィンドウ表示中の場合
  201.     if $game_temp.message_window_showing
  202.       @status_window.update_cp_only = true      
  203.     else
  204.       @status_window.update_cp_only = false
  205.     end
  206.   end
  207. end
  208. #==============================================================================
  209. # ◇ 外部ライブラリ
  210. #==============================================================================
  211. class Window_Base
  212.   #--------------------------------------------------------------------------
  213.   # ● ライン描画 軽量版 by 桜雅 在土
  214.   #--------------------------------------------------------------------------
  215.   def draw_lineght(start_x, start_y, end_x, end_y, start_color)
  216.     # 描写距離の計算。大きめに直角時の長さ。
  217.     distance = (start_x - end_x).abs + (start_y - end_y).abs
  218.     # 描写開始
  219.     for i in 1..distance
  220.       x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
  221.       y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
  222.       self.contents.set_pixel(x, y, start_color)
  223.     end
  224.   end
  225.   #--------------------------------------------------------------------------
  226.   # ● ライン描画 by 桜雅 在土
  227.   #--------------------------------------------------------------------------
  228.   def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)
  229.     # 描写距離の計算。大きめに直角時の長さ。
  230.     distance = (start_x - end_x).abs + (start_y - end_y).abs
  231.     # 描写開始
  232.     if end_color == start_color
  233.       for i in 1..distance
  234.         x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
  235.         y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
  236.         if width == 1
  237.           self.contents.set_pixel(x, y, start_color)
  238.         else
  239.           self.contents.fill_rect(x, y, width, width, start_color)
  240.         end
  241.       end
  242.     else
  243.       for i in 1..distance
  244.         x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
  245.         y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
  246.         r = start_color.red * (distance-i)/distance + end_color.red * i/distance
  247.         g = start_color.green * (distance-i)/distance + end_color.green * i/distance
  248.         b = start_color.blue * (distance-i)/distance + end_color.blue * i/distance
  249.         a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance
  250.         if width == 1
  251.           self.contents.set_pixel(x, y, Color.new(r, g, b, a))
  252.         else
  253.           self.contents.fill_rect(x, y, width, width, Color.new(r, g, b, a))
  254.         end
  255.       end
  256.     end
  257.   end
  258. end

复制代码
回复 支持 反对

使用道具 举报

Lv3.寻梦者

小柯的徒弟

梦石
0
星屑
1535
在线时间
1157 小时
注册时间
2008-5-24
帖子
3085

贵宾

9
发表于 2009-10-4 22:21:04 | 只看该作者
  1. class Scene_Battle
  2.   alias lv20_update update
  3.   def update
  4.     lv20_update
  5.     if $jiong_lv20
  6.     @status_window.refresh
  7.     $jiong_lv20 = false
  8.     end
  9.   end
  10. end
  11. class Interpreter
  12.   alias lv20_command_322 command_322
  13.   def command_322
  14.     $jiong_lv20 = true
  15.     return lv20_command_322
  16.   end
  17. end
复制代码
放到以上脚本的下面,即可修复问题~~~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2009-8-9
帖子
52
10
 楼主| 发表于 2009-10-7 14:35:52 | 只看该作者
额……问题并没有解决,使用你的脚本后问题依旧
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-2 02:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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