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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條# C3 z( z  C$ x8 N& Y3 P7 x; h
會在每隻事件怪物的腳下顯示
- ^, e+ \/ q3 I: o問題是不知道為什麼
) b  z& b" q  O3 }+ _有時打怪打一打會跳出
6 z, E8 m! I! @( I---------------------------
  i' L1 U: ?' q5 vXAS
- d- _: d/ g9 Q---------------------------, U2 m5 Z& [0 E; w
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
; k! Z5 [* t9 i* G+ U5 `& A& l
9 K( ^! F# k+ S: |" b0 B4 Q# B; wdisposed bitmap3 j5 j0 D3 q1 ]1 U% j: Z
---------------------------; `8 j. i2 p5 G2 g" K. P" l/ F
確定   1 Q$ j( C3 W5 E
---------------------------
+ ^1 N8 \  ?8 `' m5 d( C6 P* J2 Q( E1 U9 P5 t( \% f0 B
這是腳本- z+ K  o  K  X2 L# u

: ]. \% z6 U" F  j1 v; p; U( H) V9 s0 F
  1. #===============================================================================
    ! _: o" N. L# w8 s3 \  U
  2. # MOG - s Hud 1.0      3 V  ]. {8 V% \  Y6 T' m" X
  3. #===============================================================================
    ; z6 B7 N$ O' M3 ^- k
  4. # By Moghunter
    2 S( j" `+ s1 \' {5 J" G7 X  E; B
  5. # http://www.atelier-rgss.com
    ( J! J, f: h/ f
  6. #===============================================================================
    , M6 p- ^2 c1 e0 x- n0 N' q
  7. # Translated by Calvin624 - ^+ @" m+ x+ y) D
  8. # http://www.xasabs.wordpress.com7 ^% A% \1 r2 n  i* x
  9. #===============================================================================$ |5 b0 L4 z) Y
  10. ###############################-DESCRIPTION-####################################2 k. Q% o$ T0 z; R! o0 ^
  11. #===============================================================================
    ( r8 Y9 ^( N  w' B
  12. # Personal HUD – displays the HP and SP below the hero.
      Z8 r0 d& S  }7 |, a+ K* W
  13. #===============================================================================+ ~# u5 v. x  }, m# I
  14. #
    5 }  j$ x# u% k4 ]( F) a/ \
  15. # Graphics required:
    " [8 D1 i3 Y/ |) r
  16. #   ^" V6 h- C) s, E/ d
  17. # S_Border_HP_Meter.png
    ! l# E4 g0 y* Q
  18. # S_Border_SP_Meter.png% `. H0 _9 j7 ?4 }, t
  19. # S_HP_Meter.png
    1 b, \: n; r+ T$ L
  20. # S_SP_Meter.png& _! Q3 I7 G  ?$ F
  21. #
    ( u' E1 \+ N7 W+ D1 u
  22. # All images must be in the Windowskin folder." E) w9 s. Q* K( m3 ^
  23. #
    ' d6 H4 I2 F- p' B5 I
  24. #===============================================================================
    / g8 }- U2 n1 c) H- {% u
  25. module MOG
    , U/ g8 Y# _, p
  26. VISIBLE_DEF = false  
    ! x7 f6 e: W' c# |4 `1 d" X' x
  27. # Show HP meter?; T0 V& A2 m0 ?$ M" b6 a* e
  28. HP_HUD = true( x  l9 v: a$ G4 X8 \
  29. # Position of the HP border
    7 m7 c* h5 Q* p; D2 f" r# n7 F
  30. S_BORDER_HP_METER_X = -2
    " P" b! W/ e' N9 i2 H
  31. S_BORDER_HP_METER_Y = -2  7 }1 v9 z, T# T' ?9 X
  32. # Position of the HP meter
    5 A' U! }+ ?* s6 o; v
  33. S_HP_METER_X = 0
    + |* H0 }7 p) v( B6 t. Z5 o
  34. S_HP_METER_Y = 0
    3 L2 j7 ?/ P$ X$ Z' {
  35. # Show SP meter?
    ; e! z5 l/ S; Q  m. d: S: X; w) ~
  36. SP_HUD = true
    & ?% }5 o  x' P' i2 |
  37. # Position of the SP border
    % a0 o& f8 O4 c4 r8 I# k% P
  38. S_BORDER_SP_METER_X = 0
    2 z: s: F8 t$ l! D0 f& [* q$ M5 h
  39. S_BORDER_SP_METER_Y = 10
    ! O4 T4 R5 l2 m% o& d! i3 d' [
  40. # Position of the SP meter
    . c. v) H4 j3 T
  41. S_SP_METER_X = 0! ^5 }/ ^/ ^; l2 u8 S, i
  42. S_SP_METER_Y = 10
    2 C2 [3 ~; \' p) W+ u
  43. # Switch to disable the HUD4 ^+ C' U# E1 l& g& B0 D5 ?* P7 u
  44. DISABLE_SHUD_SWITCH = 5+ o+ j( J1 s3 w. E1 T5 X
  45. RANGE = 20
    ' E) x' B+ O6 _6 d( p
  46. end4 ?7 N- Q: @  `/ W% m4 u$ U
  47. #===============================================================================
    ( |4 q7 w7 {1 Y, @1 j1 J3 K
  48. # S Hud
    # @' q$ Z$ e8 A" l" o, l
  49. #===============================================================================
    + ]- }: z; I2 D! m% n
  50. class S_Hud < RPG::Sprite
    2 G- f4 @9 b3 }0 \) D/ f. d
  51.   include MOG
      u1 @" A2 ~8 I; k1 }
  52.   #--------------------------------------------------------------------------( F5 ^* Q- [$ i& l5 _7 \" N6 K0 U5 H
  53.   # * Initialize5 K" a" j! k5 c! Q, F
  54.   #--------------------------------------------------------------------------
    4 J; A; `: I* G: R3 S" f) y; {5 Y
  55.   def initialize(enemy,viewport)) z" e" p  \8 l2 R- k
  56.     super(viewport) * a5 }) Y) _* M8 u" }
  57.     @enemy  = enemy4 M0 F; b0 V! I5 E$ V
  58.     @battler = @enemy.battler0 h7 ^9 k* J7 N( \2 q" a
  59.     @old_hp  = 0( v3 _4 s8 C6 o
  60.     @old_sp  = 0
    , P8 X: X: U2 Y) t1 p1 t
  61.     @old_vis = false: y5 X0 w( V! ^! \/ `/ A
  62.     self.bitmap = Bitmap.new(100, 100)
    0 \5 k! V! d5 {& n' A. d
  63.     self.visible = (VISIBLE_DEF)#false' h. b- R( ~7 L( n' y
  64.     self.z = 100/ D" H7 B0 C( P) Q) q
  65.     #HP Border -------------------------------------------------------------------
    8 ~, U# g) m5 A' \* i4 S
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
      \8 l+ u: i9 u# g
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    3 H1 p# o1 ~/ }* G! g$ p7 Y
  68.     @layout_sprite = Sprite.new9 x! H" ~+ r- W! O9 F6 |
  69.     @layout_sprite.bitmap = @layout_bitmap
    # _  ^( G7 R6 D$ O
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)  X( A" Q( D* o
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      0 @; O! _/ v! _2 ~1 J8 a
  72.     @layout_sprite.z = 5001) O( m6 N; b; D, I/ f, e
  73.     #HP Meter ---------------------------------------------------( W* B$ B1 c% O( `& Q, N5 f
  74.     @hp_flow = 0
    7 [2 I* n; d: g! N1 A; y7 b
  75.     @hp_damage_flow = 0
    + {( O: C2 X6 a- m) K0 b: u( V
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    9 c" b/ e( `2 [% N8 G& j
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    . p4 y! E" D' y1 N
  78.     @hp_range = @hp_image.width / 3
    / p! p0 \( T$ H$ h
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    2 X. }1 D/ O8 V+ a
  80.     @hp_width2 = @hp_range / 2
    , Z. K4 @7 r# e8 Y% D
  81.     @hp_height = @hp_image.height / 2
    1 L. Q/ g" q9 u% p/ i! r/ t
  82.     @hp_width_old = @hp_width! t" @  p( \0 W5 e3 X
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)% d7 \& A, ?! ^  c& a+ [$ P5 C: r
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    8 N% }& K, L9 |& d1 p3 t% P& B, l
  85.     @hp_sprite = Sprite.new
    8 z6 \" W* E0 I3 Q! n& @6 r: J
  86.     @hp_sprite.bitmap = @hp_bitmap( y, W* U  Z) X: L' Y
  87.     @hp_sprite.z = 5002# m! N( A0 s9 P6 P5 I
  88.     #SP Border -------------------------------------------------------------------
    1 O6 {/ K/ k. o% d, p
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")  ^" e/ [3 s" ~7 w
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    5 u% t+ g8 n0 l8 z
  91.     @layout2_sprite = Sprite.new( b3 C0 Q  U0 g: U( Z3 @& @
  92.     @layout2_sprite.bitmap = @layout2_bitmap* A7 h9 S8 U  i2 R3 b
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height). T# P" I# G# `6 u
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    ; w' s  C# @9 k- c! r
  95.     @layout2_sprite.z = 5001    " ~# z% R' B& v2 D% _; [
  96.     #SP Meter ------------------------------------------------------
    " A$ T  i7 \0 d* \  D0 v
  97.     @sp_flow = 0
    , H  v! N) H: _4 i4 i9 {# [( b; ~
  98.     @sp_damage_flow = 0
    3 x; _* a: \. H; {$ z$ V5 b
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")0 F7 G! A: k' r
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    3 a: _0 p4 Y% b
  101.     @sp_range = @sp_image.width / 3
    * V8 Y% u+ G6 [( P
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp    k( I' A: H9 y% [) C
  103.     @sp_width2 = @sp_range / 2
    . G. G) Z! K, B3 @2 l- V1 f
  104.     @sp_height = @sp_image.height / 21 W0 U& d' g" o0 V
  105.     @sp_width_old = @sp_width
    . E  a+ l9 J5 S0 d" [6 y7 b5 h6 L, P( k
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height): u8 _* d5 o9 W$ f% I  h
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)% h& H- g! D7 L* W
  108.     @sp_sprite = Sprite.new; j, X& `/ p: B6 v1 ~/ X, U
  109.     @sp_sprite.bitmap = @sp_bitmap
    ! h0 P6 }/ a: S3 Q) q
  110.     @sp_sprite.z = 5002) j' O$ @7 j% L9 M
  111.     update
    . M1 o6 ~* D4 X
  112.   end
    - w/ u% j' O' z( W9 {5 Q" n
  113.   #--------------------------------------------------------------------------' d! {1 e: t1 [, M# R
  114.   # * Refresh5 \! P$ u" D7 Z" [( [
  115.   #--------------------------------------------------------------------------
    / O7 ]8 K' V& ^: R
  116.   def refresh% S3 N. o& {% F5 u4 w  Y6 P3 r; j
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible2 m' Z# C5 I9 f& n, E
  118.     self.bitmap.clear9 H6 `  H$ a1 W9 ?9 H
  119.     @old_vis = self.visible
    0 r$ I) L; e& A! l! E; z
  120.     @old_sp = @battler.sp$ V7 d9 @- m, _/ z. |3 i
  121.     @old_hp = @battler.hp6 S. s3 w4 B1 n' O$ X) h
  122.     hp_flow_update
    2 E3 G4 F9 F8 h6 h6 b, U: E7 r
  123.     sp_flow_update: C9 Q8 L/ B* Z8 m* P
  124.     hud_pos_update
    & U5 @! {& W+ G+ F7 ?6 \
  125.     visible_update
    2 n  @/ B) N1 H6 p8 y
  126.   end
    / u, j* h6 Z- O# y  M% f8 R
  127.   #--------------------------------------------------------------------------
    6 V) C5 X9 F- B( O
  128.   # * Dispose" y+ S) c1 C1 r- b4 U; y8 G  T
  129.   #--------------------------------------------------------------------------$ ?# t6 V$ C, @- y* |
  130.   def dispose
    ( w) M- m. M9 u5 u8 d9 d' a& L
  131.     #HP Meter Dispose
    . L8 K' q2 [8 D4 S  r% [/ q
  132.     @hp_sprite.bitmap.dispose
    # i" O1 X! t: _& T
  133.     @hp_sprite.dispose
    ) N* c( I7 F7 a2 g
  134.     @hp_bitmap.dispose
    , }( s" T& I# r5 Y* T
  135.     #HP Border Dispose
    , L% b; g5 K0 r, V7 \
  136.     @layout_sprite.bitmap.dispose. a; D- H8 ^0 C6 h' j6 q& {* P+ A
  137.     @layout_sprite.dispose! D* Z9 U$ U" ^/ V% c/ [( [' c3 J
  138.     @layout_bitmap.dispose
    & b3 S$ c1 |6 \( \: S  Y: X5 x: J
  139.     #SP Meter Dispose
    & \1 f, C( U( i$ O3 I
  140.     @sp_sprite.bitmap.dispose* q. `0 k0 B. z) q
  141.     @sp_sprite.dispose( L3 s) V( \  r9 g
  142.     @sp_bitmap.dispose6 t- H- V% L; H* X# Y
  143.     #SP Border Dispose2 V, T% w4 Z9 d! n
  144.     @layout2_sprite.bitmap.dispose6 ]2 B% n! e+ b6 s7 D& m
  145.     @layout2_sprite.dispose1 D) D. }% @0 z% k
  146.     @layout2_bitmap.dispose  d1 l, D/ ~( X! f! }9 y: W& \
  147.   end
    $ i2 B  o9 g4 j$ `+ b8 }9 _
  148.   #--------------------------------------------------------------------------$ E! K7 C: _/ i! d+ T4 O/ S' {( T8 G8 X
  149.   # * Update
    1 t2 C( y- M6 B5 S
  150.   #--------------------------------------------------------------------------2 g! \, i0 t, n9 V
  151.   def update
    : b0 K/ w9 w6 L( t" ?% N# u* G
  152.      @battler = @enemy.battler 4 P4 T. `5 K% z" `3 }: J& f( ^
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    5 `# Y4 ^( b9 c) V) e( l
  154.      if self.visible
    ! H" Z  e+ s' q( U5 r+ I9 v
  155.        refresh
    ( _* h/ W- M. y, y4 R6 W
  156.      else
    ! m" a6 i% @- x+ ^# O* B7 r
  157.        self.bitmap.clear
    ) @, e8 Z% \; Z5 A8 V
  158.      end
    7 \7 a, w( c1 e( F- t" ?
  159.   end' S5 {  }3 q+ s( d
  160.   #--------------------------------------------------------------------------
    ' u: b$ l/ r0 K5 Z
  161.   # * Visible Update* t6 h; ?9 z) K8 x
  162.   #--------------------------------------------------------------------------
    2 l5 [/ T% J0 M8 r6 s$ J% i3 Q; ~
  163.   def visible_update
    8 Y. N* f8 R* w, F- m' R
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true  y. O+ P8 F. o2 V" Z* u
  165.        @hp_sprite.visible = false: M9 v8 P" p, H5 q, Q
  166.        @layout_sprite.visible = false
    ! L7 O' r; n. i6 b
  167.        @sp_sprite.visible = false
    % b& Z& l$ t. W3 a8 D
  168.        @layout2_sprite.visible = false
    + x/ N( r' `1 u' T
  169.     else
    ' N8 i2 [, w. X$ H$ N
  170.        if HP_HUD == true% E; w8 I: X, t1 ?( U: M4 L. U
  171.          @hp_sprite.visible = true
    + H" _+ ^6 ]+ O$ l2 @
  172.          @layout_sprite.visible = true
    ; o8 c# B1 E" `1 z+ U* m; v* G
  173.        else7 A' T! A+ n$ t: j: `* A4 ]9 `4 n
  174.          @hp_sprite.visible = false
    : L! y9 z9 ~3 Y+ S9 Y* W+ A$ g
  175.          @layout_sprite.visible = false7 E! U; t4 O6 r) L% X' R6 }
  176.        end  , Q6 D9 `+ w, _
  177.        if SP_HUD == true
    5 ?/ K% K8 m' r" o
  178.          @sp_sprite.visible = true% f6 {/ D' n5 u$ ~) e
  179.          @layout2_sprite.visible = true
    - T, n4 y0 }; U. s
  180.        else
    , e$ f  x  @# H1 w8 V3 V
  181.          @sp_sprite.visible = false+ D/ Z) C% D0 |  {
  182.          @layout2_sprite.visible = false. M) ~$ Z8 C) y, A7 k( M
  183.        end 9 C; b1 B2 \6 l
  184.      end  
    ! v8 x4 [5 i: z# b: [+ v' E7 T
  185.    end 8 O$ k; q, X7 P, V9 r
  186.   #--------------------------------------------------------------------------
    ' i" @7 d- u7 Q9 R
  187.   # * Hud Pos Update$ G" b" t. H$ d/ [% r# V
  188.   #--------------------------------------------------------------------------6 y, J! G/ d+ `( ]  w& S. P
  189.   def hud_pos_update9 q8 N, J+ u0 a# g' U8 ~0 W
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    7 j8 j1 j. |& X. ~, Y6 f. R
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  ! {$ c+ o6 k: w
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X7 F, o$ u: ]) E* q% [7 N* Z; c# J
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    9 @# |/ p5 ?! }4 `( ]6 n4 s0 k
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    0 Q& J, v& g, m3 _/ s
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  5 U: I. H3 _9 d  e
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X6 b9 ^- }* O3 L, D5 V4 u! F
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     , n* b) E; c. b! A8 E1 M% ?; M1 \
  198.   end    e' [. E# c! s4 V0 a) D/ P" Y
  199.   #--------------------------------------------------------------------------
    8 _+ ^& l: s+ Z( }! c
  200.   # * Hp Flow Update
    / i# ?, p/ s9 r, a
  201.   #--------------------------------------------------------------------------
    - \( F7 D1 D/ K) x0 L6 l- i8 W
  202.   def hp_flow_update
    ' r: f' W4 D, i9 |% d/ R
  203.       @hp_sprite.bitmap.clear/ g- I6 d+ j! J) F8 G, k5 W* e
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  + S8 A7 |. G8 h
  205.           #HP Damage---------------------------------
    5 ~. r& ^* J; X8 m6 N
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100. |! d. [, N) S: u' f; T' F
  207.           valor = 0.5 if valor < 1         
    # {6 q9 K1 g8 M/ r' G
  208.           if @hp_width_old != @hp_width
    4 \# \* @, q9 z3 V
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    # a/ i, a8 y! z5 R3 J
  210.           if @hp_width_old < @hp_width
    2 ?# |$ x- w3 g; S5 v' x) L' P
  211.              @hp_width_old = @hp_width
    - G$ [; t1 N' j$ ?; D0 w
  212.           end      ; v8 V8 ^/ T  s: Q
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    , n. O6 {% L" V5 f# k% G
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       7 V6 n  ~  }- F7 `& A
  215.           end        
    4 l. |& i  f" P3 ?& L
  216.       #HP Real------------------------------------4 J% _6 l2 ?0 t2 U% `7 ~
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)+ ^) ]( w& R4 \9 B  [9 r9 m' r
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    - W1 ]1 T+ X6 Z! u% k4 l2 c2 d
  219.       @hp_flow += 2  , G$ A  s9 \7 U4 l5 `  ?$ n
  220.       if @hp_flow >= @hp_image.width - @hp_range
    , w% b* T9 t3 O
  221.          @hp_flow = 0  : Y* M3 v5 e0 q) k
  222.       end
    2 B0 s- I" A2 R- b: p
  223.   end   
    . a4 d& j4 U9 \/ a
  224.   #--------------------------------------------------------------------------! a# c0 F2 |9 \4 h% {( O
  225.   # * Sp Flow Update  k& ?' M; x/ U2 R7 w) S
  226.   #--------------------------------------------------------------------------. ^* F: A2 E3 o* a3 k1 U. @
  227.   def sp_flow_update
    . k, y3 I0 t  G' N! N0 E
  228.       @sp_sprite.bitmap.clear
    * W$ T' x1 C" P0 f
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp ! F9 H* r0 D3 H! _4 k7 E$ Y+ ^9 j
  230.           #SP Damage---------------------------------7 V6 e# \" \/ a/ u- t, P
  231.           if @sp_width_old != @sp_width
    8 D/ n* f3 C( U
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    6 B! ^' j, ]! D9 d8 o3 E4 W# T  d% M
  233.           valor = 0.5 if valor < 1              
      @7 t$ x; _: N1 U
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  . N( G$ f$ C7 [7 B5 Q
  235.           if @sp_width_old < @sp_width " S2 Z! `7 T( K. @- a; G" A& h
  236.              @sp_width_old = @sp_width
    ; Y9 `& e5 @) |1 {
  237.           end      6 M% {  p6 @+ T: y/ t) }
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height); T! A+ y& [2 v8 c% n
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    % F" j4 ]# o8 o6 C8 p
  240.           end3 T! v! k1 {0 D5 k. b& Q
  241.       #SP Real------------------------------------3 J4 Q  O) Z8 L/ _  f6 I: f9 x( u
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    ( v) h$ V( w1 W- t7 }- H7 j
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    8 u( @: d( ?. {+ P2 m: `
  244.       @sp_flow += 1  
    / J/ p' t! R/ c' \) [( ^- O, @
  245.       if @sp_flow >= @sp_image.width - @sp_range
    " q' r/ s8 n4 i  G
  246.          @sp_flow = 0  . U* z* l. Q% `( Q" p
  247.       end9 ]+ Y- d( Y4 S
  248.     end            # i- Y$ c2 M0 K/ J8 e7 R- F% B
  249.   end6 N! h1 l9 A6 n, K
  250. #===============================================================================: O! H* l- B& M" L. w
  251. class Sprite_Character < RPG::Sprite
    ( z; Y4 s# E) e: P2 o4 S0 O$ z
  252. #-------------------------------------------------------------------------------
    + Q, H4 q, [" U, G
  253.   alias :xas_emini_hud_init :initialize
    " ~% A2 U" T6 T! s( Q, M3 `( ?
  254.   include MOG
    , j3 h6 L% s  P  X& p- ^2 s* }, @
  255.   def initialize(viewport, character)
    2 M5 D) b5 A1 T5 X
  256.     xas_emini_hud_init(viewport, character)1 Y  h. A! ?) P6 w+ ?
  257.     @viewport = viewport' }( u/ Y. g  N& i& ?
  258.     return if @character.battler.nil?' [  J, {6 h0 ^( d
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)0 B) a" K; f& s% v
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)7 J! V8 p. x) U: o. Z: |6 Q3 @1 f
  261.     return if @character.battler.is_a?(Game_Actor)
    ! x! n3 M/ |. v) G9 |
  262.     @bars = S_Hud.new(@character, @viewport), [8 p2 P$ k9 _$ E/ k
  263.   end
    9 B6 ^& F% L. j$ X1 k, x$ D5 ]
  264. #-------------------------------------------------------------------------------, O" |3 C; S  `9 K
  265.   alias :xas_emini_hud_up :update  a4 b" W5 P8 o2 r6 {: S# q
  266.   def update
    ( E* {  f, Q; ^" H0 W0 J# f/ a
  267.     xas_emini_hud_up; a% f. U$ r  x5 {
  268.     return if @bars.nil?9 J, t3 |2 X( l
  269.     return if @bars.disposed?
      Q$ W( s+ ~7 C) O
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    / g; r3 X1 Z5 G8 ]/ k. X
  271.     @bars.visible = (dis <= RANGE)* t  T8 {9 L+ S, Y
  272.     if @bars.visible
    . K' ?, a7 x# _5 }6 \5 x
  273.       @bars.x = @character.screen_x# - @cw / 4
    ; Z% j1 n) Z0 l0 Z' [
  274.       @bars.y = @character.screen_y# - @ch / 4% f' T6 l2 N% ]4 P4 O# C5 w+ ~7 e
  275.     end2 n) B: }2 `# u1 N  D6 u9 c/ g  f
  276.     @bars.update
    5 _+ C# {% \/ {" \0 o8 i& Y
  277.   end# b# p$ O- A  `" ?' |' J  g+ O0 N  {
  278. #-------------------------------------------------------------------------------
    & [4 P' p- m" y/ i
  279.   def dispose
    7 R$ K: C* N1 B" H* _  v
  280.     super
    " h9 J% u& q5 V! S* Z7 {
  281.     @bars.dispose if [email protected]?
    " U1 {2 o/ r& J. b* ^: R9 o
  282.   end
    6 ?& I. Z6 E4 M
  283. end
    . g, }3 d# ]$ u/ g* ~; P7 e: E# b

  284. : [' ~* ?) |; M! W, m
  285. $mog_rgss_s_hud = true
复制代码
. q* n8 `: L6 K) k

- P- h( }3 Z: }" e; O) }0 h( S/ D5 M, i( `- A
上面所說出錯的203行內容為' |5 ^8 o! ^8 Z( b
@hp_sprite.bitmap.clear! P9 _8 O* O# l, [$ m
- i& i- ~4 Q; @  I8 @1 a& N- N9 @
想知道怎麼解決
+ H4 ?$ A' p+ G) l) O2 _7 a. W7 w# v) `* m( A  V. [2 t
該腳本支持3.82+ {4 [% u' X' ], T, t
4 c. l$ Z7 Y. I! v- c
下面是圖檔,要塞在Windowskin下2 l/ d6 N+ O2 z# b

5 {3 ]% p" d; G( N  Z( S S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
; m2 M& S$ X* a8 d( O# J5 T8 {' P! {; u# C6 _
% O5 {4 `1 O  J" \) G; {

# `* n( z3 I# W6 u! A" `& c( N$ W

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适) f8 U8 d7 G# g+ r7 a
结果尝试刷新了一个已经释放的图形
( w; m! n* S, Z" W2 _+ X
: |) R1 m8 ]7 m( l, X6 m, v
3 P/ h1 ]3 j9 x) T" e: g2 r* L( \6 |- v* c
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    & y1 T/ C3 i7 v& X' ]
复制代码
不要后面那个条件貌似就没问题了。
9 A4 b- |3 s) ~1 J4 L/ Y) Z) U
+ `, l$ A8 |! n" E) @; P. n# C; s9 M3 j$ [& P: I

& N* I; c, T, _; s1 X
  ?5 g; U* g  T* ?7 g
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
" U3 w) n0 d7 c9 w6 A5 P% u貌似是释放的条件不合适
9 l7 y- _$ x, w) ]! B结果尝试刷新了一个已经释放的图形
. s; G' _5 z1 f+ t4 k9 N0 a
把後面那個條件弄掉後,的確沒問題了' M& Z: k1 u! s
目前從關頭打到關尾結束都沒再彈什麼錯誤  W. r) M2 N1 T& D
非常感謝/ P; H5 {# k6 n$ j6 C. L$ u

( A# f2 L, [4 d; F8 R  S0 `; c不過我是參照著別人腳本改的" {( r7 S; X% d
他寫的條件式也是那樣,但我用他的沒什麼錯誤
) h6 l2 h' q/ |4 d. Z* ~/ z不知道是怎麼回事
9 C0 z; q, Y! ^# W) Q" X是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的; C/ U1 e5 O! K' D2 f" A/ b
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events' h$ n/ d9 u& F- o, F* z
嘛..这个数组吧..我在以前试写队友的时候关注过一点
5 @! L3 c9 ~5 `不知道XAS内部对它做了什么手脚还是为啥,
4 a4 u) I  p1 L总有那么一瞬间,没有被消灭的敌人事件也变成了nil
* {" L" h) A* }) B. C8 j' R3 o* q5 j# ^2 @0 R( U+ A% B
$game_map.events.values[@enemy.id].nil?
! f+ k" u7 {8 W, m因此自然而然的返回true并符合条件把图形释放掉了
) S0 G0 A  W$ J# l7 ^
( D6 R) O+ {" c* H+ j) \5 `6 A$ tLZ应该有注意到吧,2 i! q+ _/ R0 I$ X+ z  x0 p) g' J
我测试的时候发现报错前几帧,图形会消失,
1 _4 a( f% C* k9 e. Z% Z应该就是“误以为敌人被消灭”了。
1 [$ K. ]3 ]4 G8 F$ O; a& Z3 ~; k7 [4 }$ Q
受限于个人水平,至今无法找出$game_map.events的真相..
  D' W  R% E0 K( c
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
, F/ ]/ J' n. H# a# I5 |; P$game_map.events
2 l' O7 `; M# I" A  J3 }; C嘛..这个数组吧..我在以前试写队友的时候关注过一点
8 L+ b! `/ Q5 k$ s不知道XAS内部对它做了什么手脚还是 ...
! K4 T' p9 C9 O* ?& d8 Y
當初我把那個條件式看了三遍,都不覺得他有什麼錯
4 h7 q9 t6 W+ F3 N- ?原來還有這麼深奧詭異的事XD  d% F6 ?4 m- n4 ^4 d8 S3 i
0 |5 N8 Q+ `! a. ^! P( U( A
錯誤發生前的確會有圖形沒顯示出來% ^0 i' R2 ^( B0 q
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
9 P3 v2 W1 C- ?5 h. V  N# K沒想到居然是詐屍了XD
8 S$ s; b+ F3 t- a' u" p0 g' [& z8 O( d
不曉得3.91有沒有修正這問題...
! }4 u, j4 p- e1 d7 l不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
# P: R5 `4 F5 I4 Z, g
: B. @8 o% o( L+ ^* x0 b9 p的确
/ w. U& v* m1 p/ S( C+ j4 {用惯3.82之后想去整3.91觉得压力甚大..
6 a6 E2 d3 t4 f8 ?干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。- Z2 m+ k8 C5 q% E

3 f( ?0 u" C) }' P8 [& `然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2024-5-7 14:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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