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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
: a: K  U/ ?( j; H: ^會在每隻事件怪物的腳下顯示" i9 W( V& ]$ @1 |9 [( w3 ~
問題是不知道為什麼; N9 h( r% {4 W* ^1 I" E6 V2 J
有時打怪打一打會跳出
% W. C7 ~1 i5 k---------------------------" r2 V% l8 b  N& r) Z
XAS$ w! {% _9 h. ]
---------------------------
4 ?* U" _+ M) D: W4 _脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。2 V$ {* ?6 I. R5 m8 g! D9 b
0 K: e1 L# `, M* ]( r+ \! u
disposed bitmap
3 {! T8 a2 x; v2 s( S---------------------------1 r; X1 G+ s5 |6 F0 n! p! V
確定   
' \0 C3 z) ]* h0 [: o1 l  G---------------------------
4 J) l; F* l+ H- h' p
! T2 K) p# b" J+ i) o0 F  I, y這是腳本7 k0 |- f; b' c" I# L2 D

& p3 ~! ^3 A8 I% ~/ L! a# R
  1. #===============================================================================
    6 ?) }: P7 N, k0 G8 h& W1 }0 o/ h) M2 J
  2. # MOG - s Hud 1.0      
    ; ~0 @, ]8 q5 r* @( m* V
  3. #===============================================================================! [5 T, X$ q* d# A
  4. # By Moghunter 0 B4 H7 u  ^6 F& ~- j
  5. # http://www.atelier-rgss.com, H; s: C6 |0 H
  6. #===============================================================================/ J+ x( m. h. l+ q
  7. # Translated by Calvin624
    + `8 C2 Z6 {$ \8 d9 H" M  C7 |
  8. # http://www.xasabs.wordpress.com
    ; H1 X" |9 o5 p; X" a0 Y. C
  9. #===============================================================================. ]& }4 R  z$ q& e  K8 J1 ?  y
  10. ###############################-DESCRIPTION-####################################2 x9 q  u# Z8 d/ V7 i; b' ~
  11. #===============================================================================* A5 {( q& @' ]  ^
  12. # Personal HUD – displays the HP and SP below the hero.; q4 e$ b( i' v
  13. #===============================================================================
    2 n3 I2 x% C5 H$ \
  14. #5 I5 Y+ Z$ ~; y/ Q, o3 `2 F
  15. # Graphics required:
    " Q9 g6 X& z: G4 M8 q4 m! l2 j
  16. #
    - `, u6 Y5 x+ D
  17. # S_Border_HP_Meter.png8 G$ p' e' x9 f
  18. # S_Border_SP_Meter.png# G' D& z% O9 m4 R0 ^9 y
  19. # S_HP_Meter.png
    ) W. z5 c( l9 L1 J& @- G
  20. # S_SP_Meter.png
    ( X3 B3 f  m; X
  21. #( i$ ?# Y6 M7 X
  22. # All images must be in the Windowskin folder.
    * A$ P: J0 F$ S6 t
  23. #! z3 X. K, v. [. @$ \8 r" V; w2 w* q
  24. #===============================================================================- Q) O8 V8 Z' f
  25. module MOG
    $ d" a3 s6 V- t( x: q
  26. VISIBLE_DEF = false  " @: m5 f+ l6 _
  27. # Show HP meter?$ T4 p# R; E0 e2 q
  28. HP_HUD = true
    * C) u- V% J8 J
  29. # Position of the HP border6 X& h2 W( B7 ?9 D, U
  30. S_BORDER_HP_METER_X = -24 w8 p4 R5 }) h3 V3 G) K0 a3 |
  31. S_BORDER_HP_METER_Y = -2  
    * K: r) E" K. W, B( D0 P+ s
  32. # Position of the HP meter
    6 n- |% J6 d9 w' T  D. |# V
  33. S_HP_METER_X = 0
    ! P, ^" R% f7 z) L
  34. S_HP_METER_Y = 0
      [& h) K% C5 x/ n
  35. # Show SP meter?) }0 Z4 q/ c. E4 i  y& J
  36. SP_HUD = true0 |/ \* G$ a, W2 S6 L# U/ K
  37. # Position of the SP border/ r/ n1 G+ [4 x" S6 r
  38. S_BORDER_SP_METER_X = 0
    2 T! V/ K0 `; F$ L* T3 R
  39. S_BORDER_SP_METER_Y = 10   b& i2 A8 C9 z$ f
  40. # Position of the SP meter  A( Y) t. I" d/ S! p" y0 C+ g
  41. S_SP_METER_X = 0- R" d7 w  f8 h- G1 q2 K
  42. S_SP_METER_Y = 10
    / A. F/ Z; q3 h; R' _, s
  43. # Switch to disable the HUD1 o/ \4 I( s, n& }* t+ W( C, Z" J2 U+ \
  44. DISABLE_SHUD_SWITCH = 5% P! f' P; y6 y: F
  45. RANGE = 204 S. S$ N/ g7 D" p; T$ J
  46. end+ a  l$ K# S5 I: s1 S
  47. #===============================================================================1 K- r+ z6 I' C5 }
  48. # S Hud# r/ ?# K: p  A$ Q( }( H4 E) ^& F2 x
  49. #===============================================================================
    0 d0 C. C! s' Y
  50. class S_Hud < RPG::Sprite# v4 g- [  E' j$ v: N) t
  51.   include MOG( k, _6 {" R+ H/ j( {8 C% y( d& M
  52.   #--------------------------------------------------------------------------
    0 s: R% w: H+ v# \7 H' ^0 h
  53.   # * Initialize) t2 A- h  I7 |% a- _6 U" m
  54.   #--------------------------------------------------------------------------. e. E& q; i1 O0 e5 k0 j# x" s3 c  o; e
  55.   def initialize(enemy,viewport)& L& z0 h( M- Z  b
  56.     super(viewport)
    $ _/ X+ a3 j% w8 {
  57.     @enemy  = enemy9 [2 i( N' N& H# y& M8 D
  58.     @battler = @enemy.battler3 u3 t7 N, [, J# m
  59.     @old_hp  = 06 h9 A! n8 ^7 {* v/ F) [9 Z
  60.     @old_sp  = 09 s, a5 Q+ @. F# W. b0 J
  61.     @old_vis = false, S3 H% P' b  ~3 p5 A/ B7 B
  62.     self.bitmap = Bitmap.new(100, 100)
    : }/ L; q- F4 u% j2 T( V' Y
  63.     self.visible = (VISIBLE_DEF)#false
    # h" f8 G+ f0 c' w
  64.     self.z = 1009 \; t. T; @7 {* V
  65.     #HP Border -------------------------------------------------------------------
    7 f3 J* o8 o- Q. R! P
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    % B" I' E1 I  C6 ^4 w+ v
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height); o/ i5 z4 j# O  P5 _
  68.     @layout_sprite = Sprite.new  B5 o, R1 H; {, [  _2 [
  69.     @layout_sprite.bitmap = @layout_bitmap
    3 n* A: J: l1 R$ Z
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)' P4 N$ [% W: S7 j
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      0 D& W% B. ?8 G4 h  c8 e+ [* Y& Q5 N
  72.     @layout_sprite.z = 5001
    ) `& `; y+ N% w" d9 {
  73.     #HP Meter ---------------------------------------------------
    & Q# M" s2 d; S4 I
  74.     @hp_flow = 0
      R8 o' B3 u1 |/ H4 G: S
  75.     @hp_damage_flow = 0
    + @4 `. ?* f+ S  h2 _
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")# m8 }1 s# @; S- k5 o3 A- ]
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
      N2 ~" C# n6 E3 u, }  G  J
  78.     @hp_range = @hp_image.width / 39 F) W# B! G0 C3 ]5 U
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    7 H. R, u; ~: d
  80.     @hp_width2 = @hp_range / 2: [$ s) N) q) [5 ]( w% @
  81.     @hp_height = @hp_image.height / 2
    # S: i2 }' k- f$ `+ D& ?5 A
  82.     @hp_width_old = @hp_width
    2 B5 `9 m2 O4 `/ I
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    - I3 ?, j  W% `  B) x2 A
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    $ p9 ^1 ^+ {9 @1 W, M& n/ U
  85.     @hp_sprite = Sprite.new2 W4 ~4 X; l5 @0 Z& v
  86.     @hp_sprite.bitmap = @hp_bitmap* P# x4 n& C( _: r& t- A
  87.     @hp_sprite.z = 5002. X9 p3 D8 Z; N" P
  88.     #SP Border -------------------------------------------------------------------
    2 b9 e: c: g  b- C$ x- Y$ `' ]
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    9 N/ z6 m: k4 W. c0 _3 U
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    & I! n7 g* M+ F- M9 o' ^
  91.     @layout2_sprite = Sprite.new
    ) ^. I% a! d+ \! ]8 `0 \- {% r
  92.     @layout2_sprite.bitmap = @layout2_bitmap0 W- D+ i- h1 o* e2 n; L5 v2 X6 G
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    2 F1 f/ j# L! W/ L6 w& Q5 U* q, f
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    / r2 _: {2 j9 G: c7 [3 N9 m* X/ F
  95.     @layout2_sprite.z = 5001    & p, J! B& h4 G
  96.     #SP Meter ------------------------------------------------------. X1 L0 d7 v( g: V
  97.     @sp_flow = 05 `! O7 y& [/ U
  98.     @sp_damage_flow = 0  _  E, U% o9 x( `
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    4 S$ H: v# F. F& g/ B0 @& q) P
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)% E" p, w0 N& Y
  101.     @sp_range = @sp_image.width / 3& z( e2 c' O, _& A
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    ) t( A. B4 A5 Q6 n8 T, N0 q
  103.     @sp_width2 = @sp_range / 2' Q% r. Q% J8 \$ d# F- Z+ k) w
  104.     @sp_height = @sp_image.height / 2
    - d* ^$ L; [3 ~% V  c$ L2 y+ o) B
  105.     @sp_width_old = @sp_width
    ; q" V- E: m2 D3 V
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    ' i' O8 l& Z% x! f7 ?
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    - h$ l6 v% G0 T
  108.     @sp_sprite = Sprite.new, Z, C1 c: X1 E9 j; t
  109.     @sp_sprite.bitmap = @sp_bitmap
    9 ~3 k: b0 b7 Y
  110.     @sp_sprite.z = 50021 ?9 i6 h3 |# x1 R" `
  111.     update; r1 [5 G- u! @8 y
  112.   end6 ]: {  L8 J, B( i, e6 G
  113.   #--------------------------------------------------------------------------
    + X; ~. M" [7 b) ^* {- V2 I* }  m
  114.   # * Refresh5 a2 _; Q7 K6 N* r& z5 X) Z( ?
  115.   #--------------------------------------------------------------------------
    ! p5 R$ K: |! O5 q% }- ^$ f1 W
  116.   def refresh
    : ?( }: u7 N. v% k
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible4 _9 S$ L) r: Q3 i; O: d( D
  118.     self.bitmap.clear+ S* [) E  j9 U: m0 a! Y* z0 c
  119.     @old_vis = self.visible3 J7 V( X6 x; f, L
  120.     @old_sp = @battler.sp/ U1 K( V0 W  H, a1 m. R
  121.     @old_hp = @battler.hp; B& M7 R7 k+ Y# B
  122.     hp_flow_update
      Z6 _, d! O3 ?8 ]$ A
  123.     sp_flow_update
    & f3 d6 J) o, J! V$ v; P
  124.     hud_pos_update/ N7 i1 b1 l9 K( d
  125.     visible_update$ E4 F' z" h$ {  l, s2 r
  126.   end" n8 E5 K) ?, w, r
  127.   #--------------------------------------------------------------------------
    0 g$ s" ?7 B- s2 K5 q4 u- ~  n
  128.   # * Dispose0 ~# h6 |- O4 N0 w8 D2 i
  129.   #--------------------------------------------------------------------------. u3 ^2 v5 G0 P1 k, U
  130.   def dispose# L6 s6 Q3 \' v2 L9 t  O
  131.     #HP Meter Dispose
    9 }( r, G7 I, B4 Z( |
  132.     @hp_sprite.bitmap.dispose# z% q0 @$ l& T) f3 x- h$ m: A, n
  133.     @hp_sprite.dispose( m, E6 B1 c: v1 u" f
  134.     @hp_bitmap.dispose
    * g1 ~; h) u, j& ^
  135.     #HP Border Dispose& h$ p' h. s- |6 V
  136.     @layout_sprite.bitmap.dispose
    % o8 J& G# A6 K" C6 l) n+ l; E+ c
  137.     @layout_sprite.dispose; k3 Z9 f0 G3 @5 a5 a% p  N
  138.     @layout_bitmap.dispose$ C; [8 p) ]3 O" H
  139.     #SP Meter Dispose
    / M! {3 j' N) M# r# \
  140.     @sp_sprite.bitmap.dispose
    ; k% t, D$ c5 W+ _0 D+ ?5 p
  141.     @sp_sprite.dispose
    2 Q5 V1 R/ D( \  B4 }0 T( I. U- \" j
  142.     @sp_bitmap.dispose/ @$ D4 s6 {1 s% t  O! ?1 f
  143.     #SP Border Dispose
    " k/ {) D8 }4 W
  144.     @layout2_sprite.bitmap.dispose
    & t, j6 U% m3 c2 Y' Y4 x  a
  145.     @layout2_sprite.dispose
    ; ^' x6 q/ L- y; |- z
  146.     @layout2_bitmap.dispose
    3 P' d; F2 f* A5 ?3 F: i9 W7 ?
  147.   end0 w% |9 f. C3 w  ]
  148.   #--------------------------------------------------------------------------3 Y: b' F7 q% U' D( y7 H
  149.   # * Update: q3 U3 d3 T% L/ S
  150.   #--------------------------------------------------------------------------) L  j9 B" ^! e: i
  151.   def update
    ( u1 b7 N& e/ ^* o2 t' j* n
  152.      @battler = @enemy.battler % h- ^" k: }" z& d% r
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?7 y% @' t1 r2 }5 W, P: T1 }3 a( M" q
  154.      if self.visible
    3 T4 R6 W9 }! }$ w9 a( ]. W
  155.        refresh" @# [, _( y7 X1 C2 j; Z& F$ V
  156.      else
    $ e; Q# [+ O; y4 _' q1 O, K
  157.        self.bitmap.clear9 ]% C: w$ L& l) B$ |) i# Q# p
  158.      end6 V7 d0 f& ~/ \
  159.   end1 P. ~5 [3 v7 `0 P8 ]' y# d3 I
  160.   #--------------------------------------------------------------------------) [: K% T! J; v: {
  161.   # * Visible Update
    8 d# U8 q  L, g* L9 B
  162.   #--------------------------------------------------------------------------3 {. A. V1 _7 B  v, t) y3 \& {
  163.   def visible_update, B4 O! [$ O9 O9 p; K9 B
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    . v  f+ B1 [/ {$ |. J
  165.        @hp_sprite.visible = false  J& f$ T: g& _: }1 j
  166.        @layout_sprite.visible = false$ k0 c8 A: z. l# m7 x" A
  167.        @sp_sprite.visible = false
    - H3 s2 |. Y1 K; L
  168.        @layout2_sprite.visible = false
    # U& U- Z! x) M/ Q
  169.     else
    " H& t' \, T6 h+ ]5 O
  170.        if HP_HUD == true' }: @' \, n$ ~8 [8 m& p5 @* h7 V
  171.          @hp_sprite.visible = true
    : j& K+ A1 |) C, z; \: G2 z
  172.          @layout_sprite.visible = true2 W9 B' M! ^, q& }" \0 n; S
  173.        else
    : g' W( O2 l* }7 E1 S% w! y1 g
  174.          @hp_sprite.visible = false  p! ?- C( N8 c: C% a
  175.          @layout_sprite.visible = false7 @9 n; p* _* o+ |! W
  176.        end  
    ) \- J7 j4 D7 f, {1 e8 B
  177.        if SP_HUD == true$ g: ?& m& K5 j) M7 [
  178.          @sp_sprite.visible = true: v/ T. @  g( A% |, y; B
  179.          @layout2_sprite.visible = true+ d  |) [- P, F- I2 L1 o  M
  180.        else
    & Q/ _1 C5 l9 z: O. K: g; I* Q
  181.          @sp_sprite.visible = false" A' P# ^9 t3 x1 ?+ V
  182.          @layout2_sprite.visible = false1 `; t* {% R( w1 |9 [1 f
  183.        end
    . o% H4 Y6 |+ M0 `4 w" W
  184.      end  ) G: e: _% r/ v7 F; f
  185.    end 9 T8 v! W. d1 D3 m- N& g
  186.   #--------------------------------------------------------------------------
    - G( \' l6 ~) N/ x/ {- c
  187.   # * Hud Pos Update
    # B( I4 T5 H# s7 J& D
  188.   #--------------------------------------------------------------------------
    * C3 K  E5 p# ], h
  189.   def hud_pos_update8 X  S, H3 J9 l5 ^3 H' y0 Z# K
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X: U7 o2 [* {3 N1 t! @: r! a
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  , R3 V6 W  F, D( D
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    9 J" S* r+ ^& M. c( N3 W! v! Q
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y : t" N9 `  X. V/ \2 D6 E. e( q, D* c
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X9 p' g- N; \, b2 j9 i
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  3 R2 r. M' F( V4 r& h% P. T- ^
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X# C0 h" M9 z& ~4 n% b; x- T( A
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     5 X" C. P% P* U& ?
  198.   end  
    ; A1 l) \3 N3 J* N
  199.   #--------------------------------------------------------------------------
    0 {7 m/ U/ A: q3 l$ k% Y% v
  200.   # * Hp Flow Update3 |. v- G9 ]: \* O6 `
  201.   #--------------------------------------------------------------------------
    - g1 t' G1 W8 O' r& }
  202.   def hp_flow_update& a6 C8 ^. Z( w: ^. N2 z
  203.       @hp_sprite.bitmap.clear1 X  u9 E1 N1 [% B8 B
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  8 f1 \& P1 H5 |' V# R  n, Q
  205.           #HP Damage---------------------------------
    & `: E7 q0 Q4 u/ x
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    8 Q! o) F/ f2 s1 q
  207.           valor = 0.5 if valor < 1         
    1 }( y# h/ Q' l) A7 T3 S* @
  208.           if @hp_width_old != @hp_width
    * V! W9 [4 b. ^" b; h) [, [
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  ; i! j" F$ o- A+ ?& k1 F; \
  210.           if @hp_width_old < @hp_width ) U: u& M, F8 G5 `3 r
  211.              @hp_width_old = @hp_width% o8 L0 c: V0 @; G6 N% a6 k
  212.           end      5 P8 @/ I0 y' O; J) ]9 ~: t  p' ]
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height). l% T, e) g9 q( \/ y  F
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    ! T: w2 Y( h4 \  j" \* d) J/ ?
  215.           end        
    5 c+ J) s! a" L$ p/ g6 Q- I/ F% l  h
  216.       #HP Real------------------------------------7 `- Q6 g' S" E0 q" f
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    , h# o0 J4 S8 V; ]
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    " R; ]) G. c( ^+ U* P( S
  219.       @hp_flow += 2  
    1 K9 S  ^# ]3 t: ?( _' k0 {7 Y% H
  220.       if @hp_flow >= @hp_image.width - @hp_range+ y( H' f/ L. N6 n
  221.          @hp_flow = 0  4 ~! a! ^0 T. r9 R
  222.       end  v' ~/ r9 q( [# o2 }
  223.   end    ! g  O! J* X, d! I6 S
  224.   #--------------------------------------------------------------------------
    ( p% n/ e: `" e) b
  225.   # * Sp Flow Update
    4 X9 A$ K) o  R  z7 ~2 a6 Y
  226.   #--------------------------------------------------------------------------
    ' ^. g& O7 o7 W3 x
  227.   def sp_flow_update# j7 [4 U/ Z+ U0 C
  228.       @sp_sprite.bitmap.clear% w& K1 P+ }! ^4 s1 j
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp 3 O% x) U6 t' ?2 C% t' C# w$ o
  230.           #SP Damage---------------------------------
    5 X5 u, p0 U5 z% Q4 W1 D  o% T$ p5 N0 q0 S
  231.           if @sp_width_old != @sp_width) `, f2 b2 w/ q  u, B
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    * d8 S) W1 [# k* @5 w
  233.           valor = 0.5 if valor < 1              5 T) w: B; B0 o& J
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  0 R% t7 Q: W. M5 M* k' u1 X- h9 E
  235.           if @sp_width_old < @sp_width
      s7 |$ v) ^/ h$ w' g) x/ \
  236.              @sp_width_old = @sp_width
    2 E3 f* S' m( u/ s8 r2 x1 _0 }6 c# k
  237.           end      ( u# }6 _0 Y1 a' D4 U
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)- n" q: \5 y- y& _% g( r  p7 L; T" W
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    & P# R; i/ O! q2 w
  240.           end
    ) l+ n. @( U3 l7 y
  241.       #SP Real------------------------------------6 N8 ?; q. {8 Y0 k, v
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)+ w! C$ k; K, Z6 D8 ^
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    4 @5 n0 x: j+ F' |+ i1 n% V+ m
  244.       @sp_flow += 1  / O! g2 r, b) v( z3 h4 Z0 l
  245.       if @sp_flow >= @sp_image.width - @sp_range
    * s# z/ ^+ U1 Z7 [) y5 @3 C
  246.          @sp_flow = 0  9 H! |5 O' I( u( A/ V) y. n- Q0 q2 X( q
  247.       end3 o0 b6 e1 F6 Q$ s) x
  248.     end            5 A, p9 ]4 K% w2 E
  249.   end8 ]9 ~4 G: n! A, L$ A& I2 f
  250. #===============================================================================# _/ h* D  U7 H  g# L* b
  251. class Sprite_Character < RPG::Sprite* @7 z8 C; ]) l2 z' Y( u
  252. #-------------------------------------------------------------------------------
    " d( ?4 b  Z2 c( m( ]+ R9 x
  253.   alias :xas_emini_hud_init :initialize
    ) b! I7 a" |$ y2 v; x
  254.   include MOG
    % H( t# b$ t  P+ T- j
  255.   def initialize(viewport, character)
    5 I+ B  |- g' F# Z- k' X  G2 x5 C8 L
  256.     xas_emini_hud_init(viewport, character)
    % W" X/ z, q# M: V' ]$ x7 _# D
  257.     @viewport = viewport
    , ?/ y7 o4 O9 Z) p; c# h
  258.     return if @character.battler.nil?
      Z* R4 ]5 J! _. I6 t" I% n# S
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    ) c( W  y) a7 h, I1 x* @! z8 j# F
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    ' [! f2 C- z( P6 N- [
  261.     return if @character.battler.is_a?(Game_Actor), e8 R- b) V4 O1 K" [/ |  Q$ Q, v
  262.     @bars = S_Hud.new(@character, @viewport): |- T( Q, ]. k9 s" b
  263.   end" A" \5 |& T5 Z% x: a
  264. #-------------------------------------------------------------------------------8 b; c4 Q6 V3 O% p- \9 ?
  265.   alias :xas_emini_hud_up :update
    3 B  U5 j8 Q7 I2 N
  266.   def update
    4 c4 b* ]! t6 E
  267.     xas_emini_hud_up( w  V8 O' V3 Y
  268.     return if @bars.nil?
    4 Q! j$ E4 ^% c! I& _1 w/ x
  269.     return if @bars.disposed?) x  o  o% m4 `5 V/ P
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs+ t! l  z5 ]0 m2 V
  271.     @bars.visible = (dis <= RANGE)3 E) f& ^6 r# a+ l: [
  272.     if @bars.visible( C; w0 I& g8 D- h3 s4 a' q
  273.       @bars.x = @character.screen_x# - @cw / 4
    7 C7 l: D! v/ W" b
  274.       @bars.y = @character.screen_y# - @ch / 44 \" J& ^7 C/ p) F' l0 Z( l0 z
  275.     end
    / z' s# S3 s( N/ M, x$ k& U
  276.     @bars.update
    + _. x6 ?9 R3 S. p4 q
  277.   end" A# }# s0 S- {" m" j% s( \
  278. #-------------------------------------------------------------------------------. L/ Y" l: P- }6 @; H
  279.   def dispose# x3 ]' l' m- r7 d2 A% ?# z8 ~
  280.     super
    . P4 x3 U8 t5 ]& C* [" ^
  281.     @bars.dispose if [email protected]?
    $ X3 j$ G7 l) o' M, G2 |. n; Z0 r
  282.   end
      `5 Q. q1 b: H" Z; D6 c2 O# g
  283. end
    8 P" U6 M7 C* {. u. L6 t' a: `) v

  284. 6 l5 D. m0 m8 I2 E1 Y1 l
  285. $mog_rgss_s_hud = true
复制代码

/ K3 X4 Z% G1 T' Z2 A: y5 R! v% }- {

/ p) f4 i4 V9 g$ |/ O5 v0 Q上面所說出錯的203行內容為4 P9 f' Y( [- v) b
@hp_sprite.bitmap.clear
0 z! e) Q8 @9 v; F( d: S# f, G4 M7 H9 u  x! P' T5 m
想知道怎麼解決
( H) [" g. ^0 r7 n5 H- a5 i5 R6 E1 L. J% s$ V
該腳本支持3.82
) B( s& V# S6 `/ q. i: K2 @" ^8 B) K3 f
下面是圖檔,要塞在Windowskin下& Q0 C, m: S7 K: ^- |' S
# \$ [- D3 j2 z& @' [1 L0 C
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
( V5 W2 \; `# p
8 c9 e4 Q. e1 ?0 ]- Y9 M' s* V" {+ s9 d/ n4 a/ Z6 ?. y( V8 |
5 v& d; }( r- F" C0 i: R# N

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
; Q/ m# a1 E. i3 d8 {, {结果尝试刷新了一个已经释放的图形
$ z4 B% I# G( ]1 P3 S- i# ]7 m" y" ~  B# G4 Y% Z

: p  `$ [+ _2 _( C& w
; }7 v% _' \' }) q8 M' R7 s( l虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?  N' q) {( c+ ^! b
复制代码
不要后面那个条件貌似就没问题了。
% D- @2 E" |8 V
: @1 i1 V$ f" N& Z; s) J8 L8 i9 u$ l  l: V6 e9 g
; M1 T% O8 D0 X5 P0 A, Y
5 U$ H9 W  c1 P
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
380
在线时间
1772 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 5 V' ?2 l) Q1 `+ Y  a( v
貌似是释放的条件不合适
' x3 j- @7 r7 g$ H结果尝试刷新了一个已经释放的图形
5 e5 J6 J/ E9 E$ o1 M2 I" e
把後面那個條件弄掉後,的確沒問題了! L! Q6 W/ f2 @/ d1 w4 `  H
目前從關頭打到關尾結束都沒再彈什麼錯誤; V! _& e3 w; Q$ O; G( E
非常感謝5 G5 [$ e+ B. R

# N1 R; }5 o- z3 G5 O: G5 `不過我是參照著別人腳本改的8 V: J! N* g! S# X0 z
他寫的條件式也是那樣,但我用他的沒什麼錯誤
& V4 r% D0 ?1 T3 C0 L( l不知道是怎麼回事
+ }7 {- f  O7 C, F; l; L) y; q, c; O是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
, V9 w$ ^( ^, D: k" s我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events& z0 l! x9 J. ~& o& b
嘛..这个数组吧..我在以前试写队友的时候关注过一点% A' K  Z# C8 I9 d( E
不知道XAS内部对它做了什么手脚还是为啥,
/ \% c- |! I! {' i8 o总有那么一瞬间,没有被消灭的敌人事件也变成了nil5 P4 H$ D' P& i1 d" f/ m7 ?
5 U% y# L* L' |4 Z; A2 O
$game_map.events.values[@enemy.id].nil?- q; ^; X/ P# x/ }, Z2 Q
因此自然而然的返回true并符合条件把图形释放掉了
# M- l5 N; u4 T0 ]/ @' E& p8 _
8 J# H3 v# U3 [7 ~( uLZ应该有注意到吧,& }2 u& _, X; n# L
我测试的时候发现报错前几帧,图形会消失,
& u, O( v2 M) Z* s应该就是“误以为敌人被消灭”了。, r- ^/ w. S* K4 y' p3 e

$ ~# b6 j8 S" Y. L受限于个人水平,至今无法找出$game_map.events的真相..5 L8 O+ y5 f; i' ^8 b7 u) f  g
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
380
在线时间
1772 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
) _- `% L1 G9 R" s; i6 t/ n, [' |$ y3 f$game_map.events3 C* B  ]: \0 y8 W+ Z: ^
嘛..这个数组吧..我在以前试写队友的时候关注过一点
/ I& p8 P1 P, X& E不知道XAS内部对它做了什么手脚还是 ...
" q7 S, x8 e9 N& N1 a
當初我把那個條件式看了三遍,都不覺得他有什麼錯* ?( p6 S3 {% q" U
原來還有這麼深奧詭異的事XD
0 J% T' f7 q5 M. e1 N$ A) H, e3 S5 ]7 a9 G1 u6 b( g2 T- p
錯誤發生前的確會有圖形沒顯示出來
7 _- j5 t9 u1 m! S) r不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
, {2 K8 M6 i, H: X' F0 g7 i" h沒想到居然是詐屍了XD/ p- B6 O) a4 u+ O8 Y3 v9 p2 }: w( [( ]
; Z, B  I7 s- {' j" u# I
不曉得3.91有沒有修正這問題...+ j5 j/ q! y5 }' i/ k, e
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
- h( ~9 p  @! V4 B* g% r
' ]5 p9 ~8 f2 C, x4 {. o的确
: f. }( F8 B& c& ^, W用惯3.82之后想去整3.91觉得压力甚大..
7 O( w5 X! m3 T( b& U/ C) _0 x干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12269
在线时间
21798 小时
注册时间
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”。
0 I4 `' H6 a2 l! R9 g8 o2 X8 M7 J& Q8 Q. R- @: j" z( u+ Z
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-6-11 00:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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