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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條% B5 M' v; t2 i! t7 H! q
會在每隻事件怪物的腳下顯示
5 h1 s, h7 S8 e+ L! V6 W問題是不知道為什麼2 k* X: R( `2 g& w
有時打怪打一打會跳出' E: D6 W) d' }4 l* B# I
---------------------------. v2 D3 ]' h7 a. r4 [0 W
XAS
' b+ l- i2 X# M; ~$ |+ b---------------------------) V: u& n, j( E% y1 z9 T/ L7 f
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
: O" {  o" C: q4 k6 f0 n
+ t- V) Y( d; X8 J7 k# cdisposed bitmap3 G4 E0 g% _4 n# H: u+ e, I4 Y; B
---------------------------  c3 h0 |* \! _0 v- B3 G' J: z0 D
確定   1 _9 s  H  R, I
---------------------------/ f: @  N+ N# `6 A& F% W9 Z1 W
3 w, W: ?# M/ ~4 n; B
這是腳本
' @  T, I# ~( i: w8 G9 _
: a3 \# ~# h) V6 o1 E
  1. #===============================================================================, {+ A. r% c  n# H+ S$ J- e/ f
  2. # MOG - s Hud 1.0      
    ' Q* `. B5 T1 N8 k& F
  3. #===============================================================================, l& [8 X4 s$ s
  4. # By Moghunter : v8 T1 d! B1 K
  5. # http://www.atelier-rgss.com
    6 V: o$ j$ U+ O# m( C2 Q: V
  6. #===============================================================================- A4 F# W# `7 t( n- j: W
  7. # Translated by Calvin624 * `7 j+ C6 [3 s; E! l
  8. # http://www.xasabs.wordpress.com
    * m1 L8 J# H0 [8 \1 P) p  g" e
  9. #===============================================================================  ^; W+ w; M& Q4 O5 G
  10. ###############################-DESCRIPTION-####################################* d7 W* w2 \& l* [7 o
  11. #===============================================================================# [6 w+ }6 V+ U2 n/ ^
  12. # Personal HUD – displays the HP and SP below the hero.
    : n# ?2 N  K' Q9 e; `; j5 ?! N, A
  13. #===============================================================================  y% q5 E  G, A/ j
  14. #
    . Y: T( n' \  Q& c3 |. T+ |
  15. # Graphics required:2 D9 x1 ~" h; ]% b0 H! X* q2 p
  16. #
    4 m* L9 o# ?! L; p, f+ j) {
  17. # S_Border_HP_Meter.png- m: w8 @: n6 M, Y: b, x
  18. # S_Border_SP_Meter.png' n2 K+ l4 l) [4 p
  19. # S_HP_Meter.png1 c8 G  w( _6 w+ i9 U0 a  a4 n: g
  20. # S_SP_Meter.png$ z& @! q* I% P$ z/ x* `  c; {
  21. #$ @/ s* a' f  X" `5 B: r! W' e% ~. ^
  22. # All images must be in the Windowskin folder.2 O" O( ]+ {/ z2 b, Y; l* q
  23. #
    6 n- O5 P+ s  i+ Z7 e- \/ ?
  24. #===============================================================================
    4 n6 e' |( B8 K) d* O
  25. module MOG
    ! F! V0 h- L' k7 K
  26. VISIBLE_DEF = false  
    % W( p/ Q% f/ c: r* H
  27. # Show HP meter?
    1 Y; B+ R! D- K4 ^/ F( i/ q+ {
  28. HP_HUD = true- @2 s% h  X( }6 w
  29. # Position of the HP border0 n" O* ]( N5 }5 [# ~. m
  30. S_BORDER_HP_METER_X = -23 X3 C/ e' `: @" I6 q* Y
  31. S_BORDER_HP_METER_Y = -2  
      D! o8 V" @; D# J! _
  32. # Position of the HP meter1 P+ N0 Y2 A6 M8 r7 G
  33. S_HP_METER_X = 05 n  K9 Y  d0 h) R! O6 w4 T
  34. S_HP_METER_Y = 0
    ! ~+ j' C, n" o+ |
  35. # Show SP meter?
    ) H6 }# c0 I& H- a- ]
  36. SP_HUD = true9 B# v2 U1 w3 \8 B" r3 J& j! F
  37. # Position of the SP border
    , V! Q& ^' |- f7 F' N5 p* ~
  38. S_BORDER_SP_METER_X = 03 B* r: ]: c5 O7 U
  39. S_BORDER_SP_METER_Y = 10 & g- W. V2 v3 ?& d- `7 Z6 z2 H
  40. # Position of the SP meter
    % l, B) j) N0 Y8 a. j1 ?
  41. S_SP_METER_X = 0
    ! ~0 |0 J/ S" Z) l" F
  42. S_SP_METER_Y = 106 S* |8 |) O! M7 b# R9 p2 ]. j
  43. # Switch to disable the HUD
    0 k4 n: U+ a. e0 _
  44. DISABLE_SHUD_SWITCH = 5$ P  t! R1 E0 |- E4 A8 a: ^
  45. RANGE = 20
    5 a2 l2 y! W5 N6 M6 [) ]- [7 T
  46. end
    5 M) T' z' ?6 f( M$ T2 Y6 ?
  47. #===============================================================================  m" k9 ~& T8 U' u
  48. # S Hud8 L5 U5 }! G5 T2 f' f, y( i
  49. #===============================================================================. w' m+ ?3 _1 K+ ~
  50. class S_Hud < RPG::Sprite
    4 }3 B# r0 r9 f2 V  f
  51.   include MOG" a5 ~5 g0 ?2 Q! `" v$ K+ G
  52.   #--------------------------------------------------------------------------8 M/ m$ a8 c! b2 |( _2 X
  53.   # * Initialize1 Q% o$ {1 q; j4 ]$ b5 ~& ^
  54.   #--------------------------------------------------------------------------
    - |5 o& ]* F% q' ^2 t9 a
  55.   def initialize(enemy,viewport)3 A1 f8 B/ e$ r
  56.     super(viewport) ( X' E2 z0 `8 C7 j2 W9 s4 X7 v) s
  57.     @enemy  = enemy
    % b9 _9 q' m- D1 n5 J! I& K
  58.     @battler = @enemy.battler. V; R) S% P" J
  59.     @old_hp  = 0
    2 h% j! L: O3 f; k$ G
  60.     @old_sp  = 0" y. s$ w" C! k4 E1 G9 X1 N
  61.     @old_vis = false3 R, L# t/ Z, ?& V* I- q
  62.     self.bitmap = Bitmap.new(100, 100)( m" H- u8 \, y# a  x
  63.     self.visible = (VISIBLE_DEF)#false
    - v7 L* a- Z  L1 b/ U% R
  64.     self.z = 100
    9 i1 l$ K4 j- b6 P' Q. ~
  65.     #HP Border -------------------------------------------------------------------
    ) e) W) y  h0 a$ m8 |0 q+ Z: ~
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    9 c8 `* s3 e' O# e
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    : \6 e2 q  W3 R
  68.     @layout_sprite = Sprite.new
    5 W' _* T7 Q; D, \; v0 U
  69.     @layout_sprite.bitmap = @layout_bitmap
    ) Z* \" ^6 R+ {1 h# }
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)  e  E4 H! r/ Y# \3 i
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      # d5 _- w1 _0 L9 d/ p
  72.     @layout_sprite.z = 50019 n' t0 t3 R% N% }& g; A4 ^; Q
  73.     #HP Meter ---------------------------------------------------
    ) M: ?4 A0 q" @' `! ]4 P, F1 ?4 M
  74.     @hp_flow = 09 ^) N  c; U4 U0 r: h/ c
  75.     @hp_damage_flow = 0
    1 D2 p' s, q! T, C. n' T
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    9 s/ y! h. f, h( k7 p* n5 K+ S
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    / _1 m# B. J8 j5 a2 @5 x" _
  78.     @hp_range = @hp_image.width / 3
    5 r$ i" x; l+ w+ }' |
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    1 \5 V6 D! j/ W* W4 ^; ~
  80.     @hp_width2 = @hp_range / 2$ ~) c& C2 z2 S
  81.     @hp_height = @hp_image.height / 2
    ; b  q5 K: X5 v1 X& T8 S2 W
  82.     @hp_width_old = @hp_width
    4 \2 f/ f9 w0 G7 f- k
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    3 ~. L% u# {0 s; l* S
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) 6 i6 P' E& ~4 P/ `3 |7 s- _+ O
  85.     @hp_sprite = Sprite.new
    ' }- L$ e5 h# C$ X
  86.     @hp_sprite.bitmap = @hp_bitmap; Q- O8 U$ V. {) k6 a/ e
  87.     @hp_sprite.z = 5002
    % l* H( s4 L; `+ M, V  E- H6 ~" X/ {
  88.     #SP Border -------------------------------------------------------------------" S8 E9 z# w6 \# {' [6 r  G
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    / I/ J8 C1 Z: e
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)' S: L8 r3 a5 Q7 Y
  91.     @layout2_sprite = Sprite.new; o  i5 \2 k5 U
  92.     @layout2_sprite.bitmap = @layout2_bitmap/ ?8 @( Z9 j' n, e7 c+ Z9 f
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)+ U  t& e/ s) n
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    0 x3 c7 C# |/ W% {% s! A$ D$ I, v
  95.     @layout2_sprite.z = 5001    0 L2 y7 k6 b  c5 `. I7 f. q
  96.     #SP Meter ------------------------------------------------------
    1 j5 x2 N5 {3 j: M3 N
  97.     @sp_flow = 0& m1 @( j# V, u% s3 u0 t
  98.     @sp_damage_flow = 07 Q0 L5 T, {0 Z1 Y) J/ G
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    ; \+ s+ `' j. O% Y, i
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    4 k* W" R* ]1 P: ]2 Y  j
  101.     @sp_range = @sp_image.width / 3
    & d2 }3 S. E2 N- a
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    $ {4 z9 n8 y) W6 q; f0 [/ \% ]
  103.     @sp_width2 = @sp_range / 2( }2 ^8 O( n: k+ g1 }1 z1 P* ~
  104.     @sp_height = @sp_image.height / 2' L% H6 Z% i2 \( ~; ~9 U( H
  105.     @sp_width_old = @sp_width4 f) @" D, [- G' B1 z' m& q
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)0 G& ]' \# k6 \  b4 v: a
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)( ~4 o9 f6 q/ Z3 p5 S
  108.     @sp_sprite = Sprite.new
    6 _: H7 G3 t. j' L4 i* M& k
  109.     @sp_sprite.bitmap = @sp_bitmap9 h( T+ r& g* t/ y* y
  110.     @sp_sprite.z = 5002  c$ V6 n, L$ L4 V3 e6 B
  111.     update
    ; W. Y4 ?* c! _7 ~  F
  112.   end* O9 ^! S) q8 }& I* L( u0 x0 ~
  113.   #--------------------------------------------------------------------------7 U7 p4 T8 L% z2 {
  114.   # * Refresh. w+ K; O9 d4 k3 I. f
  115.   #--------------------------------------------------------------------------# F6 I$ ^; Z+ {0 ~2 A( p; u
  116.   def refresh# P, q. u# {4 c
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    & t. m. x6 L  Q. w3 n
  118.     self.bitmap.clear
    : b1 ^7 Z, Z; V
  119.     @old_vis = self.visible( c& t6 r5 b; m; i1 r
  120.     @old_sp = @battler.sp
    # S+ t) A1 w5 u1 }
  121.     @old_hp = @battler.hp
    ; n3 m, z, [8 {; i3 [% l
  122.     hp_flow_update
    # ?. T' ^3 V  F$ a5 M1 E
  123.     sp_flow_update9 x) i& P& f8 l! |, v. f5 t
  124.     hud_pos_update$ F( \. Y* t1 N* \/ Q: U! A  f
  125.     visible_update- f3 B) ?/ j* d
  126.   end
    $ T& A1 B5 |1 o6 ]4 W4 n9 o$ g
  127.   #--------------------------------------------------------------------------
    5 c  W9 k8 s& r: P4 F2 e5 S" n
  128.   # * Dispose
    ) Z- R8 c+ Y& n! L8 }& X+ Q
  129.   #--------------------------------------------------------------------------) d# s6 m# d* R! a( c* l+ b. S
  130.   def dispose
    " T! w1 @/ M5 O3 O5 @( t  H" Q
  131.     #HP Meter Dispose% I+ X% J% c% \! E1 ]) `/ G( F
  132.     @hp_sprite.bitmap.dispose, u* y- J) ^2 F5 O2 I( O) A' v7 X8 t+ @
  133.     @hp_sprite.dispose
    + s& }0 |( g* k, s2 c
  134.     @hp_bitmap.dispose
    3 l7 K  _- S7 L7 k
  135.     #HP Border Dispose3 L9 }% M$ F6 h9 B4 F) _
  136.     @layout_sprite.bitmap.dispose9 e/ C% J; _! h3 ^6 Y- p
  137.     @layout_sprite.dispose6 ?' m$ ^) j: u3 X% D
  138.     @layout_bitmap.dispose
    ; ?( v$ R/ U) n0 d2 V1 t
  139.     #SP Meter Dispose" ~8 p( P" a3 y7 M# k4 K9 @; y
  140.     @sp_sprite.bitmap.dispose
    $ [9 Q% c  v; G5 s! U. T
  141.     @sp_sprite.dispose
    + x( h9 X) ?5 q% r0 U1 }
  142.     @sp_bitmap.dispose6 ~4 |& A$ i* B
  143.     #SP Border Dispose( a" B* A: b' c# ]0 @% `7 E( J
  144.     @layout2_sprite.bitmap.dispose# R( a. C, P7 I) f
  145.     @layout2_sprite.dispose
    ) T( A1 E7 X0 ~( A4 @. l$ s3 C2 L6 r
  146.     @layout2_bitmap.dispose
    - N% n! u5 S, g$ A$ N: L* R# d
  147.   end! W( r& @# [$ I
  148.   #--------------------------------------------------------------------------: c* j. S% V8 X9 l6 K1 E0 x
  149.   # * Update6 X2 R, l0 Z( ^, K6 W. b
  150.   #--------------------------------------------------------------------------
    ( W6 z7 {6 M  s/ _4 P0 X
  151.   def update
    * b# ?$ H4 l3 r: x& m' o
  152.      @battler = @enemy.battler
    7 \& I  M( g0 E' I
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    - r/ K( y7 y& ^: B
  154.      if self.visible
    3 K6 p  o. V& _1 J7 _# \  J
  155.        refresh9 J% i; R* w# E% W2 Q4 |
  156.      else" W5 p  ]/ h% I- l0 ]4 B9 W$ y! {
  157.        self.bitmap.clear- w" K2 J  u- F% Z% n% v: C
  158.      end
    1 e$ t* ]' ~; m/ Z/ P0 j& `. p
  159.   end
    " q8 ?! T# S5 d9 n
  160.   #--------------------------------------------------------------------------
    - y; H; J0 D7 s1 u- Y( Y: Y. w2 k
  161.   # * Visible Update$ J. X0 @$ @$ J/ H( C! ]
  162.   #--------------------------------------------------------------------------
    " D6 d, d/ U: C2 R1 G
  163.   def visible_update5 w# O0 |/ h/ w! o# h1 M% U
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    3 T& ^& Q  i+ R+ K# U
  165.        @hp_sprite.visible = false9 ?1 r( |6 l2 p
  166.        @layout_sprite.visible = false' B/ W' Z( b5 B" q$ W6 ?# x' P% T
  167.        @sp_sprite.visible = false  G1 B# d. z  g1 r% @) G
  168.        @layout2_sprite.visible = false
    ! P8 N; }' R8 y* \' z- ~1 H
  169.     else! s! v" Q6 C# {5 K
  170.        if HP_HUD == true
    ! J. z. t7 ^! f+ j# l4 }, x
  171.          @hp_sprite.visible = true8 G1 n; t( r: i2 K( M4 x. x* a
  172.          @layout_sprite.visible = true
    5 }3 Q. v" U* N& g
  173.        else' m, L/ v. Y+ e- q+ P
  174.          @hp_sprite.visible = false
    ( d2 D' c- J4 S9 n9 L! J# u
  175.          @layout_sprite.visible = false
    & J: h% t  }& I6 O; b' M
  176.        end  
    ) P+ }, l% |# v! {+ c2 U
  177.        if SP_HUD == true4 }! k9 ~. g0 k, ]2 }2 _
  178.          @sp_sprite.visible = true
    , x# [' L' O+ n1 \. h, b5 k. r( J
  179.          @layout2_sprite.visible = true
    & ~6 ~, H9 B0 e: e3 D4 e
  180.        else
    3 \' K* h" y! J* c) m. q
  181.          @sp_sprite.visible = false
    9 x& I$ S% l0 S
  182.          @layout2_sprite.visible = false
    ) Z. O  }% F8 _$ i! p
  183.        end " l; F3 h, B! L. j. V3 b( I$ m3 [
  184.      end  ) _# W+ {2 r4 E3 B3 h( g) Z
  185.    end . N% V9 i& U! c, \' o0 E! T
  186.   #--------------------------------------------------------------------------
    0 r/ I  R, _+ }/ m7 S
  187.   # * Hud Pos Update) x9 B5 g$ Q* d3 [4 A& r* m# G' s
  188.   #--------------------------------------------------------------------------% T- P* j. f( V3 T! a
  189.   def hud_pos_update
    # W* J6 m8 E9 _4 B; `4 g6 y
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    ! E$ J* o8 J. K  G& B' R
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    1 s+ B* M. S4 A4 u
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X. k3 G% P; J) w9 L" B- ?
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    ! h+ e1 K, v: ]
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    . ?9 a: Y9 T5 H2 K) _' F! V! R
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  7 D: `% V  B# G' V7 G
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X6 g. Q- K# p7 o" l* O7 I; c6 d  b
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     ' |+ a5 v1 A+ \1 j0 }. x" \
  198.   end  
    . O6 |) z) D" s' p; `
  199.   #--------------------------------------------------------------------------
    1 x5 k8 x7 c- O( \4 y0 U
  200.   # * Hp Flow Update* n: I: h% z8 q
  201.   #--------------------------------------------------------------------------
    6 a# c- I) L  [3 _8 g- t
  202.   def hp_flow_update$ V9 n( m) E$ J+ B
  203.       @hp_sprite.bitmap.clear( `! f& t# A3 s! h3 Y" j' N
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  3 w8 q$ p1 t* v. Z/ T
  205.           #HP Damage---------------------------------& Y8 p+ v  G( i0 g2 d' s/ J
  206.           valor = (@hp_width_old - @hp_width) * 3 / 1003 _; Z4 _) }7 t# n2 I, x7 V
  207.           valor = 0.5 if valor < 1         
    7 Q$ I3 `8 z% Z' L" T
  208.           if @hp_width_old != @hp_width
    : }; ?8 |3 M6 b0 C: a' I
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  0 G  }% @  `, Z6 r& |9 h
  210.           if @hp_width_old < @hp_width
    2 |, ?7 K( w! H) \6 A: ?+ Q" v
  211.              @hp_width_old = @hp_width
    3 d0 h) ]( t8 X* F! B
  212.           end      
    ! l/ p  a: r5 s2 w& }
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    0 I2 b* m5 E" P8 d( f7 o
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    % a+ W: R6 W! C
  215.           end        
    1 A0 b6 S2 I5 y5 I  E. {
  216.       #HP Real------------------------------------5 ^, h' a: p2 S- M. b% Q: x
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)& ^3 y$ I0 l) x# Z3 \$ f4 ^
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    & U  Z% G/ G8 K1 r. d/ Y
  219.       @hp_flow += 2  
    2 k6 e! e# @. t1 n8 w4 C; U; ]
  220.       if @hp_flow >= @hp_image.width - @hp_range
    / b8 ]& U1 q0 U
  221.          @hp_flow = 0  
    4 c& o2 Y3 u) ~" \- a
  222.       end7 p8 P3 i6 W/ ]  M: P* w) a
  223.   end   
    ! K0 z) A% a$ b* ?, r
  224.   #--------------------------------------------------------------------------) V: M$ L; `- g( c
  225.   # * Sp Flow Update9 i0 N* G1 U  |3 y7 r. k
  226.   #--------------------------------------------------------------------------
    % p% R4 Z& t8 ?5 s& N
  227.   def sp_flow_update% F) x" Y8 \9 Y: T$ W
  228.       @sp_sprite.bitmap.clear8 N/ ?2 a' \6 K" j0 p# I7 ~
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp # a$ r6 I4 [% D
  230.           #SP Damage---------------------------------7 g# c$ `% T9 L! w% r8 `
  231.           if @sp_width_old != @sp_width
    . S& `! P1 e8 L1 o5 {
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    % S2 _* n  b* R  e' {! ]! S( L
  233.           valor = 0.5 if valor < 1              # r& ]( J- N/ E+ _5 W0 O. c
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    0 I' U, k( C$ z9 `3 Y
  235.           if @sp_width_old < @sp_width - V: k" V$ E8 h
  236.              @sp_width_old = @sp_width
    7 y6 U' w; r  C! O
  237.           end      
    , K5 l4 M8 ?" d& c
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    ' d8 K2 C' r6 R7 @" m
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) 8 \7 Z: e( h) o4 ~2 z0 t
  240.           end
    7 @. V: D3 B2 ]! d; [; X" N
  241.       #SP Real------------------------------------( y1 y2 F8 L( t" A" o9 O  @
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    ) C5 f9 i  p' k# U' @! e4 a
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)# ?" y) K" f+ t; H1 z, D$ u
  244.       @sp_flow += 1  ) b* j4 E' o4 J- k' B# D: |
  245.       if @sp_flow >= @sp_image.width - @sp_range
    / b" C4 k1 d9 V& R1 y$ i) W
  246.          @sp_flow = 0  # A& m0 I% D1 w( g
  247.       end0 n: H+ d. x& O5 v; ^; ]* c
  248.     end            + E5 J* s# }4 G2 _- n6 o
  249.   end* o- L& S/ ~! a  u% ]
  250. #===============================================================================
    4 }4 P$ z; C" S+ ~" T
  251. class Sprite_Character < RPG::Sprite; @# G' w3 w& p
  252. #-------------------------------------------------------------------------------
    , V$ [1 e5 D! _: j
  253.   alias :xas_emini_hud_init :initialize/ R) ]( \, X" r* I) r
  254.   include MOG
    ) }( l# B/ D1 r, l5 R
  255.   def initialize(viewport, character)1 u# t7 C: v2 ?0 a: O0 _
  256.     xas_emini_hud_init(viewport, character)' l5 `& I, X, Y$ Y2 L/ P* {% a
  257.     @viewport = viewport
    ! q% Q% u% t. i1 F* A; d" L
  258.     return if @character.battler.nil?* G% v( b! m+ O1 q
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)& ~/ q9 ^( p: F0 {. A( d
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)/ @) f' }! ^) |# O6 D# ?1 o
  261.     return if @character.battler.is_a?(Game_Actor)
    % {' ?8 [0 m9 ?% K
  262.     @bars = S_Hud.new(@character, @viewport)
    3 v! _% |  i8 l9 d; G& R
  263.   end
    7 g' s+ Y! ?; T" _0 B5 H
  264. #-------------------------------------------------------------------------------
    4 z1 O" R- v1 ?9 d
  265.   alias :xas_emini_hud_up :update
      w- ?5 C% b5 O
  266.   def update
    3 f) P: X+ K$ G( U9 J
  267.     xas_emini_hud_up, S/ J4 p/ `1 @3 C6 |
  268.     return if @bars.nil?
    3 z! D/ l0 A8 f* w8 U
  269.     return if @bars.disposed?
    9 q$ U- d2 \8 D  u1 y
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs; c7 J4 x; U! a" }, S$ J
  271.     @bars.visible = (dis <= RANGE)
    ! u3 {  ]" G: `& K
  272.     if @bars.visible; u' j1 u, t6 L  K) F
  273.       @bars.x = @character.screen_x# - @cw / 4
    : L9 L: q; O5 R! C' V* k  n
  274.       @bars.y = @character.screen_y# - @ch / 4
    & K( q# c' G$ P# m
  275.     end1 Z" _3 l  g4 y8 l# s
  276.     @bars.update
    7 ]1 b  X, N6 T& b+ _" d
  277.   end
    " i" P! x" ~! |" X3 r! Q* e
  278. #-------------------------------------------------------------------------------, V4 ?: `9 v' n- j% Q) }
  279.   def dispose! ^2 |, Q1 v+ h) Y8 L9 `! X+ D
  280.     super
    . u: r! d/ s$ s: ?7 S
  281.     @bars.dispose if [email protected]?
    + h9 I8 }; G, y, {3 m- M8 i
  282.   end- b) ^7 Q; p5 M9 D* O; F% `
  283. end
    ( l, Q4 b7 @& ~

  284. 6 s" _$ v7 Q' U& a7 e7 Q
  285. $mog_rgss_s_hud = true
复制代码
- K" A, Z0 I/ V( P& X5 v
' R; U+ i) S0 B! L& ]
) o$ ~, d8 o6 z3 H3 R
上面所說出錯的203行內容為
- q% [" T- B8 Q3 x& l. G@hp_sprite.bitmap.clear
' R8 w  @. z2 V- H0 M9 k& l
: o( m8 q# }$ d1 F: e9 C5 [% ]想知道怎麼解決" m' L3 q) ^8 f( h) a- H
) z! o; ?1 j8 J0 O8 F& `
該腳本支持3.820 L5 u; ~2 m; M

6 b6 {* _- Y' V9 t, d2 F下面是圖檔,要塞在Windowskin下
; w" D( r* B0 u# [2 a2 ^7 H- a! z% @+ h, ~) N5 K
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) 9 K: x* n3 `, q* \. B
  E$ Q, ^7 ~8 a- j
: U* |# R1 o) a

( n" c" q$ c& ?' U
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
' ~  p( h, Q# ^2 Y+ m结果尝试刷新了一个已经释放的图形
& z" E, V+ J7 l1 [. [
  L, ]# O" R1 U  n1 y
; e* a* D1 L8 w% a. f! {
* a& S8 u) P: c虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    - _7 l) J  O& D0 U( _  ^" C. s
复制代码
不要后面那个条件貌似就没问题了。
9 |5 H# C& T4 V& F2 o
, j; b1 I. M9 U$ A- u7 P% B1 L$ b8 O

2 w+ x+ c8 h2 W3 j
" a- v' m8 |* n+ F/ B; r0 O! }
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
587
在线时间
1800 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
6 N+ k; a" P+ {貌似是释放的条件不合适  K; `( a, |1 B8 e7 p, j
结果尝试刷新了一个已经释放的图形

9 X) v- ]0 w7 a5 `3 w把後面那個條件弄掉後,的確沒問題了1 O; C. ~+ X# N# x( P; F( j
目前從關頭打到關尾結束都沒再彈什麼錯誤
. i- Y8 a4 {# X) E4 U; y2 K: i非常感謝6 d. B% j4 w0 m3 [, e0 l/ N- u

0 \5 U+ S( j  D. X: _4 v不過我是參照著別人腳本改的( c2 Q8 ]9 s, k3 V, {
他寫的條件式也是那樣,但我用他的沒什麼錯誤3 s+ t5 t7 T3 l; H4 A$ G* I( m! X
不知道是怎麼回事$ ?8 W, c% A5 k. ]
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的# d  U, K8 }& R: h! a' Y
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events5 x2 I: f. Z, f  t% }( h
嘛..这个数组吧..我在以前试写队友的时候关注过一点
2 a! B% S% d) _0 J, P- Q3 a8 P& |不知道XAS内部对它做了什么手脚还是为啥,
7 W3 c$ b/ l. d+ W% p6 A总有那么一瞬间,没有被消灭的敌人事件也变成了nil
4 f# ]0 w4 O, H% q
/ S3 G: l+ I+ o) \5 i: Q$game_map.events.values[@enemy.id].nil?
% g( L, X" H# c  ^, B$ R因此自然而然的返回true并符合条件把图形释放掉了
( J$ y5 y: D, e- [( D
% F; t7 W* d' r- l+ g5 ~% cLZ应该有注意到吧,
# p. E' x/ O7 q% H# ^0 _我测试的时候发现报错前几帧,图形会消失,, e) h9 P1 O( ~% a
应该就是“误以为敌人被消灭”了。# P8 O: l% ^5 x- d6 F2 q
0 ?) j/ H3 _! |' G4 g* y$ q6 |
受限于个人水平,至今无法找出$game_map.events的真相..( T- ^8 q( ~) ?+ z3 [
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
587
在线时间
1800 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 ; U% r* W- R9 _; |8 @
$game_map.events% d' @- O4 w2 B; C
嘛..这个数组吧..我在以前试写队友的时候关注过一点
: V9 {+ |5 W: a( W不知道XAS内部对它做了什么手脚还是 ...
# n" J6 t8 X) n2 w
當初我把那個條件式看了三遍,都不覺得他有什麼錯
. m. F3 ~. [! W  r) i" @原來還有這麼深奧詭異的事XD
9 Z1 H! a+ R+ W: v
1 W5 p. d/ H3 K& O" P7 R錯誤發生前的確會有圖形沒顯示出來: `/ F# b; m9 B% |* V
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
, w" |' u7 e& H2 Y3 S) Q1 Y沒想到居然是詐屍了XD
& K3 k$ [+ s, W. W* V
2 X7 f5 J- e* Q% F3 g2 I! k& ^不曉得3.91有沒有修正這問題...
5 {9 S3 b; D8 ?% b9 J不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。7 A3 K0 g' R, L* ?

" F/ ?, B4 f9 T的确
) n# o- x0 \; K5 C! y& r用惯3.82之后想去整3.91觉得压力甚大..4 J# `7 O. ^0 U. P# t, X# y4 ]
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12999
在线时间
21881 小时
注册时间
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”。
* z0 Y* I* P/ A. a" f1 X) U3 \7 C. }
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-11-15 08:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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