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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
, O8 u7 {+ a0 E% P會在每隻事件怪物的腳下顯示- G6 [- T$ N& L( ~" ]4 i0 O  {$ n
問題是不知道為什麼
3 K. j9 k% q* Q有時打怪打一打會跳出
5 f) V9 d% W1 j! D---------------------------7 V9 x7 S4 R$ z  l" ?+ S5 w; }/ O
XAS+ B3 J% \$ y* |" {0 L! v- u
---------------------------
9 E' a5 W: t" {) ~  S8 _5 Y  u& e* \$ v脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。9 T6 ^* R2 S& I% i( d

- q5 l& d' i6 e( Udisposed bitmap, d1 ]* b! D6 m3 L$ S; p
---------------------------
" M$ @- ~2 L" p7 q( m' W確定   ( ]/ g% M: Y5 G" t
---------------------------
( t, }# t9 t9 Y( ?2 l3 P
9 b- y, n, W- T: Z$ B8 ?0 M+ O這是腳本
. i4 p; x" i# X4 }6 e
3 F8 g* O" w) m6 e
  1. #===============================================================================- y- h& [/ X% K" `5 b' u& i
  2. # MOG - s Hud 1.0      
    + S; A3 @) f7 d# D: w
  3. #===============================================================================1 R+ y$ ]  d' r4 v
  4. # By Moghunter 4 e7 Z0 `. _+ P( @9 D. a: K5 q
  5. # http://www.atelier-rgss.com' w8 j6 V' w$ ^- [
  6. #===============================================================================, d' E. n+ \! f: q6 h6 ?
  7. # Translated by Calvin624 8 s& a; E: s' y) n1 q
  8. # http://www.xasabs.wordpress.com
    8 t& g) ], b) y! s& X3 T
  9. #===============================================================================
      \# M8 H+ A% T+ n
  10. ###############################-DESCRIPTION-####################################4 v2 h& T" T& ?  F3 b
  11. #===============================================================================
    # S0 Z. ^9 N  F. _# a
  12. # Personal HUD – displays the HP and SP below the hero.
    : y8 {; c5 k% \  F
  13. #===============================================================================
    - R+ x* z8 L: ~$ U* v
  14. #8 D/ ]/ k2 y% e. z  ?
  15. # Graphics required:) ^+ V2 s2 U+ ?/ \8 F
  16. #
    % Z! l, H4 |0 s4 n3 q
  17. # S_Border_HP_Meter.png% c& ]% S% |7 E8 C* U  q4 L
  18. # S_Border_SP_Meter.png, }$ E% [7 o) o0 k+ Y* g
  19. # S_HP_Meter.png+ ^6 J0 Q, s% Z( P; Z5 |
  20. # S_SP_Meter.png
    ) V& a: f" l* O" D
  21. #. c, y( ]* `. e0 _
  22. # All images must be in the Windowskin folder.
    8 F1 ?' I* w, x+ t
  23. #' p. b1 Q) B2 B7 _
  24. #===============================================================================
    & }2 P7 X7 _7 K  D
  25. module MOG3 R* _, l9 ~+ \4 J( F
  26. VISIBLE_DEF = false  * \$ ~; j! a; z- x, g  J! ~
  27. # Show HP meter?
    0 O9 N! m; I0 U! {" O% B
  28. HP_HUD = true
    * K7 N: f: j1 T, E* R) z
  29. # Position of the HP border5 d  b2 g, \6 g9 [
  30. S_BORDER_HP_METER_X = -2
    $ ?" R# r3 x+ }
  31. S_BORDER_HP_METER_Y = -2  
    : }5 w% A  e) |& d3 a( w9 q
  32. # Position of the HP meter
    * a2 Z8 y2 G1 m/ L/ E
  33. S_HP_METER_X = 0
    5 O$ O' l, ~, V4 ]7 p0 ]6 G
  34. S_HP_METER_Y = 06 `+ T/ Z' y9 L& c
  35. # Show SP meter?
    ; M9 l6 e$ ]5 b9 k) P
  36. SP_HUD = true" W" ]$ v# \+ J
  37. # Position of the SP border; F  \6 W3 P% a6 g5 o# n2 E
  38. S_BORDER_SP_METER_X = 0
    7 ~9 Q/ R' N( \, A5 l
  39. S_BORDER_SP_METER_Y = 10
    6 H1 Y& `+ c; R
  40. # Position of the SP meter# A' j; r) a9 P5 s9 ^
  41. S_SP_METER_X = 0
    ; t! K8 }1 s( p7 q4 y+ P& G
  42. S_SP_METER_Y = 10
    ; h: O8 Y( U0 E9 V
  43. # Switch to disable the HUD  e: }9 \& e' _% D. b
  44. DISABLE_SHUD_SWITCH = 5
    2 a( C" F/ u: p
  45. RANGE = 204 S: ?% w! S/ ~. C! Y% U. D
  46. end: @) J" ^, s6 |) k
  47. #===============================================================================- M7 F6 W* v" U- N8 f6 |1 X
  48. # S Hud: h" b5 w' @% m$ h$ ]# q4 u  I
  49. #===============================================================================
    " b5 P  B/ O1 z
  50. class S_Hud < RPG::Sprite7 c# z3 N! A5 c+ v# J4 ~; F
  51.   include MOG* j1 G8 W3 g; X5 b* F* T
  52.   #--------------------------------------------------------------------------. E; i9 s4 {# @
  53.   # * Initialize
    6 R3 O' e+ r, Q3 P1 `
  54.   #--------------------------------------------------------------------------
      a/ X% U7 h  [+ L; Z, H  |9 ^; t
  55.   def initialize(enemy,viewport)
    . \" f% d# C, [' h7 e6 |
  56.     super(viewport)
    # D9 {" B9 E0 a7 ]' u/ ^/ {; ]7 l
  57.     @enemy  = enemy% b7 V* O' }! ]& {3 _& g, p6 N+ a9 d1 G
  58.     @battler = @enemy.battler
    0 r# H! v4 G: o- Z
  59.     @old_hp  = 0/ o+ b% x1 I; ~; l
  60.     @old_sp  = 0  P  U( U2 K3 F% z7 K( \
  61.     @old_vis = false$ E  n- V$ o2 ]. h
  62.     self.bitmap = Bitmap.new(100, 100)
    0 p  l5 E9 Z- ~. h1 S
  63.     self.visible = (VISIBLE_DEF)#false
    + K. _/ f1 g6 Q! I
  64.     self.z = 1009 l  Y+ o- N& w; W# x, R8 n+ w  ?
  65.     #HP Border -------------------------------------------------------------------0 Z" W" l  {4 Y# w
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")5 U: i& j: A' R
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)& s2 @% o$ w+ d) [+ W! d, i- o
  68.     @layout_sprite = Sprite.new2 c, a4 ^8 |1 f) P
  69.     @layout_sprite.bitmap = @layout_bitmap* s& g4 r, ~, _1 Q* q+ K
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    * p, {& \. ~+ \' U" U
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    * ^; u" G7 r0 w2 A% N  D; G  B
  72.     @layout_sprite.z = 5001
    ' D, u% T. I$ e: s6 c& X! A
  73.     #HP Meter ---------------------------------------------------# m1 `. n" I, _4 U  e6 v) k9 i3 r
  74.     @hp_flow = 0
    - V- \) ]7 O2 Z- c' H- M7 W
  75.     @hp_damage_flow = 0
    : Z2 ~( X+ H" I8 W! z8 b
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")  S, E5 X2 z& ?9 i0 w
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)! d; p$ K& K4 F% V6 B
  78.     @hp_range = @hp_image.width / 3
    8 b- g, O) M/ [  H7 X+ v
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  7 r; N. k1 z( R" B! u% q
  80.     @hp_width2 = @hp_range / 29 c% E; w4 r3 g: ?" ]
  81.     @hp_height = @hp_image.height / 2
    / h3 {( @* y$ \7 o9 _& `. V7 J6 B
  82.     @hp_width_old = @hp_width) I1 o  c4 a$ g8 P
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)8 y. t9 M! p" R; f$ D' |
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    # \% ]" A# ^" q; ?1 ^: h0 j5 E- c
  85.     @hp_sprite = Sprite.new
    - d3 M7 F* X! K# B" c9 i. q
  86.     @hp_sprite.bitmap = @hp_bitmap
    6 [5 u$ r6 O5 V0 ~/ i. s( C
  87.     @hp_sprite.z = 50022 x- e+ N4 C1 N% }4 \& T, Y8 v3 s
  88.     #SP Border -------------------------------------------------------------------9 k4 F7 B0 r; l& k
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")0 ~4 o" }9 x+ s; M6 B/ s
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)' b, a" b5 j% S5 H" o
  91.     @layout2_sprite = Sprite.new
    " _. I3 K, W$ U- D' w5 p$ \  c
  92.     @layout2_sprite.bitmap = @layout2_bitmap8 _2 u! E- g9 g# F4 f( I2 T3 u; J2 g
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)( T1 N! t4 {3 }. h
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    " f( J4 A5 H; P: Z
  95.     @layout2_sprite.z = 5001    ( c3 P9 l- |7 s# u& [' l
  96.     #SP Meter ------------------------------------------------------; G+ r' j8 a9 @- L
  97.     @sp_flow = 0: L  C& A) q% o$ I$ W
  98.     @sp_damage_flow = 0
    , p: h3 @. g0 u1 l! e4 g: v
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")2 ^& L9 S+ ~& G" L5 X
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)' U/ {, ^  B' [( {& T
  101.     @sp_range = @sp_image.width / 39 M# U/ e( e1 ]& Y$ R
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    3 m8 F/ w+ @: u& J- k
  103.     @sp_width2 = @sp_range / 27 Z( T! {" e( c# l6 Y
  104.     @sp_height = @sp_image.height / 2
    0 r1 |1 ^" W' C2 y
  105.     @sp_width_old = @sp_width
    ( g6 E7 b4 u; f# C% ?: q
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)4 W! p! g# K4 k7 z& n6 }+ s9 B
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)9 }1 q; _5 F$ O$ g, p* o
  108.     @sp_sprite = Sprite.new  F" E1 h( z- b
  109.     @sp_sprite.bitmap = @sp_bitmap& g$ I$ m+ v7 ^
  110.     @sp_sprite.z = 5002
    & H/ S. m) s* \2 X9 H8 E# C
  111.     update
    8 K7 ^& a$ [6 o/ B
  112.   end4 Q5 V" m0 D' y; n7 Y
  113.   #--------------------------------------------------------------------------
    9 F3 }: n" k0 y* T: X
  114.   # * Refresh. H+ f# J1 W* ?5 Z* K
  115.   #--------------------------------------------------------------------------
    1 ]/ J: p8 I4 Q
  116.   def refresh
    : n- Z5 C1 u: x3 o8 s! c. ]0 K1 B
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible9 c. V+ L% S. f* B5 p" F
  118.     self.bitmap.clear
    4 z0 l6 A/ f3 E% W/ T6 z
  119.     @old_vis = self.visible
    - f2 X( s8 S" D, ]) K
  120.     @old_sp = @battler.sp
    2 C# b7 W2 S; r% d: Y) s
  121.     @old_hp = @battler.hp3 R2 X& f0 T: T+ \7 X+ m: L6 R
  122.     hp_flow_update7 b& K9 o4 j$ m: p
  123.     sp_flow_update
    % h; M$ T7 c  S7 J( {3 p
  124.     hud_pos_update6 t+ ^7 V8 [/ I: O7 ?; q9 j1 j7 m: n
  125.     visible_update
    3 K4 x5 [: Y5 g+ ?( Z. ~
  126.   end
    7 P; b- x# H' ^4 [0 }$ Q
  127.   #--------------------------------------------------------------------------
    3 Y0 ^: s1 J& ~  I6 j( c4 \
  128.   # * Dispose
    : n- w* L" u# U. w2 L: E
  129.   #--------------------------------------------------------------------------
    9 d  c3 [/ |- m) n2 y( E. K
  130.   def dispose. w" r8 d7 K; Z) \
  131.     #HP Meter Dispose
    ; @/ x4 {4 z9 \" E
  132.     @hp_sprite.bitmap.dispose! L1 J  x) M& v; W
  133.     @hp_sprite.dispose
    3 e4 j. a7 j: O
  134.     @hp_bitmap.dispose% i3 ]) `; ^7 k" d( E
  135.     #HP Border Dispose
    ' u6 g* L5 R, e4 I" R* F
  136.     @layout_sprite.bitmap.dispose, D  U* h3 \$ {% l. b
  137.     @layout_sprite.dispose# n2 R9 b+ O5 l7 x7 J' Y
  138.     @layout_bitmap.dispose; R0 ~" k4 z+ {
  139.     #SP Meter Dispose
    - ^* P0 V0 N( t: ~
  140.     @sp_sprite.bitmap.dispose# j5 g9 {7 H' H
  141.     @sp_sprite.dispose
    3 t, _8 _4 a# _* ?
  142.     @sp_bitmap.dispose
    % ]7 G! D& q5 ^9 j
  143.     #SP Border Dispose
    + d$ U" Y9 S+ l* }) [( K& X) g
  144.     @layout2_sprite.bitmap.dispose* d0 ^7 ~: ^& a2 R0 {6 a
  145.     @layout2_sprite.dispose
    7 ?1 w$ v8 X0 }! ]' u) R
  146.     @layout2_bitmap.dispose
    $ y7 ^0 E8 o9 H& ]+ W% j( h
  147.   end
    8 C, T9 X1 m0 g; Y- b$ H+ y
  148.   #--------------------------------------------------------------------------" O) x* P) j+ P% O; }, V; m8 s$ Y# |
  149.   # * Update
    8 L$ O1 ~+ V( ^) j$ @
  150.   #--------------------------------------------------------------------------
    3 P9 }1 i- Z5 i
  151.   def update
    ; `4 W0 h6 ?7 l# D
  152.      @battler = @enemy.battler ; M( c% r/ V0 V- ?" X) H
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?+ N* J5 Z) W0 P1 I; T- \8 `, }
  154.      if self.visible
    % f) ?% n: F4 t4 [& K
  155.        refresh
    % ]* h, r2 t, Z, M; w& y% m
  156.      else
    ) }# `* }4 n  M  k" U
  157.        self.bitmap.clear
      o6 B8 x2 u. L2 F7 o0 T
  158.      end
    ' S3 X  H& ~3 h! Z! {5 j. {; m5 q
  159.   end# M' V7 X9 {, Q: O* B! ~( i
  160.   #--------------------------------------------------------------------------
    . E% ^7 Z/ f9 }! ]3 a5 p+ b3 ?
  161.   # * Visible Update- N% `5 T% ], n" {" O  i
  162.   #--------------------------------------------------------------------------# U) [6 G9 c; D: m' D* M( _3 V
  163.   def visible_update% t+ D: P: ?8 l" \3 t
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true$ p* o8 @8 @: [! z; E8 ^7 Z+ [
  165.        @hp_sprite.visible = false) _; u0 f& g8 E( k* f
  166.        @layout_sprite.visible = false
    : H, ~0 Y, {9 i% ~# I' I: U7 E
  167.        @sp_sprite.visible = false
    * \, Q8 y9 r' C* }& L$ @4 Y
  168.        @layout2_sprite.visible = false/ b7 R1 T& t) {6 y7 b5 ~
  169.     else+ O5 Q* W( a; U; ^
  170.        if HP_HUD == true
    + e2 |7 y9 B: s9 r, S! U
  171.          @hp_sprite.visible = true  ~( v0 A/ s& C' ?6 V" @) _) d% `
  172.          @layout_sprite.visible = true( g0 S$ V6 {4 p$ g
  173.        else: k9 E" O+ A, \" P! c+ F/ c4 Q
  174.          @hp_sprite.visible = false
    ' H% k7 T% g: n9 \
  175.          @layout_sprite.visible = false7 T+ }9 Y6 J7 o" ~: k* ^3 w8 d- b
  176.        end  
    ( Z; n5 ]6 p* W+ j4 c7 f9 J
  177.        if SP_HUD == true' K9 T1 j' ?& H1 X6 J; K
  178.          @sp_sprite.visible = true
    1 l7 h* I: d: V# O$ z9 W
  179.          @layout2_sprite.visible = true( H- x8 J. T) ^, M- r
  180.        else3 r8 y, G/ C# o( A
  181.          @sp_sprite.visible = false  w6 Z3 j/ j9 q8 J: n
  182.          @layout2_sprite.visible = false) B! R1 ^+ Y. d& v$ {% C5 W5 U
  183.        end
    ! t, O& ]" X2 ?3 P( y! p' k4 M1 y
  184.      end  % Z4 c; j5 w3 [# X( `7 B
  185.    end
    + S0 D% j; V- A1 K/ o' ~! G; C0 o- f
  186.   #--------------------------------------------------------------------------
    ( L& B; Q7 f6 F5 S
  187.   # * Hud Pos Update: {8 D6 u, _0 m$ p2 r. c
  188.   #--------------------------------------------------------------------------
    # l5 R8 V& V( X( F
  189.   def hud_pos_update9 v" A$ ^. c6 \
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X+ Q6 r/ Q5 W. T% D3 A7 i/ D: g4 u
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    $ {" s9 Q( \2 l" n
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X; F8 Z: k$ }/ p
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y 9 e) d5 A1 P1 b: z, F
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X8 z1 r! y2 F2 B( O5 K
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  # \4 I" y# H  B$ `' I' k% P* k
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    5 K) ]8 z) z: y
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     ; a* |, B. h6 L
  198.   end  
    7 ~9 z4 Y0 c9 t: O+ A) n0 c" G. z
  199.   #--------------------------------------------------------------------------
    9 P/ k6 b. {: W& @1 G2 Z: s- u! n/ c
  200.   # * Hp Flow Update
    , m" D& X  R4 I
  201.   #--------------------------------------------------------------------------
    1 _" Q& c) U" L5 O/ A
  202.   def hp_flow_update: ]" ]$ `' I9 _; ~& B
  203.       @hp_sprite.bitmap.clear
    # R/ D9 {: ?% j2 T$ s9 f
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  " o% t8 z5 ]& f" F0 w/ r8 v4 b. o
  205.           #HP Damage---------------------------------
    * V; B; a6 d" _8 x* E+ R5 F5 r3 z
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    ' V+ k" Y6 M& I+ H# R$ P/ j
  207.           valor = 0.5 if valor < 1         
    " p) p3 ~) [& x
  208.           if @hp_width_old != @hp_width) ]7 J4 Y  t  ]3 m; a5 k
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    ! V, Q* N7 d. G3 B  Z. F1 Q" e. B
  210.           if @hp_width_old < @hp_width & I) I* N& q6 H& f3 b! w
  211.              @hp_width_old = @hp_width. F  Q1 f! G7 u( v! b
  212.           end      - r: H( x4 K5 D" N
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)( `7 e8 h$ J+ K5 j
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       . L  {1 E4 {0 ^! X0 F* V
  215.           end        
    ; w3 l4 `! M5 t2 B1 w
  216.       #HP Real------------------------------------1 J7 o2 \% \8 f) D3 u
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height): w- M. w0 @1 H( U* d
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
      l! T' J1 l9 [" s' q
  219.       @hp_flow += 2  ; r/ K. O# Q" `9 }6 ]* b
  220.       if @hp_flow >= @hp_image.width - @hp_range) I( A& v7 D, d5 L* h  ^
  221.          @hp_flow = 0    v8 P, O: ~4 o# Q3 H
  222.       end2 b3 t5 t( i6 K9 {' o
  223.   end    & g: w: Z5 O  w+ G1 {7 ^" e% v
  224.   #--------------------------------------------------------------------------# }1 N, q6 v8 i5 A1 i! W
  225.   # * Sp Flow Update
    6 H: c1 H, @7 _3 k
  226.   #--------------------------------------------------------------------------
    4 T" @& J+ M" @! v1 Y
  227.   def sp_flow_update
    . c, G% r5 D$ @: g# x' R
  228.       @sp_sprite.bitmap.clear
    % P3 W! Q: c/ L) s2 [" f
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    8 O& ~. z7 G! R: r; `
  230.           #SP Damage---------------------------------/ p4 k) o# p7 n" W2 t, e+ v. @: T
  231.           if @sp_width_old != @sp_width
    % l# F1 i" Q+ [- G1 |/ c" s, S4 M
  232.           valor = (@sp_width_old - @sp_width) * 3 / 1009 i6 \$ y/ b& T* A$ g
  233.           valor = 0.5 if valor < 1              : I8 X) ~+ f0 @7 K
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    : V- |+ H% H: F2 o7 G, r
  235.           if @sp_width_old < @sp_width ; K3 |1 g: g' c& x
  236.              @sp_width_old = @sp_width
    5 s; i: Q% q! }8 U$ h
  237.           end      ; `9 @: r8 U- U8 g1 o( O
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    8 s, l0 V, V( h; [" J5 Z$ x' u
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) ; Q! n. ?. J; D
  240.           end* h0 \8 @1 a# F2 z4 i
  241.       #SP Real------------------------------------4 v2 d' T3 m9 c6 Z6 ?. p
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)" l0 W/ {7 _1 J( l/ {; `& B. j7 D
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)( m2 N+ ^8 W/ P/ b0 w$ I
  244.       @sp_flow += 1  
    5 ^5 w2 p, o# C" {
  245.       if @sp_flow >= @sp_image.width - @sp_range
    ! v' S7 l& A/ f# J4 @+ V9 w% L6 [
  246.          @sp_flow = 0  % h* J/ ^0 i2 q2 x5 ]) s; S
  247.       end6 m; y% `% E2 B3 ~
  248.     end            
    ) r& I" u8 F, l  ~) }& V
  249.   end
    ' G" l: L# N9 x: y. s- [7 m
  250. #===============================================================================
    % d5 g5 m- P0 ?# e+ E
  251. class Sprite_Character < RPG::Sprite
    ( O& O, ^" n' o( W3 z5 Y! r1 e4 N
  252. #-------------------------------------------------------------------------------
    ' E* @# g! d! f1 R% g
  253.   alias :xas_emini_hud_init :initialize
    * k2 w- ~- u3 x* T. _8 s
  254.   include MOG
    , X# w# k, q. W& B6 y7 o
  255.   def initialize(viewport, character)
    9 x/ U3 G+ y" E+ x, m
  256.     xas_emini_hud_init(viewport, character)
    4 c* n, I/ G! Z! w3 D( @0 T
  257.     @viewport = viewport
    9 O( k/ \0 B- s( i8 H4 [. a
  258.     return if @character.battler.nil?  J  D" w1 g6 ^0 B, R+ d* j3 o
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)5 ~# J0 L# B* }/ r7 m4 K
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    % T3 f1 F& q6 ?: v+ p
  261.     return if @character.battler.is_a?(Game_Actor)8 o- V# m  P/ A3 q8 m8 M9 }) P
  262.     @bars = S_Hud.new(@character, @viewport)$ {0 _# R5 e  W" K- t  R9 d
  263.   end% ^# P" @8 G+ U$ O
  264. #-------------------------------------------------------------------------------4 c4 u( [* i5 u( Q6 }# I! p
  265.   alias :xas_emini_hud_up :update
    + D  S/ [! Z. L9 f4 J
  266.   def update
      ~. g7 T+ ~9 i+ N6 m/ k
  267.     xas_emini_hud_up- [1 E& ]- c+ L: w. l
  268.     return if @bars.nil?8 c2 q7 x% {* R! z* L
  269.     return if @bars.disposed?# z( }  h  T/ `: Q- J6 M; \
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    + u- J7 u* s1 X5 E4 V, \9 f
  271.     @bars.visible = (dis <= RANGE)$ L* K7 [$ ?6 O1 y
  272.     if @bars.visible
    ) A% G0 h) S2 L6 Y. k- d
  273.       @bars.x = @character.screen_x# - @cw / 4/ p6 U/ f3 ]- @! X% |; b- E
  274.       @bars.y = @character.screen_y# - @ch / 4
    ! c  j) W( r3 x6 G0 P# ~0 S7 Q( r
  275.     end# t& ?4 b6 Q6 S
  276.     @bars.update$ V! D- C+ i/ `( x2 U* ?
  277.   end1 m) l6 L( N+ i) Z; d
  278. #-------------------------------------------------------------------------------. l! \) m$ D* L7 W3 k2 ~# D! }
  279.   def dispose9 Z9 u# X' @3 m+ n
  280.     super2 F! j0 h$ q. P( Y( y8 r& ]
  281.     @bars.dispose if [email protected]?2 a% }0 n) f" L, Z
  282.   end( X+ P0 k. G3 B. u$ i3 ]& l( Z
  283. end. {4 V: E+ {# h
  284. ! z" U$ C: W$ @+ F
  285. $mog_rgss_s_hud = true
复制代码
) z% d. W7 _5 f  [$ B
6 R% d" H: I9 O; |/ y
9 U; ~) R; E3 B
上面所說出錯的203行內容為$ G8 y1 n. e: r, w3 T' @# k8 B% L: B# e
@hp_sprite.bitmap.clear
3 n' R3 y, l. D1 ~' P! A6 V; E7 \$ R5 U5 Q  V0 m  u4 @
想知道怎麼解決* o' p- @' n& p; r

4 \7 G( G  u6 B' M該腳本支持3.82
' p+ r) O/ S& G7 q- {  M7 T
: b/ h' Y/ B: ]  V# D下面是圖檔,要塞在Windowskin下, k  t6 e9 V  ~* Z6 g: ~( D6 V  g, }
- I6 w& |, |; O
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
% X" C" r9 t6 B: M# {
2 T9 q* b/ K1 w
* U& l# I  Y6 U, F7 s6 D
: J% |6 c8 u: h0 O5 e- T

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

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。; N' M1 N# h0 @. C. X) g6 [5 f

5 |& \8 O, E) w& z3 s然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。5 i4 ?2 v' W- y$ Y5 D& D

/ r4 t  F7 _) u4 }8 X的确; j! f7 q4 Y0 M: ]$ F
用惯3.82之后想去整3.91觉得压力甚大..4 m) s8 V" m1 O( Q. v: x8 I4 b, f
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 ; `" x# n1 k+ w  K4 Z* p$ {( A
$game_map.events# Z& p, v9 {7 L" S: y! t% y0 r
嘛..这个数组吧..我在以前试写队友的时候关注过一点2 L2 z9 z( D2 ], J0 l+ I& l- r
不知道XAS内部对它做了什么手脚还是 ...
7 K, O- L& A( w+ M
當初我把那個條件式看了三遍,都不覺得他有什麼錯
! o0 o# `" V1 J0 V4 B原來還有這麼深奧詭異的事XD
$ {9 @( t4 E: C, |2 S; f! ]  H+ I+ p9 }6 m/ L
錯誤發生前的確會有圖形沒顯示出來
! X  d' l+ Y% }8 q# E不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
, d" T2 h) l1 @" a) L沒想到居然是詐屍了XD2 N. s8 I6 h% v2 G0 u+ l

6 {: H3 O0 P* |5 ]不曉得3.91有沒有修正這問題...3 X- _; U- v! r+ S( T
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events6 U5 N7 D" B# G! x$ _/ G
嘛..这个数组吧..我在以前试写队友的时候关注过一点
; G( C1 V3 M; ^9 I不知道XAS内部对它做了什么手脚还是为啥,: q7 d0 |* R9 c$ u
总有那么一瞬间,没有被消灭的敌人事件也变成了nil( `# j, S% t  D. ~
# R: A. L- M( B3 s9 Q
$game_map.events.values[@enemy.id].nil?( j/ C. C8 T' v# [9 |7 O% }
因此自然而然的返回true并符合条件把图形释放掉了9 p" \' |6 |$ V1 v& N' u

' A% b) n+ Z+ P5 n7 o9 Q% p1 q4 YLZ应该有注意到吧,
5 G6 C0 Q; i; _  Q( a5 f4 e; D我测试的时候发现报错前几帧,图形会消失,
% N  k3 [# Q2 z+ y7 c- Z0 V0 I应该就是“误以为敌人被消灭”了。
; {! n! ~/ Z3 T* U" d' o! g4 H6 ^! k: G0 T
受限于个人水平,至今无法找出$game_map.events的真相..
# g* z1 m9 K5 k  `  d9 s" x, A
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
7 V# |  E- Q+ G, y$ f. ~5 O; P  x貌似是释放的条件不合适
# h! g% \8 {; |  ^% f- Q6 A结果尝试刷新了一个已经释放的图形
/ A" D' a: z9 k" ~- ]
把後面那個條件弄掉後,的確沒問題了
: j7 f! q% F- H4 [+ {目前從關頭打到關尾結束都沒再彈什麼錯誤
5 V8 f0 e( _& V# U非常感謝" Z$ L# I, J& _4 v$ j3 Y8 i
! z4 @- s3 |: M4 k4 S; Z
不過我是參照著別人腳本改的( @+ x- u& t  k  g) I# t. l% _
他寫的條件式也是那樣,但我用他的沒什麼錯誤- O; i. X5 D  H6 q- K  q' j
不知道是怎麼回事
2 x9 n: {5 j9 f9 F. K% @是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
8 ?9 {/ j" V( W1 T9 m' X/ q我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
: v  K7 ?$ h" e. d4 b结果尝试刷新了一个已经释放的图形7 w2 I' R& Y; x$ F* S

4 ~+ k( S9 e; p" m$ c# X' {& D) e- O  P. A$ u6 m4 w

+ G$ d+ U  i, c* Y' r虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    , ?' g/ V* k" P
复制代码
不要后面那个条件貌似就没问题了。5 m' U" @' A- p. ]; S8 l

; I7 p, m' h* K0 z- o
) K8 ]9 `- I9 k. ~0 ?7 E + B% P0 r9 C' C+ J
2 c# }( L6 }3 b% V6 ]& b" O" q  q: W
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2024-5-13 18:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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