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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條3 s& E& t2 B1 G( B: |; |
會在每隻事件怪物的腳下顯示
2 z  S+ [9 b: Z6 t8 Z# F問題是不知道為什麼) N1 X/ \+ p8 `' Q' r
有時打怪打一打會跳出
% I7 d! n' w& a% r7 b0 W: u---------------------------
4 |( {. F# g8 ?( y! I- Q! EXAS. D; R6 b) k+ n9 m3 _
---------------------------
, B7 a/ E2 V8 L5 l( S+ |9 T脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。; d- I$ A8 g, q/ V. k8 V# k
( t; r2 {5 N* T( s' p( L
disposed bitmap
" K' E6 w: l+ q---------------------------4 S1 D- F& I1 T% `4 Z* x
確定   ( I, k- ]4 P* n( J' E0 Q3 E
---------------------------) Q3 N7 [8 Z7 E3 c8 d" e* q& B

' s1 L2 U2 W4 m- `% L( u# h' V這是腳本+ Z3 D7 N# L) D

/ O# ~+ u& }7 v5 i+ c
  1. #===============================================================================+ l8 S9 G+ C; h
  2. # MOG - s Hud 1.0      , |. E( i8 t9 U6 [/ q
  3. #===============================================================================% d) v, L  e3 Y: p  X- h! X, B
  4. # By Moghunter $ u1 s0 t) E! ]7 u% `
  5. # http://www.atelier-rgss.com; m8 v) u. N1 h/ ^1 T& `: X* \2 E
  6. #===============================================================================
    7 A0 h6 f% v! O
  7. # Translated by Calvin624
    ) M8 d( {- J5 q2 r
  8. # http://www.xasabs.wordpress.com
    ) E9 P) Y3 d: N$ I$ ], F8 N
  9. #===============================================================================
    4 o4 H- z- ^4 V2 E& U- U2 |6 g
  10. ###############################-DESCRIPTION-####################################
    9 n, M0 ^# k- ?+ B
  11. #===============================================================================- c/ M2 A+ F# z5 v
  12. # Personal HUD – displays the HP and SP below the hero.3 ~2 N0 z  I. e( J2 Y
  13. #===============================================================================; f2 X/ v5 F5 p3 }1 P% v; @
  14. #( D) \7 S) A, u
  15. # Graphics required:
    1 v& ?. }. }1 c0 |8 W* ~1 g
  16. #
    & ^1 D% K, n% g7 \& G) v
  17. # S_Border_HP_Meter.png
    0 T* W8 n$ O+ N: X% O
  18. # S_Border_SP_Meter.png! K( m% g) ]1 q6 X+ v$ U
  19. # S_HP_Meter.png$ a8 c6 J/ T- M% n3 H
  20. # S_SP_Meter.png
    7 O& h% c3 A: R( z. }, g
  21. #4 e( f4 f6 Y3 v
  22. # All images must be in the Windowskin folder.& E, r3 A* E9 l, O
  23. #  T# Q; q& H. }% D/ Y7 a) z: Q
  24. #===============================================================================
    ! B+ e3 A1 m# t! s' B4 W5 S
  25. module MOG
    2 F; v+ d9 \3 H' q( B0 Y4 ~7 e7 x
  26. VISIBLE_DEF = false  
    ( L; B! B7 ?9 ^* O0 Q
  27. # Show HP meter?2 l& T1 n1 D) U$ i
  28. HP_HUD = true
    ( {* Z& W1 Q( Q( w3 h* I
  29. # Position of the HP border# T6 U+ f$ K. A6 {
  30. S_BORDER_HP_METER_X = -23 O1 E9 p9 z. @
  31. S_BORDER_HP_METER_Y = -2  0 j+ y: G! \; [4 m
  32. # Position of the HP meter
    2 ?( b- f0 t' J2 o6 I
  33. S_HP_METER_X = 0- A$ j% C2 o7 C* S) h# B
  34. S_HP_METER_Y = 0/ |6 Z5 L; m! O  l$ r+ o
  35. # Show SP meter?
    $ u- P) c- j! v. q
  36. SP_HUD = true
    * a- W4 q, c2 H6 K: S  n, e2 c
  37. # Position of the SP border
    6 E: c4 r+ @+ t+ }: E9 v
  38. S_BORDER_SP_METER_X = 0
    ; p: f( A3 m+ F4 W) b! o# O
  39. S_BORDER_SP_METER_Y = 10 , b6 Z+ f0 @" |3 P
  40. # Position of the SP meter7 e" u! p( A. Z
  41. S_SP_METER_X = 0- k9 D" J4 Y( x( k& _% [6 p3 U
  42. S_SP_METER_Y = 10  \( T3 i: O3 @6 c6 Y
  43. # Switch to disable the HUD$ m1 e9 q: T" A) t& F$ z
  44. DISABLE_SHUD_SWITCH = 5' p0 Z! E) [" ~7 p" ~
  45. RANGE = 20" C$ c5 _% P4 f2 ?& e) S4 v1 x
  46. end! b# a; I; {( z% N, M$ @( t5 m# t
  47. #===============================================================================% j- e, {7 J) y6 v. k  ]
  48. # S Hud
      _( d9 \1 u7 P; h7 R; d
  49. #===============================================================================
    ; ]! v$ O5 J! O  |
  50. class S_Hud < RPG::Sprite
    2 c( Z4 O2 o$ i& h# y1 `( n
  51.   include MOG
    + X& d, `! |5 c% Q3 m) l
  52.   #--------------------------------------------------------------------------3 D/ o- i* ]/ M8 t( V+ u! o
  53.   # * Initialize
    - X. z& S% D: f
  54.   #--------------------------------------------------------------------------
    4 ~+ H4 a, O5 g, T" @
  55.   def initialize(enemy,viewport)
    - }- y( L7 o6 L6 M
  56.     super(viewport)
    : w8 K7 t1 A& J' B( M; H- n& N1 V
  57.     @enemy  = enemy
    % M, [( T, N& A- z" r; g
  58.     @battler = @enemy.battler
    " A- k& N! j; @& X* l5 a. L
  59.     @old_hp  = 0) f' b7 b0 ~* z% B$ z" ?
  60.     @old_sp  = 08 X; L7 x# j# A5 V. a3 n# I
  61.     @old_vis = false
    : ?) `6 I2 Q0 w: y. G
  62.     self.bitmap = Bitmap.new(100, 100)
    & Q/ K% S! ~0 X+ Y
  63.     self.visible = (VISIBLE_DEF)#false
    # l0 j0 _/ r( M; v, y+ d7 J
  64.     self.z = 100) r' H4 v, x: ^0 Y5 ~4 j6 z
  65.     #HP Border -------------------------------------------------------------------( e! u; [: i0 ?) s0 p5 S7 ]  e  U$ ]
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    6 Q3 S5 ^& O& |$ A& ?
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height): X9 w" L9 m8 F: ^' T8 S; B
  68.     @layout_sprite = Sprite.new
    5 \, T8 b& A1 O3 i8 K! c
  69.     @layout_sprite.bitmap = @layout_bitmap
    ' N  v. M% ~& n. _4 ^! Y1 Y
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    2 r; ^8 F8 D7 C# b9 Y3 W) P' K
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    # w+ z' c3 P0 S& W# n7 _
  72.     @layout_sprite.z = 5001
    " n5 B8 _- p" L& I
  73.     #HP Meter ---------------------------------------------------
    & N) {# l5 I1 B0 f& H
  74.     @hp_flow = 0
      T% e7 Z; l4 j! j4 c
  75.     @hp_damage_flow = 0
    $ p1 I( O4 b( ~, s, w# X/ ]4 I! v
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")6 `% j; r# Y1 a, y
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    # Z: p0 h" U, M7 D
  78.     @hp_range = @hp_image.width / 3; }7 S/ D& S! Z& i& h) ]
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    , W6 J5 U$ Q8 c8 m
  80.     @hp_width2 = @hp_range / 2) ^/ F- b' _+ s# O" l$ S, M4 l
  81.     @hp_height = @hp_image.height / 2
    ' E; N6 t4 `* i
  82.     @hp_width_old = @hp_width
    / ]' O' |0 G! V( p; B, c* A
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    6 G- e% o$ c! u% [/ t* K
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) ; a' M$ \$ E8 O- ?0 s* j
  85.     @hp_sprite = Sprite.new
    9 I: G8 w$ h0 ^0 j% G/ X
  86.     @hp_sprite.bitmap = @hp_bitmap
    : z) q: ]; y6 `& {, j" z
  87.     @hp_sprite.z = 5002, f) s# E& `) Z7 }3 H
  88.     #SP Border -------------------------------------------------------------------/ k5 o. J3 L" r0 I4 [+ N% u$ Z. q
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter"), N3 i( J3 b5 G# U% I! A) b
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    ; a  }3 f" n" \4 I0 f- P* F' f
  91.     @layout2_sprite = Sprite.new
    . j  E3 D, `) y& w  `7 x, n8 U
  92.     @layout2_sprite.bitmap = @layout2_bitmap! o1 I3 a4 \6 f) m' \) e9 Q) ]
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height): i5 I1 ]2 n; ^' C% P) h, F
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    2 c% c9 S; S5 I! s5 H: Q
  95.     @layout2_sprite.z = 5001    6 U7 t7 D$ s# ^9 p* R- j
  96.     #SP Meter ------------------------------------------------------8 ^7 z; q" a% N: |  i
  97.     @sp_flow = 0
    ! P) `/ n6 [0 h7 y; V
  98.     @sp_damage_flow = 0, g6 g& z& U$ j+ {+ _
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    ) E) }% v8 Y2 Z; y+ g
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    2 j! R( Y* U1 r. A6 ?, k
  101.     @sp_range = @sp_image.width / 3' V$ a/ o% T3 h
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  $ f6 J4 K- \* Y& K9 L
  103.     @sp_width2 = @sp_range / 2
    - M! X9 ?6 i+ Z6 Z4 ^* R! p1 q
  104.     @sp_height = @sp_image.height / 2) W/ v$ ~7 V9 {5 J. O& e3 z' X
  105.     @sp_width_old = @sp_width" i% H  g. n8 |" l4 U& r) ]+ }- J% H
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)$ f( }5 k3 c( |2 p" d
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    & p9 {0 i4 @3 c! _
  108.     @sp_sprite = Sprite.new
    3 H8 Y; @: g  |6 U
  109.     @sp_sprite.bitmap = @sp_bitmap2 d! t) a' H( O9 p5 q, r# A
  110.     @sp_sprite.z = 5002. V, V* u; a/ i, G- A5 c, ?
  111.     update$ G1 u( D+ w8 i! B5 T+ M: _
  112.   end
      b5 r+ K, F( U" J0 Y
  113.   #--------------------------------------------------------------------------7 H4 b2 z6 U6 |7 L
  114.   # * Refresh- H0 @# j$ [7 M
  115.   #--------------------------------------------------------------------------
    , r$ |( B6 z. ^8 q' X9 R4 a
  116.   def refresh( K8 d2 K* x; t* o& X1 R
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    + e1 I$ W0 i' T% Z, n& A
  118.     self.bitmap.clear- t; Z" k& @& k* c& U( j4 N$ _
  119.     @old_vis = self.visible" `1 D: I7 I8 B
  120.     @old_sp = @battler.sp  v- }5 h) g5 [: p. F
  121.     @old_hp = @battler.hp
    ; J) u- p* b, d, P: x  j6 l3 F1 r5 [
  122.     hp_flow_update( w: J4 t3 [, Y3 z, u4 Y! x
  123.     sp_flow_update# {' y& p3 b# x# c7 F+ t: l) ]
  124.     hud_pos_update
    6 i& I. v7 M- V, H0 H+ O. T: v8 o
  125.     visible_update
    1 b8 l  M. b" i4 }
  126.   end
    2 u; u7 j' w/ X
  127.   #--------------------------------------------------------------------------" n( M# R# v9 w. C9 H, D. c
  128.   # * Dispose% ~3 B1 V# {; i) [2 I: C
  129.   #--------------------------------------------------------------------------
    9 U/ ~; Z% n6 N
  130.   def dispose8 ]9 [6 y) M2 V
  131.     #HP Meter Dispose# r) y/ N3 d& u& V( j9 J
  132.     @hp_sprite.bitmap.dispose
    8 a- T; e" q( A0 ]7 `1 T+ r! T
  133.     @hp_sprite.dispose
    6 }: s) W3 I+ Z6 O9 X, _
  134.     @hp_bitmap.dispose
    ; B2 Z! t5 D; l8 ^6 x3 r; E
  135.     #HP Border Dispose
    $ V8 F! R: [$ q, d5 _  S5 K6 F
  136.     @layout_sprite.bitmap.dispose
    ! o9 r9 {' |5 @/ C' t' Z" i' _
  137.     @layout_sprite.dispose
    ! o; k! _# s# w) `$ q  q
  138.     @layout_bitmap.dispose/ h/ l, o$ `: d/ p$ i
  139.     #SP Meter Dispose
    6 e) h: M, g! ?9 J" ^: T
  140.     @sp_sprite.bitmap.dispose( F. r  r/ o" ~
  141.     @sp_sprite.dispose0 I" P6 Q8 `* e& `: M- O  X$ q$ e
  142.     @sp_bitmap.dispose4 t' ?/ ^$ o& u2 O
  143.     #SP Border Dispose" \3 s9 @/ B  p9 |1 M
  144.     @layout2_sprite.bitmap.dispose
    & w7 C7 M9 J( l; B) p0 @6 `- C/ S7 ~
  145.     @layout2_sprite.dispose, t9 N7 ~5 y4 s! B3 R7 l
  146.     @layout2_bitmap.dispose
    & z' B9 X: T; G" }
  147.   end
    ) M8 z+ ^, ~' w" h. S1 e8 p
  148.   #--------------------------------------------------------------------------" J+ o2 @3 Z8 |' e3 j0 |! a
  149.   # * Update1 B/ D/ F1 q* l* p
  150.   #--------------------------------------------------------------------------) D# k' A: ]. U6 T& y
  151.   def update
    1 [7 h* F. z8 @* a9 e  H
  152.      @battler = @enemy.battler
    + E9 Y1 ^! F# {( c4 I: K& d9 t
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?" V( m$ u5 F+ s$ q+ o
  154.      if self.visible2 N5 u" w. Q( ^# o; O
  155.        refresh5 R* Z8 ^) b; f( }" y0 i: G
  156.      else
    ; c. y! `8 S! z+ I, ]# P& \1 ], K7 S
  157.        self.bitmap.clear; ^: V! Y- U6 q4 G# D  I: `8 {9 P+ c8 v( B
  158.      end" [" w" C( D1 A# x, @
  159.   end
    ' ]) Z/ z& k/ `- g# s. a( H
  160.   #--------------------------------------------------------------------------
    ( M9 A. k) H4 X+ b9 `4 C, |
  161.   # * Visible Update
    ' A" C9 U1 q) W) m& W
  162.   #--------------------------------------------------------------------------
    " X9 {! O. p% Z, q) K: z$ d1 C
  163.   def visible_update
    3 A8 l  A. v/ G
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    ' U9 |. [/ \) z
  165.        @hp_sprite.visible = false
    ' C, L8 v1 g6 }; f( a
  166.        @layout_sprite.visible = false
    0 U; N9 ]& Z& x% c- g4 a
  167.        @sp_sprite.visible = false
    + I& b9 O; a7 I3 b
  168.        @layout2_sprite.visible = false
    7 B5 Q. ^+ R/ K% ?) d
  169.     else' J6 K$ L; k7 c' i& i9 E2 e# k
  170.        if HP_HUD == true
    / R4 c/ ^) R( u1 \! ]( O0 [: h
  171.          @hp_sprite.visible = true4 I% D: A* U  R% D$ p6 q
  172.          @layout_sprite.visible = true5 w" D$ D1 ~2 T
  173.        else' j  d2 N7 ^4 h/ N, h
  174.          @hp_sprite.visible = false: v2 i7 h2 z$ d( M
  175.          @layout_sprite.visible = false; P' @. A4 @0 C1 t" U! u
  176.        end  2 B- }7 Z3 |. }$ v7 r2 V" b0 T
  177.        if SP_HUD == true, u3 u5 Z. p; R
  178.          @sp_sprite.visible = true/ Q& _' c6 X0 @7 b8 [) _: f: W
  179.          @layout2_sprite.visible = true: m7 @( U1 _( L) A5 _1 \& F
  180.        else
    - ?# V, |' I* i$ n" J( U% O0 k0 \
  181.          @sp_sprite.visible = false) d+ W. @; Y& Z6 Y5 Z
  182.          @layout2_sprite.visible = false" K) r' }' E; e9 j4 W
  183.        end
    4 V) ^) D5 U5 f( u  R4 b
  184.      end  & J2 X  l! O$ M6 c7 ~) T( U. i
  185.    end 9 A/ }, Q2 A' d% o; K
  186.   #--------------------------------------------------------------------------( z7 C8 ~, {+ R" U+ X
  187.   # * Hud Pos Update: V4 n. {4 _0 R0 V" [
  188.   #--------------------------------------------------------------------------/ W7 U3 l& A- F+ w
  189.   def hud_pos_update, N) P) O: {& m' \" I
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    4 C0 x  u. Z0 @7 t
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    + z5 h8 W2 j+ O, k% l/ s
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    , a6 F, E3 O  [" k2 o" q  Q) H& Z
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    # U3 ~- A( b# S6 Y( @# W" ?
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X" x) p4 D# E( \4 G0 ~
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  5 y: s7 K4 m$ d: }6 j
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X! k' S+ @& v$ l8 D! I% V
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     5 W6 @7 E( A1 x9 [# x1 \, [
  198.   end  
    / f3 M$ E7 Q0 i! W& A
  199.   #--------------------------------------------------------------------------
    6 D1 u8 F3 h+ C  S/ l
  200.   # * Hp Flow Update/ V6 k* D# c0 F0 A2 N
  201.   #--------------------------------------------------------------------------# ]$ S% j5 @, K, n+ ~+ A: k' B
  202.   def hp_flow_update8 \" j1 B1 I! b- [
  203.       @hp_sprite.bitmap.clear
    / |5 o; i: B( e9 ^+ `! p
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  7 c( p$ y/ [% o5 n# Z3 `
  205.           #HP Damage---------------------------------
    7 ]; ?; b/ w' h, M
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100$ l( y0 _1 c4 F6 ?5 E" m6 ~
  207.           valor = 0.5 if valor < 1          5 _  g9 q7 h( h+ i+ ]9 G
  208.           if @hp_width_old != @hp_width
    7 j) O# U% H% j( G( c' W; S
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  - Z8 N+ i% n2 ]  o
  210.           if @hp_width_old < @hp_width 4 w1 O* b/ |, X4 C" I/ r
  211.              @hp_width_old = @hp_width: V! z! @! s8 W, {: v% s7 d
  212.           end      9 S: A+ E& P+ m+ L  K5 O
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    ' F3 O' H! [& W/ e+ i3 k; j" K: y
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       8 ^/ F! z% ?7 M0 o0 b; M
  215.           end        # I) C5 X4 }7 E- c4 \$ o- T% t# F5 I  v1 x
  216.       #HP Real------------------------------------
    5 e& O5 C% C1 p- n
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)0 h5 Y3 N, t  \  U0 y
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    " @/ K$ F: Z, A; O7 ?: Z! W
  219.       @hp_flow += 2  2 a0 H+ y1 Z' d& Y- a5 P
  220.       if @hp_flow >= @hp_image.width - @hp_range: w3 Q: [' M8 l6 @0 U2 n! J4 J/ u
  221.          @hp_flow = 0  
    . @5 {0 c" C; v8 |' \! L( V5 \
  222.       end
    " z" h0 G9 U: x7 U; a: p. A6 x
  223.   end    . ]1 s2 b. Z8 S# P- B+ r) ]+ k; A) O
  224.   #--------------------------------------------------------------------------
    ; c( P+ X! p7 e) W8 |
  225.   # * Sp Flow Update2 v- a; Q, Y+ ]( W$ H
  226.   #--------------------------------------------------------------------------1 _7 a) k3 @: W. W
  227.   def sp_flow_update
    6 K( a& L) ~1 H  Z! a. p. s9 N
  228.       @sp_sprite.bitmap.clear
    0 G- G0 c6 b9 K3 k+ j
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    * I* F6 M8 U$ u* Z, \* e! Z
  230.           #SP Damage---------------------------------
    / p/ A: V6 Z& s& i3 q, L. L. e2 C# }, }
  231.           if @sp_width_old != @sp_width/ m( k; ]; J% ]& Y
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    4 t' @  O) q1 H; M1 h
  233.           valor = 0.5 if valor < 1              0 \) @6 v0 w/ [8 t! X" ]/ H
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    8 [' Q! G% U# H( S  p% U
  235.           if @sp_width_old < @sp_width
    7 n1 I- L8 d$ F2 B/ r; `" _* F6 R
  236.              @sp_width_old = @sp_width6 l1 U3 V: K2 I& Y& k& f
  237.           end      # H6 a' B  l% \* y4 t
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height): Q5 s+ }0 p+ v" m) L- X* C
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) . B  _8 I" v, d9 S% |
  240.           end
    ! g  I# `9 U' Z/ \1 R; D( h
  241.       #SP Real------------------------------------
    6 F. x$ Z0 m. z7 R- X! ]) o
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)6 ~) b3 }4 z4 \* C# T+ F" ?
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    % R+ A* |; U* k6 n- g9 E9 x
  244.       @sp_flow += 1  1 N  u% f# j# K
  245.       if @sp_flow >= @sp_image.width - @sp_range
    - P% y4 I) N+ W' u7 D& N
  246.          @sp_flow = 0  
    8 o  @: B3 h0 k3 f1 K$ T3 d
  247.       end
    : J. E2 S: y! W3 S% R
  248.     end            0 \) |* k' ^2 x9 p
  249.   end/ y- K/ I$ o1 w8 C9 P
  250. #===============================================================================
    2 D' s. x: x2 o' i- K! {- b4 p! m
  251. class Sprite_Character < RPG::Sprite
    " f4 O  z) h  x( v" L( B! c% S
  252. #-------------------------------------------------------------------------------
    $ i- B" ?+ u% L0 f, ^& i, I5 T
  253.   alias :xas_emini_hud_init :initialize. K. R  k" Y* {& x
  254.   include MOG
      ]. c) }3 V: f
  255.   def initialize(viewport, character)
    # H' F  }7 W) b; I7 k$ \, V8 Y+ O
  256.     xas_emini_hud_init(viewport, character)+ z' E. r" |; X  L( M* x: e+ B7 ]: D5 x
  257.     @viewport = viewport
    / _! J# G" Z* W& L1 S9 J' M4 c
  258.     return if @character.battler.nil?
    5 b/ Z$ x! Y* y4 ?
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    9 H# j6 M1 c6 @. [8 _# N4 e
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)$ K( T. d; N/ _* s
  261.     return if @character.battler.is_a?(Game_Actor)
    ( D5 r* R' h' G4 m2 c: v% X
  262.     @bars = S_Hud.new(@character, @viewport); Z6 g5 Q# s9 L
  263.   end8 c* @- a7 ^, N0 y+ l
  264. #-------------------------------------------------------------------------------
    6 S0 y# V: `) E( p, i
  265.   alias :xas_emini_hud_up :update, X" x. a1 j8 p( ?  b! e. ^; r
  266.   def update1 Q$ \- F' M) x2 b7 K2 q( O
  267.     xas_emini_hud_up  U4 S' o! w, S2 I
  268.     return if @bars.nil?, Q8 B0 N% A5 y1 G2 P
  269.     return if @bars.disposed?5 }+ D/ L0 E9 j1 _  r
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    0 ~$ E& _* {$ p$ c& u
  271.     @bars.visible = (dis <= RANGE)
    * j$ C3 O8 h9 ~
  272.     if @bars.visible& y9 ~, G( [% L. x
  273.       @bars.x = @character.screen_x# - @cw / 4
    8 j5 `  N. ~  W- B- y! `
  274.       @bars.y = @character.screen_y# - @ch / 41 l, {6 O3 [" {8 T
  275.     end, p) i" U9 q- X/ D) Y& m
  276.     @bars.update
    0 i0 j" Q9 C+ f8 L3 G
  277.   end) f1 _1 D' P1 I- L# s
  278. #-------------------------------------------------------------------------------
    ( L; n/ f, j; m9 E7 Q8 K
  279.   def dispose
    / G# w  m* |9 \1 Z: E: o
  280.     super) Y# B5 X3 b/ v4 Q+ I3 l
  281.     @bars.dispose if [email protected]?) |' N& `# i8 V8 @7 g
  282.   end+ k0 i' T- y, ~0 S* g) W; g
  283. end  h9 D) d$ W7 @/ q2 e; x4 m
  284. & S+ X, @! O0 Z  k; F
  285. $mog_rgss_s_hud = true
复制代码
7 s0 L2 [$ y( v$ Y( E4 l6 @
, j, G: ]) A% F! Z7 {

  b. X% c" ]3 K# I) m( |上面所說出錯的203行內容為3 m! a" f7 x5 d/ |& Q, w+ c
@hp_sprite.bitmap.clear* l0 W# O/ J/ t+ Z' p. \
8 V3 S+ }9 u5 j5 W4 ~5 @8 K
想知道怎麼解決/ j1 c* m  m' j, ^; P* P

, t7 c% f) K' B( L9 U% ^$ X& q" N8 B該腳本支持3.82/ F! M9 {( r# B2 P$ p

; }: Q: r4 j/ F/ M* y* ]! u下面是圖檔,要塞在Windowskin下5 E1 ?1 @& @- u2 P, l! |( O

' @; \' N7 J, e! k: L" v9 h' H S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
; Q/ ~6 `* a. L6 A4 y' r: ?* y2 W% B! M
# q: `$ U# l/ X$ {: O

+ `; \5 Y3 i2 W/ m

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适& t! W2 i) O5 Z/ I
结果尝试刷新了一个已经释放的图形
6 |8 O. V, O7 `; K* n
8 _3 v+ }6 P) i# I( F8 N, G* F$ b' d) \- I
7 E0 {$ {( x: t
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?3 m( C3 u( |7 Q6 `0 }
复制代码
不要后面那个条件貌似就没问题了。( X. j! I" t8 P* M
6 A, L0 ]: _* D* r, T0 y+ t

7 C1 j$ k, z: k 1 w% b) v4 s. R% b! A  ?9 O. _+ i6 P

" g4 B9 S3 R% O+ O& ?  W+ P
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55   N  B+ j* |( O: }9 Q
貌似是释放的条件不合适
7 T3 A2 r. @4 k5 ]1 [  z, ^0 S结果尝试刷新了一个已经释放的图形
- |3 V$ n  C% p) g- i0 U7 T: q5 _' {
把後面那個條件弄掉後,的確沒問題了
9 ]. x. n5 a6 E0 D) d$ J目前從關頭打到關尾結束都沒再彈什麼錯誤
( p& S5 }, B7 f  X2 R( s非常感謝: [- k& D: w0 q8 {9 p; g
8 t/ V. R4 E" s. m4 a* {- `! A' }( v
不過我是參照著別人腳本改的
8 Q. R" s/ r/ C/ D8 O: K  O他寫的條件式也是那樣,但我用他的沒什麼錯誤
4 M8 m+ ]0 ]) D5 |6 `3 n: T! |不知道是怎麼回事
* f  e5 x$ K- P9 c是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
& X1 l# B0 V7 h1 K* p我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
& n7 Q/ v" Q# P8 y+ Q8 ?8 v  U嘛..这个数组吧..我在以前试写队友的时候关注过一点
! ^% o1 V- S; e* O7 C/ N0 ?% D不知道XAS内部对它做了什么手脚还是为啥," M6 w# K% G* c1 g4 X6 x
总有那么一瞬间,没有被消灭的敌人事件也变成了nil
! [& ^) n5 O, L# V% S8 Z1 ~" N9 `$ f9 z! K2 a- n- s9 M
$game_map.events.values[@enemy.id].nil?* A# f' W. c- c) [3 Z
因此自然而然的返回true并符合条件把图形释放掉了
5 l) t' k  d" c5 }$ M  b
  j1 f' Q" Z+ ]' [8 N' K  FLZ应该有注意到吧,
% N; ?& a/ z) z0 Z我测试的时候发现报错前几帧,图形会消失,
+ v" Q" E: t- u! P- A应该就是“误以为敌人被消灭”了。
9 X! n3 {' M4 r+ u$ h5 c  k& D$ _3 k% r# `' v/ q- I
受限于个人水平,至今无法找出$game_map.events的真相..
. t" D& I0 s, J' ]: P+ }4 B. `
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
( I8 h  ]: A/ u2 J$game_map.events# g% a5 n7 {, X3 o0 B
嘛..这个数组吧..我在以前试写队友的时候关注过一点
% g% v5 T5 l  a9 @不知道XAS内部对它做了什么手脚还是 ...

9 i. q4 H( H: T% `當初我把那個條件式看了三遍,都不覺得他有什麼錯
9 O" ]/ @" |! F原來還有這麼深奧詭異的事XD) t2 X- d0 b' x! j( p, g

& k) D; p' _  ?- `" ~. ^' ^錯誤發生前的確會有圖形沒顯示出來
; Y# U" }9 X9 H( ]不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
! u# Y. S2 U6 m( \沒想到居然是詐屍了XD+ e! g* p) c' k3 P4 _8 \5 A5 B* |7 |

: Q3 E) }2 f! i9 d+ G' t5 _: i不曉得3.91有沒有修正這問題..., q. @0 s! U& ^: ?; g/ t, _
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
; {! @* M' T/ [+ D9 O4 G; l, K3 U$ X1 _% {
的确3 }5 `4 \2 d+ x
用惯3.82之后想去整3.91觉得压力甚大..
+ M' V) r& ~/ J4 b# P干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。1 k$ T% {5 s  ?$ j: @9 l0 t  ]- D

0 z; k0 D" {" B然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2024-11-14 15:08

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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