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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條% O4 M$ \1 Z! j3 K4 M; j
會在每隻事件怪物的腳下顯示
# r. U% q& L& i5 e問題是不知道為什麼
* v5 f. t/ B/ ?- [  v有時打怪打一打會跳出
/ O* P0 h$ Z. X: O( l: j! H% I: v---------------------------
' @, a) @% M. c& _8 {XAS, D  E( P2 Q# [0 s# Z
---------------------------5 @! }0 g, p! z9 B1 \' h( t8 Q2 y
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
9 R, E: f. y7 D) @5 Y2 _* e6 a) J1 ~$ n
disposed bitmap8 D; G. {1 P& a6 A) `/ C5 C2 b
---------------------------( _9 }( {* Q2 ^9 x
確定   
4 i$ v% V7 c' R# U: x6 f---------------------------. `0 A4 l/ [$ D  Q  l

- D9 a, A: P$ v; H這是腳本. q9 Y6 C! D% b7 z- x: P
. A: I+ ?+ _7 ?& T
  1. #===============================================================================' f" f% g9 I1 I% @- M/ O2 s+ v
  2. # MOG - s Hud 1.0      
    9 F7 ^1 [# S  t( K" |
  3. #===============================================================================
    ) x4 [' t+ y2 t* V; X; Z) W0 p" W
  4. # By Moghunter
    $ u- p+ Z) `: E9 J
  5. # http://www.atelier-rgss.com3 j5 B$ ~4 s6 A  ~7 t0 F9 _
  6. #===============================================================================
    # N) I9 q7 d) F( I
  7. # Translated by Calvin624 ! K, ?5 Z, m8 Y8 v/ o6 _: P8 E1 _9 t5 W
  8. # http://www.xasabs.wordpress.com1 }% h8 p% o. `) N8 N" V7 V) r
  9. #===============================================================================
      A4 @- B  X7 e2 U& k3 j  z
  10. ###############################-DESCRIPTION-####################################
      `- h& Y+ v$ _" Z7 B
  11. #===============================================================================' B! A* u8 f0 v
  12. # Personal HUD – displays the HP and SP below the hero.) m' o+ w/ L8 b  `- B* C% c2 q9 ~
  13. #===============================================================================/ q! S1 Q: u$ t2 O
  14. #2 a! ^2 {; t& t; \. g
  15. # Graphics required:
    - [4 ]. D3 C4 N$ G3 K0 L- ?
  16. #
    1 D( W" M- g  I! ~) X
  17. # S_Border_HP_Meter.png
    - ^* E) p$ u- C, _- A9 r
  18. # S_Border_SP_Meter.png
    : S2 U1 c0 u& c0 P- E" G. I3 x# s
  19. # S_HP_Meter.png
    4 O! d+ O* G3 j2 A& }, q
  20. # S_SP_Meter.png
    / k$ C: w- |7 ^; a
  21. #
    " o2 V8 b1 i, q3 J1 A% [) D
  22. # All images must be in the Windowskin folder.6 {( N8 W6 N# ~' O, g# Y
  23. #& F5 k# ]' t6 X) K% [
  24. #===============================================================================. Z5 W( i4 d4 m* V' J
  25. module MOG
    8 T/ B% [7 G0 d
  26. VISIBLE_DEF = false  
    / ^# P6 U# I# e! K% p; E6 P( b
  27. # Show HP meter?
    0 t0 C/ E" g% H/ I3 G$ g
  28. HP_HUD = true" d% c# q3 d6 j3 T6 o
  29. # Position of the HP border
    3 \& w/ x: S. p7 f/ a- ^
  30. S_BORDER_HP_METER_X = -27 W( H" t  [( e- ^
  31. S_BORDER_HP_METER_Y = -2  ; }0 J/ \% v# P# f
  32. # Position of the HP meter
    / s0 U; R* O$ Z- C" ?. Y# k; |
  33. S_HP_METER_X = 0: R* k+ x, O" U9 B% K
  34. S_HP_METER_Y = 0
    ; `! @5 V6 k$ g+ ^4 b% ^& a: }% [
  35. # Show SP meter?
    + V1 A- S* K: p9 ?6 s3 i7 ~* n2 q
  36. SP_HUD = true
    0 u7 D6 \* h- K' w  w. T# t5 Z8 V6 Z
  37. # Position of the SP border" K4 G; C8 Q  }4 {# l* y% ~+ u
  38. S_BORDER_SP_METER_X = 0  G. Y; G( p7 x/ ?/ B
  39. S_BORDER_SP_METER_Y = 10 / E# J: e# v% @" u+ k# M2 w- f6 E
  40. # Position of the SP meter+ s( j0 T/ B$ A' X
  41. S_SP_METER_X = 0
    ( E! k; T: C5 h3 h9 U2 t
  42. S_SP_METER_Y = 10/ x- j; Z! j4 N. L/ ^6 B8 j& \
  43. # Switch to disable the HUD
    3 n4 h( V" O1 p/ M! F
  44. DISABLE_SHUD_SWITCH = 5
    4 ?# ?: t/ ~) {4 t# Y0 V. ]5 U
  45. RANGE = 20
    7 @' W- z6 j5 O( e2 |/ `0 m
  46. end
    + B' H1 I' ]. M5 B
  47. #===============================================================================: t0 a& f( Q7 ~# a0 _% ], U7 H$ h
  48. # S Hud1 \! s7 T2 T* J: h( W" b; d/ \
  49. #===============================================================================. Z  G9 ~. X% u. R
  50. class S_Hud < RPG::Sprite
    6 N# A2 ], T9 G, y- w& K( s' r9 Q
  51.   include MOG
    " ^- A) m; f; Y  h# N* z3 z
  52.   #--------------------------------------------------------------------------, ~7 S9 l$ g. J  h2 ^$ l
  53.   # * Initialize
    / z! G/ ^4 Y, f0 H" g
  54.   #--------------------------------------------------------------------------. h! _* c2 O8 x# T
  55.   def initialize(enemy,viewport)2 i4 k7 q6 o7 G: @: R) J6 i
  56.     super(viewport) 6 R8 _% h" v1 _' X% V! s+ b
  57.     @enemy  = enemy# m; \! v0 r3 U1 p& F9 I
  58.     @battler = @enemy.battler$ d0 S1 @' ^5 B/ \9 Z( V9 a
  59.     @old_hp  = 0
    6 P0 E2 W0 O$ R& _5 t- I, S, g
  60.     @old_sp  = 0
    ! Y6 G0 \* @! _" Z3 `$ Z& Q$ `
  61.     @old_vis = false% J0 l# V0 ?& T6 O1 M/ K! H5 t
  62.     self.bitmap = Bitmap.new(100, 100)7 _9 V5 H4 I6 a0 O
  63.     self.visible = (VISIBLE_DEF)#false
    4 i* q& T# o& i2 z2 `$ p
  64.     self.z = 100
    ' Q$ g9 h+ r7 j3 a9 H1 M
  65.     #HP Border -------------------------------------------------------------------( ], s) c( G2 o7 I) C+ x
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    / b, {0 ~, [; B4 v. s% e) a
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    ' g: k' [7 S4 N: O2 z, W3 {6 t- O) N
  68.     @layout_sprite = Sprite.new, [: S4 S) a. J2 \; I, m
  69.     @layout_sprite.bitmap = @layout_bitmap
    , r/ J. m; Q2 v  f& W$ E, o( _
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height). T0 F5 t* E+ K) {/ t' C6 |
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      7 I- |7 ?5 W+ d7 B8 J& W9 w
  72.     @layout_sprite.z = 5001
    . G3 c( Z; K" O. h  _1 e& a
  73.     #HP Meter ---------------------------------------------------
    & j. k: v" }3 p) l3 q0 `$ |( L- s& O0 V
  74.     @hp_flow = 0
    6 H8 b  @6 Z( e% m" r" t( W' u
  75.     @hp_damage_flow = 0
    " J/ C, R8 [& F# y' m+ H
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    ; b4 P& W5 z. l* B8 F5 Y
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
      v' o" |' l5 _& W. N1 m+ G
  78.     @hp_range = @hp_image.width / 33 \* R  F0 c" a1 R; J" [0 l% _
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    % s5 z% N4 r: D0 R, H
  80.     @hp_width2 = @hp_range / 2- Q" Q% G4 {' b* x
  81.     @hp_height = @hp_image.height / 2! q6 C' b/ t' ~* {
  82.     @hp_width_old = @hp_width
    $ K1 R5 n! l" O3 B( x2 I
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    $ J% h: d8 O, P5 I  t& ]0 P
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    - b( l) B3 }; Y
  85.     @hp_sprite = Sprite.new
    0 t& [& o7 b- q
  86.     @hp_sprite.bitmap = @hp_bitmap
    & m0 B, A% I; ?/ s
  87.     @hp_sprite.z = 5002, {5 z# T" `; `8 B, A' A& E2 z
  88.     #SP Border -------------------------------------------------------------------
    9 \3 g( p- K7 g. v0 p6 u
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")  m4 W1 F; X/ N) Y  x& A
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)# u# ?8 s, u* `) H& u
  91.     @layout2_sprite = Sprite.new
    0 m3 _0 D0 q4 U$ b
  92.     @layout2_sprite.bitmap = @layout2_bitmap+ ]2 `: e- u3 u  o7 p
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height); q& |* c2 J9 R1 j3 j* {1 e& B+ X
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      7 X$ T, _0 @1 I) {/ l" j1 j
  95.     @layout2_sprite.z = 5001   
    - U6 J$ H2 b" @3 u3 Y* D' y
  96.     #SP Meter ------------------------------------------------------% p6 A) c  z( x0 c9 h$ `
  97.     @sp_flow = 0
    ) \/ s: M4 n( W' R. U
  98.     @sp_damage_flow = 0* ?; P8 U- D5 h. K2 w' Z9 s
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")9 w( J  a$ K0 ]) E0 y
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)3 Z$ z" C$ x) Z1 r, x
  101.     @sp_range = @sp_image.width / 3
    8 D7 k1 B0 A* p# i! X( ?1 q9 _, t
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  ) _3 O4 V* K! w  u+ X- j/ G7 T% Q
  103.     @sp_width2 = @sp_range / 2
    9 I1 K1 e6 Y) v$ x: z0 d
  104.     @sp_height = @sp_image.height / 2* U8 k; R  S/ ^8 }# ]" o
  105.     @sp_width_old = @sp_width
    ( `7 e$ [8 [. j, _; t
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    ) J$ h6 N7 [$ a4 `( J% X. Y" e" A
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    9 M# s% U- C7 W) a2 G; l7 [% V
  108.     @sp_sprite = Sprite.new/ ]/ T1 u' g  q3 o6 L: w: m/ ~1 @
  109.     @sp_sprite.bitmap = @sp_bitmap
    $ ]& Q% _0 T% @7 I' H" I- _
  110.     @sp_sprite.z = 50022 B9 _7 R0 R+ s7 \# y; t
  111.     update
    * f+ r9 i0 [; U9 I. P* G% S: H
  112.   end& v# e8 X! m% S( E2 Y- U1 C* ~
  113.   #--------------------------------------------------------------------------$ N* O0 ~% B: g( R# o
  114.   # * Refresh
    / S/ Q0 G% M' F' \9 D% p) l% y( E
  115.   #--------------------------------------------------------------------------
    / R+ V3 c; o+ B+ a5 O
  116.   def refresh; ~0 [* g% Y1 ?- l& W- {
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible% e. s2 P7 O6 k/ b: {; n+ D! Z1 q
  118.     self.bitmap.clear
    7 ^1 p" x' K) J
  119.     @old_vis = self.visible! ?! J7 J6 N: m& v
  120.     @old_sp = @battler.sp0 X! k, F1 J# Q! W; X4 |
  121.     @old_hp = @battler.hp7 Z! t' k. ]; A" d# w# Y
  122.     hp_flow_update
      K5 ~2 a. m! ^7 u
  123.     sp_flow_update+ K3 D. T9 Y* B' z
  124.     hud_pos_update3 @! r( C! z# H/ O9 L5 R5 o' M
  125.     visible_update1 K3 }, ?/ b; L7 d
  126.   end* n1 Y4 B) A/ Q4 u. A
  127.   #--------------------------------------------------------------------------/ k' ^: \8 A3 [$ ^! R" P: U1 m, r
  128.   # * Dispose1 i6 O4 B# ^* y& l5 C+ x' J: k2 M. A
  129.   #--------------------------------------------------------------------------% E; ?+ P$ z6 J! [' M
  130.   def dispose2 N! `& T+ k, q& D' O
  131.     #HP Meter Dispose% n4 U: J1 C3 a" J% u
  132.     @hp_sprite.bitmap.dispose3 X( J, e* X' T2 k. p0 y
  133.     @hp_sprite.dispose
    + A* [; j( ?8 T$ a9 J
  134.     @hp_bitmap.dispose
    1 ~+ \5 L: l* F- @1 {2 K" |2 A
  135.     #HP Border Dispose
    8 ?& X& `- _  V6 g! s% B  u. w, X5 z
  136.     @layout_sprite.bitmap.dispose3 h3 i5 p" m, s9 ]
  137.     @layout_sprite.dispose
    ; Z( ?9 X1 T% X/ T5 }" M: N" [
  138.     @layout_bitmap.dispose, c2 t. C+ X. J
  139.     #SP Meter Dispose
    " z& V) j( a8 @7 Y5 T' V7 W7 R
  140.     @sp_sprite.bitmap.dispose' r7 C4 q- o+ k5 @
  141.     @sp_sprite.dispose
    * Y+ `: W  }; _8 C; a' b
  142.     @sp_bitmap.dispose3 r/ ~! N$ d! s" `, k# N
  143.     #SP Border Dispose
    + G/ ^  p5 D5 M: O# Q2 w
  144.     @layout2_sprite.bitmap.dispose
    9 }5 o3 L0 Y' M) c! n5 [& N
  145.     @layout2_sprite.dispose8 Z4 B+ \) z2 o3 e4 g
  146.     @layout2_bitmap.dispose) v" H% p0 O* k
  147.   end# d8 ^5 t' t$ o: w% W( e
  148.   #--------------------------------------------------------------------------
    6 E$ `& d  o" m5 ~3 |
  149.   # * Update( k6 ^; o$ {% N: I2 f  o# G/ \& j
  150.   #--------------------------------------------------------------------------& m2 ]1 Z7 n, M! Z! U( B6 l
  151.   def update& N/ _- k! {, K
  152.      @battler = @enemy.battler
    ) j% K2 O7 U- g5 B$ }/ h
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?% h  p: N3 i; `6 M
  154.      if self.visible2 Z8 K7 T1 ?8 e4 n4 Q5 t& ~8 w
  155.        refresh
    . `+ W; p' E) d; S) f
  156.      else4 n: |  H4 `) A5 q* j5 z" A
  157.        self.bitmap.clear
    . G; }. |+ J6 h" [' v
  158.      end
    ' i6 \6 {6 m! K( I# w. n; W
  159.   end1 j) h# N, [( K, {, [
  160.   #--------------------------------------------------------------------------. k# c7 h1 D* Y& O
  161.   # * Visible Update
    " l1 P1 ]% a3 Z5 I
  162.   #--------------------------------------------------------------------------
    7 {! z$ }6 t  Y$ v$ d* @
  163.   def visible_update" ?3 R" k3 W2 R0 N4 X  {' R( `
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    $ Q& W7 v' i. S, M! v& |$ I
  165.        @hp_sprite.visible = false) L7 ?* M+ g; D, J7 A
  166.        @layout_sprite.visible = false  L  {+ e! D  G3 I( v) {, X# n$ H' K
  167.        @sp_sprite.visible = false/ l4 a6 p  u8 j. C
  168.        @layout2_sprite.visible = false
    + D0 ]  z3 D* }: i8 b
  169.     else' t. f/ f) `7 I7 L* e
  170.        if HP_HUD == true
    # C6 ?$ {! |8 m  o9 k
  171.          @hp_sprite.visible = true
    0 ?( x+ ~7 I" d' ~2 d
  172.          @layout_sprite.visible = true
    . q, T, B% D3 g  A9 ^
  173.        else
    ( P$ w8 d3 s! s! w  _9 F" {' S5 [+ [7 {3 I
  174.          @hp_sprite.visible = false
    . c# d# ^+ B" E# }: e1 s$ P; C
  175.          @layout_sprite.visible = false
    ) j! K' T! D, L& N, y
  176.        end  % g+ n/ s" Y2 f  n/ z) E. o
  177.        if SP_HUD == true
    . d2 _& G! Z, w; V# r+ j( `
  178.          @sp_sprite.visible = true2 j6 v5 ^9 |! r' v% T9 M* E  z1 C& L
  179.          @layout2_sprite.visible = true- L' U; W6 U/ K! l7 I1 A3 q
  180.        else: W3 d/ m+ J/ K
  181.          @sp_sprite.visible = false) s" ]0 @/ I. Q* L! I0 j+ y
  182.          @layout2_sprite.visible = false
    ) z- E: I9 X% B& l8 W! y
  183.        end
    , u" K- G1 O# O% G
  184.      end  
    ( `9 F4 [9 F2 b- P( l3 W
  185.    end 8 z3 I$ ^1 j) d1 ?5 K6 J) M! U) l
  186.   #--------------------------------------------------------------------------
    ! K) _) k% [: x6 W/ u
  187.   # * Hud Pos Update5 k! Q& P) {& g+ I8 _
  188.   #--------------------------------------------------------------------------
    " Z9 Y  |* u- m$ C+ V8 c  |
  189.   def hud_pos_update
    8 p* G: g. V) x: F, f
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    9 {) r: @3 Q8 K1 Z0 c
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  " ^' x( c( j2 `: H) o9 a
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X; Y5 Y4 G: f, Z$ y
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    2 X7 I6 t2 y0 C/ S( L( P
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    7 o' W1 O( x- |& `. s: r
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  3 S! _% w3 ^- Z
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X5 ]. [7 t& x6 @5 m$ }
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     * z% D; Z& S9 R" x' m" ~# Z5 e
  198.   end  3 A+ |! f7 K! N
  199.   #--------------------------------------------------------------------------
    , \) k# q5 q5 e
  200.   # * Hp Flow Update) P, m  x/ O1 m. o4 _
  201.   #--------------------------------------------------------------------------; W" C) y2 P1 \$ J
  202.   def hp_flow_update
      }- U" ]9 b  \! `# b% x0 ]
  203.       @hp_sprite.bitmap.clear
    & D8 V! o5 B5 u" L3 k
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  : z" q/ y' {( F6 L  C
  205.           #HP Damage---------------------------------4 b9 p) _. X. |, c' [6 {) M
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    8 s, V2 ^- j' X  P4 M& m
  207.           valor = 0.5 if valor < 1         
    ; X: \! c$ a+ Z7 B
  208.           if @hp_width_old != @hp_width
    ; p. \) d8 s; R0 N7 }8 `$ }
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    7 A" Q9 E, l+ G( C% Q3 }
  210.           if @hp_width_old < @hp_width 3 F- S; t. R! b: J. I6 P1 ?
  211.              @hp_width_old = @hp_width
    4 C0 Y$ |- i% q" ?- [; i
  212.           end      ! O! |3 V) I8 o( J& P3 K, J
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)* \; \" v2 X* O3 j( c" V4 P
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       , V3 y. S% h" a. }
  215.           end        , [3 |- Q8 Q" f( U
  216.       #HP Real------------------------------------8 O( B3 e4 n. p# _
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)- ?. C0 j  w  \
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          , }$ g6 r: s- I1 b
  219.       @hp_flow += 2  1 p2 c# ]5 D$ I5 F' S1 b) R
  220.       if @hp_flow >= @hp_image.width - @hp_range
    , I! Y/ s' H7 l) j8 c4 V# J
  221.          @hp_flow = 0  
    2 ?( s* l5 z! E2 T$ ?
  222.       end
    8 O5 {7 }+ j  g. r. ^
  223.   end    ( ?+ u, Z& H6 S0 D- I  ]8 L
  224.   #--------------------------------------------------------------------------* `: Z; G2 d3 {- w" G& d; P5 k
  225.   # * Sp Flow Update
    ! v5 s! f5 g3 o, @6 }! F
  226.   #--------------------------------------------------------------------------" }0 Z" F6 i; ^" D2 Q/ M
  227.   def sp_flow_update
    # R. v/ P. C1 ~  B- G! b
  228.       @sp_sprite.bitmap.clear9 M- J2 C- @& c( b- u0 A8 ^" G+ |7 {
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp " Y" B- w7 }- U( u( \9 r! S
  230.           #SP Damage---------------------------------
    2 I7 H- I0 t0 l6 x5 _; w
  231.           if @sp_width_old != @sp_width
    - J0 w3 V0 p% L% i" W, C7 G) e
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100* Z! C( k$ N- Y0 D  V# [" U7 I
  233.           valor = 0.5 if valor < 1              
    , T# B8 E: k3 F1 {/ a( D
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  ' F8 M( ~3 [9 f1 p
  235.           if @sp_width_old < @sp_width
    9 }- @  k, V, l' |. M
  236.              @sp_width_old = @sp_width' j/ n" Y$ L$ W) ^: Z
  237.           end      
    0 G5 w6 {) a9 y" j
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)2 _0 X: Z0 |7 Z; V
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) * g2 @* B. F7 D
  240.           end
    : T1 N# J9 M/ N! j7 g5 G( I4 w1 ~
  241.       #SP Real------------------------------------, P$ V1 t" v+ ]/ ?/ t; e
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    / n$ W+ `% Z( @
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)" s. Q1 ^0 O9 G8 X+ N9 y$ ?3 X- @
  244.       @sp_flow += 1  * V. X$ w$ O3 f7 @! B6 ~
  245.       if @sp_flow >= @sp_image.width - @sp_range8 d' A$ n2 _4 S" o1 w& r2 c# u
  246.          @sp_flow = 0  
    8 P4 \5 t1 Q; i' l
  247.       end, Q+ a- G" l) ]( m+ n8 D
  248.     end            5 x. v5 `7 x2 c& ~
  249.   end. f6 O3 |8 ^0 m' n$ N, }7 X$ n
  250. #===============================================================================( H& I/ Y" {' N1 A
  251. class Sprite_Character < RPG::Sprite0 o2 b1 f& p( J! V) b( \
  252. #-------------------------------------------------------------------------------! d9 N' J. \+ p/ z" {% K
  253.   alias :xas_emini_hud_init :initialize2 P$ c+ f. I9 `5 r/ R
  254.   include MOG
    3 @# ^# h/ _# M/ [' @
  255.   def initialize(viewport, character)
    4 v$ a0 X1 d! A* o& c
  256.     xas_emini_hud_init(viewport, character)
    5 R+ s- e# `" j6 |! S( e5 h
  257.     @viewport = viewport, m+ |; m- U5 u" y/ Z( h/ h8 O/ K% f
  258.     return if @character.battler.nil?
    # P4 n- L& d1 a8 ?) j( F' p0 T
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    4 Q5 X5 F' d$ o& W' e; H
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)  w8 V) y# W% ?
  261.     return if @character.battler.is_a?(Game_Actor)
    . v# U' F: y! o
  262.     @bars = S_Hud.new(@character, @viewport)8 j3 V8 W2 w  ^
  263.   end" c" k' n: |1 E6 u, d# \  z0 Z
  264. #-------------------------------------------------------------------------------
      g8 @* g) N+ ^$ K8 H  {) N
  265.   alias :xas_emini_hud_up :update3 j8 a1 T8 S4 @
  266.   def update
    0 ~" J6 g% e3 y
  267.     xas_emini_hud_up
    " _/ L  K0 C2 @) ~* v
  268.     return if @bars.nil?
    $ b& k; ?' j: r( L6 f8 s6 ?
  269.     return if @bars.disposed?* w5 @  Z9 a6 P- D
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    . T/ _6 ?# A. Q' y- D5 I5 s
  271.     @bars.visible = (dis <= RANGE)
    ! U! E* S5 N/ T0 D: \, p
  272.     if @bars.visible- P! u3 A6 ]" L
  273.       @bars.x = @character.screen_x# - @cw / 4+ Y8 {  R) A8 ^6 b' l# Y) k5 w* n2 u
  274.       @bars.y = @character.screen_y# - @ch / 4% }" \+ w0 G, F! l
  275.     end8 V$ g5 X' N5 ^' s. E1 i6 ^- Q
  276.     @bars.update
    4 k" I2 M6 c+ I
  277.   end) Z, _4 }4 b9 A
  278. #-------------------------------------------------------------------------------
    . _1 w/ L( e8 e+ m4 _
  279.   def dispose
    ' x# |2 \( A. ]
  280.     super
    # i% L4 |0 q8 N, v7 N1 a$ s0 m
  281.     @bars.dispose if [email protected]?' v0 c2 y$ P- r! \$ t# k
  282.   end
    ' Y/ i3 {( d( F# V, K( a
  283. end8 S2 k: Z! q1 J) B6 v  T( Y9 H! t! A
  284. % C% U7 B) n8 l# N9 }% O
  285. $mog_rgss_s_hud = true
复制代码
' T5 `" e0 P1 y  t6 E7 X) ]
* x& o2 U- f# ]
6 I3 Z' v& N2 }
上面所說出錯的203行內容為
5 P1 h  k, F) ~; d* V( {* z2 F@hp_sprite.bitmap.clear% L, W# H; W5 r+ [, z5 u! w
  Y0 N& H$ H* U1 }
想知道怎麼解決: O3 t2 g4 r9 N7 I+ Y% t

6 V3 d0 p( h. o2 T: c) S  C; j- s) ~該腳本支持3.82% J  {) H  ~; I; b8 v; p

2 Y! m" P  n5 S4 Z  {# ^# g下面是圖檔,要塞在Windowskin下5 ]  @+ I8 _  n  L5 q

" C# {; d  @( B3 a) }7 K- Z S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
& Z) T4 e1 f6 M( n* |  L
( a( T0 w9 p1 i" \- O* ]0 j( `6 ], w. ]9 J. N
2 t8 {" U  P1 B0 Z4 r4 K7 y
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适1 ~- f" m; c/ \4 d. N) s
结果尝试刷新了一个已经释放的图形* {; ^4 p- ]$ J! ?  e/ Y
) O$ b; G2 A- S5 [# }3 S8 W" o) [" t
  w0 r% Y) y. U% O3 t  P
( m# v6 }7 J  F8 w: g
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?, o5 b0 v2 p! l
复制代码
不要后面那个条件貌似就没问题了。
8 l4 @$ P+ r3 N* Q' c/ @. v8 E
8 a3 m9 T0 E+ c. b6 [# Q
: O0 A5 i2 P$ j7 g- Z! h
" Y3 e; c# q: k7 h* p1 q4 [
. |2 A7 H; S: k
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
4 ]) J+ @7 G' V( d貌似是释放的条件不合适
9 d4 a6 w% T! f+ N/ Z结果尝试刷新了一个已经释放的图形
/ b& N+ ?( o% ?
把後面那個條件弄掉後,的確沒問題了
# [; _. o. b* T# w5 }2 o& A. U目前從關頭打到關尾結束都沒再彈什麼錯誤' a: @4 p; i: ?9 J! ]0 A
非常感謝2 ^2 w" z: A/ J0 R& E( z" Z7 R

  m' y2 v6 Y( w/ f4 h5 T! D9 b不過我是參照著別人腳本改的
( W& W+ |0 F9 y! U4 l. `! `6 M他寫的條件式也是那樣,但我用他的沒什麼錯誤
0 X% e- m( K' A' q2 I7 J不知道是怎麼回事
* p# p1 k1 l2 E6 k, s7 S是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的' ~4 E/ L5 d# h/ O; E- @0 k
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events% h* s: \+ H+ V& W: v; f/ D
嘛..这个数组吧..我在以前试写队友的时候关注过一点
1 S4 q! r3 c- I) V不知道XAS内部对它做了什么手脚还是为啥,
: x5 I7 a) w3 e( {总有那么一瞬间,没有被消灭的敌人事件也变成了nil5 m) a9 f, g/ w2 G7 b  e
4 |( h- r! x) J. p  ?% D
$game_map.events.values[@enemy.id].nil?3 J* p' k+ P) D& [* k7 Q, }
因此自然而然的返回true并符合条件把图形释放掉了7 X( M6 t, w% r- R
& y6 ?5 J5 K$ J# q7 r5 _# D
LZ应该有注意到吧,
; P0 @+ |5 M# k$ @( b! i* _我测试的时候发现报错前几帧,图形会消失,
3 }& `9 O: b% O! Z1 D  p. ~4 [2 K应该就是“误以为敌人被消灭”了。  V9 e! ?& O; M4 N

& N  v* `- V$ I' ]5 F! l1 }受限于个人水平,至今无法找出$game_map.events的真相..
& d4 L0 q0 p' k- y8 Q( |& e# @# g
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
5 }6 Z( C: n0 n3 o) f4 o$game_map.events' c& x: f3 t, `7 N! a, ?
嘛..这个数组吧..我在以前试写队友的时候关注过一点
+ r4 Y4 O6 |: w* U不知道XAS内部对它做了什么手脚还是 ...

! j9 m7 l$ q& B4 o7 J, |* w$ S當初我把那個條件式看了三遍,都不覺得他有什麼錯
0 N" D" h" n$ e: |5 D1 C; c( j原來還有這麼深奧詭異的事XD$ `# V( b- R  R4 }' _

& N+ g( n" ^$ F# M, X/ v錯誤發生前的確會有圖形沒顯示出來
0 ^( [1 H/ t& n! u6 F不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...3 G3 A! Q3 P( J  ^
沒想到居然是詐屍了XD
7 J3 v$ z9 p. E0 v5 r6 V* t: m/ _' c8 j: j' Z) {# h
不曉得3.91有沒有修正這問題...
! b2 w  _. C6 B4 J6 V* D& D6 u不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。+ y7 s7 T5 D3 l9 E0 j2 A+ U" B
3 [# ^- s+ |. p
的确
* G" t" g. k  z7 x3 ?用惯3.82之后想去整3.91觉得压力甚大... u* _! r+ o+ E% N7 @
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。9 s/ Z: y2 @! t8 k
& N( q3 d: b. e" @) b# c
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2026-6-4 19:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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