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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
  D' r( j' y9 a4 i9 d2 K; F會在每隻事件怪物的腳下顯示
; o5 {, i6 v* M/ C問題是不知道為什麼
) Z9 _: @- I& C0 m% d! S3 X有時打怪打一打會跳出
: H# A5 y# U. N2 n/ i% M# d5 c---------------------------3 e4 C4 o0 E) L- \8 O' `
XAS+ M  O$ D' ?2 Z+ N2 J& g6 @( R
---------------------------! m& x7 W% v' T* ^4 Z  c  X
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。+ `& Z5 {* E7 Z; X

' O1 E3 [$ W" G& ]& odisposed bitmap5 H1 y8 E2 j4 W
---------------------------
: ^' E; \; M8 ^% ?! g確定   1 `. M$ `& Y3 K5 _0 ]3 }
---------------------------
# L: M) ]  m7 c
" G9 J, E) S. J- A+ e- S7 h! I這是腳本
# y: |4 T$ J, u0 T. o. p* a
- I( C* C* f! _# S4 F  Z
  1. #===============================================================================
    % F) [; \2 Q7 d" x" K& k. x
  2. # MOG - s Hud 1.0      
    9 Y# u1 ^) U, t5 J
  3. #===============================================================================6 s( S3 t; l+ L1 d# U5 A: v
  4. # By Moghunter 1 l4 E- g; w9 j4 @2 P# }5 }, I( X
  5. # http://www.atelier-rgss.com
    # b$ u7 a6 t4 w3 p3 m" w( r
  6. #===============================================================================
    5 X! [: F& |" m2 g
  7. # Translated by Calvin624
    * @7 e( v# h, `: t0 j
  8. # http://www.xasabs.wordpress.com# U0 m+ v7 r# r7 T% I
  9. #===============================================================================" Z+ }8 a6 p3 ?& M1 n; E4 B8 _" x
  10. ###############################-DESCRIPTION-####################################
    # L" @9 K) R& p, ^- d
  11. #===============================================================================
    + F' L: I. m5 O' Q* l1 `# }
  12. # Personal HUD – displays the HP and SP below the hero.
    & I1 K- P: ?; I: W" T5 G& \' E
  13. #===============================================================================
    ! C" H. M# M9 s" u9 p. P; H) w* C
  14. #5 l, _8 Z+ B/ @5 n+ `
  15. # Graphics required:
    0 F# l; L) p2 e, }; J
  16. # 6 t4 `, g9 p8 X5 w' B9 `/ o0 h+ e
  17. # S_Border_HP_Meter.png/ ~4 t9 l$ l  T- w/ v6 H6 w
  18. # S_Border_SP_Meter.png
    6 ~3 e# C+ }( B' z% f  G" t  H9 W! W
  19. # S_HP_Meter.png
    7 R; S) B7 g8 @. u5 P
  20. # S_SP_Meter.png
    # I; b  g4 W; i, [- i# w- m
  21. #
    ) M& @5 V2 j0 E
  22. # All images must be in the Windowskin folder.9 i" h& N% c' [3 k( ~
  23. #8 q# O5 E# H- e
  24. #===============================================================================2 ~4 F5 q6 y" e# h0 g( b9 m
  25. module MOG
    ' b  A' l. \) t. `9 O
  26. VISIBLE_DEF = false  - B# q; a! p- B
  27. # Show HP meter?
    / G; H. M* t  q2 T
  28. HP_HUD = true
    ; u3 \5 T, |3 ^- I8 T
  29. # Position of the HP border
    & t6 _, E* a! l
  30. S_BORDER_HP_METER_X = -2
    # x0 u  x# ^  m% F" |5 V& L
  31. S_BORDER_HP_METER_Y = -2  , a- ]' {* N) X3 q4 D& Z$ N7 Y" e
  32. # Position of the HP meter6 l# H! C" _9 u4 a- B" V
  33. S_HP_METER_X = 0, w  I4 _% I6 M1 b1 d* h: W; n; u  m
  34. S_HP_METER_Y = 01 W7 d2 H  J7 V  m5 r9 \
  35. # Show SP meter?
      N% ~  R; e: ^6 V
  36. SP_HUD = true
    , P8 g6 i; n, H0 k! ?
  37. # Position of the SP border
    . X, u7 Z) Q0 o" a& d) g" C* I
  38. S_BORDER_SP_METER_X = 0
    # ?1 X" J$ u) I8 w; d4 _
  39. S_BORDER_SP_METER_Y = 10 ! V5 U. \: k3 b6 X" ?
  40. # Position of the SP meter
    : D- H' K. A' I. L# b' O4 d9 P
  41. S_SP_METER_X = 05 l& t, ?% N9 w+ m) ^
  42. S_SP_METER_Y = 10
    * L2 i: S" ]( C% i5 {
  43. # Switch to disable the HUD
    5 t; |4 E: H8 W8 [7 w" r
  44. DISABLE_SHUD_SWITCH = 5
    0 G- y2 p/ @% ~8 w( W$ M- r
  45. RANGE = 209 q, i3 g0 `7 M( D: [1 S
  46. end: R; R5 A$ r' U  F+ L, Q
  47. #===============================================================================7 g: z  d% d. x' w
  48. # S Hud
    $ T6 v  J, z( U: f1 i- Y
  49. #===============================================================================, `: ^# d( ]3 i/ z" E
  50. class S_Hud < RPG::Sprite/ J- L2 z, z8 H+ h  E: t
  51.   include MOG
    . b9 d8 N/ K6 t+ c- x% ?
  52.   #--------------------------------------------------------------------------
    : h- L+ i% |/ m# m  c+ ]
  53.   # * Initialize5 G) @' H) i; ^1 w. q3 H8 g7 ^
  54.   #--------------------------------------------------------------------------' m" |, u9 F" L9 ~5 O6 x$ a3 e
  55.   def initialize(enemy,viewport)7 e- i/ H7 u" t
  56.     super(viewport)
    * v, ~7 U" `. D* i% t; e5 V% P" r
  57.     @enemy  = enemy4 k* ?5 E7 C% k( ]
  58.     @battler = @enemy.battler
    1 a& o$ ~# |5 W( t: ]+ c
  59.     @old_hp  = 0  B/ r% O/ Z2 G8 R& m9 T
  60.     @old_sp  = 0
    2 T  J9 G3 [$ E* i3 A% q5 X5 G
  61.     @old_vis = false9 u; i, Q2 m# R9 L/ C; J' P
  62.     self.bitmap = Bitmap.new(100, 100)# G1 L2 m# H  }' u
  63.     self.visible = (VISIBLE_DEF)#false
    : ^5 O' i' R8 j3 z/ W
  64.     self.z = 100
    : @8 x$ {! S$ z5 S7 @
  65.     #HP Border -------------------------------------------------------------------: a) R+ w  Q% H- d
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    : z2 K1 R9 z7 k4 k' n6 `
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)1 u7 \) _3 {9 G0 {. \" l! K
  68.     @layout_sprite = Sprite.new
    + S5 x* H6 J$ m
  69.     @layout_sprite.bitmap = @layout_bitmap
    4 W$ Y8 K. C" Q0 B" V
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)+ x: L7 y' P* U# V' z8 A" z
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      # ~! }5 m$ {; f! t/ \2 \
  72.     @layout_sprite.z = 5001
    / O: P3 R/ U+ x: z! W
  73.     #HP Meter ---------------------------------------------------
    + d7 U6 v" N; c7 J& T! R
  74.     @hp_flow = 03 Q9 R8 [8 r7 ?- U- O
  75.     @hp_damage_flow = 0) z) I5 c: B' T/ I" ~5 F  D
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")5 d8 X0 w4 T5 s: v  N& T9 ~
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    5 i# Z2 H# `# p3 m1 ]
  78.     @hp_range = @hp_image.width / 3
    7 P; `, b1 S. d$ Z9 L( @  b- }
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    2 }% {3 n7 Z/ f
  80.     @hp_width2 = @hp_range / 2$ T: p2 O- q  Y# v1 c* `3 Y
  81.     @hp_height = @hp_image.height / 2
    * O: b2 D, T1 ]+ \. r5 ?$ `
  82.     @hp_width_old = @hp_width
    # _9 a8 }. k2 b
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    3 N8 f9 X( `/ V' L1 q+ u0 q, L
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    $ s5 }' f0 E) @8 m4 U5 q
  85.     @hp_sprite = Sprite.new
    $ a, q) x/ t2 _3 ]* _
  86.     @hp_sprite.bitmap = @hp_bitmap
    * L' S+ L8 b8 v  W9 E$ B8 _+ o" ~" Q
  87.     @hp_sprite.z = 50028 i$ W5 `7 x' ~8 \3 t$ Y
  88.     #SP Border -------------------------------------------------------------------5 d/ Y5 j5 q4 e' M" d
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")& N: V! I! E% T
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    - p* A  P; l6 E
  91.     @layout2_sprite = Sprite.new& i! i: i2 s/ T4 n
  92.     @layout2_sprite.bitmap = @layout2_bitmap" e5 z1 Z1 {0 T9 t" i3 Y
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    3 o8 t( m3 Y4 W& c  `0 r3 @$ F  v
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      0 b$ x6 u) N8 Q3 u1 n' X% B
  95.     @layout2_sprite.z = 5001   
    , z- b) ~% r0 x; G
  96.     #SP Meter ------------------------------------------------------
    ! I& W% I) u* b7 w
  97.     @sp_flow = 0
    + `2 _% a" W0 a, r1 R1 m
  98.     @sp_damage_flow = 09 r: w( n6 ], W
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")/ z) T3 `) r! f3 W
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    2 [' |5 C9 {$ F' U$ a0 m+ _
  101.     @sp_range = @sp_image.width / 3, ^+ H& E/ K5 R9 e4 K8 m+ P$ p
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    ( k& @, P4 k4 K- }0 l0 Q# Z
  103.     @sp_width2 = @sp_range / 2
    ' w4 M6 k7 q. G* w- G
  104.     @sp_height = @sp_image.height / 2
    # k% f0 A% ]5 l$ J) E
  105.     @sp_width_old = @sp_width
    * v6 y$ V4 f" p; k- p
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)) [. Z/ l% Q, b" a% P  v
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)  s; v' S# O1 h
  108.     @sp_sprite = Sprite.new
    , v9 `0 b. @0 X
  109.     @sp_sprite.bitmap = @sp_bitmap& H2 r$ q1 @5 F' l' M' s
  110.     @sp_sprite.z = 5002/ L. F; d/ L! [
  111.     update1 r3 @$ C& B% O4 r- l
  112.   end
    # F6 |0 f2 |' V6 f. Q' \4 \
  113.   #--------------------------------------------------------------------------( [! ]9 X) r* g, b/ w
  114.   # * Refresh
    " J, F! i* O  V# Q9 D2 R
  115.   #--------------------------------------------------------------------------
    * u3 f6 q+ @. g
  116.   def refresh
    7 a& I4 z7 K% s! \6 X" y
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible1 }0 o& ]% \3 a5 \$ Z) z0 k. x
  118.     self.bitmap.clear
    5 v6 Y1 t+ M+ K& e6 }
  119.     @old_vis = self.visible
    # \; Q/ x4 D! b% E5 Q! s/ R
  120.     @old_sp = @battler.sp+ a5 L; `3 q9 {/ Y: ?% P. z$ Y
  121.     @old_hp = @battler.hp5 p, Q0 ?$ a) ~) g7 @; C% x8 |
  122.     hp_flow_update' G: H2 `* Q' e3 T% W0 q
  123.     sp_flow_update$ W8 Y: Y- z+ ^0 y
  124.     hud_pos_update4 S3 P$ D1 t9 T- ~! E* x% S# `
  125.     visible_update; e. u, g. q* o8 C' ]$ q) L
  126.   end, b/ G3 E. f7 ~9 ?' w0 M  u
  127.   #--------------------------------------------------------------------------
    & A- L8 a; H9 o3 J# [. ^
  128.   # * Dispose5 I3 K8 u9 s6 ^0 l$ P! u$ l: O
  129.   #--------------------------------------------------------------------------" T  |4 p8 q% f' r: K4 {4 a
  130.   def dispose
    # e8 x8 _6 O! X$ s- N
  131.     #HP Meter Dispose
    ' e+ z6 o6 p* q' T/ T
  132.     @hp_sprite.bitmap.dispose
    , {7 f/ {' V2 l% Q* h
  133.     @hp_sprite.dispose
    3 S  X) V! o  f9 P4 Y4 N
  134.     @hp_bitmap.dispose! p3 h5 k5 v3 o6 y
  135.     #HP Border Dispose2 U, s1 r! J7 A" b, v
  136.     @layout_sprite.bitmap.dispose
    - u' @" @, d+ y0 ]) K# o7 _9 G
  137.     @layout_sprite.dispose
    ) K& ~  g( S. [0 `$ F* @
  138.     @layout_bitmap.dispose
    ' V% {% o& l- X' F
  139.     #SP Meter Dispose
    / E! T+ p, ]; J' v/ J* k
  140.     @sp_sprite.bitmap.dispose/ L6 `# B. \$ T# E/ T9 e% w, V
  141.     @sp_sprite.dispose
    - X4 ?2 f' S3 _6 |+ q* Z
  142.     @sp_bitmap.dispose3 ?, r: T$ H! q5 M
  143.     #SP Border Dispose
    1 O" s% Q+ q0 r( e2 q& K
  144.     @layout2_sprite.bitmap.dispose
    ) n* J" W' V) v2 v+ @% C' V
  145.     @layout2_sprite.dispose7 j. v5 S: J, q* P4 `5 L& u8 i: c
  146.     @layout2_bitmap.dispose
    7 C; l+ G+ E$ g
  147.   end$ O) Y* x! h; f
  148.   #--------------------------------------------------------------------------
    ' H; F/ j4 q+ Z+ i; H
  149.   # * Update( S" e2 v' I+ e* f9 C
  150.   #--------------------------------------------------------------------------: \; F/ \- M, P: b: a) P
  151.   def update2 D; O0 a! Y3 ?6 z  E; e3 C
  152.      @battler = @enemy.battler - U* M3 I1 N& P" |7 t$ U2 c
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
      C. C4 C& T2 D: h/ K
  154.      if self.visible
    & }4 o9 l3 h7 F" C- R) n
  155.        refresh
    " i2 s, P' V) {" Q
  156.      else
    6 p$ g8 f2 P# S% {, {6 a
  157.        self.bitmap.clear& S& z  K  [* J! t1 T
  158.      end
    ( I7 |  A( r( @9 y4 B, o
  159.   end
    6 G; w& \2 e' a; U
  160.   #--------------------------------------------------------------------------5 t; s! ?% x5 a/ L" S
  161.   # * Visible Update' Z7 {1 a, y. g; z% R0 X  D
  162.   #--------------------------------------------------------------------------. H0 w! ^/ d$ i8 w% U
  163.   def visible_update  a' A* q; ^& ?+ G
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    " ?9 R& a( J0 N. v2 j
  165.        @hp_sprite.visible = false
    2 U4 E8 \$ k4 h7 q. o- k
  166.        @layout_sprite.visible = false
    ' W, P4 B) Z1 b1 }
  167.        @sp_sprite.visible = false
    + t6 y5 F  E; s' u5 u" t
  168.        @layout2_sprite.visible = false
    : E' I6 D! ?' ~/ g
  169.     else. n7 z, w% ]- A6 z' A( I
  170.        if HP_HUD == true
    / U( {1 e0 D6 B! f% K% j
  171.          @hp_sprite.visible = true; O/ L& @; M1 J9 I
  172.          @layout_sprite.visible = true
    / |+ ~' X/ w" [. p
  173.        else9 m6 p+ u0 c: Q0 B9 i
  174.          @hp_sprite.visible = false
    . T7 ~  z. K; o+ @4 L) P6 K* Q
  175.          @layout_sprite.visible = false
    * \) i  O& {2 T* D, ~/ d
  176.        end  
    , V1 p/ U! d2 d* W: f
  177.        if SP_HUD == true
    ) o) K! G6 m3 l: w+ a3 M5 j+ x
  178.          @sp_sprite.visible = true
    # u7 h0 K, G3 j, w
  179.          @layout2_sprite.visible = true
    # L5 D) m  ?5 t' N  N: V
  180.        else  g) u( Y8 E" O6 Z
  181.          @sp_sprite.visible = false
    ) i( d( L# Q; Z# d5 x* r
  182.          @layout2_sprite.visible = false! X0 ]3 B; F& u0 j
  183.        end   y6 x7 j4 `) h& e; D$ ^- w
  184.      end  
    % r* H! |' V' W. L; v5 \  b
  185.    end
    9 H& R7 Z5 r& I( u: `
  186.   #--------------------------------------------------------------------------' ^6 K! X( f( f6 J) j2 G
  187.   # * Hud Pos Update) H$ q8 L; q/ o9 n7 V7 _
  188.   #--------------------------------------------------------------------------9 c3 K) S4 V, b7 q% X. w
  189.   def hud_pos_update
    ! T5 e  R& f) t, ?) J* ~
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X4 R: O+ w* ?+ E0 f$ q) U( D
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  ; k$ F4 v! e/ ?6 e
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X3 x+ b. z8 p* v, Q( A9 {6 j
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y 8 \- w+ L( p/ K% U1 Q
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X0 z( V% E' p7 N, f
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  3 n0 K: Z5 i& z" c+ s) ~* g2 ?" F
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X3 R& x, V4 _3 D. M/ v; R
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    3 B$ W: }* _) |7 w+ C
  198.   end  
    * r6 N: k: b, w+ \$ Q
  199.   #--------------------------------------------------------------------------
    ( q, ~# C: ^4 s9 X4 u
  200.   # * Hp Flow Update
    8 ?7 X$ G( Q4 d6 V! G+ H# c+ w2 d
  201.   #--------------------------------------------------------------------------
    , o1 ?3 t0 N: p! {( @( |* d! Y8 }
  202.   def hp_flow_update
    5 f& L( i; Y# y6 K
  203.       @hp_sprite.bitmap.clear
    9 A2 D" A/ Y, q" c! ]: E
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  % c! i7 t& A% {2 A+ G/ C* ?. }
  205.           #HP Damage---------------------------------: N, }; |8 b; q/ L
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    7 o+ G/ _# F1 i8 M
  207.           valor = 0.5 if valor < 1         
    " x4 n  X$ _7 c- b( |, Z; h9 J" L
  208.           if @hp_width_old != @hp_width
    & v3 K& A, I. ?6 t
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    " j: L% a" K; n& \' Q6 d8 I( U
  210.           if @hp_width_old < @hp_width
    9 S& {; b% W- ]/ s
  211.              @hp_width_old = @hp_width
    6 t) u' u' y+ _( i/ n: o* ^- B% s
  212.           end      
    ' C, O& K" F$ X& W; i! [
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height). f. d3 u% T4 u0 U
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    0 n) L2 ]( y) J2 y1 K- f4 z
  215.           end        8 K; D1 B- z" q3 k& \( h) W
  216.       #HP Real------------------------------------
    ! N; U6 E2 V+ r3 G
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)5 z! J" Q4 N6 T
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    # X* _! B& e% k- L; C  U
  219.       @hp_flow += 2  : @) \% ~; j6 F- r5 F
  220.       if @hp_flow >= @hp_image.width - @hp_range
    - e0 n% L0 }+ ^7 O6 ]! Y/ [% s
  221.          @hp_flow = 0  % R- a# O6 j) F
  222.       end
    ) K4 d( i. L) U: v3 o/ N9 i1 [/ {
  223.   end   
    : |6 i; b, ]0 H, m; N
  224.   #--------------------------------------------------------------------------- q6 y. b1 S' w' d% ^. V2 A2 h% H
  225.   # * Sp Flow Update
    ; y- J$ f' l" f
  226.   #--------------------------------------------------------------------------2 ]# u( j1 e' h% j9 W- W
  227.   def sp_flow_update) g! r' G! }  S1 v
  228.       @sp_sprite.bitmap.clear9 |& p" \( m; e# n. ]3 Q
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    7 @! \, Z. c! o+ K
  230.           #SP Damage---------------------------------- l' O$ B2 |' c& w/ H# ~
  231.           if @sp_width_old != @sp_width
    8 C  @0 M: L1 T1 T5 y2 P! K
  232.           valor = (@sp_width_old - @sp_width) * 3 / 1005 x# B( l% P* n- l$ e4 G" E
  233.           valor = 0.5 if valor < 1              
    # E5 u7 b% U/ R8 c% t% k: E8 \0 x
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    0 @  U* A7 v; K' h* L$ I+ J3 U) ~! J
  235.           if @sp_width_old < @sp_width
      j& [  X# i" @
  236.              @sp_width_old = @sp_width
    5 N- D' K- p8 s2 \- J
  237.           end      
    & N- g, F7 v; Y4 p- ~) r5 u
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)3 h0 k! Z& A; n6 i. T
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    3 S7 [, T& @" o0 L$ u& E& m
  240.           end1 s4 Z& K( N/ p" }+ X3 a% \
  241.       #SP Real------------------------------------; ], d5 J6 ~; C' m) {
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)$ Y( K3 z  A2 J' S4 |- @% X
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)' F4 K# H! ?: U6 g0 b
  244.       @sp_flow += 1  , x4 H+ |2 \3 U* ^% E- d3 d* t
  245.       if @sp_flow >= @sp_image.width - @sp_range- Z8 y3 O  P& K' E! l
  246.          @sp_flow = 0  
    . m. J) A6 ?( ~* o7 M, L5 Q- C
  247.       end. k% ]8 [+ b+ F3 _; k
  248.     end            / _2 \, l- S, ]. [. @7 ?# f$ w; L
  249.   end# X7 `$ O" d& t3 \# E0 R
  250. #===============================================================================
    # F7 o- X8 {9 Q
  251. class Sprite_Character < RPG::Sprite: n' ?- f* Y3 T" `1 E4 M* [, \
  252. #-------------------------------------------------------------------------------
    ; ~- [1 f  l& N  Z$ c
  253.   alias :xas_emini_hud_init :initialize
    + |4 k) ?9 [( k4 o; y* c
  254.   include MOG, P! n& a) D+ _
  255.   def initialize(viewport, character)
    ! G% F, ~4 g% o0 T4 ]
  256.     xas_emini_hud_init(viewport, character)
    1 \7 m9 N7 C  Z# t7 ^6 x5 Y! w2 B1 K, ^2 z
  257.     @viewport = viewport4 W/ v, D& @" Q; h
  258.     return if @character.battler.nil?
    6 a' J5 J3 w$ X) B
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)1 O. D5 _: W8 c4 P5 {
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    & A3 [* |  B6 }, j/ o3 M
  261.     return if @character.battler.is_a?(Game_Actor)
    # l* ?' b" _/ P! K1 Q  b
  262.     @bars = S_Hud.new(@character, @viewport)
    , V$ v, p; V, }( U: S
  263.   end; ~% q0 B# |4 t4 ]* u
  264. #-------------------------------------------------------------------------------6 E! _8 N$ M% t; M) y: v3 K+ O7 u. P
  265.   alias :xas_emini_hud_up :update
    # n5 t9 C% Z9 ]* J- O
  266.   def update! ]% m4 }. H0 u% Y1 Q* R- L; B
  267.     xas_emini_hud_up$ r5 h% S8 M3 E# g" C
  268.     return if @bars.nil?
    # q4 z% j+ N, A' f, L) g
  269.     return if @bars.disposed?9 v5 v# e$ i2 D: V$ u5 q2 i# B
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    5 i3 B: R, @5 c; l
  271.     @bars.visible = (dis <= RANGE)! I; }4 J& V4 o
  272.     if @bars.visible
    . ?" P7 s3 |% y7 d/ h- \
  273.       @bars.x = @character.screen_x# - @cw / 4- X! B2 n4 N0 H! F
  274.       @bars.y = @character.screen_y# - @ch / 4
    ( T& E, H- I- X+ e- z
  275.     end; X6 \: E9 a+ o* @7 [$ m) k! {
  276.     @bars.update% o! P+ ?% \8 ^, e( T& S
  277.   end
    5 @4 b% T, B" e! h) ?
  278. #-------------------------------------------------------------------------------
    % @8 x+ g. p9 f) [' L& r
  279.   def dispose- _9 S2 M1 f3 m/ d$ {
  280.     super* g% l( |/ C" p+ C
  281.     @bars.dispose if [email protected]?
    " a4 i; A5 ?4 Q7 `1 s8 {5 ]
  282.   end
    - \7 G/ F' j) W5 j
  283. end8 }; B8 c  B) U) A, T0 ^
  284. 7 w* h( b% [# e) j7 F/ P3 x# b
  285. $mog_rgss_s_hud = true
复制代码
! H8 l4 y9 w( [

  |" F: \; g: K! [
: Y( H4 G2 Z8 T9 h% Q0 S. z上面所說出錯的203行內容為
7 M, ^( y# J( s, x@hp_sprite.bitmap.clear
, a& K: `) E  b# N! h, b
$ ?1 [6 Q* j  B0 t! D想知道怎麼解決# r( ^; z8 K& j6 Y7 N- o5 d( U3 w0 Y

2 d7 N( s* @% v3 K, m# C5 q該腳本支持3.821 g  R# ?" Q( \9 d& [; G

' O; P! y" a: ?8 G下面是圖檔,要塞在Windowskin下5 z/ b% J. @' {+ e; c5 \" W! K3 Q
) L. @- \- x9 ?) K6 w6 K1 B. I; o
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
$ U( l. R8 d4 D: m3 }  @' f
* e# ^3 e: t2 ~* h" Z$ H
6 u8 U0 j; |7 W6 D6 t/ L( y& t# ?( }3 e" v# O

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
1 [3 k0 }8 k/ U结果尝试刷新了一个已经释放的图形
& L7 J# E$ k  g3 G+ n* I
8 [$ `/ A. G* r5 y2 ~$ s2 N- D
/ _* Y! s8 \  _+ a8 d: s5 E0 d' y. E: k
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    ; @" C7 A4 K8 }" Z8 y+ G
复制代码
不要后面那个条件貌似就没问题了。
% O5 P/ o1 R; @/ ]. ?8 k' t; ]* w% f0 R8 X6 O" C
/ ]0 F' g: V0 c; D

% {/ P+ {8 H- |- @$ q4 K( C$ ^$ j8 r+ u
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
482
在线时间
1785 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 3 o$ A& ^: _1 n; [' [& v; P
貌似是释放的条件不合适
% D) f' g1 S6 V( B结果尝试刷新了一个已经释放的图形

7 N4 F, S8 A9 [1 n$ X6 ^7 f; R把後面那個條件弄掉後,的確沒問題了
; X& D, E6 K  O3 g# w8 |0 _目前從關頭打到關尾結束都沒再彈什麼錯誤
8 c$ m: ]4 x- l7 q; `非常感謝
/ D# q1 m6 d3 v: S5 d0 M0 H2 ]5 V5 G9 T, w+ H$ J
不過我是參照著別人腳本改的
3 Q. {( V$ R: I/ L1 ?  n/ ~8 [+ ?他寫的條件式也是那樣,但我用他的沒什麼錯誤
$ e+ a# h) V) v. r. a不知道是怎麼回事
1 M/ y# k0 U: q1 L) Y是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的% H4 K& r( ~- o- l: \
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
% ^% _2 [- W1 E( v( p嘛..这个数组吧..我在以前试写队友的时候关注过一点
& k; j8 H! X+ O% ?+ V$ Q; b1 a: E5 u不知道XAS内部对它做了什么手脚还是为啥,
8 _/ U4 m8 N5 i% q- q: {  V" S8 N1 X总有那么一瞬间,没有被消灭的敌人事件也变成了nil
2 l; Z# Q, _" D2 ?& }; U  b4 V. z0 ?0 S4 g
$game_map.events.values[@enemy.id].nil?
0 `$ t5 L) W- \8 J% ~6 J9 r0 W因此自然而然的返回true并符合条件把图形释放掉了
  Y5 F- H- ~/ t' d4 U1 @# n3 p& K
& X2 s; s; y0 W% C3 W2 }1 O; Y2 }LZ应该有注意到吧,/ M0 }" e3 N( r( L9 V& X- J9 D
我测试的时候发现报错前几帧,图形会消失,
- h3 E7 @7 ^$ L( m+ ]2 M8 V应该就是“误以为敌人被消灭”了。
# T3 @% ^! q& O) O+ D9 I$ T5 ^$ c/ T5 V& t8 q# Z& }2 l
受限于个人水平,至今无法找出$game_map.events的真相..2 {- z" s; W1 ]/ x( t
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
482
在线时间
1785 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
" u/ o* S8 Z2 w' u* r3 \9 H$game_map.events% V, ~+ j6 r7 N" }! L
嘛..这个数组吧..我在以前试写队友的时候关注过一点
6 {6 l& R7 ]& g' F0 }' D5 o6 w不知道XAS内部对它做了什么手脚还是 ...

2 [6 \) B* O& D  m4 Q當初我把那個條件式看了三遍,都不覺得他有什麼錯
: ?' X; I# @! U原來還有這麼深奧詭異的事XD
6 N7 U$ z3 Z$ B4 j- C% |$ ?" [% a: C' Z0 L, r0 b5 e# q& m
錯誤發生前的確會有圖形沒顯示出來
" O/ n1 D5 T1 T7 y: n不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...  ^* K4 t/ a, r7 y( e. x$ \( w
沒想到居然是詐屍了XD
: p/ P/ e* C( ~3 G
" D9 \1 a7 k8 ?+ D2 W$ o$ O* }不曉得3.91有沒有修正這問題...$ c$ m; b. _" ^0 X* o8 l
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
9 s# B) P1 C0 P* _; d  P" T1 j2 b) }: }# s2 c, f4 A
的确- Q% i& R+ a# m/ T/ {/ T
用惯3.82之后想去整3.91觉得压力甚大..0 c* k0 u( b& l
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12504
在线时间
21823 小时
注册时间
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”。
/ D/ s! }5 }! z* w0 n2 C" S. A: H
6 t" I" r- V* d, j  j1 M  m( L9 Q然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-7-31 22:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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