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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條% {" r* y5 U5 l0 |, B% E
會在每隻事件怪物的腳下顯示
' [3 Y/ C" W* t/ `問題是不知道為什麼0 k( H6 W; F" I8 R
有時打怪打一打會跳出% O. L; M" |; w) [5 J
---------------------------
' v+ H  e9 F% e" ]# NXAS
% O! B1 Z, U8 ]+ _5 ^, ~7 Y+ z! n4 Z2 p---------------------------; J4 a; L# R2 C+ b+ x
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
& K9 ~5 A% U+ e, u! `. L! P3 T4 m1 L
disposed bitmap
( |2 }5 M9 G2 ^" R9 X- _5 z+ M---------------------------- n# `/ {' I. p9 Z. v, f2 J
確定   / k) M. k6 g: I3 v, S4 h
---------------------------) v" A8 s$ k9 T! U( Y; @

# o, t; Q" d5 z$ L8 d; l/ J/ t這是腳本# I" [* T( I- W  A( @$ {

& B) y& I! y$ J: O2 @
  1. #===============================================================================
    - |' d% w8 `( g- Z
  2. # MOG - s Hud 1.0      ' J& s# h8 V& z! }) F9 ^4 d9 H
  3. #===============================================================================) q1 F# R7 O% \, J' z& Z
  4. # By Moghunter 9 n0 }% W! u( r* U6 M6 E2 \: T$ R& Y
  5. # http://www.atelier-rgss.com
    & V0 ?, j( `! b' }% A
  6. #===============================================================================
    % L. Q- Q; C4 H( C' e7 H+ c
  7. # Translated by Calvin624 # v4 C9 m$ Z6 p- c
  8. # http://www.xasabs.wordpress.com
    , M2 M5 E3 p, A
  9. #===============================================================================) ?# O4 i4 [; q$ @* k6 \+ _3 D
  10. ###############################-DESCRIPTION-####################################' g; }6 a- \. i6 {
  11. #===============================================================================
    * m. u$ h! m/ P& Y5 m. }1 c! U' ^' y5 `
  12. # Personal HUD – displays the HP and SP below the hero.+ [! }8 p) w  l1 Q' ~8 J- F
  13. #===============================================================================
    + @- N" P! p4 ~  i/ F' n7 H: ?8 e( ^
  14. #- |  \" d" Y! J; ^: b( i$ k0 l
  15. # Graphics required:8 H2 T! v6 m* o' P
  16. #
    - [8 `7 \3 @& r: y2 v* y" q
  17. # S_Border_HP_Meter.png0 [2 Y* X3 _. P* `: s# D! r8 }
  18. # S_Border_SP_Meter.png
    4 z6 F, I: s6 r- u) v" i
  19. # S_HP_Meter.png  f7 a, D  `: F4 p& c
  20. # S_SP_Meter.png
    4 B( @& b, R2 o; x1 c8 ]
  21. #
    # J3 ^! W! C+ J% `4 i
  22. # All images must be in the Windowskin folder./ c' }2 V# t. {7 c8 S
  23. #! E, S1 c8 W1 o) F
  24. #===============================================================================* z, t7 d4 B8 s1 M/ U  Y5 W/ W
  25. module MOG
    ! k. N) U6 j7 ^& M" T
  26. VISIBLE_DEF = false  
    + R2 Y7 Y9 g! t- W+ Y
  27. # Show HP meter?
    & K! R/ n9 M* |( }* S* |
  28. HP_HUD = true8 n3 }: O1 |2 }; k, ?
  29. # Position of the HP border
    7 X) E- S7 G0 e8 M
  30. S_BORDER_HP_METER_X = -2
    9 K$ C4 O; J# h( b' `7 J
  31. S_BORDER_HP_METER_Y = -2  3 |( x- t+ Z+ J2 C4 N
  32. # Position of the HP meter/ i, q4 I; K" z' f5 {- ?6 P  a( M
  33. S_HP_METER_X = 0/ e2 @* U9 x' e
  34. S_HP_METER_Y = 0
    * o/ N% Y6 F& ^$ S+ E9 Y
  35. # Show SP meter?
    / k- t+ f+ r* y  L( z
  36. SP_HUD = true
    $ M( o4 g& ]+ I/ u7 d
  37. # Position of the SP border
    # y' J/ f  E, m! K) E
  38. S_BORDER_SP_METER_X = 0
    ' A. X* M7 _1 i  t" t
  39. S_BORDER_SP_METER_Y = 10 8 F) f; |# o# Z8 Q  \* ?. V' h% s
  40. # Position of the SP meter
    - C) p( H; H+ [4 |3 T
  41. S_SP_METER_X = 00 y' |2 k# v5 s& s4 ?: h
  42. S_SP_METER_Y = 10
    3 v+ V" M8 E( x1 e
  43. # Switch to disable the HUD
    ! {/ K4 ?5 Q3 B# _: J# W- @- G! F
  44. DISABLE_SHUD_SWITCH = 5
    9 @. ^' ~) J/ V* q
  45. RANGE = 203 P. W# t0 o" l  f
  46. end
    * a5 {) D3 i( ~4 d
  47. #===============================================================================
    + d( \1 u1 p, D
  48. # S Hud6 T) ~# X0 j1 b, u2 J# U% a( Q! [
  49. #===============================================================================
    2 T! k; P  `/ ]8 n4 m0 x6 D" B' }
  50. class S_Hud < RPG::Sprite
    ( v+ ]5 e  C1 G( l( }9 k
  51.   include MOG" r0 _& m: }# b, C: _
  52.   #--------------------------------------------------------------------------4 C4 T) d% Z5 u/ R8 a9 T
  53.   # * Initialize
    6 S& g+ x1 f: Y2 G! v) k. z( q$ {
  54.   #--------------------------------------------------------------------------& o" k9 r1 {+ C. F* @
  55.   def initialize(enemy,viewport)! V# H! n% y1 Z
  56.     super(viewport) ' B. {" g; q0 `" [5 Z' P
  57.     @enemy  = enemy
    0 G& M' p0 l' V# C- |. ^/ A
  58.     @battler = @enemy.battler6 F  `, y% Z6 D8 z8 f) ~/ M" ^
  59.     @old_hp  = 0" O* y6 o$ @9 W3 E* z1 K4 E
  60.     @old_sp  = 0
    0 I% p) g/ V' g# d* I2 ^# ?
  61.     @old_vis = false
    6 l7 V6 R2 B, j, M9 U
  62.     self.bitmap = Bitmap.new(100, 100)
    3 G: R7 o3 Z# S% ]. O: W2 O7 q5 P
  63.     self.visible = (VISIBLE_DEF)#false& d$ G+ C$ h  Z1 G# E
  64.     self.z = 100
    ' W) O5 c$ f5 M6 P
  65.     #HP Border -------------------------------------------------------------------
    6 h8 Q. B' e% S$ ?  \
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")' C. w; x  _; ?% _% ?( y1 S7 x
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    0 D5 z: a. W- ~
  68.     @layout_sprite = Sprite.new
    % v$ X4 |2 T+ L) Q
  69.     @layout_sprite.bitmap = @layout_bitmap
    ; S/ G2 e1 ^( d1 ~5 X' R
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    ) s& @! |/ y% Y  e& K
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      % d2 v$ V! d0 L* g. \
  72.     @layout_sprite.z = 5001
    - @& x2 y* F. {$ _# _  I
  73.     #HP Meter ---------------------------------------------------
    " M, x8 p3 j4 M5 l( @
  74.     @hp_flow = 0
    / w- w* X( s7 u
  75.     @hp_damage_flow = 0! V& o3 }1 O/ @6 U. f' d% ?3 R
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")9 d+ e" R$ }: `' c1 C
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    ! {6 ?; j9 D5 T
  78.     @hp_range = @hp_image.width / 38 A# Z+ Z0 {) M+ p. J7 j0 u
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  / t3 N- W" Q& R' L
  80.     @hp_width2 = @hp_range / 2
    : g: Q/ j4 V( E, \
  81.     @hp_height = @hp_image.height / 2; g) z1 m7 G2 \$ u3 f2 _
  82.     @hp_width_old = @hp_width
    0 {5 p2 w/ K6 N" b/ {/ ^
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height), F" [( ~4 |2 F1 k3 g
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) : _4 P+ j8 ^! ]' K6 E
  85.     @hp_sprite = Sprite.new
    ' S% Z4 O3 H1 J
  86.     @hp_sprite.bitmap = @hp_bitmap
    ( q) }# _  n+ x/ T5 Z
  87.     @hp_sprite.z = 5002) j7 z2 g  w3 |& a
  88.     #SP Border -------------------------------------------------------------------6 ?7 [/ U* B8 {/ g" l4 K
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    " a3 O  L  D& f8 v* Q+ K+ Q
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    : R7 |0 x( C  f4 @' k, J. Z+ b
  91.     @layout2_sprite = Sprite.new
    % _1 a" L: r* x6 P3 ~. T% H
  92.     @layout2_sprite.bitmap = @layout2_bitmap6 t; u2 `# b9 M2 q/ Y
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    2 N7 \; i" G( b# q" S) D: w
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    ' q$ i% \* p  u4 p2 t
  95.     @layout2_sprite.z = 5001    - h9 ?& U8 v9 `/ }- p1 x3 T" T
  96.     #SP Meter ------------------------------------------------------) a. P$ A4 G0 J$ N. t) N- R
  97.     @sp_flow = 0
    : U; V. d9 z) N  R
  98.     @sp_damage_flow = 0
    & y, u# G0 M" E- f
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")6 h1 s( }0 J6 t/ L
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    , Y& w; |/ v# S/ s/ _
  101.     @sp_range = @sp_image.width / 3/ S9 F) `) i8 I, d, m1 b3 L
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  / _. n0 o0 L" Z1 H/ B
  103.     @sp_width2 = @sp_range / 2
    * Y) s  t' l) |, N# W! W  D
  104.     @sp_height = @sp_image.height / 2
    7 M) q8 w& b1 E9 W/ l6 }$ Y
  105.     @sp_width_old = @sp_width) {1 {2 k+ T: e* f1 |
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)  z! X/ F5 X; u' o
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    & @, w" }2 _1 \' G) K/ Q2 t9 t
  108.     @sp_sprite = Sprite.new
    ) e- c8 ~! F7 v' L# L
  109.     @sp_sprite.bitmap = @sp_bitmap8 r/ M  ?2 d  l, E
  110.     @sp_sprite.z = 5002. `- X9 E- H) c* W  C0 c$ Q0 S9 ]
  111.     update
    / M) e1 P5 ~+ s8 E
  112.   end
    8 J. N4 _3 n1 [, v' y
  113.   #--------------------------------------------------------------------------. D4 O( \0 Q8 q2 N9 ]
  114.   # * Refresh5 u# Q2 v2 f: m! h! o- _7 P# ~
  115.   #--------------------------------------------------------------------------" X, Q/ z. w, l8 T
  116.   def refresh  Q! P* K; M8 I7 W) v2 G5 [( D
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    ! C' L  X2 ]: n; f1 N- [
  118.     self.bitmap.clear$ V" A9 [5 l+ `  }$ |2 Z
  119.     @old_vis = self.visible3 M" W0 a  }9 [- i9 U% o
  120.     @old_sp = @battler.sp+ L* v6 }* A5 g; a3 f6 K$ f. x
  121.     @old_hp = @battler.hp2 \! e9 G/ d, c, j/ N
  122.     hp_flow_update
    3 G5 M: z8 o& ^' G
  123.     sp_flow_update
    ; ~0 [, M/ I' t9 l. O' A9 Q5 e6 V
  124.     hud_pos_update& I0 t9 l! \' @# Y3 l" S
  125.     visible_update  S: S$ I: [5 ^+ U* ~
  126.   end. k  O5 ^2 Y8 n7 u/ F+ S  f
  127.   #--------------------------------------------------------------------------( x# F: u) m. w* j" a& C
  128.   # * Dispose
    : F% M0 D1 t5 l) z" c
  129.   #--------------------------------------------------------------------------+ P! p; F3 `) F  Q( Z
  130.   def dispose0 y( N0 `: C4 |+ H3 \
  131.     #HP Meter Dispose
    6 v; P2 `5 y2 W+ E: }7 z6 g/ q
  132.     @hp_sprite.bitmap.dispose
    , C( g6 N5 O2 a! T/ q
  133.     @hp_sprite.dispose& z3 e( R( W+ W) h/ O& [
  134.     @hp_bitmap.dispose
    % U( x8 K4 @5 L
  135.     #HP Border Dispose
    . p+ n1 h8 A# w$ ]9 g( U: s' _
  136.     @layout_sprite.bitmap.dispose
    0 W( j9 j/ w$ E& e
  137.     @layout_sprite.dispose
    % j; R& @$ i8 @6 o0 A
  138.     @layout_bitmap.dispose
    7 }# ^" a- m4 z. z$ v
  139.     #SP Meter Dispose
    . r+ ~$ R5 y  G) S. J" H
  140.     @sp_sprite.bitmap.dispose7 I0 c0 B8 D/ r5 M1 D% m2 L1 }
  141.     @sp_sprite.dispose  F7 ^+ f; E: h% p6 U
  142.     @sp_bitmap.dispose8 F( _* T6 F$ [3 h2 D2 @
  143.     #SP Border Dispose0 D5 M/ i; z) \: ?& k
  144.     @layout2_sprite.bitmap.dispose
    ) N9 V9 T, L$ ~4 w4 |0 B
  145.     @layout2_sprite.dispose4 N! |8 b7 \2 c
  146.     @layout2_bitmap.dispose
    7 v9 n. u3 I0 K
  147.   end
    0 H6 g1 J/ A& X
  148.   #--------------------------------------------------------------------------
    / n4 x" a) ?% N1 w3 X
  149.   # * Update
    * o0 g, D& N) f% W( A3 ]+ B
  150.   #--------------------------------------------------------------------------
    5 ?* A0 k) X, c' P' o6 P0 L( r
  151.   def update* E1 c6 B  M, q* @9 ~
  152.      @battler = @enemy.battler
    8 h' B! s1 Y" k
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?8 g6 Q! V) H0 I# L8 a. p! H# c( ~
  154.      if self.visible( o7 z: H2 Z% E
  155.        refresh' O5 s, h; h& R) q9 q! I1 ^
  156.      else8 B/ @1 q* ?9 C# K3 L! @% t1 ]6 D
  157.        self.bitmap.clear
    " s* h. F* f. U& z6 ]* }% a
  158.      end
    . M5 ]& z/ R: n( }6 c9 s
  159.   end
    ( ]/ c5 N$ U& G0 i+ q
  160.   #--------------------------------------------------------------------------
    7 V% ?) K; i, K' t- R- H
  161.   # * Visible Update
    & l1 j# H, V7 Q
  162.   #--------------------------------------------------------------------------1 u  P! ~, f4 S- \
  163.   def visible_update
    ; V$ |! R* Z6 `3 R6 f% g
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true8 a. _9 f# p3 Q6 q1 ~
  165.        @hp_sprite.visible = false
    4 \" m9 y! B7 M% w* R2 s
  166.        @layout_sprite.visible = false
    5 \5 Q2 e) j- S1 |
  167.        @sp_sprite.visible = false  U, U2 l, Y& M& ^, A3 c
  168.        @layout2_sprite.visible = false; g+ O$ a9 Z8 w
  169.     else4 C# }. F+ S& D  l, G; U# _: I# w) c
  170.        if HP_HUD == true
    ( o" X- r7 y6 y
  171.          @hp_sprite.visible = true3 Z) `) k% `4 q6 p4 R$ G
  172.          @layout_sprite.visible = true2 m; b& K/ _+ y8 h$ |0 p
  173.        else
    6 ~0 x( ]$ E, r8 V" M+ z; h
  174.          @hp_sprite.visible = false
    0 m: j1 D1 V8 J; b, g6 \& \
  175.          @layout_sprite.visible = false0 m8 x& z; v: j; N( u  ^8 e- d3 L
  176.        end  & b, D5 C0 X: l! L) [5 g
  177.        if SP_HUD == true6 F, n$ L) G$ f( d/ o# S& |! R
  178.          @sp_sprite.visible = true. H" v: u2 T2 u$ M* s) l4 M
  179.          @layout2_sprite.visible = true4 }# n. ]+ L( ~, C$ s* f' [
  180.        else/ z) S, W- |; O8 u1 M! o2 q
  181.          @sp_sprite.visible = false5 F4 G/ n; Y, i1 m4 I* g* t
  182.          @layout2_sprite.visible = false
    . `" N. z( n- ^
  183.        end
    ; ~: S0 }# A% `
  184.      end  
      R8 o; i3 `& q6 k, m3 n
  185.    end
    . @6 q% u: C3 b' Z7 ?# f7 ?
  186.   #--------------------------------------------------------------------------6 [" X3 R8 H  M; i4 b
  187.   # * Hud Pos Update9 \0 w. m2 v, I5 p0 C
  188.   #--------------------------------------------------------------------------
    9 x+ e; G0 w& `7 e$ V
  189.   def hud_pos_update) c2 \4 P1 }( D; o
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X- X; j* f$ r$ W& a* ?
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  9 B" Y* V, _3 ?
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X# I, x" C. M6 h( d
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    , X! D5 p% I2 C1 l! _
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    : \$ Y) E& V4 y6 n
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
      w3 }2 |1 ^- w0 l; K
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    ; h* |1 I" v' |% i5 r6 h
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     * M! o: l- B4 r, ^) }9 p
  198.   end  
    # e* I3 J- Z/ n" O+ o. B8 ?1 D# C  @- m
  199.   #--------------------------------------------------------------------------' ?4 \8 L/ x% j: `9 \/ D2 I
  200.   # * Hp Flow Update& _9 s# Q$ L3 n- b
  201.   #--------------------------------------------------------------------------
    2 \  Z! N: I" i
  202.   def hp_flow_update. x0 e  o5 W  b) i1 d2 ]5 s# e0 b6 X) f
  203.       @hp_sprite.bitmap.clear
    9 T. D2 A$ n4 m0 Z+ y0 u
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    8 n# X- s' I% H7 ]
  205.           #HP Damage---------------------------------
    " e* j: y+ D3 H
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    5 j5 c2 H: Z. N# e. [- }
  207.           valor = 0.5 if valor < 1         
    # `% z# ^1 K: v8 V" J
  208.           if @hp_width_old != @hp_width1 k; K, D$ @; w% m8 s" ~) w
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  7 B) ~6 [6 h* ]" ~& w0 Z
  210.           if @hp_width_old < @hp_width - X/ [! o  _/ [5 h! h
  211.              @hp_width_old = @hp_width
    $ Y- P: X3 U$ E, P0 V7 a5 u
  212.           end      + l' H0 Q: q' S8 ^
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    / H9 v2 K' P- M3 K, x6 i
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       + V( h6 \, a: D0 n
  215.           end        " D5 [) T& ^0 Q
  216.       #HP Real------------------------------------
    ) d4 z0 e) y+ _) ^3 b% t+ h8 a
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)! s8 y1 S9 }( f" ^- v- l) w
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    * z# t9 u- J) S8 [; r6 N8 V* N( L" F
  219.       @hp_flow += 2  
    7 X4 F& t: Y2 H# i" A3 S0 s/ Y) O- L
  220.       if @hp_flow >= @hp_image.width - @hp_range( e. m3 q' R5 V  M5 T
  221.          @hp_flow = 0  1 O* ?. B0 k9 H2 i" [  j) k8 E/ Z
  222.       end0 k9 p8 T- z' l% ~
  223.   end   
    + U4 D3 U7 u- X  G: ]5 e% E) _+ u( P6 R- i
  224.   #--------------------------------------------------------------------------
    7 W, \* R) S  q
  225.   # * Sp Flow Update
    5 {) b5 K" b! `' U7 \/ I3 l
  226.   #--------------------------------------------------------------------------
    6 U% n) K: y( E$ g  K
  227.   def sp_flow_update
    " _2 v, C4 I) g/ Z! C
  228.       @sp_sprite.bitmap.clear
    ) \( U8 t6 V) W% [1 N7 ~
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    & M; ?, M& u, R; @' ]
  230.           #SP Damage---------------------------------
    : E# h& W, t3 t6 o) p1 r4 N6 N
  231.           if @sp_width_old != @sp_width1 Z  G; [& k5 d( k+ F& ?! Y
  232.           valor = (@sp_width_old - @sp_width) * 3 / 1001 e3 o, t$ q- l$ W$ [9 N& F
  233.           valor = 0.5 if valor < 1              
    * Y; h& U! c7 ^  c5 j
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  , x# x# P$ Z1 k4 T! O1 Z
  235.           if @sp_width_old < @sp_width . G4 Y: T6 A8 u* j/ w
  236.              @sp_width_old = @sp_width
    & |- L& Y* y% u" u; g  B: o! w) s
  237.           end      ; ^. A6 @4 _( L
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)2 m1 Z: J1 w* T+ h+ }
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    " C# `7 O' W  Z+ }
  240.           end5 ?0 e- ]2 ^9 V2 P$ F# D
  241.       #SP Real------------------------------------
    . ^, o9 j$ x2 R+ s6 }! @0 p5 ?) o! p
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    $ Y+ G( D3 b8 M8 P, E8 E# q4 _8 u! M
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    9 B7 Q0 ?- W; D( D7 n* ?6 @
  244.       @sp_flow += 1  
    ) [1 O% y: C: y7 o
  245.       if @sp_flow >= @sp_image.width - @sp_range
      K" V8 d  X! f7 z* x
  246.          @sp_flow = 0  
    # A7 D2 e/ [/ N1 i
  247.       end" v4 a6 a3 o# \3 f& S9 f
  248.     end            
    : @8 q' `1 H' c5 u0 _# j6 w8 c
  249.   end
    " Z: a  K/ W" h- D
  250. #===============================================================================* d1 ^7 j4 }6 D: }( X+ ?. {
  251. class Sprite_Character < RPG::Sprite
    - z3 h0 n2 ]( F. F' @: e# d
  252. #-------------------------------------------------------------------------------' r1 U" J1 U* s0 Z- C
  253.   alias :xas_emini_hud_init :initialize
    , ?# Q6 X. M) h4 s
  254.   include MOG& |7 f. ^5 u( o5 H9 \4 Q7 R
  255.   def initialize(viewport, character)
    7 v, R" R4 |0 Y5 e
  256.     xas_emini_hud_init(viewport, character)
    2 v7 |( {8 b9 I4 ]- ?
  257.     @viewport = viewport
    8 B1 Z- F3 u7 e. E" w
  258.     return if @character.battler.nil?
    3 ]* |3 t* V1 ]1 ^5 ?
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)7 H7 Z8 q' t! \8 \& e
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)# f, Y. a0 n5 O9 b" q( U
  261.     return if @character.battler.is_a?(Game_Actor)
    / w2 [# F$ _# P' t/ r8 Y5 p
  262.     @bars = S_Hud.new(@character, @viewport)
    ( q; Z9 @) U0 Q9 y6 S
  263.   end- j! \  O* P$ B- g
  264. #-------------------------------------------------------------------------------
    4 M% D. \! `1 g6 y$ L/ K6 F
  265.   alias :xas_emini_hud_up :update
    # G6 Y0 f: L9 [- |& Z2 O
  266.   def update$ T% s' X3 Z& h: V4 c* T, ?
  267.     xas_emini_hud_up8 x* `# c. C' `8 K; F" N' y8 N7 l
  268.     return if @bars.nil?" ^) j3 @, U4 M+ k) e1 x% H
  269.     return if @bars.disposed?
    : C# J; w; F* ?' H1 n" d
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    4 \3 X+ Q- l, }2 O, d) u+ V* E
  271.     @bars.visible = (dis <= RANGE)
    $ Y" l. r( m! x* R: T4 {8 ]; N
  272.     if @bars.visible
    1 C7 Q* W4 P1 P% ^4 V
  273.       @bars.x = @character.screen_x# - @cw / 4
    & B( C* A8 o4 D* m8 J% N
  274.       @bars.y = @character.screen_y# - @ch / 4
    4 v" }6 E7 L0 W. x& @  Y( {& i
  275.     end
    & g2 Q6 k  f+ K% \
  276.     @bars.update' d8 e1 C' @6 c- C% R
  277.   end
    , ^' u+ u6 d, d7 `2 ~* ?% p
  278. #-------------------------------------------------------------------------------
    % x* w8 r2 D4 j- z! C
  279.   def dispose
    & r4 Q/ C7 v  y, K
  280.     super8 {/ Q; f$ _( e' N
  281.     @bars.dispose if [email protected]?: y0 Y& H6 z3 P# a& m: \
  282.   end
    & h" N8 W) J% r1 ]) U! D8 T2 c* _
  283. end/ Z! Z$ ?3 n, f9 R" O3 w
  284. ' p& {- s- z0 g/ y6 r- b0 D
  285. $mog_rgss_s_hud = true
复制代码

  d& Y6 p$ g$ K, I$ x7 W% l
1 v. J3 r" r' p
. Z: W1 F& j: _# e6 a上面所說出錯的203行內容為
/ ]! y  ]" J% m/ W+ ?7 B0 T@hp_sprite.bitmap.clear" |! x1 c5 s! s( b( R

3 H  g! D( K1 R# p- P% j8 Q想知道怎麼解決7 }) v1 A1 p8 G/ V, x; R) a# {
1 }7 m" T- t+ p
該腳本支持3.824 T6 v( `# s. W6 v0 _6 O

! d% ~0 Z% @& V( y% s( G下面是圖檔,要塞在Windowskin下% l! e) Q/ P+ C

( o. j' g- k0 Y1 c S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) & z. {: s" U7 G9 M8 o7 Z" ~
. l; a! E: `# L( [$ h+ X$ h! q2 M

% L9 X, Y$ l: k" _
; p0 E1 S3 @) V  ?

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
- `/ _- ^! t% f$ M8 l结果尝试刷新了一个已经释放的图形6 R+ X* v9 l' C9 X% T  O
1 |9 x* }/ k/ \. D0 O9 `/ ^
% D. Y0 z! }) ]: g+ w

" t, Z) o( h( ?7 Z  U# B. A1 @0 ]7 w+ X虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    0 f; \  n* F' F/ [( R  \
复制代码
不要后面那个条件貌似就没问题了。7 B8 v$ k) T  q- n& g1 g
# |# C4 g) v2 D0 T. H0 P

5 c% c- L' C1 L' h+ ^
9 e2 A0 f# y$ p9 O2 @/ [
: G, R+ n2 \+ I# w$ p
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
517
在线时间
1788 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 , d/ b% {: Q9 ?/ x. [! M
貌似是释放的条件不合适& w1 W' `& ~. Y$ ?6 ]& L- C
结果尝试刷新了一个已经释放的图形

& O0 O" O7 }2 J: G4 m+ @把後面那個條件弄掉後,的確沒問題了" k8 M# Z7 ]9 S, Q+ g: N
目前從關頭打到關尾結束都沒再彈什麼錯誤" A' u" |: M0 ?$ C0 g; N9 _
非常感謝
9 x$ o" Z- X5 _% R! N* h; k5 h7 y( @+ P$ m- ^& S/ [
不過我是參照著別人腳本改的& ~8 @7 d7 q% H% h' @
他寫的條件式也是那樣,但我用他的沒什麼錯誤9 a! z) z0 J" G9 [2 K, k
不知道是怎麼回事
$ ?- h$ L' I; N/ c是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的/ ^3 s6 s  w# Y! D) O; M$ K
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events+ E/ j# l/ z# u. x  s
嘛..这个数组吧..我在以前试写队友的时候关注过一点
5 ~1 V0 Z3 q. S) z3 N) Q! P不知道XAS内部对它做了什么手脚还是为啥,0 k2 T9 W  C/ l
总有那么一瞬间,没有被消灭的敌人事件也变成了nil
/ C: j8 q6 l. \# p, {( N
, l3 x4 {" {" L5 B7 W8 e3 m$game_map.events.values[@enemy.id].nil?/ O% g7 _3 b' _1 l
因此自然而然的返回true并符合条件把图形释放掉了
( j3 t0 U4 F' c& o# t. d" M
* d# Y9 A3 d, q; _) ELZ应该有注意到吧,4 K# R% C7 @5 e% o7 l* W! U& r7 x
我测试的时候发现报错前几帧,图形会消失,, @5 e4 j! K9 ~& T& W! o
应该就是“误以为敌人被消灭”了。
3 R% R' A0 J9 I1 @, c; M3 Q: j+ C  H; k# x5 S% t
受限于个人水平,至今无法找出$game_map.events的真相..
1 l0 \. j' ^0 T- |+ N6 X* r6 V
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
517
在线时间
1788 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 5 ^) a) Z; @: Y
$game_map.events
, J& D3 m- A6 ]4 u. d% N+ |2 {- _嘛..这个数组吧..我在以前试写队友的时候关注过一点
' f2 h) q* z1 S, y  S3 w/ f  @2 o不知道XAS内部对它做了什么手脚还是 ...

4 K. S2 F$ R, r5 v7 F3 K# p4 }當初我把那個條件式看了三遍,都不覺得他有什麼錯
( r3 Z; D4 |+ x2 A3 d! j原來還有這麼深奧詭異的事XD$ _( u5 v2 |. h4 c  X7 }) D
7 q, e; O" _: Y
錯誤發生前的確會有圖形沒顯示出來2 I" A  S2 n# P3 k9 r1 n- K) M3 g
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...6 J1 F- K+ R( u( X
沒想到居然是詐屍了XD5 I* r$ t8 Q- u# K. u( R( O
3 E: s; f- R. Z; ]) i" r* M
不曉得3.91有沒有修正這問題...2 S0 K& ?$ X' }; T2 o
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
- o& {* f' Y! G9 W& _. c
, V' q' l8 Y; @6 P6 V) s" X的确
% D" k% D; w9 @" N用惯3.82之后想去整3.91觉得压力甚大..
  j4 M  P9 {4 J  }干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12684
在线时间
21845 小时
注册时间
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”。
+ t; ?: ~9 d9 t* [4 B6 q' F
* i3 q) f! Z7 Z: o3 y然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-9-6 07:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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