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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
. x  H' T7 J0 {9 f7 G0 w# W# @會在每隻事件怪物的腳下顯示
( h3 ^9 ~; F9 k  G) {; l; R問題是不知道為什麼
  H0 m# p) _4 L2 F  S有時打怪打一打會跳出8 K% N3 V% j5 R2 _3 e
---------------------------
' g5 f" Q  C7 E$ [: }XAS& n; n/ @2 ^& [+ j* i
---------------------------( Q# O. z7 w9 T# D, `. e
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
, U) Z' X, a" z5 H( t$ r
: r; s* b8 M: L0 Z5 v+ _% W. fdisposed bitmap
, _0 q' v$ o, l7 P---------------------------: _  k) H* b9 R
確定   # N* }1 L" ?6 O/ E) t/ k. m* f; B
---------------------------
% p9 [# z* c& _0 Z% T2 S8 r4 X# f9 Y7 x
這是腳本
6 b4 B' F  d- p/ L
" m" T1 z* x  G/ D. N
  1. #===============================================================================" i% {; M* ~- ]' k* L
  2. # MOG - s Hud 1.0      
    % F% V" f. ]# t! v7 C/ [/ I# c9 F
  3. #===============================================================================
    2 Q4 L  [4 z4 `
  4. # By Moghunter   I6 d# q# L9 A  G, r' i1 e
  5. # http://www.atelier-rgss.com
    , Z. _7 m- q5 R! B3 {
  6. #===============================================================================
    ! G/ W, @, \# e) z5 ^
  7. # Translated by Calvin624 ; ^7 }5 B. ~7 N0 p& g
  8. # http://www.xasabs.wordpress.com
      o( g: Y$ c/ z* J! d+ O6 W7 p
  9. #===============================================================================
    % I3 q6 c" C" _
  10. ###############################-DESCRIPTION-####################################4 |, e) S+ Z! m6 K) \. e
  11. #===============================================================================% O/ v+ u# s- x1 Z' ?
  12. # Personal HUD – displays the HP and SP below the hero." i, `2 Q- A: L: k. j- \8 R
  13. #===============================================================================
    : Y+ ]; }+ E+ k; d* ]4 y
  14. #& z6 X! E$ }# m# `- T+ Q
  15. # Graphics required:) |8 d) J) S1 W" o
  16. # 7 P. D9 J' Q# I
  17. # S_Border_HP_Meter.png0 m1 {: @  s* L, c' L6 Q
  18. # S_Border_SP_Meter.png4 e: a  I7 ]1 \. l9 i" E
  19. # S_HP_Meter.png
    & s1 [' I9 r2 W
  20. # S_SP_Meter.png/ ~% b+ H; P1 B3 o
  21. #
    / V/ e+ t! ~9 ^/ m& m
  22. # All images must be in the Windowskin folder.5 |; _: J3 V) @3 v+ S! [
  23. #  K# e! R; s+ a# e8 j
  24. #===============================================================================2 }- u: I/ |9 h6 p* k! r' Z& W
  25. module MOG
    - s1 X2 L7 g$ G0 r  d3 B+ o
  26. VISIBLE_DEF = false  ' A2 u3 u! d5 x1 _, b! K* y
  27. # Show HP meter?
    6 Z% @2 B6 W+ E4 g" p7 \- X
  28. HP_HUD = true
    * n0 q$ X9 i0 B2 e- i
  29. # Position of the HP border
    ' Y# U! a3 m- X
  30. S_BORDER_HP_METER_X = -2
    ) g( G1 b9 @# m# i
  31. S_BORDER_HP_METER_Y = -2  
    0 |0 M3 @/ Y1 S3 |
  32. # Position of the HP meter$ {; Z. i4 L7 |4 _" m) t2 o
  33. S_HP_METER_X = 0# O$ S9 G1 {0 Y; L% B0 o) v$ ]% e! s  `" y
  34. S_HP_METER_Y = 0
    + M' x  v( T1 q$ k, Q2 G! \% A
  35. # Show SP meter?
    " E% T0 P% F) G
  36. SP_HUD = true1 ^( c% ]# e( H$ ]1 i
  37. # Position of the SP border) n* l: a* i. D: Y3 ^$ _* F1 ~
  38. S_BORDER_SP_METER_X = 06 D- N( _0 b2 [( T1 A
  39. S_BORDER_SP_METER_Y = 10
    % i# o( `, G/ a2 t
  40. # Position of the SP meter; h9 a8 V: R3 A: c7 h
  41. S_SP_METER_X = 0
    ) O3 Z, Y5 Z- ~; {
  42. S_SP_METER_Y = 10
    3 A$ m; a9 k$ _8 m$ N& c0 k+ \: [
  43. # Switch to disable the HUD
    3 @% v* M$ u& O5 G
  44. DISABLE_SHUD_SWITCH = 52 p2 B' K3 j9 r8 G& v3 \: G
  45. RANGE = 201 i5 i6 @" h! H0 x# ?1 ?% ^3 V' D
  46. end
    3 {; i- D6 _- |; t* S
  47. #===============================================================================$ h" ~) n/ @* }0 d
  48. # S Hud  a4 F" `) M/ O" A' ]  w- Q
  49. #===============================================================================0 Q* g! t) z& Y. L0 `$ N% G
  50. class S_Hud < RPG::Sprite
    ' A  K3 A, c/ G  {& Y$ F9 F
  51.   include MOG
    ( y3 O& m3 [. h9 s
  52.   #--------------------------------------------------------------------------/ c) F- d6 e% l; b0 n
  53.   # * Initialize
    + r! ^/ B0 T' Q0 \" S$ O/ _: F4 B
  54.   #--------------------------------------------------------------------------0 |2 T% W) C! A0 F# ]
  55.   def initialize(enemy,viewport)* k- W1 j& D$ u8 r
  56.     super(viewport) 2 \  ^, z# S* O+ X
  57.     @enemy  = enemy
    , y) J$ c( w1 `: ~1 h) \
  58.     @battler = @enemy.battler
    0 @- _: e9 v' i$ q! _& B
  59.     @old_hp  = 0! c) T/ U1 a$ l9 @  m+ Z+ p6 [
  60.     @old_sp  = 0
    % `, i  T5 A% V$ }& D% s1 F* v
  61.     @old_vis = false0 i# P' z% o  W" L6 t1 P0 W- k
  62.     self.bitmap = Bitmap.new(100, 100)
    # O' w  @8 A; {& }" G
  63.     self.visible = (VISIBLE_DEF)#false, z3 r6 h  B+ Q4 F  i, v
  64.     self.z = 100
    ; F' A* G/ C! s$ a( d- R3 u5 S
  65.     #HP Border -------------------------------------------------------------------" ^* \! m$ q8 X1 l
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    % Y* Y6 F9 m& X
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    1 t, a. Y0 }: R/ t% y7 I3 t$ B
  68.     @layout_sprite = Sprite.new5 i  H) [. L3 F. @
  69.     @layout_sprite.bitmap = @layout_bitmap4 b( G2 j6 h/ |& \* ?
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    " G/ E4 N1 g: B$ J# g" `3 m9 |+ X
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      3 y1 }, J( t. b
  72.     @layout_sprite.z = 5001
    2 [; e- r( X; W% i% h0 D( B
  73.     #HP Meter ---------------------------------------------------/ k, z( ~, P9 B3 C, q
  74.     @hp_flow = 0
    / f5 y3 z$ ^3 Q, h
  75.     @hp_damage_flow = 01 v, T5 Q. S- C, p: u. \4 i5 w8 a1 P  g
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")* p; C) w7 \' z* h# d
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)- z7 V' U5 S# D3 w- T- e
  78.     @hp_range = @hp_image.width / 3
    " M, u3 [( C$ [' Q, y
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    7 q7 e" a! b: |2 e. m9 X6 b: D
  80.     @hp_width2 = @hp_range / 2
    # R! \# R. s3 c0 V) j
  81.     @hp_height = @hp_image.height / 2
    6 u. d* _& z0 P! |
  82.     @hp_width_old = @hp_width
    $ H3 T" n& P# {/ B+ O( D, Q; t
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    & e2 u4 d0 @5 ^+ p" |
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    # U) v7 t+ L2 ^& j
  85.     @hp_sprite = Sprite.new
    : X2 t4 b0 g; V
  86.     @hp_sprite.bitmap = @hp_bitmap
    2 L3 S  y5 J( F9 n' P. _
  87.     @hp_sprite.z = 5002
    : i7 p$ `; N$ c( c. J" t3 O
  88.     #SP Border -------------------------------------------------------------------
    8 m, K" e, p% H# ]7 b
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    5 d4 K9 g) a$ `3 r3 Y
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)7 L/ S7 Y5 K+ u! H4 J" m6 V$ O& D) v
  91.     @layout2_sprite = Sprite.new
    2 i, j: W, r+ |0 `+ M
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    % m6 a0 k% z# F2 t
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)( g6 Z' z/ I0 R
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    , @( ]+ E5 L. _3 S4 u' [0 g
  95.     @layout2_sprite.z = 5001    , e/ W. h8 f- y2 u; g
  96.     #SP Meter ------------------------------------------------------
      k, ^  D  q- D
  97.     @sp_flow = 0
    4 z3 n! f, X, V% `
  98.     @sp_damage_flow = 0
    7 M- r  }' C% N( M, G
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    0 r8 G% }) N0 t1 p+ Q
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    3 V$ m9 l+ T+ V3 h) H5 i
  101.     @sp_range = @sp_image.width / 3
    0 @; I) Q# q' b9 O+ r
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  , C' V2 D; K$ d2 m( s3 Q3 a* \
  103.     @sp_width2 = @sp_range / 2
    4 y. M1 n3 m) P: f
  104.     @sp_height = @sp_image.height / 2' {" Q3 s  D* V5 S
  105.     @sp_width_old = @sp_width
    . \, L4 N) q  B& A  C8 @6 w! S
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    2 M* a( z: d) E$ ]  Q) x/ y7 F
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)! }/ s8 Y% h8 A9 E
  108.     @sp_sprite = Sprite.new& }& f& R) V* ?/ r0 _7 c/ H, w. m6 r% E" B+ r
  109.     @sp_sprite.bitmap = @sp_bitmap
      R, h. l% u4 G7 \
  110.     @sp_sprite.z = 5002( O; {% ?9 k( Q) x! @- m' F4 h
  111.     update
    % }7 M. S& S5 l, y1 z
  112.   end/ C7 K4 f0 W. f' a' Y
  113.   #--------------------------------------------------------------------------
    / q+ v  r( l( N% X# y( m3 I, f
  114.   # * Refresh' H, T/ C9 Z  Y' B
  115.   #--------------------------------------------------------------------------
    5 t& w8 u( |% y  u- X1 y
  116.   def refresh
    " \# Y( Q9 m4 X; Y' q  C" }; X
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    0 \1 S; D: ?+ i) C; e
  118.     self.bitmap.clear
    , @7 E: o# }: a4 c, f, i
  119.     @old_vis = self.visible
    8 k& w2 L& ]9 n1 |7 {8 x8 i8 W
  120.     @old_sp = @battler.sp
      Q, C' J0 B4 y% K- R4 w& |
  121.     @old_hp = @battler.hp
    7 A0 z6 j/ U$ v1 }! W
  122.     hp_flow_update  h  D6 B3 o  E4 d4 b
  123.     sp_flow_update
    , j5 J4 C+ D* c0 f5 P! Q0 V
  124.     hud_pos_update. C, \. h$ a) y" ?. h
  125.     visible_update0 A8 W3 y( t& v; u: W
  126.   end
    . K2 l( h7 ^. H) Y8 y" Q0 Z6 f
  127.   #--------------------------------------------------------------------------) c. |( g2 v5 G% T; A
  128.   # * Dispose: ]$ b/ m. h* @2 f7 a- S& x- e
  129.   #--------------------------------------------------------------------------) Q  ]9 }& Y; }' C4 x& |' ?4 W& p( j
  130.   def dispose2 n3 a/ n+ [, W
  131.     #HP Meter Dispose
    ( ]# g9 r, o) [0 K; x9 O$ G
  132.     @hp_sprite.bitmap.dispose% n# ~9 I! Y; W& J& l
  133.     @hp_sprite.dispose
    ; ~3 k. W( @& I; g% F
  134.     @hp_bitmap.dispose3 h6 T  Z" D. I" S% {; t
  135.     #HP Border Dispose
    . ~, ^6 y/ Q" z0 P$ Z9 i3 |. R+ M
  136.     @layout_sprite.bitmap.dispose' x% ?" C8 M; Q- X( B2 _# \
  137.     @layout_sprite.dispose
    7 Q1 W; c. e: U
  138.     @layout_bitmap.dispose; T1 {2 r& g6 B4 |+ Q+ w3 }& ^
  139.     #SP Meter Dispose
    & x: ]% {% L. t
  140.     @sp_sprite.bitmap.dispose) a& m7 ^4 J0 j+ C9 g. ?/ r
  141.     @sp_sprite.dispose
    8 g/ d$ v0 |% R* d3 R: i' N
  142.     @sp_bitmap.dispose/ y% F7 ~. S9 X
  143.     #SP Border Dispose3 t( u6 |9 ?* c( P
  144.     @layout2_sprite.bitmap.dispose- {5 |9 f) J4 D6 g1 L- T: B
  145.     @layout2_sprite.dispose
    + c8 Z- O0 c0 }# }; m0 @
  146.     @layout2_bitmap.dispose7 R; ~+ b3 _! {2 p' P! Y2 n
  147.   end" W8 ~+ B5 b. d. v: F5 R
  148.   #--------------------------------------------------------------------------
    1 G9 g, M9 f3 x; R  A  }2 Q
  149.   # * Update, V+ Z0 F9 p/ `( a: A3 ]* u
  150.   #--------------------------------------------------------------------------* O" U6 e) D: t+ v
  151.   def update
    3 f* g; d0 }3 L3 B8 E% V
  152.      @battler = @enemy.battler 3 i9 i$ D5 W3 ^1 V8 Q
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?+ t# N% t* a8 B" [! b; X: V9 b
  154.      if self.visible
    . \1 G; ?  [. c/ b1 n
  155.        refresh
    # X# B% I7 A1 r+ {
  156.      else
    4 G8 v+ Q- m) z! D! D& y
  157.        self.bitmap.clear& t" F' e/ ]. a# s" f) c/ Y3 I
  158.      end
      `0 w: ^# X' r# K" @' z
  159.   end: y* f( o) V/ `, F, y9 G  T
  160.   #--------------------------------------------------------------------------
    * D* c* d" T5 @& V
  161.   # * Visible Update& l, Z6 Z2 g7 f+ w1 z0 M
  162.   #--------------------------------------------------------------------------
    6 ?  J1 J/ q8 R0 b- o
  163.   def visible_update2 k3 `0 p' \0 m) P6 O
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    . h2 V, l1 z! ]2 q
  165.        @hp_sprite.visible = false
    ; q7 a! v5 w3 B
  166.        @layout_sprite.visible = false) s; B8 Y6 u) M: {
  167.        @sp_sprite.visible = false
    7 `- q3 z% {0 ]/ ?0 Q4 G6 m, T6 P5 v
  168.        @layout2_sprite.visible = false4 S" P6 f1 a3 c1 n) ~
  169.     else! y) d/ D8 s6 p: x  Q' P2 ]
  170.        if HP_HUD == true
    + M/ X" ?4 e& `1 ?
  171.          @hp_sprite.visible = true. T# n: w0 d% o* J3 R8 H  {; |- P
  172.          @layout_sprite.visible = true
    $ S7 e* R4 n% p( ^9 d: V( e0 I
  173.        else
    " K9 g- }0 G/ x9 i9 }1 _# C& M. I
  174.          @hp_sprite.visible = false
    , l1 K5 \: h4 H; A
  175.          @layout_sprite.visible = false
    ) o9 C3 w* L8 V7 w" G) s% B- W+ q
  176.        end  
    . e1 J: |* l% a3 ^; q
  177.        if SP_HUD == true0 Z# r( L! z( P$ T  _; B9 a
  178.          @sp_sprite.visible = true
    " K' G1 O0 i/ Q/ K0 K; Y
  179.          @layout2_sprite.visible = true
    # G' I$ E4 x3 l+ t! I: J
  180.        else
    6 s' D: J0 Z  f7 A- |/ w
  181.          @sp_sprite.visible = false/ W8 @5 }" [& p# ?  }4 o; f
  182.          @layout2_sprite.visible = false
    : @. O. J# J3 T* p. P
  183.        end
    : c+ d' R1 D1 q1 p4 V6 V* \" ]" o" q
  184.      end  
    6 v: _1 t! f. G) D; F2 y
  185.    end
      h0 t. s# t/ m. G: B0 P; _$ ~
  186.   #--------------------------------------------------------------------------/ d5 \9 v% }3 x
  187.   # * Hud Pos Update( d, R  p0 z. L! y/ j0 e7 J
  188.   #--------------------------------------------------------------------------7 t" |, m1 h0 f) @4 o, w
  189.   def hud_pos_update! K* }. k& C& j3 F' h) r
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    1 `5 m' i) h  J" B7 t
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    : u$ H6 l/ E) s
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    5 N6 U6 n8 T7 f! M
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    & L7 Y+ v; x! T* E4 y- e
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X4 o) F- r4 J  O9 `+ Q1 W8 x' u) h9 e
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  $ ?6 H, ~7 a. h4 W" ?
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X* O. W4 }1 P8 }+ g/ s
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    4 U" e5 U! u2 r0 \, k$ {3 c2 k
  198.   end  ! M) M$ C; ~# D9 c
  199.   #--------------------------------------------------------------------------
    + p7 s: L7 ^" V9 M
  200.   # * Hp Flow Update
    " B3 S6 S) c. f2 d. j
  201.   #--------------------------------------------------------------------------% l0 w) \5 L/ w* y
  202.   def hp_flow_update) J# z* r. V3 i1 V
  203.       @hp_sprite.bitmap.clear1 Y8 Y6 q) l3 T4 I) a7 N2 Y# ~6 t7 G
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  $ v) Z" ]1 m& q9 J  N
  205.           #HP Damage---------------------------------
    - B$ {" f% t8 S; ~' `
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    - d( h5 Q. ?3 L/ ?; _5 e& Z
  207.           valor = 0.5 if valor < 1          " r" f- Z3 K0 v
  208.           if @hp_width_old != @hp_width+ T0 o2 V+ }6 w" i6 h
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  3 V( ?& `# g: @: o) W
  210.           if @hp_width_old < @hp_width ) I* }  k+ E2 N0 l* v' `
  211.              @hp_width_old = @hp_width1 t. Y8 j( g+ I* ^4 S
  212.           end      
    + v' N! k, a$ G3 P( ^! n
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)4 B4 Z5 _4 Y4 z" X/ }2 f
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       : ~8 e) C  |: F, T; q4 ?
  215.           end        
    6 [' E7 |0 p+ D+ I2 m7 i
  216.       #HP Real------------------------------------2 p1 D" A$ d& _  H/ l2 g: l
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    * w4 P3 P# c: j$ I: q" h' ]
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          ( k* X% O  A% y0 Z! E
  219.       @hp_flow += 2  
    * Q& P; i( H# j3 C5 F. |
  220.       if @hp_flow >= @hp_image.width - @hp_range
    ) j& B6 i. u& N
  221.          @hp_flow = 0  6 D# A0 t) ?* y0 K5 Z5 I1 G* e. Q
  222.       end) x) U0 x; b7 x8 ~& _
  223.   end   
    5 w. i5 {* t7 O) @9 Y& {  |
  224.   #--------------------------------------------------------------------------, {/ g: }$ Q! p0 s1 q6 @4 O, w
  225.   # * Sp Flow Update: h; S, J  t; M; I6 V+ X
  226.   #--------------------------------------------------------------------------4 _4 \" v" ^0 r, Z
  227.   def sp_flow_update1 P! F; d, n. Z, F
  228.       @sp_sprite.bitmap.clear
    1 r4 I9 R* L1 Y' y
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    5 e+ R& x8 j4 v
  230.           #SP Damage---------------------------------5 \! R! H5 i8 F0 p) g8 p9 W
  231.           if @sp_width_old != @sp_width) z4 ]! p* K& ~! p) o7 h
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    ) K; _5 K( \* d
  233.           valor = 0.5 if valor < 1              8 ~5 G2 q$ B5 A+ L$ i7 z) b
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    / z( z$ X" F" B% }2 Z
  235.           if @sp_width_old < @sp_width
    * }* d; R/ M4 F/ M- e
  236.              @sp_width_old = @sp_width
    3 |: N8 J3 t- }; y+ g$ c
  237.           end      ; y5 Q, ~0 c" a- W
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)/ o" _$ r3 ~2 o
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) 9 @4 l+ X4 k  S! @  a9 x
  240.           end; E& m) L$ ?2 |4 L  a
  241.       #SP Real------------------------------------5 P( ]# @2 B. m/ U
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    $ [( p; \0 m: C5 m8 w) @! |
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect), [; J; }" D' b! k
  244.       @sp_flow += 1  
    " C1 _5 G5 Q. d8 Y
  245.       if @sp_flow >= @sp_image.width - @sp_range
    3 X7 ?. @2 V/ D8 ?
  246.          @sp_flow = 0  
    . u8 d; b* P9 L( j
  247.       end' x& U1 E* ]4 c5 V/ V
  248.     end            
    ! f$ _" \+ j* J8 `* k5 Y
  249.   end8 D; A" n/ ^) i, f$ n$ m- ^
  250. #===============================================================================& B# c; [# e, \* D, o5 u
  251. class Sprite_Character < RPG::Sprite
    8 y8 b. H* r- l* f. x5 Y
  252. #-------------------------------------------------------------------------------
    ( {( ^( ]1 z3 H) G
  253.   alias :xas_emini_hud_init :initialize
    * v  S: B# i. @/ {
  254.   include MOG( c; l4 ?; K! D
  255.   def initialize(viewport, character)  K4 C4 j6 P- p8 M
  256.     xas_emini_hud_init(viewport, character)
    , E3 ^' R( J7 D) G# v8 I
  257.     @viewport = viewport( f0 o' t) d' g: E
  258.     return if @character.battler.nil?
    ! s8 s  G+ N# y6 k$ f
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    # o( B# a9 b+ w' h; U3 c% ]) ?
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    4 {& I/ A5 o0 h9 A( d* [" S
  261.     return if @character.battler.is_a?(Game_Actor)% ^" l, @. z7 h5 @- g% s# k
  262.     @bars = S_Hud.new(@character, @viewport)
    1 F% {  `% W' Q4 F& J2 n/ E
  263.   end
    * `3 Q$ K* _, v  ~
  264. #-------------------------------------------------------------------------------
    : W! t- V, d. v& G
  265.   alias :xas_emini_hud_up :update
    ; s" M1 \$ a* d9 l
  266.   def update$ a- n' T- t3 k0 v) I
  267.     xas_emini_hud_up
    5 s, c& S9 ^# i9 F: G* y/ c
  268.     return if @bars.nil?
    & _9 _# X* |* o: k
  269.     return if @bars.disposed?* t! {0 y  o: n2 G
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs. [* g; Y" b4 D
  271.     @bars.visible = (dis <= RANGE)) Y/ P& a8 ]  n1 Y0 G3 y
  272.     if @bars.visible5 L% r7 i$ W  L# ]3 ?" F
  273.       @bars.x = @character.screen_x# - @cw / 4
    6 Z$ F; f* x% }# |! s: H
  274.       @bars.y = @character.screen_y# - @ch / 43 m/ K9 k3 u3 V: P) k5 V% O
  275.     end
    + x" D8 c% Q% t/ c1 N
  276.     @bars.update) [- t, c+ y0 S) w2 Y
  277.   end' ?6 i' c4 H, i7 `1 S
  278. #-------------------------------------------------------------------------------& T3 E4 g' O& T0 F3 o1 P
  279.   def dispose
    8 v4 [' u3 g4 X
  280.     super6 t) b- l% ]9 B: J
  281.     @bars.dispose if [email protected]?
    / r, K" K# Q. A, R8 K
  282.   end4 l0 }, u9 R  c  ]4 b, E
  283. end
    4 x* C) @# u& C: F8 e9 A  r
  284. 1 b; c2 M* c' G7 S) _- }0 Z
  285. $mog_rgss_s_hud = true
复制代码

8 i3 ~4 H& b% P. P2 y- e, A* c! m6 r' Q; f4 L5 S. ?- \
* R6 j7 R8 M6 X! o" Q
上面所說出錯的203行內容為
0 h+ g* @8 `2 a, H$ l! u@hp_sprite.bitmap.clear5 ^( P' ?5 [, D3 a4 ]
1 A" O" X' }5 W0 ]3 U9 m0 D
想知道怎麼解決6 ?# }) N! ~+ q- Z4 v$ i& y

+ d1 M2 k0 p- T/ r該腳本支持3.82
' T9 n, r+ l) p$ p$ L( A4 `
" X. l% r  L+ z) d  R! |( y下面是圖檔,要塞在Windowskin下
, s+ \4 k- |  M1 C+ I
% Q- P5 f! t' }$ [" v' O# R S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) 0 t' b% b0 T! S- [  M8 y
) G3 t. n; i) i6 K, b1 ^& c

/ }/ n1 \9 N# X9 F9 m) K1 ~- f. D$ ]1 [2 b2 o; K: X

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
. W6 j# @0 V9 `! D* m5 l结果尝试刷新了一个已经释放的图形
6 _8 u5 X. N9 [( |: V& o
4 l& r4 V9 v; T" x
6 y8 y! H: E& m" o4 |* }% E0 v1 P& d% H8 @5 N/ }& T) M1 g6 t1 p
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    2 f7 P2 n0 s; q$ D' q3 @7 q0 P3 i1 q* a
复制代码
不要后面那个条件貌似就没问题了。2 U9 w0 p9 v0 S. Y/ o" @9 V

, ]- |+ }3 P* {6 @5 y
$ j% Y1 |4 S' W: U2 |- W1 z$ o 2 L* ^3 h5 m3 O( {

7 b) v. C3 j; u* K& V" g
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
) j! u6 P' W( y6 n2 f5 R貌似是释放的条件不合适) r: [8 P# h! K5 Q3 p- e" y
结果尝试刷新了一个已经释放的图形
/ |" E9 A* r& E/ K$ k. Y* G* @
把後面那個條件弄掉後,的確沒問題了$ E7 M7 M3 t2 E9 P# x- C
目前從關頭打到關尾結束都沒再彈什麼錯誤. L- @5 p" Y0 g- K- I+ X
非常感謝0 Q7 m; X  F+ y" B. M

4 I) U' K& r7 `6 A! S3 w不過我是參照著別人腳本改的
; S1 m0 {8 C* c4 k! P他寫的條件式也是那樣,但我用他的沒什麼錯誤+ u6 Z( S/ j$ b5 L  F9 Q3 s" K6 c+ c
不知道是怎麼回事/ r4 a( p; H2 N, `6 X0 @
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
6 }4 K, T# X: u' n' Q+ F我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
4 [6 Z. M, B/ N嘛..这个数组吧..我在以前试写队友的时候关注过一点
2 x. ^7 t& ^/ s; ~* R+ S1 `不知道XAS内部对它做了什么手脚还是为啥,
; {6 I: B& v6 X/ L9 z* h总有那么一瞬间,没有被消灭的敌人事件也变成了nil& D$ t6 I4 O3 ?& ]# x% Q" ~

/ E7 k6 U1 |# Q8 \" I- o7 m5 V$game_map.events.values[@enemy.id].nil?# |: |3 X9 \, H  u6 I2 U
因此自然而然的返回true并符合条件把图形释放掉了
& r6 T1 v; K, h! a' v( k" ?0 Y- D& A# T- M) R! H- \
LZ应该有注意到吧,& b5 b1 d4 n8 {0 \. i! q1 x
我测试的时候发现报错前几帧,图形会消失,% J; m) W' z5 V3 h$ _
应该就是“误以为敌人被消灭”了。# E, R# T1 u3 g- Q5 h3 w3 W
# v8 c# P; H& W) m0 k  p4 L- M0 p
受限于个人水平,至今无法找出$game_map.events的真相..1 L$ b, I( a% O
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 ( c: L- I! ~+ H
$game_map.events# d6 T3 i5 J6 N( {( Z  S  I- u0 R7 ~2 [
嘛..这个数组吧..我在以前试写队友的时候关注过一点
* p4 f4 E. @" O5 }& B- d+ A不知道XAS内部对它做了什么手脚还是 ...

) ?3 J- R9 p  n- ?( {當初我把那個條件式看了三遍,都不覺得他有什麼錯
, c( K) w7 D9 L1 I' }; F原來還有這麼深奧詭異的事XD1 g7 J) G1 E+ j7 Q

/ R1 B" l4 o" \" K" }7 y錯誤發生前的確會有圖形沒顯示出來
& C' o: x" t3 C3 |7 e  g. n$ x5 [不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
7 b% ~2 d7 J/ d! [: _* j: h" ^9 |! L沒想到居然是詐屍了XD' w6 K" ]) Q9 X- m" h5 v; l% e

' |) o- Y: r) |7 G+ k不曉得3.91有沒有修正這問題...& z" Z% |: `+ x' q4 Q
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。$ H( Q% t3 s% \: e' ]2 `% g
3 T$ |  A  D& |4 @- V
的确
) j9 o( Z! e# ~3 ~6 s9 x5 r" e6 ^用惯3.82之后想去整3.91觉得压力甚大..
- }5 p& w9 ?; F$ K干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12254
在线时间
21812 小时
注册时间
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”。
5 a5 F( A! }6 Y0 h7 v% x# K$ u) H( \2 }0 C7 |. i7 x/ \
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2024-11-15 07:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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