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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條% }- y; V1 b; s: s
會在每隻事件怪物的腳下顯示
" l  G# m! B3 k. `1 H! I問題是不知道為什麼& T% ?! r7 p# D- a  I- C: l+ w& {
有時打怪打一打會跳出
- F6 \6 M0 o  S* k: P8 B' L---------------------------
& T0 r1 X/ K; n+ Q; }XAS4 C1 g' W# h0 `' U
---------------------------; Q' E1 \2 u0 Y( u% I
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。8 x# l- ]# C# d3 _$ S1 T
) Q# J% Q5 X- i9 |4 `' H
disposed bitmap. q, I& x- _! O+ E9 F9 z% L. q
---------------------------( |0 b  T- j: C" j
確定   
# @6 F2 B. q6 `  Y: q0 V% Z3 N+ J" x---------------------------
4 u# e9 y7 v& q; x% `0 l5 w1 f" Z6 o# ]0 d# o7 A! H
這是腳本
0 A5 G" L# L+ H& o9 u$ g5 n
# e. J. k9 s* c# s1 _. Z
  1. #===============================================================================
    3 V6 ~1 ?: M6 X
  2. # MOG - s Hud 1.0      + z1 _9 \: p. I& x
  3. #===============================================================================! b/ a& m3 }; ^1 p0 Z$ ?1 B( K% e
  4. # By Moghunter ! S& D. C0 G7 A' l, ^
  5. # http://www.atelier-rgss.com, k' t7 L0 [9 i: b0 k1 |5 y4 G& h  v
  6. #===============================================================================8 L4 y- h2 O" h4 z/ ?
  7. # Translated by Calvin624 1 D* C2 q: Y) C( x$ g
  8. # http://www.xasabs.wordpress.com
    $ B& S( \: \' M0 u2 K( ]( G
  9. #===============================================================================
    4 t7 V( @% k7 E& p- L
  10. ###############################-DESCRIPTION-####################################" e& U* R+ @3 |6 X' N
  11. #===============================================================================
    9 [* p' t% [- i8 ^
  12. # Personal HUD – displays the HP and SP below the hero.) \3 K0 l: a6 j6 Q
  13. #===============================================================================' Q6 d& m/ q# O$ X  r, d4 Q
  14. #
    - o1 y  s/ o6 n4 X- }
  15. # Graphics required:7 j  |" X4 j! ]/ F* z
  16. # 6 O6 y" L" z# D
  17. # S_Border_HP_Meter.png
    ; J- Z4 G$ A' T3 B6 S  d' a
  18. # S_Border_SP_Meter.png
    . X1 ~! E3 C6 F
  19. # S_HP_Meter.png
    / K6 C* T6 \$ t" u1 J- K; P' U
  20. # S_SP_Meter.png
    $ A, L- Q0 A$ }( \: b
  21. #
    9 p5 \: a7 Y! }$ y, `7 h7 Q, G
  22. # All images must be in the Windowskin folder.
    4 B4 p$ v! E  c. {+ @
  23. #
    5 u" q/ S' r2 I8 Y/ h# h7 A
  24. #===============================================================================
    $ J2 ^. \8 }' r9 T; l1 M& {& S  \
  25. module MOG: T8 W# |) ~# B
  26. VISIBLE_DEF = false  
    " q+ D5 Z7 {/ d  R& J
  27. # Show HP meter?- y. c7 T% {7 J
  28. HP_HUD = true
    * L3 b4 C8 ?/ u& g
  29. # Position of the HP border
    ' ?& c" g1 S% O0 A* l+ K
  30. S_BORDER_HP_METER_X = -2! G1 U! P( w' Q
  31. S_BORDER_HP_METER_Y = -2  " _3 m0 w0 q  q; _# _7 R; K: g( N
  32. # Position of the HP meter
    ( F) i% \6 j3 f& _9 E$ x
  33. S_HP_METER_X = 0
    & `2 L+ `7 P" A& G4 R
  34. S_HP_METER_Y = 0
    & S7 k" Z$ @! S5 t' |
  35. # Show SP meter?) h+ ?3 _( A( j$ B$ Z
  36. SP_HUD = true
    % O7 L  A* p. |2 J) ^, v
  37. # Position of the SP border, c; }8 o2 J. Z4 R) M
  38. S_BORDER_SP_METER_X = 0
    - B( V& y: c1 `' V7 T
  39. S_BORDER_SP_METER_Y = 10
    / w3 g% ?: H8 m: U" I% N
  40. # Position of the SP meter
    - A- T- K$ @& a- X- h2 J; S  F
  41. S_SP_METER_X = 0
    ; l  d' |. @1 c+ X
  42. S_SP_METER_Y = 10# X7 d% C; n2 @: K
  43. # Switch to disable the HUD
    $ B! U2 F: ?. n+ q0 ^8 G# x& Y
  44. DISABLE_SHUD_SWITCH = 5' N" u" T7 }7 U
  45. RANGE = 204 Q9 S2 S2 {7 ]$ o; V
  46. end
    1 o5 M2 F* @. T) r" d7 X
  47. #===============================================================================# k  t2 c# X$ }& e) }- @
  48. # S Hud
    0 d. w/ l  Y' m1 H0 j0 T
  49. #===============================================================================7 J0 W7 {% K9 r7 \% ]- y, x
  50. class S_Hud < RPG::Sprite
    5 `5 G7 S5 p1 K9 ?
  51.   include MOG
    - F4 u1 T- i( i# F5 x+ `
  52.   #--------------------------------------------------------------------------
    7 i; p* |( O: u
  53.   # * Initialize
    3 W0 N1 j- @- k' C. M+ N
  54.   #--------------------------------------------------------------------------" W3 ?, `$ h- I! s
  55.   def initialize(enemy,viewport)
    % b" f2 Z3 T+ G- l. ]
  56.     super(viewport)
    / Y- O- c# m' p8 M5 ]4 v7 [, y. q9 A
  57.     @enemy  = enemy
    4 W) P: h* E8 v7 Y1 V+ I
  58.     @battler = @enemy.battler
    4 Y1 [: p# I! r. W! a
  59.     @old_hp  = 0! \6 E+ ~9 I+ Z1 L/ n
  60.     @old_sp  = 0
    " e% S/ E5 E7 x, W
  61.     @old_vis = false/ k& T- g) `. R# B' _% \
  62.     self.bitmap = Bitmap.new(100, 100)6 ~7 N) D+ q. j* n/ B$ s
  63.     self.visible = (VISIBLE_DEF)#false
    4 h# g. F# \3 ~8 Y5 g' S! U" {) z
  64.     self.z = 100! r8 H) `  Y! P7 D6 ~
  65.     #HP Border -------------------------------------------------------------------" w0 Y; n* G: r; ]4 j. `
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")% v) L) W9 z5 M5 T# _
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height). ?9 I- f% q2 J9 t
  68.     @layout_sprite = Sprite.new* L! [/ ]! y8 v5 Y/ C% U
  69.     @layout_sprite.bitmap = @layout_bitmap
    ! P* w5 b& Q$ D  i
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    2 A8 B: i/ O/ T
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    3 o) P: L& M+ B6 g1 }% t
  72.     @layout_sprite.z = 5001
    0 j1 R  w% m, q4 u% {" k) k1 s
  73.     #HP Meter ---------------------------------------------------0 p, Q5 q+ u: N! E$ p
  74.     @hp_flow = 00 N& M" R' [, i* }: L7 h
  75.     @hp_damage_flow = 0
    6 c0 r9 j1 @  c9 c8 T; p% Z
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")2 @' Z+ }9 h# O8 m" ~
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)+ G' K; v& K4 ~) ]" b7 |. J
  78.     @hp_range = @hp_image.width / 3  D5 v  b  d( ~" ?4 H; z
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    : `7 _1 ~0 r7 g" c. B; F
  80.     @hp_width2 = @hp_range / 2
    ' U- n- i+ W! K
  81.     @hp_height = @hp_image.height / 2
    1 _6 @$ \7 l3 k! o7 G
  82.     @hp_width_old = @hp_width! C, M* M" A' ]
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    : O! p0 o0 A& E% \) }! l4 G/ h3 C
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    $ x# ?! s1 F- s! V
  85.     @hp_sprite = Sprite.new
    4 k. G3 N- p: W; S8 d
  86.     @hp_sprite.bitmap = @hp_bitmap, G  R& F6 ^  |  m% B- l( F
  87.     @hp_sprite.z = 5002- s$ H5 I3 j) D. Y2 z$ v( e
  88.     #SP Border -------------------------------------------------------------------
    ' o+ i9 v0 X4 P- S
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    # L& y+ Q/ B5 Q0 M
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    & i7 C$ h4 R6 @
  91.     @layout2_sprite = Sprite.new
    % E# I8 f4 j. U5 W- z0 E+ Y' [" w
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    ( p# a( |6 \6 T
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    ) V  ?8 W1 L5 A! I' k3 E
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    0 e6 h" W5 I1 b4 Q/ P2 q1 [  J, @
  95.     @layout2_sprite.z = 5001    0 w8 y3 j8 J& [) S7 B
  96.     #SP Meter ------------------------------------------------------: g3 m/ ]4 Z+ N, i1 A- g
  97.     @sp_flow = 0
    , R' ?5 h. X3 B) _% x% V$ {
  98.     @sp_damage_flow = 0
    1 S/ Y! ?! k3 `4 Y- y- D9 \' t; O
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    0 X, }  F# [# z0 P8 T: u8 H' N
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    ( C6 k6 ~) T, e2 G0 I9 a6 y
  101.     @sp_range = @sp_image.width / 31 v+ K. A8 Q3 _% O
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp    f0 {5 h( i: l$ y/ {0 T: a/ D4 m
  103.     @sp_width2 = @sp_range / 2' _! z* l& x1 j8 e1 d; m- `: O
  104.     @sp_height = @sp_image.height / 22 O: C! r( M* X7 |) X, [; n6 _8 g
  105.     @sp_width_old = @sp_width6 n  J9 t# u/ _+ I3 Z% D3 O
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)2 ]: w  e$ M: u# A, v; k  C/ G# x
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)  O* S- g3 U% _% M& X  B8 ]
  108.     @sp_sprite = Sprite.new
    6 t& q# _4 V6 I+ T7 @3 W
  109.     @sp_sprite.bitmap = @sp_bitmap
    3 `5 {  o1 n6 a2 b3 _6 h
  110.     @sp_sprite.z = 5002
    ' Q: }  |; i* |$ i) g: n
  111.     update' v* {/ ~% ?$ ^* x" F  a) p: g  |
  112.   end
    6 W- o  ^1 ?6 b2 }
  113.   #--------------------------------------------------------------------------) t9 S% d- r' C+ m" n
  114.   # * Refresh
    , f: O, q3 h4 b
  115.   #--------------------------------------------------------------------------8 C7 p7 F; R( D
  116.   def refresh
    3 b; A) O8 F: F" i4 @4 {! i) p
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    3 o- z4 z! m% h
  118.     self.bitmap.clear1 T5 T% U/ ^% r! h1 n% J2 l- v4 w
  119.     @old_vis = self.visible
    / L6 t2 i. ?. V; L) o
  120.     @old_sp = @battler.sp
    8 o" D. D: A7 N. p! S; @
  121.     @old_hp = @battler.hp3 [' Z! b4 ^2 g: Y! x2 K
  122.     hp_flow_update
    2 t6 y$ c- o' \/ W' R: @3 ?' ^0 ^. T; q
  123.     sp_flow_update
    9 b% ~4 j9 n- A; H. K  W' b
  124.     hud_pos_update4 x" Y- H- _4 m0 D/ D8 x5 s4 V
  125.     visible_update
    ) L$ y) P9 G  ?/ ^8 d5 g# X% [
  126.   end
    / k3 m, u2 i5 O
  127.   #--------------------------------------------------------------------------* T6 ~. V; Y* t; b0 m7 W
  128.   # * Dispose
      V3 f# p" _9 g# ?
  129.   #--------------------------------------------------------------------------
    ' v4 ^$ [- i0 L
  130.   def dispose& }$ T# }3 r3 q2 R' p
  131.     #HP Meter Dispose
    2 c( T, l, e- ^
  132.     @hp_sprite.bitmap.dispose
    7 i3 X7 @) w9 @- M. T3 f" H, M
  133.     @hp_sprite.dispose4 O9 u3 t9 A& a$ b# n; d7 S& v# o
  134.     @hp_bitmap.dispose
    " O/ X3 z; C, b/ X
  135.     #HP Border Dispose4 P+ N4 Z( O( q4 f0 E: r. ]
  136.     @layout_sprite.bitmap.dispose: ~. W  G, B! `+ J- s: G
  137.     @layout_sprite.dispose
    * }% {1 S, S: i) ]$ D, X
  138.     @layout_bitmap.dispose( ^! W+ c$ n, I) H! H! Y, Y
  139.     #SP Meter Dispose
    2 L7 q* \: n4 A$ F( A8 K9 y) y
  140.     @sp_sprite.bitmap.dispose! i- }( T* u! n6 c3 h# m
  141.     @sp_sprite.dispose
    : j* H/ ^/ m# ~' n3 ]: `7 C+ r9 u
  142.     @sp_bitmap.dispose2 `. [+ L& F3 X
  143.     #SP Border Dispose. r  N: L2 _. O% @$ X8 F1 r8 F( {4 N
  144.     @layout2_sprite.bitmap.dispose- r2 b% X7 `. g' W: ^  K
  145.     @layout2_sprite.dispose2 c& |7 s! _6 I' p
  146.     @layout2_bitmap.dispose
    0 R1 S2 d- G* a4 r
  147.   end
    0 C6 n0 j8 ~7 a: n/ a7 |
  148.   #--------------------------------------------------------------------------  F2 f6 _5 u5 z. S$ s
  149.   # * Update0 o; l; l/ z# f+ ^3 Y
  150.   #--------------------------------------------------------------------------
    5 l1 l, @5 M$ u; @, C
  151.   def update
    2 r3 S+ ]# L$ _8 S$ J4 k0 Q
  152.      @battler = @enemy.battler
    ' p% w! H& l9 C; }) k# C& Q) T6 z
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?7 `3 u! J9 m' {6 M
  154.      if self.visible3 c; w/ ^; L( b. V
  155.        refresh
    2 l: p" {$ ?: M" @) e
  156.      else
    / ?/ P3 L3 H/ r
  157.        self.bitmap.clear+ Y' d, B0 n1 c7 ^# z
  158.      end
    * P* w. Q) k$ e9 d' L1 |1 Q
  159.   end9 ]2 D: q* ]$ E# `& ?. g
  160.   #--------------------------------------------------------------------------
    - H+ b7 y# [, i% j
  161.   # * Visible Update
    9 E" w# H  u7 c& U
  162.   #--------------------------------------------------------------------------3 k* v- J" |& Y) Q( B9 P
  163.   def visible_update1 I' u) e7 x' W# ?
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    # E% `7 h/ p, P: H
  165.        @hp_sprite.visible = false
    # \* R4 Q" D0 E" _8 N8 y6 Y
  166.        @layout_sprite.visible = false
    ; j7 {6 e5 h: T% E
  167.        @sp_sprite.visible = false4 R5 A0 P' L, ]# t- x- @
  168.        @layout2_sprite.visible = false: g# H, C- Z$ n$ g
  169.     else+ y9 q/ r0 x8 ^6 j) `2 N
  170.        if HP_HUD == true8 \. }; H" P1 P" h
  171.          @hp_sprite.visible = true
    0 ]) @, X$ D3 i$ u' r( G  u
  172.          @layout_sprite.visible = true
    % A  `* ^+ F+ P! j% Y9 U! M
  173.        else
    / C; r+ v9 ]2 @+ P9 ^  ~! R5 V
  174.          @hp_sprite.visible = false
    % ?7 Q4 X5 l% K0 h# c2 T/ {0 P
  175.          @layout_sprite.visible = false% ~+ N. t! I# C9 o6 H4 H
  176.        end  
    - n9 N" ~: @' ~, M# w# Y; L
  177.        if SP_HUD == true) y" ]( z9 w* y( b
  178.          @sp_sprite.visible = true' {( d  u! y. \  v5 ]$ d
  179.          @layout2_sprite.visible = true( ^; a5 F' Y- d
  180.        else: k$ J3 @6 p+ |* c
  181.          @sp_sprite.visible = false* b5 v% L0 o5 C( W
  182.          @layout2_sprite.visible = false& g" P. m. V. X+ [# d
  183.        end 7 |/ q+ v5 O6 c* U
  184.      end  
    5 Z. T5 B$ Y( t) N
  185.    end . f) I7 K" Y1 Z2 ~+ I$ B
  186.   #--------------------------------------------------------------------------5 E: f2 q- b6 N
  187.   # * Hud Pos Update- _4 [* d: ?' }! E& e: y2 d8 |
  188.   #--------------------------------------------------------------------------
    : o) n0 b$ X; v- e
  189.   def hud_pos_update" V( I% d; S5 E* h6 `6 M" @
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    : N7 F9 E$ [" a( V' f. `+ m! C
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  ) n; E9 x9 Q: Y6 |6 ?2 d
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X3 ?9 F% X! E; `) T* p
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    % R5 [* u+ m6 x: F6 G! a2 B" [$ Z7 w
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    " I8 k  v! Q4 u, q  i$ U  m# R
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    # c" `1 X2 e; W8 m, B; N
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X7 g4 J  z( g* l) ^
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    ' x5 G$ \7 [- b# C1 R$ \
  198.   end  
    " U; X% Y0 b9 k* }$ Z$ V
  199.   #--------------------------------------------------------------------------2 z9 e; ?7 X) j" s% W9 I
  200.   # * Hp Flow Update0 ~2 w( a# V0 E) h
  201.   #--------------------------------------------------------------------------
    / V, j; S" l6 @) _* f
  202.   def hp_flow_update' T3 z: z, W/ a5 B2 T; k# ~
  203.       @hp_sprite.bitmap.clear/ ^+ `3 Z/ @8 K6 q
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  / S5 Q& `$ L5 S" N
  205.           #HP Damage---------------------------------
    6 {* {2 ^" R8 c1 \
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    " H* m+ V! T" C
  207.           valor = 0.5 if valor < 1         
    4 f6 I1 `% p6 Y1 g8 N% O, Q/ `
  208.           if @hp_width_old != @hp_width+ s5 Y1 K/ E6 [; g
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    - q2 p, F: s4 o& [, {( K9 z
  210.           if @hp_width_old < @hp_width % `" b! F4 A* n. G7 \
  211.              @hp_width_old = @hp_width
    ( g, a' N- b4 W% E! v( `; U! t
  212.           end      
    , ~2 ^; U) P2 R, r4 i* m
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    8 P" G: X2 w, Y8 m  x, L" i
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       + n: c% {% H+ N6 i$ S$ s
  215.           end        
    9 J: M4 F5 K$ M% f' f
  216.       #HP Real------------------------------------8 h: Q4 A) R$ L2 p" G0 M
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height), j: a1 ~3 a% y. n
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    ! {* S, y; {% F2 h2 F8 s
  219.       @hp_flow += 2  
    . m! L! g6 j4 T+ Y6 P- {- u. q* A
  220.       if @hp_flow >= @hp_image.width - @hp_range
    / L! m3 i& [$ K; e4 f
  221.          @hp_flow = 0  
    . r7 U; d( T1 {/ b
  222.       end
    % Y0 ~! h; }+ @; X2 R# J- y8 {
  223.   end   
    + C9 a* _- I1 k5 z! X" P9 g  Y+ z
  224.   #--------------------------------------------------------------------------* T3 T4 j  v8 X" K, X4 e, S, {$ Q
  225.   # * Sp Flow Update% e' P4 E8 ?, Y% J% h
  226.   #--------------------------------------------------------------------------- H$ a, l1 C% w+ `  K4 i; O
  227.   def sp_flow_update! c: E  ]9 @- d4 W
  228.       @sp_sprite.bitmap.clear0 S& g( M* N! ]$ ]6 [3 Z$ ~: N
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp : U' l) m! `( j  w' ]! s
  230.           #SP Damage---------------------------------
    6 P4 W) s  X7 Q3 ~
  231.           if @sp_width_old != @sp_width
    4 A" }+ d! C. s! \2 |4 P. k
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    9 m5 u6 H% f* j! r# E
  233.           valor = 0.5 if valor < 1              5 I' F4 S3 Q& o7 t. v6 d5 K. L
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    ) X/ Y3 X' g  ~- \( S  k9 I  l
  235.           if @sp_width_old < @sp_width   ?9 h# r/ X9 v* N8 o
  236.              @sp_width_old = @sp_width# j1 ^1 g1 h6 N, m+ u& t0 Q  Y
  237.           end        v+ I% N' T* P/ T) ?9 K7 G3 ^8 ~0 v
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    " i7 G7 K5 Z5 f
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) & b* R6 N& y0 ?
  240.           end
    % }! f, I& o/ _! h& j
  241.       #SP Real------------------------------------& |: l( P0 S' b- |% `" u4 A  I
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    8 E$ K1 w* f+ N+ F4 @3 m2 S5 x/ G
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)6 X/ K+ L2 j1 Y/ ~& P
  244.       @sp_flow += 1  1 F# C8 W* i* O7 H: _+ k6 |! l
  245.       if @sp_flow >= @sp_image.width - @sp_range; X& s% A+ O3 ~- J9 U
  246.          @sp_flow = 0  
    : D8 d# U7 C! R
  247.       end
    - _% C: Q* V/ j( B; o9 L  z2 P
  248.     end            
    , r" i7 E8 m  e
  249.   end; p( e  k1 n0 N2 U  Z
  250. #===============================================================================
    * R9 p/ R! q- j8 k, O
  251. class Sprite_Character < RPG::Sprite; ~" b: D/ |& ^$ j- ]
  252. #-------------------------------------------------------------------------------
    : F9 ~9 G5 F2 `- m
  253.   alias :xas_emini_hud_init :initialize6 F/ ^2 O8 ?' {5 E3 e6 |* p3 {
  254.   include MOG4 I; r& A# i* r+ V' h9 a* F* H7 N
  255.   def initialize(viewport, character)
    ; Z- y  m/ w6 Z. g2 k
  256.     xas_emini_hud_init(viewport, character)
    ; {2 l/ W7 }( o5 N- i
  257.     @viewport = viewport
    * U0 \; J5 u$ L# f, X, I8 N$ J
  258.     return if @character.battler.nil?1 D$ J/ o% l' _
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    % M$ O! w% g4 N  G  t4 I2 h9 N
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id); g2 I" D8 c. b7 h- T4 t: i8 g
  261.     return if @character.battler.is_a?(Game_Actor)0 n1 x; U  J( F/ S
  262.     @bars = S_Hud.new(@character, @viewport)% s! [& E/ B. C1 h6 G! F* h
  263.   end
    1 q/ R8 b! i( \2 h7 J% A% @
  264. #-------------------------------------------------------------------------------) ?  z6 ?$ ]7 n3 m& H
  265.   alias :xas_emini_hud_up :update
    " F5 p9 J7 w5 e) w1 j/ {
  266.   def update
    / ^2 i3 K' P: D$ r
  267.     xas_emini_hud_up* m, t- b% S; [+ B
  268.     return if @bars.nil?
    - z. c4 @& M9 ^. V( i: Q
  269.     return if @bars.disposed?/ J( Q- ]$ u: _" K. H- Y2 s
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs2 Q4 c; v9 M3 H7 Q; |
  271.     @bars.visible = (dis <= RANGE)! v5 [2 T$ F" ?9 |3 x% ^7 A0 P4 U
  272.     if @bars.visible
    * U! h6 S/ H$ R7 T+ D+ |1 f3 h
  273.       @bars.x = @character.screen_x# - @cw / 4
    0 R& O& G; d5 z4 ?5 J
  274.       @bars.y = @character.screen_y# - @ch / 4" ~7 U  H9 Q' }) ~; N' O. Q
  275.     end
    . P- B$ _( s, k: [" M) @8 l. B
  276.     @bars.update
    7 g7 J$ C% t0 z2 A
  277.   end
    2 x0 {" a8 x8 K# M: Z; H. M& ?
  278. #-------------------------------------------------------------------------------& ^* m8 M3 b4 A: N
  279.   def dispose
    0 u: Z+ y0 Q5 R0 b# E% j
  280.     super
    " B: e" ~- K, I( U6 b
  281.     @bars.dispose if [email protected]?
    # g9 o- `. y& u* v2 f% }$ C
  282.   end
    . W( ?" I# W3 I6 e+ i2 V
  283. end
    + A' O+ }2 ?: Z+ |: E

  284. 4 p* @0 }7 b) k! l
  285. $mog_rgss_s_hud = true
复制代码
* i/ g" c9 H8 x/ X; K1 U) Q; [
# b. G% F0 }0 t7 e: _

% N: N$ m/ D. y: n上面所說出錯的203行內容為- J: ?0 \5 w, {) b
@hp_sprite.bitmap.clear
: A. G& f4 \+ z2 d( k9 Q( L
2 u! D' I% `3 O" r$ t3 a想知道怎麼解決& c5 O& J' P7 t, P& F7 E- }  \9 m
; J0 f4 o/ h& g* W$ h
該腳本支持3.82
% \# y1 ]1 Y; U: X. N; E  m/ q6 H. e" b. G
下面是圖檔,要塞在Windowskin下' f1 D4 q( |% Q& B8 |- i- n

7 ?% G$ B2 S7 e6 h S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) # B/ e+ G1 j& X8 n# H

1 n/ \6 S8 c. E7 O  K, x
! b+ ^( u& q% u- U, a" U
# B! Q) U7 i' }! _

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适8 U, M! y3 Y, G5 B9 K3 Y3 @" b' }8 D
结果尝试刷新了一个已经释放的图形
7 f6 J3 ?4 B6 d
6 D( I& _) W+ W/ k6 C* ^  h/ r  t8 a5 c* y2 ~

. M9 _2 v" v4 }, @+ a% u虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    8 ~5 S0 l: X: n+ y
复制代码
不要后面那个条件貌似就没问题了。4 F6 [1 m% v* p, L

* z3 p- G0 S% ?, L0 ~8 s- {. c5 C7 e5 W3 `6 f. c3 p

, a3 R7 t" G1 Y8 f5 g* S5 \( }
# v$ W. ]9 N. U" H# M
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
425
在线时间
1780 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
4 d; }* d# Q6 E9 L" L# K. d5 G貌似是释放的条件不合适* |; h% k3 h! N! ^7 k- s' _5 t! r: g
结果尝试刷新了一个已经释放的图形
+ Q0 o  {. \  A/ j* r0 l! r3 E
把後面那個條件弄掉後,的確沒問題了: z6 X( c' x8 p1 d& z3 l
目前從關頭打到關尾結束都沒再彈什麼錯誤
  x- t* y/ ~% ^3 X7 F6 K0 J3 m非常感謝
- z7 E8 M# D. t: e0 l
: {# y+ e! F" R1 _5 N: r2 _; }不過我是參照著別人腳本改的
) Q3 o  y5 G- x$ @- s他寫的條件式也是那樣,但我用他的沒什麼錯誤6 z6 m5 c* M9 ~; r0 j- Q
不知道是怎麼回事" F, a1 p1 [  h" q
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
( E$ G8 A+ L& M$ E: }2 e7 Z9 V我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events# l$ M+ l, f  ?  R& f$ J4 Y
嘛..这个数组吧..我在以前试写队友的时候关注过一点+ q' R" ]5 j2 t' n
不知道XAS内部对它做了什么手脚还是为啥,3 }; a0 D* P9 Q3 J1 d2 n
总有那么一瞬间,没有被消灭的敌人事件也变成了nil. y% l; d% Y* M& Y1 F- n' Z
4 m! _! ^/ }8 G$ N( E
$game_map.events.values[@enemy.id].nil?
7 }! w6 y" I- _2 r2 W- a1 k因此自然而然的返回true并符合条件把图形释放掉了- _+ }! r- I0 N% A  d1 i
- x. \; }7 G( s
LZ应该有注意到吧,! W4 T. e8 P, E5 k) G9 R; |
我测试的时候发现报错前几帧,图形会消失,0 X9 ^6 Z* D: N5 Y" W
应该就是“误以为敌人被消灭”了。
  F: ~6 ]6 Y* F6 P! f* p5 _9 M8 K% e: i* \. r
受限于个人水平,至今无法找出$game_map.events的真相..
+ g; A& q7 g: i& e5 U/ W6 C% A
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
425
在线时间
1780 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 . F  Z) g: l% x% c& m; W/ c; e
$game_map.events* J) B( A& y% i. V7 V
嘛..这个数组吧..我在以前试写队友的时候关注过一点$ K) M6 t7 t1 x' `
不知道XAS内部对它做了什么手脚还是 ...
8 P: q" ]  N! }: Z9 v! x% w
當初我把那個條件式看了三遍,都不覺得他有什麼錯
8 d: y/ Q3 g+ H原來還有這麼深奧詭異的事XD
# r) e; F1 p$ v4 f* n9 s
! S1 U) A2 D5 g9 w錯誤發生前的確會有圖形沒顯示出來2 p! z/ s1 ^+ x  X( f0 l
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...5 B8 c8 L  n5 o9 k
沒想到居然是詐屍了XD4 f% J3 a/ H' X3 }( M& p/ L

( b8 `( ?. u4 `( f不曉得3.91有沒有修正這問題...
" T# y- `" s( \2 \; s3 K. H* {不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。) X" j; w* z7 Y  n1 D# ~
9 b4 G8 J; {7 V; k- n
的确
6 a* p" z! F$ {, E6 }$ C8 N用惯3.82之后想去整3.91觉得压力甚大..9 D- }2 {3 Z# H( b0 s8 t
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12359
在线时间
21806 小时
注册时间
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”。
& m# P" {; |8 l3 w' e# T- O3 p3 U; e+ ~# d. N
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-7-1 09:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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