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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條0 s4 M; Q- u  c  e$ c( t
會在每隻事件怪物的腳下顯示3 I1 s+ a6 I" ?; Y% d) V; g( z; v
問題是不知道為什麼. D6 g+ q4 A6 t6 x
有時打怪打一打會跳出4 U3 S  @2 n& J7 R
---------------------------7 z9 ]/ N3 c! T  U5 `/ V2 d
XAS
9 T! m6 u2 b! o% ~; S---------------------------/ ]6 t* p" d  J
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
8 l0 M, b' k; {' ?$ s- ?! P9 J. U0 W9 Z
disposed bitmap
; M/ G- Q! O' \- N- M& k* g---------------------------
$ \' L: y5 o8 N" I5 c確定   
7 e# m2 ^( S5 S---------------------------2 R8 o. v6 s: b  ~5 q4 p+ ]
( R; l" g" [1 {! s" F- e
這是腳本
5 z& j0 j: z2 A( r6 \: u' T' m* n* W" Q+ E$ n3 p3 }
  1. #===============================================================================
    1 a, z! x7 s) X1 F6 j
  2. # MOG - s Hud 1.0      
    " p" U: q) q% u* `
  3. #===============================================================================
      a' p% t" @# N7 }
  4. # By Moghunter
    8 Q8 s% Y5 w0 A& p4 |$ m+ I
  5. # http://www.atelier-rgss.com6 C) _8 T/ `& m- _
  6. #===============================================================================$ K$ s# o) {/ R) S4 c( T, a: H# q) Z
  7. # Translated by Calvin624 ; |% `* x' f- k4 }. q% I3 s9 L3 n
  8. # http://www.xasabs.wordpress.com5 d2 y; t3 `% p% U# F/ z
  9. #===============================================================================( c9 u( ^' Z) }5 k
  10. ###############################-DESCRIPTION-####################################
    5 U# [0 U/ J$ ?# S: e
  11. #===============================================================================
    - V4 v+ u0 C3 |
  12. # Personal HUD – displays the HP and SP below the hero.: m8 k, u. ^# t/ h3 h! |( o
  13. #===============================================================================- O' e' O! y. w/ I6 u
  14. #; @2 M, N! V+ i  Z# Y$ f7 C: w
  15. # Graphics required:2 {. f$ ^) [0 W  X! A) W4 b
  16. #
    ; ?5 p8 d0 h- a2 r, K
  17. # S_Border_HP_Meter.png- i; ]+ ^3 \% W" M
  18. # S_Border_SP_Meter.png( ?* S) N, \% r* Y- f& k
  19. # S_HP_Meter.png
    7 |; Y* v7 |2 T$ I3 v: e: h
  20. # S_SP_Meter.png5 \" T7 \3 |4 I4 Y, Q4 L+ A- w
  21. #
    8 j" g& @8 y; L, {, M7 Y1 [* V4 B2 b
  22. # All images must be in the Windowskin folder.
    , v/ c( c& @) f9 z0 S
  23. #
    " k$ S* r7 }7 x$ ]( s* H# @6 }
  24. #===============================================================================
    ! y( [8 E( o, N6 M" i
  25. module MOG* z4 z- Q8 o% l5 Y! I9 ~& C1 \4 c
  26. VISIBLE_DEF = false  
    : M! ]9 F  R: ?% D2 O( a0 O
  27. # Show HP meter?+ f- r7 T4 R: f0 G. D/ M" v
  28. HP_HUD = true8 n" z5 K# `' p" P. _
  29. # Position of the HP border: C& f: w9 s5 D; V/ U& q" K: A
  30. S_BORDER_HP_METER_X = -2
    ) z. q7 r7 ?& D& i
  31. S_BORDER_HP_METER_Y = -2  
    # W; L6 K5 n* q2 y8 q" g) M: E
  32. # Position of the HP meter! Y2 `' x2 o3 S' x& C; d* s  L
  33. S_HP_METER_X = 0( P3 O% {# D+ g+ Y
  34. S_HP_METER_Y = 00 m  h5 W) R/ b/ t$ e5 a
  35. # Show SP meter?0 x! t6 h, ?2 I, c2 E) N4 _
  36. SP_HUD = true
    6 @7 U/ z! V1 e2 j7 M7 I6 J* U
  37. # Position of the SP border  t% R$ u/ e/ M
  38. S_BORDER_SP_METER_X = 0
    , Z2 t- \) r, j4 M3 Q
  39. S_BORDER_SP_METER_Y = 10
    : Y+ [' f+ C, ?+ p* p& r9 k  b4 W( ~3 q
  40. # Position of the SP meter" Y1 s+ P  ]; ~  O: r8 k. `
  41. S_SP_METER_X = 0
    7 V; ]" t# R5 {" f& t
  42. S_SP_METER_Y = 10
    5 Y% t9 K. O" V- }* Q* v  t6 l
  43. # Switch to disable the HUD: ?( ^. D# T% \! `- B
  44. DISABLE_SHUD_SWITCH = 5
    3 I8 M) A  x  p. b
  45. RANGE = 20) f( j* _6 n# o+ t7 w8 P
  46. end
    # n  r" M. C/ L9 R6 L/ L% `
  47. #===============================================================================
    / Z1 c3 t- v2 i# J- ]
  48. # S Hud! s$ Z% N( N- x; h4 ~, ]
  49. #===============================================================================
    8 K& M  W: q0 h/ `3 b
  50. class S_Hud < RPG::Sprite
    & o+ T; d4 D& [: d, z9 b6 ^; J! Z( f
  51.   include MOG+ O$ w6 o6 S3 i& b0 Z0 J' |
  52.   #--------------------------------------------------------------------------/ c( q/ p$ H2 a! W* Z1 }4 B, R
  53.   # * Initialize
    . k! B( h9 r8 C* N. |" W
  54.   #--------------------------------------------------------------------------
    - D" {% s8 h8 q3 K+ O* n
  55.   def initialize(enemy,viewport)
    / W# B! ]* M7 p) c
  56.     super(viewport) & F$ s/ d  ^2 ?8 t
  57.     @enemy  = enemy
    ' Z' I4 F9 y/ k! q
  58.     @battler = @enemy.battler
    - _0 K1 t) e, i8 D; `0 H
  59.     @old_hp  = 00 M7 Z1 ]9 s8 @: X: @
  60.     @old_sp  = 0) |! o5 P' p9 V! U2 j  a
  61.     @old_vis = false
    ' q; u! ?! ?* H( N$ b
  62.     self.bitmap = Bitmap.new(100, 100)2 ]- }8 f. x- T. D  V
  63.     self.visible = (VISIBLE_DEF)#false
    * r8 U. i: j3 j! O6 P2 Y3 g
  64.     self.z = 100
    3 f6 [8 `; s6 M7 ~9 a
  65.     #HP Border -------------------------------------------------------------------
    % s& \1 w7 U# M& B/ T" p
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    ' v, e1 X! A9 D
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)7 `+ K4 R* `- z. q- @, k
  68.     @layout_sprite = Sprite.new
    ) K: k8 C) e3 W. w8 V- O5 t
  69.     @layout_sprite.bitmap = @layout_bitmap
    " U6 D6 V& R$ I! U6 Y% m  c
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    * A* q5 ~& P/ N3 t" |
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      + e7 Z/ M6 K1 E& ~. V
  72.     @layout_sprite.z = 50016 z! C6 O: s# e. t# e. }) v
  73.     #HP Meter ---------------------------------------------------
    * k7 t4 t) a4 n. l+ B
  74.     @hp_flow = 0! m& k  e- [- ~" [. P" U8 ~
  75.     @hp_damage_flow = 0
    ' i* ?" }; l8 T* B! e1 T6 f
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    / P: S4 B2 d( @/ `% y7 P3 O
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    " w9 Y! f+ [1 p% ?) Z0 N4 {( h6 x( f
  78.     @hp_range = @hp_image.width / 3* Q% R# X% R1 r  R
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  . z- q1 d- h$ U- p8 r5 S
  80.     @hp_width2 = @hp_range / 2
    + i1 w. C0 c1 ~% e
  81.     @hp_height = @hp_image.height / 29 ^  r1 j" n7 z7 E# _
  82.     @hp_width_old = @hp_width
    0 ]5 X, s3 P6 \& q
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    $ X1 P8 x; W' n# f1 n  ^6 F
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    . |# l/ t  e2 |' o9 k+ g9 x
  85.     @hp_sprite = Sprite.new( W, T1 c( N" P  q; I8 l4 ?) n
  86.     @hp_sprite.bitmap = @hp_bitmap
    . I# d% I" {, F  Z
  87.     @hp_sprite.z = 5002- }+ s% x; V+ H. e. }5 ^
  88.     #SP Border -------------------------------------------------------------------7 }- i- }; t4 ^% W' E3 S
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")  L5 a7 j  a# }% T; M: i: o
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)/ M' }- b* G0 M$ f# M8 g, M
  91.     @layout2_sprite = Sprite.new* T7 A7 {- \; e; W
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    ' ]" i& A8 U# I5 e+ r  X2 W
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)/ P9 l5 m* k4 T( ^' O7 @
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      3 j& E3 d" |5 G) [# {; V
  95.     @layout2_sprite.z = 5001    + G8 e+ `* d2 ~3 c0 @
  96.     #SP Meter ------------------------------------------------------# g- \# }9 ?5 d$ w& F4 D
  97.     @sp_flow = 0/ o7 G9 K% \& z7 o: h: O
  98.     @sp_damage_flow = 0
    2 `2 O. b7 X6 K7 E" t' A
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")9 W7 d: a: s7 E
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)' S+ w' l% K6 T0 h# X# k/ S+ t
  101.     @sp_range = @sp_image.width / 3: E. v6 b+ T' E; S2 s
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  ( ~2 U8 A0 X9 _; e2 d' H" H
  103.     @sp_width2 = @sp_range / 2
    9 E3 d" H7 z3 M7 f. O8 M+ D
  104.     @sp_height = @sp_image.height / 2
    0 I% N" ?$ V5 e9 X' N+ m
  105.     @sp_width_old = @sp_width8 ]" g# ?$ B* ]3 ?) t2 M
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)0 p3 I7 h  C# x
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)+ k5 X2 X! i( B! K
  108.     @sp_sprite = Sprite.new
    9 T- Z, A9 A" ]) @1 ~
  109.     @sp_sprite.bitmap = @sp_bitmap% \/ k& [& D5 c5 r5 d
  110.     @sp_sprite.z = 50029 z& E) J! V; B* a4 W
  111.     update9 G9 r0 j2 }! _% _; `# j
  112.   end
    ( _6 c' z/ r6 X" i0 y- x
  113.   #--------------------------------------------------------------------------0 ?$ |! B! S1 m8 H% L6 T- g
  114.   # * Refresh
    ! `! @6 U' V! _- K* s
  115.   #--------------------------------------------------------------------------3 u5 u/ H6 y& B) S" e9 B1 M! I
  116.   def refresh
    8 z, K' y$ F  B2 l, E
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible4 K8 @* D. j0 u0 u5 P7 {* c
  118.     self.bitmap.clear
    * w2 l" ?) n9 `" E
  119.     @old_vis = self.visible0 {# R' c6 W7 i) e- [5 [; U
  120.     @old_sp = @battler.sp
    % |- e2 Y  h- c1 a
  121.     @old_hp = @battler.hp
    * T4 m4 U, d$ P( m  `
  122.     hp_flow_update
    . {, a; V$ V6 B; ?, H
  123.     sp_flow_update  A4 R4 v0 O" z
  124.     hud_pos_update
    3 O$ o4 c: L" \0 U% l
  125.     visible_update
    2 A2 e7 l; }" n. ]: K; x' k. t- |
  126.   end, F8 }9 ^  z8 h3 u0 e7 x6 d
  127.   #--------------------------------------------------------------------------
    9 y" x' c9 r& x' {' T
  128.   # * Dispose4 m, q' f8 O" w& u  H7 @7 o, s6 V: {; s
  129.   #--------------------------------------------------------------------------
    - ?3 k. l; v) x1 q6 z
  130.   def dispose
    ! H) Z* i( T) J' _' L
  131.     #HP Meter Dispose/ m) S5 S, U; ]6 L
  132.     @hp_sprite.bitmap.dispose6 q$ O" V6 K7 ]3 R, _+ g1 f" N! U+ s
  133.     @hp_sprite.dispose
    3 G* b% W4 a& r0 N% A4 Y
  134.     @hp_bitmap.dispose! L/ H/ }: K: b* l, u' m" F3 C/ ?
  135.     #HP Border Dispose* P3 }; ~; K7 R
  136.     @layout_sprite.bitmap.dispose7 \/ p% G( P' [  X% A$ A
  137.     @layout_sprite.dispose
    / E4 G. I  ~/ r7 U, _% Y
  138.     @layout_bitmap.dispose
    ( |+ z. Q' J3 W+ }4 D/ ~
  139.     #SP Meter Dispose! a, o) |, N$ ]" H; A! E
  140.     @sp_sprite.bitmap.dispose
      S; ~& ^) T+ S& \
  141.     @sp_sprite.dispose
    ! d- H8 H2 m) ?. c, ]- r5 ~3 I
  142.     @sp_bitmap.dispose
    0 J3 p% @3 l9 L) {, v  e) ^
  143.     #SP Border Dispose# t7 f* b) A8 m6 M4 |/ Q
  144.     @layout2_sprite.bitmap.dispose3 w" I) X/ V) i. [& m* J
  145.     @layout2_sprite.dispose
    + G+ j  |* r: a: Z# s
  146.     @layout2_bitmap.dispose4 `- K! o- L) y' V) Q
  147.   end
    ; s9 w- g  T$ k$ ~8 D% v" E+ z3 {
  148.   #--------------------------------------------------------------------------
    3 C) p% o2 U+ Z6 {, ^
  149.   # * Update
    * p7 t' N5 v3 j0 ]  g
  150.   #--------------------------------------------------------------------------
    8 {; I+ G2 ]6 |7 q: V
  151.   def update$ T0 A. T0 X8 m5 N5 \% H
  152.      @battler = @enemy.battler
    6 z4 n& j% o8 I$ ~
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?. x! \/ m6 {- [- ~
  154.      if self.visible
    1 M) `% \0 F: E" ^: n6 C( f
  155.        refresh5 @7 k1 }" f: ^$ V& i
  156.      else
      G2 ?7 m/ a% k; J8 d* e
  157.        self.bitmap.clear1 e0 _1 s: j0 b6 F8 X; c$ @! _7 A3 c
  158.      end  n9 _- X& I2 T% L5 I
  159.   end
    7 |9 Y3 }, `! z
  160.   #--------------------------------------------------------------------------
    " b% C/ ?  N* e2 N: z1 ~
  161.   # * Visible Update8 F7 @9 O! k7 ^0 ^$ V. ^: V
  162.   #--------------------------------------------------------------------------
    6 E, J$ v! E0 K5 J2 m
  163.   def visible_update
    * B3 w3 j' V7 y; T
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true& J* C2 k; k1 |: D6 i6 ?' o
  165.        @hp_sprite.visible = false
      q8 P$ v1 p0 z- h# y
  166.        @layout_sprite.visible = false/ a5 a5 r' R: A0 I* h/ K  |
  167.        @sp_sprite.visible = false: n2 J, p0 L& ]: U
  168.        @layout2_sprite.visible = false8 ?3 F! V8 L: g+ e3 @1 D% y
  169.     else
    & _3 ]) Z* ^  ]0 ^0 ?' Y
  170.        if HP_HUD == true+ N: v! P0 B: C
  171.          @hp_sprite.visible = true0 n; x9 e- J) i) \6 d" K% j! u) Z
  172.          @layout_sprite.visible = true( D" f' q9 X: |
  173.        else
    ! w8 D3 D& K7 g. j- t+ k2 T
  174.          @hp_sprite.visible = false
    ; x2 t5 r8 e8 v5 E( d) [& y( M' E4 |% K
  175.          @layout_sprite.visible = false
    * d, Y; ~3 }+ s& J
  176.        end  
    5 W: Y' P6 C3 b0 w# U" g) w- l( D
  177.        if SP_HUD == true# a. T( E0 b. `' g7 _$ P7 Y
  178.          @sp_sprite.visible = true; g0 y9 H7 H/ N5 P) S7 r6 u# ]3 d
  179.          @layout2_sprite.visible = true" G( J7 a8 q8 s/ x3 H
  180.        else
    2 Q% b- Q$ T) K) A6 D9 s
  181.          @sp_sprite.visible = false# e" ]9 r4 [- S; F8 o/ }% P: J
  182.          @layout2_sprite.visible = false# E$ ?$ h) v3 M) L
  183.        end 1 e- e5 F" t4 z9 P2 S  _
  184.      end  ! ]* J! H6 I3 w% l. I" v
  185.    end
    $ V; H) J3 _1 P5 q6 q/ f
  186.   #--------------------------------------------------------------------------
    # T7 I6 L4 z/ w6 m+ c: G0 ?6 f: K
  187.   # * Hud Pos Update
    6 U0 n, T, H2 j, c
  188.   #--------------------------------------------------------------------------' _1 a& Z7 |# p* E
  189.   def hud_pos_update& Y+ _+ g" O* c
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X) Q( \7 h. Q2 m9 Z& h' A) b3 b
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    & D# v" m6 Y  J. \" d7 g
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    2 r! ^8 u2 D- L3 a/ `8 \  r
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    2 c( T7 a5 b. N+ s/ v# b# K
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X  e# X4 B, i7 E
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  , @3 s  C- I8 y3 D; x. p7 l
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    2 g( y1 b' F# B8 A3 ^. M
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    + l5 _  G) k3 i  {7 G' y
  198.   end  
    3 i5 W& H  \1 Y5 J* h. \) j
  199.   #--------------------------------------------------------------------------% }  g1 i1 Y% c5 P7 [
  200.   # * Hp Flow Update
    ' R* V$ S2 L8 z; w+ m/ ~2 G
  201.   #--------------------------------------------------------------------------9 |- N, K2 o# @' b* Y5 Z
  202.   def hp_flow_update% L! v* r- C, e9 \
  203.       @hp_sprite.bitmap.clear; `. X, f2 ?. r- M
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  6 }; o' ?+ g3 V3 G3 |) P9 X
  205.           #HP Damage---------------------------------' G$ H! m) G/ R4 C  L  q& N( e
  206.           valor = (@hp_width_old - @hp_width) * 3 / 1006 \9 K; j, f8 u; V/ q
  207.           valor = 0.5 if valor < 1          ) }8 V8 U# k! Y! J
  208.           if @hp_width_old != @hp_width
    & z7 _) G/ H* }0 ?7 `% n
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  7 ^$ @/ \& Z1 j$ D/ I. b
  210.           if @hp_width_old < @hp_width 0 L  D2 {* O$ I9 y4 r1 I
  211.              @hp_width_old = @hp_width
    7 {' B# q& G, R% b6 p1 R* k
  212.           end        u& R# |# ~$ E/ q+ h$ F! L$ g. ?
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    ) i5 s' x7 i9 W* i( @: O& n
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    2 U# h; W0 `5 g" {4 @. J! ]! A
  215.           end        
    / x9 `: Q$ @0 X+ l; `5 Q$ @7 f
  216.       #HP Real------------------------------------- O1 \) t" G- X) G/ j
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    # X; H, m, f8 l; \. V, `
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          1 d$ N$ Q8 [7 \9 M" J, Z
  219.       @hp_flow += 2  5 ~' ]; q+ {' S( q" i2 i
  220.       if @hp_flow >= @hp_image.width - @hp_range$ W& ~9 c  V' L$ |
  221.          @hp_flow = 0  
    0 I  U8 H0 j, _* t
  222.       end
    - j( o! i9 s5 ~% A, K+ A( }+ g% r
  223.   end    5 |( I% i0 Q! Z# f* G$ }
  224.   #--------------------------------------------------------------------------
    6 Z' P: z$ x5 k# r
  225.   # * Sp Flow Update
    7 `9 I6 l1 Z/ D0 L- ^' a9 U7 _' c* N
  226.   #--------------------------------------------------------------------------  A0 P. s2 ?5 Q8 \! e9 _
  227.   def sp_flow_update
    3 @9 _! q0 g, B
  228.       @sp_sprite.bitmap.clear+ l0 E0 i- F  w' Y* X9 w3 l7 s9 P
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    & U$ |% H9 z- n5 R: q- ]
  230.           #SP Damage---------------------------------
    / e5 C% `- m% g$ K
  231.           if @sp_width_old != @sp_width
    $ w, B* i5 a# }% @1 n- H  W
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    7 u- @# |* J0 z
  233.           valor = 0.5 if valor < 1              3 J( F2 U( [; J8 W& z8 @
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  $ `6 z3 k3 \' z- a6 r+ F! ^( z
  235.           if @sp_width_old < @sp_width 4 }9 f# l6 G! w- `7 x8 s# F
  236.              @sp_width_old = @sp_width
    : r, F2 b. z) w$ E- p# ~1 @) v
  237.           end      
    9 [4 t! }, f6 ~5 r: ]
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)/ p. w% V2 ~! E0 e
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) % B# Z! d% F3 o) |2 `
  240.           end0 u% |! P/ q- w- |0 Z$ |& }1 N
  241.       #SP Real------------------------------------/ v( Z! E) G6 F' I" M7 v5 D
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height), L* Y7 x, f+ r6 B/ j# d0 m8 J% w. m
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect). W- N$ Y' Q2 B- T
  244.       @sp_flow += 1  $ A; L  D; c4 u; j' n* ?3 a. W
  245.       if @sp_flow >= @sp_image.width - @sp_range8 A! a3 ?* P/ U6 p; b& x& l
  246.          @sp_flow = 0  
    , v; S: _; G! s' {
  247.       end8 O/ G7 y" t- [" i0 Q
  248.     end            : u5 n0 i$ ]" H& q' H: @
  249.   end
    ! E+ ~# a$ L6 `/ w: ?% {
  250. #===============================================================================: \0 R+ t3 J3 ^) J  U
  251. class Sprite_Character < RPG::Sprite  S. f0 ~, _' K3 E) x
  252. #-------------------------------------------------------------------------------* x5 K) D9 r0 e4 t+ u5 b3 C
  253.   alias :xas_emini_hud_init :initialize3 p' e! b; f7 b4 I3 u/ Z
  254.   include MOG. V. x5 H1 r' c2 A! z) p" y
  255.   def initialize(viewport, character). o% v: {/ ~4 g
  256.     xas_emini_hud_init(viewport, character)
    ( t5 s8 r% X+ B8 n6 m$ z4 \6 \
  257.     @viewport = viewport& R0 ?8 {- Y* |/ p& a  a" d
  258.     return if @character.battler.nil?
    - R/ ]  x* o) [5 g. k- y
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    + `5 C8 z) [6 A% z* S1 t
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    3 c* h$ Q: b, `" A- r) C
  261.     return if @character.battler.is_a?(Game_Actor). E* Y$ l7 h8 L: |) j
  262.     @bars = S_Hud.new(@character, @viewport)2 ?8 V2 c  i- p1 e( T
  263.   end
    - B+ w7 f) [8 U; A% f8 p5 e
  264. #-------------------------------------------------------------------------------9 q3 D' B. [; \
  265.   alias :xas_emini_hud_up :update$ w( {" H6 M4 `+ I& B. Q2 Z
  266.   def update' J+ k: `- M: q! ?9 z
  267.     xas_emini_hud_up& k( |7 _1 n4 M+ V$ c, B. I) v2 J2 [
  268.     return if @bars.nil?. r* X8 w/ `" Q% s/ W, k/ p
  269.     return if @bars.disposed?
    $ g$ b! n" x) _% \
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    ) D+ g) }, d% [' r5 ~) w* @
  271.     @bars.visible = (dis <= RANGE)
    % K! @! x/ m+ ]
  272.     if @bars.visible  M& b, Y2 `& A7 g) J* y
  273.       @bars.x = @character.screen_x# - @cw / 4
    ! _7 D5 Y; l: l
  274.       @bars.y = @character.screen_y# - @ch / 4
    6 X7 R; ]8 U/ F/ g7 D
  275.     end
    9 N/ ~; h" y( j! _; n
  276.     @bars.update' ?' d6 }3 F& \+ Q4 m5 j' }1 d7 T
  277.   end) C* B3 s0 Y0 A6 ?$ t0 c, N/ k6 t
  278. #-------------------------------------------------------------------------------
    % k7 ?& J/ T+ B7 {
  279.   def dispose
    ; o, i$ _. J( j( O0 g7 K8 z) y
  280.     super! Y( `3 _6 q) q# f) a7 P9 b' }2 c
  281.     @bars.dispose if [email protected]?
    3 `' R% t, _, j8 P
  282.   end6 @0 S9 B- s$ N% p
  283. end
      i8 p5 n- [( v+ l- `1 \9 A
  284. 2 X8 t: C  @1 L( y2 ?$ s+ p
  285. $mog_rgss_s_hud = true
复制代码

% S$ g0 I& S; Q% N1 ]1 A7 X) \
; Z5 S. V' T0 w
2 J* O: p2 i7 p" a% R9 C上面所說出錯的203行內容為
; Q' l9 f/ `, j& j  w@hp_sprite.bitmap.clear. D! G9 E; {9 Z! R+ w- }
9 J: @# O, j, _! ?& i# O$ C
想知道怎麼解決* d$ T; o: D9 y3 |0 m

# `4 G2 l& T; G9 E7 j7 r該腳本支持3.82
& a* e+ {4 g" T0 o# T$ q
# V* _9 b; s0 v1 K/ b! p$ k下面是圖檔,要塞在Windowskin下
8 v, G6 A0 Y( Y! M2 x; o- d; w5 u, _, Y/ c0 n  r8 Q
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
& B8 }' r3 H4 X9 j. Q0 F7 _% z
3 A8 \/ ?% L! g. _, ?5 `2 D
7 J, X- ?+ R+ y3 E, C+ b6 X( e" ]
' K+ ]/ V! s& x5 i0 l0 N+ `

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适2 O# C  e7 z8 B8 j6 H
结果尝试刷新了一个已经释放的图形- g, K0 u6 ^  g: c+ l+ r2 _5 k/ H# Y: J
3 Q  ~, }% x& @* O" z% {

* U6 ?' \# s: b9 l8 ?/ Z  T  r
1 n+ L( P4 B( F: k虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    % j+ J$ W/ j  U4 v+ h
复制代码
不要后面那个条件貌似就没问题了。' M! i3 A0 c( T" `

6 D9 e! W- v* j( X/ ?% Q5 _. I5 U/ M' a+ C4 e& f
0 n/ }) `7 N& w, D: b7 ~# ^1 V0 q
. b8 l: k+ m& j
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
502
在线时间
1787 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 - F4 W2 m0 ]: ]2 I/ }: P
貌似是释放的条件不合适
; z) g* U8 a1 r% j) l2 I结果尝试刷新了一个已经释放的图形

! y% t% I/ z. B把後面那個條件弄掉後,的確沒問題了
/ i2 _5 X3 q4 K* ]6 _9 t$ v目前從關頭打到關尾結束都沒再彈什麼錯誤
" U. K0 p% k% ^0 h) f. r% V2 P非常感謝$ c4 O. F) m2 J* e  T+ F4 k5 C

2 z8 @3 S5 v5 `& e不過我是參照著別人腳本改的
* A7 M3 j* X0 `3 m他寫的條件式也是那樣,但我用他的沒什麼錯誤2 @) A+ x/ p9 z, Q0 c" @
不知道是怎麼回事. I5 ^/ _9 L8 e7 q
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的0 ]' X; |: T) n, u( M
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events$ c& l9 W2 _7 _  R
嘛..这个数组吧..我在以前试写队友的时候关注过一点  b' N; R' O) K+ K) J
不知道XAS内部对它做了什么手脚还是为啥,
5 l9 S4 j; d: s: \* H5 X总有那么一瞬间,没有被消灭的敌人事件也变成了nil2 e% _& ~" d( X

4 ?: k; {8 J. J) J0 C; l6 \& [$game_map.events.values[@enemy.id].nil?7 ]/ |! Q+ ]5 f9 ?& ?
因此自然而然的返回true并符合条件把图形释放掉了
" E4 I/ f) R* ~9 |4 z- t: X
+ [+ L( u$ U8 H1 \% r2 LLZ应该有注意到吧,
; \6 p1 S- A" Y- |$ P- @5 Y; {我测试的时候发现报错前几帧,图形会消失,
9 w: k! H! Z8 E$ E/ }应该就是“误以为敌人被消灭”了。
( V5 H5 k8 s& v: W
( g+ m" ]; R# `; q5 c- v; S受限于个人水平,至今无法找出$game_map.events的真相..
" k2 b$ [$ N8 H  J& w7 _
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
502
在线时间
1787 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 6 R2 L6 `7 E; ~, Y& o3 B3 ]
$game_map.events
! q% |2 o0 G6 c& d0 B& {3 _嘛..这个数组吧..我在以前试写队友的时候关注过一点. Y( z9 A, \/ i0 U
不知道XAS内部对它做了什么手脚还是 ...
2 ?) h( x2 h* F8 r- C! B
當初我把那個條件式看了三遍,都不覺得他有什麼錯6 V& R/ R  }3 `9 f! p/ N! }
原來還有這麼深奧詭異的事XD
' m6 Q2 s, {7 m; h' T$ L  P" [$ G9 t! I- z. [
錯誤發生前的確會有圖形沒顯示出來
% S, B# z1 D! Z不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
/ z7 `7 T4 Q7 T. G8 i& r( M; T沒想到居然是詐屍了XD
) I; v% W" a/ }1 {" g" h+ |0 j8 s+ H$ N  F0 p
不曉得3.91有沒有修正這問題...9 ]$ V" D5 u& q! ]  c1 F6 F
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
( S) z* |' h' Y9 R' D4 q* }3 H
' t( `2 B. H' x8 M# O% A的确
# G( Z1 E% T$ }5 C6 P2 \用惯3.82之后想去整3.91觉得压力甚大..7 s% e) K9 C$ ]. g1 u
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12559
在线时间
21828 小时
注册时间
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”。
, a! f$ Q' k2 u% t3 Z. w! g. `% t" g
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-8-12 00:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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