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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
1 D( k& N9 L! P4 N% h2 w會在每隻事件怪物的腳下顯示
, D) f, d; r- m, N問題是不知道為什麼
, X) S" T- \) E: Z有時打怪打一打會跳出1 ~& s/ p- @+ t( c) a) i& U/ \
---------------------------1 t: U9 ^/ G2 G
XAS
' |! B8 m) G! s/ R7 M/ [0 M3 N---------------------------
* a6 x8 P! D! g: _9 i脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。+ p3 L# w' i: c/ t/ q% }. _# @
1 p% V) `1 X, c" Z7 D
disposed bitmap% s+ M7 ~" `. \) t; q
---------------------------  V; H4 J" s9 n6 J
確定   2 ~6 H/ `! V6 U: P
---------------------------7 A9 ]6 Q) b* [' x. m7 u* f6 r

5 B" h; J) c6 W2 o1 p5 b這是腳本
$ K" \  O8 ~( m& y1 x
# U# o- y4 Y( n5 Y
  1. #===============================================================================; A9 A, [: W- f! n! s! @
  2. # MOG - s Hud 1.0      
    % ]( P. j2 n& Q
  3. #===============================================================================, z8 `! }! K2 G6 O
  4. # By Moghunter   @% M! x# X4 r9 H& x! W
  5. # http://www.atelier-rgss.com: [+ B4 O5 O2 P2 N7 a" Z
  6. #===============================================================================
    4 j$ v/ ^* o6 C6 b  O
  7. # Translated by Calvin624
    # P& B/ C! I( v
  8. # http://www.xasabs.wordpress.com+ [3 L, Y; v" ~% k  K; T6 a
  9. #===============================================================================
    ' K* v" T+ V( z4 f: m4 F
  10. ###############################-DESCRIPTION-####################################
    ' _$ e. V: S& i" D; d
  11. #===============================================================================
    - I$ G* W! X, P: S. {2 `& V. m
  12. # Personal HUD – displays the HP and SP below the hero.
      h* u# K  F) P9 r
  13. #===============================================================================' |( |0 N8 \8 D% A* m+ u6 E1 R
  14. #8 U7 h7 @4 v( v  r4 R: Q& b
  15. # Graphics required:
    ) I- Z: q& y( s7 Z, ?: d. z& l5 x' R
  16. # : m8 o, g6 S* [( k) b- m% `/ \
  17. # S_Border_HP_Meter.png! e, \+ [: q7 d: @1 o
  18. # S_Border_SP_Meter.png) {+ y/ i4 [( c" o5 _  T
  19. # S_HP_Meter.png/ U: r# f( ]9 h3 Z' m5 ^) P
  20. # S_SP_Meter.png
    9 V6 K1 d" {/ Q$ @
  21. #' N0 c5 M5 Y' c- g" ?0 Y
  22. # All images must be in the Windowskin folder.0 o- ~" A+ f! e
  23. #
    + S) o1 g' I( x$ X5 ?! d* p  A& B
  24. #===============================================================================
    8 H2 c/ w1 e- G( m
  25. module MOG$ o* a$ o! p, D# t9 k
  26. VISIBLE_DEF = false  3 o4 C* `$ B2 f* f* m
  27. # Show HP meter?3 ]+ k6 _( Z/ ?6 O% E( r
  28. HP_HUD = true
    ( A3 r2 c8 c' T6 w7 A$ H6 T
  29. # Position of the HP border
    5 F0 e2 i! m. Q) ?/ R" G7 t4 V
  30. S_BORDER_HP_METER_X = -2" l& Y: n. V& W$ Z, K7 L
  31. S_BORDER_HP_METER_Y = -2  $ W' y$ o+ T! i$ \4 f( h
  32. # Position of the HP meter
    3 I9 M' k5 P* |+ g# o
  33. S_HP_METER_X = 0# o, h& C- K  a+ ]9 B+ u- \7 F7 z
  34. S_HP_METER_Y = 04 P) t% u6 N/ A6 b5 l. W! S
  35. # Show SP meter?
    9 x+ }5 c3 @" W+ ?! r- l) H" @
  36. SP_HUD = true
    , y0 D- f+ V: g7 Q
  37. # Position of the SP border- p" L& p! u2 Z. a6 U0 s. l" a/ _
  38. S_BORDER_SP_METER_X = 0, d# D- t% e0 _* _# J5 F# [
  39. S_BORDER_SP_METER_Y = 10 0 ^$ Q4 i; ?; y* V
  40. # Position of the SP meter
    ! D* I* f9 h8 A* r/ K
  41. S_SP_METER_X = 0
    : Q: \* B5 z5 N. l* I0 U$ C
  42. S_SP_METER_Y = 10
    / ]; f2 \2 e- t' }7 g
  43. # Switch to disable the HUD; @) I! \& m) q* ]& ?9 ^
  44. DISABLE_SHUD_SWITCH = 53 u$ E$ Y* E: o, ^
  45. RANGE = 200 m4 C/ r% m; C
  46. end
    4 h! N) ~( ?' o2 }: G8 u
  47. #===============================================================================
    3 B- Z. \% [" Q" l0 r# H- F
  48. # S Hud
    & {% D) J  |9 y; K* r5 k1 `% b+ z
  49. #===============================================================================
    3 D, w- s$ X, K( j& o: Y- R
  50. class S_Hud < RPG::Sprite
    % f0 Y* z+ p1 Z2 Z6 b
  51.   include MOG! |9 ?. L; A, h" f
  52.   #--------------------------------------------------------------------------9 u6 k4 c( |( v5 W# Y2 b6 Y; o
  53.   # * Initialize
      ?/ F+ a0 I# w, w( u6 K
  54.   #--------------------------------------------------------------------------# q! J( E% W( f' d
  55.   def initialize(enemy,viewport)' c" W$ H, t  N" w' \* g* g  Y7 x( y
  56.     super(viewport) 1 r' n8 r. U* q4 j( h
  57.     @enemy  = enemy
    9 h6 h" _) T6 \/ @% s
  58.     @battler = @enemy.battler
    + C* ?! v  w, z. [, |
  59.     @old_hp  = 0
    ( B6 C: i" O! V5 e7 H9 s9 L: f
  60.     @old_sp  = 08 m+ K" K' K, H' C7 L1 z2 e1 h1 W
  61.     @old_vis = false7 s& X/ {% L: o* m6 a: w
  62.     self.bitmap = Bitmap.new(100, 100)
    - e6 f: L8 H5 k# [$ R1 n  T. W
  63.     self.visible = (VISIBLE_DEF)#false
    ' f$ _# c" @6 {6 m; D) Z+ a
  64.     self.z = 100
      S- B2 ^! ~! c3 H( W
  65.     #HP Border -------------------------------------------------------------------
    1 [" r- {  z) Y7 D" Q: _$ o3 S0 L3 s
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")4 f) y, y6 S7 o7 Q3 f' U
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    % r5 c% ]# r8 _: e5 M9 |
  68.     @layout_sprite = Sprite.new0 |$ O5 x+ c0 ], h# T
  69.     @layout_sprite.bitmap = @layout_bitmap) L- q$ [' ~  v+ F9 L+ z
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    ; k- c8 y: K# w- b: E  \$ g
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    7 n* U/ u. e. G0 n$ P
  72.     @layout_sprite.z = 5001$ U! O$ v  W$ r
  73.     #HP Meter ---------------------------------------------------
    : C2 M* B( l* ^& T9 f3 S
  74.     @hp_flow = 0
    ' ^: s  `9 h/ E6 ]- O/ J
  75.     @hp_damage_flow = 0
    8 @: g6 F( [) d  A
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    4 m( b3 w3 b) E& D/ b" ^: C
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    : Z) G/ b3 A4 ^8 H9 |3 r0 h) t3 w
  78.     @hp_range = @hp_image.width / 31 k4 [( f& N9 b1 W, _0 J; R
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    * W7 r# A+ N( ?7 Z& ]# p
  80.     @hp_width2 = @hp_range / 2
    5 B' t9 [' f1 T8 b2 f0 z
  81.     @hp_height = @hp_image.height / 2; C/ O% c, Y: k+ c: n( R' y
  82.     @hp_width_old = @hp_width
    5 A- G0 _1 A1 y, S; c
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)# h/ X9 \' l  P7 W' _
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) / i" K+ C% b3 V, r2 b: }+ ?
  85.     @hp_sprite = Sprite.new! t( H8 z4 q1 n7 o' v) x+ F
  86.     @hp_sprite.bitmap = @hp_bitmap
    ) f4 X7 s2 U/ _
  87.     @hp_sprite.z = 5002" f# F* s# E! ?9 R
  88.     #SP Border -------------------------------------------------------------------/ x+ @$ y/ U# Q
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    - ~9 n4 K1 Y, d' {
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    : }' Y) |# u% I
  91.     @layout2_sprite = Sprite.new
    % K& k, [$ [, W' U
  92.     @layout2_sprite.bitmap = @layout2_bitmap2 @6 e' i4 ^' ?! C5 K
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    7 R8 k/ E: T. V5 D9 n# F5 `
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    : t8 w' B; @  V+ V
  95.     @layout2_sprite.z = 5001   
    . L/ j; x% H; U
  96.     #SP Meter ------------------------------------------------------2 `) D% i" N% _# R, d8 a
  97.     @sp_flow = 0
    3 Z& u4 |! _7 x) Q2 u1 o  ~- g) R0 S
  98.     @sp_damage_flow = 0
    5 p" t& i8 t7 T. ]8 R
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")- f, h; F' V$ c& K- _% q
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)( s, O' N2 I9 J, ]* Q
  101.     @sp_range = @sp_image.width / 3
    # l5 C* y# |0 c# \
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    " e0 r5 `! E' b. g7 f% R
  103.     @sp_width2 = @sp_range / 2
      ]1 l) x! M/ M0 a0 p: a+ A
  104.     @sp_height = @sp_image.height / 2
    ) j- H- Z6 u3 K# m8 H! u: p2 G
  105.     @sp_width_old = @sp_width
    - N8 |) k2 {% J/ i
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height); b  j* B7 i( D" \) M" w" q6 i
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    6 n, m% X' V  c4 \. o
  108.     @sp_sprite = Sprite.new0 ?1 u4 y$ I+ Y) W$ H6 X- q
  109.     @sp_sprite.bitmap = @sp_bitmap
    3 K# \" B  P9 G: J. z. T
  110.     @sp_sprite.z = 5002
    , r' L" c# s* t* Y6 @
  111.     update% o, e9 `' {$ M* w7 }  _5 `
  112.   end
    1 G: t; l  o7 y) J
  113.   #--------------------------------------------------------------------------
    ! g$ q& K# R1 ]* E
  114.   # * Refresh% y0 [. `  I' [& C, u
  115.   #--------------------------------------------------------------------------" J( c% F+ N5 J1 X. L
  116.   def refresh
    9 [7 |9 y" g$ ^& X
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible# S& J8 [5 i) L9 Q3 Z4 m, S
  118.     self.bitmap.clear
    # [- `# q; R. O! m3 c) a4 V6 |& E
  119.     @old_vis = self.visible
    $ S7 ]& B0 Y$ |/ _' ]- x) V3 F
  120.     @old_sp = @battler.sp
    + \- p: S2 }7 W% M4 ]; P5 U* d) y
  121.     @old_hp = @battler.hp$ V3 o& Y3 ?/ v5 y2 \
  122.     hp_flow_update
    ; L3 Z9 Z. _& A3 |3 ~8 A
  123.     sp_flow_update" t, X3 K5 h  z. [
  124.     hud_pos_update/ D  |( k, [% W6 l+ U- [8 S: o" b
  125.     visible_update
    3 {# K9 T9 B  E1 D7 q
  126.   end
    4 K' X, K; p+ i
  127.   #--------------------------------------------------------------------------
    6 |9 G- p& W% q2 {! ?3 O$ K
  128.   # * Dispose0 h+ T9 |& `- u- L( r) W
  129.   #--------------------------------------------------------------------------3 J# ]! p4 h$ f( {
  130.   def dispose4 Q" e. C$ w# c  O
  131.     #HP Meter Dispose
      D' `8 j2 G$ ^% y. f" ~
  132.     @hp_sprite.bitmap.dispose
    ' e1 @) C  F: e+ E/ J
  133.     @hp_sprite.dispose3 Z* O: Y4 Z1 w
  134.     @hp_bitmap.dispose1 g9 ^6 L( m" U, N  X
  135.     #HP Border Dispose
    % K& k& n# \& ~5 ]
  136.     @layout_sprite.bitmap.dispose0 z% a& N- I! g" M  }  Z! f
  137.     @layout_sprite.dispose% q$ A6 f! l4 N5 p  i; G: c+ ^
  138.     @layout_bitmap.dispose
    8 @% C+ ~3 \6 c1 S
  139.     #SP Meter Dispose
    8 Z8 u' o8 i, s# h$ O. Q: G
  140.     @sp_sprite.bitmap.dispose
    # J; O+ e# Z) ]7 W2 O3 J' c2 i
  141.     @sp_sprite.dispose
    6 o0 j3 m3 n- s1 G6 @  x; H) C" _9 y
  142.     @sp_bitmap.dispose  s! V* F" _: l1 c
  143.     #SP Border Dispose! s0 _: {( V6 s% r7 z$ s% |
  144.     @layout2_sprite.bitmap.dispose" P. H, n+ b3 j: A3 u3 t
  145.     @layout2_sprite.dispose
    6 T6 o3 U) {6 k$ m, k# i6 R# v
  146.     @layout2_bitmap.dispose
    # J% D. j( q, f) i/ P4 G3 W* R+ j- Q
  147.   end
    0 x' s. T- P6 m: N; f# K
  148.   #--------------------------------------------------------------------------
    : l' ]# a: S% d! Y
  149.   # * Update
    ' {% Z7 z, \; a; n4 L% r) n+ t
  150.   #--------------------------------------------------------------------------
    # ?. ~! q( t4 y0 \4 I
  151.   def update
    7 O7 B- K  d* e5 C- P5 U
  152.      @battler = @enemy.battler . y; Z  R3 i+ H2 d* R/ P2 F% |$ c
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    ) T6 D& ^2 n3 f. I$ ~2 R
  154.      if self.visible- B7 i1 \* n9 f# N3 ~# {
  155.        refresh& ~7 Y. }% l5 {
  156.      else
    ; N$ ]+ N1 V+ e6 o+ u% S6 G
  157.        self.bitmap.clear& l4 W7 P# l. Q
  158.      end
    5 F4 z( n! V( ^6 H/ a: a
  159.   end+ U0 z; }' k# A/ ]
  160.   #--------------------------------------------------------------------------) d: |0 f$ V6 n9 Q
  161.   # * Visible Update
    4 h; p$ Q" Z) @' @! n8 n! F6 D
  162.   #--------------------------------------------------------------------------
    , M: w& V! q: v* \/ g/ Y1 o
  163.   def visible_update
    0 L% p, t' }( d$ Y0 b! U3 F; x
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true% F1 O$ a. X* Y( e6 Q! g2 r, y% Q; p
  165.        @hp_sprite.visible = false& P8 H  p3 F% M$ H6 M8 @* [
  166.        @layout_sprite.visible = false5 \2 l( ~9 K& l; |
  167.        @sp_sprite.visible = false* H. d8 k- C& K/ u1 b% ?6 [
  168.        @layout2_sprite.visible = false
    & v, F9 n' s9 l7 B4 N; M0 k! I
  169.     else, N) B; }* Y; n  e$ `* o
  170.        if HP_HUD == true
    + a" ^" j4 y6 t1 C" F( n; L4 L
  171.          @hp_sprite.visible = true
    ' Z0 O; O4 l/ ?; Z, d: Z
  172.          @layout_sprite.visible = true
    " Z* l8 B+ X4 F' \/ h: l' R
  173.        else
    ; A$ L; a2 q5 f+ }9 Z7 `: e$ T
  174.          @hp_sprite.visible = false
    ! Y; K8 h5 i8 }5 t' [
  175.          @layout_sprite.visible = false) y; m, P2 g$ M  |0 N2 l
  176.        end    x$ I9 f# B* }1 _! Y1 T2 J
  177.        if SP_HUD == true8 B. ^5 ^. v; a* z' W. h
  178.          @sp_sprite.visible = true  r' x  m5 Q8 \$ [; ^8 o' P6 a
  179.          @layout2_sprite.visible = true
    / ^5 A2 f8 \7 f$ H
  180.        else
    ) @3 G; `4 N% @; j) b& E( n. |3 U& C
  181.          @sp_sprite.visible = false
    8 [7 f5 l4 P7 s5 n, H/ e
  182.          @layout2_sprite.visible = false, F5 I( }" [/ T7 Z7 G' v. r& a
  183.        end
    % [. ^* |0 a% V* `( l
  184.      end  ! w) [6 j" m* n9 n+ t
  185.    end
    # |% S1 x# Q; `
  186.   #--------------------------------------------------------------------------) p8 O9 L: v/ |5 ], }+ R; u
  187.   # * Hud Pos Update. a) N0 H7 i/ A+ y/ h
  188.   #--------------------------------------------------------------------------
    % {5 C4 o% j, V: R. U. y
  189.   def hud_pos_update* P3 V5 T3 f( O$ C, `% [: s% j
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    ! Y4 W; A/ O+ H. B, H; ]
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    + \( q9 ]6 E+ E$ O
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    4 Q% s, Y+ U- h- ?
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y ! y7 W2 O8 V$ v) n' H2 Y
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X$ i, I6 S+ P3 Z) ]9 v, f
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    6 t- R. v( i/ y3 R- s2 H9 u
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X8 k+ ^4 Q  t0 j5 B3 I
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     * R5 P/ @% i' x- Z, c3 w  U
  198.   end  
    2 D4 Q( w& }1 V, y7 \% a3 B+ ~
  199.   #--------------------------------------------------------------------------
    1 w' M: f+ G: Z$ l& `
  200.   # * Hp Flow Update" ]* ]$ c# d% ?; W# m0 H
  201.   #--------------------------------------------------------------------------
    " j: X+ d+ v, I# C5 ^7 {6 w; J
  202.   def hp_flow_update6 T' k% K9 p. Q% v1 h3 f& s  {" P# T7 U
  203.       @hp_sprite.bitmap.clear9 A8 N, ?% N, s( t( y' A" e
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  2 m& j3 A! c$ K( f- ]6 ^
  205.           #HP Damage---------------------------------3 P8 x+ O/ }& S  k
  206.           valor = (@hp_width_old - @hp_width) * 3 / 1008 L% L* z1 ~1 R+ ~3 Q
  207.           valor = 0.5 if valor < 1            p7 F& G+ o/ ?7 o
  208.           if @hp_width_old != @hp_width  o  ~! |1 R; S3 g6 s8 R- M: Y
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  ) f6 k+ w7 c' e" Z  c+ A
  210.           if @hp_width_old < @hp_width : Q# k. Y8 \  C. @. {0 T
  211.              @hp_width_old = @hp_width+ f! o# ^3 h) {
  212.           end      $ T: @. @) R, f/ @% E" s, I
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    * W6 N7 }! r3 J2 j: c$ p
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       3 _0 t4 e5 U  r+ l. s% g# t6 f
  215.           end        ! l8 F9 Z- j$ s* v/ B) S
  216.       #HP Real------------------------------------/ [1 @; W- P1 S5 l; R: c9 m! r
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)' [* X$ `% f) V: Z4 y- C
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    - K+ B+ y( M7 j+ l& @2 }
  219.       @hp_flow += 2  ( i; W+ @# N- a, I, T. I2 \, A; S. t
  220.       if @hp_flow >= @hp_image.width - @hp_range
    * ~& v+ M0 R) ?& ]5 f
  221.          @hp_flow = 0  
    6 k% f2 C. B1 [- V8 {' b' E
  222.       end0 C* v. v/ [0 F* T8 l/ |( Q
  223.   end    ' ?- Q6 v2 R! R: a
  224.   #--------------------------------------------------------------------------* Q" q9 p8 e' h! h
  225.   # * Sp Flow Update( j  o# v& m/ Z4 |* O
  226.   #--------------------------------------------------------------------------
    % d# P2 U' I9 l) B% @
  227.   def sp_flow_update
      j7 y, E# d8 D- P2 S: u; G
  228.       @sp_sprite.bitmap.clear; j+ J. x$ X: o$ T' z$ ~( W% U
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    # P: n' p  o* `; Y1 O. R
  230.           #SP Damage---------------------------------
    , R3 k% v+ \. E; C- G/ B: `7 |
  231.           if @sp_width_old != @sp_width
      N# u) k. t% c. _" Q
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100" R9 Y, Q+ n( M
  233.           valor = 0.5 if valor < 1              
    2 u- C9 V% _' x3 ?- g- Y; `
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  / g2 b+ v! f7 [  R% u+ j" }
  235.           if @sp_width_old < @sp_width
    2 t( ]3 M7 \8 Z. c: C+ d; n
  236.              @sp_width_old = @sp_width1 O! j$ o, A! Z: g0 V
  237.           end      
    + K4 y: b5 E4 E4 L/ ]$ `% `& Q! z
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    * H: Z4 }3 K3 S' f* t  B
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    7 X( E3 R7 @7 W8 U- L
  240.           end
    ' [: f4 R% a/ B. z% O* _9 L" R$ O
  241.       #SP Real------------------------------------3 S. K9 ?/ P: _
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)6 Z! c& e, [7 F. v* ^0 q3 X& x
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    ( B, p, w, N# I* T1 o* q3 R
  244.       @sp_flow += 1  - c1 w! x3 d) o4 j, Q- p* u; |3 `. ~0 t
  245.       if @sp_flow >= @sp_image.width - @sp_range6 u9 ~% E3 S5 P
  246.          @sp_flow = 0  
    % `7 e0 s) m$ p2 J' g1 x: l( T
  247.       end
    6 _% H( [  @- q( q# I& i
  248.     end            0 L& D) y+ x) G0 ]% R# w
  249.   end: w+ T/ i+ T9 o5 a8 E
  250. #===============================================================================
    , \: R$ K, _! g+ z, c3 e
  251. class Sprite_Character < RPG::Sprite3 _4 V% t5 u5 R7 p& t2 q3 i
  252. #-------------------------------------------------------------------------------3 q. {, \! G. p5 l6 p- B
  253.   alias :xas_emini_hud_init :initialize
    # M2 z1 y2 c9 N- p0 k% ]+ E9 W: V
  254.   include MOG
    6 j7 }, o* [3 [+ D+ G
  255.   def initialize(viewport, character). ^9 N. E4 q) f, r1 U1 c
  256.     xas_emini_hud_init(viewport, character)
    " O6 l( O) u0 t
  257.     @viewport = viewport
    + F- z4 z9 E" I2 U# Z
  258.     return if @character.battler.nil?* w" K5 A( t  t1 G0 n+ k" g% o! H; R. A
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)9 M) b7 s* C7 c. M$ ^, w
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)+ F: v! T( q" {) w
  261.     return if @character.battler.is_a?(Game_Actor)
    , ?7 Q5 ?9 _& S* ~! v7 V4 X( R, k
  262.     @bars = S_Hud.new(@character, @viewport); d6 f- K0 b: e! D
  263.   end% R! W7 r+ |) Z& Z3 o" r" c
  264. #-------------------------------------------------------------------------------
    % j4 L6 O) f( C0 S$ I& q* S2 |
  265.   alias :xas_emini_hud_up :update
    4 g; K6 s0 \6 Y5 {5 q- q
  266.   def update3 [/ e$ M  L$ u
  267.     xas_emini_hud_up8 J: F/ H0 ~/ P4 ^+ K' H
  268.     return if @bars.nil?
    2 [; f- w; L( \
  269.     return if @bars.disposed?) U& g- M3 E( T* V/ [5 `2 ]! _: S; @" [
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs. f- Y0 X: |5 y- L8 G2 J5 {
  271.     @bars.visible = (dis <= RANGE)
    * ~' z% {, S; Y& R5 s
  272.     if @bars.visible
    ( Q6 j8 L; e7 u0 I& A; p
  273.       @bars.x = @character.screen_x# - @cw / 4; f, z  b9 z( [) b8 ~" h1 W# J+ w: N
  274.       @bars.y = @character.screen_y# - @ch / 4
    " B) S. `. `( B) x) E
  275.     end
    % p- _. `. R9 q/ j6 r
  276.     @bars.update2 L5 ]/ k$ P+ r9 _; s( c) j% F
  277.   end
    ! ?2 Y& a9 O0 Z  }. y+ `- A
  278. #-------------------------------------------------------------------------------" u. o/ [7 ]6 s- N( @! @
  279.   def dispose+ f+ p* r' J1 m. d; P
  280.     super- Z2 Z0 u8 G8 [7 s  y9 B" T
  281.     @bars.dispose if !@bars.nil?
    ( Z7 C8 X+ n- J' |3 O6 \
  282.   end& \% |" s9 D6 c
  283. end
    1 |. Y! {4 l/ e' C2 R/ W( C5 O

  284. 7 p& j  A( M. C+ n' Z, D
  285. $mog_rgss_s_hud = true
复制代码

/ s0 k6 a: D# t" F% E% f; m- W( h* G' f1 L" @/ s( I
3 q$ Q! ?; g/ i7 x
上面所說出錯的203行內容為
2 J5 b% A9 y3 r* ~: j' d$ T@hp_sprite.bitmap.clear
6 `, r, i+ ^7 D% h
( G" o% H; l5 [0 M想知道怎麼解決2 x# S" ~& M, r- d. j

4 Z# }% v6 r; R& ^. R& M! F2 X該腳本支持3.820 ]1 y2 y5 I+ _" c7 @

7 x; q) z7 D5 {2 J" Q下面是圖檔,要塞在Windowskin下
% X/ E) ?3 J0 k( I! z, g  ?. q! |5 D! F7 C
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
6 x/ _* J: y% Q! [  g
" ?# g/ u9 w& O* ]
: G( N& t# u1 l
+ Z7 ?% N8 F$ A0 A0 J. y; e

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
5 N- k7 l# M  J结果尝试刷新了一个已经释放的图形4 n0 o! ?8 J" W& R% w

2 N$ J6 I- T, n2 K( p) C  K( R. M2 E7 t1 P& V

4 P/ h! n+ \# o& {) k- |虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    9 i) r: u7 ?5 z; j4 u8 z8 `* v' f
复制代码
不要后面那个条件貌似就没问题了。
( v9 I) ?0 K9 T3 r2 P5 j+ P7 W
7 B( N, B3 e/ V) F# z
) N' b' j' `" [& j; _7 G  ]   ^& T$ I0 F+ N+ O, T- d

3 ]5 v. V2 V% Q+ m4 Q
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
435
在线时间
1781 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 - ?* n) Y9 ?6 ?2 x
貌似是释放的条件不合适
( P) \) V5 g8 F! v; ]结果尝试刷新了一个已经释放的图形
! z3 B& Z' B3 P% p9 J! U
把後面那個條件弄掉後,的確沒問題了
( g; B9 |8 v; t6 @目前從關頭打到關尾結束都沒再彈什麼錯誤8 n; t, U; P6 I% I3 r
非常感謝
7 x5 v2 d0 N6 h! \* ^1 I  n* J# C" C- [
不過我是參照著別人腳本改的
% K; m6 Q! s; V他寫的條件式也是那樣,但我用他的沒什麼錯誤4 B! H( Y! h1 F& N0 k
不知道是怎麼回事( F  ?, n/ l7 }. F6 S. k; a
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
0 e# \$ {  g$ a# \( V: c# a我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
5 a1 M8 ]" e8 o3 y# ]嘛..这个数组吧..我在以前试写队友的时候关注过一点) C! M; G* B( u8 O
不知道XAS内部对它做了什么手脚还是为啥,0 ?) Z; ]0 _0 \# ]% G2 F$ C
总有那么一瞬间,没有被消灭的敌人事件也变成了nil
. G- h6 Q. Q: V
+ E' l% `. [8 y# G3 Q4 _$game_map.events.values[@enemy.id].nil?
1 M1 `7 X0 p. W因此自然而然的返回true并符合条件把图形释放掉了) x: [' E* d- Y
, I1 z. }: w) Z/ M7 W" V# h7 M& K
LZ应该有注意到吧,
8 e+ Q2 _* _, b' X( F$ V我测试的时候发现报错前几帧,图形会消失,- J& |0 |5 v+ ^$ u) C/ ^
应该就是“误以为敌人被消灭”了。
& a. {7 L5 M/ f( x, y
; R: ?$ B" c' Y受限于个人水平,至今无法找出$game_map.events的真相..
! Q( P3 I' h6 @+ Q: F( d
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
435
在线时间
1781 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
8 N: k: J, n. y" b0 b0 C$game_map.events- U5 j3 m3 w8 i) s! M3 K
嘛..这个数组吧..我在以前试写队友的时候关注过一点
" k/ z- r8 S! u+ X1 j( m5 R不知道XAS内部对它做了什么手脚还是 ...
! w9 x: f  N% {
當初我把那個條件式看了三遍,都不覺得他有什麼錯6 L  k5 D( `; B( D  v
原來還有這麼深奧詭異的事XD
( F5 R$ ^5 }* W3 H' o. d: [# G# E" U1 V  b# q" _
錯誤發生前的確會有圖形沒顯示出來
! h* e8 O+ [9 i, q  [! n# Y* Y3 }# H不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...7 i. Z2 @" K$ o  u
沒想到居然是詐屍了XD8 }9 W, T. J/ @" u) f9 E* e4 |3 n
6 p. Y2 A! L# u" w3 R3 i: Y
不曉得3.91有沒有修正這問題...5 h% C0 }9 K  m
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
( Z* ]0 y4 A# [0 D1 k" r$ P- L. a) g$ P  j, J1 L9 N! A& A# @+ I" Q: \* b
的确
( E( {& _+ j! f8 d4 ~0 U4 K& k用惯3.82之后想去整3.91觉得压力甚大..
* r8 C* P, ?' p  G2 a% v0 m+ b干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12399
在线时间
21811 小时
注册时间
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- C4 P  z2 K) \

/ |4 X/ j  W, \3 r0 F. s然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-11 00:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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