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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條0 X" x5 I4 [8 a
會在每隻事件怪物的腳下顯示, ~$ ]% s" s; v5 _( z: }
問題是不知道為什麼6 k3 ]5 S8 l/ e2 k% ]  ^# o; C
有時打怪打一打會跳出6 o  o- ~5 T* o4 e- z. @/ H( k- I
---------------------------
6 v$ N; K: s+ z9 ^$ f3 B8 m' JXAS
. @+ G% h6 H; b---------------------------
, b$ k' m# Z8 a) `6 _脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
: O+ u2 c' _' Z% \5 S2 }$ I; Y: O( a5 e3 Q6 i
disposed bitmap
. M7 H' o- ^6 q% b---------------------------
0 b! S% T, Y' G6 l確定   
9 o; q4 v  r; D7 n! Y% t* h, t" l( P---------------------------( T! H: j4 ~- y1 }$ H

3 x  [$ M+ P4 w- I# t3 |這是腳本
+ j, ?) L5 ~5 C# @
+ Z2 `: i& |2 T+ i( G9 W3 i
  1. #===============================================================================8 {; I: G6 G  H2 @
  2. # MOG - s Hud 1.0      
    - ^) m+ }2 j' t0 ~! a. ]/ r" X3 ?
  3. #===============================================================================
    ( w+ O# u  V6 _- X& w1 |# t  F
  4. # By Moghunter 8 O8 n# w) @( e& a  V
  5. # http://www.atelier-rgss.com8 o- P- H! E2 C# z5 Q  T% I
  6. #===============================================================================
    6 X# K4 }0 X8 z4 y$ A) z; @
  7. # Translated by Calvin624 0 Z+ B/ _. e% _* O! f
  8. # http://www.xasabs.wordpress.com  c' p) z, i3 q# q/ g+ u6 ?7 \% I
  9. #===============================================================================
    , k6 ]  l; @* u# r; A9 A/ u/ i
  10. ###############################-DESCRIPTION-####################################% Z) f, l  s7 M3 R. ?  Q: n0 H) e
  11. #===============================================================================
    3 ~6 c6 z) g7 g% D7 c2 w3 p
  12. # Personal HUD – displays the HP and SP below the hero.
    5 J* d  m* t$ ]$ j0 A. {8 p4 S
  13. #===============================================================================# @4 W6 @/ ]+ f, i) t8 W* {
  14. #
    + _3 Z# r+ p$ z, x* k* z# F
  15. # Graphics required:' q  O( P1 V8 s; r5 B, I& l8 \  M
  16. #
    ; R3 |3 O& f; n; |. p7 r
  17. # S_Border_HP_Meter.png  z0 [6 d9 V3 m% S/ g
  18. # S_Border_SP_Meter.png8 z# J* J) c4 z3 r$ L1 F  {
  19. # S_HP_Meter.png' ~+ X1 M& t7 Z% g% k: {
  20. # S_SP_Meter.png
    4 R+ H# ~2 j, E$ E* c2 g" r
  21. #
    4 c% C: d' M$ o" U) ~
  22. # All images must be in the Windowskin folder.% G$ F2 O* I/ W
  23. #
    - ^! u2 {5 ~& O( f6 L
  24. #===============================================================================4 E" ~- E) |6 @7 S. x0 ?3 s
  25. module MOG/ h+ W5 f# i4 g4 }
  26. VISIBLE_DEF = false  
    6 W% V4 d5 s- U
  27. # Show HP meter?
    ; i9 i5 C+ o4 T: n: l
  28. HP_HUD = true
    ; D$ ^- L, L( e
  29. # Position of the HP border& N) Q( ~& Z, {0 `& b# k
  30. S_BORDER_HP_METER_X = -2% d* }- S" g& c% \  A
  31. S_BORDER_HP_METER_Y = -2  ; C6 {" H+ n9 x( j
  32. # Position of the HP meter# l' U7 H" p. z2 [  h7 ]% o! @
  33. S_HP_METER_X = 0
    % `( a% Q, U; x+ @  x# Z
  34. S_HP_METER_Y = 01 J) X+ l: b( `! L
  35. # Show SP meter?
    : I5 b2 L! {( _
  36. SP_HUD = true/ J& j- C/ w2 N6 j) L, _
  37. # Position of the SP border
    ' e9 t( O0 C* y" w
  38. S_BORDER_SP_METER_X = 0- V8 j6 i8 I6 `8 q
  39. S_BORDER_SP_METER_Y = 10 % w' K% i: t2 |# I  V% g$ u
  40. # Position of the SP meter8 }" D$ `% \- r8 g- [, M& y
  41. S_SP_METER_X = 0* E3 }) z0 ?/ ]/ v3 k$ A3 @4 i" E
  42. S_SP_METER_Y = 10( {+ H# A% A1 s& E$ I
  43. # Switch to disable the HUD# C0 y* H; Q9 k5 S! E7 A
  44. DISABLE_SHUD_SWITCH = 5; \  c, J. `0 T6 p& |! G; f
  45. RANGE = 20$ K: t6 S- r8 y( ^4 i( y
  46. end
    0 A# e( U* @3 ^# F" y
  47. #===============================================================================+ P2 G' J: W6 c7 j) p* j0 v
  48. # S Hud
    ( c1 J. U7 E- P6 H
  49. #===============================================================================
    4 Z3 G# {" _, J& ?
  50. class S_Hud < RPG::Sprite
    . N, A4 w/ E* m8 x) B
  51.   include MOG
    ( |! t! L& M* k& w5 n$ `! B, q
  52.   #--------------------------------------------------------------------------0 U. g6 r0 H2 s* [
  53.   # * Initialize: ]# D4 g# r  F% E- e5 N
  54.   #--------------------------------------------------------------------------
    3 ^4 E1 @* _: J( C
  55.   def initialize(enemy,viewport), v! M' m2 v+ }, U( z
  56.     super(viewport) $ o/ r4 b1 A2 b1 |) _
  57.     @enemy  = enemy+ W* v; k0 y, g3 W$ I  m
  58.     @battler = @enemy.battler% V" a% {" z& H% h/ b; m
  59.     @old_hp  = 0
    " Z+ L# b" c4 e6 _6 e
  60.     @old_sp  = 0
    8 ^1 h  c/ u8 z) q9 j: \6 Y: e
  61.     @old_vis = false- k8 A- c3 Y' [. G% Y9 ]8 ^2 V) D
  62.     self.bitmap = Bitmap.new(100, 100)
    2 W/ e% `- t+ I2 p; |/ K' D5 H0 y: N
  63.     self.visible = (VISIBLE_DEF)#false1 X: o" ~8 V) S# \: w1 H# J* n: N; h
  64.     self.z = 100' D5 c/ B' V# @; F
  65.     #HP Border -------------------------------------------------------------------
    6 u9 X6 [" O: m$ P$ E  ]
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    ' R; K/ d. b# G. C
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)# i) n- b1 K3 e) L; D, y  D
  68.     @layout_sprite = Sprite.new
    1 l5 q, H' a; I; w* _' o
  69.     @layout_sprite.bitmap = @layout_bitmap
    9 A0 Q  h; K. @( [3 O
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    ' L0 \5 Q$ w/ s
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      8 C( }" n4 R& V& S
  72.     @layout_sprite.z = 5001
    , w7 ~- I* S3 p3 z+ F9 T; P
  73.     #HP Meter ---------------------------------------------------0 C2 A& ]1 N$ Q0 B# w# {, e- E
  74.     @hp_flow = 0' m: q4 g/ h7 w6 w9 S2 T- b
  75.     @hp_damage_flow = 0
    9 v4 B6 h7 i# `; B4 Y
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")0 O& s9 n. I9 g( e7 b( p/ `4 C9 Y) `
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)7 _, u# M! j. c0 X
  78.     @hp_range = @hp_image.width / 30 N8 K0 Y( P) p# b9 ?' S. q% C* n
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    : Y7 O( g% A3 S' L
  80.     @hp_width2 = @hp_range / 2
    6 [# [4 k' U2 S5 V" o
  81.     @hp_height = @hp_image.height / 2, t! y9 ?3 L5 j( W
  82.     @hp_width_old = @hp_width3 V/ n1 A6 k' N$ B# o
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)( Z$ |" d. {# g) A* R
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    * P; l: ?/ z, {$ \) @6 a
  85.     @hp_sprite = Sprite.new
    2 o: E1 I" n; C% n" s: b8 }
  86.     @hp_sprite.bitmap = @hp_bitmap5 U: ]" {9 {5 Q
  87.     @hp_sprite.z = 50025 j4 r4 r! [6 l; M
  88.     #SP Border -------------------------------------------------------------------4 s* \* ?2 ~- m9 @7 G) u, J0 R' O. C+ ^
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")) G" j& _+ P8 ]0 I% f3 ]( h
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)$ k, {0 E  f2 I
  91.     @layout2_sprite = Sprite.new+ O, @. _# O: _5 G) o
  92.     @layout2_sprite.bitmap = @layout2_bitmap3 Z2 P  k3 P& c. R' m. i$ I
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    3 b% ^$ W* P  ]9 L
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      7 v6 g" ~9 K" l
  95.     @layout2_sprite.z = 5001    # [4 t% i) M' M- n6 I/ R
  96.     #SP Meter ------------------------------------------------------1 B: I% I+ P7 s: t" w7 t
  97.     @sp_flow = 0
    5 T: {5 f0 I! ]- d* Q7 N& b7 c  r% ~
  98.     @sp_damage_flow = 0
    # J0 ~' k$ ]; s. o+ R0 c
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    5 P  ~1 M. g' V) m$ z# [
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    3 Q9 s: M* b% \  x/ z: b/ j3 O, A" k
  101.     @sp_range = @sp_image.width / 3# [# U% _) l& z! Y: r  r( k( h
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  8 l; R' ]( X8 a/ W+ M8 k) q- A
  103.     @sp_width2 = @sp_range / 2
    - N% @# Q7 G. f9 z' S
  104.     @sp_height = @sp_image.height / 2
    ) \1 E# I4 B( l$ o. c1 M3 `" L
  105.     @sp_width_old = @sp_width+ S* I$ Z9 s+ B5 d2 J) c' D
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    % B8 R/ q9 i, S0 z5 K# N
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    5 n$ Y2 V, V$ t5 }7 L8 e
  108.     @sp_sprite = Sprite.new4 J. C" L0 V  \; \2 w
  109.     @sp_sprite.bitmap = @sp_bitmap' Z9 P  q1 H9 I
  110.     @sp_sprite.z = 5002  ^4 E/ d% |3 J' \% A
  111.     update
    - h6 Q- L2 R* m2 A6 e7 D
  112.   end
    7 o! x0 ]' _1 s3 ^8 v# r
  113.   #--------------------------------------------------------------------------
    3 f9 M- ~5 W- B9 C. J+ d, |& }
  114.   # * Refresh' g* J! Q: n# `
  115.   #--------------------------------------------------------------------------$ B5 W4 |$ N% y) ]* S
  116.   def refresh6 [+ @7 V6 n1 n
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible8 Y: z$ p* {" k5 ]3 R+ Z3 }
  118.     self.bitmap.clear/ B' b: H0 e, U# L0 B
  119.     @old_vis = self.visible
    0 F& m- n+ d  U+ j5 `: s8 w; y
  120.     @old_sp = @battler.sp. F0 C1 L( X5 V- d1 J
  121.     @old_hp = @battler.hp( Z% p! F4 q, |
  122.     hp_flow_update: `% K4 g3 L4 E3 w+ s( ]  N
  123.     sp_flow_update% l) a* m8 d! J" `' s
  124.     hud_pos_update. ~! p" s& I+ a+ g2 i
  125.     visible_update
    1 d- g4 T1 [2 Q; S$ y  N" @
  126.   end8 w+ ~/ t2 b' V
  127.   #--------------------------------------------------------------------------
    4 O' d' b0 s0 c% s) n
  128.   # * Dispose3 Q, y( z4 x9 P3 b
  129.   #--------------------------------------------------------------------------
    # i& Y& B* H3 ]& L
  130.   def dispose# W* A* Z4 X$ M/ ^- u
  131.     #HP Meter Dispose
      }5 ?" d- v; B4 T
  132.     @hp_sprite.bitmap.dispose
    & C/ c/ s& I% K* x
  133.     @hp_sprite.dispose
    6 g( s+ p; u$ l8 p8 j
  134.     @hp_bitmap.dispose
    4 C' W/ S: h$ E
  135.     #HP Border Dispose, X" v& h4 }, E7 ^6 g
  136.     @layout_sprite.bitmap.dispose
    8 l8 O* \  u+ i8 }. r4 L, N5 m% @
  137.     @layout_sprite.dispose' Y+ _; L* N/ N) T& ~4 F
  138.     @layout_bitmap.dispose
    . G) t8 d% A, ^* a% o% U
  139.     #SP Meter Dispose
    + K0 W8 [8 |$ R6 ^
  140.     @sp_sprite.bitmap.dispose
    0 g6 `7 I' k& J( @6 Q; `
  141.     @sp_sprite.dispose
      `2 x  {  h1 Z# O6 b4 p3 I
  142.     @sp_bitmap.dispose( d% o# E+ W* G3 S& q7 {" \& P: o
  143.     #SP Border Dispose
    3 ~7 I6 [; z& |/ O6 s/ l. y
  144.     @layout2_sprite.bitmap.dispose
    4 y* R  F" }. B6 G: @' r2 Y6 v
  145.     @layout2_sprite.dispose; {7 f$ B" H9 ?
  146.     @layout2_bitmap.dispose
    7 J. X' w4 ^2 M( f: H8 i% m+ b3 H
  147.   end8 v+ I- [( ~: c9 S) D6 }0 m
  148.   #--------------------------------------------------------------------------
    ' b, y$ w. x8 }# R  i
  149.   # * Update% U2 O5 i  W6 e. F
  150.   #--------------------------------------------------------------------------
    9 C' Y$ u1 k' ^7 t
  151.   def update: m! d; P6 a: `  i4 u" U1 A5 k  n& p
  152.      @battler = @enemy.battler
    ( p$ b7 M1 ?3 j! A# F
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    3 w1 J8 J0 c  U& S, Z" A
  154.      if self.visible) f1 j, S( L' o/ H1 z
  155.        refresh
    % `: U3 J. v9 S5 ]7 b. j" Z" |! ~
  156.      else
    : X+ ^1 M' Y7 j8 q
  157.        self.bitmap.clear
    ) p  F, W- D; f( ~( L/ |
  158.      end
    7 D8 J% \$ c  \: D  E" D% R
  159.   end
    * _& |+ P4 d. g. t4 S% O
  160.   #--------------------------------------------------------------------------
    0 Z3 I. w5 j# @
  161.   # * Visible Update& N/ @9 J* q+ }
  162.   #--------------------------------------------------------------------------% }& L7 r. ]! j7 E. u2 `6 E
  163.   def visible_update( x6 X; M! T* T6 W
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    . O  V, b6 r9 H
  165.        @hp_sprite.visible = false! ^; B9 B+ x: |& F" T8 g# Q( N' b3 @
  166.        @layout_sprite.visible = false
    ( X  u9 \/ ~+ N5 T
  167.        @sp_sprite.visible = false
    2 T) {& B4 t9 u5 v8 f7 B1 y7 d1 ?
  168.        @layout2_sprite.visible = false
    0 _+ G& ^+ \& L) A- a
  169.     else
    . {7 ?8 y: C# V+ n
  170.        if HP_HUD == true, n- }. W6 X, F. r2 R, j
  171.          @hp_sprite.visible = true
    & K4 ]$ k2 O* n8 v9 M
  172.          @layout_sprite.visible = true+ c  ]) W0 h6 ~  U# x8 e7 w
  173.        else, ?; F* k  A+ D/ z5 t
  174.          @hp_sprite.visible = false& g! |  ]' H! {& ?+ g
  175.          @layout_sprite.visible = false. w! F: i& S2 Z( v
  176.        end  
    . ?' Q) C3 I; p) Q
  177.        if SP_HUD == true+ d1 u) f7 o+ h: l$ C; n0 I# F
  178.          @sp_sprite.visible = true
    1 A) |7 d, [& @
  179.          @layout2_sprite.visible = true
    + e. f! f3 D* N* c! u7 b
  180.        else
    ! a1 X: k" Y1 d' c( [
  181.          @sp_sprite.visible = false- z" P' H9 O, g& Z0 A3 ]$ A
  182.          @layout2_sprite.visible = false; M5 Y9 O' _+ ?4 l2 I
  183.        end
    8 A+ T6 B$ B1 `+ _& J
  184.      end  9 E' U. B0 E4 X
  185.    end
    0 X. ]7 `. v/ x+ k% w& j# Y
  186.   #--------------------------------------------------------------------------
    4 a% H2 M1 }1 }0 m: @5 M: [
  187.   # * Hud Pos Update! Y' [9 W/ b9 U
  188.   #--------------------------------------------------------------------------3 k# S8 Q0 P) y' B- x- l9 V9 v
  189.   def hud_pos_update. E/ k/ e1 M9 l, B% V$ \
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X  j( [) V% Q% s' }  Z
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    $ X& H* {  C' Y4 u2 m' q, }
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X1 Y" e2 `7 a3 ^& w0 z8 g0 l
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y . w: P/ v- o9 ]9 @6 h# o
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    $ y* @2 D  m8 U, C$ b( s7 K8 x8 {7 `
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    0 B, P: k$ @2 {- ]: t- v
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X- J' I- F& x7 h  J7 L8 q
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     3 n4 F: o4 T  r% ]
  198.   end  ( j8 l2 h- m7 e& ~- q
  199.   #--------------------------------------------------------------------------
    ! P; h- B" ?- _9 x6 t) C
  200.   # * Hp Flow Update% e+ a" c2 `: f
  201.   #--------------------------------------------------------------------------1 h6 Z) s0 q2 i# M
  202.   def hp_flow_update
    ( |) l7 g6 |* {
  203.       @hp_sprite.bitmap.clear& L3 O& h8 s" a( k
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  0 J3 B/ Q/ x! G
  205.           #HP Damage---------------------------------* L, S- O9 G) @0 m6 n2 Z/ n( Y
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100- i! O. T2 G# W. B5 c  l- m
  207.           valor = 0.5 if valor < 1         
    : [& C" b/ X% I# }# I6 [
  208.           if @hp_width_old != @hp_width: o$ }$ e. T4 v  i: E
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  / l/ g' b8 z. c8 m
  210.           if @hp_width_old < @hp_width 0 y0 s& t# u% O) K4 K$ ?
  211.              @hp_width_old = @hp_width
    / ?/ ]* l6 O% Y
  212.           end      
    4 d/ N$ x4 U" A; O7 }/ L
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)4 `( \! ^$ v7 k5 H+ J4 q3 Y9 Z
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       ) c" e$ I4 z* ^& O9 l
  215.           end        
    # W+ f; Y. g, Q% T: U* p' n
  216.       #HP Real------------------------------------% }2 G  @7 V* k$ k2 M
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)7 q5 J6 e3 q) a0 T4 W0 {; i
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    + l. L8 x. a- s
  219.       @hp_flow += 2  " B* ]& A$ |- A# G
  220.       if @hp_flow >= @hp_image.width - @hp_range5 M, b1 H, P4 V7 Q1 I* u* E
  221.          @hp_flow = 0  
    5 `; E8 v  c) u, y  h3 L8 \# A9 c0 f
  222.       end
    6 G6 j  U% c& E. ?/ T1 _
  223.   end    & @. f3 {! o2 F7 \. k
  224.   #--------------------------------------------------------------------------8 n) C7 m% q+ {7 d! d3 X- ^
  225.   # * Sp Flow Update
    ( }% x8 f+ K, W- b
  226.   #--------------------------------------------------------------------------
    # B" L, n; r9 _1 U( m1 y' K
  227.   def sp_flow_update
    5 w. a+ o& r: H; `- L
  228.       @sp_sprite.bitmap.clear. p) X$ y& u7 v
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    1 b. i$ H4 \5 o4 a
  230.           #SP Damage---------------------------------, ?* D5 w% O, F/ G% X2 j# K, L+ \
  231.           if @sp_width_old != @sp_width
    # \/ f. H7 Y0 k! Q
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    3 I2 y! y* |* _! T, W) ]
  233.           valor = 0.5 if valor < 1              
    , o) {6 w6 F# ~8 Z5 l% g
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  / M! r9 w4 k$ \  K' K3 t
  235.           if @sp_width_old < @sp_width 7 R# D2 d4 Y4 L$ F7 {  ~/ y& d! s; X
  236.              @sp_width_old = @sp_width! k9 _+ e) K4 o$ M) O! F' u
  237.           end      
    . y4 A* P2 V  Q) g& x
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    , t. ?* k' P8 J9 Z. S# H
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    $ m$ P3 i2 @* b. m
  240.           end$ r! Y* F+ t/ R* o! W" e' P
  241.       #SP Real------------------------------------5 L. g( j# K* V% k) j
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    ; ?* @; `! I$ L+ K+ ], F( k$ Q7 D
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    1 J, r3 v. z" o. T& _$ K# b
  244.       @sp_flow += 1  ) @( w' J8 B; U' M0 r
  245.       if @sp_flow >= @sp_image.width - @sp_range2 Y( a  \, d9 C8 q: z5 a  F
  246.          @sp_flow = 0  
    : I# V! c! j  ~8 I
  247.       end, D$ `) l" |! }  [# A! U9 D8 u
  248.     end            
    - k% T$ u9 V# T* K9 ^
  249.   end: b/ D$ o) X# [% M
  250. #===============================================================================
    $ d4 s2 U+ W2 U2 @1 B9 b& ^
  251. class Sprite_Character < RPG::Sprite
    9 k$ G4 ?! m- s( Y4 O
  252. #-------------------------------------------------------------------------------
    9 [3 K3 ^5 w' a/ W+ g" z1 Q) y8 b& p
  253.   alias :xas_emini_hud_init :initialize! e2 k! K% B# `* z4 s0 r$ `
  254.   include MOG( c& j8 M2 V" U  _. g1 }
  255.   def initialize(viewport, character)
    5 |: H  c  Z. ^' q) q4 P, Y( j' O
  256.     xas_emini_hud_init(viewport, character)* h/ b" ?+ @6 u2 G- K
  257.     @viewport = viewport" l* N+ `% A8 q- h
  258.     return if @character.battler.nil?% z" {) n$ v" V9 _5 |
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)2 T' }/ N8 N, j8 v8 k
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)% x& t  L0 E6 M" F
  261.     return if @character.battler.is_a?(Game_Actor), m; w" ]( G+ n/ Q* n
  262.     @bars = S_Hud.new(@character, @viewport)* w7 v5 Z3 C8 k. A# P
  263.   end3 Y; d% \6 Y3 {& V7 S' }
  264. #-------------------------------------------------------------------------------
    8 Z  w$ N5 V. u' x  q# Y
  265.   alias :xas_emini_hud_up :update
    & }, C9 ~+ m# I5 s# l7 m
  266.   def update/ ~" j2 j  @% y! M. X4 p3 u3 L& L
  267.     xas_emini_hud_up) c' w( Z3 L! z: ?
  268.     return if @bars.nil?
    + I, D' X8 R8 y( q, ^$ c
  269.     return if @bars.disposed?
    # N- R( L" t& X9 F, i
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs' ]7 m) Y* S- b% d9 @: c
  271.     @bars.visible = (dis <= RANGE)
    6 h" p! T/ ?9 u9 Q, w' e% `
  272.     if @bars.visible! K/ K% U, r: V5 ?+ X* s5 ~, v
  273.       @bars.x = @character.screen_x# - @cw / 4# p, g% e7 ]: P: o6 Z. A4 N
  274.       @bars.y = @character.screen_y# - @ch / 46 ?' A8 t4 D  k8 x
  275.     end
    9 `  O2 P8 @3 H$ B1 ^
  276.     @bars.update
    ) `4 r: y$ m) T* Y: J, n
  277.   end
    3 K- Y- `; p& s2 ^
  278. #-------------------------------------------------------------------------------
    " b, f6 ~4 B" x: e5 i' Y  a
  279.   def dispose, c% C4 K0 n/ o
  280.     super5 T9 N! k) H# i4 u# E* g
  281.     @bars.dispose if [email protected]?
    ) P( I+ ~7 t; l3 `
  282.   end$ r7 r& F# K- g5 s
  283. end( @3 v2 j, F* g
  284. 8 I) F; E$ m9 o6 H1 K7 I
  285. $mog_rgss_s_hud = true
复制代码

4 P0 \/ ^+ V% b" h) u- `) J8 t" C- E
/ S& |- \2 @! K: _* C; v1 \- n8 {9 a- |3 p1 r
上面所說出錯的203行內容為
3 H" V: c9 M$ R@hp_sprite.bitmap.clear
- A5 C9 v6 X0 f* ~* Y# o. O( ^
/ R& T; A; T! C, @# [& U想知道怎麼解決
( `9 E! h8 {+ @! w7 q5 P1 e4 c+ e: p3 M1 G8 j% ]
該腳本支持3.82
1 [4 {# x+ E2 }
3 P- t0 Q* A1 U5 g' R+ r下面是圖檔,要塞在Windowskin下
5 t: I% [- c; [6 X, e0 Z* y9 t" T& g7 }2 [9 d0 y
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
% i* V: I' C" p0 l. r
* c# B2 _0 T/ b# A3 l/ B& A# z! s, z! D$ N7 i# `- [6 Q
# F7 Z) b2 Z# d2 Y4 v' }% H, s

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。1 j$ B- F6 i* ^- Y- c7 E3 P

4 X1 Z1 e$ f1 ^7 p5 M! u然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。5 I# r5 W8 b7 F* c1 w& w# x

, L4 f7 h! n: g8 y9 ~的确
8 G, f8 W- S, \& A! d3 r用惯3.82之后想去整3.91觉得压力甚大..% Z2 J9 k7 e! ]/ e
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 0 m1 S* w) r$ g! |& U# w% g
$game_map.events$ a' O9 y: B1 m
嘛..这个数组吧..我在以前试写队友的时候关注过一点: B" P4 E, M; ^8 x
不知道XAS内部对它做了什么手脚还是 ...

! M. z7 w" c* N當初我把那個條件式看了三遍,都不覺得他有什麼錯/ s, e, h/ N0 M$ i5 R
原來還有這麼深奧詭異的事XD7 @+ O+ l" G6 b
* E1 q8 N1 u0 b+ r! K% P6 B* M
錯誤發生前的確會有圖形沒顯示出來$ W. x# a" ]7 O; h" s0 Q
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...# s; h' |/ J: c5 c4 F
沒想到居然是詐屍了XD, z7 A  d# N" u- m6 ]

* S) D; N5 N! {/ k6 j: O. l不曉得3.91有沒有修正這問題...  ^7 M) I7 C( ~
不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events2 I+ V4 ~2 w$ r
嘛..这个数组吧..我在以前试写队友的时候关注过一点
. s+ O) B/ ?2 [4 W* S0 C不知道XAS内部对它做了什么手脚还是为啥,
# P# x8 }5 z, {$ r, {+ k* _总有那么一瞬间,没有被消灭的敌人事件也变成了nil
- ~% l4 o5 R8 F
1 A8 `, K! C; P9 W* c$game_map.events.values[@enemy.id].nil?2 O9 n; @- v$ B2 D; p
因此自然而然的返回true并符合条件把图形释放掉了
9 p# o- ^% E$ J6 C3 Z; S) I- X8 \# G2 x  l
LZ应该有注意到吧,* Z6 k, K* r7 C8 m$ g& b0 j
我测试的时候发现报错前几帧,图形会消失,
8 [+ _* h$ B8 _, r, s# X3 u6 E应该就是“误以为敌人被消灭”了。
7 d- d- j$ t5 B  `) |- y3 A
! l6 Q) J- ^5 w! x/ f* ^9 [& L1 N受限于个人水平,至今无法找出$game_map.events的真相..$ L- \2 T5 \1 d% ^, E
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
7 D; w* s: Q# @' A& x2 g- M! v貌似是释放的条件不合适$ |# \( B" m3 }' f% [( O
结果尝试刷新了一个已经释放的图形
) z" S6 u& Z3 K, j5 \9 `
把後面那個條件弄掉後,的確沒問題了! A$ \  o4 j7 w6 ~4 G( ~: m
目前從關頭打到關尾結束都沒再彈什麼錯誤
5 Z4 {/ H2 |& |) y非常感謝
! J8 A+ g' T/ Z5 m/ ~/ [% \+ M  X6 [! T: P; \
不過我是參照著別人腳本改的
  o2 q# W9 E8 i( @: i5 s他寫的條件式也是那樣,但我用他的沒什麼錯誤, V1 R" \* F+ x+ S/ I, S
不知道是怎麼回事4 @7 Y' k0 W; r, J1 _2 c+ L
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的/ r+ e6 F: n/ B% F
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适+ t4 t' q7 e1 i6 Q+ a- [2 V
结果尝试刷新了一个已经释放的图形1 [1 E) s$ `8 R) y0 m0 I
, B1 g5 z5 s' z* U5 v

4 C6 h: ]/ f* k+ Q7 ?- N* e% @
2 N1 l& a! C- M( P' E( h. @' s虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    % Q/ W, O9 Q. ]7 d
复制代码
不要后面那个条件貌似就没问题了。
! t0 h' x" Y. Y- o+ C6 z5 [7 }+ f  N8 J! w+ V: t

2 E3 L% l% _% K% W& G+ }8 E
1 d7 K5 ^: i& s) }, x$ f1 J. j% @# U/ `0 A
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2026-7-25 14:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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