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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條& l9 D2 X0 c2 s5 j% X
會在每隻事件怪物的腳下顯示
* ^' S: h  T3 ]  R問題是不知道為什麼: L& @: j2 @0 r
有時打怪打一打會跳出" b1 J5 A! c2 G& P
---------------------------3 q% r2 s  W& \. Y" Z
XAS5 Y5 w" j: J* \# W  E8 W
---------------------------
4 L8 V  W1 K! r- m0 B脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
; l' h, k% @: W4 \9 K0 S& ?: Y- ?( U$ d/ {' F9 n
disposed bitmap
; o+ N8 P* Q" _4 A/ m3 Y---------------------------0 v2 b' O" [8 J. W8 o1 e
確定   
! I9 J8 f! x) S) m, V2 @---------------------------
/ B, J) E& e: Y) \' d/ V# D
0 C: q$ d4 W" X' b6 q& O; B這是腳本
  x8 h. O5 R- q7 i& r5 b9 T
/ U+ W1 c$ B5 U9 X4 }% x
  1. #===============================================================================
    ! ~9 _8 ?) }$ A7 L4 Z# l
  2. # MOG - s Hud 1.0      
    - a  o2 u& D" f1 u+ v
  3. #===============================================================================0 _0 M: y6 ^9 b" i. d* e
  4. # By Moghunter , V# `6 O; |+ ~7 f$ L1 l$ ?0 u$ y
  5. # http://www.atelier-rgss.com
    ! d+ }5 s- a7 }% c- p! H9 U+ [
  6. #===============================================================================9 r$ I7 q& U" K+ K* j/ _
  7. # Translated by Calvin624 * D: z4 a/ [! r" n5 n: U6 k1 c9 ^
  8. # http://www.xasabs.wordpress.com
    ! q3 J, Y' S  Z. L( N" c* h
  9. #===============================================================================
    ( J( j& A8 b! H$ Z9 W
  10. ###############################-DESCRIPTION-####################################( @, Q" g  E7 z; K7 a+ M1 \6 P
  11. #===============================================================================
    : Y$ n+ {* q. L5 H) J4 A5 R0 {
  12. # Personal HUD – displays the HP and SP below the hero." U4 N4 [0 z$ Q7 M) Q, z
  13. #===============================================================================
    3 n3 M" m7 a: t
  14. #
    1 |% g% p! }' w
  15. # Graphics required:
    / D  [7 q, V) S( g5 ~6 Z
  16. #
    7 U1 @' D5 ]% y2 P" m$ C
  17. # S_Border_HP_Meter.png
    7 B) G9 a. K! B  F& a3 P; u
  18. # S_Border_SP_Meter.png
    & [% ~$ m$ ?# C& m# p7 l% s
  19. # S_HP_Meter.png* Q/ w) {; U  ?6 Z8 o2 F+ U
  20. # S_SP_Meter.png
    - x* c; U/ C  L  m9 g7 R
  21. #. i1 ~5 L+ Z% a4 L4 V1 V2 e# |! V  S
  22. # All images must be in the Windowskin folder.; Y- W& v$ w! C8 J0 O; |9 P
  23. #$ [* ?( i% r. H  @9 Z; M7 y* w
  24. #===============================================================================" X6 G! U, K8 f# c1 O! i' n7 |/ b2 A
  25. module MOG9 |. q, y1 d+ O# W
  26. VISIBLE_DEF = false  1 c! }* _. |/ K3 Z8 k3 j
  27. # Show HP meter?3 r! }3 C9 T, i+ K" d' S
  28. HP_HUD = true
    . ^) [. N9 t0 |+ W" b/ c
  29. # Position of the HP border1 g5 H$ d4 y  M) T7 P/ P6 r0 f" ]- M
  30. S_BORDER_HP_METER_X = -24 y, o0 F" L" J
  31. S_BORDER_HP_METER_Y = -2  
    ' _4 j1 Q+ x: }) m) V$ d3 X
  32. # Position of the HP meter
    1 a% x0 p& [1 o% O7 {+ E
  33. S_HP_METER_X = 0; @  ?. `" n; j# Z' j6 h3 F! K" X
  34. S_HP_METER_Y = 07 M) G# ^& e. w5 R8 W/ k' r
  35. # Show SP meter?
    7 ~- I4 u6 b+ c7 F- F5 Q3 N
  36. SP_HUD = true
    ; O' D+ Y" q; |# Z) G& m" T& t  h8 H+ q
  37. # Position of the SP border2 ~- ]) T% B& S% j  w4 _
  38. S_BORDER_SP_METER_X = 0; O7 d" _  k' `3 p, D5 e( r
  39. S_BORDER_SP_METER_Y = 10 # l" z, V  S) Q, |  m8 `
  40. # Position of the SP meter
    ( t3 n0 E. W3 G! w6 |& d
  41. S_SP_METER_X = 0( }3 K2 h! u6 u) i' J0 g% O
  42. S_SP_METER_Y = 10
    8 g& b2 L1 j3 z* t" }% U
  43. # Switch to disable the HUD6 t* F) ~5 M0 Q( Z
  44. DISABLE_SHUD_SWITCH = 5
    1 b( |7 }+ r1 F8 g: Y
  45. RANGE = 20
    0 Y! H& z' s+ X- G: i
  46. end
    3 U5 w0 c- B! P1 b. e
  47. #===============================================================================
    ; s) j5 F5 b$ @  e
  48. # S Hud# s6 l* X3 t7 Z& e, t- J
  49. #===============================================================================
    3 F0 v& ?8 y. N; a. G
  50. class S_Hud < RPG::Sprite* l7 Y# s, |6 u: i4 }8 @
  51.   include MOG
    0 _! z! O3 `( H% u# ~( m+ V* g
  52.   #--------------------------------------------------------------------------
    + m5 s3 L& |! f
  53.   # * Initialize' E8 t7 x  M2 L" w2 m7 g- A
  54.   #--------------------------------------------------------------------------
      I0 v( r$ W7 \) f- y) o
  55.   def initialize(enemy,viewport)
    ; o: e7 I: |& R$ L& @* c
  56.     super(viewport)   ~+ w6 N& m: _' w& f
  57.     @enemy  = enemy
    7 S' ^  b: D% b. a- I1 ]
  58.     @battler = @enemy.battler
    . B' V" u: m9 {/ H" F+ {& g
  59.     @old_hp  = 0
    1 o! ^) o- ^6 z7 q) W& l  ^
  60.     @old_sp  = 0
    % j! G- S6 Y* q
  61.     @old_vis = false! ^2 m4 t% q( V# p
  62.     self.bitmap = Bitmap.new(100, 100)' q1 U% f! R5 X5 j) t+ ]' ?
  63.     self.visible = (VISIBLE_DEF)#false( s6 |8 G, `# K& {
  64.     self.z = 100. X  W( o% t, ?6 H0 _0 z+ j
  65.     #HP Border -------------------------------------------------------------------
    ' R  O3 C7 p$ k
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")/ z# O, d& I7 F! Y5 f7 z
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    ! g. L5 h' R3 a
  68.     @layout_sprite = Sprite.new1 {0 g" [7 ^& O) J, E7 A9 p/ H
  69.     @layout_sprite.bitmap = @layout_bitmap
    ! B/ e  e4 i. u; s' I5 }% E, E
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    , p! u! G0 ~' \2 t5 J
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      8 G/ l7 S7 v+ ~1 T  K
  72.     @layout_sprite.z = 5001
    * y! a; Q  B9 r. [
  73.     #HP Meter ---------------------------------------------------* T6 v. M( w: k& g% }1 Y0 E+ t
  74.     @hp_flow = 02 \( q4 @; l; `
  75.     @hp_damage_flow = 0
    4 q& f2 ^. }& u7 n
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")+ H6 I8 q& }- K  K/ m( _! {7 a
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)9 h5 Y- ]- m' X' n. @- Y3 P$ x
  78.     @hp_range = @hp_image.width / 3% Y. v% J' J! n- v% d
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  5 U( X& }) z) F8 t+ l
  80.     @hp_width2 = @hp_range / 2/ F5 D! d$ p" n# n! m
  81.     @hp_height = @hp_image.height / 2
    + T- U" B! l7 B" P9 c5 @
  82.     @hp_width_old = @hp_width
    : @$ P: v. f: j: B
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)7 @7 g, P/ ^! j; A
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    ! @+ ~# E6 T$ v) u( e4 T
  85.     @hp_sprite = Sprite.new+ n: g! `* `: [1 l
  86.     @hp_sprite.bitmap = @hp_bitmap
    . u3 ~2 p: @+ f) l' A6 H4 x2 M# a
  87.     @hp_sprite.z = 5002! E' R( I* t- y1 o( }! I: c
  88.     #SP Border -------------------------------------------------------------------
    4 h  v1 e4 t- p6 a
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")" C% V, M% v6 O) a1 a3 ?
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    # U9 H" A$ N! b5 w( D  s
  91.     @layout2_sprite = Sprite.new
    8 B0 q/ g+ |+ g
  92.     @layout2_sprite.bitmap = @layout2_bitmap: F6 U) K) t( Z& f4 O
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height); [* l3 e9 U& l0 d% k0 \
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
      j6 e: C3 W- n$ V% z) r
  95.     @layout2_sprite.z = 5001    4 v8 J, U" @* F( R
  96.     #SP Meter ------------------------------------------------------- _7 g6 ^, U9 `5 l& C
  97.     @sp_flow = 0
    . v8 P2 h2 C/ b: z6 V3 Q
  98.     @sp_damage_flow = 0
    ! T* i& D) P1 Y& a
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
      n# a: f" f! h: Q5 H
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    * j2 q+ L5 g# @. m* R' I+ z
  101.     @sp_range = @sp_image.width / 3
    , U% p! u1 q  c6 x% h, I
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  - K7 {- S, g1 N  ?- h
  103.     @sp_width2 = @sp_range / 2
    + |( W# e8 O" @1 t6 X6 w5 c% M( o
  104.     @sp_height = @sp_image.height / 2& d& ~& X2 _# [- p5 z3 k
  105.     @sp_width_old = @sp_width/ A. [& M( ^% _7 |. H
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    ( e+ @5 h4 s, y( z  B
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect). D$ `1 q9 x3 U3 V
  108.     @sp_sprite = Sprite.new
    " H. b" x2 k; j9 N* w
  109.     @sp_sprite.bitmap = @sp_bitmap
    - y0 a5 V7 e5 ~  a5 i7 f" W: }4 l" w
  110.     @sp_sprite.z = 5002
    9 {. p- R( A4 ]' W
  111.     update
    * q9 i% U5 B. e3 [7 M
  112.   end
    ' z2 z5 d: J$ C" }
  113.   #--------------------------------------------------------------------------
    7 x" N, j* m' ~; x4 j  H5 Q
  114.   # * Refresh' l2 P6 z0 Q( {  z3 K7 W
  115.   #--------------------------------------------------------------------------
    # F, b: o# b. G0 ^1 x# d  y3 A( W
  116.   def refresh8 J* E0 k/ [7 B. f/ d. D! e
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible# z; \/ m- v! H- t* J0 j. T8 m
  118.     self.bitmap.clear) U  k8 L9 r( F8 f: l
  119.     @old_vis = self.visible" Z+ _; A, Q- _: q
  120.     @old_sp = @battler.sp1 m2 E& O- ]: K/ k9 v
  121.     @old_hp = @battler.hp
    & y) a& V( f$ ~! }
  122.     hp_flow_update8 ~0 x7 x8 c6 e/ C& c& {( @1 y' o( n
  123.     sp_flow_update
    * ^( O" `% \, {7 i7 x& _# u
  124.     hud_pos_update& X1 u+ v( D/ p: \
  125.     visible_update; \& P9 [, F! j% x
  126.   end; \7 K) v5 z3 a' Y  f' c
  127.   #--------------------------------------------------------------------------; W5 h, i# o6 b
  128.   # * Dispose
    ! _9 |. m! q! n2 t( i% H
  129.   #--------------------------------------------------------------------------9 V8 x6 r8 B" ~3 i
  130.   def dispose7 T. ^' D* q3 W  S' s6 ~4 b
  131.     #HP Meter Dispose& g' A9 V; B6 F
  132.     @hp_sprite.bitmap.dispose' D- ]2 j! ]" E
  133.     @hp_sprite.dispose
    - |0 ~1 t6 F. E- @& \$ x4 u
  134.     @hp_bitmap.dispose( Q, h( V$ @" W, E
  135.     #HP Border Dispose
    8 [" k$ Z) i# E6 M& F, `
  136.     @layout_sprite.bitmap.dispose+ A  b7 u  }& e! s
  137.     @layout_sprite.dispose) x7 d7 R" j6 F+ J! W% S& Z# W
  138.     @layout_bitmap.dispose
    - E+ V  ~5 h4 e0 u8 L* h2 g6 O
  139.     #SP Meter Dispose2 w! `. w% g6 O1 _# k! [) d! y- T
  140.     @sp_sprite.bitmap.dispose
    , o5 ?2 f$ b% b
  141.     @sp_sprite.dispose
    " _- v) T) v) N) U+ @9 i
  142.     @sp_bitmap.dispose
    3 }" z: n# C4 `8 @0 D- G: `
  143.     #SP Border Dispose
    ! ^6 A/ O# I+ Y! i' o
  144.     @layout2_sprite.bitmap.dispose& w2 X8 _2 M' T1 a
  145.     @layout2_sprite.dispose% M8 Y; `8 M" P2 k/ }+ ]8 B
  146.     @layout2_bitmap.dispose% c% }7 `5 `; V% i3 l: u0 l
  147.   end& ]: U, ?9 O1 j8 G7 y% B6 T$ d4 D4 B
  148.   #--------------------------------------------------------------------------
    " c; T$ |5 O+ f- [; ~0 {5 E# }$ x
  149.   # * Update# u- U6 X! H7 R. m5 ]* A2 M
  150.   #--------------------------------------------------------------------------/ q8 f# v' D; G; d# C) r& [8 z
  151.   def update
    % r9 Z6 p$ v$ [. R' \
  152.      @battler = @enemy.battler
    2 Y+ d* H; e  N' |/ Z1 Z" J
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?5 {% o5 B( @8 C$ g7 m+ c
  154.      if self.visible2 a, l4 }+ r' k, J1 L- l8 W' j' t
  155.        refresh; O) U. ~* }/ ~7 l& b! M  d
  156.      else9 N: `& r  W0 J5 {" k4 F: b
  157.        self.bitmap.clear
      v8 _: `) I7 ~! u; y. f* V* {
  158.      end1 _) h3 O7 \4 p) o  F+ A
  159.   end
    . g9 w, ?( A  b5 F( G
  160.   #--------------------------------------------------------------------------
    5 q" A& M3 W" e% C
  161.   # * Visible Update
    + c5 x) @  p% ]+ g2 C% g
  162.   #--------------------------------------------------------------------------5 g" o' b( P! [, Q& H: c
  163.   def visible_update
      R% @0 B. G7 U' G
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true" G7 k1 i  W4 C+ Q
  165.        @hp_sprite.visible = false; f' H7 ?# @3 E% E
  166.        @layout_sprite.visible = false
    * v) d/ }8 f' c% i
  167.        @sp_sprite.visible = false0 I1 O3 A# j- q4 Z% K: ^
  168.        @layout2_sprite.visible = false
    3 D0 l3 a1 [: d! w3 w( c- `% i
  169.     else9 `/ ]( M; h0 \% K3 F3 ?
  170.        if HP_HUD == true
    6 O1 Y* K' P7 T* F" L' M/ h
  171.          @hp_sprite.visible = true
    % ^) `- O' T4 @. o
  172.          @layout_sprite.visible = true
    8 d9 `) g. f# e1 o
  173.        else
    7 e- O! \* d9 `" G% h
  174.          @hp_sprite.visible = false7 f8 R( G; v4 w
  175.          @layout_sprite.visible = false
    * D7 P! N$ e' D$ ?# A
  176.        end  
    6 ^/ ]( R+ P1 ]# `. p
  177.        if SP_HUD == true0 X" B4 p" ]$ H0 u8 p# I- `1 h2 }$ h, F
  178.          @sp_sprite.visible = true
      a& v" r5 P4 Q0 x+ Z! R- G
  179.          @layout2_sprite.visible = true
    & x3 r) n9 Y# O5 I* E' A1 B
  180.        else
    ) j( R, a* n' D! s6 w5 G7 f
  181.          @sp_sprite.visible = false* a( V2 P2 Y6 M; S8 v8 U5 p& h
  182.          @layout2_sprite.visible = false
    & V4 I+ H) p) F  o- n/ ^
  183.        end
    ; g# V6 o# r8 G$ N9 ?1 X
  184.      end  
    9 `7 u7 N, e; g, x8 M" J
  185.    end 0 I2 u& W: e# ]
  186.   #--------------------------------------------------------------------------
    6 o' Z2 d* O6 x- U4 j  d6 b% o- t
  187.   # * Hud Pos Update7 a: |5 x/ t' T
  188.   #--------------------------------------------------------------------------' C5 k7 H1 D& l& R- e
  189.   def hud_pos_update
    5 E8 x, s+ k; f# x/ u
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    , X4 t. |$ R1 i. @1 ~3 V! ?( x# ?
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  7 S) K4 g6 E3 k: u7 q
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X, o; y1 i( n8 L& C' B6 X
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    % i& l: Y( y9 {: d
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X3 y. ?, l# S3 U  r
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  1 N! G! t# }$ z6 y; G- e
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    6 b3 I  t( y0 }8 j! z: e+ _
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     + O) x5 ]1 X5 G7 I1 r; _
  198.   end  * b- p* `. k' S7 W+ F0 D5 n
  199.   #--------------------------------------------------------------------------
    6 n* t, D! i* L+ }. z
  200.   # * Hp Flow Update
    / U( v& o/ @0 F/ ?, \
  201.   #--------------------------------------------------------------------------
    . |2 I# i$ E) S2 D' t5 J/ r5 {2 O
  202.   def hp_flow_update/ V5 A$ t! ?- @
  203.       @hp_sprite.bitmap.clear( V/ l1 t9 f: q0 L) x
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    5 m6 e5 k8 w" k7 _: M7 I
  205.           #HP Damage---------------------------------% P7 M% G8 s+ }& ?5 h# D' \: F
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100, h. k3 q" n. l, O
  207.           valor = 0.5 if valor < 1         
    9 h+ [6 g6 P* g- F. c# t
  208.           if @hp_width_old != @hp_width
    ! J5 N; `0 z* u7 t9 q
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  ' a9 d; K% n$ Z3 r
  210.           if @hp_width_old < @hp_width
    2 X% U0 I& m  ~7 O7 C
  211.              @hp_width_old = @hp_width
    - A( B) W1 P) r
  212.           end      * H; ]. g* @" c. a4 x& [; y; r
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    * l& H- G4 k- i' @# T: n
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       + L3 J# |3 I  Q) L
  215.           end        
    / c' _' b3 C' u
  216.       #HP Real------------------------------------, A  `& r  P* v% v8 R$ P1 `- O
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)' ?3 t  q! L- \' ~$ A/ f3 d3 l
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    3 L* u3 Y0 x+ Y$ V7 L
  219.       @hp_flow += 2  
    7 u8 y6 p, T8 w3 A  b- C7 z# J
  220.       if @hp_flow >= @hp_image.width - @hp_range2 }, O% I4 j  y5 s$ _% K, o
  221.          @hp_flow = 0  
    ' S& u  L1 f# S: ]' i- j
  222.       end
    9 u4 X9 V7 @& @9 l' M
  223.   end   
    5 P5 O4 G' T7 ^9 d- j8 ?5 r, J
  224.   #--------------------------------------------------------------------------0 {6 L, X" X2 w# Q6 ?" n, ~( S8 R5 }
  225.   # * Sp Flow Update" _5 z. m, b+ b6 G( V: }
  226.   #--------------------------------------------------------------------------
    " x$ v: t( F! s7 A0 c% m
  227.   def sp_flow_update' |! B/ u6 B" a+ T& B4 d. m
  228.       @sp_sprite.bitmap.clear( [" J1 e  I2 t0 R& E
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp $ l) V2 Q; L6 l+ x8 _
  230.           #SP Damage---------------------------------. f0 Y8 A/ t$ r
  231.           if @sp_width_old != @sp_width: `' l6 r2 B; c7 b  l# z
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100# y: a& n8 l+ K! q. D" m
  233.           valor = 0.5 if valor < 1              
    " E( a8 T$ p6 w- a  R( V, ]  @
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  0 I+ h4 w3 ^: ~' |, f) B+ w
  235.           if @sp_width_old < @sp_width
    & ]# B" w* E2 {# a- u, R
  236.              @sp_width_old = @sp_width4 n2 D! q. |1 v/ A! w3 }
  237.           end      
    0 d9 T9 |7 o9 Q$ p
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)* T/ a3 s2 F* F9 F
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    : V8 }- C5 s  W7 ^, U7 q  G% d' L" g% R
  240.           end$ B/ x) C; R4 K
  241.       #SP Real------------------------------------
    ' ^1 Z* L: A0 `' }3 w: `4 B6 K
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)! n9 l" n6 B; ^" Y( G5 B# ~
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)7 G' ~% k% b) V6 `! ?6 j
  244.       @sp_flow += 1  * E9 L5 k+ h% u2 S
  245.       if @sp_flow >= @sp_image.width - @sp_range
    9 f4 x) U' O6 t/ u
  246.          @sp_flow = 0  
    1 b% R1 f2 Y3 C( f' ]& `
  247.       end7 G8 V1 x& k: |5 k& O5 ?
  248.     end            , @  M/ `: B8 Y+ ^
  249.   end" c* T% O1 @5 N- a# J" E) g
  250. #===============================================================================
    ; f6 _+ j7 P7 e6 n9 y$ H5 y
  251. class Sprite_Character < RPG::Sprite4 ^. @/ c. Z" o- B5 e1 @$ P
  252. #-------------------------------------------------------------------------------
    / Q! W% ]6 }7 H" k  q
  253.   alias :xas_emini_hud_init :initialize7 C: l3 X# ~0 g* q6 B! V
  254.   include MOG1 f- B% i- q$ P: F9 Y
  255.   def initialize(viewport, character)) m$ y* @/ P' @  Q
  256.     xas_emini_hud_init(viewport, character). I. W' o+ c8 `, P, X; v! k
  257.     @viewport = viewport5 k0 _" r5 M! A# k
  258.     return if @character.battler.nil?1 |" J: D/ U6 e( R
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    # b$ a% ~. e% |6 ]5 u" B0 |
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    0 ?1 l0 f0 a3 H  \3 G0 D5 d
  261.     return if @character.battler.is_a?(Game_Actor)' y" l- L/ X7 Q" I% r* b
  262.     @bars = S_Hud.new(@character, @viewport)
    $ M4 \3 Y1 f! |' b+ c/ P! x9 j
  263.   end
    9 |0 o) Q+ z) e5 Q0 ]3 O% L& S
  264. #-------------------------------------------------------------------------------3 ?$ c+ ^& Z  f5 _" G# ?
  265.   alias :xas_emini_hud_up :update
    2 H# I' ^- u* ?) N9 [1 e
  266.   def update
    & A8 J% m6 ^6 c3 J
  267.     xas_emini_hud_up
    ) ~; Z) d5 x* d' }$ s- Z
  268.     return if @bars.nil?
    + b& ^$ z3 `  a1 v4 o
  269.     return if @bars.disposed?
    4 ]' B1 H# x' I/ G2 k1 o
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs8 E  I, w1 o( \  _
  271.     @bars.visible = (dis <= RANGE)
    ; G' F/ O7 R4 s. d
  272.     if @bars.visible; G- j/ ~8 P' [; I, B
  273.       @bars.x = @character.screen_x# - @cw / 4
    & z$ W( }: E  I: g# e/ F
  274.       @bars.y = @character.screen_y# - @ch / 4
    0 n) W0 u! z1 A9 [8 k
  275.     end$ z$ n+ }$ _8 b, m8 a$ i
  276.     @bars.update
    ; W# J. Z6 ^) G
  277.   end
      }. a% M4 u0 I3 f6 g# d. z
  278. #-------------------------------------------------------------------------------
    $ @0 _. [1 ~; F0 j4 U
  279.   def dispose
    2 T! y7 @0 J  L
  280.     super+ R" [' f/ H& g5 x
  281.     @bars.dispose if [email protected]?
    2 K6 q1 ?7 p1 g7 R- V3 {
  282.   end. M3 \( o* Z2 Y
  283. end/ O7 p" G- T- `. z0 `- a

  284. + L) J3 T9 u' {/ K1 Q! z
  285. $mog_rgss_s_hud = true
复制代码
8 o3 J: Y1 H0 j0 P! ?
6 j. i  i$ U  W% _" E7 b
( f1 R/ M* S/ c5 Y
上面所說出錯的203行內容為
! W/ R! T* Q" I, N- G@hp_sprite.bitmap.clear
' q! x/ m/ {; j1 U4 k& J7 b5 C8 ^; N
想知道怎麼解決
* ]  |$ x; Q+ s9 W1 ^/ R0 L7 ]' ~
該腳本支持3.829 s& ~) M  t8 p2 r8 d
$ _& \8 F4 {/ k$ K( o* w
下面是圖檔,要塞在Windowskin下
5 g5 B. ]& I, f8 {' d4 `# m2 d# R1 G
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
" C: F( j/ b5 Q, O0 f* c& j+ k8 f+ U+ |* A+ {

7 n" O2 p) r* l. l( K
2 m  `+ v9 l' z6 `9 S7 }9 c
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适5 C7 W4 ^' D! P, |7 I- P
结果尝试刷新了一个已经释放的图形  Q( X0 b5 E: s" Y- p7 k: v& t! M
( H7 x5 M6 Z; f

  `) y- E4 u* o- t1 u3 S0 Z/ x7 F: G. H
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?6 i5 s* U6 q3 T3 p
复制代码
不要后面那个条件貌似就没问题了。
. K! X! [9 M! |. R0 H+ C- E: Q% w+ u7 l/ @0 b

( N  x% S0 z; ^3 G 0 L! k# N. l7 Y7 J0 C" D1 y6 o! _2 A
3 D' p* e; p8 a- w  u9 b* g/ s
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
0 O7 ^% }( a7 t8 N' V5 p$ e: z% d貌似是释放的条件不合适& B$ w% B9 M6 b+ z5 A
结果尝试刷新了一个已经释放的图形

: w5 P% w0 h, c# d% W5 A( y把後面那個條件弄掉後,的確沒問題了% s1 l" R& ?$ J6 D; m1 S1 E# \+ ?
目前從關頭打到關尾結束都沒再彈什麼錯誤
0 }, y3 y) p7 O5 _' D6 h, o非常感謝+ `9 o1 p( P  b) R# D

4 @% |' p3 }% W) T) R/ E# v; k不過我是參照著別人腳本改的  u7 E& y' a8 t/ f+ j! O" j! T
他寫的條件式也是那樣,但我用他的沒什麼錯誤
. D% I# [5 ]$ K1 V( m: x; i不知道是怎麼回事
/ }# [7 F3 B3 ^0 d5 x6 R' Q6 M是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
/ F- N, r" F  z" {我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
- Y. j5 \; ^+ p  g+ y8 E嘛..这个数组吧..我在以前试写队友的时候关注过一点
! j% |9 B5 N* F" w不知道XAS内部对它做了什么手脚还是为啥,
' ]. O% `2 a7 ^7 N; l* v( J总有那么一瞬间,没有被消灭的敌人事件也变成了nil
2 z' m0 [: {. |' z
. e% E& v: i6 F! b, a* i$game_map.events.values[@enemy.id].nil?: @$ \: d2 V. F) B5 V
因此自然而然的返回true并符合条件把图形释放掉了& z* D" X+ @6 y
' K- S9 C( u9 C
LZ应该有注意到吧,
- ~& L# b- A" v. p我测试的时候发现报错前几帧,图形会消失,$ O- ^& ]  a9 \; U0 c: z) f' {* R" J7 g
应该就是“误以为敌人被消灭”了。; s- z  @5 R; f2 d

7 m& j1 }( [/ O! w受限于个人水平,至今无法找出$game_map.events的真相..
9 [0 ?2 {" |2 s: W; x% l
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 , a+ g1 l  C1 h+ j. ]7 ]( s
$game_map.events7 \0 P: J' F1 c+ v
嘛..这个数组吧..我在以前试写队友的时候关注过一点- ?+ n# y) E$ j# {: u
不知道XAS内部对它做了什么手脚还是 ...

5 c; s/ T9 {, n' p" S當初我把那個條件式看了三遍,都不覺得他有什麼錯
' a& Z& c: x- g! G原來還有這麼深奧詭異的事XD8 g$ K+ ~7 S% i5 a7 O7 X0 g& B3 L
! n; d4 `& p8 D  m! i# A0 r4 J
錯誤發生前的確會有圖形沒顯示出來9 [4 N! [' H4 n& ^9 Q0 f
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
2 [) e5 [! M: z& h+ o沒想到居然是詐屍了XD) l; P2 b" |( p1 o/ |6 K

! H8 Z+ {) E" G4 C不曉得3.91有沒有修正這問題...
, U9 L& \! ~% G/ Q  a不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
4 I, m$ S$ I7 b1 R$ q3 a; d
1 ]& X9 E% |" `& l0 [$ a; d% t的确
" @$ L: N7 ~) p用惯3.82之后想去整3.91觉得压力甚大..
, `/ b  f5 a5 h9 x0 ]干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
14020
在线时间
22009 小时
注册时间
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”。
' Q1 N& k( c5 F6 L/ I
) _3 j4 n+ Y1 b9 }: u3 j然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2026-6-10 16:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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