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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
: j* g  W+ z( J7 L% `8 b會在每隻事件怪物的腳下顯示4 u. E$ E# u; w" F
問題是不知道為什麼
( o% P$ V' B( n有時打怪打一打會跳出
! B- l# I: s3 _4 k! E! g---------------------------
1 y6 `8 L% x2 S2 kXAS9 y9 D* f! {9 y/ a  \
---------------------------
# ]: f) R' g( _1 Y, O5 S脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。. x8 K+ y# G7 z, }
5 g$ b4 b9 H$ f3 @! ~  }0 u- A9 l
disposed bitmap" ^6 B, P) H+ L
---------------------------8 t) G( @0 l1 _3 d$ U; T7 N
確定   , m# y7 R, H  V1 w/ h
---------------------------$ |  C9 o; B" K* N) @

" B0 b3 O+ R2 ]7 O3 i" e這是腳本
' Z4 G4 |0 [$ Z; F1 ^8 `7 B. S9 |4 O! v' W: H
  1. #===============================================================================
      s# h, u' M) ]- ^' ?
  2. # MOG - s Hud 1.0      
    ! v5 ^0 |3 w9 h/ T5 D% {4 q0 W; y
  3. #===============================================================================4 S% F( m9 ~# D+ K) M6 _& I
  4. # By Moghunter 4 t$ \! q2 F0 A3 C4 d1 }
  5. # http://www.atelier-rgss.com
    9 F$ T# Z' d5 ?$ q+ p
  6. #===============================================================================
      Z) ^5 N  r- n2 z
  7. # Translated by Calvin624
    5 _, E$ y6 G0 N
  8. # http://www.xasabs.wordpress.com
    9 [1 R4 Y* d: n$ B# A# G! V- T
  9. #===============================================================================
    % S8 c0 e' k" S8 U4 ~; b0 Y4 e  g
  10. ###############################-DESCRIPTION-####################################8 r( p1 z, K$ [# g' I& H
  11. #===============================================================================2 J; T( {8 T: a( G
  12. # Personal HUD – displays the HP and SP below the hero.+ [7 H9 d! l- b7 a
  13. #===============================================================================
    8 O: z- F4 I; _
  14. #
    0 H8 ^/ N1 N4 ~# Q
  15. # Graphics required:: W+ a$ a4 @1 p' i( |" r
  16. #
    / I! M; j2 p- S% T# Z4 a: |
  17. # S_Border_HP_Meter.png
    $ r1 \+ T6 R. F3 ?, x4 \* y
  18. # S_Border_SP_Meter.png5 P1 Z' k  X1 q( U, p; l
  19. # S_HP_Meter.png1 Z! R. E( O# _* O0 ^- H
  20. # S_SP_Meter.png
    7 P, B" U1 y9 h/ y
  21. #, S( w+ @3 J4 j- `% v, g' q# v  l" n" m
  22. # All images must be in the Windowskin folder.; o$ K9 P9 ~' N( Z
  23. #
    + ?2 x% ^% N0 w3 k% }* Q, T3 J
  24. #===============================================================================  W5 X. t. E& d6 ]0 r' E
  25. module MOG
    7 N, M/ G$ w! G( [. G- C2 z
  26. VISIBLE_DEF = false  
    7 o! X) |# R( c" m* p0 G
  27. # Show HP meter?
    # I! i1 J/ A5 n; P, h5 i$ s
  28. HP_HUD = true: z7 q% S4 s; [
  29. # Position of the HP border
    + h8 W: u" e$ Q" C
  30. S_BORDER_HP_METER_X = -2
      ]# ]7 d6 C( s" }* r' E/ ?
  31. S_BORDER_HP_METER_Y = -2  
    ' G0 j( q; Z' l* e- Z+ M
  32. # Position of the HP meter
    5 m; p% z) O8 Q
  33. S_HP_METER_X = 03 ^( m2 S% C4 H6 F% f2 b
  34. S_HP_METER_Y = 0
    - \+ ]: Z, B/ m" K$ \- E2 u( m
  35. # Show SP meter?
    ! e& [  [/ ~3 j/ G
  36. SP_HUD = true3 q" p1 ?8 \0 l* A+ e
  37. # Position of the SP border
    , W6 T8 h7 O4 `3 D2 @
  38. S_BORDER_SP_METER_X = 0
    * D4 o8 ~# d) w1 {4 M
  39. S_BORDER_SP_METER_Y = 10
    8 B: k  G, }2 r& r7 M& T1 f
  40. # Position of the SP meter
    0 P' `6 }. E0 m; h# I, L0 b
  41. S_SP_METER_X = 04 k' z4 x: F( {8 E) G
  42. S_SP_METER_Y = 10
    4 m& K2 [4 A/ l& K9 D' m0 G
  43. # Switch to disable the HUD
    & I* s" G2 |' a
  44. DISABLE_SHUD_SWITCH = 5; T6 r0 G" u8 x. \
  45. RANGE = 20) v' ?  _: k( K9 t2 m
  46. end0 j. x/ L: [! A: a, z
  47. #===============================================================================: R- y  g6 f, }' o1 c
  48. # S Hud6 F! M0 O& V% k) P, Q
  49. #===============================================================================
    ! v: f2 ]' F9 u2 c  q* r8 X
  50. class S_Hud < RPG::Sprite
    2 v0 N/ `: ?/ E: r6 T5 Y
  51.   include MOG, G) B- h' p! |. }
  52.   #--------------------------------------------------------------------------2 ~* J2 E  R2 s9 k
  53.   # * Initialize+ }$ O; `1 a* |% {( d
  54.   #--------------------------------------------------------------------------
    2 p7 x- }& V8 w! l
  55.   def initialize(enemy,viewport)% V( [& g& v3 Z! j
  56.     super(viewport) + b3 c" M# I$ P, U% T! I5 R+ K
  57.     @enemy  = enemy. h2 f5 W1 R: ?% E4 x. V
  58.     @battler = @enemy.battler
    1 @' H" S8 B* R" O! ]
  59.     @old_hp  = 0! y; H9 T) Q0 M. a: [: L
  60.     @old_sp  = 0& n  }9 f$ O1 s; l' x
  61.     @old_vis = false
    * k6 B: n/ H% s# {+ {
  62.     self.bitmap = Bitmap.new(100, 100)
    9 b0 y1 {  ?( l
  63.     self.visible = (VISIBLE_DEF)#false
    ! H! E0 u$ }# Y6 P
  64.     self.z = 100
    3 g: A& w' E' A; s9 V# L( d8 l+ F
  65.     #HP Border -------------------------------------------------------------------
    $ O/ N  W3 ^, n0 e& F% n
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")' g3 @( f4 H4 o+ i
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height); f7 n1 L- ?8 p" P& E$ @' k; E
  68.     @layout_sprite = Sprite.new
    # [' w2 A! N- b6 q: M
  69.     @layout_sprite.bitmap = @layout_bitmap: q" H1 r# K2 m* M) ]) i. n, W. J
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    7 d/ ?. l; A+ e6 r
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    5 R. `( u4 {9 h6 w. m2 R
  72.     @layout_sprite.z = 50014 b+ I8 f+ x" Y2 S% E, o2 j
  73.     #HP Meter ---------------------------------------------------
    $ a4 n; w: l" W6 b% v
  74.     @hp_flow = 08 {# K$ {) Y& ?
  75.     @hp_damage_flow = 0
      R, J' m5 C" \6 e0 ^- _
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")/ [) C! W+ Y: Y. A) V) U2 j
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    $ g' b5 m+ p. R( w! x8 n# X
  78.     @hp_range = @hp_image.width / 3
    ( ?' K6 g. S5 \/ w
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  & `6 i1 `' h; m6 {
  80.     @hp_width2 = @hp_range / 2
    $ `" O7 w9 Z5 H* v) F- o
  81.     @hp_height = @hp_image.height / 2
    1 H; w+ n0 S# o/ c* }* g3 b
  82.     @hp_width_old = @hp_width3 Y2 x+ D* }# F! B+ U1 ?
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)( |% w( c. _+ o% Q: l
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    ( C. Y0 ?# z4 I: W- g% g
  85.     @hp_sprite = Sprite.new6 p$ o1 G- r  F& z6 R9 r
  86.     @hp_sprite.bitmap = @hp_bitmap
    ' g& Y8 H' }# r6 q0 N2 ^7 {3 k
  87.     @hp_sprite.z = 5002
    + Q9 P' {' s; E, H/ z2 G
  88.     #SP Border -------------------------------------------------------------------
    - j: F2 U( d& G$ ^! O
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    4 X8 c. ~6 t3 S( ?
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    ' b% C$ G8 _( O: G
  91.     @layout2_sprite = Sprite.new
    ) K( H% h0 ]0 p' A; g% L# p( Z- M
  92.     @layout2_sprite.bitmap = @layout2_bitmap7 o* m$ p4 n( U6 l- D
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height), A, `% e5 I2 |- D8 G! \
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      ! V, c/ D6 X% }! [" E3 s2 c, Q
  95.     @layout2_sprite.z = 5001   
    & h+ E7 U4 e$ Y# P
  96.     #SP Meter ------------------------------------------------------) g- u0 }: \7 l. }' T% N8 ]
  97.     @sp_flow = 0
    5 _8 ]* H- ~" K% ?8 B8 Q
  98.     @sp_damage_flow = 0
    # Q% `7 A4 [2 z+ Z: L% |. V7 f
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    1 v- ~/ O' ^; \( n
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    / V' j% V( E( O
  101.     @sp_range = @sp_image.width / 3
    * Z6 ?7 Y* o( ~3 L
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    * p, V( G' r. t# @
  103.     @sp_width2 = @sp_range / 2
    + l, i& G; n9 ?. J9 Z; k
  104.     @sp_height = @sp_image.height / 2
    . ]2 d& [. }+ H9 h# P6 V$ |1 A* H/ T
  105.     @sp_width_old = @sp_width
    ) Y6 F+ ?; c  l+ B
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    3 l7 ~* C! Z1 p. b- l  }$ M
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)5 f9 w4 @8 \" R( y
  108.     @sp_sprite = Sprite.new, [& ~# i- t6 i
  109.     @sp_sprite.bitmap = @sp_bitmap: C) h  K/ c6 E% v8 q( L- ?
  110.     @sp_sprite.z = 5002
    ( a) X- }+ m( H5 K6 V" p5 O
  111.     update( P: u9 s+ ^2 E  h6 I0 D
  112.   end
    4 ?0 i( g6 V; W
  113.   #--------------------------------------------------------------------------
    ) d! e; d4 D' }+ t/ ~, N
  114.   # * Refresh2 e9 n$ a: d1 E! ]+ s8 _' B
  115.   #--------------------------------------------------------------------------
    : H! q% n3 Q/ k9 `5 `, |
  116.   def refresh- b( N6 O8 p0 w; P- B8 x; t
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible; J# V! h, Y2 d8 b7 s
  118.     self.bitmap.clear( q8 Z* n$ O2 Q' p- W0 H/ [5 [3 C
  119.     @old_vis = self.visible
    + X* Z- m! w' Y/ m  k
  120.     @old_sp = @battler.sp% V3 l$ u& h, t# {  j" R' T
  121.     @old_hp = @battler.hp1 n+ q% ^' V; y* L9 O. a
  122.     hp_flow_update
    . t5 B* \0 h8 K6 n; i* v0 K9 B4 A
  123.     sp_flow_update
    ! `0 V, H9 q& R  I- A+ R
  124.     hud_pos_update! R, p5 J/ ?  n
  125.     visible_update+ ?0 B0 P/ `$ E% [) M4 X
  126.   end7 {6 T/ j0 v, y  ]9 u
  127.   #--------------------------------------------------------------------------- ]2 x. {6 b8 h, J. @
  128.   # * Dispose
    " q: Q: R0 H. R% |7 t% n$ y1 C
  129.   #--------------------------------------------------------------------------+ e. S) W7 z% f5 G+ H' M. e/ J
  130.   def dispose2 p5 o1 f( r$ i) ?+ ?7 ]
  131.     #HP Meter Dispose
    3 t% D4 R# M, D1 s+ l- x
  132.     @hp_sprite.bitmap.dispose
    ( K: g# @, S1 R; o
  133.     @hp_sprite.dispose
    % [7 ]+ {  G) A3 y9 u- D# p0 f. `
  134.     @hp_bitmap.dispose
    - ?9 [+ X5 X9 K# Y' L3 m
  135.     #HP Border Dispose$ S/ H6 B0 V. i
  136.     @layout_sprite.bitmap.dispose
    9 D# m; J0 C. X
  137.     @layout_sprite.dispose
    # F3 H& ]" z7 Z; t: Q, t& I' H9 ^
  138.     @layout_bitmap.dispose
    ' ^3 {1 `  H% m# q' @4 D
  139.     #SP Meter Dispose, {; \- M! D: O* |  i0 O% G
  140.     @sp_sprite.bitmap.dispose0 B8 @8 f+ M: \. @
  141.     @sp_sprite.dispose9 i5 W: \" G$ ]& d# n# T6 _: w
  142.     @sp_bitmap.dispose
    7 d1 `' q2 J* w; f
  143.     #SP Border Dispose: Q$ ]  Z! T0 }% V! `$ d- H/ F3 y$ B
  144.     @layout2_sprite.bitmap.dispose
    ; `9 h7 }$ G3 X( U( I  a
  145.     @layout2_sprite.dispose" k5 n! X1 z/ z7 C5 S3 Q  k8 C7 Q# p
  146.     @layout2_bitmap.dispose
    ( c2 F: k2 V9 _9 c6 ]# }- R: ^: T
  147.   end  w0 k, C3 m9 s" F! Z
  148.   #--------------------------------------------------------------------------
    3 |% h2 d% I' R2 ?+ L7 ~4 z$ ]
  149.   # * Update# B" x- ]$ R' e
  150.   #--------------------------------------------------------------------------
    / B. }0 b& v/ T* l
  151.   def update
    ! }7 |( |5 ]( R4 f
  152.      @battler = @enemy.battler
    1 r  K' ]4 ~7 X2 h
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    + e! N+ z: o& I! h' }. x
  154.      if self.visible) T6 Q1 |5 \% u! q. v
  155.        refresh
    : V" N6 W0 _' ?3 ]
  156.      else
      d, K% T1 f9 l) G% ^+ I& J
  157.        self.bitmap.clear% I% d) M" R5 K9 G2 L: Q
  158.      end
    - {% f( g0 E# F% w5 k
  159.   end1 {2 J# c+ F0 V* h6 a, p
  160.   #--------------------------------------------------------------------------  K3 B# R/ o- I: [9 c1 J
  161.   # * Visible Update
    9 Q3 r, s, m/ ^. V. ~  l7 n- F; [
  162.   #--------------------------------------------------------------------------
    . n2 z7 X' J5 ]0 S$ O* R. Q
  163.   def visible_update
    8 ^1 B- P4 L/ X" H8 o8 ]. f2 n, R
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true  _0 ]$ X6 U, n: K" z
  165.        @hp_sprite.visible = false
    2 V1 k: ~/ k: c! ~5 ~5 o6 R- ?
  166.        @layout_sprite.visible = false
    ! y2 y, f8 \( k% o
  167.        @sp_sprite.visible = false& U/ K8 `8 T+ e, e
  168.        @layout2_sprite.visible = false: l: [* w) ~  j$ E7 n
  169.     else% p, w6 h1 G6 |3 g  d* E3 ~7 G
  170.        if HP_HUD == true( [4 o- a3 b: P* F4 ?
  171.          @hp_sprite.visible = true7 `# t( l$ P! T/ v4 P
  172.          @layout_sprite.visible = true; [0 @4 u  _) `% I0 I4 z: |
  173.        else- j9 n, g4 l' R6 b( C4 V
  174.          @hp_sprite.visible = false
    $ k) K5 \/ j9 k# {
  175.          @layout_sprite.visible = false1 `8 L" H4 p) d" O8 h
  176.        end  9 v9 R+ N9 e. V# V# t: X6 B
  177.        if SP_HUD == true/ I3 r! W# ?" p1 U- e
  178.          @sp_sprite.visible = true# H7 |$ ~3 V; r% ^3 d
  179.          @layout2_sprite.visible = true1 B0 I& K3 L# e- a& d1 s
  180.        else
    2 G2 ]$ S0 p' \
  181.          @sp_sprite.visible = false
    , Z  [  V& G. Q$ z% t8 W( X
  182.          @layout2_sprite.visible = false
    * J" G. d4 z/ \2 u' [$ s
  183.        end
    6 O( t& C* k( F) _5 ]; l
  184.      end    B/ e4 U6 }5 ~% h
  185.    end 3 W0 I: l5 u' b% b& Y; ]
  186.   #--------------------------------------------------------------------------- e! ~& b0 j2 _! y, V
  187.   # * Hud Pos Update
    3 R+ f* E* _1 ?% P9 l
  188.   #--------------------------------------------------------------------------
    0 Z" Z5 E- B1 A& c; R0 C) N- }
  189.   def hud_pos_update3 Y& t3 H1 ^, p  L$ @7 `
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    8 L; w9 Q0 ~* \4 I9 s' L
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    3 h4 q0 e4 |2 ~' H' _
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X6 g$ ]3 \2 R! U, P& q
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    ( c7 P9 t2 M/ Q+ a% }
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    $ n7 I9 [$ g& U1 A& n% H
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  & N+ J$ ~& ~$ F2 c  u% }) Q6 Y
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X$ Z( K! |" J5 C" v4 j: U. ^! G$ P
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    7 [( s3 B* y- [
  198.   end  / Y- t. x* L: O( J) q, S1 B
  199.   #--------------------------------------------------------------------------
    . U8 t9 y1 H$ J9 @* O: A. x' U
  200.   # * Hp Flow Update4 [2 t  o$ M2 }" `6 \
  201.   #--------------------------------------------------------------------------
    ; t8 I' O9 V4 N5 U3 N3 b
  202.   def hp_flow_update
    # d5 s! C4 N2 l
  203.       @hp_sprite.bitmap.clear
    / \. J+ P+ m+ B/ w6 s
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    . W0 U! m9 e0 O% F9 x
  205.           #HP Damage---------------------------------
    9 Z. x& Q. j+ i3 g* C. _
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100  a1 w1 Y; N9 Z' T
  207.           valor = 0.5 if valor < 1          6 w4 b& n! U  B: z$ K
  208.           if @hp_width_old != @hp_width
    / Q- n9 V; p, S2 S. b' x& ^
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    3 {9 _) N/ y: s3 n7 {' S- e/ R; q
  210.           if @hp_width_old < @hp_width 3 r9 ?& Y. e. U  Z4 b. S
  211.              @hp_width_old = @hp_width8 i, K: t5 t  g3 B- ?8 I% N
  212.           end      
    ! R" F$ e/ V  J) ?: l  m
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)& }, |! b' O% G  s; B1 D1 {  x: t; ?
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    ) \0 l7 J2 n0 z5 C, ^
  215.           end        , ^, ^, ?5 \1 ^' p0 K  K
  216.       #HP Real------------------------------------. \7 ^' @$ C& f6 k* q# d
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    & r2 q; A# P' z& g
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    7 p3 K/ E! I, w5 S9 n
  219.       @hp_flow += 2  
      T7 V1 `# p% U0 a2 F! p0 L0 A
  220.       if @hp_flow >= @hp_image.width - @hp_range
    4 D0 T- ~5 B8 R8 B1 I/ E' B
  221.          @hp_flow = 0  8 p+ A- g6 h1 P! F; e) a, e
  222.       end7 `; C. ^: {3 V% U9 M3 X
  223.   end   
    8 v: \& H" Z" b' s
  224.   #--------------------------------------------------------------------------
    1 ?; F1 H: h+ f
  225.   # * Sp Flow Update9 I/ ~. m$ N) q0 |
  226.   #--------------------------------------------------------------------------
    8 j) {8 h- V+ \( \% s
  227.   def sp_flow_update  j6 m. X; m8 M$ ]
  228.       @sp_sprite.bitmap.clear, D0 a3 u7 Z' V! q( s# }- H6 L/ J
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    3 A$ u' ]# g5 B: a
  230.           #SP Damage---------------------------------1 |3 |, U! A: d. B
  231.           if @sp_width_old != @sp_width& _0 J" m7 a5 R. p8 Z3 N" R& N
  232.           valor = (@sp_width_old - @sp_width) * 3 / 1008 q& B1 Y! M( O' F( m' Z
  233.           valor = 0.5 if valor < 1              
    6 I( s3 g$ _8 {5 l" A0 M
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    ( t' s* r# L5 s3 _
  235.           if @sp_width_old < @sp_width
    6 q9 h: a4 [3 F, ^- l0 I' r  {
  236.              @sp_width_old = @sp_width/ g+ m; ~1 z; h% d+ T: ^) F
  237.           end      
    3 {" a  i# d' e& g6 X+ W
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)2 h( E. S: s! R4 R, X. T
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) ) V% G" i/ \( Y+ Q9 A8 g
  240.           end
    ! [. t! b9 T& n( U  ?- q( T/ s
  241.       #SP Real------------------------------------2 @2 V( E& b& C5 n, K
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    9 l5 M7 M" v+ w: o7 }8 e9 r( q
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    % U' M9 g2 U6 x) x9 `) Y
  244.       @sp_flow += 1  
    $ ~5 x, l2 o. z! m- \) A4 J% E* ^( o
  245.       if @sp_flow >= @sp_image.width - @sp_range9 Y' _, m5 ^& R$ e
  246.          @sp_flow = 0  
    " N4 e5 W* _! n% u
  247.       end  B* g' g$ h3 x' t+ Y
  248.     end            
    ; ^2 w* w( V7 m  k7 f
  249.   end
    ( u, k0 u- g/ I8 _$ u/ X
  250. #===============================================================================
    9 R+ v8 ^3 \, h# s# m" S7 L
  251. class Sprite_Character < RPG::Sprite
    % R5 x  @. o% r& F& ?
  252. #-------------------------------------------------------------------------------/ S4 z% k" C! `) L
  253.   alias :xas_emini_hud_init :initialize
    6 n4 D: Z8 j2 T! u& y  _
  254.   include MOG
    7 V! r8 z! W* j* P8 _
  255.   def initialize(viewport, character), a& h7 |: @- Z6 Q0 A2 W0 D
  256.     xas_emini_hud_init(viewport, character)8 Y. A7 N9 Y2 e  D0 f9 m
  257.     @viewport = viewport
    : x) n1 M+ V) N5 m( M
  258.     return if @character.battler.nil?
    ! Z! z4 F' T$ p' c0 m" w3 U
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    1 k5 z4 |+ N/ F3 A: S9 H) F
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)3 A' a: F' w: e: C  a$ l% H
  261.     return if @character.battler.is_a?(Game_Actor)/ b- g- u& j9 P! D: B" ?
  262.     @bars = S_Hud.new(@character, @viewport)
    7 {6 a! T2 @# \3 Y: Q. ?
  263.   end( }/ h5 ^- X& u) }
  264. #-------------------------------------------------------------------------------
    4 [6 V; {( f# i* P  D/ n2 u: W
  265.   alias :xas_emini_hud_up :update8 v+ S  }6 g$ q* E0 n3 E5 R- ?. S
  266.   def update" K+ n* U, m& N, ?) a8 `
  267.     xas_emini_hud_up
    4 f  U3 L: o  d
  268.     return if @bars.nil?+ E8 E: v8 t5 m% J1 |* M
  269.     return if @bars.disposed?2 a" ~% o1 c/ K/ ~/ l2 x1 R, Y4 ~
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    9 ]8 H9 f5 E( {$ c
  271.     @bars.visible = (dis <= RANGE)
    % X: H# E1 z6 H
  272.     if @bars.visible
    . w/ a. L2 ]5 m5 m, a: _$ A+ y
  273.       @bars.x = @character.screen_x# - @cw / 4$ ?/ Y9 ?- R+ L" |
  274.       @bars.y = @character.screen_y# - @ch / 4; v, |0 Y. j4 W) Y
  275.     end
    4 B& g9 `( n; ^& ]* ?$ A4 G+ E' N& [
  276.     @bars.update
    5 G9 C4 q' b0 V4 x% C
  277.   end6 m2 @" a8 Z( g/ y1 a, z
  278. #-------------------------------------------------------------------------------
    6 L3 g8 A. m+ K  F. l
  279.   def dispose9 k3 N) _" \; J: X* j: k
  280.     super
    8 d) w7 b( |- [& J* {4 Q6 Y$ T4 V5 f
  281.     @bars.dispose if [email protected]?
    ; r: o9 I5 b7 ]3 R$ H  o' n
  282.   end! z2 h+ t1 Z7 i- n/ L# E7 D
  283. end) [0 [$ H% Y7 }) @

  284. , e0 [. t" P7 u7 b. D0 O
  285. $mog_rgss_s_hud = true
复制代码
7 |$ P& F0 n1 V% C9 N

! l$ n6 q- K8 E4 i5 R7 J' H4 l7 u' R( ?6 P* l7 }3 I* g$ d  ~) ]
上面所說出錯的203行內容為% y; R" U! \: \/ w
@hp_sprite.bitmap.clear) J: h8 G* ?! q4 N: R

" [" k+ M5 f# }8 }, v  ?$ `- u想知道怎麼解決
' L) P% m+ D0 S; k' B5 |$ _1 l2 g4 O4 E7 Z8 Z8 B  }
該腳本支持3.82
4 l) P; ]$ r0 `+ l4 i) z* q- T% F4 |# F5 [
下面是圖檔,要塞在Windowskin下
' C5 j: a% J: \! @; L
' M  @6 Q9 }' O# Q/ Y$ ] S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
) D* C! V* L' X! X, u; E
/ v. v! A4 ]- T8 a0 Q, h
! N" m* f% q6 }0 V$ @& {4 h5 V
, A2 ?- p$ g6 h5 K: f5 U- h$ f' ^

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
' c, z$ `' F+ f7 g4 p* ]结果尝试刷新了一个已经释放的图形
/ E( S( V" P, {( s+ ?& a0 \0 c! g

, c' j0 |+ Q# n. U" c+ p/ N
  _4 N9 w. x  ?' e) ^虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?3 ?: W: k( b3 C
复制代码
不要后面那个条件貌似就没问题了。
& Z5 `/ P, X1 n! Q! R) G, K4 }5 K/ l4 h& n: y

! t# m  n1 c6 h
6 z& e) F9 H0 `9 J0 Y9 Y/ Q2 m3 [5 f& ^% Q# B5 J
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
371
在线时间
1770 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 % A$ y0 c4 T) l$ L& f6 R3 w1 s
貌似是释放的条件不合适
" P6 T, s) w2 n( R2 k- x结果尝试刷新了一个已经释放的图形

9 C# t% q/ i) L( X. t9 X把後面那個條件弄掉後,的確沒問題了
" ]8 N, h0 ^, i- p目前從關頭打到關尾結束都沒再彈什麼錯誤
+ j4 o: B- L( T- P$ Q4 R非常感謝
' [2 @6 ^) G; p
& |7 G( J6 I( C% ~/ A  z- g2 A不過我是參照著別人腳本改的6 M/ A+ x9 Y& B3 q2 j8 p
他寫的條件式也是那樣,但我用他的沒什麼錯誤7 \7 w; N- M# \5 m# u3 u' B- s: _8 C
不知道是怎麼回事. L+ L* l6 t2 L5 o0 A
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的" V+ r7 a* O% g: |
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events  ~2 ^6 F- I: ~5 t1 V+ [" |
嘛..这个数组吧..我在以前试写队友的时候关注过一点
, X7 O; s% R* T) S  v6 ^不知道XAS内部对它做了什么手脚还是为啥,
0 [3 \$ l# }' M$ l$ I总有那么一瞬间,没有被消灭的敌人事件也变成了nil4 q% U3 C% ^7 c5 e

$ V' p' n3 B7 s3 _% i; q& h7 D$game_map.events.values[@enemy.id].nil?; a5 E, ^3 B5 E/ B4 l1 r
因此自然而然的返回true并符合条件把图形释放掉了6 p6 H) ^1 [8 @9 v
; S  L. I6 {; x- A6 I) s' }7 t; O
LZ应该有注意到吧,5 S  X6 V9 K. C7 I  j
我测试的时候发现报错前几帧,图形会消失,% y; z( q+ O& T, d% C. |
应该就是“误以为敌人被消灭”了。
  S9 J/ l% g' m, G% \' t& O
# s' y) b) X% z/ x$ ^3 a受限于个人水平,至今无法找出$game_map.events的真相..
' t9 S8 C! @' U6 K2 w
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
371
在线时间
1770 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 , F+ m8 A+ D  d- Z: Y
$game_map.events. g$ V. J$ c6 S0 n, @! G- R0 I- @2 o
嘛..这个数组吧..我在以前试写队友的时候关注过一点
2 f0 k; \& Q/ _  W; j+ y不知道XAS内部对它做了什么手脚还是 ...
& [3 B. P1 q0 r( t) R
當初我把那個條件式看了三遍,都不覺得他有什麼錯
8 _" K: a0 V- t) J原來還有這麼深奧詭異的事XD) s/ c$ b7 t' `& g  g) \
; F2 W$ Y- `  p" }4 g
錯誤發生前的確會有圖形沒顯示出來) m9 f' r% t2 [3 U
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
0 Z& K# I4 y& F4 X- ?5 n沒想到居然是詐屍了XD
- p$ _' V# h) T* Z7 ~' c$ E( A. A0 ^  S2 l
不曉得3.91有沒有修正這問題...
( i! H1 N; t+ E1 g; d  c不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
& d; n  _% K! u- X& T% x4 P# V! ]( o+ F  x
的确
- @' N( }# c' B+ v+ L用惯3.82之后想去整3.91觉得压力甚大..
; v; I3 \1 V' \/ F8 g干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。3 i: f, v0 [3 D/ y5 A' S
2 ^, }; E( ?: ?/ i0 Q* w- Z" T% H
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-6-8 12:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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