查看: 2156|回复: 7

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

[复制链接]
梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
回帖
416
发表于 2012-10-14 18:18:31 | 显示全部楼层 |阅读模式

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

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

×
這是我將官網的S_HUD修該而成的怪物血條
0 A7 f) ^& I& G$ M( n, m會在每隻事件怪物的腳下顯示
4 e+ [9 ~0 K  E8 u* f  i問題是不知道為什麼
$ P* {" |1 ^8 F$ g: [4 k7 c6 P: d% D有時打怪打一打會跳出* `* X. h: {: e8 e% Y# g& u% ]
---------------------------
  i. o9 s8 R' qXAS5 ?# @4 O2 f: W- `+ ?. ?4 N6 q
---------------------------6 u3 d* R& M( j
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。: T6 l; n8 `( R0 A2 l6 T
; F; H& h. o8 s
disposed bitmap
& b6 T; n2 y' V/ N( J---------------------------6 G& e# O- _9 z2 ?$ N# w
確定   
7 P) ^- K4 I$ d# W. F2 K---------------------------
, G: ^: R# U" z, c- ?. _  E3 X9 ^2 E6 G; t/ H, a
這是腳本
: M& y: Z& `. W
. w! Q1 C- |4 F
  1. #===============================================================================0 n5 K" i& T/ Y- G6 J
  2. # MOG - s Hud 1.0      9 M3 O  I1 @6 R/ N0 }% P' f; g; N
  3. #===============================================================================
    . [2 S" V  b3 |* z) j5 O$ }3 L
  4. # By Moghunter
    , D$ x& e+ s: _
  5. # http://www.atelier-rgss.com
    1 S; n& k7 A! T' V3 y
  6. #===============================================================================0 `/ V) g/ x# K: W% z$ o$ i
  7. # Translated by Calvin624 2 ~, V5 S/ e+ |0 V( _- b
  8. # http://www.xasabs.wordpress.com
    ; X% P" M1 ~- j8 _/ ]2 y1 R
  9. #===============================================================================  {& Z$ l& I, E
  10. ###############################-DESCRIPTION-####################################6 ], D' n& [# S9 g
  11. #===============================================================================
    1 Q( R0 r& j2 Q+ @2 B% Q% n+ [
  12. # Personal HUD – displays the HP and SP below the hero.# E! S9 q$ p) G7 [6 ]
  13. #===============================================================================" @4 F0 n) t8 M  G
  14. #
    # y6 ?9 Y' z9 I5 W
  15. # Graphics required:+ C& p5 P, S; i0 w( g6 z. B6 K: j) q6 u$ K
  16. # 1 [% `. K2 q9 F. S7 C2 p) |
  17. # S_Border_HP_Meter.png
    2 K; |) F, P- q
  18. # S_Border_SP_Meter.png
    / l! ^* p; r% x% o. K: ~, v
  19. # S_HP_Meter.png. p8 W3 `: }6 K5 u6 ^0 k
  20. # S_SP_Meter.png
    4 \/ c4 }8 j& ^5 i8 B/ j8 m
  21. #% H& _5 N! _/ g
  22. # All images must be in the Windowskin folder.: |- r4 [* H& o: T1 i. L
  23. #) U+ v% E! A* R3 d+ F
  24. #===============================================================================
    " j3 |9 x! [5 C1 ~
  25. module MOG
    ' n/ b8 D, _3 t9 q9 E1 P3 C+ m! K; M
  26. VISIBLE_DEF = false    n+ B+ h  `" c
  27. # Show HP meter?- }- m9 ^. P! R& c
  28. HP_HUD = true
    ! k6 }; K4 _+ n
  29. # Position of the HP border
    - p# A- @" M7 Q- B0 S6 Y. ~
  30. S_BORDER_HP_METER_X = -2
    , g, c% g: Q  n9 e1 x' s& G
  31. S_BORDER_HP_METER_Y = -2  
    8 F! z5 D/ T; ~4 U+ L5 @) y2 l6 P- s
  32. # Position of the HP meter% K' H5 E  e6 Y& ^, b- D# N
  33. S_HP_METER_X = 04 R6 B, y0 q, I- x& L" v7 a
  34. S_HP_METER_Y = 0
    + k/ z& U, v* _
  35. # Show SP meter?
    1 B( i9 |" G1 v) t. Y
  36. SP_HUD = true
    3 M) x7 S" H* U
  37. # Position of the SP border
    * @, X; S" H7 W! E  y1 p
  38. S_BORDER_SP_METER_X = 0
    1 F' q, J! T' `3 ^
  39. S_BORDER_SP_METER_Y = 10
    , O( K4 }, b; P* B
  40. # Position of the SP meter! f- R/ _  m" P) `: o& G
  41. S_SP_METER_X = 06 x. r6 e3 `6 D0 }3 G
  42. S_SP_METER_Y = 10
    + n/ W) H8 Z6 `7 G3 K
  43. # Switch to disable the HUD
    8 _7 ]  m4 _! o% b- H- X7 x
  44. DISABLE_SHUD_SWITCH = 5$ R% P) y) Z& E+ r5 j
  45. RANGE = 20/ o/ f: `/ p7 b$ V7 ?/ d
  46. end; n" }3 g$ O0 e2 i, C' e2 k
  47. #===============================================================================$ q8 Z! s3 }0 N! y" t
  48. # S Hud6 i! A1 M! J5 J4 g- _; T' V1 e
  49. #===============================================================================' O" a/ E% ~, E) {9 p
  50. class S_Hud < RPG::Sprite
    4 f( l( K; R, |* X
  51.   include MOG- ^: ^/ J# F! J5 L4 l) C' ]9 _
  52.   #--------------------------------------------------------------------------) R3 I$ }' F5 d2 d, Z
  53.   # * Initialize9 G* x2 P+ }5 q2 L% s2 f5 O
  54.   #--------------------------------------------------------------------------/ g9 @+ d4 j8 f* P8 r/ j& [$ v4 _7 p
  55.   def initialize(enemy,viewport)
    / h3 v0 I: u# T
  56.     super(viewport) 4 g! p/ W$ G0 ~" u, d; T
  57.     @enemy  = enemy
    7 c& p, e/ X6 t; e/ q* H& a7 I& r
  58.     @battler = @enemy.battler) L$ t2 H; k. f3 w5 z$ Z
  59.     @old_hp  = 0
    : [$ z* S+ H4 z- ?
  60.     @old_sp  = 09 l; P. b* F0 t" C* p. _
  61.     @old_vis = false1 O- ?5 b) @) [/ S/ ~
  62.     self.bitmap = Bitmap.new(100, 100)
    5 z% O2 [; r- Z. N0 Y* {8 m* J
  63.     self.visible = (VISIBLE_DEF)#false
    3 J2 S$ ~# \" l/ o  n) ]* E
  64.     self.z = 100/ E. {8 Q( r; _) W7 S
  65.     #HP Border -------------------------------------------------------------------
    0 z7 w! V1 z/ T
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    3 n, @4 k, k1 M7 V7 v& [2 e) ^
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)* C5 x2 N, I7 @! R
  68.     @layout_sprite = Sprite.new
    $ m' V' d; U* [; A: r( D
  69.     @layout_sprite.bitmap = @layout_bitmap
    7 k: i9 y- e( X; Q
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)7 M, G& S1 o7 b: G2 ?% e  g4 j" Z
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      * N- X, ]5 [& B. o" ^
  72.     @layout_sprite.z = 5001
    7 i# c# S, {9 P( q" q+ m. U1 n( M
  73.     #HP Meter ---------------------------------------------------
    - k1 w* p4 O- ~1 q
  74.     @hp_flow = 0$ E) M4 a5 v0 q' |+ e) m! v. Z% i  u" z
  75.     @hp_damage_flow = 0
    . N1 {0 Q% }" D4 c
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    8 ^4 }: S9 u  t" Z. d" Q+ w
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height), V2 {4 U, p( W% F
  78.     @hp_range = @hp_image.width / 3
    - Q6 c+ ]- H1 k
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    . B! g6 Y& g+ ]$ O' o
  80.     @hp_width2 = @hp_range / 2
    ) y2 J5 x  W3 b7 f% K  I
  81.     @hp_height = @hp_image.height / 2/ u1 |' G% D3 @' F
  82.     @hp_width_old = @hp_width: t5 \$ e8 h0 a5 U: u! X
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    ! E2 e9 z9 @2 `/ f! C1 I2 z
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    . T3 {! n( C. S' u! Q) s% j: n
  85.     @hp_sprite = Sprite.new' E) M: H8 a( f
  86.     @hp_sprite.bitmap = @hp_bitmap' s6 Q( p& w  K
  87.     @hp_sprite.z = 5002
      T* j. P3 q/ v
  88.     #SP Border -------------------------------------------------------------------; m) k3 A; C+ M  z5 q
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    0 s  d3 f, w) w1 @) A" K. i# ]& R
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    " u  ]' ^2 m+ w2 C  J
  91.     @layout2_sprite = Sprite.new
    . P4 ~0 U, C# A
  92.     @layout2_sprite.bitmap = @layout2_bitmap: c' c5 b/ X; Q
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    ! Y* Y. h+ t: s  m
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      4 @' P% q$ \, i, C" l3 n0 @
  95.     @layout2_sprite.z = 5001   
    , z0 `! G  g! e7 p4 ~
  96.     #SP Meter ------------------------------------------------------1 N+ _% u2 l* L
  97.     @sp_flow = 0: Z6 w$ W9 G- u7 ]1 K; h6 v
  98.     @sp_damage_flow = 0
    . S, ^( m8 W" Z6 K# k* p* ^
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")8 B# ^# L5 Z  ~7 C! J, {" d
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height). H- O& Z1 O3 E. T0 A8 V" i. f
  101.     @sp_range = @sp_image.width / 3
    $ b; f6 D7 d4 n3 B' m7 o4 @2 Y
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  ! q% Q' c% r. N6 S7 o4 _; f
  103.     @sp_width2 = @sp_range / 2$ z6 `9 g; I) w8 D' t+ o  }( k5 _
  104.     @sp_height = @sp_image.height / 2
    , ~6 |2 ~) G5 F( D2 V" X2 ]2 \) Y
  105.     @sp_width_old = @sp_width
    * l+ u9 w/ Y( ]; f1 a
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    0 ]8 m3 a1 X8 _0 L6 e2 e
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    1 f9 r' }- ^; ~. J" E* Q7 s
  108.     @sp_sprite = Sprite.new
      x5 A' Y- Z1 n4 o! W4 S
  109.     @sp_sprite.bitmap = @sp_bitmap
    4 i. T4 h1 a+ s6 m
  110.     @sp_sprite.z = 5002
    3 w0 l- [) v! U4 a- @2 u) {
  111.     update9 d( |( L: P+ Z- ?# p" v
  112.   end
    $ O5 ?1 G0 S# e- Z
  113.   #--------------------------------------------------------------------------
    ' X& V7 R* L( c# B
  114.   # * Refresh+ v  Z, x8 u+ H* d8 v# a2 H+ B! U5 {
  115.   #--------------------------------------------------------------------------1 R. t( l7 o! v
  116.   def refresh, n6 T4 f. @" H/ [% y
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    2 V. N  _& V% V" V9 q" j! i" y
  118.     self.bitmap.clear+ O; Y1 h. w6 M5 E+ Q1 k
  119.     @old_vis = self.visible
    , ]  R: N  M2 i+ H/ K
  120.     @old_sp = @battler.sp
    # a2 S- O; n; ~2 v& A: S$ F
  121.     @old_hp = @battler.hp
    ( C7 l! F$ X; K( [8 F, t( I
  122.     hp_flow_update8 B& H  M7 d( ]
  123.     sp_flow_update4 ?3 A6 z) _6 s* U5 {# N' P
  124.     hud_pos_update
    ! e2 c  v1 G) ~% U
  125.     visible_update+ G3 y. }5 O4 P$ f
  126.   end; t9 H2 g* K$ g- F7 C5 D, ~
  127.   #--------------------------------------------------------------------------; _8 q5 F! ~6 B# m
  128.   # * Dispose$ |* Y6 x% w8 s- k0 q% c. X, M
  129.   #--------------------------------------------------------------------------
    , _) Y. V( S, h  R& N
  130.   def dispose
    , @! q; O: ~" p: K3 L
  131.     #HP Meter Dispose
    ! y+ E* y2 d, f- O4 k5 D
  132.     @hp_sprite.bitmap.dispose
    ( ~5 j8 s* N- D4 {8 P+ B  R5 R7 c
  133.     @hp_sprite.dispose
    9 Z, a4 d% j: f0 W$ V" ?
  134.     @hp_bitmap.dispose
    5 N% O4 P/ J+ K3 l8 V, F; U  X
  135.     #HP Border Dispose
    & t% H# `: d3 w- k4 L: @
  136.     @layout_sprite.bitmap.dispose
    8 M9 P  n% S. f1 z
  137.     @layout_sprite.dispose
    + S' r- [+ Y+ l& ?' q. S
  138.     @layout_bitmap.dispose
    $ z. y0 b7 ?( z' ~5 U
  139.     #SP Meter Dispose
      S# H6 o# a/ ^! e5 r$ V
  140.     @sp_sprite.bitmap.dispose
    / x8 n3 }8 b0 J1 h
  141.     @sp_sprite.dispose" V. o% t; T5 e; Q
  142.     @sp_bitmap.dispose
    2 Q$ H; B0 [' Q- j5 Z4 y$ d( g0 D
  143.     #SP Border Dispose
    8 g4 i# j, Z  w3 K2 i5 S* @
  144.     @layout2_sprite.bitmap.dispose$ X' e+ g( J) L' R% e
  145.     @layout2_sprite.dispose
    3 t  g, B% k7 h1 E, R
  146.     @layout2_bitmap.dispose
    2 }: @* l' w' p! k4 p
  147.   end
    - i. r3 T4 f1 `$ W& y
  148.   #--------------------------------------------------------------------------1 ]& |, @* A* c' P$ |) p8 a7 K
  149.   # * Update# I9 g" c6 v1 \& m, ]. G' ]
  150.   #--------------------------------------------------------------------------
    & A8 I5 `; c3 A( l+ G! S
  151.   def update2 \( O! q3 O4 i9 t* k1 I
  152.      @battler = @enemy.battler . P- ^3 J: K6 p" d- y, t  k
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?  P% ~# A1 F7 e
  154.      if self.visible/ d1 @& p0 p) a/ d
  155.        refresh+ p1 G! Q5 X9 ~+ j$ y
  156.      else
    6 c7 c3 @$ V: I# _, e4 w. k& ^
  157.        self.bitmap.clear- d% V, f" W& r6 v( i
  158.      end
    # _# Q# A3 |. W& H: q8 B7 R
  159.   end
    " P/ n- j! z1 \; h7 t7 ~, S
  160.   #--------------------------------------------------------------------------
    , i4 Y+ Q; k) [$ l
  161.   # * Visible Update$ p/ @$ ]( O% e; ^
  162.   #--------------------------------------------------------------------------+ L: A9 k- P, V% z2 P5 q2 ]
  163.   def visible_update2 s) N5 A( Y/ e  p( v; B+ r/ p1 B
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true4 t  q# m3 O, F. T6 H" }
  165.        @hp_sprite.visible = false% |7 @: x- A. p7 M; _9 k5 q: G: i" E
  166.        @layout_sprite.visible = false; @. m% y( w( W5 H
  167.        @sp_sprite.visible = false+ E; e" Y& e  b- j
  168.        @layout2_sprite.visible = false! C7 W, P8 a, R- Y8 N# r7 M
  169.     else, N0 I, k' W- ?( U  I
  170.        if HP_HUD == true
    ) F  I5 [" S, p4 Z3 `
  171.          @hp_sprite.visible = true
    9 Q0 s  N. q" d( H2 x  \$ V5 N8 Q
  172.          @layout_sprite.visible = true
    0 g6 p. G4 R+ m. M
  173.        else3 O7 v7 l5 _+ E% p* l
  174.          @hp_sprite.visible = false' F6 {7 x( ~. G' P+ H
  175.          @layout_sprite.visible = false* {' v( v: Y3 I0 c7 X( t# x
  176.        end  
    # V0 E% B% N2 ^/ W
  177.        if SP_HUD == true
    ! P5 Y: r' e9 Y0 I; Z. z6 s
  178.          @sp_sprite.visible = true
    $ x8 _# O0 v. S$ i# x) r$ Y
  179.          @layout2_sprite.visible = true
    3 e( S" L  G' V
  180.        else* s% W6 w2 _2 _6 P7 U9 C1 f0 ]- U1 G# X
  181.          @sp_sprite.visible = false9 ^# s0 y2 i# H* p
  182.          @layout2_sprite.visible = false' C- D$ s9 I& k; f* g6 d* i* A
  183.        end
    ( z7 B( f, ~+ Q8 T) F2 z
  184.      end  
    % p2 z0 U6 _% u0 ?+ h# x: {0 e
  185.    end
    0 \3 q7 A" ]3 _2 X. O" o
  186.   #--------------------------------------------------------------------------; g; c( e6 M: Q5 {9 [7 ^( d; \8 T
  187.   # * Hud Pos Update1 `; ]/ D, o% }# G9 R# e; J
  188.   #--------------------------------------------------------------------------7 q5 I7 e* |- T' z
  189.   def hud_pos_update
      q, [& ^7 _1 g
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    9 g- b0 Z0 s$ j2 W- d+ h
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  ' [$ i3 N# i& z! m$ x$ x+ m
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
      V; w+ J) ]# r4 g8 s( c$ J
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y * b$ C: N5 s) S+ R2 D/ Q% ?
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X+ f) y$ `$ P) \) E4 L
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  4 U: b6 h' S3 V
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    3 w4 L1 p; m# ~" K4 O
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     . T0 l0 r6 B3 \
  198.   end  
    . L1 C$ l" M8 _- R+ k
  199.   #--------------------------------------------------------------------------
    0 [! E' d- r* }" ~+ A
  200.   # * Hp Flow Update# A. w) q' t1 n; \$ V6 r
  201.   #--------------------------------------------------------------------------4 x9 F# L2 r1 c& d& ?& v
  202.   def hp_flow_update
    / c, G; e& s, Y* [' F4 Y
  203.       @hp_sprite.bitmap.clear
    4 o: u7 R' }3 I  \4 I
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    ! J' L9 \1 x) f. H* {2 Q
  205.           #HP Damage---------------------------------1 ^# u+ [3 C- Y
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    " f- e& Q# z3 t" H: H7 s
  207.           valor = 0.5 if valor < 1         
    4 I9 ]& O; s" a5 q, x. O% {9 l! L- \
  208.           if @hp_width_old != @hp_width2 N+ Q7 c' ^& Y& a
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    ; _5 X/ h7 S  B8 j
  210.           if @hp_width_old < @hp_width / k  V0 V# u- p$ \  a
  211.              @hp_width_old = @hp_width
    - O# Z! D0 M- A( b
  212.           end      9 i5 w" W! y1 n$ x
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    ) P% [  D$ m+ b" B! E
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    # G9 S& C5 X+ j' A
  215.           end        
    $ D) B9 o( v+ C. A. B
  216.       #HP Real------------------------------------7 C* C1 Y! t, Y5 t. H7 L* f$ U1 r
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    ; t: l) ?) x/ U7 P4 h7 Z
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    ) p4 T. @  J, D2 V0 Q1 _
  219.       @hp_flow += 2  
    . T& A6 M5 y$ P6 d+ ~
  220.       if @hp_flow >= @hp_image.width - @hp_range) u" Z3 p& h3 o$ A8 [" E
  221.          @hp_flow = 0  
    ( o+ I# z/ Y) P
  222.       end4 A$ N8 |: J4 P7 G: G# L+ a
  223.   end   
    4 h2 r+ d" W, M+ R1 q# U
  224.   #--------------------------------------------------------------------------) j- h2 f: M% r, y0 y
  225.   # * Sp Flow Update# k1 K6 }* `, }! l
  226.   #--------------------------------------------------------------------------6 ]8 E5 u- \6 d
  227.   def sp_flow_update, l4 [; x. I, A/ {- e* o* l
  228.       @sp_sprite.bitmap.clear8 b9 q4 U7 d0 d
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp $ a5 h4 X2 q9 I. B: d2 o9 p
  230.           #SP Damage---------------------------------6 D. o- m/ _+ s
  231.           if @sp_width_old != @sp_width. l% z0 S3 `. y1 c! M
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    * K& I8 Y2 n: o# s+ @- I) m
  233.           valor = 0.5 if valor < 1              9 B, @: J. ]4 Z, J4 S) j: B, u1 W
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    / |& f& b: e- a$ a# f" ?
  235.           if @sp_width_old < @sp_width
    ! R- {1 f2 a2 R/ l" F0 B" j; q( r
  236.              @sp_width_old = @sp_width9 s  y/ J+ V3 m) \  F' A
  237.           end      7 Q2 e& ~& U) Z: n/ w. l9 d+ e
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    9 ]0 u& O) U7 f5 ], e, a
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    8 x  n% U, ^2 h: e3 G4 g8 G
  240.           end
    ! v# q" ^9 b, ]- w5 q6 L5 I6 w
  241.       #SP Real------------------------------------
    ( v' d4 y- ^, o2 L3 j
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)) B$ y( p4 q: w: o6 |6 }
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    ! {: Q& ?( c/ i7 ~9 f
  244.       @sp_flow += 1  
    0 c/ _& H  k! J5 E+ o* ?
  245.       if @sp_flow >= @sp_image.width - @sp_range- a$ x' \- Q$ N
  246.          @sp_flow = 0  
    % ^, Y, d& i0 I9 q
  247.       end
    , g/ x  c/ ]5 U9 M' i. G+ H5 T
  248.     end            , _3 Y! ]3 m7 c% c& {
  249.   end7 W. T7 p$ T( F: ?" A, r2 n6 e- E
  250. #===============================================================================
    6 D( q# ?. ~6 `% {1 v/ A9 `
  251. class Sprite_Character < RPG::Sprite
    , V/ c7 h0 {' Y" v* l" Q" X; S
  252. #-------------------------------------------------------------------------------- @: c6 p7 C3 k; L% P
  253.   alias :xas_emini_hud_init :initialize* T) k8 P5 b7 Z
  254.   include MOG, _0 F; R, O5 V$ W' e) t
  255.   def initialize(viewport, character)7 i$ w4 ~- }6 J2 B
  256.     xas_emini_hud_init(viewport, character)6 C( X3 H% u/ J4 l) G- g3 r2 \9 G
  257.     @viewport = viewport/ J( o$ \- ~, H! r" l; O3 W$ g. H
  258.     return if @character.battler.nil?4 `: k, j. N2 p4 _( P
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    . c* y% y8 Z! J  _
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    - I3 d2 f7 J8 p* _: v
  261.     return if @character.battler.is_a?(Game_Actor)) {! o5 F- I: Q' l7 ~$ ]& f
  262.     @bars = S_Hud.new(@character, @viewport)
    $ Q/ z) E3 G) T* V
  263.   end
    1 y: p" B0 Z$ g
  264. #-------------------------------------------------------------------------------$ v6 `5 l* A) D  X
  265.   alias :xas_emini_hud_up :update9 n" x& r, ^1 A6 P; ?2 }' s
  266.   def update
    ! L5 {! E2 P2 m$ S$ s; u) @/ E
  267.     xas_emini_hud_up3 c- T% ^$ k6 B" `; ?: H
  268.     return if @bars.nil?. ^: N+ g; h; x: p) p
  269.     return if @bars.disposed?0 b6 R) U9 s& G$ G5 c
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs3 l8 ?, K- f4 l9 H4 {
  271.     @bars.visible = (dis <= RANGE)5 u( ^' d, T$ a& k. K
  272.     if @bars.visible* y  T: _( G+ W1 B0 u; E6 R! e* g
  273.       @bars.x = @character.screen_x# - @cw / 4- {" j' n* s# x% n% T
  274.       @bars.y = @character.screen_y# - @ch / 4
    & y+ y2 D9 }0 m9 C: _% w7 y" i+ a
  275.     end
    + J* E9 g3 `# Y; @; W
  276.     @bars.update% n! l# {$ [. b+ e5 _6 _2 K. C
  277.   end
    ) N: b) }0 F5 u; z! F- ~
  278. #-------------------------------------------------------------------------------& j' s) K! w, d; v" N- ^
  279.   def dispose
    . Z6 b: v' t8 P" v: q: Q8 C& |
  280.     super
    " G8 d& M2 J5 B  X5 {. @% m3 u
  281.     @bars.dispose if !@bars.nil?, B4 |: Z. w! _0 l) U- _* N
  282.   end3 F* y0 F0 `1 y4 k' o7 ]( J
  283. end
    % J4 O6 [7 B1 Q! ~' }
  284. 6 `3 M# f, E& V- F* b2 _2 v
  285. $mog_rgss_s_hud = true
复制代码

# S7 K3 T0 Y  V' l8 K" }! e2 H5 B; R% @6 `' |

4 C; h8 a& S5 x上面所說出錯的203行內容為
9 L( R' i* i  R/ t+ a+ ]$ F@hp_sprite.bitmap.clear" _2 q3 i8 Z/ \! m# T3 \

! K% p4 ^+ o' y想知道怎麼解決% J& \! `& T( _5 q

; L3 P5 y1 ?* r該腳本支持3.82
1 c+ {+ P4 d" M) p0 P/ K" V3 V: K# e+ _' D  D9 w' m+ u5 L' q. r
下面是圖檔,要塞在Windowskin下& k/ E  l& Z" w) z+ x1 [- }" s) _1 L, s

3 R: [& c- l. T7 l S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
4 v  S% S0 O' \" A+ e) B0 B- r8 E+ A$ J& w

& q/ I7 k" u( k. Z5 S" l
# `) [9 K. X& y; V4 @) i6 i
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
回帖
571

开拓者

发表于 2012-10-14 18:55:09 | 显示全部楼层
貌似是释放的条件不合适) U1 V) L6 @' x. d' L% j
结果尝试刷新了一个已经释放的图形
% G1 q7 k$ V$ p. ?0 W: U- Z- r3 u! z5 S" z" I
/ W: C" n. D+ F5 s2 K8 ^, ]
) c4 ]4 _& Y/ E6 L
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?7 a& [& f( [! V- m4 f1 E' i5 J
复制代码
不要后面那个条件貌似就没问题了。, ^. q. S4 I* r+ y. @2 M

8 i, V, g/ g( u9 r/ U3 D* ~1 N  O- g9 g% [

) w) t7 U* W2 B9 g' e& Y) [& _" ^  X# N  r9 [) e3 m% p9 r* |  P
往事简直不堪回首,稍微做点想做的事吧
回复

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
回帖
416
 楼主| 发表于 2012-10-14 19:12:00 | 显示全部楼层
ML4455739 发表于 2012-10-14 18:55
9 {  k0 Y! h7 A& _" B3 b貌似是释放的条件不合适' x/ f7 v2 P4 s1 m" ^; n# x
结果尝试刷新了一个已经释放的图形

  ^4 h9 ~1 U9 O) `/ N" ?把後面那個條件弄掉後,的確沒問題了
6 N) J4 ~6 K3 A5 q/ j6 @& H9 n5 P目前從關頭打到關尾結束都沒再彈什麼錯誤
, ~/ c8 I4 F; ?$ N9 D4 m非常感謝: h- y5 Y$ f% X8 o/ c' v! b# D
0 H, x7 g+ @( i7 o! |" o4 h
不過我是參照著別人腳本改的, N$ X& N9 s( z+ X. ^3 K
他寫的條件式也是那樣,但我用他的沒什麼錯誤
$ m( V. v1 ^& G! X不知道是怎麼回事
+ k5 I6 J; o4 M) s6 ^2 m2 v% m是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的6 h" W0 i! ^' r
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复

使用道具 举报

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

开拓者

发表于 2012-10-14 19:19:14 | 显示全部楼层
$game_map.events3 `. t/ e( @+ V4 m$ q( C
嘛..这个数组吧..我在以前试写队友的时候关注过一点# |1 O( T7 Z. I% m3 R& g
不知道XAS内部对它做了什么手脚还是为啥," b! ]. S, O& a6 f; X
总有那么一瞬间,没有被消灭的敌人事件也变成了nil" w5 H3 ^1 k! `1 H+ C
% P; C* R' Y9 [
$game_map.events.values[@enemy.id].nil?
% H/ o+ M' B$ D1 h: j因此自然而然的返回true并符合条件把图形释放掉了, s. Q% h# A; b& }
  R5 {6 F: n! e# L8 _" P
LZ应该有注意到吧,9 D) n# o, s' n- W, z/ [( m
我测试的时候发现报错前几帧,图形会消失,
3 Q: U3 X9 K3 l5 ^: _应该就是“误以为敌人被消灭”了。3 F! F% O6 ?' f  h' s
3 K* B" W: }6 f( u: z( w6 [) {$ H
受限于个人水平,至今无法找出$game_map.events的真相..
$ @) q/ Z3 H( t6 |# v
往事简直不堪回首,稍微做点想做的事吧
回复

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
回帖
416
 楼主| 发表于 2012-10-14 20:06:40 | 显示全部楼层
ML4455739 发表于 2012-10-14 19:19 2 S" M& S- I$ }$ `% `
$game_map.events
0 Z! n* c# [1 Z- \嘛..这个数组吧..我在以前试写队友的时候关注过一点( q3 I+ B# O1 E( [+ e2 T1 f
不知道XAS内部对它做了什么手脚还是 ...

. C0 W2 f: O4 J  z" q. \/ e當初我把那個條件式看了三遍,都不覺得他有什麼錯
& k6 i: v. G; `8 E原來還有這麼深奧詭異的事XD" H+ z  i' `0 M2 e  x4 |

" g5 @: c$ e- i$ J% W8 v錯誤發生前的確會有圖形沒顯示出來; b  _9 M5 k9 p
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...7 |0 D, F, \% ]# x! x) E  \) k+ c
沒想到居然是詐屍了XD
# }. v4 q7 }# k( F( l2 S6 f9 D9 K/ N
不曉得3.91有沒有修正這問題...
: ^- {3 s2 V/ g6 h5 B不過3.91改太多,實在有點沒動力去剖析他...=___=
回复

使用道具 举报

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

开拓者

发表于 2012-10-14 20:09:57 | 显示全部楼层
恩。。没问题的话姑且这样吧。: E. g  V  S0 W; k8 N" G

9 O3 q3 y& J% m8 A的确
9 Z8 s0 s$ u: Y$ ^9 n& ?用惯3.82之后想去整3.91觉得压力甚大..
% U5 ~" m3 x# f) U' @% L  W8 g干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复

使用道具 举报

梦石
0
星屑
14555
在线时间
22062 小时
注册时间
2010-10-24
回帖
302
发表于 2012-10-14 22:09:20 | 显示全部楼层
LZ是触手,鉴定完毕。
噫
回复

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

发表于 2012-10-16 12:37:42 | 显示全部楼层
在那个脚本里面找一下“dispose”。7 R. O, @! q. h8 ^4 V# _

' \) J" J5 `$ f, L+ w% Z然后加一个判断处理的。(我记得有一个disposed?)
回复

使用道具 举报

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本发帖返回顶部