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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條0 {5 v" H6 _! S/ }
會在每隻事件怪物的腳下顯示
! Y( S7 `6 S# }問題是不知道為什麼2 A/ `4 i! K# W( ~+ B
有時打怪打一打會跳出9 N7 Q" V6 W5 L3 Q; o! l$ q
---------------------------5 f" C! L1 p% H6 ]
XAS
; A2 H2 h/ m- |6 f; L---------------------------
; S! p4 J, P8 w脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。/ l, ~8 l! J1 z( |+ A4 N* F4 e, z
, G. Z+ [7 a& z8 h) M7 `
disposed bitmap5 M  D% b% G: W0 }
---------------------------5 [( W4 H2 i, u" J/ i
確定   
+ S; d& {- V/ G% A9 z' f---------------------------
" `5 v, v! \7 u2 j" e6 u$ B2 U7 s9 b# q
這是腳本
$ P. w) j0 \3 u2 D* H/ ]
4 Y) w+ }3 ?& Y
  1. #===============================================================================  ?% B: ?/ \5 U4 f# @
  2. # MOG - s Hud 1.0      
      U8 c7 c& m& P+ L
  3. #===============================================================================
    - N9 l( A0 a! a( U; R. G: p
  4. # By Moghunter
    7 R, u' L) D. \2 s/ g7 q6 [4 ?
  5. # http://www.atelier-rgss.com
    2 g" s* |, d: j
  6. #===============================================================================0 T- j" u5 d: i  r
  7. # Translated by Calvin624
    * O" ]! y# l/ |9 Z- B# {2 @# n; G0 B: D
  8. # http://www.xasabs.wordpress.com- K9 `& q1 Q9 g- Q" \( \9 O7 W. j# t
  9. #===============================================================================$ o& i. H" g* {( l
  10. ###############################-DESCRIPTION-####################################6 V, O, A; {, f: h
  11. #===============================================================================
    9 H" n7 J. I  c9 O% }! f
  12. # Personal HUD – displays the HP and SP below the hero.
    ( L& h! |" w1 z  D$ N$ o
  13. #===============================================================================
    . L7 i& I- g+ c6 v9 d, V! B
  14. #+ ~' Q% S7 E5 x
  15. # Graphics required:- ]# V) [: I1 N6 @8 [5 p  p
  16. #
    ; }- p7 {8 v- v- C( A, `
  17. # S_Border_HP_Meter.png8 o% l' q8 m# e; n1 B$ L$ Q9 b
  18. # S_Border_SP_Meter.png
    : P! a2 P/ t2 x3 e4 U: C' N
  19. # S_HP_Meter.png
    * g' T7 }* R% D! ^9 Y
  20. # S_SP_Meter.png
    ; c/ [' Q+ Y2 S. e6 y6 W7 F' H9 h
  21. #( s/ k2 O3 _7 P  L& M
  22. # All images must be in the Windowskin folder.; o% X, S2 I. n, p" [# q5 ~9 s0 f5 [
  23. #7 l% v* \& i6 W7 a
  24. #===============================================================================+ [. |3 x1 f1 |6 ^
  25. module MOG, R5 C( _0 C, n0 S
  26. VISIBLE_DEF = false  : z8 J+ I- M# `) G( _
  27. # Show HP meter?* Z: b0 k$ R5 b; u
  28. HP_HUD = true) a- m* |8 q5 W  C# e, F
  29. # Position of the HP border% E( Z0 W1 ?1 k7 E# w
  30. S_BORDER_HP_METER_X = -2
    ( a; f0 O: F1 S" X' y
  31. S_BORDER_HP_METER_Y = -2  ( h/ R0 C, u, T" O# {* W
  32. # Position of the HP meter) ~- q, z3 v4 ~4 t  g! h# u
  33. S_HP_METER_X = 0
    $ F0 k+ E, {  }7 }
  34. S_HP_METER_Y = 0; b% h5 v- {% c& l: ~, I
  35. # Show SP meter?3 @& @' p. s  R5 G  b3 S: t* C
  36. SP_HUD = true
    ! d9 s, F2 d* b! G: F0 C
  37. # Position of the SP border4 J3 p. O: M. W  y+ _
  38. S_BORDER_SP_METER_X = 0
    " p7 y/ u4 q7 r4 K
  39. S_BORDER_SP_METER_Y = 10 ' }5 K2 a6 G6 a! x8 s4 f
  40. # Position of the SP meter7 B/ W5 G- P3 q- z. |2 a" u5 B* l
  41. S_SP_METER_X = 0
    $ f; T: o# I& B+ K- X
  42. S_SP_METER_Y = 10$ |$ [" \5 p9 x) i& C: ?
  43. # Switch to disable the HUD' j- E+ d9 }0 \% }
  44. DISABLE_SHUD_SWITCH = 5
    . U+ Q' M8 c) g
  45. RANGE = 20* L( r  [2 O6 G6 s# y& _% [9 i0 d
  46. end
    4 T3 s4 z2 _* f! E7 V$ f
  47. #===============================================================================4 S" R8 ]4 U, M4 l  ~$ ~
  48. # S Hud
    ' d/ ?4 p; y) X! V9 ^: d9 P
  49. #===============================================================================
    1 w9 t* T- X6 b. N, b# S
  50. class S_Hud < RPG::Sprite
    " Q; {, |& _+ T% b
  51.   include MOG& w/ f! P, o: h5 |  b
  52.   #--------------------------------------------------------------------------3 F, D' Q, |5 ~' B2 x& r1 H
  53.   # * Initialize
    ( J; ^$ `' @  ?- B- l8 O
  54.   #--------------------------------------------------------------------------% s7 r+ i& W! d2 S4 N6 Z
  55.   def initialize(enemy,viewport)& C& C+ R  R8 j* v% j! \
  56.     super(viewport)
    6 V, }: M) ]! I6 p$ h- q
  57.     @enemy  = enemy
    " q  [* t( y: _9 d0 {" L% i
  58.     @battler = @enemy.battler: L" S* Q2 E5 m
  59.     @old_hp  = 03 q2 j2 K$ x4 F% t  u/ b
  60.     @old_sp  = 0/ L$ d* a0 O6 k0 J' q$ X, h4 z1 P
  61.     @old_vis = false
    : n8 k$ J5 f; y& E# u
  62.     self.bitmap = Bitmap.new(100, 100)
    8 [$ E; X) L% k2 E$ S$ d3 J
  63.     self.visible = (VISIBLE_DEF)#false
    4 R' L/ f' i) W- ]$ R& [/ R
  64.     self.z = 100
    ! u& W9 {4 ?9 v' T9 H' T
  65.     #HP Border -------------------------------------------------------------------
    4 U# ?5 [0 V; Q- t9 }- O
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    / {4 R, O5 v) A; t* u0 }; i
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)" W- }% ]! _# g  b0 V
  68.     @layout_sprite = Sprite.new7 m+ }3 O$ a3 p4 `4 ^# d- P
  69.     @layout_sprite.bitmap = @layout_bitmap
    ; n; m+ W% Z7 A. ?& u* C8 b
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)7 z) ~3 i$ I4 m1 [
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      % u& \7 T! M+ R' n5 h0 W
  72.     @layout_sprite.z = 5001' z) U- H) j( m  u9 D  ~) G* _. q
  73.     #HP Meter ---------------------------------------------------) h) u- X; T" @8 ^
  74.     @hp_flow = 0% X+ T/ t0 F9 U6 z5 ]
  75.     @hp_damage_flow = 0
    & x4 I" f: q2 v4 D% S; Y9 _
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    ; v4 g' f/ x3 {" |
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    2 c- K8 T! j7 @5 O7 ?! w' k
  78.     @hp_range = @hp_image.width / 3/ @0 E4 {% D5 {* r; A( l
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    0 v  K0 y1 q5 y; w9 \# v8 k
  80.     @hp_width2 = @hp_range / 2
    8 u5 n. ]( _) ~
  81.     @hp_height = @hp_image.height / 2& v. Q9 n1 B+ f) p  ~: m! D
  82.     @hp_width_old = @hp_width4 M' A% v" r4 N- d( w
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height). r5 N. a: G& O2 y5 Q# ]7 a
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    # s8 @4 L2 h- r6 [
  85.     @hp_sprite = Sprite.new
    7 ^+ S0 E3 L+ O! c$ c
  86.     @hp_sprite.bitmap = @hp_bitmap$ X0 O" `1 A5 q1 L+ G
  87.     @hp_sprite.z = 5002
    0 j, g& P# X+ e% P4 S- K5 I8 F
  88.     #SP Border -------------------------------------------------------------------
    * X, b1 r% R) |  [$ D
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    2 U1 V! _" Z5 l) s( M
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)2 E5 Y. ~" r% k# y+ G
  91.     @layout2_sprite = Sprite.new
    ! {* W) V" G5 |6 G. P' d
  92.     @layout2_sprite.bitmap = @layout2_bitmap4 m/ ~0 q$ c' T
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)" x3 x8 |2 @8 i: ]
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    / ~8 k% ?! S0 c! o
  95.     @layout2_sprite.z = 5001    ' h% F- P6 I5 y( S
  96.     #SP Meter ------------------------------------------------------
    0 V6 ^1 W$ P1 r3 w& x/ o2 v
  97.     @sp_flow = 0. s2 ^. E' R6 A% Q
  98.     @sp_damage_flow = 07 i- \/ O5 S& p# Q
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
      O3 e0 ~! U6 v; N% S0 N5 H
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    & k1 f; z6 q; c0 r
  101.     @sp_range = @sp_image.width / 36 \" |' x: a. v
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  : c$ @3 S2 z0 n
  103.     @sp_width2 = @sp_range / 2+ k4 f* O5 d; }3 D
  104.     @sp_height = @sp_image.height / 2
    8 j+ V3 W' b: q9 g' ?4 J
  105.     @sp_width_old = @sp_width
    4 o+ \" Z4 A5 B, G4 f- V2 W
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)4 R+ R. G% [( l& K) p" m
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    # ~, w# N$ k5 o; p% u4 A: g
  108.     @sp_sprite = Sprite.new; l& W5 Q3 H6 Y* i. l8 A
  109.     @sp_sprite.bitmap = @sp_bitmap
    + H# S) w! X/ T" u6 I$ o. Y: n
  110.     @sp_sprite.z = 5002
    5 K- S+ t0 R! D2 t, `0 K/ G
  111.     update# ?  [6 Y! _4 a1 v/ M- c
  112.   end
    ' A+ s; o1 B* ]# ?. [% M4 N0 ~$ k9 W; X
  113.   #--------------------------------------------------------------------------+ q7 M' {. q7 M9 @
  114.   # * Refresh
    3 c4 i) @7 c$ s$ s
  115.   #--------------------------------------------------------------------------
    . B7 d1 `! v; y4 c; }/ f* M
  116.   def refresh
    / m* u* e" v3 P6 v- p
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    9 d) Q, R: Z% h" t
  118.     self.bitmap.clear
    ( i0 G. ^' {' P' [! C( Z/ c7 C7 a
  119.     @old_vis = self.visible7 j) \( K" I7 }! j6 a
  120.     @old_sp = @battler.sp
    4 S6 @* a  \/ f& {0 r, P
  121.     @old_hp = @battler.hp: j2 g6 A- o% Y# S4 Q; i/ Y
  122.     hp_flow_update3 K( K* e8 O. O' h5 c' y. U" T8 b
  123.     sp_flow_update3 X7 s' r" E8 J& m( d- y. c
  124.     hud_pos_update
    * `0 i2 L$ s+ {5 K
  125.     visible_update
    - D6 J* H9 {2 l, }! ?
  126.   end3 C1 x  H! |0 |
  127.   #--------------------------------------------------------------------------
    6 I+ g3 U  X+ y2 Y1 F* R% d
  128.   # * Dispose) Y. @; O. G/ A, e$ l5 i
  129.   #--------------------------------------------------------------------------4 ], w% {9 s% \% V, G) p! b0 M
  130.   def dispose
    8 T- J4 x8 \) P
  131.     #HP Meter Dispose( Z0 O2 X3 V6 X, o
  132.     @hp_sprite.bitmap.dispose+ \! p7 A1 q- D% S) J( P/ [5 _0 @
  133.     @hp_sprite.dispose
    ) A. e/ y7 T0 v3 L2 o0 g2 u
  134.     @hp_bitmap.dispose9 V! S* t0 x3 T7 s( H
  135.     #HP Border Dispose
    7 N! [( q: D  a$ G8 ~
  136.     @layout_sprite.bitmap.dispose4 i+ o5 o# L  J6 b
  137.     @layout_sprite.dispose
    - E9 i# s+ R$ ?2 v
  138.     @layout_bitmap.dispose
    1 V/ m. I% ]4 E3 [3 C2 E1 l
  139.     #SP Meter Dispose* i; d5 h# i6 ?& S
  140.     @sp_sprite.bitmap.dispose
    : }! u- b  q% |. |  }  a) E
  141.     @sp_sprite.dispose
    ' Y7 N  g  L) p- ?: Q) ]) ?7 h
  142.     @sp_bitmap.dispose
    ! A1 s- P$ F& ^
  143.     #SP Border Dispose
    ) k4 W3 j, c7 j3 |9 K  R6 Z
  144.     @layout2_sprite.bitmap.dispose) j% R; t4 G" I' c2 T
  145.     @layout2_sprite.dispose1 O2 j! F6 [" D- F9 w2 d
  146.     @layout2_bitmap.dispose
    , ]+ y5 U5 }+ I% r
  147.   end- [- N8 @* C, d9 P+ e% b7 J
  148.   #--------------------------------------------------------------------------
    ! n9 ^/ F& J9 `6 Q* S* H
  149.   # * Update# V. ~8 O$ L3 L9 v) \
  150.   #--------------------------------------------------------------------------" W' j2 L' L  @) I
  151.   def update, j- D$ j  g: Q; s1 [1 X
  152.      @battler = @enemy.battler ( [& V# i9 Q4 F. O/ h5 w
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    ) E9 @) v$ V1 B$ u; ?% }2 U( R. C8 i
  154.      if self.visible
    - k3 d/ J) j2 l( _  r6 P. h
  155.        refresh; O5 S6 k) W8 ?2 h% ?! y* k
  156.      else$ }% B, c! P% z, w- S+ [# t
  157.        self.bitmap.clear
    % t& @3 b. l4 P0 Q# C
  158.      end* V! Q3 ?' ^7 I
  159.   end7 x) A+ ]/ G5 j
  160.   #--------------------------------------------------------------------------* r8 A7 F3 u% `8 b) `0 C
  161.   # * Visible Update0 f7 W, |  i! D0 s
  162.   #--------------------------------------------------------------------------7 @& p8 @. s% F( T
  163.   def visible_update
    - O" A% C7 w& _8 U5 x0 N- }
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    1 X7 _$ f, F8 `2 j, i& Q' d8 j
  165.        @hp_sprite.visible = false
    5 m: ]& z1 i, V+ g
  166.        @layout_sprite.visible = false  S' k. O/ W8 b% m
  167.        @sp_sprite.visible = false
    7 Y! P8 F) V' ^5 y
  168.        @layout2_sprite.visible = false: T2 X% P( X+ y2 U7 T, h
  169.     else' G; U) O0 t8 G: K; ]
  170.        if HP_HUD == true+ @1 ?6 P" e4 _9 v4 ?/ j1 c* X' f
  171.          @hp_sprite.visible = true- L6 P; R0 W6 z5 G
  172.          @layout_sprite.visible = true2 b( }6 N" o' H
  173.        else5 E# |( y5 V3 ~9 ]
  174.          @hp_sprite.visible = false
      I8 I/ N  _  ?) z, ]+ f5 f
  175.          @layout_sprite.visible = false
    * a  K6 T4 Q; |  Y* ]% H: T# t
  176.        end  1 F" \# `7 w9 a/ @
  177.        if SP_HUD == true7 k5 o; {% a1 C! d4 t
  178.          @sp_sprite.visible = true
    & w" {3 C% K% Q$ U
  179.          @layout2_sprite.visible = true; [- j$ @1 b- D# Q
  180.        else
    7 F7 ]  D1 ^4 c8 \4 }$ \1 L/ M
  181.          @sp_sprite.visible = false
    8 ]0 H! @1 }: X) a3 G. g( A
  182.          @layout2_sprite.visible = false/ Q  X& U2 v' U4 e5 W
  183.        end
    % b4 @: R+ f, r3 P
  184.      end  8 ~/ r/ |% j5 n4 B
  185.    end
    8 n: y$ U, y0 I
  186.   #--------------------------------------------------------------------------8 Z% R2 s$ u7 h2 Z& X: |0 L. S
  187.   # * Hud Pos Update' o  `1 Y+ K% M
  188.   #--------------------------------------------------------------------------( W% Z  Q/ D7 N+ z+ k
  189.   def hud_pos_update
    , T: x- [) S, ~1 C
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    6 _  ^/ S6 ~6 g  @- r- h
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    - i2 ~7 u/ x4 r% ~, {
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X0 z" g6 Q8 \& |# t4 J! M  u6 e
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    ! c6 g2 j' c+ S
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    ) Y/ n  I* Z  e' d
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  / i' @4 Y0 t* d5 |
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    $ M* n8 z5 \+ L+ @
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     ! l( f' w0 U( H1 K+ u. H/ \+ B3 f
  198.   end  
    8 ]' i$ I. F9 u- K* A% i1 I
  199.   #--------------------------------------------------------------------------: t+ u5 V0 B4 k( ~2 r
  200.   # * Hp Flow Update
    " |+ m: Z& b7 @
  201.   #--------------------------------------------------------------------------
    & L+ y7 C! ]' j9 x! U
  202.   def hp_flow_update9 u" x0 ]( z! {2 f
  203.       @hp_sprite.bitmap.clear
    0 ?1 z* v6 h: D; r- G% w! I$ r
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  8 ^) h8 L  D( f6 h: ^
  205.           #HP Damage---------------------------------& z1 ?8 d* M, Q3 s9 u9 l  E. k
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    2 I2 Y  |: D/ p) }
  207.           valor = 0.5 if valor < 1         
    * s( t" a3 @+ J+ Q) O/ n2 [: X
  208.           if @hp_width_old != @hp_width
    9 z: r9 y( K# ~* y8 a7 T% V( J, K
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    - O( B. x+ O7 g* Q" }# k! X
  210.           if @hp_width_old < @hp_width
    0 I4 X) S( q" ]" ^: b
  211.              @hp_width_old = @hp_width( F# t4 C+ K& x1 q  z, e
  212.           end      
    3 ~' Y: Z) r3 a5 ?6 O8 }
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    5 H% Y  r4 C0 P2 U) ]
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    # x, W, X; R$ W) [7 F! X0 b
  215.           end        
    , D. r! a, u) \7 w5 n# `0 H
  216.       #HP Real------------------------------------
    . v# o0 Y+ P* V( r+ [0 y
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height). T" u( x9 L; E, O+ ~! V
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    + i% f  k% R) h: {, O7 G
  219.       @hp_flow += 2  0 J6 l, d( o- H+ }1 C" j
  220.       if @hp_flow >= @hp_image.width - @hp_range! s7 a5 k  Q' q8 t+ l
  221.          @hp_flow = 0  
    ( _$ M( T  l7 B/ c4 m) E( y' j
  222.       end
    & c3 n; n) ^# t- K
  223.   end    + O. a. F  O) `6 J# b
  224.   #--------------------------------------------------------------------------
    " @5 v, E7 e# W1 H
  225.   # * Sp Flow Update) P. @: z2 W6 ?- E8 S7 x
  226.   #--------------------------------------------------------------------------
    5 |1 y' Y( S% u4 X; i  w0 h* T
  227.   def sp_flow_update
    2 n# e) _. x; m3 I$ }% @  \
  228.       @sp_sprite.bitmap.clear  V1 F8 f' s* e" H  Q
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    6 c* n0 P7 J% _% U, Q
  230.           #SP Damage---------------------------------8 V# y* J6 k1 |* w2 b8 u
  231.           if @sp_width_old != @sp_width
    6 q$ T% a3 a+ p7 S2 }* U
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    , W7 E. ~" h+ d+ C4 ?. w
  233.           valor = 0.5 if valor < 1              5 V# I/ B) N  R' ]# h' A3 v
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  % m' W" x( Y  g; p: y% Y6 Y8 x
  235.           if @sp_width_old < @sp_width 9 H1 u1 {6 m1 F9 D
  236.              @sp_width_old = @sp_width
    + ]4 T' g$ w$ V& `8 L1 E4 S! s2 t
  237.           end      
    7 w6 W# N7 T4 L* s
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    * g7 B0 Z3 E/ N7 e0 F
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    9 P4 l9 J7 c* n3 B) [
  240.           end+ u4 E# |8 i& [, c# L. K8 V5 }3 |
  241.       #SP Real------------------------------------' O* j9 w% X) H2 J+ L2 ^) D
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)6 ]9 c/ R8 m+ |. E
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)$ z$ R; Q3 a+ B' u: }1 H
  244.       @sp_flow += 1  . \! G: d* ], f
  245.       if @sp_flow >= @sp_image.width - @sp_range
    / }/ C) h# _# W9 z. F! M9 z
  246.          @sp_flow = 0  9 O9 U5 ^6 S; s$ x7 [. |4 Y9 p
  247.       end
    0 e; f9 {3 a1 z: v" a
  248.     end            . N8 w* f+ B' o
  249.   end( L' s4 @8 i" X: K: `
  250. #===============================================================================2 a" i  l1 w, M' C! {
  251. class Sprite_Character < RPG::Sprite
    . ^0 j8 O7 I/ R6 d
  252. #-------------------------------------------------------------------------------
    $ V2 y* D- g7 i" M% |: l" `4 L+ _
  253.   alias :xas_emini_hud_init :initialize$ W. {5 z' g$ R) F5 n
  254.   include MOG
    3 q8 O5 l6 T% M) \0 r  H. O
  255.   def initialize(viewport, character)6 M4 d& G, a* }, j7 I. D7 _
  256.     xas_emini_hud_init(viewport, character)
    ; s6 [3 r6 l6 O, @$ p' \2 I- W
  257.     @viewport = viewport* q* w- f! G' K# s% q% S
  258.     return if @character.battler.nil?
    9 y# m2 m# y# }. E, X
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    3 w) g+ |- B" W8 b+ r/ ]
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    0 I; X5 h" r2 f1 j7 y& \( ?
  261.     return if @character.battler.is_a?(Game_Actor)
    . {- g9 X* x5 }; f
  262.     @bars = S_Hud.new(@character, @viewport)
    ' E  v/ s  n% w6 ^1 d/ `) l
  263.   end, I, g: g# a) e1 z  w! }
  264. #-------------------------------------------------------------------------------
    ( @" h' R" Z8 {3 b7 I5 \
  265.   alias :xas_emini_hud_up :update9 f/ d; i8 R  ?+ _+ S; e" Z
  266.   def update
    7 W. e  z% z7 A; z) \
  267.     xas_emini_hud_up5 ~4 A5 P- `# X. H
  268.     return if @bars.nil?( w$ B- z. ?9 ?6 D8 [0 [5 f
  269.     return if @bars.disposed?
    ; b) r2 x# j: Y  K5 ], \# Z0 w
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    8 r1 }. f! G2 G' E+ _2 U1 D; s, e
  271.     @bars.visible = (dis <= RANGE)
    / b# ?1 W7 ^& P. y
  272.     if @bars.visible( ]! S' T: X" Q4 j: ~& S9 v4 }/ {
  273.       @bars.x = @character.screen_x# - @cw / 47 H% Z4 b: x' L  K' T& c2 }
  274.       @bars.y = @character.screen_y# - @ch / 4/ r" {" W1 x1 M$ u5 n
  275.     end
    ; V5 C$ o$ K+ t8 v9 p
  276.     @bars.update: N3 W. U8 x. s, }
  277.   end, T  d0 T& j& w: m) w
  278. #-------------------------------------------------------------------------------; C- J4 `5 K3 o; q1 Z
  279.   def dispose
    * r/ K- Y3 A+ {- T$ E
  280.     super
    ) ?( s* {4 \8 _7 a, \
  281.     @bars.dispose if [email protected]?
    4 x: [( _" S) I0 v1 B5 H3 T
  282.   end
    ' Q. n3 O4 J% o9 ~2 `
  283. end
    1 X  S) s8 _, F$ M! {+ c1 ?
  284. 8 o$ C5 ~- O. {0 V' m6 g$ A; ]
  285. $mog_rgss_s_hud = true
复制代码
9 P7 O7 z9 ]" b. ^' ?* H2 [

) U9 a5 e) n9 T' Z6 j6 T9 K' I+ [  c* c
上面所說出錯的203行內容為
' a1 C( l) O" d( T1 Z0 W- T@hp_sprite.bitmap.clear
! Y' |: I$ l- f4 }3 |5 y
( f: |6 Y+ Z" p/ C3 @6 d3 \想知道怎麼解決
) n; H6 u! |7 \8 C2 Q. c5 k! D: G4 M% ^! o( p, ^  z2 X5 @7 x
該腳本支持3.82
6 ~; h$ ^7 d; W7 J
9 ~0 K8 |4 E- K$ e* O# g下面是圖檔,要塞在Windowskin下
: f. a# e8 ]5 g5 T/ k( a& Z+ `0 `1 v7 _' j8 K5 V; m: Z
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) 9 B: t4 X2 C3 R; n: {* A
' d( O5 _: [7 g6 W4 m# K# r
; G1 i5 `/ C) z, m  S( M; N) j0 l
) F* ^7 W0 f, i0 u4 h

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
" x/ w+ O- u* [# b( `结果尝试刷新了一个已经释放的图形
" r4 O$ L, H2 \& V3 ~
) D/ R4 n% h- @& a& u4 Y, W7 i! Q! o3 b

! c8 x7 H7 M+ I/ R1 d3 _3 q虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?! B! `) ~, y5 y9 F4 Y  @: s
复制代码
不要后面那个条件貌似就没问题了。
! m# K' ?- H  j6 l1 ~. m) L9 e6 O+ R; ]$ }+ k& U
; w6 x) U+ m0 X% v
! S; W( ^/ N8 r. r6 L0 b) B! H
/ e/ |8 b$ G" W: n0 q1 u
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
+ q' J, _4 l" {; w6 ^貌似是释放的条件不合适
; c8 J1 c2 L0 N% Q% o结果尝试刷新了一个已经释放的图形

- `% m' Z- C+ W0 h( `. |: Y1 t/ v- g把後面那個條件弄掉後,的確沒問題了% X/ w6 w6 ^4 T  W6 [3 P' Y/ K
目前從關頭打到關尾結束都沒再彈什麼錯誤7 ?% N6 {+ ]: ?; V( H
非常感謝; I2 e- i  J! R3 o2 _$ E

9 M' Q$ F. M/ Q4 c不過我是參照著別人腳本改的' O6 X, R  G8 l3 r
他寫的條件式也是那樣,但我用他的沒什麼錯誤2 u: y( ]/ t. |1 S, _; I% M9 u
不知道是怎麼回事
/ l( l4 E$ a, i- o( D% U是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
4 C/ B: o) q; _; b2 V我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events: `! x9 F+ e4 m% i2 @# B
嘛..这个数组吧..我在以前试写队友的时候关注过一点' k, ?- N; }* N( H3 ]6 u
不知道XAS内部对它做了什么手脚还是为啥,
$ D! E8 _- v5 x7 D总有那么一瞬间,没有被消灭的敌人事件也变成了nil5 z3 `5 T! y* `: d2 ^% i) C' G

: V- P5 }/ @8 R" r/ u( d+ D) v3 }$game_map.events.values[@enemy.id].nil?
& {2 F, k6 W' K因此自然而然的返回true并符合条件把图形释放掉了  U! R8 }! m1 m

9 f7 F3 ?7 c& f, n! TLZ应该有注意到吧,; a0 B( @; Q+ ^( o9 m' q6 f
我测试的时候发现报错前几帧,图形会消失,
& O6 f2 y0 n& C( E( [应该就是“误以为敌人被消灭”了。5 L' }0 a  p1 `7 A
5 a9 W. X  O3 I
受限于个人水平,至今无法找出$game_map.events的真相..
" q9 a6 Z0 ~0 K. ?: d7 x; d
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 # b5 s9 K3 N7 ]2 ^5 a6 l
$game_map.events' e% L: n" Y" j, N! A; X/ X$ l3 c
嘛..这个数组吧..我在以前试写队友的时候关注过一点- y9 U7 J1 p* c. w$ s
不知道XAS内部对它做了什么手脚还是 ...

( ^1 _  W  L6 r$ Y0 X當初我把那個條件式看了三遍,都不覺得他有什麼錯% r' B( c! Z) ?2 Q6 A! Z7 T! E5 s
原來還有這麼深奧詭異的事XD+ I& E8 F5 }( J( w4 ^$ e
/ A( c2 G2 I9 Q1 j5 k
錯誤發生前的確會有圖形沒顯示出來
  S/ f4 h  f1 A) y: J3 z不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...) ?# L5 M+ ]. }
沒想到居然是詐屍了XD
: E, G6 t- z4 M+ Z9 G
$ L# T9 j' d+ ~7 K& n; A9 l不曉得3.91有沒有修正這問題...
# `5 J2 h' V& }# q不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
$ i6 l/ c9 {1 |
1 ^7 N; e7 j1 N5 t- O! O的确
5 ~. A5 _8 a& E7 d用惯3.82之后想去整3.91觉得压力甚大..6 w% M9 I! m5 l+ t0 Q5 V4 Y# c3 t
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
11744
在线时间
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”。2 u- Y2 [# Y$ F* h% b- I

: l8 t  u. O* a7 _! I/ C然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-2-19 07:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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