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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
9 a! y% q5 z0 T0 B- R會在每隻事件怪物的腳下顯示! |( m& H- Y5 ^( ]* k" i
問題是不知道為什麼
8 W( H/ l& V% O- h' b6 Q有時打怪打一打會跳出3 _+ x& T/ `( X' b; U: P
---------------------------
9 _2 v" E; |) Q0 b9 \XAS+ W6 S* S$ s3 u1 o
---------------------------
/ H: o; {) V; j% M8 t+ }脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。8 Q* T% O- H, r( r" j, M6 M

* e& b+ z" s% l% N+ vdisposed bitmap0 ]- h' V6 _: @8 i2 u9 H9 r
---------------------------
9 ]- e4 r, K, c5 Z# c4 r3 j確定   " {9 F, k  g3 {
---------------------------. ]; |- ^4 f4 q3 X1 x

3 {2 K7 Q( l9 j這是腳本
% X* c4 q/ j, o! q5 q5 H, m8 K9 Y  p0 q! K# ?5 y
  1. #===============================================================================
    % L6 V5 x' _; ~4 e
  2. # MOG - s Hud 1.0      
      P2 n3 L. l: n1 G0 G7 l7 O
  3. #===============================================================================
    2 m( s- m$ M. N4 ], S% U) C2 T, b
  4. # By Moghunter
    9 a& U6 i% @+ J" M! y; Z
  5. # http://www.atelier-rgss.com+ e& q. r" Z0 f4 o8 u8 w' q
  6. #===============================================================================
      @) W. Z2 d9 l6 }
  7. # Translated by Calvin624 3 r* F, g* G" ]6 l1 R
  8. # http://www.xasabs.wordpress.com% q& d$ T2 A4 Y' ]4 X
  9. #===============================================================================
    . i. q! t  H3 z/ |
  10. ###############################-DESCRIPTION-####################################: B! c( {+ L8 H
  11. #===============================================================================
    4 c4 p$ q' M& d  K
  12. # Personal HUD – displays the HP and SP below the hero.6 q3 D6 ^6 H+ d
  13. #===============================================================================
    7 l1 g& l4 a: T& f, u0 S
  14. #- M% b0 o  s0 _* u5 c  ]! V
  15. # Graphics required:; {, c, A1 n& x& [3 N, m- q
  16. # - G* z; f$ m* q& Z# ]! ^% a' }
  17. # S_Border_HP_Meter.png
    : q% Y9 B7 a0 Q+ e  L3 n
  18. # S_Border_SP_Meter.png
    2 A2 f/ V* [7 ?! K
  19. # S_HP_Meter.png$ `6 v+ Q& X. C  h+ x
  20. # S_SP_Meter.png
    / @1 F/ ^6 }7 f5 B, i. o
  21. #4 M, L) p$ E2 j# c( E0 ^
  22. # All images must be in the Windowskin folder.4 @; I. f8 F9 D# U* Q: [' L: b
  23. #
    0 p( P, K; \$ M: z
  24. #===============================================================================
    + T0 ^7 I, f4 ?7 H% y. x
  25. module MOG9 V9 c' }+ w1 {( X: y; _; I
  26. VISIBLE_DEF = false  9 u) S* ^6 `* _2 K
  27. # Show HP meter?
    % a4 Y" P  s0 t2 V5 R$ y
  28. HP_HUD = true
    $ ^# p0 v4 E$ g/ Y( R
  29. # Position of the HP border+ f7 h  v3 W/ D) K  a; ]
  30. S_BORDER_HP_METER_X = -2; m3 M$ k) R; Q' P
  31. S_BORDER_HP_METER_Y = -2  & n6 l( t# C  u/ j2 T, |8 f
  32. # Position of the HP meter
    , [% h& O8 p- \* j
  33. S_HP_METER_X = 03 r) r( m; W7 ?5 J7 s3 Y2 k( e' z  K6 ^% }
  34. S_HP_METER_Y = 0
    ' c7 N# H5 g  x7 R
  35. # Show SP meter?
    * M* F* z& ~% A2 _; v
  36. SP_HUD = true
    + {* C! A. t. n2 B2 h$ s
  37. # Position of the SP border( G" r& |: v9 x& g4 X* V
  38. S_BORDER_SP_METER_X = 0/ e  p$ ^8 H8 j6 s. f
  39. S_BORDER_SP_METER_Y = 10 7 r* H  g5 R3 a$ I& O' v( i9 F
  40. # Position of the SP meter  Y2 r2 Y' s! w- M
  41. S_SP_METER_X = 0
    % Y; D- I% g8 B$ \* W
  42. S_SP_METER_Y = 10  P% \  T; [1 U+ C' g
  43. # Switch to disable the HUD
    3 c0 g7 ]% j0 K' {! d, ~: V- |
  44. DISABLE_SHUD_SWITCH = 5: i/ S! A* s" e  r
  45. RANGE = 203 u4 ~/ y$ Y, K: o7 f" }8 f
  46. end
    6 p3 u7 z0 D9 c8 W8 i: k+ \
  47. #===============================================================================
    8 P5 ]# d+ [* @0 g) z% z
  48. # S Hud* ?' N  c( M) ^8 u, i* ~/ c
  49. #===============================================================================; B" h$ \2 g- i' y8 I
  50. class S_Hud < RPG::Sprite7 {1 |; L& G; s
  51.   include MOG
      a# g3 w) J8 i" q
  52.   #--------------------------------------------------------------------------0 }7 J, ~; k( T6 r
  53.   # * Initialize
    5 J9 R% a3 j" Q; p/ p0 i) C# t
  54.   #--------------------------------------------------------------------------( `$ s+ k7 L$ _/ X
  55.   def initialize(enemy,viewport)
      e/ [4 ~# t" [
  56.     super(viewport)
    % ~' l6 P- O+ E/ M
  57.     @enemy  = enemy
    4 z3 K9 \. S# j) f" I
  58.     @battler = @enemy.battler: S! x; N+ e( j) g8 n
  59.     @old_hp  = 0
    $ _2 _* S9 m2 m( p/ [) g$ f
  60.     @old_sp  = 0" n" [! d% F' C# O
  61.     @old_vis = false( L. m3 M. t* t. k. J+ ]' R
  62.     self.bitmap = Bitmap.new(100, 100)
    & t; n+ S6 Y% z: _9 a
  63.     self.visible = (VISIBLE_DEF)#false, m" \( _, w- u% P
  64.     self.z = 1009 h+ j) I  E' E$ E
  65.     #HP Border -------------------------------------------------------------------
    0 j/ |9 H9 I5 V
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")/ k% c4 a! ~: H
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    1 {1 ]6 t% c& K+ G1 _* s& |
  68.     @layout_sprite = Sprite.new
    * w2 v3 x2 I4 v6 S7 e( b* O
  69.     @layout_sprite.bitmap = @layout_bitmap5 w! w5 m/ G9 c% n6 ]  s/ X
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)/ ]5 h& P5 v0 Q0 T
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      " Z0 @' H  A" M) B" {! v
  72.     @layout_sprite.z = 5001  S# V2 A& H# k' V
  73.     #HP Meter ---------------------------------------------------0 C: O$ M, z9 ^' `: ?
  74.     @hp_flow = 08 l" L, _$ Q# h) S
  75.     @hp_damage_flow = 0( G" m/ {! ]$ M0 u+ N
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
      R5 Y4 t- K) W. x  D9 Y7 _$ N1 s
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    7 ?9 }9 [2 V6 S7 O
  78.     @hp_range = @hp_image.width / 3
    ' b: {; u+ x/ G) r
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    : {* f/ X9 O8 e5 J7 t$ H% I. E
  80.     @hp_width2 = @hp_range / 23 T4 I2 y/ n; ?. I. f
  81.     @hp_height = @hp_image.height / 2
    " H5 S" s/ }2 i% y# R& p
  82.     @hp_width_old = @hp_width
    9 E8 j0 Y' D% p6 {+ n9 S1 ~/ l; L" ]
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    # l0 H) u1 I  {- J+ e. Z1 M: L( k
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)   j2 A# u& h' v$ `$ ?  {9 I
  85.     @hp_sprite = Sprite.new. v6 |" |& K! p! y3 j% i$ n  k4 v
  86.     @hp_sprite.bitmap = @hp_bitmap
    + P4 B* D+ I! P+ x  a- H
  87.     @hp_sprite.z = 5002* D3 e3 }+ |$ U# [
  88.     #SP Border -------------------------------------------------------------------
    2 V  d6 C& m- F% h/ e1 {0 `( q2 _/ q
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")1 k: q+ t( p, ^& `: A& k
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    - Z' z1 K, G0 t4 ~$ m9 s0 t
  91.     @layout2_sprite = Sprite.new7 a7 s$ k5 ?6 E! h1 \
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    * d1 b* U; k6 t7 @0 L, v7 o
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)0 Q% x- r# |' O0 B2 {& b
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    ( w8 z) R; y' |9 b/ I) u. I4 X
  95.     @layout2_sprite.z = 5001   
    : u2 N4 ?( \  G3 v) T# X
  96.     #SP Meter ------------------------------------------------------
    3 X5 n5 ^9 T5 V1 [6 y" B
  97.     @sp_flow = 0
    " Z1 J5 s3 O+ \$ o) b7 }, r1 H7 N
  98.     @sp_damage_flow = 0
    0 d! x( A, x% u2 n$ A
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")/ }% t# d5 I1 r: f# }/ q
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)- e# e1 b0 C$ c( C
  101.     @sp_range = @sp_image.width / 3
    9 R! p  Y/ B0 ~% y4 C
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  % L* d6 g1 g9 o/ o
  103.     @sp_width2 = @sp_range / 2+ J# x# [' Q; `! _" `- g& J  F
  104.     @sp_height = @sp_image.height / 2# ]5 [- o% t- G1 n( n
  105.     @sp_width_old = @sp_width0 B# k! A" K! J/ F$ t, {0 s
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)2 e9 ?, d* W8 ^
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)1 k9 }7 Z8 |6 m2 f+ Y+ t
  108.     @sp_sprite = Sprite.new
    8 x- d5 f* o6 j! D( x* A
  109.     @sp_sprite.bitmap = @sp_bitmap& v- W  N$ z/ I+ r8 P; U$ T
  110.     @sp_sprite.z = 5002
    ! V9 h! T  N) _8 O% T4 F+ Y
  111.     update
    4 ~! g: H3 [2 A. O1 y
  112.   end% q* r9 F  l# [6 o4 U) Y
  113.   #--------------------------------------------------------------------------
    / i* U, H9 N' L" H0 x
  114.   # * Refresh
    ! L0 @" T6 m. R
  115.   #--------------------------------------------------------------------------
    % q/ e% c- K1 [1 d3 V$ c' ?* \
  116.   def refresh8 t6 _- i' n: J
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    " W5 b3 [* j7 t. b
  118.     self.bitmap.clear0 D8 C/ u$ H( ^4 n+ b* T
  119.     @old_vis = self.visible5 \1 G. m, x+ m& q; B
  120.     @old_sp = @battler.sp; b4 h' B0 R* _0 u0 v
  121.     @old_hp = @battler.hp
    # D3 |/ ~7 O* s. R: F& J
  122.     hp_flow_update
    4 }3 J" h' g! J
  123.     sp_flow_update
    # d' z  X# [+ s1 J1 I( p6 w2 w% ]
  124.     hud_pos_update
    5 a$ f5 l- [4 P! A6 G
  125.     visible_update3 T! {0 F  G8 i2 w0 [7 x2 p
  126.   end4 D  N% ?" x$ h; T- J* A
  127.   #--------------------------------------------------------------------------! a+ A2 I% D* \& Y
  128.   # * Dispose
    . x5 `- F& i' r: p$ E. S% E
  129.   #--------------------------------------------------------------------------
    8 ^; _, G2 c5 y3 \1 K
  130.   def dispose
    . h$ y% X3 }& ?2 _4 d
  131.     #HP Meter Dispose
    " m$ \3 z: l4 A' w7 e' I5 K' ]) E
  132.     @hp_sprite.bitmap.dispose. U9 e. u  R) G
  133.     @hp_sprite.dispose; u- l. D8 i- Y1 ~/ `
  134.     @hp_bitmap.dispose' X0 f) J- x+ }/ a/ T
  135.     #HP Border Dispose( b) ]8 ?9 r- y7 X! y$ a
  136.     @layout_sprite.bitmap.dispose
    & B6 k; l" Y5 _6 V! t
  137.     @layout_sprite.dispose/ e8 v2 S; o! o8 }: f# p
  138.     @layout_bitmap.dispose$ [% Z+ s! m. G
  139.     #SP Meter Dispose
    3 O  G$ x& m% \) \$ T$ R
  140.     @sp_sprite.bitmap.dispose) k: y. V4 M7 R
  141.     @sp_sprite.dispose
    * k8 t: [- x' s, p9 C9 A7 J
  142.     @sp_bitmap.dispose( {! D7 g2 p, Q& a6 a
  143.     #SP Border Dispose4 [0 C, D3 f" K" m
  144.     @layout2_sprite.bitmap.dispose6 O' B. s% e/ u5 z+ c# {
  145.     @layout2_sprite.dispose+ d# d: V8 v4 a0 t2 @3 j
  146.     @layout2_bitmap.dispose
    ( ]+ F, q/ q( L% Q
  147.   end  }& o# A# p  s" k0 a9 n0 X+ i/ V7 {* k
  148.   #--------------------------------------------------------------------------
    : Z. b$ S& ]8 c
  149.   # * Update
    ! \5 I9 o9 }! t, S* i
  150.   #--------------------------------------------------------------------------
    6 W. w' [, ~1 U2 e6 q$ n0 A
  151.   def update) e/ a1 r, S! j8 X! Z& U$ ^% y
  152.      @battler = @enemy.battler ! W" h4 P; I, \8 _; C; E7 b% q4 t
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    # M6 c" t8 N: J2 T2 o. G
  154.      if self.visible. r* ]2 ]- d4 Y2 W
  155.        refresh
    ! l: U' g8 ?/ }  \& O" B
  156.      else
    5 b- P) o! @: j  J/ d5 r' C
  157.        self.bitmap.clear
    4 r% m3 L) F8 [% N' o
  158.      end$ P! g: T+ }; C1 ?* X/ L: e8 u9 o
  159.   end
    , U' u, d! S- b
  160.   #--------------------------------------------------------------------------3 q# k" Z7 \) f" D3 w; n
  161.   # * Visible Update5 M: J. ~1 }1 ]! i7 B
  162.   #--------------------------------------------------------------------------
    2 V8 Z% n! k, z+ C8 c
  163.   def visible_update
    - |* H( F' F0 e1 ]1 o+ z+ s
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    ( @' t' y( O: [3 I  s8 P& P
  165.        @hp_sprite.visible = false
    & V! a1 ]; z) e+ l9 @- x3 Q9 v; A
  166.        @layout_sprite.visible = false9 j5 R  Y0 Q- |, {' c+ P9 r
  167.        @sp_sprite.visible = false
    , G- C) u  i2 r; y
  168.        @layout2_sprite.visible = false1 ]6 p6 u; Y" ?; U7 b
  169.     else3 M5 }& b+ c, F6 @; m; Y. {6 \; V
  170.        if HP_HUD == true
    . \5 u2 e6 d2 s
  171.          @hp_sprite.visible = true
    ! y( P8 Q: m' Y3 Q& b6 ?
  172.          @layout_sprite.visible = true
    2 c& t5 s: @) d: k! M1 j; B6 o
  173.        else
    / d2 N5 m' H1 B
  174.          @hp_sprite.visible = false3 V! e. _: U/ `3 `" B  }" W
  175.          @layout_sprite.visible = false
    ) w& ^: n& }! S3 Z4 M
  176.        end  , u  @1 G4 P! ^" N2 [" [
  177.        if SP_HUD == true
    : @7 `) m5 R2 V  v0 K
  178.          @sp_sprite.visible = true
    & Y  }. C; ]( l
  179.          @layout2_sprite.visible = true. q" d6 D- p" W& |4 U8 U- ?* Z
  180.        else) l! o! s1 K" @7 _
  181.          @sp_sprite.visible = false& y. w3 t7 d0 h  l4 y  ~
  182.          @layout2_sprite.visible = false5 E- z! u6 |# r' B# @' w8 f7 p
  183.        end , n' g1 H6 S% L' Z) V5 m1 p* E: e
  184.      end  
    8 i! t  U9 p8 e
  185.    end $ j# J0 k2 b" r/ v% L. K: A
  186.   #--------------------------------------------------------------------------
    7 F: y2 Q" b- I5 T9 B- Q3 @
  187.   # * Hud Pos Update
    4 h) c0 g% u8 d. B* V3 Q0 G, e
  188.   #--------------------------------------------------------------------------
    8 N/ J1 B! B2 ?! G' ^% G
  189.   def hud_pos_update9 c0 d3 E$ T! }
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X8 b6 {) k& f' t8 P- i8 Z
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  6 E6 T# N+ A* n& B; m1 C! k
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    ! Z) m+ Z/ N) g1 D- r! b  v; }% y
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y   g- R# C7 `& v- z" @
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X& r8 k( D  d/ g) u
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    " ?' K$ Z) B  {+ I2 P
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    6 K8 \. M, R' q4 A$ `& s
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     / M# c5 \: x/ g$ |# B1 N
  198.   end  
    3 l) i+ b  @" \1 {' K
  199.   #--------------------------------------------------------------------------
    9 w+ `% t. b5 u8 m8 [
  200.   # * Hp Flow Update9 ]1 t+ u" M9 ^5 `
  201.   #--------------------------------------------------------------------------
    # w% q1 h+ }  K+ p" I  L9 G( e
  202.   def hp_flow_update
    7 G! i+ \4 I! K' U4 f
  203.       @hp_sprite.bitmap.clear
    : a* D1 Q* C' H+ ?2 ~
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    ( o' R& j& ~; ]& F) D: ~* u
  205.           #HP Damage---------------------------------2 i' ?0 v' X( k: F( i1 E
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    0 c# F5 I; d0 R
  207.           valor = 0.5 if valor < 1         
    ( j0 Y/ a8 g& v) g
  208.           if @hp_width_old != @hp_width
    ( G6 u) d. Z/ s; W
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    ! G& t( o) U9 E5 r# f* l3 H
  210.           if @hp_width_old < @hp_width
    8 `4 Q, }; n4 o& `
  211.              @hp_width_old = @hp_width
    ' ]6 ?% V& F% S: G% S* U3 {- }
  212.           end      2 I! V; }4 [9 d
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)6 ]6 c. O/ s3 o. U! ~- _" G& R2 ]
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       " H% s+ M/ _, S) ?) M% _
  215.           end        
    9 _' Q: a. X9 h  _) ^
  216.       #HP Real------------------------------------
    2 o" }, K3 R: u* s
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
      j: V' ^! w' b. c" r8 B9 {
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    3 q! z- I4 n& B0 y' D
  219.       @hp_flow += 2  
    0 j% ]: k! y8 C2 b8 u
  220.       if @hp_flow >= @hp_image.width - @hp_range
    9 k! c! Y5 u9 R6 v0 E& ]
  221.          @hp_flow = 0  - j3 d- r3 B: T; X8 Q) ]: e8 g
  222.       end
    + A1 e$ _" S; i7 I# ^2 v
  223.   end    6 d0 ^: j- C; f5 O+ W
  224.   #--------------------------------------------------------------------------
    ; x% j/ ~6 j& ]# B% _
  225.   # * Sp Flow Update. ]  y& p6 w: I, R' _- v1 v/ P; ?$ t
  226.   #--------------------------------------------------------------------------! x: r) d5 ~! v
  227.   def sp_flow_update& o, k3 U3 b# a8 B) n! g5 m! i
  228.       @sp_sprite.bitmap.clear' ^/ }* l& i* P! N
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp ' k. ~4 q8 `5 v# Z( p* w9 g
  230.           #SP Damage---------------------------------* e: T2 {; z9 b5 g& T, c
  231.           if @sp_width_old != @sp_width% U* N8 P0 ~) b, h" T% M
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    ; d8 c6 U. z4 D4 a' y" L
  233.           valor = 0.5 if valor < 1              
    8 U" Q  K( q0 a1 v( ^; O; H7 J
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  : s5 b, c3 W& [) m& t+ W1 p% ?
  235.           if @sp_width_old < @sp_width
    % p- J, O. ]  i9 ~6 J
  236.              @sp_width_old = @sp_width
    $ W4 f7 f- F; m& {5 h; K2 @
  237.           end      
    4 [3 l9 C  Y. W2 c9 h! i
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    ) v: }, i7 Z: m9 `/ f
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) - }5 c' u( p3 }# W% j! U
  240.           end3 Z, o# d5 b4 m. k1 M
  241.       #SP Real------------------------------------8 i4 A7 e# `% A2 F7 C2 D
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    + S0 G, r: u: I3 ]6 m: P
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    ! t0 H) m+ k! b1 ?- G
  244.       @sp_flow += 1  9 z# b+ x$ C6 N; X7 q, j
  245.       if @sp_flow >= @sp_image.width - @sp_range/ e6 f  `( O- O& k2 {( n9 j
  246.          @sp_flow = 0  & }9 b% }: \: y; J8 T
  247.       end
    ) O4 u3 s+ P/ n: ?$ d
  248.     end            
    3 {+ Y) w2 D/ v: R' o) m; \9 T4 i
  249.   end
    * f7 J. Y! u3 Y* ^, H+ q" A: S
  250. #===============================================================================
    : G! y; |8 A$ }/ _+ y
  251. class Sprite_Character < RPG::Sprite; d; F2 ^0 b: |% |9 H! u
  252. #-------------------------------------------------------------------------------# n5 ?! b) t; l: V4 k' p7 u" j# A7 Q
  253.   alias :xas_emini_hud_init :initialize
    3 |% E5 Y& j( ?: Z9 B& y# m" l
  254.   include MOG
    " n/ `- h6 ~( Y: m' {- d  k
  255.   def initialize(viewport, character)
    ) ]" p9 M  p. u
  256.     xas_emini_hud_init(viewport, character)6 ?, R  ]5 S" x0 b2 T
  257.     @viewport = viewport
    ' D- ?) A4 b1 ?! M
  258.     return if @character.battler.nil?
    $ r' d" r8 P6 {6 o$ N
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)9 W4 O9 Z9 E$ K0 T
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id). u; s9 t. c7 T4 u! G3 r) V2 d) Z
  261.     return if @character.battler.is_a?(Game_Actor)6 Q$ s' P9 Q. n% J+ y9 s
  262.     @bars = S_Hud.new(@character, @viewport)
    " C4 Z; f: u0 _: L# ~2 J  z/ J- @9 i
  263.   end
    $ t# n0 y6 y- i0 g5 h; |9 Z
  264. #-------------------------------------------------------------------------------. Y- A5 W0 y) X2 j) c9 B% g& y
  265.   alias :xas_emini_hud_up :update
    ( l7 [' q3 a! R: U+ b
  266.   def update/ Z# C9 O+ Z% _( ^$ L
  267.     xas_emini_hud_up
    1 b+ g- p: \& F1 K5 G0 |
  268.     return if @bars.nil?
    1 ~& K; w% C& x% N  r8 o
  269.     return if @bars.disposed?
    0 G2 U4 {' o. m2 E
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
      z# G- D  @  w4 q; q8 P
  271.     @bars.visible = (dis <= RANGE)5 {5 {4 g( w+ Y4 s" z+ |% b
  272.     if @bars.visible
    2 \2 n/ [5 l6 C2 g, a  I! a' I" K
  273.       @bars.x = @character.screen_x# - @cw / 4
    5 Q( C# |+ M+ f6 d
  274.       @bars.y = @character.screen_y# - @ch / 4
    6 E6 f5 c/ W" u) E0 W& o
  275.     end
    8 S; o) |1 |/ \) \- z( ^
  276.     @bars.update
    & y( W1 `" p( q) V3 D( e' C
  277.   end: }3 H" I* L4 Q. E, N
  278. #-------------------------------------------------------------------------------
    ) T. u: a) S  K# j) \
  279.   def dispose
    ( C! d% R1 e2 R! }$ H" o
  280.     super0 e5 `9 h7 O, e. L7 Q
  281.     @bars.dispose if [email protected]?
    3 s2 u+ v: y% [. K0 t& L! D
  282.   end
    9 q2 Q6 R: l0 @3 Z, W/ n9 k7 P
  283. end
    4 @$ `% D, b2 [

  284. ( o8 C- |* g4 {/ }0 f
  285. $mog_rgss_s_hud = true
复制代码

+ e0 \0 ^$ v  U7 p0 U
3 m& j& `# m9 y5 x
0 g. w# L; h9 d  N0 X上面所說出錯的203行內容為
8 q! U+ W5 K) S  x# P@hp_sprite.bitmap.clear$ M: p# c/ N4 s1 m

/ a  S7 L) F& u0 a  F3 e9 A# @想知道怎麼解決
$ f+ z7 p, V( {) A* Z6 a6 A/ Z3 C# S+ y8 m% @1 O  O+ ~
該腳本支持3.82* @) A) y7 v. |2 t% `( L4 s
: X; B! l( x3 Q; S" ~: Q
下面是圖檔,要塞在Windowskin下( G6 b0 d1 x+ ^5 J+ ^0 [
  m' C! h. v/ b# F" K1 u7 X: e+ u
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) 4 U' @3 N- C& \

7 z- N" @3 x/ {5 F
7 O5 J8 g+ t& V) j/ K5 u! H  s* ~% o$ X+ q7 J0 b$ V) s

那啥…我以為用戶名只是通行碼…
所以我暱稱不是serena718哈,是月見斐夜
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
; ?& T) N( B0 f结果尝试刷新了一个已经释放的图形
4 v1 |/ m9 q4 h" x! X
; q5 t7 B" B% N5 X3 X! X$ e7 [
* p' a( s) o9 g9 ]# J: r/ N5 @  [- W" t0 d' D- I# _% Y
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?+ H7 e$ l" d( b. I
复制代码
不要后面那个条件貌似就没问题了。
! Z1 g3 `! c$ L$ s1 f, m) D2 h5 {5 H, T. h9 c" J

# f2 P% w5 v+ O7 m
9 \" `) L2 f1 Y9 C4 y
! H' W" [3 S2 Z! g
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 8 a8 I0 X* x/ b8 `! j
貌似是释放的条件不合适
% M; Q3 B" }4 X; ^1 ~结果尝试刷新了一个已经释放的图形
# f3 D8 u! N* J$ Z+ |& ]( G7 [9 x
把後面那個條件弄掉後,的確沒問題了
' V+ F  B7 R  _目前從關頭打到關尾結束都沒再彈什麼錯誤
, x- t9 v" K% v( k& B1 P非常感謝
8 T# r! U( c  V- ?) {
% G* }4 O  _6 `7 ^7 Y/ ~- T不過我是參照著別人腳本改的
+ f, @/ ~, F- h1 f他寫的條件式也是那樣,但我用他的沒什麼錯誤6 Z$ {" E% W, Q
不知道是怎麼回事
' F, `1 A& h( c. t6 M% F是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
8 Y2 E7 M4 i! e: D6 h我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

那啥…我以為用戶名只是通行碼…
所以我暱稱不是serena718哈,是月見斐夜
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events. q2 h- X2 }6 o4 a4 q8 s2 J
嘛..这个数组吧..我在以前试写队友的时候关注过一点
, m' K" I2 v8 f不知道XAS内部对它做了什么手脚还是为啥,9 t1 _3 W* @* o6 K) M! @. s5 Y
总有那么一瞬间,没有被消灭的敌人事件也变成了nil
+ l, A( @1 n6 |' u, j% y+ `! C, o0 k4 q1 S; ]. N
$game_map.events.values[@enemy.id].nil?9 `( t7 J, f3 f7 Z* V
因此自然而然的返回true并符合条件把图形释放掉了0 ~5 r$ U! ]7 ?: j  f- h

/ E$ G, ?+ t# b7 X' s+ @5 SLZ应该有注意到吧,- D3 W2 o) C$ i: e! \: _* F
我测试的时候发现报错前几帧,图形会消失,4 N* L0 A1 x! \: S* D6 o
应该就是“误以为敌人被消灭”了。
- l: l& m' |) o/ ]0 N. _
5 M  D! m/ Z, D( l6 y; g4 d受限于个人水平,至今无法找出$game_map.events的真相..! C3 g, ^! I6 `5 g. C
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
! U! [5 N  u' B. g1 W* S$game_map.events
. A& x  F- Q7 a7 w嘛..这个数组吧..我在以前试写队友的时候关注过一点7 I# x; m7 c) |
不知道XAS内部对它做了什么手脚还是 ...

# M- m9 H' n4 J7 v當初我把那個條件式看了三遍,都不覺得他有什麼錯% N7 g# P! \' c/ i8 Q- n
原來還有這麼深奧詭異的事XD
! Q6 \0 a1 k! s+ @. G5 F5 z6 V0 `) r0 E+ M
錯誤發生前的確會有圖形沒顯示出來
/ g/ I1 G2 O7 b6 C5 ]  ^不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...9 A% C/ H3 u: [) b# I* C, g
沒想到居然是詐屍了XD
7 E/ x/ b4 }& m9 g0 u2 R( z/ G1 l$ l! M
不曉得3.91有沒有修正這問題...
" \& \9 \$ D" M+ R+ }; O: m不過3.91改太多,實在有點沒動力去剖析他...=___=

那啥…我以為用戶名只是通行碼…
所以我暱稱不是serena718哈,是月見斐夜
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。  R% i& `' n( x9 l0 a/ k
5 ?- }' c, ^2 A5 J1 g7 _
的确
- K( _3 G1 x$ P: {用惯3.82之后想去整3.91觉得压力甚大..
# h- W, a" e5 ?! I( l干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。- c0 S  U- d7 {2 E/ I

/ p( Z' W6 S2 M然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2024-4-28 16:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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