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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
6 `+ T; ^+ t) r8 B會在每隻事件怪物的腳下顯示$ p4 ~* e5 N" W) i
問題是不知道為什麼
( a: _7 s& z2 J! c. o有時打怪打一打會跳出) X# k1 ^) }& l
---------------------------7 M: C8 b# x) S4 K
XAS
5 ~% e5 \, V7 ~. }$ J6 ~$ F1 O---------------------------9 l# j) n( Z* \" f- l5 Z
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
; ?' o6 J1 |* c4 i. h6 V% l) h
( A6 l6 W# U0 k4 g4 Qdisposed bitmap% O2 H% E7 e3 Q- ^2 T" W
---------------------------
6 M3 [* @/ q, O4 v確定   & I7 T* u7 z: Q  N/ }3 U
---------------------------: o5 t# X7 A4 L

) M' v$ `$ G! i. U! }- R2 }! ~; d2 L這是腳本
$ I+ ?7 H; o+ R7 k2 j6 p5 C3 l9 K0 ~+ e: S: X- Y) X
  1. #===============================================================================
    0 L' n. c% `! [8 s; h
  2. # MOG - s Hud 1.0      
    7 I4 @, h# o8 @1 x+ k5 k
  3. #===============================================================================
    , ^1 Q+ m, W5 C# `  g: V/ L$ x% p% ]
  4. # By Moghunter
    / W' h' G2 ~: ]) Z" F5 {
  5. # http://www.atelier-rgss.com
    5 k& U. ?8 u3 D/ @9 j- r2 ^8 k: d
  6. #===============================================================================' ^% c0 G3 j/ @$ J
  7. # Translated by Calvin624 7 T/ O+ B2 |3 Q2 l- X
  8. # http://www.xasabs.wordpress.com+ Z: _% D' b$ m+ v+ I% h
  9. #===============================================================================
    9 S( P+ i" y/ ~5 }6 l
  10. ###############################-DESCRIPTION-####################################
    $ g1 K- x. I7 H' I9 A
  11. #===============================================================================
    6 `5 d2 o- T; l
  12. # Personal HUD – displays the HP and SP below the hero.
    3 _2 V5 D# X3 E% O% V
  13. #===============================================================================
    3 y4 d0 I  x9 J
  14. #
    8 h, J8 l" t) s5 s
  15. # Graphics required:) g4 H( @/ ~* T1 W7 F( ^$ x* \4 \2 Z" k
  16. #
    ) f: N% S* x; E
  17. # S_Border_HP_Meter.png
    5 }% L- [5 W6 Z- s  Q' }& t
  18. # S_Border_SP_Meter.png
    2 Q2 l- ~* O8 C: l( w  W& c
  19. # S_HP_Meter.png( e4 j* O' o4 C% ^! `
  20. # S_SP_Meter.png
    1 f, c! X" V4 N  w# |9 W
  21. #
    ) C" X* o, b) b& T: f+ H8 L, X
  22. # All images must be in the Windowskin folder.# R6 [3 \& v6 V
  23. #7 i* s$ G9 `! C- N
  24. #===============================================================================1 A# R5 I: V9 d* U$ \) T6 Z
  25. module MOG' n) t7 e% i7 a* t$ u
  26. VISIBLE_DEF = false  
    , x- ~9 `8 |# B6 }$ R( D
  27. # Show HP meter?
    / F! G7 X) L2 j4 @
  28. HP_HUD = true
    + |  w1 A8 o7 e; K, @/ T
  29. # Position of the HP border
    & k! D% g/ z* F  G8 D* T
  30. S_BORDER_HP_METER_X = -2
    ; q+ b9 u$ t( W8 {4 S8 E* e" }
  31. S_BORDER_HP_METER_Y = -2  9 H1 r. B3 n. Y, s2 `
  32. # Position of the HP meter
    3 E, `7 ^. d  I
  33. S_HP_METER_X = 00 i7 ~2 w: Z! Z3 ^, H
  34. S_HP_METER_Y = 0
    . Z. y$ t3 Q# Y* P% W0 S
  35. # Show SP meter?: \6 X% _4 {5 t' b, V
  36. SP_HUD = true
    5 w; I! ]: |* Y$ E+ K2 y1 S4 I) D! S
  37. # Position of the SP border
    $ \* a8 e, q3 t% |$ Z, b; t9 A
  38. S_BORDER_SP_METER_X = 06 r: A( s7 Z* M# e& T; I
  39. S_BORDER_SP_METER_Y = 10
    5 L( y* l) _6 [& Z8 ~( l" V
  40. # Position of the SP meter5 Y! |- t( c5 Z7 d
  41. S_SP_METER_X = 05 u; v- d7 K4 Z4 t* B9 Z& x
  42. S_SP_METER_Y = 10, N6 q$ _7 [$ A, A- ~# t
  43. # Switch to disable the HUD
    6 H" m: n/ X, v7 W2 Z$ d+ n8 @9 |
  44. DISABLE_SHUD_SWITCH = 5
    0 W4 M" T7 @4 ]) R; ]6 N4 t' b. A
  45. RANGE = 20
    6 r4 i0 V0 ^& q
  46. end
    ' m! u( R4 y$ t" s% K# z1 S
  47. #===============================================================================
    ; V" X1 d' s0 G4 G2 F7 |3 V( f
  48. # S Hud
    & R& ]5 y& V$ T( J  r! Z
  49. #===============================================================================- W$ a; [8 S! b- E
  50. class S_Hud < RPG::Sprite
    % d( T/ `/ O2 \: E5 ?- Z0 K
  51.   include MOG6 U" N3 w# l9 E) C$ R+ t2 g
  52.   #--------------------------------------------------------------------------
    8 ]2 H0 i* O' e. _+ D
  53.   # * Initialize
    ' X0 ~* ^: o* y) o( d
  54.   #--------------------------------------------------------------------------+ w4 h4 s* L$ \, d
  55.   def initialize(enemy,viewport)
    & I3 k9 E3 n( j$ V+ g: H. R
  56.     super(viewport)
    - I4 H$ l  l9 T
  57.     @enemy  = enemy- ~2 t6 p7 U5 A1 N
  58.     @battler = @enemy.battler. ~6 b- v: a/ D3 L9 n* ~' N
  59.     @old_hp  = 0
    4 E9 {5 }- r1 l, Q& h3 f- n" k
  60.     @old_sp  = 0
    ! B5 F! o; t4 {" j
  61.     @old_vis = false- O7 n( }7 ~, V6 \2 R  K6 l$ y2 w0 |  q
  62.     self.bitmap = Bitmap.new(100, 100)
    ) {5 u& g' b2 G3 w' d9 y
  63.     self.visible = (VISIBLE_DEF)#false  T4 W, Q0 X! f: s5 l1 Q$ z7 K0 ^
  64.     self.z = 1006 [- `' o0 n& y! F' W# @, T
  65.     #HP Border -------------------------------------------------------------------* w# ^% `2 N' t3 G
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    * d! a5 q7 r; p
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    % q+ ?6 A5 ~# N
  68.     @layout_sprite = Sprite.new" J# o- d  e" a
  69.     @layout_sprite.bitmap = @layout_bitmap
    ) N: H( I2 o/ E6 P- j* S$ Y. X9 F
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    $ I' Y; L1 U* c9 i% Z6 w; ~! _: J  [
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    4 w: H5 x1 Z: r# m7 x( p
  72.     @layout_sprite.z = 5001
    % Q5 B. c& g$ o1 I
  73.     #HP Meter ---------------------------------------------------
    " O! [: H3 d% k" h$ o
  74.     @hp_flow = 0! S2 P% }# a( a0 U  h/ D/ F
  75.     @hp_damage_flow = 0' O2 D( {; k/ w0 }* l
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")' c% y. c. F" a7 }- C
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    0 K% J! s# U  w
  78.     @hp_range = @hp_image.width / 3
    # ]3 f  \# j; I
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  $ D& h& |6 `+ Y3 U$ {
  80.     @hp_width2 = @hp_range / 2
    * ]. ?2 M5 X/ d4 C1 r( w
  81.     @hp_height = @hp_image.height / 2; i$ A5 Z, Q9 ^7 v# I* p, y
  82.     @hp_width_old = @hp_width  s- f6 Y: F! y: F0 p
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    " B$ I, d- c4 v+ m- A
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    . x$ k5 b8 Q4 _& C
  85.     @hp_sprite = Sprite.new
    . y& v# M+ }# b
  86.     @hp_sprite.bitmap = @hp_bitmap
    5 d5 B  y" d5 N$ K
  87.     @hp_sprite.z = 5002
    / n" U" T  _5 L. s" o
  88.     #SP Border -------------------------------------------------------------------: W9 d& c6 C+ J1 c0 t& l
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    3 b% V6 J+ B  z" c
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    9 L% f& r: D+ {
  91.     @layout2_sprite = Sprite.new7 a4 d8 {6 J$ A; F6 \* C
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    3 j. F( ]# t1 `1 s
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    4 o: s5 _* K! x- d. E5 C& Z4 f" J
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    * g+ ?& ]% @3 P+ P- ?
  95.     @layout2_sprite.z = 5001   
    / }8 K+ {/ a7 E0 Q8 j
  96.     #SP Meter ------------------------------------------------------
    " \4 a! k/ k/ S( g# x& o
  97.     @sp_flow = 04 g' o: R5 z! B$ D
  98.     @sp_damage_flow = 0
    9 Y& G) m* m6 m5 A
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    % U8 e1 M/ s( l; m: l
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)6 d  o! b% z8 j& N" X
  101.     @sp_range = @sp_image.width / 3
    / I9 A+ e) B$ u: w1 h# a
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  ' o) c4 J" B9 u* x1 S" W& T# G
  103.     @sp_width2 = @sp_range / 2/ i9 @) d" Q- b$ m
  104.     @sp_height = @sp_image.height / 2
    + H7 N5 d, k% w6 S3 M
  105.     @sp_width_old = @sp_width2 d  g  c5 n6 ]2 y# ?* Q- f
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)- @8 l  Z/ A' h# ?
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect); F; x' }6 P/ F  `8 B' ^
  108.     @sp_sprite = Sprite.new" B& t& J: }# O: n6 b
  109.     @sp_sprite.bitmap = @sp_bitmap% ?" q* F) V2 o: o/ ^$ \6 }. v
  110.     @sp_sprite.z = 5002
    ; ]7 E+ t$ `( S) G+ g
  111.     update
    3 \0 ]5 {, P: j7 ?0 h
  112.   end
    0 M7 n; }+ x" D* f( X1 e0 m! a
  113.   #--------------------------------------------------------------------------+ N' o5 E! f& Y1 L
  114.   # * Refresh2 z6 t3 A- Y% f- {+ Z: ?5 e
  115.   #--------------------------------------------------------------------------
    9 n8 v: M+ r! D0 g
  116.   def refresh
    0 a  @" w+ |3 O; }# l2 t6 R- \
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    % N* I2 O6 d! ~# @! L2 F8 R$ ~, m
  118.     self.bitmap.clear1 U+ {+ k" G) j& ?1 q
  119.     @old_vis = self.visible# }0 r. O/ Z6 \7 @8 j$ ~
  120.     @old_sp = @battler.sp
    ( c0 x. _4 E6 B& ^
  121.     @old_hp = @battler.hp
    ; G8 I1 \9 [2 Y% o0 p$ n; H
  122.     hp_flow_update0 U$ N; J1 J- C- I; z4 j2 n
  123.     sp_flow_update3 O- l, c. ~) p  G
  124.     hud_pos_update
    % v4 ~9 P6 ~4 A* o3 ^7 V/ \
  125.     visible_update
    - X) ^7 h: K3 s2 n+ L  R' a
  126.   end
    6 s6 M# S) E" v$ ^5 G
  127.   #--------------------------------------------------------------------------* V5 ^( }9 Q) R3 Q' F% e7 I
  128.   # * Dispose' B  K7 a: A( }
  129.   #--------------------------------------------------------------------------
    ! L$ }3 u! K# `9 v( f  s9 p( Z
  130.   def dispose/ f* s0 U  |( `" H5 X$ X$ T
  131.     #HP Meter Dispose
    % I7 o8 q2 C- W
  132.     @hp_sprite.bitmap.dispose- ?+ R9 ?) b, L. e# i
  133.     @hp_sprite.dispose
    0 s( i& O1 N' @% P/ u
  134.     @hp_bitmap.dispose9 h3 i7 I5 O. r: ?; Z$ t
  135.     #HP Border Dispose
    ! i! F  ^7 r$ k* s6 t
  136.     @layout_sprite.bitmap.dispose
    6 B5 o- ^. v' W# H; S
  137.     @layout_sprite.dispose
    8 W5 r! Q4 h. u9 l8 j8 y8 N0 J
  138.     @layout_bitmap.dispose
    - x" h$ I$ o1 r4 v2 a$ X7 F+ E% X
  139.     #SP Meter Dispose  w/ A1 I. @7 k- Y
  140.     @sp_sprite.bitmap.dispose9 I4 J' N. y8 `9 i/ A) }
  141.     @sp_sprite.dispose$ J% m, p2 N' o
  142.     @sp_bitmap.dispose* i  q& n3 z! t7 M
  143.     #SP Border Dispose
    / ]1 Q; a& M2 r& ]
  144.     @layout2_sprite.bitmap.dispose* y; R8 _8 L1 E8 |+ j  |* I% C
  145.     @layout2_sprite.dispose6 {" j7 W: A  g* N3 y
  146.     @layout2_bitmap.dispose/ A- `3 g; ?7 ^' s* Y
  147.   end
    - ^3 Z6 R, e! y: @; k1 P
  148.   #--------------------------------------------------------------------------5 A) Q, c& `2 F3 T5 M* A+ H
  149.   # * Update' {8 u% Y5 E" A0 S& D
  150.   #--------------------------------------------------------------------------
    - e& q; T7 Z3 u* k7 W
  151.   def update3 M3 S! `5 e, j8 x5 Z. |
  152.      @battler = @enemy.battler 4 Y* Q7 O, M, X$ x7 l6 V
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    0 H- O, C6 X7 l* ?
  154.      if self.visible
    4 u- W& J' g7 c, e
  155.        refresh
    4 k" k6 a: A1 s5 j' H
  156.      else
    " ~9 \% [9 Z- [8 s$ I, L
  157.        self.bitmap.clear
    8 Y- M+ X5 E3 ]1 _& E1 U
  158.      end3 c: o6 h2 A4 C
  159.   end
    ) T, q' u8 r9 @# X  i
  160.   #--------------------------------------------------------------------------
    / e: `! f/ K" P9 `. }) q
  161.   # * Visible Update1 b  u, G2 p: I  U& K1 B9 j
  162.   #--------------------------------------------------------------------------0 H* Q' B9 V# E2 Z; e. ~
  163.   def visible_update7 Z$ R: C" K: z6 z3 S5 [6 [
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true$ ]6 g8 n1 w# h, {
  165.        @hp_sprite.visible = false- g$ j& S" F  A5 V' q+ [
  166.        @layout_sprite.visible = false& @6 i* W$ z; W& |' y) J# n
  167.        @sp_sprite.visible = false
    : a: E! i4 [7 p( s$ i# \
  168.        @layout2_sprite.visible = false
    0 b( K, V' V: [0 y8 T" c
  169.     else2 @% s$ T. n- G: v! T2 u) W, a
  170.        if HP_HUD == true
    5 g( N8 a& X2 S1 a2 B: W$ P& z
  171.          @hp_sprite.visible = true1 O0 V4 g- |# \7 M" @- e
  172.          @layout_sprite.visible = true7 J3 b( m( {5 t
  173.        else
    - K) w' @, V  r
  174.          @hp_sprite.visible = false- C9 Q' Z& o% y$ x# O
  175.          @layout_sprite.visible = false
    2 \% j8 W, ^/ X- S
  176.        end  ) m* A: w4 V, }, X% b* N: s$ ]& p
  177.        if SP_HUD == true3 u% g9 }* n# E* C$ _! _' J4 E
  178.          @sp_sprite.visible = true
    5 `2 [8 U6 l8 v& w
  179.          @layout2_sprite.visible = true
    - k! o/ B- s7 o8 y$ l6 F" \
  180.        else
    ( q, q3 g+ Y! P6 }
  181.          @sp_sprite.visible = false
    4 E0 b# M4 A3 B9 I; I; A( O* d2 T
  182.          @layout2_sprite.visible = false
    / t& `; \) o/ W& M  o- v% Z
  183.        end ! c' n# ~6 `# g4 b/ g
  184.      end  ) A& d. ~' M3 c& }: j' I$ d* B
  185.    end 0 L' w/ S) M( d# x4 B& _6 }
  186.   #--------------------------------------------------------------------------
    / y; v+ i% @* F2 R' K) a
  187.   # * Hud Pos Update
    4 [. e; S& R5 t  J2 x% S
  188.   #--------------------------------------------------------------------------
    7 `2 D0 Q6 ^- R1 }: y5 Q
  189.   def hud_pos_update
    ; t8 G+ ~4 f2 V; U; p, R3 E
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    # F. A6 ?  G; C8 ~: C4 g
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  6 v9 O, g" D( b, R' a
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    0 J2 m, x; v/ g9 _) E; `; f
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y / \% C- E. ~- x0 {
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    2 V6 r! c; z2 ]2 ^3 ?7 ^$ p
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  3 J! b7 k# m3 x) }& O" B. g0 k
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    , i7 j5 _6 c' ]5 x7 k; a% v
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    - d, Z) d. ^, E% G- h
  198.   end  1 q% L5 r% c2 q+ T2 X" O; W
  199.   #--------------------------------------------------------------------------
    ) c! K0 c1 }0 t! d; O$ z0 W+ r. S+ A
  200.   # * Hp Flow Update
    4 S  E( z+ h0 h7 `, A$ l
  201.   #--------------------------------------------------------------------------. @" q( s# o: R
  202.   def hp_flow_update; m2 Z( e2 s) j% h% w, i
  203.       @hp_sprite.bitmap.clear( ?! x. \: R/ z1 _. b6 I/ B
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    6 Q) y4 U, K. W6 U8 R9 s- p
  205.           #HP Damage---------------------------------2 J2 M' v. r- L, i' }8 I
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100' g" T5 C0 b0 Q8 B, g9 q5 ]
  207.           valor = 0.5 if valor < 1            I+ e7 [2 j3 g( `, j) P
  208.           if @hp_width_old != @hp_width
    ' _* @0 O. K3 H) Z) d. D, `
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  8 A3 i3 ?! r1 o7 J
  210.           if @hp_width_old < @hp_width 4 |) T' f& ^+ t2 k( c& c- i1 F4 m
  211.              @hp_width_old = @hp_width
    / Q& `( o$ ?! u+ z6 N/ J4 K
  212.           end      
    * ~2 P0 v# p6 r+ j
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    * J3 _+ D5 `$ s8 r/ Y. c
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       % Y; i8 J7 z- D1 P1 w
  215.           end        % G: F% N* R. _% h" k
  216.       #HP Real------------------------------------9 d/ X# A( N6 O4 T
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    6 ]  l" h5 D5 H+ F4 E' f  ~# ?
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          & A* h# E  |# `' _* |
  219.       @hp_flow += 2  
    4 B6 c; K7 I- }0 h4 o
  220.       if @hp_flow >= @hp_image.width - @hp_range
    . o* _+ Z) g/ u
  221.          @hp_flow = 0  
      a4 U2 p+ D4 X# c2 l8 {9 u& P
  222.       end, L- N) L3 A0 |1 P7 d: {; {
  223.   end   
    9 Q* k% C0 g. @
  224.   #--------------------------------------------------------------------------0 E8 y$ T# v4 V8 P% R
  225.   # * Sp Flow Update+ w9 N! x* Y1 Q; _4 D5 M9 E0 W' K! m
  226.   #--------------------------------------------------------------------------/ x1 V( k' V4 {# b# N
  227.   def sp_flow_update' b, ?8 k9 ]! t- e- E
  228.       @sp_sprite.bitmap.clear7 H1 {/ D: M- e+ A# m" P
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    . E$ G- P- k$ _! H3 W, J7 j  {
  230.           #SP Damage---------------------------------4 h6 J  D, s, o; x# {0 @
  231.           if @sp_width_old != @sp_width) z! o/ D: S, b; x+ u0 W* c: s( t
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    ! S1 h2 [8 R6 ~" @$ {- _/ h
  233.           valor = 0.5 if valor < 1              - R( u7 l& l; \8 `1 F
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    ; L' L/ |/ c& g" u
  235.           if @sp_width_old < @sp_width
    / a) z2 L/ \: L' n7 x5 d6 j0 |
  236.              @sp_width_old = @sp_width
    / H, Q0 e$ V3 g$ {8 k
  237.           end      8 Y+ x# ?# ?! b+ c" X
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    ; B. O; {! `5 T. r/ \( u7 C
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)   e5 @/ z2 L5 s" G/ @& X
  240.           end
    * Q! y: c3 N; [: [, Q$ M( ]
  241.       #SP Real------------------------------------
    + y4 M/ A3 ~$ y& Q8 u  @
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    % C0 z5 ~6 U" r6 G; w
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect): i0 G3 j/ }  t; o8 P" k
  244.       @sp_flow += 1  % p! O6 R+ q  n) r0 H
  245.       if @sp_flow >= @sp_image.width - @sp_range
    . L) u. U2 U) J8 D
  246.          @sp_flow = 0  
    ) w, m0 U, `& e, E
  247.       end; y% O& C) H4 S
  248.     end            0 b% z# }- M2 H. l
  249.   end) p% G; \  T  u7 R: @! a
  250. #===============================================================================
    ! @3 p5 U& t- `+ O
  251. class Sprite_Character < RPG::Sprite
    2 F/ ?3 p4 d' E8 R! X% w
  252. #-------------------------------------------------------------------------------4 y/ V5 J. k& p* ]$ B6 w
  253.   alias :xas_emini_hud_init :initialize# n, v, t! Q3 m* n' b* T1 z
  254.   include MOG* w. \! q* v+ N1 B5 t7 W' A4 @" G) E& Z
  255.   def initialize(viewport, character)
    0 m* e6 L) N2 J% G8 Z
  256.     xas_emini_hud_init(viewport, character), J$ j1 y. P( A' o" w8 S6 B
  257.     @viewport = viewport
    8 {; |+ Z2 ~4 [2 y0 h
  258.     return if @character.battler.nil?4 i/ w$ h/ H8 X: u8 J
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    - _8 b5 W/ X' K+ {$ B0 P9 _; H) Q
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    , o' C; z$ \# j( k6 Y. e
  261.     return if @character.battler.is_a?(Game_Actor)$ Z1 Y8 Y: b. A/ |4 R
  262.     @bars = S_Hud.new(@character, @viewport)
    1 H6 ^# \( N2 y! C
  263.   end
    & ~4 [; g2 S% M! a: v& _
  264. #-------------------------------------------------------------------------------
    / C( y$ }6 B* y( X& a$ ]
  265.   alias :xas_emini_hud_up :update
    ( S% L- g6 f! g/ M! ^1 R
  266.   def update
    - N, k' ?5 i* n
  267.     xas_emini_hud_up
    / P- o- F9 O) Y6 A9 u- {7 @' |
  268.     return if @bars.nil?% V4 I. l! l+ h
  269.     return if @bars.disposed?
    ; O% a9 C0 b4 r5 U  n- ~$ ]
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs' S" S: L8 i( _+ L  F+ q7 ?
  271.     @bars.visible = (dis <= RANGE)
    & k% m2 t" l- h+ T, t2 |
  272.     if @bars.visible
    5 J' K$ ~) B/ \
  273.       @bars.x = @character.screen_x# - @cw / 4
    9 ~3 @% [; O4 k+ F5 ^( W, M
  274.       @bars.y = @character.screen_y# - @ch / 4
    , V. B- L4 h4 }* D+ r- h6 I: x
  275.     end8 ~' N! J9 X1 N- L% _7 @
  276.     @bars.update8 T' I3 F5 I4 f9 t
  277.   end& z! Y& W" I3 _' i- C
  278. #-------------------------------------------------------------------------------  k/ U! C- V1 G
  279.   def dispose) U& U6 t# L/ l' I" L
  280.     super
    2 U+ H/ ^, ]# O5 U
  281.     @bars.dispose if [email protected]?' F$ B( }, _- k4 v; G- S& D2 b
  282.   end; u. P- S" W! _8 P1 p/ X
  283. end4 s* K9 f3 [$ @2 W+ V9 s0 u
  284. 0 B- N; @9 E4 W* ~* g
  285. $mog_rgss_s_hud = true
复制代码

: y. j  W/ Y* Y0 |* I3 F
6 q1 w/ V/ w5 L/ g7 ~8 W
" E7 s% N1 M4 s% E7 Q0 P2 U3 Q上面所說出錯的203行內容為
- Q, S4 @; V0 M' r+ T@hp_sprite.bitmap.clear4 k- Y6 u* {$ X% a

0 V: u* u9 f: e  N) X想知道怎麼解決" m/ G4 r! |# u2 o- ~% y  ?
' U  i) n+ U, [& a  \& f" h$ v
該腳本支持3.821 z# T7 J2 q" @: E

. V0 h1 k+ ]  r! I: A下面是圖檔,要塞在Windowskin下
1 r, }) [' A- D4 z9 C' _  H7 p* l
+ P) _% B) f) }2 m S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) 8 j3 R! X) Y3 b+ q4 {. Y
% Z( `: P- Z/ E" a$ |; ]' b. ^  ?

1 y' ]8 W) @+ _: Y4 Y
( V# b; l0 C1 S0 |7 l+ W' A! j
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适5 g( F6 D8 q& F% `
结果尝试刷新了一个已经释放的图形
& N' M# S( I, K( L% w$ l+ M7 h) l! E9 F
+ H0 M1 V& s: `2 F; `% h

: h% V- _& z) j/ J) g" L: ]# `虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    / L) N9 J0 N: _; W# ^! N. B
复制代码
不要后面那个条件貌似就没问题了。: Q8 q  E8 f/ C0 b
! ^8 \% D; A% l  v4 Y5 Q
* a) W0 @9 d$ l3 l. c1 k, y

4 z- N8 [9 e5 f9 G7 g: r, L7 n1 {) N! V0 n1 x- y  Q2 L
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
507
在线时间
1789 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
' S1 @; V9 ^" _' h/ T貌似是释放的条件不合适" J6 O% q* D6 b7 [! \' L7 _
结果尝试刷新了一个已经释放的图形
- x& N& J! s* z7 e+ H% x& x8 T
把後面那個條件弄掉後,的確沒問題了
' s) q; E' M: Q- h$ Q目前從關頭打到關尾結束都沒再彈什麼錯誤7 v3 a% R+ V% ]0 e; d; V- W) b
非常感謝
1 O, C$ w, H% P3 l9 g% j9 g
8 Z* c& @1 f, ^6 U, l) H不過我是參照著別人腳本改的$ c, _" i6 W7 b( q( i/ z6 q
他寫的條件式也是那樣,但我用他的沒什麼錯誤
% b: P$ X& w2 R7 N  K$ ?, }不知道是怎麼回事5 `/ P: h5 v1 C5 F
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的! O1 V3 b9 m/ A( o! n! v/ a( o
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events; v: {! F! J+ o$ w
嘛..这个数组吧..我在以前试写队友的时候关注过一点+ U, ^8 D8 x- m4 V. Z) Q4 x( o7 u
不知道XAS内部对它做了什么手脚还是为啥,
" `! H( y- K' d/ Q5 _- m7 z+ Q总有那么一瞬间,没有被消灭的敌人事件也变成了nil( ^! W4 k2 l+ P2 z4 l, o6 j
' t4 x$ N6 {, S# U& I9 w
$game_map.events.values[@enemy.id].nil?
0 e, \6 L) l9 `因此自然而然的返回true并符合条件把图形释放掉了- q6 C8 [: H+ n( ~% H8 `0 `
& d5 q+ S: V9 j7 L- g  d# x
LZ应该有注意到吧,
7 S: q! h# t. A& p! g) y我测试的时候发现报错前几帧,图形会消失,
# C0 n# u  `" \% V: V. `4 V1 N应该就是“误以为敌人被消灭”了。- H! R* Z$ K* E0 q
) @& V4 Z0 h$ z5 y# P6 t9 {
受限于个人水平,至今无法找出$game_map.events的真相..1 T0 ~4 n3 X5 i+ \
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
507
在线时间
1789 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 8 B4 k' h- Y1 [& i& i& H, a% r
$game_map.events. D1 x5 N# v8 F$ s- F* V3 E0 A
嘛..这个数组吧..我在以前试写队友的时候关注过一点: s  Y+ m( F! D! ~' z7 E
不知道XAS内部对它做了什么手脚还是 ...

3 R3 R( a# c# J# f6 H5 ]/ q當初我把那個條件式看了三遍,都不覺得他有什麼錯1 T, ~% K- d& H
原來還有這麼深奧詭異的事XD% K) F+ X9 s& N% K) o6 \

, g3 @; u+ B# ]6 [* B錯誤發生前的確會有圖形沒顯示出來
0 w' `1 C6 D* y/ O; y" {不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...$ N1 A$ p( `/ D, v# ?1 G
沒想到居然是詐屍了XD) B7 D8 T2 P6 V8 P; x5 {& a4 E
0 U+ f7 P- \3 W% ~* g
不曉得3.91有沒有修正這問題...% y4 H5 Y2 \" K2 ~
不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。. L3 Z7 [; N; d# Z1 _
, A# {; k+ l8 B( I  I( b, ?
的确
- j8 l& {1 x! N+ ^1 ^, J7 I2 }用惯3.82之后想去整3.91觉得压力甚大... u0 N' M. @! D7 u
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。
& i0 `1 \: M" M! o% H* F- _2 }  F* m0 H# w
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-9-19 00:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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