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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
0 S0 r+ H7 s2 V  r$ l) J會在每隻事件怪物的腳下顯示
. S9 E/ S7 d2 W) s4 k: u- }0 s問題是不知道為什麼
+ P) X+ V7 q1 T0 E4 M. N' l. L有時打怪打一打會跳出* @4 k/ |0 Y# K; J$ j
---------------------------
# ~$ n" n; |' L- oXAS
( B, y& K5 H( @---------------------------
" j6 i% z9 ~, S脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
* [$ o2 s/ H; t3 i& R& I( u+ q: [9 t; V& F7 h/ ~+ ?" n* ]
disposed bitmap8 I6 h: t  |2 U- K1 s) r
---------------------------) a8 ^7 ?1 R. \5 B8 p
確定     b# Q' z& @8 m2 }
---------------------------
6 s# H0 a3 F+ Q& @6 c9 P4 t) j& J* T4 q
' b9 g/ l! e$ b. x這是腳本- i: Q, S2 T* {6 ~* S  e6 @0 ?

. L- X* B/ L0 T7 A/ g
  1. #===============================================================================
    % R- p2 @+ Q$ M8 Q! ?0 i/ ~8 i1 q
  2. # MOG - s Hud 1.0      
    4 V0 e! h/ U* u5 z8 D
  3. #===============================================================================
    + R+ M* S, ~8 C2 a9 f3 D& Z. q
  4. # By Moghunter ( t  ]7 Z8 n& s: E3 j3 u" B
  5. # http://www.atelier-rgss.com+ Y" ~3 D% I9 c8 B3 O
  6. #===============================================================================9 }' F9 p, u% _$ q. B9 E+ |* N+ m
  7. # Translated by Calvin624
    ' Z6 H! @1 v7 |
  8. # http://www.xasabs.wordpress.com+ C4 i$ ~( q( E) L1 G0 @8 d/ L
  9. #===============================================================================* x; O! h  h% R6 j
  10. ###############################-DESCRIPTION-####################################
    : J8 _# u- c9 k) J7 C; ~
  11. #===============================================================================* @2 L, b1 H' Y$ Z4 a% ?! z* j
  12. # Personal HUD – displays the HP and SP below the hero.
    : P% |7 y7 i% N9 d  S4 X  U
  13. #===============================================================================7 o% e( J1 [: D' I) I5 w" |* W
  14. #
    , ?' e6 @. S. C& F% t8 Y9 m
  15. # Graphics required:
    8 O3 E' Z2 h+ X- {
  16. #
    7 N8 s3 J7 f0 ]" [. `5 w
  17. # S_Border_HP_Meter.png3 R4 _! d$ G1 C) i: t8 e# g4 p
  18. # S_Border_SP_Meter.png2 F3 c0 D; g9 ]1 I/ t. n
  19. # S_HP_Meter.png2 {; |) I5 O# O) P$ a, y' O
  20. # S_SP_Meter.png8 s1 E; Q2 S1 x" g  k$ O7 L
  21. #2 }. G4 \: f5 B( S
  22. # All images must be in the Windowskin folder.- g+ l; q: ]% b$ ?7 p0 Z
  23. #
    / V2 c* W- L5 u
  24. #===============================================================================% O1 k* m/ |9 b4 ]. |" A6 G! s+ D
  25. module MOG
    ' k# K% C3 t0 p" `
  26. VISIBLE_DEF = false  ) {+ K& N! c' F$ D5 f& `9 {' j
  27. # Show HP meter?
    + |+ }+ H7 z$ Q0 Z& c  `
  28. HP_HUD = true
    ; t# u! i$ L7 z- n9 I
  29. # Position of the HP border
    - @7 X5 \& |# n6 T8 l7 `! Y) A0 H
  30. S_BORDER_HP_METER_X = -2
    & i( Y, _' v( }  V, p
  31. S_BORDER_HP_METER_Y = -2  / l  e, b$ u- H% N2 j  R0 r5 B
  32. # Position of the HP meter: ^8 o5 E$ {4 y: ]0 ?2 @% |
  33. S_HP_METER_X = 0' f) a; f2 ]( E3 d% K2 o' A# x
  34. S_HP_METER_Y = 07 _" J1 d: r3 k' d- O) i  E
  35. # Show SP meter?. b" e9 z( c, g) Z1 r6 r: N
  36. SP_HUD = true' q! @6 S) b3 u7 b4 O, [) ?' O
  37. # Position of the SP border% s& I7 h" U: t6 Y
  38. S_BORDER_SP_METER_X = 0: j' k; e1 S; E
  39. S_BORDER_SP_METER_Y = 10 * M; Y* m0 a) b) L* |" S; J
  40. # Position of the SP meter
    / J8 x2 O& S# j; ]
  41. S_SP_METER_X = 0
    ; _  \5 T: d; m: F
  42. S_SP_METER_Y = 101 b7 v% K1 V: V
  43. # Switch to disable the HUD- L% P/ X: ~4 _- m  T7 @) g
  44. DISABLE_SHUD_SWITCH = 52 L( Y9 n  w- X& P
  45. RANGE = 20
    : C4 N# j4 B$ G0 D
  46. end8 ?) L9 \* ]! {7 Z
  47. #===============================================================================
    4 z- A4 a/ r3 A1 i# c9 x5 ?: E/ @
  48. # S Hud
      B2 k" o) \: v0 e( E
  49. #===============================================================================
    ; c4 x+ Y; [8 y1 v
  50. class S_Hud < RPG::Sprite# C, H7 ]: A" k9 U
  51.   include MOG
    , l* z! ^, v. C1 ^2 H  n0 r
  52.   #--------------------------------------------------------------------------
    ( z0 ~7 g% j; _* u' d9 e7 h
  53.   # * Initialize" Q; p. t8 ?1 V  X  h0 V& G
  54.   #--------------------------------------------------------------------------
    ; ?0 x1 X, S2 ]5 }) ^$ C0 v# I
  55.   def initialize(enemy,viewport): C1 q/ A! a# b8 e* y# u
  56.     super(viewport)
    5 K& X4 l4 Z0 Z0 T1 ~, i5 h: z
  57.     @enemy  = enemy
    % c' G! i* I" |' w! |9 P
  58.     @battler = @enemy.battler) J# X; I1 O8 C. O2 ?! v; A
  59.     @old_hp  = 0
    % f, Y5 L0 Q1 p
  60.     @old_sp  = 08 }9 w8 ]1 m1 z
  61.     @old_vis = false" O0 i! H- l8 u& i2 t/ m$ t* W% l
  62.     self.bitmap = Bitmap.new(100, 100)
    6 C- ?9 u. o" V7 x* V
  63.     self.visible = (VISIBLE_DEF)#false7 t' }7 e  _2 J' i( `2 l0 J; B- w9 c& x
  64.     self.z = 1008 D- |9 }( `! W3 C
  65.     #HP Border -------------------------------------------------------------------
    7 y, }5 y8 y5 H0 l! M
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    : e9 z4 `( c* U& D- c$ \
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)5 ^& J9 y/ M! |& ^# n* |
  68.     @layout_sprite = Sprite.new* O4 I# v2 f" M) ^# W* Y+ O
  69.     @layout_sprite.bitmap = @layout_bitmap
    / l. K6 }% _; y8 `
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    - T( g1 i" V9 @  E: |2 f
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)        f7 K, c, X5 Z
  72.     @layout_sprite.z = 50013 A% H. f# P4 y- U
  73.     #HP Meter ---------------------------------------------------
    2 \' \% [3 ?) g: C  X+ m2 _2 @; U
  74.     @hp_flow = 0
    3 M/ A/ Q% d+ \" _
  75.     @hp_damage_flow = 02 {- R$ N1 a  j; z+ d5 M, I+ S
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    ( L+ m2 ~% k8 N+ ]6 D5 C/ G( o
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    ' r0 ]# q+ C9 @3 S
  78.     @hp_range = @hp_image.width / 3& J( D2 W6 O3 h% h+ ^, T1 h# p
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    7 D* v. e- ^) \: l
  80.     @hp_width2 = @hp_range / 2
    * J# N' B7 r$ M( \* @
  81.     @hp_height = @hp_image.height / 2
    ) t8 L# n4 u' I  `
  82.     @hp_width_old = @hp_width, F6 Z* B8 O5 C8 z# x5 T. Y
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    " S  `3 Q0 [# E0 Y# r  N, `$ o
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) 6 b0 s" s$ c1 z: N( k
  85.     @hp_sprite = Sprite.new
    6 F: h6 q! G" V. U2 B" w; X% S5 c% j& \
  86.     @hp_sprite.bitmap = @hp_bitmap( h* @+ M! \$ V1 G. y% l
  87.     @hp_sprite.z = 50029 |5 c0 u: m$ c" X# u
  88.     #SP Border -------------------------------------------------------------------
      Y6 n  e; S: v9 U; ?3 n
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    7 u: \8 o6 ?( d: p5 H
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)3 [% p" }" P# n( h; M9 X5 \* y' ^
  91.     @layout2_sprite = Sprite.new0 U9 |$ h) B/ R6 E# y7 M
  92.     @layout2_sprite.bitmap = @layout2_bitmap" S3 z4 U# Y9 q
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)" e( f1 p) q% h3 C
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    0 `& R9 x( _+ t( c1 Z- r+ }
  95.     @layout2_sprite.z = 5001   
    ! R6 R1 Y% U$ m0 R3 Z
  96.     #SP Meter ------------------------------------------------------& `/ R+ g3 f. h# q% _# E& l) `
  97.     @sp_flow = 0
    4 o4 o( W+ ]2 o+ h
  98.     @sp_damage_flow = 04 a# L; T' {- c; t5 d, z5 W
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    3 f0 Y; T' G8 o
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)$ ?) P: |8 V% P$ y9 V/ W$ k
  101.     @sp_range = @sp_image.width / 3/ s5 M+ u$ f$ G; w
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  # X* d6 ^1 S8 M9 C1 b+ M
  103.     @sp_width2 = @sp_range / 2, p& ?# E: Z% w, ^: W% V* t
  104.     @sp_height = @sp_image.height / 2
    - S( a. e, \: n0 I( x
  105.     @sp_width_old = @sp_width$ c1 R( m. N4 _- L  ?1 d- k
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    8 \: r. X/ M# t" r; e' `& T1 ~& R
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    6 G' z0 g7 A$ i% v8 D8 O
  108.     @sp_sprite = Sprite.new
    ! c- i+ ?4 w# A- D' w+ h
  109.     @sp_sprite.bitmap = @sp_bitmap
    ( _. I2 Q4 U+ O2 L
  110.     @sp_sprite.z = 5002. g1 S! x) O& m- c( s
  111.     update
    + p9 X1 U9 e7 E0 h
  112.   end: s1 `; }6 {( B8 A7 ~! _: N! i7 [
  113.   #--------------------------------------------------------------------------/ H, Z- l  f( ]6 @
  114.   # * Refresh
    2 Z: Q2 D5 t1 |. o
  115.   #--------------------------------------------------------------------------& W/ I/ |0 J* v9 k
  116.   def refresh+ u$ T  ]" t( V8 @" l  }
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    $ f: h5 Z; H( U/ |
  118.     self.bitmap.clear
    ' G+ l! u* ~* I6 g' O
  119.     @old_vis = self.visible$ @2 N: |! Y5 d. r  W% s6 A4 H* F
  120.     @old_sp = @battler.sp; J& ~; L2 ^% b2 \3 s" S
  121.     @old_hp = @battler.hp
    & P3 X3 G1 L( ?6 h7 J
  122.     hp_flow_update
    1 H2 C/ \" J6 j7 o- U2 Q" C% F% K
  123.     sp_flow_update
    ) N6 Q2 d5 U; r1 Z3 A
  124.     hud_pos_update# A) V' p' j) [1 n) d! I3 _
  125.     visible_update' i* U' h1 \- a, A
  126.   end
    ( g/ S. `2 L) P2 y
  127.   #--------------------------------------------------------------------------! s1 X. R: f' Y; c$ @  e
  128.   # * Dispose
    & u. f! _4 R9 k% c+ z
  129.   #--------------------------------------------------------------------------
    $ f4 p5 X9 M% r
  130.   def dispose# s0 _2 L8 [. U4 X. k$ b: I& z
  131.     #HP Meter Dispose2 S4 y4 P) ~. J
  132.     @hp_sprite.bitmap.dispose
    . y2 r7 j5 L. W! T
  133.     @hp_sprite.dispose) v: b6 D% ^% G. X) @( a, e
  134.     @hp_bitmap.dispose
    - G- m" H7 X7 Q4 o4 ]
  135.     #HP Border Dispose
    8 V8 N* {- H( B) ?9 |: F( q6 |
  136.     @layout_sprite.bitmap.dispose4 s  _' i) C8 U8 z1 A  `( T: |) c
  137.     @layout_sprite.dispose
    9 g, S7 W" W0 Y
  138.     @layout_bitmap.dispose
    ' K7 ^: F. F) y; {+ H1 |1 ^" X( O
  139.     #SP Meter Dispose3 x/ ^- I8 |' H+ ^4 {
  140.     @sp_sprite.bitmap.dispose! o( D6 `) M0 M/ p
  141.     @sp_sprite.dispose
    : D% ^1 c9 R3 p5 _. \7 k( k6 f
  142.     @sp_bitmap.dispose
    * V, O) G& o- \5 a: Q6 w3 W6 a
  143.     #SP Border Dispose
    - `$ x1 |) u: m6 p7 }
  144.     @layout2_sprite.bitmap.dispose
    $ X# C$ d: k6 `3 s7 h+ h3 G9 Z
  145.     @layout2_sprite.dispose; M8 ^- [; {7 u) V5 E. q
  146.     @layout2_bitmap.dispose
    ! f) S9 V' n2 S; K" n/ T( T
  147.   end
    % e2 ]' S4 k. V' B1 `
  148.   #--------------------------------------------------------------------------0 l" G7 g; q( r/ ~1 N. r
  149.   # * Update. g$ H/ ?: C$ n2 \
  150.   #--------------------------------------------------------------------------3 E! m; X# d. ~# L6 @* ~
  151.   def update
    9 @) K; v) @, S& \3 `
  152.      @battler = @enemy.battler
    7 P* I4 u4 Q  n0 k; O% X0 V
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?: U$ Q9 O  O( a: R: x3 u  `
  154.      if self.visible
    - W  @( _/ U  l4 ~
  155.        refresh. K1 F2 `  \+ V4 R7 f2 x. A
  156.      else
    0 ~0 o% o3 h8 I( |
  157.        self.bitmap.clear
    4 N' R2 H; ^0 C# f9 i& A+ F
  158.      end  k- m. U) @" e# }7 B( f
  159.   end4 S' E, Y; Q' [, w
  160.   #--------------------------------------------------------------------------& W7 P2 x# U; x, h! P- [( I# H6 n2 f
  161.   # * Visible Update
    $ I8 @! F0 t' N9 \
  162.   #--------------------------------------------------------------------------" e3 D+ b( w' f- \% Y; S& B
  163.   def visible_update4 i7 K( ?. f2 S7 A: M( p# z6 ]4 B$ @
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    6 y7 o6 W5 X) {* b
  165.        @hp_sprite.visible = false
    ! e% x+ ~. q7 r1 [6 n$ w
  166.        @layout_sprite.visible = false  @& S  x. {) G
  167.        @sp_sprite.visible = false. N/ ], i. p5 U
  168.        @layout2_sprite.visible = false
    % V- z9 I" \# Z. |( G2 `6 Y
  169.     else
    $ u! K- _* O* U; w
  170.        if HP_HUD == true) a# Y; K' {8 E/ S% W
  171.          @hp_sprite.visible = true
    + P' N) g  U: d* e% R6 ]
  172.          @layout_sprite.visible = true1 g) W6 d0 u: R- P8 c" ?& s
  173.        else
    / I3 O+ F* ^' y$ S) U' O( C1 E  h
  174.          @hp_sprite.visible = false
    % v7 C5 z3 F# Y: N  J! {
  175.          @layout_sprite.visible = false4 a9 f' \* Y$ _! F6 ?+ z
  176.        end  
    ( }& t8 E- J) U
  177.        if SP_HUD == true  G, s  O/ m: t9 z; J) b: T4 D. ?+ G
  178.          @sp_sprite.visible = true
    ) n8 l* O% ?' B- _$ x4 X
  179.          @layout2_sprite.visible = true
    1 E! e+ G2 ]) H1 u7 ?0 {
  180.        else
    7 X; [+ ~  _- K- l, g7 Y
  181.          @sp_sprite.visible = false
    ! k/ {7 i3 Z: c: F3 w6 J
  182.          @layout2_sprite.visible = false' V" K. O3 J6 t3 F. ?
  183.        end ! ~1 s3 E  q6 w* z$ m
  184.      end  
    ; E, I/ I- {' w6 w5 q0 S5 e/ f& {, X) y
  185.    end # |2 N$ J; D2 j; J" m: u- \# r4 Z
  186.   #--------------------------------------------------------------------------
    * W& N( K# u1 q" j' a. L6 n- D& [
  187.   # * Hud Pos Update3 L: T0 |3 d: G) r7 n5 ~9 _$ D
  188.   #--------------------------------------------------------------------------# t' E. N( _% j5 |& f) ]- l: `
  189.   def hud_pos_update: v2 c/ d/ ^. W( _- J
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X6 H9 i5 K/ ^, E% b: ^
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  # [! x$ U' I" ^3 I0 {3 t8 g
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X( L0 P$ w! g# f$ M9 _- B4 n
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    7 k9 w8 ~: A" E  _/ K& p
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X8 d1 ?: z8 ]' F; Z1 b
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    8 L# S2 U$ {! D# y- j0 `# ?1 M
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    6 Z6 {$ L& S5 J* g" c, R2 S' n
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y       S& U, D4 l) Z1 j4 l
  198.   end  : B) X4 l/ C; `& a( M: r' X0 ?- ^8 o
  199.   #--------------------------------------------------------------------------
    + |9 z7 X& x3 H5 }0 G! g0 U2 I+ J
  200.   # * Hp Flow Update
    $ f, L4 O' B3 O2 B; \. d
  201.   #--------------------------------------------------------------------------
    $ N0 m8 A. R# X2 v; m6 T
  202.   def hp_flow_update
    ! [: ]" a' f3 E9 y1 l5 w
  203.       @hp_sprite.bitmap.clear* h8 q; Z: B4 Z& p) y9 O  h
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  # d* L6 |5 P+ h. S* D0 L) A
  205.           #HP Damage---------------------------------
    5 ~& r/ U1 k+ k) r7 a
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    * H$ q( ]" e; z/ D+ a( {
  207.           valor = 0.5 if valor < 1          . X( @$ u9 L* c0 X- u
  208.           if @hp_width_old != @hp_width
    & l1 F) d# I; E+ Y8 b! M* r  W- v
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width    I& T, t/ J; K$ j
  210.           if @hp_width_old < @hp_width " f3 j# a1 ~* v! m# M
  211.              @hp_width_old = @hp_width  [8 q3 {; t) E/ G2 m5 f
  212.           end      
    , `% q: a, D+ ?9 h  `
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    8 x& a6 B: s$ V' W/ X
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    , W* E5 O) C. I9 S
  215.           end        - ]& k+ {4 ]; F9 I% _: t" N
  216.       #HP Real------------------------------------$ P8 E5 D+ j+ @& u+ }
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height): b  F7 ]; s* e0 \
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          , d; H  k# x, @% c# Z& F" \: A
  219.       @hp_flow += 2  : q- k+ C& s" Q4 H# f- U+ I
  220.       if @hp_flow >= @hp_image.width - @hp_range
    , y/ r  F; ~7 o( Z; f$ p$ Z
  221.          @hp_flow = 0  , P4 U" M9 c6 w, N
  222.       end, O# c  l" H2 O  @
  223.   end    : p" B+ ?" C/ U- E) N) `
  224.   #--------------------------------------------------------------------------. S7 N% d/ e, ^( x: Q
  225.   # * Sp Flow Update
    # x8 d. @, j( W" P8 ?% [3 U' |
  226.   #--------------------------------------------------------------------------( A' N4 N6 q! g7 ~2 Q% B" ^
  227.   def sp_flow_update$ W; M" ~( N) b2 ]) n
  228.       @sp_sprite.bitmap.clear
    " D2 {; p0 c+ p& d6 I& C
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    ) d5 X/ K6 o, c% O7 |$ h
  230.           #SP Damage---------------------------------' b6 @4 s5 Y6 g" @+ y  R
  231.           if @sp_width_old != @sp_width1 l2 f+ E2 b/ n! f' ~$ E; z# Q
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100& D, L# c' I# U0 A9 x1 u4 Y) h- I
  233.           valor = 0.5 if valor < 1              5 o) T- M& X3 P! S. L& I  ^1 ]. ~
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    # a* Q2 J! P' V
  235.           if @sp_width_old < @sp_width
    ; i' t9 s) I9 N- y  e: `" ?1 w
  236.              @sp_width_old = @sp_width* H5 B7 z1 k9 J& v2 \1 S- g5 \- i" u
  237.           end      
    - s6 X0 G% u2 F- W/ ]  T( S
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height); n7 X# B  s: j, P, @7 N) b
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    ) ?6 D4 d4 O" \: R
  240.           end
    7 O# d, ]; D. f! w* ?/ f2 f
  241.       #SP Real------------------------------------. B% a- A! G* L1 ]5 N
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)* \$ T, x" @) _9 q
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    9 K, L8 e1 E6 M' n$ M
  244.       @sp_flow += 1  
    7 [3 v7 o, ^3 |) j5 Z6 r- I
  245.       if @sp_flow >= @sp_image.width - @sp_range* I2 c) T6 c; N' v4 D  z* v
  246.          @sp_flow = 0  5 n' K4 L) N' q0 s' r% j
  247.       end
      h% K3 G/ X# ^4 U2 S+ [
  248.     end            
    " t( g  C% {. G3 }. }, Y
  249.   end' A/ ^' r; C. u! \/ D6 T! D
  250. #===============================================================================; N" c1 {4 y% w% o- P
  251. class Sprite_Character < RPG::Sprite$ _. u' _- s% ~3 G1 z) _
  252. #-------------------------------------------------------------------------------
    ' T! H. a% H7 ^
  253.   alias :xas_emini_hud_init :initialize* T8 I2 G; l+ Z/ z5 P: V1 k
  254.   include MOG
    . Z' v( P1 z% D- w. E
  255.   def initialize(viewport, character)/ O0 a6 U& W& [
  256.     xas_emini_hud_init(viewport, character)( R7 D  H0 W3 r9 J/ C# i
  257.     @viewport = viewport
    - e/ B# x" q/ [1 n; F7 X
  258.     return if @character.battler.nil?
    * o. o& V$ T/ }$ l6 a# Q$ L' d
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id), W3 R, a2 c! F- p- A; T% v
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)7 o$ o5 k) z) ]
  261.     return if @character.battler.is_a?(Game_Actor)
    0 f$ s' o% Z6 k2 A( d: f1 e
  262.     @bars = S_Hud.new(@character, @viewport)2 F- [  N: ?; r, C! ]7 Q
  263.   end
    : L  K, j( V/ D
  264. #-------------------------------------------------------------------------------( F7 S' z4 D7 f7 C$ q& i3 Y+ m
  265.   alias :xas_emini_hud_up :update; h: f/ E2 T+ e, e
  266.   def update
    4 H8 U4 T3 z# g* D  K" b4 v
  267.     xas_emini_hud_up
    0 z. I; ]. w: y& ^% y) s  N
  268.     return if @bars.nil?) e) l5 |! c& C% L3 ~9 G9 [
  269.     return if @bars.disposed?
    * V: K& r) a' [5 M, X  J
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    $ F; ~& j& O1 r! V
  271.     @bars.visible = (dis <= RANGE)+ y1 i7 M3 w! K; M7 d
  272.     if @bars.visible
    " `- `0 a, A( a+ T5 Y& u  i
  273.       @bars.x = @character.screen_x# - @cw / 4
      v* D; h& n9 [  q- c8 p
  274.       @bars.y = @character.screen_y# - @ch / 4
    5 L) ~5 c. M3 R: c; E1 v
  275.     end
    * s; d8 k" D0 \7 {! E' M' S' j
  276.     @bars.update
    1 `, E, [8 `% q3 p7 @" X4 M: u& D
  277.   end. q; a1 N, T; \# U
  278. #-------------------------------------------------------------------------------5 _, x; M  _) Z! f/ u
  279.   def dispose+ W& g( |5 V& P0 s8 `4 F
  280.     super
    + J8 m$ I( U" G2 ~3 Q0 `1 q
  281.     @bars.dispose if [email protected]?
    - H' z. l& j2 V' i7 a
  282.   end4 Q' h/ z2 [- }+ V! F
  283. end
    : a* s' \9 X: A! o! v) }. k
  284. 1 Y; n4 A; F& \- a% |
  285. $mog_rgss_s_hud = true
复制代码
) D- v8 [) U, M# ?
* I( M5 r; g  D/ N! E/ t  Q
) O  O6 ~+ M0 B
上面所說出錯的203行內容為5 Y$ r1 ~& D  [
@hp_sprite.bitmap.clear
2 G) z' Q: i" n4 T1 V. t& V1 J- {0 r5 o. M6 y' l- R$ z1 w/ S; S2 ^
想知道怎麼解決
2 T  j' j  K# {2 g4 L9 r7 \/ A3 u- V8 V) G( B- }1 S4 l& ~
該腳本支持3.82
& c( G- W- b. a! I! k
! |5 A0 ^5 E+ b3 q  n4 f下面是圖檔,要塞在Windowskin下
% j& o# G: S6 v4 T4 p# n3 V$ i: F( m" R5 a4 A
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
/ g& s7 B; j4 n! o' r4 N
. S# @! Z5 o: q, M+ r; `2 G
+ P8 u5 C, A; Q+ l$ W6 w! ]) V5 t0 Q1 v" o. j. S; j- G

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适2 D/ N. O6 G+ U4 W, @% f+ B* p
结果尝试刷新了一个已经释放的图形- W3 U/ b, j' i, R- M
9 _( k! Z6 r8 k. Q8 |* @# e

1 x/ g  ?+ F: H1 x! B; @
! A4 N8 Z; Z$ a0 x虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    5 d2 H$ F% x. V. Y; R
复制代码
不要后面那个条件貌似就没问题了。
( t. N5 c4 X  C/ C" s6 L  r5 W: x, X, {$ t0 `' i/ Q2 ^1 c# b
6 ?) F0 v/ n$ u. d% Y
& w3 w8 F; \  P; ?
* L: X: c$ p0 S# S- _7 e) e
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
3 Z- \, \- p6 z+ P( x貌似是释放的条件不合适
3 ]: q! q( f! y3 ^4 f2 ?结果尝试刷新了一个已经释放的图形
5 |* l8 `5 E+ a  K  j' u( T0 h
把後面那個條件弄掉後,的確沒問題了1 X" r' \1 C  @
目前從關頭打到關尾結束都沒再彈什麼錯誤
7 E, T# g% B9 f! U: K0 U; t非常感謝: i' O0 b* f2 A4 Q% [+ _7 q! K

( |" l) x( l( R* v, h. d不過我是參照著別人腳本改的8 Y0 y$ L9 Q& v! ?( a0 e
他寫的條件式也是那樣,但我用他的沒什麼錯誤: G! G& Z/ _* c8 A
不知道是怎麼回事3 {& `$ M: a, j5 q' H+ n, \' P
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的0 u, z: m# v) K4 \- L8 `% p
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events$ N8 ]' i! Q" g: v) T
嘛..这个数组吧..我在以前试写队友的时候关注过一点1 o/ x5 d% R; p
不知道XAS内部对它做了什么手脚还是为啥,
3 x- i/ [8 m- F! d  S总有那么一瞬间,没有被消灭的敌人事件也变成了nil) G+ ^, }& @# W/ O

2 c2 z3 x9 c/ R7 l8 k2 ]$game_map.events.values[@enemy.id].nil?
& ^, F, t7 f4 V5 O- x因此自然而然的返回true并符合条件把图形释放掉了
/ o5 h+ n) N# M3 f( i0 @  j( g1 x$ L; k+ D
LZ应该有注意到吧,
/ G# h6 |/ {' G- ^9 c) S  K( j我测试的时候发现报错前几帧,图形会消失,
0 P6 E  L7 T. P4 T8 L应该就是“误以为敌人被消灭”了。
1 `# c- K3 Q' H, Z2 ?# _6 `- N- @
5 l" A5 J0 A  C5 a) p受限于个人水平,至今无法找出$game_map.events的真相... [: G, Q6 D& u: I
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 # `5 S( h, B+ n& W$ j0 r+ q3 g
$game_map.events
2 }9 R5 b' }1 D7 `, |$ x0 ^6 s+ R嘛..这个数组吧..我在以前试写队友的时候关注过一点
9 s- f5 e% W0 p6 c不知道XAS内部对它做了什么手脚还是 ...
0 ~. q, f4 m% k3 @, F
當初我把那個條件式看了三遍,都不覺得他有什麼錯
% V4 i) r6 Z: }. t原來還有這麼深奧詭異的事XD" Q( m  q8 @: ~3 p% O/ u
9 ^3 P& Q" D9 b. L3 w) Z, y9 s
錯誤發生前的確會有圖形沒顯示出來
4 l" X! H& o/ ?. o6 i4 A3 i, G; w, b不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
7 y# C( R3 v3 D3 Q; N沒想到居然是詐屍了XD
1 Q; ]' D( Q4 k* `: B. `5 T" f5 c1 E. {- I* u2 y' v% x! c, H
不曉得3.91有沒有修正這問題.../ y- F2 A5 V6 d5 q$ r) w
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
. w0 w0 U& n6 f. f! O- I% E
' x8 Z$ o+ M2 e0 ]( T的确1 C$ z  `# m8 I& n% n: w; ^
用惯3.82之后想去整3.91觉得压力甚大..
6 K6 ?8 c, l3 L+ m' f干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。6 H$ ]+ o) Z$ U* r2 r, r

, I% p- c1 V; v! I# Q然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-2-20 04:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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