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

Project1

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

[有事请教] 自己修改的插件出了錯誤

[复制链接]
梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
跳转到指定楼层
1
发表于 2012-10-14 18:18:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
3 b0 u, M( I5 c5 @; t. {6 |會在每隻事件怪物的腳下顯示
- z% x. m' ]4 b問題是不知道為什麼
9 S5 Q3 m+ q1 S" v- p6 M有時打怪打一打會跳出
& x5 X/ h3 K5 E' d7 o& \) `---------------------------
. f8 D; B4 b3 `) tXAS
- B9 j2 P& Z- @% B---------------------------5 ^* v' B+ V& B) Z. f4 i) |
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
9 L# O1 g( e$ T% @! o( s4 A6 V1 B8 J3 y) U  f) }+ h' i3 A
disposed bitmap
3 y) \. {& a1 l) ]/ W---------------------------
0 _' f, V/ _% J% _3 h8 `6 Z! U確定   5 A# }4 F$ {6 D0 b9 p( k6 m
---------------------------
# C. P3 m9 _1 r
2 K2 N- a0 [" u3 Z  h, f這是腳本
0 M/ [/ p6 P  i2 M' k5 x: V4 v4 m, R( c; K
  1. #===============================================================================
    " j0 X+ ]/ Z; L- M, I9 b+ Z- E
  2. # MOG - s Hud 1.0      
    4 A9 ]1 D' e5 u; U7 C0 Y2 P; i' @/ Z6 ]  k
  3. #===============================================================================
    1 O. V, ?7 D, b! j; Z! p6 u1 N- T
  4. # By Moghunter 0 j3 u5 `3 S' q/ g
  5. # http://www.atelier-rgss.com
    ! E: l3 o3 Z- n: n
  6. #===============================================================================
    / V, `4 Y6 \& q, U+ n
  7. # Translated by Calvin624
    2 [! s8 t+ ~2 B8 M
  8. # http://www.xasabs.wordpress.com
    , M" s! E" }( K4 @
  9. #===============================================================================
    / _7 |1 s. a2 W
  10. ###############################-DESCRIPTION-####################################
    . i2 O1 V% }5 J
  11. #===============================================================================
    & Y+ m  N0 ]0 D, u5 {
  12. # Personal HUD – displays the HP and SP below the hero.
    & p* D7 B  ]! i* Z
  13. #===============================================================================
    8 t: S% T, V' s/ @
  14. #" w) c8 h  L1 P) N" m+ V" K
  15. # Graphics required:6 Y) s5 y3 }+ l6 f6 u. _' e0 ?# B) ?
  16. # ( w7 j" T& P' V1 e' s. E5 J
  17. # S_Border_HP_Meter.png' Z- c# X0 c+ p' ~
  18. # S_Border_SP_Meter.png
    . X7 U' ^! H9 n: O2 K  _
  19. # S_HP_Meter.png
    - Q( c  K  u, w9 p1 w7 t4 Z5 c
  20. # S_SP_Meter.png+ x7 @! R! Q# z- ?3 }
  21. #) B8 T' y2 O) c& D0 k
  22. # All images must be in the Windowskin folder.
    # U& F8 e6 z/ x) |, {
  23. ## k+ [( o9 ?. V3 [
  24. #===============================================================================# L0 S2 T- g3 Y8 e+ d$ e8 F
  25. module MOG! k0 v7 a& Z" ?% j* B
  26. VISIBLE_DEF = false  9 a1 O5 |. w9 l- L4 }
  27. # Show HP meter?
    2 g" a# ]3 g+ ?' e8 U2 v
  28. HP_HUD = true6 r/ Q: F7 N' [  \; `) ~, L0 D4 V/ H
  29. # Position of the HP border
    1 p) ?3 h, f9 ~9 @' B% y# ?; w' R
  30. S_BORDER_HP_METER_X = -29 p9 q1 l3 ^5 l9 F8 U- o" Z! Z3 \
  31. S_BORDER_HP_METER_Y = -2  , V; O" u. `- Y  t6 Z1 b1 M. T8 m
  32. # Position of the HP meter. h# n. l% I2 G8 C: W7 ]; G2 k
  33. S_HP_METER_X = 05 L# W/ O& E9 u2 s2 A8 v
  34. S_HP_METER_Y = 0$ `7 `& |+ ^& v) I7 B# {" F  l
  35. # Show SP meter?) ]( T& G/ {; j: i1 `" H" n
  36. SP_HUD = true/ }* I2 J+ B, A% D8 a
  37. # Position of the SP border' ]; G# q: F  s2 A& ^! y0 Y. ~" _7 _, L
  38. S_BORDER_SP_METER_X = 0
    1 @# A$ v( k& e6 K- `3 L
  39. S_BORDER_SP_METER_Y = 10 7 j' H5 W' d$ T9 T' K8 A
  40. # Position of the SP meter
    ; N/ n3 l3 e* c2 d
  41. S_SP_METER_X = 0
    2 L* Q( r% u2 H! M) u4 @' M* t" N* ]/ @
  42. S_SP_METER_Y = 10
    % Y+ ]4 D' q+ K6 ?% a+ d- m
  43. # Switch to disable the HUD
    ) ?/ h  ]! O2 g& V$ W% d
  44. DISABLE_SHUD_SWITCH = 5
    ) C* [5 I; d; t- U  U* y: d" m
  45. RANGE = 201 h  |' _3 h, w/ u0 w7 x
  46. end
    8 [% p% x( q2 ~) w( v7 g, `6 D3 ~% k
  47. #===============================================================================
    - P( E9 x3 M3 b2 L0 P
  48. # S Hud3 W9 t. W, ?8 |3 W5 H- s
  49. #===============================================================================/ }9 U, N6 O/ ?7 P* v1 C. d
  50. class S_Hud < RPG::Sprite
    9 r1 T* L- q1 S) Y9 E" G
  51.   include MOG
    , Z6 T8 b8 x0 P5 K" c1 X
  52.   #--------------------------------------------------------------------------7 [4 L! D$ D% |1 c- p& [) k8 e2 U
  53.   # * Initialize1 E+ i; f1 n: j4 f$ i- J# V5 l
  54.   #--------------------------------------------------------------------------
    # P; Q& O% T/ _9 W# Y- _, @9 B3 D
  55.   def initialize(enemy,viewport)3 \5 t8 [) j3 v3 {
  56.     super(viewport) ) Q8 b* k3 _+ N+ r5 j* @& S
  57.     @enemy  = enemy. y0 X% U2 B4 D6 L/ I: |0 X! T( y
  58.     @battler = @enemy.battler
    6 b8 z2 N% K4 A+ `
  59.     @old_hp  = 0- M; b9 L" S5 Y% a9 Y0 G
  60.     @old_sp  = 0  O7 l8 y$ l; e9 k% V& L
  61.     @old_vis = false
    6 f5 R. A' v3 d+ J' I9 @! b
  62.     self.bitmap = Bitmap.new(100, 100)) H" t  w! ~- f+ v8 R2 E$ \1 @
  63.     self.visible = (VISIBLE_DEF)#false
    7 J/ s1 @" }7 L7 E4 P7 N) @1 l
  64.     self.z = 100
    ) [4 W3 V' \- W! x! _
  65.     #HP Border -------------------------------------------------------------------
    9 S; I) A) \9 f5 e0 D
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    * P/ _4 m* l* [. _' E7 I: ~
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    - @; @6 t4 A+ i; K( _
  68.     @layout_sprite = Sprite.new6 l9 H8 j0 i8 f9 j
  69.     @layout_sprite.bitmap = @layout_bitmap; u1 u; X7 K( x+ a) E$ Y0 g  U% e5 _
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)* n. M8 y  b, f2 |, r* b1 _7 _
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      , |: v: f9 G5 A7 k; N
  72.     @layout_sprite.z = 5001
    0 C' r. L0 k0 _' Q
  73.     #HP Meter ---------------------------------------------------
    ! o7 {3 K! a" ~$ C
  74.     @hp_flow = 0; i' a: v( v" m9 O+ R! O
  75.     @hp_damage_flow = 02 S& w& \8 Y; S" Y1 L' m- i0 ]
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    5 v0 c8 N. t# y4 a+ Y
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)4 Y% ~8 B9 \4 _
  78.     @hp_range = @hp_image.width / 38 l' q- V4 s& [7 `# C- d/ V8 ~
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    4 ^- }1 o7 V5 F$ g8 G
  80.     @hp_width2 = @hp_range / 21 X5 A: |7 P5 {- c) ?5 V* w
  81.     @hp_height = @hp_image.height / 2$ @; \$ x5 m9 j5 S& H" z/ n3 p; D
  82.     @hp_width_old = @hp_width! K# V2 G, |6 f9 @9 M; A2 |
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)9 q* O" l( L* ^8 Z: w; m
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) : Y1 r$ _. ?' J2 i* Q6 m: D6 a
  85.     @hp_sprite = Sprite.new
    3 Y3 D7 J: l! ~# |1 w" }
  86.     @hp_sprite.bitmap = @hp_bitmap
    2 W' [% f1 ^/ e: T, e  }! ?& T
  87.     @hp_sprite.z = 5002
    6 k5 I; ~0 J/ {6 c& K
  88.     #SP Border -------------------------------------------------------------------0 r, L# T$ C0 U' t& s! }- u, ]
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    8 k9 J8 v7 J4 B* ^
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    $ ^0 |2 k, P" ]( L# E9 {$ u8 g
  91.     @layout2_sprite = Sprite.new
    ' t, `* R  b% u7 F$ U
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    ) x# m% @1 W- D: ~
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)( n* r7 l3 s- U, k. q. K: A
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      ( V. e. K4 N' ~/ g; j
  95.     @layout2_sprite.z = 5001    9 k- G: m7 [& ]; P7 {* ~
  96.     #SP Meter ------------------------------------------------------
    & |6 [9 ^+ O" R# `
  97.     @sp_flow = 0* O2 g! W# e& {6 Z
  98.     @sp_damage_flow = 0
    ; A7 A, Q6 O- v
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")2 A4 g. w" @$ Q. ?' I" L
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
      i5 Y; A, ~5 n. P
  101.     @sp_range = @sp_image.width / 3$ ~) u2 B% d( I' e
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    ) t+ Z3 U5 q; c; V  G% K  f
  103.     @sp_width2 = @sp_range / 2: t& N' E* u& S# Y7 Y% K8 O
  104.     @sp_height = @sp_image.height / 2
    ) g2 Z! A7 n/ l( T& Z2 t5 X
  105.     @sp_width_old = @sp_width
    ( Z, Q' b% i8 W, X' h
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    3 C/ U7 w* b- }3 x; G# i( T* C6 @) b
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)6 b3 p3 t; N/ I$ x0 B+ Z# E
  108.     @sp_sprite = Sprite.new4 W' X5 R0 K% I" O' `, h
  109.     @sp_sprite.bitmap = @sp_bitmap
      p4 p9 R' t* F# x2 ?
  110.     @sp_sprite.z = 5002+ Q" P; l0 B! ]. p
  111.     update
    0 A- i- O1 G; d8 n
  112.   end
    , _0 T6 x* I, N+ U+ a
  113.   #--------------------------------------------------------------------------
    * i: x) A( N; N) `& Q$ G$ r! T
  114.   # * Refresh* l4 w  ^* {3 R7 ?, B2 H
  115.   #--------------------------------------------------------------------------
      j0 G: b- N4 `5 s9 C& H/ p
  116.   def refresh
    8 P) w; Z' F% J8 W& x* k
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    1 i/ j7 W% a. N
  118.     self.bitmap.clear* A0 g8 ?/ `  u" c' S* f1 D- b
  119.     @old_vis = self.visible% l: P% L0 {8 K0 n& Z9 ~
  120.     @old_sp = @battler.sp
    5 t& h% \" ]4 x- j) `! `
  121.     @old_hp = @battler.hp
    * U* `  ?; h: n) o1 W* z5 r
  122.     hp_flow_update8 f) @0 s- I& c& e$ }
  123.     sp_flow_update1 f; I& H5 w7 r" @- H7 k
  124.     hud_pos_update2 v. u2 _) \) B3 G
  125.     visible_update1 x; Q8 A4 W1 Q9 Y7 I
  126.   end
    ( D4 R+ Z+ t" j* u
  127.   #--------------------------------------------------------------------------' `' a( ]# A1 ?1 Y' A6 z
  128.   # * Dispose3 y' E& ?6 c2 R6 ~
  129.   #--------------------------------------------------------------------------; V) @) Z& z, O# a) @/ _& x0 T
  130.   def dispose$ T4 k; s7 ?/ y% f! R8 F5 R3 p
  131.     #HP Meter Dispose; F  w( B1 v0 r' N) c) Q7 a( b
  132.     @hp_sprite.bitmap.dispose
    3 N( n* m  }) z; S- Z6 R
  133.     @hp_sprite.dispose
    1 M7 j& s* c& K! q: D2 s6 m/ s
  134.     @hp_bitmap.dispose+ @" ~' z5 U/ M8 `* I5 p
  135.     #HP Border Dispose+ S) e! e/ D# E; `
  136.     @layout_sprite.bitmap.dispose) q  w% ?; B$ Z8 ~! ^
  137.     @layout_sprite.dispose
    7 n% e) w/ P' J! Q
  138.     @layout_bitmap.dispose
      }" ]8 \" g/ P9 R8 N
  139.     #SP Meter Dispose
    , N( o2 C. P( z& H
  140.     @sp_sprite.bitmap.dispose. }; K1 b2 p& |- i
  141.     @sp_sprite.dispose) X4 p* D- H7 u0 [
  142.     @sp_bitmap.dispose& W0 J9 {! P0 F2 U6 v
  143.     #SP Border Dispose
    $ i  e" H0 [2 `9 |" e
  144.     @layout2_sprite.bitmap.dispose
    ! O, P  |: a. M: o
  145.     @layout2_sprite.dispose( g' g+ t# h" r/ F( w. Y
  146.     @layout2_bitmap.dispose
    ; q$ Y, U  `! D9 Q
  147.   end
    ' R: {0 y* D# G9 {# @
  148.   #--------------------------------------------------------------------------
    5 Q3 B4 N" @2 F, l8 p# J
  149.   # * Update9 P. {& P+ t' Q' [. J, W
  150.   #--------------------------------------------------------------------------: |* X) l' y1 L8 a; H+ l
  151.   def update
    ! `% o" _0 w& D6 Z+ N
  152.      @battler = @enemy.battler + q+ i4 c' |& h# Y) N/ |0 d# H
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    7 O9 t6 l/ U( x5 e
  154.      if self.visible
    " R7 W, j2 G6 g
  155.        refresh8 w0 M& q: J$ N% R9 n
  156.      else' c% |9 q; ~5 b  R" Y- O
  157.        self.bitmap.clear
    8 K" I$ I1 k$ W# Q
  158.      end( x6 h% ^. V; ?* r0 W+ `6 O
  159.   end
    , _" t& m7 \5 |0 }3 J: X7 k+ g
  160.   #--------------------------------------------------------------------------1 w3 B+ j8 D* u
  161.   # * Visible Update
    / V0 u! e8 U$ L" \0 c- v
  162.   #--------------------------------------------------------------------------
    : P5 x" g0 d/ {! N
  163.   def visible_update! `' q1 J; s9 e( M8 C1 a& |! o! U
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    3 g# G' [+ l6 R7 J" r
  165.        @hp_sprite.visible = false8 q1 S) P3 P/ l3 s6 O
  166.        @layout_sprite.visible = false
    9 T6 o: j% p8 ]- P0 q" H
  167.        @sp_sprite.visible = false
    + f& I6 J& u, ]3 P. y
  168.        @layout2_sprite.visible = false
    ) ~2 x% b; ~  q. F: l/ N
  169.     else7 i8 j7 u* n3 H9 ]
  170.        if HP_HUD == true
    % Y/ [" |* N4 q/ X  e; X: @
  171.          @hp_sprite.visible = true
      c0 P8 d6 b- }/ `
  172.          @layout_sprite.visible = true  e2 F: q7 ]  U* n0 p) L
  173.        else
    * h8 F7 z) ]2 X# f1 E7 [( O
  174.          @hp_sprite.visible = false
      w2 b8 O  [9 r( a1 r: G
  175.          @layout_sprite.visible = false
    + V9 h. t, _! D; H: B
  176.        end  
    # u4 O+ ~  O1 U0 S* {0 p9 L6 R1 }! j
  177.        if SP_HUD == true6 ^' }2 X. L7 V8 @) K' z' x
  178.          @sp_sprite.visible = true3 |/ e) h% q1 d8 o- U6 h
  179.          @layout2_sprite.visible = true8 ^9 c3 B  D. r
  180.        else
    & c  ~1 k$ z2 S9 H, N
  181.          @sp_sprite.visible = false# g, l0 H- g% o
  182.          @layout2_sprite.visible = false
    ' |, t9 V' d! _* w6 e* i
  183.        end + L& y- f2 w4 W; o: W% V- v
  184.      end  & l& |1 _6 F( [. S' J; g
  185.    end
    : f% F! I" V/ |3 \: B& w7 [
  186.   #--------------------------------------------------------------------------$ n0 G) V& n( G+ M. |6 C; }- S* i
  187.   # * Hud Pos Update0 ~& ~/ I! d. l% F+ M/ m) E9 |- M0 ^
  188.   #--------------------------------------------------------------------------  {; ^7 w4 [6 ]& j
  189.   def hud_pos_update! o& `. ^+ g/ T
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    # Q8 R2 `0 z9 n; u* P9 W. j2 i
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    + |4 A+ r: ~5 ^! _
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X8 m0 n* J( p& t7 l  |
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y - G: j1 q$ i' q# ~3 y  K
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X% d; S" o3 I0 D7 D: Z# `
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    , P( y2 t5 H/ Q9 j" c
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X1 r( O. K$ ~4 Y  j' t1 T1 u
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     # D9 b) v( I, N, ?
  198.   end  ) X% Y$ Z3 [) o- H# g/ C; ?! n
  199.   #--------------------------------------------------------------------------
    $ c1 S4 Q3 i; z9 `! o" n, ^
  200.   # * Hp Flow Update5 d4 G& E* [- \3 _
  201.   #--------------------------------------------------------------------------$ F' J+ Y* r$ W' W* i9 p- T
  202.   def hp_flow_update
    7 l; l4 z2 ~/ Q  l: G2 b' s% a
  203.       @hp_sprite.bitmap.clear
    3 N) D- t4 S6 }- b0 A& z8 G
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  # c6 s8 N  ?! r. N) r+ ^: c% ~6 n/ v
  205.           #HP Damage---------------------------------, w3 |) M. B& ?
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100$ G& I5 I+ [, J0 n
  207.           valor = 0.5 if valor < 1          * ]+ `' s# m- ~0 t
  208.           if @hp_width_old != @hp_width( V% v% [- I) @. w" S
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    6 h8 L/ F2 r: G8 [% u! v
  210.           if @hp_width_old < @hp_width " E0 F+ _! Z- D/ ]8 i+ j
  211.              @hp_width_old = @hp_width
    . D6 `! m! I, o! S4 i* P' W
  212.           end      ' E' T# y& R' O, Q" G* b
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    4 P) f2 x4 Y# \3 @2 y1 ]9 e0 T: U5 O
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    , |5 ?9 U4 w+ p8 u; {: W
  215.           end        
      L$ h* w9 G+ X. ?" }
  216.       #HP Real------------------------------------5 c" Q0 O7 i5 j, H( g4 G% ~0 I3 T/ I
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)1 `7 x2 z+ K6 y, r2 t
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    : h( y: k$ Z/ Y  B4 l
  219.       @hp_flow += 2  7 k  J( i4 C0 S' J3 Y. d& l
  220.       if @hp_flow >= @hp_image.width - @hp_range: F& @6 L9 @, ~7 J! h
  221.          @hp_flow = 0  
    + h5 W& M; U* e; n% T: P" N
  222.       end! f  U# h5 Z1 @' i' X! i
  223.   end    . n, C# ?. X2 Z: Z1 e" T0 }
  224.   #--------------------------------------------------------------------------
    1 T" ~+ s5 M8 Y, T" I& i; ?% h
  225.   # * Sp Flow Update
    ( ?( f1 b# ?+ c
  226.   #--------------------------------------------------------------------------# N1 {9 R$ t. T5 {
  227.   def sp_flow_update
    " A' a1 T2 `5 S, @: L0 F
  228.       @sp_sprite.bitmap.clear; i: F" E, M. |9 I
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp ; C, J' r2 L! R- n8 ?6 Q4 C
  230.           #SP Damage---------------------------------+ ]0 P$ q" p" h
  231.           if @sp_width_old != @sp_width! g* h( t9 i# C, Y/ ?# P) @$ m
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    9 @( B: @. R- t2 u( `
  233.           valor = 0.5 if valor < 1              
    6 \" P6 }7 d$ i  S- |
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  ) n5 E, f- L' U6 g. P
  235.           if @sp_width_old < @sp_width
    5 [3 U# T! H0 \+ b# J
  236.              @sp_width_old = @sp_width! g# a' h9 a6 x. q& K' u( j
  237.           end      & R* K+ L6 k' |$ D5 `
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height); b! U" C0 X' L- `
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) ) `$ h# q1 [8 X
  240.           end1 O+ b6 C. S( V4 g" ?6 B6 W
  241.       #SP Real------------------------------------' a0 J7 w2 l  c5 @1 ~
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    & R, Q- W0 Z- X7 F  V- S) Z7 y' i
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)* e5 U; d& P. ?, D% }; I
  244.       @sp_flow += 1  ; u3 d+ ?' Q' @+ b
  245.       if @sp_flow >= @sp_image.width - @sp_range
    ) r# a* w4 U, F% J; I
  246.          @sp_flow = 0  1 X6 h$ i/ Q1 F% h) R$ g0 s+ H
  247.       end
    ( V! _5 I# u4 @4 u- @; i
  248.     end            
    ) O& ?) U) l& o# v; l" s
  249.   end  y3 T4 H2 w/ S+ X/ B4 \! A5 M
  250. #===============================================================================
    2 U7 R& F  N3 n! [9 z+ h
  251. class Sprite_Character < RPG::Sprite  i3 W9 _0 \+ ^& }
  252. #-------------------------------------------------------------------------------2 Q: J5 }+ }3 u  k
  253.   alias :xas_emini_hud_init :initialize# G( s' w9 ]( r$ c/ W4 B
  254.   include MOG% Z9 U/ ~9 f+ [' u* `6 E
  255.   def initialize(viewport, character)
    2 @6 Z) G, m% Y: Q5 k' g4 D
  256.     xas_emini_hud_init(viewport, character)1 ~: E$ ]$ U: e" Q! b
  257.     @viewport = viewport
    5 r1 E. E0 k- L1 h, C! P2 U5 i
  258.     return if @character.battler.nil?) m4 |9 E$ e$ w) \4 S1 V4 T
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)- B. ?% A5 o9 r1 d& u
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    ( j! L8 o2 I4 h+ w% D
  261.     return if @character.battler.is_a?(Game_Actor)
    . D/ N" N' k! A/ ^% R
  262.     @bars = S_Hud.new(@character, @viewport)
    ! @# f1 w, Y0 t' y8 P
  263.   end
    3 X* H1 B* U! _2 \6 F1 V
  264. #-------------------------------------------------------------------------------
    0 k5 l0 X) `0 \
  265.   alias :xas_emini_hud_up :update
    ' i3 {% p/ d0 [; p; n
  266.   def update
    8 d" [8 u. U* i5 c6 @: K
  267.     xas_emini_hud_up
    0 [+ t( V4 p; W3 [( t! j0 H
  268.     return if @bars.nil?9 q; \: o: |3 l+ B- t) ^
  269.     return if @bars.disposed?
    9 D- |' ^, |% X$ _; @1 C$ E. _* ]
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    3 z) E) _% q# C- Q. c. h
  271.     @bars.visible = (dis <= RANGE)
    5 t; q/ {9 a( k" H* L' B# F
  272.     if @bars.visible
    $ c* H& Q% ^- R  J3 I/ ?
  273.       @bars.x = @character.screen_x# - @cw / 4
    4 k6 x. Q+ E9 a* p- i
  274.       @bars.y = @character.screen_y# - @ch / 4( x  w! H. y8 j; `: T7 v1 Q- Q
  275.     end& F0 K. O  ^! e" d# F9 n
  276.     @bars.update$ m7 d9 s  b; D+ ]/ |7 J
  277.   end" \/ m8 H, G+ B
  278. #-------------------------------------------------------------------------------
    & C" G+ q2 ~" y$ C: X
  279.   def dispose  n6 C( V7 ?+ R2 L8 q3 ]9 G
  280.     super
    % |, F$ @5 R) {3 ]$ b: N+ k
  281.     @bars.dispose if [email protected]?
    8 }8 E5 L! H1 T/ T8 ^8 R; \: P. |
  282.   end
    ( z; }3 y+ U$ e2 R" E
  283. end
    , ~5 C: N' F) v) J5 [1 m

  284. 5 W  X. ^  A9 }
  285. $mog_rgss_s_hud = true
复制代码
' I4 P; t/ I0 U' j3 P% H# O
. l# {; q# g7 A9 h0 l' {; ^
2 W1 d7 \: S) k
上面所說出錯的203行內容為) O0 N: Q! }# L# f) v3 O9 g$ H# f
@hp_sprite.bitmap.clear7 j2 ^1 c) p8 }1 l6 t" I
7 {, V7 H; V$ }
想知道怎麼解決
+ D, `1 z* J3 }) D  k  S, @% |; N# z" Y, ^% e
該腳本支持3.82
+ C' m  w0 ^. |9 A4 U, W4 ~/ [8 T( a+ v: K1 P
下面是圖檔,要塞在Windowskin下2 n1 Z7 {1 O! h7 b8 Y
+ r0 l+ g" o6 @; v
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) 2 R$ u% w2 R5 t, P

0 @; |3 U$ [0 G2 ]! o, B( [, e( B6 z' F. L* X0 f

0 s* x5 z1 ^' R2 F
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适! |; Q! \. ?# X( p- ]
结果尝试刷新了一个已经释放的图形
5 W2 V( t9 |3 ~( r0 Z0 G) a5 g7 d3 k! \+ J: t% k
2 t% c$ z! g' H/ L% A8 n3 }

& k7 ^- R9 a) D1 C) T虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    * C+ W0 u2 r! s/ X
复制代码
不要后面那个条件貌似就没问题了。0 q, K# i0 W) M* r- p9 Y9 e/ U

& A- B) n) w# v$ h) s
' P+ p4 y5 i% g/ g8 y4 V7 b 5 b' F+ }5 s. @6 {1 n

5 X7 \7 U7 Z( G! e  l
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
' S9 W0 S, g( O; \" h) f貌似是释放的条件不合适
% Z# V& ~; l/ h$ q) q: m结果尝试刷新了一个已经释放的图形
" s$ t& f, S5 Z: v, `
把後面那個條件弄掉後,的確沒問題了
+ q6 H1 o$ u) k目前從關頭打到關尾結束都沒再彈什麼錯誤8 R7 l1 L7 R; d+ y! P
非常感謝2 n7 C) ?4 t$ z4 I1 b) K- ]
/ x! [! R! T6 Z: e: Z& n
不過我是參照著別人腳本改的$ N% A7 Z1 a$ X- V5 ~- l- w: i
他寫的條件式也是那樣,但我用他的沒什麼錯誤
" Y; u- A* @" D7 N4 l: q不知道是怎麼回事
0 [, o' N3 q& P, z& F8 Z是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的# V( O2 e+ o8 ?1 w& a( M  P+ |$ D
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events* K4 K2 Z9 {7 _+ U* b, j3 X
嘛..这个数组吧..我在以前试写队友的时候关注过一点4 _7 ~) v- }, L" v5 d3 a1 G$ Z9 |
不知道XAS内部对它做了什么手脚还是为啥,
4 z) \9 z5 M( b1 \总有那么一瞬间,没有被消灭的敌人事件也变成了nil$ w# X- B4 s0 a% I
, v  X' {- f/ u
$game_map.events.values[@enemy.id].nil?- i6 w+ V# s, P$ f) K8 l8 C
因此自然而然的返回true并符合条件把图形释放掉了
. O) R4 V& L! T. \5 ~/ x8 v5 n- d, U. n/ b6 d& R( ~7 D
LZ应该有注意到吧,
+ H& U- z  r% z, ~) K9 [: e) {我测试的时候发现报错前几帧,图形会消失,/ e4 b! c, G2 [' g/ e
应该就是“误以为敌人被消灭”了。
: S& Q; h: u( T$ V9 `' R2 r% E1 P& I! g& A
受限于个人水平,至今无法找出$game_map.events的真相..; R0 |9 g, H0 F. J/ `; L/ X$ ?* E
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
1 p, r( v! Q8 Z8 ^7 i, J. f$game_map.events" X2 C8 k; g; H8 R# c
嘛..这个数组吧..我在以前试写队友的时候关注过一点/ p' x+ N- v# V8 G3 z
不知道XAS内部对它做了什么手脚还是 ...
" r# X( ~) y9 r4 b
當初我把那個條件式看了三遍,都不覺得他有什麼錯/ e  k/ P$ Z  U/ D  c
原來還有這麼深奧詭異的事XD1 x6 _* G4 Z! z% G# \
* i: K7 @( R: R
錯誤發生前的確會有圖形沒顯示出來
5 ~) i' ~6 a2 v/ T不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪.../ r( \$ W/ ~; a% [% ]: _! J
沒想到居然是詐屍了XD
8 u  P1 |% y/ _. {$ Q% r
2 R# z, }2 m  e! d9 W* m8 F不曉得3.91有沒有修正這問題...
# x. q8 D" M& d2 A8 }: i不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。( Z3 |7 D$ H! N- O/ n( u& [
! }) Q4 p6 q* L. L0 I
的确" a/ ?2 D! v) q" ]
用惯3.82之后想去整3.91觉得压力甚大..
% t" i, h2 X7 T+ U干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
14045
在线时间
22012 小时
注册时间
2010-10-24
帖子
312
7
发表于 2012-10-14 22:09:20 | 只看该作者
LZ是触手,鉴定完毕。
回复 支持 反对

使用道具 举报

双子人

梦石
0
星屑
3200
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。
$ K4 ?% X+ o; H) p3 C- B8 r6 \$ x( q- _. ~* q- Z! t+ A4 Q- l* [
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2026-6-15 12:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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