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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條" R4 N8 w1 q1 d! F  d+ t. d" S9 |7 c
會在每隻事件怪物的腳下顯示
4 [4 s3 G( N1 g' w5 D% ]問題是不知道為什麼
* c! j$ Y2 f+ E7 A3 Y( ^6 M有時打怪打一打會跳出' e, \! h4 W% K: l
---------------------------
& |/ \" S- l/ ]5 ~( G, [XAS) }( [. }" E( E3 w; c
---------------------------5 Y8 r2 }" T0 c: h, r7 c
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。" D( S8 L2 \8 u  ]  r6 l& |+ h9 `

- n4 {# @9 K+ d4 m+ A* wdisposed bitmap$ h5 f* r- Y5 j: ?& Y
---------------------------, R) X6 N+ W4 K. W
確定   
- D+ U1 t- l! Q2 z! I" i---------------------------' l$ S) U' n! E5 ]" f% z* k" g- A
% c: [& O/ l" O
這是腳本  z7 x7 T) s% z% T6 A5 g

: E* R7 R0 V! s% ]. d
  1. #===============================================================================8 m9 A. T1 m& w7 B
  2. # MOG - s Hud 1.0      
    ) O9 t: b$ q( [6 H
  3. #===============================================================================% h, }( M0 C4 B- x
  4. # By Moghunter
    # T: E5 X, l9 U1 f
  5. # http://www.atelier-rgss.com
    ( B4 W$ W3 @6 d! n
  6. #===============================================================================
    , t! @0 S+ j( T0 N) C" Q
  7. # Translated by Calvin624 $ }  H, |$ G2 ^/ j# l) o
  8. # http://www.xasabs.wordpress.com$ v9 C# r3 ^) Z+ T+ i% X
  9. #===============================================================================
    6 j5 \! A/ G5 ]1 c/ l% _, X
  10. ###############################-DESCRIPTION-##################################### r0 ?- d/ n2 e1 ]  e
  11. #===============================================================================8 L# m; v% X8 M8 e
  12. # Personal HUD – displays the HP and SP below the hero.6 f  e1 c# P' D+ e
  13. #===============================================================================9 Y3 q5 E# W$ E& C+ z0 U& L
  14. #3 _, b8 q4 [- j2 J  P4 t4 t! g
  15. # Graphics required:; v( k1 _" [6 o) I. i" g2 f1 L% L
  16. # 2 d8 G! h! [! M  j+ m
  17. # S_Border_HP_Meter.png, d. b: e, q& j4 N5 i) i2 k
  18. # S_Border_SP_Meter.png
    2 g" z5 S( V0 F8 u: C: j: o
  19. # S_HP_Meter.png
    3 A( \% \: T4 k" a
  20. # S_SP_Meter.png3 O( a2 K4 A" P
  21. #
    9 l# V) u- K" v. v4 x
  22. # All images must be in the Windowskin folder.0 D, L% r! d1 f: [2 F1 N% w
  23. #0 Z6 Z/ T& ?9 ?) h. w; i: C$ Z
  24. #===============================================================================" H+ v" L5 E. n4 x0 Z( o
  25. module MOG+ g1 @# Y3 E( x1 v2 k, \7 O
  26. VISIBLE_DEF = false  4 A' H5 @* N4 U6 E: G
  27. # Show HP meter?/ ~- w( I; |: Y" D
  28. HP_HUD = true
    ' j/ R6 y( K. i. B
  29. # Position of the HP border; ]' Q4 s1 X  |7 R; A  N5 r
  30. S_BORDER_HP_METER_X = -2
    ) h: D3 x5 `' x  [
  31. S_BORDER_HP_METER_Y = -2  2 d9 |2 k' j* x) D( V8 O7 P, ?
  32. # Position of the HP meter) X! Q$ N) w4 y
  33. S_HP_METER_X = 00 V( T& U8 l0 Z% G4 Y! V
  34. S_HP_METER_Y = 0
    " H3 K" J- y0 O
  35. # Show SP meter?
    % m  q6 r7 M$ D/ U
  36. SP_HUD = true/ N% T5 u% \6 @6 O4 g1 n
  37. # Position of the SP border3 @+ `) X* s, Y/ J0 ], c1 c/ ~
  38. S_BORDER_SP_METER_X = 0
      D; ]& ^& \" d7 O6 N
  39. S_BORDER_SP_METER_Y = 10 / @, S1 C9 I5 j- W
  40. # Position of the SP meter
    5 l! R6 ^; d  I2 \
  41. S_SP_METER_X = 0
    3 V& u* f2 x+ \. N: z. Q
  42. S_SP_METER_Y = 10
    + h3 ~! \1 g) `( Y. B! I+ g
  43. # Switch to disable the HUD
    $ N& A1 c" |& Z' R) @' F
  44. DISABLE_SHUD_SWITCH = 5# o2 z& [& [# ]2 k
  45. RANGE = 20
    9 |3 H* ^8 {4 ?, U) F* w
  46. end. @' L' X, c6 I; P
  47. #===============================================================================
    , P# O+ F* x9 P& v* e
  48. # S Hud
    5 f; n7 s2 @7 c) u- b
  49. #===============================================================================
    7 k7 ]5 n% D  a1 N4 F& s
  50. class S_Hud < RPG::Sprite) y5 o6 z7 d) S$ w
  51.   include MOG
    & t( x$ F  m" \: t/ \# ^7 ~& {" A
  52.   #--------------------------------------------------------------------------
    , }' E; l9 S- \, g) n
  53.   # * Initialize7 R- G  r* {5 p5 F; `
  54.   #--------------------------------------------------------------------------
    2 k; p/ z" G; b) B
  55.   def initialize(enemy,viewport)
    ' z' U) F+ k, h9 V! k# k- W( E- x! R
  56.     super(viewport) + p; b1 G# F8 J3 S
  57.     @enemy  = enemy7 @( S# X( Q1 }. b1 O  Z  R, B
  58.     @battler = @enemy.battler
    / a* o1 n0 q, G* }
  59.     @old_hp  = 0
    $ q/ Z  m9 D* {, a# y
  60.     @old_sp  = 0
    ; j: g* k7 K' j! T! e1 F
  61.     @old_vis = false+ w. C% _) n, V* e8 h; I; @
  62.     self.bitmap = Bitmap.new(100, 100)
    2 x; ?. p* g& c# N7 I- J* I
  63.     self.visible = (VISIBLE_DEF)#false* }9 I' R1 `5 O9 q( c
  64.     self.z = 100
    . k2 m+ G1 E7 m! f3 r9 m8 u
  65.     #HP Border -------------------------------------------------------------------6 M1 g5 K0 Q4 N3 T
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    1 H; }, s. K6 `# w4 n. A/ N+ x3 _: p
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height), K4 E) C3 B! d2 H. Q, a) h
  68.     @layout_sprite = Sprite.new) L* V% f# c% Q" M( Y
  69.     @layout_sprite.bitmap = @layout_bitmap$ `$ ^) Y! y# G/ c
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)3 [! J( F5 M- f
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    : I6 _+ o7 ~: _2 x( v7 q
  72.     @layout_sprite.z = 5001
    : L! \2 Z3 ^  F; v8 ?5 v
  73.     #HP Meter ---------------------------------------------------/ ?$ G0 i$ p8 ]7 X& M- p+ q
  74.     @hp_flow = 0. Z3 {! G6 {% I) `# N  ~
  75.     @hp_damage_flow = 0# O3 L$ G5 K! |( m/ u6 E+ Y
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    ( Z2 m- v* V) E' s& U& c
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)# p* j+ a1 x. U: ^6 V1 F
  78.     @hp_range = @hp_image.width / 3
    ) f$ U9 G: z! v0 ^% O$ F! ^
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    , N( D+ F6 J- {0 O* u0 {
  80.     @hp_width2 = @hp_range / 2! X, d' \* E1 |8 l
  81.     @hp_height = @hp_image.height / 2+ ^6 R4 f$ w# R! m% N& b$ _& p- I
  82.     @hp_width_old = @hp_width( G" J/ M' Y4 h7 ?5 M$ G7 H; w2 ~
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height). a* j$ e5 l  a9 p- _  g
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) ! W) [& }" A2 }9 ~, W7 T
  85.     @hp_sprite = Sprite.new1 p. F1 f% q- D' b7 Z0 n1 }5 |9 d
  86.     @hp_sprite.bitmap = @hp_bitmap
    % H# i1 r9 j5 x, W
  87.     @hp_sprite.z = 5002
    4 _0 n8 U( f! P8 L" t! f  \+ y
  88.     #SP Border -------------------------------------------------------------------
      O+ ?) k5 K& I- `- ?$ u! s
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    1 X& [4 i8 V( f% ~
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    + |$ U/ f" X# @& x) G
  91.     @layout2_sprite = Sprite.new6 p6 J% D7 C0 C  W  @
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    ' |# j, U( i- B4 \9 F5 J
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    ) |2 t9 r( e7 u$ D7 Y
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    2 x% U: e7 v4 N) c0 [
  95.     @layout2_sprite.z = 5001   
    - j! s9 P6 e. F
  96.     #SP Meter ------------------------------------------------------8 Q/ d2 v3 ^) R4 R$ l/ Z# X' j7 v
  97.     @sp_flow = 0
    ! B7 t) }+ e( @6 |$ l( S' Z
  98.     @sp_damage_flow = 0( p; l' J" H' ]3 N- D7 W
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    5 a9 H( r- |8 h0 r- d+ s7 o
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)6 ?+ x  B4 C, o, b. K/ z
  101.     @sp_range = @sp_image.width / 3
    # \3 \! ^+ }4 m2 ~. |: p7 m
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    5 I; u% ?$ z# k& O; E+ `
  103.     @sp_width2 = @sp_range / 2
    4 y- e. L7 U. Z  `; \
  104.     @sp_height = @sp_image.height / 2
    " I# B% I$ C1 A' W" M0 b. C
  105.     @sp_width_old = @sp_width5 h% w6 c- t. C8 u- h
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height), T4 X" ]4 h4 a+ Z& @
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    + F& |$ Q" T; O0 w  E8 \5 ]
  108.     @sp_sprite = Sprite.new
    ; z4 c$ S! X% v
  109.     @sp_sprite.bitmap = @sp_bitmap, H# _3 {% p1 a3 u8 [. g
  110.     @sp_sprite.z = 5002
    2 M4 i6 v2 ~/ ]: O* ?. l- R: i
  111.     update, Y4 o9 H0 c$ B, O
  112.   end. X' F5 l9 u' U! t0 `3 W8 N
  113.   #--------------------------------------------------------------------------
    9 O4 ~+ N! A  w) B' g) C/ h; U
  114.   # * Refresh
    0 s' t4 i* G+ a3 U
  115.   #--------------------------------------------------------------------------
    ; h5 z. u/ `8 V1 }/ N1 e& j  C
  116.   def refresh
    1 t# H# r! \/ ~- I5 P: _8 ~0 o
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible  c# _( O3 N5 j+ \- _# |  N8 w
  118.     self.bitmap.clear; s* y7 l% N8 B5 n# l
  119.     @old_vis = self.visible
    5 y1 Z9 k6 Y2 P: l) y" j8 r1 L- V
  120.     @old_sp = @battler.sp% c+ t9 R7 R5 f; N! X: ]
  121.     @old_hp = @battler.hp
    & d4 z5 Z* F, Y" ]9 M
  122.     hp_flow_update: L6 U5 ~# I+ j. `+ i, _' F, c# v
  123.     sp_flow_update
    - ^- u4 z) U4 r. P0 ]
  124.     hud_pos_update6 T8 s  I- _) R4 N$ U
  125.     visible_update2 k5 V0 f' N: ]* R4 \$ Z2 |6 P
  126.   end  X; ?# i7 ~5 z
  127.   #--------------------------------------------------------------------------$ n; H; Y# J4 ?- @- r4 V/ l
  128.   # * Dispose
    5 R/ r( r6 y, p- Y* W1 P  I) F7 B2 G
  129.   #--------------------------------------------------------------------------6 X% W  t% D" f
  130.   def dispose3 b4 j& Z  h) S" w! s* @
  131.     #HP Meter Dispose8 [( ~- ^) H# ]; j* S# n; W* T# |; b
  132.     @hp_sprite.bitmap.dispose
    5 a5 X' N6 Y& g
  133.     @hp_sprite.dispose5 n" P. V" g. q( ]7 e
  134.     @hp_bitmap.dispose; ~9 {4 a4 x- {
  135.     #HP Border Dispose7 s4 C+ S. ]2 B
  136.     @layout_sprite.bitmap.dispose' H5 x# ?. o2 R; S. R$ R" o
  137.     @layout_sprite.dispose
    ' c5 Y9 u4 n$ x7 A: k* C8 B
  138.     @layout_bitmap.dispose
    * Q7 {* ?. v+ m' W1 E1 v. ^1 v
  139.     #SP Meter Dispose6 s9 T- J. j3 q. s$ h  V% Z
  140.     @sp_sprite.bitmap.dispose
    - d( k. T# u/ c  k: t  a" V
  141.     @sp_sprite.dispose
    5 w+ i, Y" L1 M  Q: n# k0 P, J8 R. a5 W
  142.     @sp_bitmap.dispose- ?6 o' h/ H8 K; j# H
  143.     #SP Border Dispose
    $ ~6 G0 _7 t5 Y0 Y5 G* t
  144.     @layout2_sprite.bitmap.dispose
    - {1 W# M; z/ M( Y3 p
  145.     @layout2_sprite.dispose
    ; y) S& p- b7 F$ z3 ~3 u
  146.     @layout2_bitmap.dispose
    : P! `4 z1 V5 G9 p1 I0 D
  147.   end( f! o4 T  d. B7 A) c9 D
  148.   #--------------------------------------------------------------------------  _: ]! `. d9 n4 C  m: P9 {
  149.   # * Update( E4 Y$ c; r6 P# g( J6 x
  150.   #--------------------------------------------------------------------------
    : N, f+ p# Z- E: e# _* ]
  151.   def update' D) z3 @* `) g: c
  152.      @battler = @enemy.battler
    . {* M5 F8 s1 K2 Y- n# X( n
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    ' k! b. s, h/ U5 j1 B
  154.      if self.visible
    ! d0 n1 L/ E5 c# x! J& A
  155.        refresh8 y' C. ?- K9 E4 n' L4 ?
  156.      else
    8 X+ W  }' Z! t/ A0 B* q
  157.        self.bitmap.clear
    - Y9 [/ Y* w- M% I0 j
  158.      end9 K4 ~1 j4 g! ?- k2 L7 L$ z
  159.   end
    + k$ {- [, R  X: D5 h$ |% ^2 A0 Y
  160.   #--------------------------------------------------------------------------7 }$ M7 h6 h4 X: J: b
  161.   # * Visible Update
    / ~9 f" b$ \  d$ I  I8 Y: I
  162.   #--------------------------------------------------------------------------1 b$ W5 r9 {" X/ L. b' c
  163.   def visible_update
    # l0 B5 r# D# y
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    4 R( x7 B6 D2 Z$ B
  165.        @hp_sprite.visible = false& ]( x2 j+ X  O7 L
  166.        @layout_sprite.visible = false* d+ L( F6 L1 L% T- N$ Y- G
  167.        @sp_sprite.visible = false
    # Y  b+ u8 x8 q2 ]" y. L
  168.        @layout2_sprite.visible = false# \9 _% A1 X9 d1 K% S
  169.     else( \( y1 F' a9 [5 m. o- _
  170.        if HP_HUD == true
    ( \0 N$ K% j6 I
  171.          @hp_sprite.visible = true
    & b3 Q( M. J$ C: D5 Q( ~* \
  172.          @layout_sprite.visible = true
    7 I) r1 E( |( W3 {7 G
  173.        else
    * n, x5 Q/ {7 `* U7 A
  174.          @hp_sprite.visible = false
      t. w' W3 I9 Y2 t2 p
  175.          @layout_sprite.visible = false
    3 w% ~5 N1 L- Y5 B( z" i
  176.        end  
    ! N( z0 `) J0 J. U2 B" {
  177.        if SP_HUD == true  m, A; V. Z3 j- Y6 S+ o5 T5 o
  178.          @sp_sprite.visible = true& E9 R- m9 _- b$ x: t% I" t& \
  179.          @layout2_sprite.visible = true) b3 u* l9 Z8 g8 g4 m) K- o) h' n
  180.        else
    & ~9 w! i6 r2 A7 K$ S
  181.          @sp_sprite.visible = false7 ]( J3 ?( T5 m2 f
  182.          @layout2_sprite.visible = false. }7 C) ?5 m6 h7 h; s
  183.        end
    4 ]: z* ~% i6 r0 I1 g% B
  184.      end  
    9 B/ r( u; R' ]8 b# W6 H
  185.    end 5 p- \. E! Y' ?+ [6 n8 k
  186.   #--------------------------------------------------------------------------
    2 F0 I5 }1 L0 g% ?
  187.   # * Hud Pos Update7 Y0 j. W% K+ b% A2 L
  188.   #--------------------------------------------------------------------------
    ( P3 E* A9 l9 Z
  189.   def hud_pos_update. M0 i8 N$ _/ L/ w5 f  I
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    6 K  x) V# e- ?8 D- [9 ?
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    ( Q1 c3 l* l; \' Y, E
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    ) ?# t7 t  D$ C
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y + X! P) l7 {( y* z4 A
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    6 T8 V; b) ]& x+ g' C8 \
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  6 s. R; s' w4 U7 V" L+ c
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X3 Y$ u* N9 Y; P' w, W3 P
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    ) g( g, x3 P1 B
  198.   end  
    & A' F# k+ E3 \1 [. v) T
  199.   #--------------------------------------------------------------------------2 j: l( ]) T; O: z' j
  200.   # * Hp Flow Update: D% W# g, F; Y2 v) H8 d" _
  201.   #--------------------------------------------------------------------------
    + w' _' y# `+ W  O7 q0 X# c7 k, K
  202.   def hp_flow_update
    6 v, r% k, a2 Y& P
  203.       @hp_sprite.bitmap.clear
    7 r& d" m% ?, p: F. s% ^1 T* m2 E
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  5 V5 Y9 Q) r. y( F8 w' M
  205.           #HP Damage---------------------------------0 Y% f0 q7 d4 d3 b- F2 G
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100" a0 [) l1 C8 ^$ a
  207.           valor = 0.5 if valor < 1          $ R1 J, ^% m$ ~+ n+ ?4 C+ I3 U4 |
  208.           if @hp_width_old != @hp_width3 K7 k% A! g  x* v% y, `4 T
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    $ L- [% v+ o. H' v
  210.           if @hp_width_old < @hp_width 6 {* E8 l" N+ }7 E) R8 N8 `
  211.              @hp_width_old = @hp_width
    - K/ h7 `9 i+ z9 K3 W2 p1 F7 u
  212.           end      
    ' ~) t, n8 `- ^* @' z; v
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    3 L( D* b# H( V" Y  v6 O4 Z" b
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    ) c/ I! G* q) s  ]# d) e- L; U/ O' p( m
  215.           end        # y, _+ c- P' e9 S
  216.       #HP Real------------------------------------
      d+ l4 ~- L; A# D3 h/ m$ r9 |; n
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    ) s& H/ ^# Y/ H3 B( {
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          & V0 g5 b' f' j0 j* R% W, [
  219.       @hp_flow += 2  
    % T/ @/ P" R' y8 s4 y1 }
  220.       if @hp_flow >= @hp_image.width - @hp_range
    4 x1 m8 Y; o+ a( B: d2 p
  221.          @hp_flow = 0  
    ) g: }! {! F: t+ O0 ]
  222.       end
    ' m& l. m' J. E+ ^( b; `- E& [
  223.   end    - J9 G7 s! S) V+ l6 I4 B& n
  224.   #--------------------------------------------------------------------------
    , r) I( \' F$ a5 H" t2 k# p/ d7 L& c
  225.   # * Sp Flow Update: B2 ~" V6 b" V! u% J
  226.   #--------------------------------------------------------------------------
    ! Q3 [8 w2 r0 B: X' v6 p1 H
  227.   def sp_flow_update
    & J7 L! b6 L; ?! h
  228.       @sp_sprite.bitmap.clear
    / [* p! X6 U0 t; _
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    2 k0 x% _, v/ `
  230.           #SP Damage---------------------------------, h/ Y- r% w! x3 r
  231.           if @sp_width_old != @sp_width
    ' o8 R1 C, D0 O1 j+ F' K
  232.           valor = (@sp_width_old - @sp_width) * 3 / 1004 [+ E" w$ a& D- [. |1 s2 k
  233.           valor = 0.5 if valor < 1              3 H# I3 E* o7 N, _1 M3 e4 k- `
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  # W6 ?0 M# Z5 O; K6 z4 B
  235.           if @sp_width_old < @sp_width
    + o5 b1 _5 i1 l+ W: ?6 R7 U5 d1 e
  236.              @sp_width_old = @sp_width# J' _8 E; ^" q% y- j
  237.           end      " o. I. P8 i/ f
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)6 [/ a8 @: U4 s% }$ _
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
      g) Y$ p, I6 S, H
  240.           end
    8 y$ Q2 v6 V' r$ r5 M5 O
  241.       #SP Real------------------------------------: l  l; z1 R9 e; ~
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    ! y8 y4 I! J* N, b
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)* g* E& K* Q. [  i4 i4 k
  244.       @sp_flow += 1  8 F9 s) Y  }* z( T
  245.       if @sp_flow >= @sp_image.width - @sp_range
    ; S: Q3 d. r* U/ A; f7 u- s
  246.          @sp_flow = 0  
    9 L# R- L& a- b+ D+ o1 \) |
  247.       end
    . P/ c: j: h$ d
  248.     end            , t0 Q1 e/ ~: J" |
  249.   end/ T6 a* c! K0 @0 v8 d) r
  250. #===============================================================================: r" v0 R8 o& u! ~5 t/ A
  251. class Sprite_Character < RPG::Sprite
    ; o5 p" Y# M) b
  252. #-------------------------------------------------------------------------------
    4 S2 }9 f2 {9 g$ }7 q
  253.   alias :xas_emini_hud_init :initialize$ ^  \* t: M4 j; E
  254.   include MOG4 e% I, \- z* G, C/ ?
  255.   def initialize(viewport, character)
    3 i7 a+ j5 m& Z# _0 G5 j9 f* n
  256.     xas_emini_hud_init(viewport, character)' ~- ^1 }' }$ w+ Y) |8 [8 I/ Q
  257.     @viewport = viewport
    7 S; J. T3 I1 _2 ^. T7 t# y. i
  258.     return if @character.battler.nil?% W* W" ]9 t/ ?) H* X* O: k! R
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    # u: c) b7 u: J& m' Y* y
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id). c3 o/ O! s" L
  261.     return if @character.battler.is_a?(Game_Actor)* \& P5 y' _- N4 `% c8 T# X
  262.     @bars = S_Hud.new(@character, @viewport). ?, ~# j" b5 M
  263.   end. s% n9 K! n* ^7 U. K% H. [- Z
  264. #-------------------------------------------------------------------------------
    # r1 Y1 R2 E6 a
  265.   alias :xas_emini_hud_up :update
    ; t/ e4 X) P% C3 G7 D
  266.   def update
    ' k& u4 O' f% z0 ]3 I$ E" O
  267.     xas_emini_hud_up4 H4 F# o! A; P; F0 \; D6 X" k
  268.     return if @bars.nil?
    9 S( g8 J& u! x0 E4 f1 c" [
  269.     return if @bars.disposed?" \9 d, Y& B; z
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    6 l) R& e7 y3 P$ o  P5 m. @* G
  271.     @bars.visible = (dis <= RANGE)2 w9 l# r! T6 W' i2 z2 V
  272.     if @bars.visible& p; f; p7 Y1 Q; a% N9 [& X# ?
  273.       @bars.x = @character.screen_x# - @cw / 4
    9 U4 J" t) r- V
  274.       @bars.y = @character.screen_y# - @ch / 4: N4 n# Z; c. z5 o' ]
  275.     end
    - r6 w) S* t$ \$ W, I1 y. F
  276.     @bars.update! }% W! P6 s( u- Q
  277.   end
    5 v! Y! _: n! b! N; \
  278. #-------------------------------------------------------------------------------" Q4 L- e  U# U) k8 |
  279.   def dispose! M3 K: r: R( ^8 w6 Y9 b
  280.     super
    0 S3 o* P$ |) D% g3 a8 M+ r
  281.     @bars.dispose if [email protected]?- x# }6 a% |1 j! c# e) @! [
  282.   end
    , q8 l; q! o3 g
  283. end3 J. S- M; E, @/ o) p4 d) \5 X
  284. 9 z1 }$ G+ M9 r# F) _9 l
  285. $mog_rgss_s_hud = true
复制代码
9 s# [+ V7 `2 h7 ]1 X9 W' [! T
! [) f9 |; i1 H0 J+ W
6 T8 L7 J& [4 ?& B+ _+ @
上面所說出錯的203行內容為
8 L1 [' G  H1 h- l+ g2 |' I@hp_sprite.bitmap.clear
$ c$ |) \& I  d, [; I4 W) {) ^7 T9 \  N" W: Q4 h
想知道怎麼解決% P7 Q( p, C3 X8 t: p
3 z! y3 G% i$ Z4 q- h
該腳本支持3.82
* Q! I9 B- e+ \  O( ?3 `" k8 Y
$ r- M% u% u# ?6 g下面是圖檔,要塞在Windowskin下
  A; c* y* w+ F- g) l, t
2 p. R9 u# [5 e S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) # R& I$ V8 \- C6 U9 u2 [1 q- n

0 Z( w5 w* _& T8 g/ V6 K4 s/ E) i: h, r3 ~2 N+ R2 z
! a3 ^3 b/ {, u. q9 X* v

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适# V" q8 w; X! l/ @  b
结果尝试刷新了一个已经释放的图形
) Y/ J& {. X0 [# N- F& `7 `) B8 G0 \' ?/ @* u: O! M- p! D

" ~3 }* S+ k. d) ^. l: _7 v- G
+ b! H6 B' _# x7 D) H  r+ F虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    6 p& V* ]9 e1 e4 @/ ?! Y
复制代码
不要后面那个条件貌似就没问题了。
0 B+ A* I. S* u" ]9 X
& w* z5 F5 R* m; B8 Z9 t, J! ~* `1 _) f% j

. r4 D( c' O5 M; @, b
2 Q7 y& r. ^' s: I5 o. l( ~
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
" t3 R2 u  u" a6 O  u' O) F" t6 j貌似是释放的条件不合适
, f" Q* J8 p! p+ G& D* \: O结果尝试刷新了一个已经释放的图形
/ M+ V; ], M+ `5 Z) n5 a4 Y+ K
把後面那個條件弄掉後,的確沒問題了; w9 y5 n0 d  F* q& e+ `
目前從關頭打到關尾結束都沒再彈什麼錯誤
. J! W* [  j9 Q非常感謝( G( M, c/ a1 @/ q+ _; U/ n! N  h  X
  Z# t8 N! Q; L( S$ k  u, m5 U- R
不過我是參照著別人腳本改的" |9 v% r5 K9 V1 W! @5 m  m
他寫的條件式也是那樣,但我用他的沒什麼錯誤  t2 G4 V( B( k- E5 m
不知道是怎麼回事
" [. N# r. H' K* E$ H+ b是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的9 I8 Y& ~: g6 |/ y
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events9 Q# A0 ^; i5 |# o0 n* Q) q
嘛..这个数组吧..我在以前试写队友的时候关注过一点
" y0 ^3 G0 W" P' _4 X6 e+ g7 J$ \不知道XAS内部对它做了什么手脚还是为啥,
5 z; q% H; U7 |  U7 W% b4 \总有那么一瞬间,没有被消灭的敌人事件也变成了nil$ l- B5 ^  F& z# s+ ^; s$ W5 N

& y9 Y; b+ U9 j$game_map.events.values[@enemy.id].nil?8 p! P4 E& [& w0 _
因此自然而然的返回true并符合条件把图形释放掉了5 y# w( ?: l" O) [6 n  ?

2 a7 c5 n  v4 I" k4 Z6 A8 T+ A8 D( vLZ应该有注意到吧,4 B5 \1 @4 P9 {0 {* g, `( i( z
我测试的时候发现报错前几帧,图形会消失,
% I' y; l3 t, L; o# Y1 k/ L( U5 Y应该就是“误以为敌人被消灭”了。
( D6 a: F( c- b3 v' O' ~( k: F- \0 T3 U* \
受限于个人水平,至今无法找出$game_map.events的真相.., Y+ G$ X  `- u  G& _  l6 f
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 ' A, v* z9 r" B" ?
$game_map.events9 d: J! s3 y# Y& M( Z
嘛..这个数组吧..我在以前试写队友的时候关注过一点
' L+ a, k$ n' F$ ^3 c" g  U不知道XAS内部对它做了什么手脚还是 ...

; ?) `6 p' D. x- v當初我把那個條件式看了三遍,都不覺得他有什麼錯
5 s& C" {! I2 }! k8 N2 e* U0 k原來還有這麼深奧詭異的事XD( Y/ ^9 a: [% S$ x
9 X( l8 P, e2 U( q1 E2 b# y
錯誤發生前的確會有圖形沒顯示出來' T. o0 X+ f% ], h
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
, ~+ [5 I5 O) o沒想到居然是詐屍了XD6 r! n0 e4 \! E  H3 c. g  @
. h2 c  G) ]3 T- u
不曉得3.91有沒有修正這問題...
7 h( l% A/ h# f8 H不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。/ \3 q/ E4 W8 L( @% S) V0 M
" q) Z0 v+ K. e. l% y6 P7 J; D
的确
$ m2 Z! {* ?6 z3 O3 v" z" z用惯3.82之后想去整3.91觉得压力甚大..
& m, @6 l3 z4 J4 u' R5 U. @干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12464
在线时间
21841 小时
注册时间
2010-10-24
帖子
308
7
发表于 2012-10-14 22:09:20 | 只看该作者
LZ是触手,鉴定完毕。
回复 支持 反对

使用道具 举报

双子人

梦石
0
星屑
3195
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。
! B( u6 `3 y0 k& F7 W- ^# z  }- ^8 F& `: \( }3 U
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2024-12-26 18:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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