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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
! [( x2 l7 a) t會在每隻事件怪物的腳下顯示6 w& g- Q8 r+ U* Y! i
問題是不知道為什麼  R& i7 H" H/ B
有時打怪打一打會跳出$ D: V% Q) F- d1 [0 r& Z) S+ Q
---------------------------
- B6 ?2 c: {# @+ ~XAS4 K4 P# g1 o& M6 E
---------------------------
/ p! i7 }/ w7 S/ b$ ]  l脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
8 Q; q7 q' b7 f- G$ D/ ?! u2 c0 `( z# Y6 }! v! Y7 _, v
disposed bitmap
+ G8 k2 u6 u8 A0 b# }: k9 E9 w6 a---------------------------
6 z0 C! G! L; c+ Y% k確定   " v8 J4 t8 u  _% }! `
---------------------------4 n/ R* b: h& g
# B: F  g6 O4 k! f( e
這是腳本
5 \% G1 f5 Q+ M2 L5 d; {
) e, R) S/ g  t9 }  z& d
  1. #===============================================================================
    0 \6 y. {) ], E. y: R, W, d, ?
  2. # MOG - s Hud 1.0      1 v, r% H* u% z* ?+ ?3 L
  3. #===============================================================================2 |, O# Q* J. J4 Z2 B0 V( Z
  4. # By Moghunter 4 ^3 g: M% Y' W: Y+ M4 I6 b7 w
  5. # http://www.atelier-rgss.com5 t1 j/ G1 M) V( F* A! K+ p
  6. #===============================================================================- A" Y6 e% y2 E: U
  7. # Translated by Calvin624
    7 n, j" K0 b$ T! `
  8. # http://www.xasabs.wordpress.com
    / j& C/ M/ a2 {2 d3 k# Q" L
  9. #===============================================================================, u  Q' Z9 X; ~9 G9 p* J
  10. ###############################-DESCRIPTION-####################################5 f+ f- L9 c% R2 y0 n0 q. u/ d
  11. #===============================================================================
    ; s! i3 R9 |/ Q. [/ N
  12. # Personal HUD – displays the HP and SP below the hero.
    6 B6 G! j' k3 s' ?2 L
  13. #===============================================================================
    ; A. ~  N% r) x% _# a# K: R
  14. #& \3 u2 ]+ _% [0 M/ A$ m8 P
  15. # Graphics required:
    * d& w4 F# E3 V/ C2 v
  16. #
    0 s" r% H) q3 C" \! Q4 ~1 k4 ~! n
  17. # S_Border_HP_Meter.png2 R; [/ d  E6 l; m# G
  18. # S_Border_SP_Meter.png. w  T: q* S7 }& K; k/ t: Y% @
  19. # S_HP_Meter.png* i5 \' x, l9 w% p/ l8 c+ m
  20. # S_SP_Meter.png+ S( d! \; e/ E/ v5 I
  21. #: d4 e! g# O. {
  22. # All images must be in the Windowskin folder.. W9 ~3 x; w# S: L# Q0 u
  23. #
    / Y- p! R: C& E2 k, N: H
  24. #===============================================================================6 m' {0 t) b# t$ }: o5 e/ N% Q8 A
  25. module MOG4 |1 V) ~: J+ W/ X
  26. VISIBLE_DEF = false  ( z4 O$ B5 a% O
  27. # Show HP meter?
    % R, E) A, g% R- y5 k" Z
  28. HP_HUD = true
    ' v  X! h# V' z& y
  29. # Position of the HP border
    : A3 C8 M9 ~# s* F$ i6 r
  30. S_BORDER_HP_METER_X = -2+ J6 z: D1 T& H* w& G
  31. S_BORDER_HP_METER_Y = -2  / \) a, ?; Z0 e9 ]
  32. # Position of the HP meter# U+ s  i# R5 M* ^0 ]- A; Z& G& l
  33. S_HP_METER_X = 0: e  V: P! ]! G9 U  v$ x1 ?
  34. S_HP_METER_Y = 0
    $ D- K/ K" C2 F. |$ M4 r4 t5 Q3 e7 n& v
  35. # Show SP meter?
    , V2 m0 e& H6 z" ?  c, V! V
  36. SP_HUD = true9 T+ S+ X+ i  h. n0 h  S! N; c
  37. # Position of the SP border4 S" i# M5 x; l- P2 d2 s
  38. S_BORDER_SP_METER_X = 0
    ' O4 A, k5 `: e4 r7 s8 B
  39. S_BORDER_SP_METER_Y = 10
    * ?) p8 S  ]3 r
  40. # Position of the SP meter
    6 ~" }6 [8 A4 p' Z: ]3 l6 L
  41. S_SP_METER_X = 0: s9 h  ?* D' N3 k9 l
  42. S_SP_METER_Y = 10, @* [1 [6 i. }& J: S
  43. # Switch to disable the HUD
    % R4 X5 J9 ?1 Y) A
  44. DISABLE_SHUD_SWITCH = 5+ K2 u! U" |- `+ R! [% w! k( x
  45. RANGE = 20
    , b) M. j7 K: _) t8 P
  46. end
    3 j( Z# k$ g! y
  47. #===============================================================================
    " o* j5 Z/ _+ {7 y& c
  48. # S Hud( P& A5 W, A- N# E7 `
  49. #===============================================================================0 {$ K2 [2 D" c8 {3 A1 n  L& V
  50. class S_Hud < RPG::Sprite
    9 y1 F0 K! V. Z* J: d0 p1 L3 j) G0 s; k
  51.   include MOG
    6 v6 r" M- q  t$ t! |2 \( p7 ]( F
  52.   #--------------------------------------------------------------------------) [: _$ u; ~. x. r/ K
  53.   # * Initialize
    # @5 ]/ x7 R: H. }1 K' k# \4 p
  54.   #--------------------------------------------------------------------------
    1 w8 b& X) c* ?# l8 q: {( M
  55.   def initialize(enemy,viewport)# ]; [" d0 k6 O/ ~0 a
  56.     super(viewport)   b1 D/ W- x8 V/ ~0 i) H+ t9 s8 _
  57.     @enemy  = enemy
    4 w( s+ S* P6 h# Z6 s7 D3 u6 E8 x
  58.     @battler = @enemy.battler3 E& A8 i& ]- v3 p: Q4 d3 v$ V8 a
  59.     @old_hp  = 06 t* k' K+ S5 l3 g+ b
  60.     @old_sp  = 03 C9 |8 y' ~1 h9 [( X# U7 Z. F
  61.     @old_vis = false4 ?5 y" P/ f+ }
  62.     self.bitmap = Bitmap.new(100, 100)
    6 f; I/ n. W# v) m5 a# Z2 {
  63.     self.visible = (VISIBLE_DEF)#false
    - S) l& t3 G- ?" z- o
  64.     self.z = 100  r8 v0 y; ]. W9 N% w2 \" ]& y) |- ^
  65.     #HP Border -------------------------------------------------------------------
    3 c6 H8 ]2 l" [0 L* C  [( H5 A* P
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")9 Z; W- y: O; t6 ]& v
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    4 ^5 }3 A/ S0 P* h
  68.     @layout_sprite = Sprite.new
    ' q) Q9 ^6 t5 j6 U, R2 e
  69.     @layout_sprite.bitmap = @layout_bitmap
    $ X2 {* I+ ^4 r6 m5 I% \# l
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)% e! }* ^1 o. K% s0 V$ r
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    0 B( `) N8 R7 A7 H
  72.     @layout_sprite.z = 5001) N7 F6 P0 V. S
  73.     #HP Meter ---------------------------------------------------
    9 S# Z- K' m5 @* U9 R2 q
  74.     @hp_flow = 0% }! S5 I. \9 F
  75.     @hp_damage_flow = 00 G9 k/ R# }  m" k; v" R
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    % i  B! Q  |/ T# i3 y) w* n6 y
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)* P( Z% u% ?- x, o% J7 n4 o, K
  78.     @hp_range = @hp_image.width / 3
    8 ?) v5 A4 b+ A, g/ v
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    9 N- q9 o3 w* j% f! W* u
  80.     @hp_width2 = @hp_range / 2( r% |. C; z# k3 f
  81.     @hp_height = @hp_image.height / 2  X# }0 q) T; H/ [5 x0 S
  82.     @hp_width_old = @hp_width
    ! g' e/ o1 V7 T# D+ C& b$ c5 }
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)! B5 }6 D3 G# ~$ z. N+ F
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) + n  Q1 k8 D* k+ |) z
  85.     @hp_sprite = Sprite.new% K" U% v, ~! f3 `  I. b
  86.     @hp_sprite.bitmap = @hp_bitmap
    4 I7 F! V# C7 ?4 R
  87.     @hp_sprite.z = 5002
    1 g2 }/ _# e' E/ L
  88.     #SP Border -------------------------------------------------------------------
    6 Y, s3 J( ^3 |: H
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")1 O: C: |: V, S5 Y( x
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    + h7 b) z5 K  s# q: l! U$ [! U4 @
  91.     @layout2_sprite = Sprite.new
    ! O- }3 y  m9 T" n. r+ N5 ]% z
  92.     @layout2_sprite.bitmap = @layout2_bitmap/ o; _- D7 J9 P' |- s8 m
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    * f) ?& G, N, {" D$ f. o1 R
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      ; h0 I; w. g* `, ?5 t
  95.     @layout2_sprite.z = 5001   
    ' v) X. T4 |+ g6 f
  96.     #SP Meter ------------------------------------------------------
    5 Y6 B. A0 ^7 J, w5 ~
  97.     @sp_flow = 0
    ) ]# K/ |8 L& N8 E9 y2 _
  98.     @sp_damage_flow = 05 ~* h* _( q7 S9 r& R4 d
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")! @' Y; B, ?; B$ {4 K
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)6 ~5 m; Q* T% F9 o2 M& f
  101.     @sp_range = @sp_image.width / 3  v! F$ i% ]* c$ v( I
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    + X- E5 g" F' U% ^: @
  103.     @sp_width2 = @sp_range / 2& V0 {6 R1 @+ i
  104.     @sp_height = @sp_image.height / 2
    9 q) S: E2 B( f: G% |$ t, h$ R4 x
  105.     @sp_width_old = @sp_width3 ~# _- B' @1 q" L- J
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    + P* C& O8 s* P& Q
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)# D$ ]* R' I- p) ~9 J
  108.     @sp_sprite = Sprite.new
    6 ?4 W. o7 V9 w6 o: r1 A: j; Z
  109.     @sp_sprite.bitmap = @sp_bitmap& h0 S6 H8 E" c& G: U" F% Y2 ]
  110.     @sp_sprite.z = 5002
    + z8 x( r% n. w
  111.     update
    ! {9 p2 ~3 x7 H% G9 c
  112.   end
    * s: j( f  U: J( u( `% y/ X9 Y, z
  113.   #--------------------------------------------------------------------------. b) |4 w% k6 ?- u
  114.   # * Refresh) p& j4 U8 ^* j' K& E- S
  115.   #--------------------------------------------------------------------------& M7 j1 C. q' R; q, \" F
  116.   def refresh
    % R6 B) `/ _" B3 n" ~9 R. F( |
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    ; u) }" r2 x" U  ]* c
  118.     self.bitmap.clear
    * @" x! c- }+ K& l2 ]5 \* x
  119.     @old_vis = self.visible
      d! U% e3 z/ m* W; h: w
  120.     @old_sp = @battler.sp
    ; ^1 Q4 w! S  V4 j$ Z0 _9 b6 z
  121.     @old_hp = @battler.hp
    ' ]& \9 K& Z# C, s2 U
  122.     hp_flow_update
    ) J. J" d1 l+ w; d# \& J
  123.     sp_flow_update8 B# V6 ~! l2 t
  124.     hud_pos_update
    3 h' S2 H4 M( ^3 w
  125.     visible_update: P4 r  E" j( K6 k1 X
  126.   end5 f2 I! g- h' p, K) ~9 a! N. h
  127.   #--------------------------------------------------------------------------1 s3 n7 O& Q+ V& T0 i; p& M
  128.   # * Dispose
    9 N$ d3 V" ^3 M" f- l8 t; g  V
  129.   #--------------------------------------------------------------------------2 l( D! @( \9 v
  130.   def dispose, ?, _. B8 D( c/ I
  131.     #HP Meter Dispose$ i3 b8 }& |- ?6 v# Y( v
  132.     @hp_sprite.bitmap.dispose
    9 ]2 U: E# [5 y* }, }# H) M8 ?
  133.     @hp_sprite.dispose
    " c9 J& c& S- c) p  y
  134.     @hp_bitmap.dispose0 n0 `" y7 @5 @; ]
  135.     #HP Border Dispose
    , g  E) A% [& Z! C- C- j: }( Y4 ?
  136.     @layout_sprite.bitmap.dispose9 _- L* w9 ~8 A2 n& t  X
  137.     @layout_sprite.dispose8 y$ t# y) B4 Q! w! O+ T# M
  138.     @layout_bitmap.dispose
    2 l6 r3 \1 A  L& q7 H3 n  j
  139.     #SP Meter Dispose
    7 C8 J6 F$ y: {! L4 u
  140.     @sp_sprite.bitmap.dispose! s" Y/ V0 {" u9 K- N3 A" K8 Q
  141.     @sp_sprite.dispose
    ! `* r: Q8 K4 \2 |. F
  142.     @sp_bitmap.dispose) d. n7 y1 H# X- D& O
  143.     #SP Border Dispose0 H% {; t- J! `
  144.     @layout2_sprite.bitmap.dispose0 f( Y" w5 z. ]* @# }
  145.     @layout2_sprite.dispose9 @* E$ d3 U$ B& c  U
  146.     @layout2_bitmap.dispose/ k. |8 K2 Z# S  n; E# o' h$ ~* f  h
  147.   end
    , t5 }* o' g* Y- |: @4 h4 D& x
  148.   #--------------------------------------------------------------------------: x5 A" j7 H/ O8 M4 @
  149.   # * Update
    # w+ Y) z! O( i, [& P) N
  150.   #--------------------------------------------------------------------------' O" Y$ n( y5 \  o" T
  151.   def update
    / {3 \2 k6 i5 k  |( `7 ^% Z  M: X% I
  152.      @battler = @enemy.battler
    ; Z& s/ G' W5 q! Q& R; c
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    ( P' s, }" b7 H2 A/ b, L/ c
  154.      if self.visible
    ; g! ^& x; u( H+ p2 k; n
  155.        refresh
    4 [) C3 _" `$ f% N  a7 R
  156.      else' b! c6 }( ?  f; Z
  157.        self.bitmap.clear
    ( {8 t* I, ~1 c" |6 x$ d) [! [
  158.      end! f7 A6 A9 O" B  p( \% T- ]1 Q
  159.   end# O9 T) I  A& t8 q$ ?/ E- y
  160.   #--------------------------------------------------------------------------& ^' B+ M# [9 J, X! v
  161.   # * Visible Update
    ) _! D  X8 B7 X, d0 D  W/ E+ o
  162.   #--------------------------------------------------------------------------
    # R: w/ M/ z6 Q& v7 j1 O( G
  163.   def visible_update4 B. X9 ]6 L) x" a! V/ [
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    # n- F% F5 ~9 @3 Y$ y
  165.        @hp_sprite.visible = false/ u1 {3 s$ a$ K7 \2 m5 I
  166.        @layout_sprite.visible = false; \& k& [; C$ T, O
  167.        @sp_sprite.visible = false
    4 b! v  H5 r- e! m8 f
  168.        @layout2_sprite.visible = false
      `- N% q& k3 b" {! |! i. m. }$ ?
  169.     else
    . ?0 q/ e: n5 ~) I+ L5 T
  170.        if HP_HUD == true: m" S5 E; I7 S7 e& P# h
  171.          @hp_sprite.visible = true8 H8 {/ G! x  E* u" T. v; F  z
  172.          @layout_sprite.visible = true
    1 ~! y# J, D3 J( F  }- ?& A/ P
  173.        else9 E- N/ J9 J/ @" G7 p
  174.          @hp_sprite.visible = false7 B7 @# {; R' Y' b+ x
  175.          @layout_sprite.visible = false
    / R, [$ Z( V2 n' X6 Z
  176.        end  
    + z7 c; N5 @; ?) `5 P4 F
  177.        if SP_HUD == true
    $ o0 f: `6 {3 P: o! j
  178.          @sp_sprite.visible = true
    ; k% O3 @$ \/ O; G4 B
  179.          @layout2_sprite.visible = true
    ! s1 d( Z! t9 x# a7 O
  180.        else
    / r: N9 j9 K; P! O+ V- A4 J* ]
  181.          @sp_sprite.visible = false0 }$ g/ m7 ]' f- f. R
  182.          @layout2_sprite.visible = false. B3 k: [5 b9 v) O. I
  183.        end 7 A  Z% ?7 u6 x5 X4 S# C
  184.      end  $ a: W( g# r% L- y# j1 d
  185.    end 1 ^0 V# o: |9 R
  186.   #--------------------------------------------------------------------------
    * m# Y' H( T9 Y9 m1 [
  187.   # * Hud Pos Update6 ^" ?' T" ]- t! \0 r4 J6 ^
  188.   #--------------------------------------------------------------------------2 `0 d% s( _+ A$ g
  189.   def hud_pos_update
    * C. g/ c8 C7 d9 J% ^4 K- d
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X) z, p2 _8 i  F& j* X1 z
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    , d( s* q" ]1 F* b
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    # ~4 ^- J' k/ e2 u0 w: Y1 e
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    ! _) U* j8 q; H( u! E/ T
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X0 ^5 B! d& Y- r2 l
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  8 Q# n5 W2 H) W! g6 f2 T% E
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    ( V4 [: W( G( J
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     7 G+ j, U  ~8 s, D$ S5 C& x: z
  198.   end  
    & T, B( @5 i1 ~- B* h
  199.   #--------------------------------------------------------------------------
    # C7 H8 \( g; ?3 Q( s% Z6 m
  200.   # * Hp Flow Update2 e% M) x( ^: ]" K, g) U
  201.   #--------------------------------------------------------------------------
    5 U- c0 \3 u! K# f
  202.   def hp_flow_update
    - @  J5 x, o4 |0 Z: b9 Z
  203.       @hp_sprite.bitmap.clear6 ^' I) ?2 a6 k4 l& _2 c. ]" f
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  ( k1 ]  l$ `7 S5 z( `! w' V
  205.           #HP Damage---------------------------------
    4 B, M7 T) ^8 l( |( d" G+ L' m
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    ( u4 |2 d4 x$ W  U
  207.           valor = 0.5 if valor < 1         
    ' O$ Q( R* O6 y- v3 r, X# Y  l3 J
  208.           if @hp_width_old != @hp_width
    " h0 X0 o# m& Y4 M
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  , S# Y3 @- i! N. T
  210.           if @hp_width_old < @hp_width
    , u' v7 p: e8 w# @
  211.              @hp_width_old = @hp_width& @2 Y% A) J7 V; G1 t  D
  212.           end      
    . Y9 ]. W3 Q6 R9 w6 E4 C9 j0 Q- S
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)# W6 B2 v1 O- j
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       " v% L; w& \' Y0 d
  215.           end        
    7 Z5 l- L( F( }# t+ v: S
  216.       #HP Real------------------------------------
    5 t; n# C+ M& F6 w. T
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    & M# M5 S3 x$ _9 ?+ r# G
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          5 {; b' _0 g/ Y5 \: |, i& I
  219.       @hp_flow += 2  - }. i; E) a! C" p: V, Y
  220.       if @hp_flow >= @hp_image.width - @hp_range
    1 Z1 \2 D  t1 y, ]* C: B4 ~
  221.          @hp_flow = 0  
    8 j  V" A: g( d9 ^: P3 l5 ~
  222.       end4 a. m; D8 w" j" E
  223.   end   
    - x, Y- X' q9 S
  224.   #--------------------------------------------------------------------------5 i& \) r# q' a
  225.   # * Sp Flow Update# t; p- d1 V/ w' j
  226.   #--------------------------------------------------------------------------5 \) V% q2 Y+ J" i( Z9 J+ Q( E
  227.   def sp_flow_update" V* h* P: }! Z2 t; S) }1 z. z
  228.       @sp_sprite.bitmap.clear
    . b! P+ V* z$ B9 {4 A7 K3 i" m
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    & U0 f6 ?6 `% l% P. ?: J& H
  230.           #SP Damage---------------------------------
    % \& w; j1 n4 J8 c6 e9 n& Q
  231.           if @sp_width_old != @sp_width
    ' O5 u" }' K, H' C
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100' q8 H+ b7 ?9 r) e1 }9 Y3 J
  233.           valor = 0.5 if valor < 1              * r& Y0 T  R+ u3 n  J3 l
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    1 K4 Y, ^. [4 i( L: W
  235.           if @sp_width_old < @sp_width
    0 w* u' ]# G0 q% P/ t; u2 n" P$ M5 f
  236.              @sp_width_old = @sp_width
    8 q6 w. y% s. ^: c& m9 |9 N
  237.           end      
    2 {0 t5 x, R! h, B) D% P- m$ O
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    6 H+ I/ q: U$ J5 h4 k
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    5 h6 V& l# r; Q, e# I
  240.           end
    ' ^* Z/ s( J0 i6 p
  241.       #SP Real------------------------------------: f4 m$ j/ Q8 }7 S& U
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    ) \+ n% F2 V( H" r
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    ( N7 z+ V) k, x: O* b" M4 V
  244.       @sp_flow += 1  
    / @2 N& j: A  H) U; V, d
  245.       if @sp_flow >= @sp_image.width - @sp_range% J) e0 d: o7 b9 T: l2 b1 {- c: }
  246.          @sp_flow = 0  
    0 g% N# C8 ^( `2 l# U
  247.       end4 q8 u' i+ u, a4 x- B2 V
  248.     end            1 e) s( x9 \" |( F
  249.   end
    - i* x  H) u! e1 C+ T
  250. #===============================================================================
    6 }. n# V+ t& n, g( k
  251. class Sprite_Character < RPG::Sprite
    5 b  G& D. I& d) B2 W( ?5 }8 `
  252. #-------------------------------------------------------------------------------
    " s* k# `, C* }4 x
  253.   alias :xas_emini_hud_init :initialize# o" i" o3 A- a
  254.   include MOG+ E: f1 l* P4 @! s& t/ }: Z# ?# b
  255.   def initialize(viewport, character)
    & A7 h5 H& c8 e- K" d
  256.     xas_emini_hud_init(viewport, character)! K! f/ C/ f. O* f
  257.     @viewport = viewport7 Z/ C9 v, e8 o# ^8 [) \0 E( E
  258.     return if @character.battler.nil?
    4 @' \8 W3 [1 p! u- |$ y
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    $ u1 j4 v2 R" T) B
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    9 ~9 q2 f# \' O, A
  261.     return if @character.battler.is_a?(Game_Actor)
    ; g+ t/ H: Q  o
  262.     @bars = S_Hud.new(@character, @viewport)
    0 N4 O! v1 n7 a4 O4 x
  263.   end& w$ d1 e5 P; C9 U: Q
  264. #-------------------------------------------------------------------------------
    ; v3 J  S) M8 n- T
  265.   alias :xas_emini_hud_up :update
    : E, P6 G8 q8 w4 c
  266.   def update2 E; i2 i+ ]2 t3 U. K- h
  267.     xas_emini_hud_up1 l, f% C" C. ?3 r9 Y% d
  268.     return if @bars.nil?, K& R' [3 h+ e. j9 r
  269.     return if @bars.disposed?; c* {, U- @/ q) N! t/ |+ Q
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    ( O" Q! e$ G2 T6 L9 N/ u: F5 k. d
  271.     @bars.visible = (dis <= RANGE)
      K# v1 \; a3 q
  272.     if @bars.visible
    1 x- F5 N8 c8 y" z' L
  273.       @bars.x = @character.screen_x# - @cw / 4: z6 Q+ d' ?$ [8 o, {% r) h
  274.       @bars.y = @character.screen_y# - @ch / 4$ s. }- X+ V# \" G* e# u: g. q5 j
  275.     end1 E( x2 C5 C( D+ X/ W" R5 n* O3 N
  276.     @bars.update
    5 B) N3 \2 M" t* T2 E0 U9 g5 u  u  s6 r
  277.   end! m& w* @2 z3 [' |" a
  278. #-------------------------------------------------------------------------------! r; ~% r+ o! o2 r9 E6 Q
  279.   def dispose# `3 k) e9 J8 @3 G
  280.     super3 J6 v2 a8 y' F- P6 ?
  281.     @bars.dispose if [email protected]?
    ! c/ K6 Z" e6 t3 d% R5 O
  282.   end* x4 u: }" \5 |6 ]6 Z0 A2 n
  283. end
    & y& h0 b; ]8 o6 h- j! [; ]

  284. . p, _  B; A4 h0 N  u" R2 M
  285. $mog_rgss_s_hud = true
复制代码
0 O. w. _: Y3 e$ ~5 Q

& R. A( R$ [( Y4 h. x9 I
2 r4 K" a( `% r  ]! F; [: H+ e上面所說出錯的203行內容為, ^' U8 \( W( G. c: z* O1 q
@hp_sprite.bitmap.clear
. q+ ^3 {) v3 ^& I0 c6 v6 ]  N
" L; N. w" v$ w! X想知道怎麼解決
3 u! ]0 C- w0 [- Q9 O# D! Y+ D5 \( P) N
該腳本支持3.824 X, |& X! j5 L3 {8 \. u* d
) F: F7 C0 b) J0 J* W
下面是圖檔,要塞在Windowskin下; M1 V6 n2 T4 m- X

- @% J# `/ y& ~( E6 x9 M0 y S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) * |% i+ g  [$ E! L8 \. h

% H8 B' Y2 X1 Q3 K
2 W9 b2 ]0 S9 q+ G  p' E& F4 ~* k3 W

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
- p# `! r2 M4 @结果尝试刷新了一个已经释放的图形
/ K4 R) `/ W5 o) S6 b' B0 M
, F% u( g- u+ F9 e
6 i$ s- I, x1 x
7 I2 S. \9 y* Y  g虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?+ E8 b) v- A6 C. E8 b
复制代码
不要后面那个条件貌似就没问题了。
( r% }$ d* _9 ?8 ?# z# M6 g3 U/ Q0 z4 w$ i7 P& d9 z  P( e* C
2 T& k% M# L- z& `3 ~
1 Y; y$ Y" ?  m1 n. ~/ L* V9 I' i
; P3 J$ w8 U2 Y7 B6 g
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
390
在线时间
1777 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 & L+ Z# s* ?7 Y" B
貌似是释放的条件不合适
% Q9 S" }% q; @& m8 S5 v- W$ J; p结果尝试刷新了一个已经释放的图形

: a% B+ ], N( j: c- M把後面那個條件弄掉後,的確沒問題了
2 M! V5 e' b) [$ @$ m5 ?0 Y2 X6 C$ ]目前從關頭打到關尾結束都沒再彈什麼錯誤4 J& z* C% a0 C, m4 f. e5 \
非常感謝2 L1 u) _, f/ U$ d
6 }& i" u# H9 s5 O7 w% q/ P7 E* J
不過我是參照著別人腳本改的- L# n5 z; A8 N1 h' Y
他寫的條件式也是那樣,但我用他的沒什麼錯誤0 c, {( m# e- q' v, c
不知道是怎麼回事( d/ J4 m& W4 X" f1 [: X
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
  L$ O" x+ ~/ k# I7 d' e我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events  {0 }# O1 A1 q' i
嘛..这个数组吧..我在以前试写队友的时候关注过一点
  P/ L# T# ?' f, v不知道XAS内部对它做了什么手脚还是为啥,
4 t4 L7 A! I) q9 T总有那么一瞬间,没有被消灭的敌人事件也变成了nil
. s, |6 t% T% J* j# H# p
$ e! X3 {+ |" k$ Q: e( ]$game_map.events.values[@enemy.id].nil?( j$ b  G- P, l0 A3 V
因此自然而然的返回true并符合条件把图形释放掉了
& _% ]' |/ a) M+ B" _8 m7 j
/ I0 R% z! o& }  ^8 v8 e. fLZ应该有注意到吧,$ N. r- `8 Y4 j1 `
我测试的时候发现报错前几帧,图形会消失,2 i$ v; ~: P. Y& u7 ~* ~
应该就是“误以为敌人被消灭”了。7 L4 d  u$ m! @. i$ e# {4 J! C
7 \  R, W3 s5 U# r# v
受限于个人水平,至今无法找出$game_map.events的真相..
5 Q, n6 R& l9 H
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
390
在线时间
1777 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 . p) d- m6 X  q$ f
$game_map.events' Z3 V6 G; @- k
嘛..这个数组吧..我在以前试写队友的时候关注过一点9 _1 V0 {8 V* x) r/ ~; A4 C* e8 J' M
不知道XAS内部对它做了什么手脚还是 ...
' B- m/ Z  |: r( Y- J' ~3 e& M3 ^
當初我把那個條件式看了三遍,都不覺得他有什麼錯
7 Q* u# I7 U: W原來還有這麼深奧詭異的事XD& B, ]! e! w3 p6 G
4 L- \( l( k/ `; |2 o
錯誤發生前的確會有圖形沒顯示出來
3 l# X8 |& b; f( ~3 l/ D不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...) O/ j7 J( T+ K: D8 K: c) c
沒想到居然是詐屍了XD# n9 Y. N+ R/ L$ ]. t, v+ U* A. F

$ j2 B: g/ t( m$ L不曉得3.91有沒有修正這問題...# p& t9 w8 M: t! z: n, M1 D; {' ^
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。# \, F! ]' [( V2 A
, @5 L) u1 T/ d) E$ |
的确
  K+ \- K4 c8 V5 d: X- Q用惯3.82之后想去整3.91觉得压力甚大..5 J+ v- ?8 U4 f- M- d6 I) \- ~% Q' ~
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12284
在线时间
21799 小时
注册时间
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”。4 K3 O! c& Z7 F* u  S

$ B5 ^# Y3 o/ d$ g1 m8 f- w然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-6-14 11:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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