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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
  K5 U4 E" W  j% T會在每隻事件怪物的腳下顯示
5 `: M; D* R# ?; u問題是不知道為什麼# |, z0 \' I, M8 W7 k" e5 V
有時打怪打一打會跳出1 g. G0 k0 f8 J4 w/ X. G7 @' B: `
---------------------------
7 F" o" ]1 u3 K4 b. ]XAS  ^. ^  ]* }, U1 |3 w/ J
---------------------------' T- Q$ g) p+ Q5 R- a7 u1 g& `- }
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。7 w  q: ?' K  C+ k/ v# w

/ I9 R9 }. U) i7 _9 Tdisposed bitmap
  _. R) r4 \" Q' f/ _2 [6 v---------------------------
6 m# R: |: J- d3 y6 ?) {/ i; Y2 R6 c確定   
( e5 }" ~5 a. J! i- P4 `$ t---------------------------1 o) V. W3 M8 w3 K: Z4 {. i

+ }, [3 g; V0 v7 E) Q) U5 L4 S這是腳本
! Y1 n$ I: ^9 X( J+ R5 s( T2 w& u3 l; d3 k
  1. #===============================================================================
    5 V7 B0 P4 w* C2 v; E: z4 c5 b) X
  2. # MOG - s Hud 1.0      2 R7 l/ v" N) F" B- f
  3. #===============================================================================
    & D4 z2 @6 V& v$ O9 z5 L
  4. # By Moghunter - X( X) m$ k1 q6 G$ J
  5. # http://www.atelier-rgss.com6 c+ i  f& K/ y+ F: f- D" m
  6. #===============================================================================1 U: T: Y. T* X% m1 t
  7. # Translated by Calvin624 6 l' ^! \# m$ U6 K( M7 M4 ^/ L
  8. # http://www.xasabs.wordpress.com0 Q7 v$ _- L, h# }7 P) |
  9. #===============================================================================
    2 M+ ^6 \, W4 ~, v" t: W* R
  10. ###############################-DESCRIPTION-####################################
    9 k2 a. v8 ?4 S! v
  11. #===============================================================================+ [3 G1 ^4 k# K- G( @) {+ Z
  12. # Personal HUD – displays the HP and SP below the hero.+ j. p. }; Z9 Y4 H
  13. #===============================================================================/ F, g* q9 p; t
  14. #
    0 O" F3 |( R# A1 [; e
  15. # Graphics required:
    6 c* o5 F4 V: G. K. D
  16. # 7 o( v7 r3 R& @' w
  17. # S_Border_HP_Meter.png
    3 i7 E1 G* Y3 ]8 k/ x
  18. # S_Border_SP_Meter.png$ \* v4 M7 u3 P1 y& v
  19. # S_HP_Meter.png5 h  s4 Y) p% e! o% s0 v6 K# L4 Y( @
  20. # S_SP_Meter.png
    - c- y$ X! G. ]: H+ s7 V2 `- {' p* b3 B" i  ?
  21. #; {0 V1 N/ Z# `8 R
  22. # All images must be in the Windowskin folder.
    : S, A) @* o' @' \8 a. F) c0 a
  23. #3 h  m: C$ V# x4 D& Q. l, Q- K7 U
  24. #===============================================================================
    / E5 a! w5 {4 J  N; c1 J7 c. `
  25. module MOG* K, G2 M% ?# M' d8 q
  26. VISIBLE_DEF = false  
    # s, x  y+ z6 m5 Y( P# J0 F, ?
  27. # Show HP meter?
    : Q! V2 v* |2 e8 F
  28. HP_HUD = true
    ' K$ a2 E+ ]! F, j2 v  U
  29. # Position of the HP border% n4 D% D; ~9 ?- W6 {# U4 U+ p
  30. S_BORDER_HP_METER_X = -2
    5 Y$ b. g* j4 m# k# X2 y: F8 w) z7 h3 V
  31. S_BORDER_HP_METER_Y = -2  9 n: ^0 m! D5 [3 Q5 v
  32. # Position of the HP meter. K7 ~  G# _. r- e
  33. S_HP_METER_X = 0- D! x0 J( ]8 Y  u/ t6 ]& @2 O
  34. S_HP_METER_Y = 0
    % i7 X7 s" k* U: ~: r6 S# v4 g
  35. # Show SP meter?
    ' v0 C$ r3 J2 M' d
  36. SP_HUD = true
    ; \( i' {: n( e; l2 w
  37. # Position of the SP border# U; s4 e, e# ^6 B# u2 q
  38. S_BORDER_SP_METER_X = 0
    2 w( ^4 `  }0 H% o( s, O
  39. S_BORDER_SP_METER_Y = 10 0 Q5 J' ^$ o' _/ }) c/ p& ^
  40. # Position of the SP meter
    % w7 A' f( c( u( V
  41. S_SP_METER_X = 0' ~( Z: L3 _$ H8 e% g8 v9 Z
  42. S_SP_METER_Y = 10
    4 e; ]' }/ i3 e
  43. # Switch to disable the HUD2 e% R) F, }/ p: l: Q5 c" C
  44. DISABLE_SHUD_SWITCH = 5
    2 q0 p! L/ Q  n' g8 |
  45. RANGE = 20
    . p0 ]8 {  A3 O
  46. end
    / f. S1 v8 J" B5 I# |/ y, R" j" x5 T
  47. #===============================================================================" I: V: Q' v& T9 \: l% [
  48. # S Hud/ |. H$ C) _2 d% R
  49. #===============================================================================* t. _* V, w4 V# V% E
  50. class S_Hud < RPG::Sprite
    ( v& I8 M. i$ n1 D
  51.   include MOG/ Z* L" F) ^; A2 I+ ?9 b
  52.   #--------------------------------------------------------------------------& A+ E# a# h9 f2 n
  53.   # * Initialize! F& P( t/ Q" `
  54.   #--------------------------------------------------------------------------$ y; w* K3 o- o+ n1 x% M, _8 n
  55.   def initialize(enemy,viewport)
    ) a! [7 V% _* y# Z4 O6 q& D* R8 A
  56.     super(viewport) 5 k; P" N) r# y( z/ F$ q9 \
  57.     @enemy  = enemy; h7 A* |# O$ @) }6 }3 E3 S
  58.     @battler = @enemy.battler
    / m# K/ {, D; _, J8 I9 V
  59.     @old_hp  = 0. B0 h4 Q9 `$ |0 y. b, y# I
  60.     @old_sp  = 0% L9 C( C/ M% p6 m" z. n
  61.     @old_vis = false7 x+ j0 S! O' |$ E; \. _# x
  62.     self.bitmap = Bitmap.new(100, 100)
    # G8 K' ^# \2 T9 L0 z" P
  63.     self.visible = (VISIBLE_DEF)#false
    + \) O0 q2 ?" v4 R4 o! k" T, `
  64.     self.z = 1002 n9 Z+ d* e; J) e
  65.     #HP Border -------------------------------------------------------------------2 e: Q8 V$ U3 F1 M. n
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    0 H: A- ?! B3 V1 Q! g: q+ k
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)% o3 e; W/ B, X# e
  68.     @layout_sprite = Sprite.new
    $ G* O) p; z& x1 K* \/ X/ E
  69.     @layout_sprite.bitmap = @layout_bitmap
    6 U8 ^; J! D; c9 m& F  d8 q+ |
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    $ u# c, b: g, y" l
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    ! Z2 [& n4 l& h' m# d' [
  72.     @layout_sprite.z = 5001; D4 V* ]4 p% _+ L1 T; Y% J* r8 @8 |
  73.     #HP Meter ---------------------------------------------------2 I. M8 K  C# [2 \
  74.     @hp_flow = 0. l) |% L1 V6 ^  d1 @$ y3 a5 c& e
  75.     @hp_damage_flow = 0
      L" E& ~, `: p4 i* w. j* ~0 p8 J
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")- c( A! Q6 T3 C3 N+ [3 a9 S, e
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)  x1 M: t4 @6 N# x( l) {8 C
  78.     @hp_range = @hp_image.width / 3
    & ^+ q( \4 q) o
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    - O9 H( B0 O9 G+ n  K# F
  80.     @hp_width2 = @hp_range / 2: q' Y* o1 c2 f6 f( Q8 L
  81.     @hp_height = @hp_image.height / 2
    ' H6 Y0 D1 q# q& r
  82.     @hp_width_old = @hp_width. X+ {+ D" E' z) z5 n; [% J* v
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    5 T$ a4 O9 ^7 i: w9 \
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    1 C0 k: }' {* z% K* s5 I+ r
  85.     @hp_sprite = Sprite.new
    2 ^7 O, c! n/ ~! C
  86.     @hp_sprite.bitmap = @hp_bitmap# I) Q9 {2 n. n
  87.     @hp_sprite.z = 5002
    : t5 {; L* F0 t9 X- T6 Z
  88.     #SP Border -------------------------------------------------------------------
    / i+ v4 S& p! l, N
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter"); W; X4 O  I8 n8 I$ m
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)6 n7 g$ a: L, ?8 z! `/ k# ]. e5 n
  91.     @layout2_sprite = Sprite.new3 N5 r4 p3 \+ \2 C+ p
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    $ x! S9 \6 f' b; h+ h) b$ _
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    * ~! s) q: U9 R9 d) \0 S* Q
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    $ A+ |+ M5 |1 N$ J, c
  95.     @layout2_sprite.z = 5001    ; B2 p+ t- r( X+ a; ]
  96.     #SP Meter ------------------------------------------------------+ j+ k9 B$ d/ H) R/ P0 D' w/ c
  97.     @sp_flow = 0" t  U% T+ k& i0 ]. i" u5 ^0 M4 }
  98.     @sp_damage_flow = 0; N* B6 ]. t" j5 R9 y/ A
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    ! l1 g  k8 K: p" r- [' _
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)) _& S  W8 @( p6 L/ ?2 ]- |
  101.     @sp_range = @sp_image.width / 3# c, g8 d8 ]& j2 P" ~. }9 v" W' X
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    , o1 r' W$ W! `
  103.     @sp_width2 = @sp_range / 2
    9 K/ j9 h4 p6 W. O/ C
  104.     @sp_height = @sp_image.height / 2. J; v' r) d0 u2 ^
  105.     @sp_width_old = @sp_width, D! y, t* J) D" Q" d8 l6 a( i3 v
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height). N' s7 D8 ]3 n- U# v9 y
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    * O/ d' X6 U, `* [! x* Z7 j; j
  108.     @sp_sprite = Sprite.new9 a: {9 K0 I2 H! Y0 v7 c' i
  109.     @sp_sprite.bitmap = @sp_bitmap
    1 Q# q; Q# S# l0 t
  110.     @sp_sprite.z = 50025 p% M4 t: B9 z$ ^
  111.     update6 y. a. L( r3 W. L
  112.   end/ ~' h* P/ {6 D5 k$ U! I
  113.   #--------------------------------------------------------------------------
    9 V( U0 C% W" J2 p
  114.   # * Refresh
    ; E% ?& p7 i- Z
  115.   #--------------------------------------------------------------------------
    0 ?# L) Z& b3 a
  116.   def refresh4 w) A' a/ _( o2 @, \) J
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    * t$ ]9 a+ B! A
  118.     self.bitmap.clear
    / @$ H2 J* Z6 ^! r
  119.     @old_vis = self.visible
      }' O; z, N' V( p/ X: @0 L
  120.     @old_sp = @battler.sp
    % s3 w% s& N( g! f# P' M
  121.     @old_hp = @battler.hp
    & }- X; D7 ^5 O; z4 N6 N/ f# M
  122.     hp_flow_update
    6 z' F( L3 i" h) h
  123.     sp_flow_update  K4 H1 C( w( Q) c
  124.     hud_pos_update7 M5 i/ V* U) J; C" }4 N) [5 L8 s
  125.     visible_update1 ~1 ~) |3 ~; k3 `" ^, G' B
  126.   end
    ) e6 s/ |" ^! {0 K& N/ K+ x. w4 l1 R
  127.   #--------------------------------------------------------------------------, v1 g% @) F) I" n, M
  128.   # * Dispose
    ; M' E- X# o3 `9 P; {" u
  129.   #--------------------------------------------------------------------------+ h0 f6 a, i% C4 B# U( f# _
  130.   def dispose4 g+ x- Y* ~' C  n
  131.     #HP Meter Dispose1 U. C" }$ k5 [7 D8 v
  132.     @hp_sprite.bitmap.dispose3 @- C! S% L- Q7 f; o' a4 U, R
  133.     @hp_sprite.dispose6 l. O+ |9 y: ]+ Z5 h9 C2 I4 g3 Y
  134.     @hp_bitmap.dispose! N/ G  t0 u& o" c; y1 D2 l
  135.     #HP Border Dispose
    3 V' d# v; I9 M* e+ @: ~* B
  136.     @layout_sprite.bitmap.dispose
    3 N3 X+ }( l/ y3 `9 i
  137.     @layout_sprite.dispose
    , D% s3 K7 v! h+ |3 b. H/ }
  138.     @layout_bitmap.dispose& M; {9 f; I) v! o: R
  139.     #SP Meter Dispose
    " Y, U5 l6 g  _, t: f. i7 t0 Z; e4 }
  140.     @sp_sprite.bitmap.dispose( V5 Y$ K/ c' L
  141.     @sp_sprite.dispose
    / G! i& ?: e8 V  Z. g( C7 \6 g
  142.     @sp_bitmap.dispose  F* D  J2 w5 }+ k  T) f
  143.     #SP Border Dispose7 b" L5 c! {/ n, C
  144.     @layout2_sprite.bitmap.dispose6 d" P8 x+ j; T& W# }0 |( w
  145.     @layout2_sprite.dispose+ H( z/ p3 }, c  R, @/ V- a
  146.     @layout2_bitmap.dispose; H1 V9 a6 l; V! H; u
  147.   end4 ?" ]$ _# {  X7 M- C; d9 f' Y) V9 C
  148.   #--------------------------------------------------------------------------  u* E. Z1 N' t7 r: a
  149.   # * Update
    * P  @9 s* k7 a8 _
  150.   #--------------------------------------------------------------------------/ w/ N  I) Q2 f+ U# @+ n& T
  151.   def update3 N% g% E3 P' q3 G5 O& E9 A8 p
  152.      @battler = @enemy.battler + |( l- d* I" D3 j/ b% ^$ w
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    / }2 _) I: G0 l4 h
  154.      if self.visible
    , a, {: ^% C! A) W" y
  155.        refresh2 S4 W& q0 L/ U2 v: K
  156.      else
    , I4 h! Z- z3 Z0 g' {0 V7 W/ o
  157.        self.bitmap.clear2 ^& T; R2 {* h* B' f6 ^1 d
  158.      end2 ?7 A0 o8 N% \' ]' u. p0 m
  159.   end/ n& M; e) Q& K2 ^
  160.   #--------------------------------------------------------------------------6 R- r& }% _/ y; k
  161.   # * Visible Update
    4 d6 }( F" F* n* d
  162.   #--------------------------------------------------------------------------
    8 D' s# P4 g4 ~* X  Z. t* R
  163.   def visible_update; v2 v7 x  i& ^4 H) N( @; K
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    & y- b* a0 I* h# t: D
  165.        @hp_sprite.visible = false
    ) q2 O% f% W, h" J
  166.        @layout_sprite.visible = false
    - j* c0 ]9 Q+ G. Q9 V; O
  167.        @sp_sprite.visible = false) @! o7 Q6 S" V# _5 g7 f' _
  168.        @layout2_sprite.visible = false
    ; e9 Z1 x1 m3 a; I2 s) Y: f8 e
  169.     else, d  J" `8 i$ {5 @! q( r# [
  170.        if HP_HUD == true! A7 a9 W- ]6 D* o1 z( h6 _
  171.          @hp_sprite.visible = true
    ' X0 e1 C2 [8 T1 M* c
  172.          @layout_sprite.visible = true/ L1 ?- i0 l, P1 b9 `8 {
  173.        else
    3 _& A# {: z- L. |6 `) Z2 }
  174.          @hp_sprite.visible = false
    $ _3 F+ s6 V  B! s- d2 _" Y
  175.          @layout_sprite.visible = false
    " l  F  X! ?2 F0 C, T
  176.        end  + F6 H+ R% [5 r2 U2 i& w
  177.        if SP_HUD == true+ `! m) r) k" T  k
  178.          @sp_sprite.visible = true' {3 {* N- m& s# E3 a
  179.          @layout2_sprite.visible = true0 ?6 w: P8 J7 Y3 v$ Y: q
  180.        else7 U, u& @' @- @" v" Z* M; X- Y
  181.          @sp_sprite.visible = false" ?4 G1 D) @: Y+ N) e4 Y$ d0 {
  182.          @layout2_sprite.visible = false
    7 d: W5 g: S! z/ K; b7 C  O# \4 a
  183.        end
    4 l2 d2 a/ \- S0 {" {
  184.      end  * O, N, b4 y+ H
  185.    end
    / w( K. o' Q& s; p$ |7 F0 G9 M6 [
  186.   #--------------------------------------------------------------------------& s; ^4 k3 d3 P( n" B8 a
  187.   # * Hud Pos Update  q0 j: \, E& d5 b4 \2 i- ]
  188.   #--------------------------------------------------------------------------. H' Y/ m; q" h" Q) n& t
  189.   def hud_pos_update
    7 g# t' ^+ A/ i0 P. O  u& P
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X# R+ X( M; Q& m* s. ^8 Y" I/ }4 a
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  " K% e' G7 @: p
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X- i: {: j$ A/ z* K* i+ |) m  @
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    ( ?0 \* ~- Z0 E+ _/ z. n
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    / K" s- f6 w: i$ S& ?
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    8 m  e- }7 n1 n& {" Q
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X. k: Q. u# s) E4 }- Y8 V$ z# M
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    1 j; m6 o$ y7 X# I
  198.   end  
    ( A9 H- e& i6 N- ~
  199.   #--------------------------------------------------------------------------! s% z3 k# \' I& f- a8 k0 x
  200.   # * Hp Flow Update
    2 G% O* `+ |3 \4 K5 l8 |+ O
  201.   #--------------------------------------------------------------------------8 V4 F. w. I* t3 G. ~& m" [! O9 Q
  202.   def hp_flow_update( t8 i$ t6 D" {; s/ w  u. U2 i
  203.       @hp_sprite.bitmap.clear
    ! F- t/ a9 ^# y/ \) N
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  . O) \! Y2 q6 m  f  n
  205.           #HP Damage---------------------------------
      E9 l+ G* j8 @2 h% s. x8 A. L
  206.           valor = (@hp_width_old - @hp_width) * 3 / 1009 Q+ K" y: k8 e$ ~6 a8 `
  207.           valor = 0.5 if valor < 1         
    ) ]3 z7 N( q- t2 c
  208.           if @hp_width_old != @hp_width
    9 p" l( W1 j0 w- o$ X# g; o
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  1 d5 m' {* v0 l7 a( t8 w! N
  210.           if @hp_width_old < @hp_width
    ; J9 L" z' p6 h6 _9 Z/ a
  211.              @hp_width_old = @hp_width
    ; \( }$ m2 k( g5 e3 w
  212.           end      4 w* A, Z- U9 Z0 F0 O
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    0 C" z% y+ \4 K# P5 n+ r: @% i
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    ) s: L2 y4 w: M6 B0 V7 h* J1 Z
  215.           end        2 K1 o; J1 ?. f7 W8 E
  216.       #HP Real------------------------------------
    $ C/ B2 u1 Q$ f* _3 f" x
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)3 V" w) E( C2 g2 i, m) r  |
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    : N4 E* S6 I3 y, K0 V1 y3 w5 f
  219.       @hp_flow += 2  / M: n3 f# _& m! ]* |4 Y7 N* ?  A
  220.       if @hp_flow >= @hp_image.width - @hp_range
    " Y; H+ C& v8 J/ H) B
  221.          @hp_flow = 0  
    $ G# L+ |& u  S* Q6 T( g
  222.       end4 K) w3 k0 E9 z5 {
  223.   end    ) y- P2 g0 P, l2 f
  224.   #--------------------------------------------------------------------------2 \# [+ m' y4 t* v( C- X( m, m
  225.   # * Sp Flow Update  A5 h& e7 e# \' C9 c2 K8 ?
  226.   #--------------------------------------------------------------------------
    0 Z$ O. U) n' j! L; {# B
  227.   def sp_flow_update
    ) `0 h% @$ g  z& {0 A
  228.       @sp_sprite.bitmap.clear
    3 p1 a9 z- ]  D( c/ _
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp   I# e  W& U3 h
  230.           #SP Damage---------------------------------# }: Y6 E: M! U/ I5 W
  231.           if @sp_width_old != @sp_width& P  Z: F8 X& L) F6 k* \
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    + s# h  _6 O6 _! Y# `
  233.           valor = 0.5 if valor < 1              
      t6 G3 y9 h* k( M! X
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    * n2 F0 @. A- E% i8 m
  235.           if @sp_width_old < @sp_width
    # {& d: d3 W% _; V' ^
  236.              @sp_width_old = @sp_width7 c/ T" s4 w/ ^" ^* K! e+ M# {
  237.           end      
    + e' M. O9 j4 v' t# i
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    * C8 R2 z  R5 R, c2 m6 F  d: u
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) 3 w6 x* M# N+ h2 t& c
  240.           end
    & w: U5 Z/ z9 t" y( a( }0 F" n
  241.       #SP Real------------------------------------
    # b# X- D/ T( N. n  p* f
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)3 B$ g8 H, ?: X) J- D5 |
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)1 h( v9 G1 f  l- v
  244.       @sp_flow += 1  1 {7 B1 D$ c: R8 X$ R6 T
  245.       if @sp_flow >= @sp_image.width - @sp_range7 x$ H, B" \) `# R" ]
  246.          @sp_flow = 0  $ \3 X' u: n4 Q" t0 r2 V! K& H
  247.       end7 t' L- W' v9 q; I% W
  248.     end            ) V: N2 w6 X; u8 `+ v5 \
  249.   end
    5 }- O3 x3 }# P( q; O+ t1 D$ U
  250. #===============================================================================1 E1 j5 Y. \3 g' A8 T; ?5 f8 e
  251. class Sprite_Character < RPG::Sprite
    ; R/ o5 G: V* g+ K' A" h9 ?
  252. #-------------------------------------------------------------------------------
    1 O6 M& y; H* e+ f9 ^6 d. ]
  253.   alias :xas_emini_hud_init :initialize
    - v+ _' |# J0 v. [) E0 ^' y
  254.   include MOG/ F( y9 r3 Y: b. |1 l
  255.   def initialize(viewport, character)+ X2 H6 _, N2 Y& x6 ~- N3 E
  256.     xas_emini_hud_init(viewport, character)( H$ W& K1 k3 J/ K3 T
  257.     @viewport = viewport7 @4 z% U: r2 [5 u5 U0 b
  258.     return if @character.battler.nil?
    2 ]& S( h( M/ \, `# a
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
      c  |) u3 y" k1 |: [' n( Q/ s, P
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    . N9 T' x( g) _& h7 _2 m6 |4 U# z
  261.     return if @character.battler.is_a?(Game_Actor)- h8 j3 Y1 p9 _( `+ \' c
  262.     @bars = S_Hud.new(@character, @viewport)
    " M# v4 w* j) d, n0 X5 S5 P" G3 b
  263.   end
    & j4 T: c. d$ ~  T# a
  264. #-------------------------------------------------------------------------------2 u( @; Z! h: E9 f
  265.   alias :xas_emini_hud_up :update7 E9 c# V" b) W, a
  266.   def update
    2 R, A' V' M! Z9 ~, `
  267.     xas_emini_hud_up
    9 B0 c8 X; U: _& q5 j8 c2 `
  268.     return if @bars.nil?
    4 m& R" s3 g4 {5 a: g; z" J
  269.     return if @bars.disposed?
    5 W% w: O6 E. l: {& S
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs. W) \/ h- w5 L2 S
  271.     @bars.visible = (dis <= RANGE)5 `* M4 u% [! N3 g6 B7 D8 y( s3 q
  272.     if @bars.visible
    + `: F" r0 n" H# j# i
  273.       @bars.x = @character.screen_x# - @cw / 4
    , a0 C; c8 Q3 C% C1 n
  274.       @bars.y = @character.screen_y# - @ch / 4- [2 U" ~  C' D5 x2 d0 M& s* z' n
  275.     end
    6 e) C$ n% v) ?8 C
  276.     @bars.update
    : L4 `( L+ d* g  Z+ N
  277.   end
    7 V" r% Q" Q- x: G2 o* v/ j
  278. #-------------------------------------------------------------------------------4 }2 B$ L/ |/ x5 z4 S
  279.   def dispose5 l  m& `& {! G, h1 ^
  280.     super) f9 G7 P1 w# z  R( V) H
  281.     @bars.dispose if [email protected]?
    ! w; G) N" F7 w; p: D1 q8 b
  282.   end% M0 v- J/ V- H0 }+ J
  283. end% S; [0 S0 @) ]6 ~9 \

  284. 5 X1 ?: Z  f) w$ F: L" d! f6 m
  285. $mog_rgss_s_hud = true
复制代码
- d9 \7 K! Q; j0 ]# ?9 d3 e* |% d

4 @3 M5 C  {& W3 c
1 u2 e5 y2 X7 _. g2 F上面所說出錯的203行內容為
  G$ ?1 g+ h0 a@hp_sprite.bitmap.clear
1 c" h+ {* E0 @0 x& `& D  I$ w/ |+ P" A7 |" T4 p3 y
想知道怎麼解決
* s0 j- ^9 k7 d2 N9 c. C* _# o3 c+ w. a3 P, m9 N$ b
該腳本支持3.82
2 d6 I- u% T  O. r7 A3 g! Z" n1 ~- x5 k9 x2 \: V2 [
下面是圖檔,要塞在Windowskin下
, B( q* Y9 L1 }3 i& A  z& g
) b) ~2 q7 F1 o/ u1 D1 U S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) / |) a; i# c$ Q' F  }
. H- u  F8 J2 D* o( E

$ N2 E0 W$ }- \& u. n1 s( P! j+ U- E% Z5 X

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
. J( Y. r; l- c3 s/ |5 O* z结果尝试刷新了一个已经释放的图形
3 V2 ~. X1 V# }" `
+ K1 p  ]/ E4 J9 ~7 P. C, ^5 w& b  z/ ]8 n/ h, e: E

; r" x! r  C+ V8 h4 }2 B. \+ }虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    , `) ~: d6 H& m7 n- V
复制代码
不要后面那个条件貌似就没问题了。4 d+ J- f* l- e: j! n

& B- T/ a& D* x$ ?6 z( m/ @* M- @/ J; a, s% I
2 L  j2 y  I  _! Y

: ^% A% g- v! t4 S  g2 h
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
# D$ Z' e/ o% a9 G& x貌似是释放的条件不合适2 @( R& x& h9 @( V; P
结果尝试刷新了一个已经释放的图形

& t/ U: q1 R6 ?把後面那個條件弄掉後,的確沒問題了- z  ?: T0 G6 s2 u
目前從關頭打到關尾結束都沒再彈什麼錯誤
8 G* y5 v* M( o3 F, s# o* x6 y2 ~非常感謝' G/ u! q) C  C  K

- t: ?' G! e$ U$ {2 C3 u. L* Z' ?7 T2 P不過我是參照著別人腳本改的
- M( v7 w, |3 ]* Z7 f" d7 o他寫的條件式也是那樣,但我用他的沒什麼錯誤
( E/ Z% V. t- Q不知道是怎麼回事% o5 \- R" C6 z, u( f
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的7 K% i! ]7 o/ c. a4 U( q
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
# Z+ Q0 t" @* p- U* y  H5 Z嘛..这个数组吧..我在以前试写队友的时候关注过一点! V. Z, ?+ H; N# s$ S
不知道XAS内部对它做了什么手脚还是为啥,
1 o& Q0 [/ Q+ f2 W' R( l总有那么一瞬间,没有被消灭的敌人事件也变成了nil
  b1 ]1 c7 ~" p  T7 a/ |1 `" L% T  E2 O# g9 z/ g
$game_map.events.values[@enemy.id].nil?& ?5 E; B7 i" t! ]; B
因此自然而然的返回true并符合条件把图形释放掉了3 x# a5 y5 B% x- G% N  P
2 E0 t4 v: r9 b5 b# i+ Z5 H0 R
LZ应该有注意到吧,. q# t4 d2 J, b. ~$ {
我测试的时候发现报错前几帧,图形会消失,& F1 v4 h2 t7 {  _$ {3 B
应该就是“误以为敌人被消灭”了。) `3 Z5 [% s" @6 a$ }% U# x3 c- @4 c

0 S- B2 z9 _* m- g  l) M3 D受限于个人水平,至今无法找出$game_map.events的真相..9 K/ o& i( K% y( L0 U& ?% `+ e
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
: n& h! }$ B. d$game_map.events
" ^* ^, u7 R. V7 E8 K% t9 o嘛..这个数组吧..我在以前试写队友的时候关注过一点
6 p, }, q: H- ?2 C( y7 g4 _不知道XAS内部对它做了什么手脚还是 ...

. A9 c! w. S5 x9 P8 X1 a當初我把那個條件式看了三遍,都不覺得他有什麼錯
& b; x5 f; m7 P2 a( f/ \原來還有這麼深奧詭異的事XD4 [/ E8 \  v# Y/ W; f, t$ X0 Y* x
0 F0 F  c  h1 _$ u. }9 h
錯誤發生前的確會有圖形沒顯示出來. I" a! o& _; f8 |' R1 v
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
1 j! B3 O. `: H3 c; t: r沒想到居然是詐屍了XD. {$ g4 c+ c2 v5 l# e. y

0 s3 v8 O) y# t  W" }1 q不曉得3.91有沒有修正這問題...
( ~8 E/ |3 \2 T$ @不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。" a9 b# Z3 |5 p  k. Y0 k- u

1 D4 g, g9 W" ]8 N的确+ S4 s' t+ N. I2 q9 o1 T; F
用惯3.82之后想去整3.91觉得压力甚大..
% d, o& j# f/ R: U干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。
2 A; v2 a  i" ?! q1 o( z" O3 m% T2 y) c3 y- ~5 R
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2024-11-22 15:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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