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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
" N. V* z" D0 A8 Q& V會在每隻事件怪物的腳下顯示: ]: U7 D' `1 ]! p) p6 e* A5 @; f
問題是不知道為什麼
" @" V) J% ?6 F1 p有時打怪打一打會跳出
/ r$ X3 m4 j4 V( u/ w---------------------------% Q) X- [9 G- f* e, B
XAS
6 V% d/ N/ [. z: ^! f. M# ]---------------------------
8 s, H$ S  e* I* q脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。3 j" [0 D+ ]( W! x$ u' Y$ d

: p  g1 x# u' t- j8 s, C7 v5 Qdisposed bitmap
2 E7 y! L+ |( X* h+ M, a---------------------------) J7 |9 e8 J( H/ X1 e: l. x
確定   / @8 D4 l) m, m* Y  x7 D
---------------------------
+ x$ N0 I* E9 I( D5 m- X6 V/ I8 U# \0 w
這是腳本
' W' O6 {  w3 l
: v+ E$ V. [0 f" M8 V; L$ F; r  [
  1. #===============================================================================
    7 w9 M2 H% p" S
  2. # MOG - s Hud 1.0      5 m; U1 g& M$ d* p6 e
  3. #===============================================================================
    : Z8 c+ i3 J1 m
  4. # By Moghunter * a: c7 ?) O+ Z- y8 E! N9 A- @
  5. # http://www.atelier-rgss.com0 }" @: F. K( ~0 A: Y" u1 P
  6. #===============================================================================/ S6 u0 O1 P3 S" @; u( J
  7. # Translated by Calvin624 / a* h( G6 u* S, C
  8. # http://www.xasabs.wordpress.com4 ?0 Y3 C' H3 O4 j6 q
  9. #===============================================================================; v$ F3 c" G( v( j" D' y
  10. ###############################-DESCRIPTION-####################################% L7 G) {7 w4 J0 h6 y0 ~4 l3 E
  11. #===============================================================================: J4 c3 ~8 s% R7 Y; R
  12. # Personal HUD – displays the HP and SP below the hero.
    * m5 ]6 R5 S) c5 Y( N3 h0 I
  13. #===============================================================================
    , ~& k, J% `. H$ a. U2 M
  14. #
    # e1 a% x! |- L" @, o6 u8 V8 ?- p9 z
  15. # Graphics required:& `4 m6 r) F7 C4 _: @+ S6 B
  16. #
    - E' x$ G$ o$ ^
  17. # S_Border_HP_Meter.png6 J" v. K  w: M5 p6 X/ y! I
  18. # S_Border_SP_Meter.png
    ! Z1 p% o; z: ?% S
  19. # S_HP_Meter.png. z* h* h& P* |$ R# L5 P- c6 z
  20. # S_SP_Meter.png
    & M' T8 b6 M( r/ `, Z
  21. #
    * L1 N: _5 |3 t( b& k
  22. # All images must be in the Windowskin folder.
    5 t# H# S) A% T& Y3 u
  23. #2 ?! M3 ?- _3 N: q% b( c9 t% s9 o8 E
  24. #===============================================================================8 C2 q- ?/ `4 Q7 e
  25. module MOG: b/ [- }* |& R) Y: ~) J7 l5 Q
  26. VISIBLE_DEF = false  * |& |+ P* v9 B1 h# {# U  [2 {
  27. # Show HP meter?
    6 ~5 S0 b5 c1 C0 ^& Q/ l
  28. HP_HUD = true
    # k, }6 P+ |1 s5 \9 P; K" |2 X
  29. # Position of the HP border
    4 m" U- r8 o& S* {: d* @
  30. S_BORDER_HP_METER_X = -26 @' w0 D, y/ `* I0 U
  31. S_BORDER_HP_METER_Y = -2    P: m$ q: o) }# D7 m) }+ `
  32. # Position of the HP meter
    # M4 L; Q3 q" h3 W
  33. S_HP_METER_X = 0: A" n1 h0 J: `  K& |
  34. S_HP_METER_Y = 0& X- ^0 \$ r3 G+ [6 ^) ^1 A9 K
  35. # Show SP meter?& V, `$ O* d5 F' ]0 G0 u
  36. SP_HUD = true, E+ y" h+ J& J" @6 E( Y
  37. # Position of the SP border
    ( |' m9 |1 v+ f3 G) K
  38. S_BORDER_SP_METER_X = 0; i, e7 m8 y  J2 _& L6 v
  39. S_BORDER_SP_METER_Y = 10 5 b! ~; }# H  F! M
  40. # Position of the SP meter
    ( K2 V* z* u7 N6 F/ H
  41. S_SP_METER_X = 0
    6 r; w/ h8 k, r5 L5 z
  42. S_SP_METER_Y = 10
    1 X( _, O" }# @9 N
  43. # Switch to disable the HUD
    % U4 u; X; u' f0 x! c* r
  44. DISABLE_SHUD_SWITCH = 5
      V1 g2 {* ]0 ]. D9 i
  45. RANGE = 20
    : n# S0 e3 G! n: ^$ T
  46. end
    3 |7 p$ _' i" u' |) |
  47. #===============================================================================
    & X9 ~1 v# w7 ~
  48. # S Hud- I$ t2 [# I! a2 Y
  49. #===============================================================================/ ~# d& [0 s* R8 A/ C
  50. class S_Hud < RPG::Sprite: P1 K3 _) t8 i$ H  {2 h
  51.   include MOG- j9 b8 _( U; O
  52.   #--------------------------------------------------------------------------
    , @0 |* s5 E" K6 G. U
  53.   # * Initialize" ~  i( @; D- ?! w+ x
  54.   #--------------------------------------------------------------------------
    # F5 x! N/ D2 G  K6 V7 ~$ c) K
  55.   def initialize(enemy,viewport)+ q. M5 R4 O; Z. z1 j% {5 Z
  56.     super(viewport) # j0 }" o  {' _+ f4 {
  57.     @enemy  = enemy' ~9 H. f0 v0 p0 N
  58.     @battler = @enemy.battler
    ( _$ `5 h$ n5 I4 p( d, U# d
  59.     @old_hp  = 03 x2 ?% P& U6 m2 p9 Q/ j9 T7 @
  60.     @old_sp  = 0
    ( ^- A4 X5 Y+ O: v7 ]0 p( M
  61.     @old_vis = false
      Q# x7 w0 Y' x# H
  62.     self.bitmap = Bitmap.new(100, 100)
    & o6 ^- s: ?# p* Q; S( T
  63.     self.visible = (VISIBLE_DEF)#false8 A  l2 p9 O( ^- v' C: t3 D. S, X4 j- i
  64.     self.z = 100- z* j' A. E4 Y5 n9 ]1 A
  65.     #HP Border -------------------------------------------------------------------
    & ^! y1 w7 y1 n4 n
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    4 y  ^  G! t+ m4 i) H1 H
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    6 C  z! D1 G) v2 R
  68.     @layout_sprite = Sprite.new
    0 t6 Q" a5 K# H+ C% v/ z
  69.     @layout_sprite.bitmap = @layout_bitmap8 V" Q) d9 [, L6 ^6 s+ M
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    0 ]: `3 [: g* m! N$ F
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    " d8 \  a/ h- p! q. N7 b
  72.     @layout_sprite.z = 5001
    5 C: N, J# Z) |! \# L0 V
  73.     #HP Meter ---------------------------------------------------
    , }: _% B2 Q  R& M' a6 F7 p, g/ }
  74.     @hp_flow = 0
    # z% n( m8 Q0 B! B9 f( Q! T
  75.     @hp_damage_flow = 0$ i: `, j: z  ?7 |
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    $ y; I3 G6 W/ j1 u# L5 a
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)6 \2 K' T9 L6 N
  78.     @hp_range = @hp_image.width / 3% i. o7 X  k) G) \
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  # U3 X4 k: R& R6 m+ x# f+ F# [
  80.     @hp_width2 = @hp_range / 2
    $ m# s* k% h2 B! {9 P7 {
  81.     @hp_height = @hp_image.height / 2. F9 ]" w6 t. ~1 C8 A! L1 s
  82.     @hp_width_old = @hp_width
    ! q2 Q) s8 Y$ X# O0 v8 o4 w" L" w; y
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    1 t) Y# Q& p( x& V
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) # a) S' ~" H" L1 b# u
  85.     @hp_sprite = Sprite.new3 {% k2 v$ @0 Q& g( P" C8 e" J
  86.     @hp_sprite.bitmap = @hp_bitmap8 n$ j' y9 P, |* u8 Q
  87.     @hp_sprite.z = 5002! p0 ~" `/ u. }; J
  88.     #SP Border -------------------------------------------------------------------% b9 w; Z3 Y$ J2 ^, D, W1 w
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    " u5 _. j) L/ C1 Y' H! c  p
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    7 |! A% s3 T7 i
  91.     @layout2_sprite = Sprite.new
    : l, i, M; k" r! F# m
  92.     @layout2_sprite.bitmap = @layout2_bitmap) b% r. y8 x, k/ ^
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    3 a& @# K. a  ^6 r$ i4 x& a
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      2 A4 E2 C0 d% H4 z6 q
  95.     @layout2_sprite.z = 5001    6 {& h+ `! y9 o+ h% h8 w8 K- F
  96.     #SP Meter ------------------------------------------------------
      ]3 `4 Y9 o+ Q& `/ g( h( X
  97.     @sp_flow = 0
    ( O% I7 U0 `1 v( \9 p7 K: k
  98.     @sp_damage_flow = 00 B  P% ]2 M, m" k  m! @
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")* S. V  B8 @- K' q
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)5 m' j  F- [: O+ [8 q
  101.     @sp_range = @sp_image.width / 39 k' Z$ ~8 B" ]. a; B, `# r
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    4 S) h2 o# U( g+ z! ]
  103.     @sp_width2 = @sp_range / 2' A" j& `0 q4 R5 T' F
  104.     @sp_height = @sp_image.height / 24 T) Q9 M; L4 x3 r4 r4 y2 V5 l
  105.     @sp_width_old = @sp_width6 d2 _$ W! D; B8 o( i1 u3 W* q
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)+ h% c9 k! f/ t' B2 O5 h% ~2 w% F0 \
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)- t8 f0 a  a0 p/ D3 D  B
  108.     @sp_sprite = Sprite.new6 v) K/ k) o0 `- S& J( N
  109.     @sp_sprite.bitmap = @sp_bitmap% v' I* o3 G" e$ n
  110.     @sp_sprite.z = 5002" x& d: d! z* E4 ?2 N) @
  111.     update+ i* |& g0 P8 B- o/ f3 p2 {
  112.   end
    $ j4 y1 ^$ r' m/ Y6 x& U
  113.   #--------------------------------------------------------------------------
    - P' t# u: V( N6 ]6 w
  114.   # * Refresh
    5 F0 V& N5 L- w. F" C8 Q/ J( \5 o
  115.   #--------------------------------------------------------------------------  G+ x3 U' T8 e
  116.   def refresh/ }7 B* y. e+ H: F0 V6 f
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible- u$ a" e$ w% l& h+ t6 i
  118.     self.bitmap.clear. l8 L3 g6 M% R
  119.     @old_vis = self.visible
    1 h# E. p1 i+ C+ ~- w1 C: U4 b
  120.     @old_sp = @battler.sp8 o' b2 l+ \3 n$ q/ `
  121.     @old_hp = @battler.hp) B8 {* [9 H; ]- |. B4 `
  122.     hp_flow_update
    ) k4 L, ~! i" p0 J
  123.     sp_flow_update
    ' P4 w7 V0 f% G
  124.     hud_pos_update+ J$ c7 T* P: i' A* x; U( e
  125.     visible_update
    ( f  d. k) i+ Z: O$ h, f; T# \
  126.   end0 l2 j. y" \' C8 k5 G
  127.   #--------------------------------------------------------------------------9 t& o+ i3 q% U, n, z1 p- Z
  128.   # * Dispose
    ) ?, P/ |9 G2 P
  129.   #--------------------------------------------------------------------------8 N5 P8 ]6 r& U: h  P- a( o
  130.   def dispose. @. m3 o& \0 W. ^4 c- [/ [
  131.     #HP Meter Dispose/ E, N6 s0 e% a4 U( b, H  Y, U# J
  132.     @hp_sprite.bitmap.dispose' f& g* i) H( J5 t' K; D  @
  133.     @hp_sprite.dispose; F& j. `- ^: B3 Z4 r
  134.     @hp_bitmap.dispose; b7 z+ M$ l" L$ Z( C+ U; H# W$ @
  135.     #HP Border Dispose
      r  k  S6 O& V3 i: D! @: V8 a
  136.     @layout_sprite.bitmap.dispose0 d# V" y- A! s. `2 G% k! W
  137.     @layout_sprite.dispose
    : K. R, K  v" r7 j, `
  138.     @layout_bitmap.dispose
    . J* d0 n2 M( J4 _
  139.     #SP Meter Dispose1 l. @& X- l- F. p
  140.     @sp_sprite.bitmap.dispose+ K7 N8 I, x- h1 b9 o
  141.     @sp_sprite.dispose
    . n9 Q% I" A, ]4 i; _0 G% R8 G2 q
  142.     @sp_bitmap.dispose
    : |& H( B. R8 i
  143.     #SP Border Dispose7 ]* E3 J+ @0 k
  144.     @layout2_sprite.bitmap.dispose
    9 D' F: X( s. W, H& g& W& h
  145.     @layout2_sprite.dispose! h- j( l/ X& C
  146.     @layout2_bitmap.dispose
    " D/ t% v- M' i6 t
  147.   end! a2 V( j) Y) B/ g3 N' T) t  U" Q
  148.   #--------------------------------------------------------------------------
    3 T, v* S# D$ Q/ E, u
  149.   # * Update, ^7 Y; O* S: h: `0 N
  150.   #--------------------------------------------------------------------------
    4 W4 X3 M+ R4 H0 l
  151.   def update
    3 ^7 z" |. b8 ~5 X
  152.      @battler = @enemy.battler 7 U( X; Q8 F6 b
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?1 t; D7 m  G& g1 K- {: o' f
  154.      if self.visible# k0 [+ c9 @) l5 c" B' A& l+ a- k
  155.        refresh
    # p+ x4 C3 f* b% d6 [
  156.      else  a# B: J8 K7 M9 f- O+ y/ c
  157.        self.bitmap.clear* R9 F" ~1 Z2 \, `- x7 {) K
  158.      end
    / E4 l1 S$ ]- x* D. d+ T
  159.   end1 A5 `# O; v$ \  O' N- f5 F9 ]
  160.   #--------------------------------------------------------------------------
      g9 L7 Z* b0 J" O3 T
  161.   # * Visible Update
    : ?. Q7 f: F: ^& {0 Y
  162.   #--------------------------------------------------------------------------* g+ C) Z/ ?% e( J+ k: C6 P: s
  163.   def visible_update
    ( a% v. a2 t" _7 k
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true5 ~$ r7 ^) n+ _4 q
  165.        @hp_sprite.visible = false1 H: D) e' ~% ]2 ?. |
  166.        @layout_sprite.visible = false/ `- g: F; Z8 y8 z% x2 d
  167.        @sp_sprite.visible = false/ }/ G: L, i, l( @) I# O" T
  168.        @layout2_sprite.visible = false
    ) s( A% O: Y& p: W( K
  169.     else& ^- W$ n* V: f
  170.        if HP_HUD == true
    2 t+ d1 ^7 }, m* I# I% m# t2 l
  171.          @hp_sprite.visible = true) s) U3 Z2 y. |" F
  172.          @layout_sprite.visible = true8 H! i, E7 A7 z' ?& t) o7 |6 O
  173.        else
    - i6 ?8 V1 p2 Z1 k
  174.          @hp_sprite.visible = false
    ( V! n# k2 V& \6 e9 d7 O
  175.          @layout_sprite.visible = false5 P  U$ W8 C- N+ [' l% D" N
  176.        end  3 h. I4 E) b% m% ?/ T/ m
  177.        if SP_HUD == true
    $ ?; M& S# X8 N0 a- n8 Y: W
  178.          @sp_sprite.visible = true
    5 }# {' ~' i4 |
  179.          @layout2_sprite.visible = true3 \( E$ ~$ W  ?  w
  180.        else. F. `0 ]- V1 v! e5 u8 v
  181.          @sp_sprite.visible = false
    ( s6 O" H! h) C4 S
  182.          @layout2_sprite.visible = false& F! a4 `0 R: m- {
  183.        end ( I/ P* u  e* n. p9 a9 X* m& W
  184.      end  
    + ~! R- n, O2 n: I+ m6 H( _
  185.    end
    % m# q% u8 F  T, J7 ^
  186.   #--------------------------------------------------------------------------; t! q3 e  Q8 ^( g* n
  187.   # * Hud Pos Update- I( E) S  [* o: C
  188.   #--------------------------------------------------------------------------8 y8 P) D; Y3 b0 T/ V% A6 @
  189.   def hud_pos_update! A/ E7 H; j, o7 o5 r# M
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X7 u; m( |# ^9 t% A/ g
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  " ~5 v( Z, P! K" G8 H
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X6 a* m1 Y" N9 d! p9 u. d! p* m
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    ; A; }& t: E3 X  t
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    6 Q. V2 ]4 }" x3 V
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  4 ]- q3 R7 H" u* [
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    / s/ Z% y, P4 w- R4 a
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     1 u) K9 y' u( _7 e9 M2 `
  198.   end  
    2 L8 V3 V/ L% N' }5 }5 G; N
  199.   #--------------------------------------------------------------------------
    $ T  R% ^; Y1 K0 ]+ l
  200.   # * Hp Flow Update
    8 r% r1 w+ Y5 R, C0 i
  201.   #--------------------------------------------------------------------------
    % b& F  S2 [9 p' b
  202.   def hp_flow_update
    : x& U. l4 a2 L% a
  203.       @hp_sprite.bitmap.clear! {* k& t0 X" ?9 l, \
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  * R. u3 \6 z5 I
  205.           #HP Damage---------------------------------. t  l3 F/ e) q. [8 ]
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    ; l' @( z' M9 K  Q6 Y/ K; p
  207.           valor = 0.5 if valor < 1         
    # ]2 M' {# F, j1 N3 Q- R; X
  208.           if @hp_width_old != @hp_width; h( t7 A$ e3 x4 T4 x. i
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    - g1 q& \5 a8 ?9 ^
  210.           if @hp_width_old < @hp_width 6 y- n3 g1 w( T
  211.              @hp_width_old = @hp_width
    ' E. Y' ^; @8 I* G' S
  212.           end      
    ; F: P9 r4 k5 ]: x6 r- v
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)5 q4 F2 }; h7 c$ G1 Q, D3 k8 l. E
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       . t* ^0 b2 {; H. e% Q0 E
  215.           end        + \& H0 {4 N, ]1 f0 O8 h* W( V
  216.       #HP Real------------------------------------
    * D. f0 Y, q% T( ~0 @8 i7 s" X* a
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    3 ~+ e2 B) A, `! r
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    # Z2 M7 T- n, {/ ~' I- L
  219.       @hp_flow += 2  
    " V& W  `5 p" B6 s5 ?* v7 x3 D
  220.       if @hp_flow >= @hp_image.width - @hp_range& Q0 ~, ~: g- I$ B5 r  s
  221.          @hp_flow = 0  
    + }6 H- G$ \" H/ _* u
  222.       end. }2 }% [) S, r1 \& S
  223.   end    ' \9 z8 C  y( S( ]4 \7 ]. P, {
  224.   #--------------------------------------------------------------------------
    $ N! V8 p) @/ I
  225.   # * Sp Flow Update8 M  k2 j& L4 F5 z
  226.   #--------------------------------------------------------------------------% t0 Q' n. p- i3 y7 r4 \) s
  227.   def sp_flow_update
    , i* h+ [1 o' _
  228.       @sp_sprite.bitmap.clear
    & ~9 l* w% q; r9 O
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp 9 y: J, x3 ~# @. K' u% O( U
  230.           #SP Damage---------------------------------1 A+ R- _( h3 O, f$ B
  231.           if @sp_width_old != @sp_width
    $ s; O. e5 \/ Q% k, t& h
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    % l' ~- S+ t. I$ r& c- v
  233.           valor = 0.5 if valor < 1              
    2 d* ]% f) Z6 K4 G. {1 z
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    * T9 T3 t$ p) u) P) Z6 l
  235.           if @sp_width_old < @sp_width
    ( Y9 D9 h/ \* o$ |" q6 m5 h
  236.              @sp_width_old = @sp_width
    & k* n2 ?6 C& x6 Y5 b4 e2 [+ ]. L7 _
  237.           end      
    6 m0 F* i7 Z& p5 m# {- ]
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    & R" c! X- f2 ~7 c+ m
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    9 f, y5 O7 k" x  m1 J- ?% y$ k. N
  240.           end
    ( u# e% X7 ^+ z$ i& E
  241.       #SP Real------------------------------------; ?  U) {4 e) b
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    / Z$ S6 M( k, k$ g5 Q* F6 \% V
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)( r; z; [6 s) {# D
  244.       @sp_flow += 1  
    ' j# m- x& w; W1 k" n$ [- p
  245.       if @sp_flow >= @sp_image.width - @sp_range* |4 W% @3 U- n! h* K
  246.          @sp_flow = 0  
    / X6 H7 E" r! Y8 C4 F7 n
  247.       end1 H3 }( E, Q1 z; @
  248.     end            ( C2 b# ]$ C$ p8 F. _
  249.   end: k, V( p0 T  t+ s1 R" c3 ?; C
  250. #===============================================================================: L, J! i' I5 B2 ?0 V" ~$ s' |
  251. class Sprite_Character < RPG::Sprite
    / u. ^4 _4 r% A6 g
  252. #-------------------------------------------------------------------------------0 w% E1 {- \2 j5 O- I9 p
  253.   alias :xas_emini_hud_init :initialize
    ; N2 J9 O+ Q9 f5 M0 R. N, F) H
  254.   include MOG
    ) _2 n4 l3 j2 c! w& W
  255.   def initialize(viewport, character). f6 x3 K3 _4 U+ U$ b" w  e
  256.     xas_emini_hud_init(viewport, character)
    4 ^& C1 G1 h' E' s
  257.     @viewport = viewport6 G- F! K* ^! \* e4 i" R: |% x
  258.     return if @character.battler.nil?
    % o( @. r! e$ B% L6 m7 j
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)  f* K; h2 O- o( e! I
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
      w: r5 }5 n7 e9 E5 Q
  261.     return if @character.battler.is_a?(Game_Actor)0 _: F" M- B0 @" w
  262.     @bars = S_Hud.new(@character, @viewport)3 Y* \9 q0 Z' a& c
  263.   end4 N# i! a, T" h, E
  264. #-------------------------------------------------------------------------------$ N2 z* d( D2 }) t2 x5 \0 A
  265.   alias :xas_emini_hud_up :update
    : t3 ]7 t  _* {3 r5 ^1 g  l
  266.   def update' C+ _( F7 O0 a4 W# A# z
  267.     xas_emini_hud_up
    1 N* h0 v: Q- R
  268.     return if @bars.nil?7 _) @, h: y/ k  k3 K9 b' K: c7 ?
  269.     return if @bars.disposed?; _# q/ I0 l! y, b& K- U+ W# C
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs7 N; s1 y! _5 r2 e
  271.     @bars.visible = (dis <= RANGE)) D4 x1 }" N7 a* H% [6 b' Q7 Z
  272.     if @bars.visible( w4 n3 R% ]5 I# j& Q
  273.       @bars.x = @character.screen_x# - @cw / 4
    0 F/ e9 A) Z2 _
  274.       @bars.y = @character.screen_y# - @ch / 4' b7 t5 P' h# s# O  f; |: v
  275.     end
    9 u/ C# Z3 r2 b& s$ f( t# U
  276.     @bars.update
    $ J/ d7 y! ~9 @
  277.   end
    - N& K( K3 |4 V  X  `
  278. #-------------------------------------------------------------------------------
    3 q  H6 X  V4 U% Y" T9 I
  279.   def dispose
    3 c/ \; V- b  A+ ^$ ?! L1 `5 V
  280.     super& N( t& V2 w, H0 Y/ s& @  a; L7 X, U
  281.     @bars.dispose if [email protected]?
    ' W  \! `0 K, |8 j
  282.   end
    1 B9 R4 G8 J. _$ z% ^
  283. end
    % A4 L) J0 y9 T; ^  k9 _9 A5 a: L
  284. 6 T- V( b! @# O7 F6 x
  285. $mog_rgss_s_hud = true
复制代码

2 z6 N: l+ o+ {% o) s
7 O4 Y2 w. ^* ]! j! F- p0 n, r/ N  H' ^/ K" ]
上面所說出錯的203行內容為, I  l% I7 P) _. Z( \$ N
@hp_sprite.bitmap.clear
$ ?, q- G0 K0 F$ c( y; k/ O7 ?+ |, T
想知道怎麼解決
" w( t0 R$ W  R  \" X+ g1 K  q3 v
. I2 ~4 g0 T8 [& @1 b' @5 [8 V該腳本支持3.82! ]3 j7 F! L! N' B2 j) o* H& j  L
) d( h- @0 B- ?8 `& E; t$ j/ b
下面是圖檔,要塞在Windowskin下8 b- z5 \2 d# j* \& O
; g  K. k: I$ f3 c. a5 B& T
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
4 s) `' w' G+ k
$ c* A  b& \# e; g2 V/ ?2 V) u4 d" S# D4 t* c% c1 W

  O" F" e; [/ v1 y( G* W. n% i

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适, v2 @0 [' s; p
结果尝试刷新了一个已经释放的图形( q* K1 E" k: I* O. A8 X

3 p8 }, g8 K. {( a; s/ G
4 O0 p# l; C! [/ \$ h$ V6 J
- _  Z* i& ~6 T4 c虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    9 h6 {/ y0 m0 |; g& Z
复制代码
不要后面那个条件貌似就没问题了。
0 K4 n% z  N6 Y7 X+ q* S) B3 e& b6 {) m) ~8 T( R: N
0 A3 s# n8 ~1 g8 x* }$ J

( `+ b, t4 c. J0 T4 @% x3 M; z
& `- J, j' c5 }% I/ G. l
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
385
在线时间
1775 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
6 U/ K) g1 Q. t8 W貌似是释放的条件不合适7 _8 o' \5 p' a3 V$ s
结果尝试刷新了一个已经释放的图形
# n9 X9 {* P/ K& t2 p2 |
把後面那個條件弄掉後,的確沒問題了. k( G8 K4 Y! Y9 u
目前從關頭打到關尾結束都沒再彈什麼錯誤7 W8 H2 h3 X/ p& b; @
非常感謝& m9 r  |, A+ T/ J' K5 o

! Q, |7 E. d" [! l; i5 D$ h不過我是參照著別人腳本改的
5 Y7 w: `- L5 t) I: |9 K! i他寫的條件式也是那樣,但我用他的沒什麼錯誤
8 X4 g0 J4 n% G" ~' Y不知道是怎麼回事
# w* R3 d- r6 l, o& }4 [/ J是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的" `) G" \% W# i. d3 y" b' ^% }
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
6 O" l+ y' X: M; Y6 J嘛..这个数组吧..我在以前试写队友的时候关注过一点
: v9 n" k7 d$ f5 `' X不知道XAS内部对它做了什么手脚还是为啥,* m) Q" s9 _5 L% ~( D
总有那么一瞬间,没有被消灭的敌人事件也变成了nil
: f4 [% X1 Z0 H1 S, a" k% A- m4 R/ ?# o( I( e! R" e
$game_map.events.values[@enemy.id].nil?
8 D3 s0 g8 h/ r- Y6 @因此自然而然的返回true并符合条件把图形释放掉了+ A& L8 ?5 m. u7 ~
# O; {% y5 a7 ^1 J
LZ应该有注意到吧,+ `6 n4 ]2 S  z5 d: r9 p# A
我测试的时候发现报错前几帧,图形会消失,' V0 ~8 v$ I7 S7 Q2 F
应该就是“误以为敌人被消灭”了。
9 u. q1 B# M6 Z: y; m3 ?- {1 }9 ?( p. f4 f9 e: v& x
受限于个人水平,至今无法找出$game_map.events的真相..
+ W6 u8 g. ~  Z1 k
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
385
在线时间
1775 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 0 Q8 a' J5 _& w
$game_map.events
8 i& {) W6 E) l2 K8 E* y! T5 O嘛..这个数组吧..我在以前试写队友的时候关注过一点
) R) Z: D9 l# q5 \不知道XAS内部对它做了什么手脚还是 ...
6 i: X+ w& k% }4 H' G$ F) g
當初我把那個條件式看了三遍,都不覺得他有什麼錯
9 D4 U; }% z3 W7 @: m4 d原來還有這麼深奧詭異的事XD* L1 ?0 L5 x% }/ ]# ]

+ K' R0 \' {& l" ]. e6 O; @錯誤發生前的確會有圖形沒顯示出來7 P1 ]- R+ E- D# H, }
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
3 L1 s' V4 R" f& M& m4 Q沒想到居然是詐屍了XD7 e' c2 V: A, y2 ~2 S" D
$ k2 ?1 ]0 H# I8 K; O
不曉得3.91有沒有修正這問題...
9 j% a# K. |2 k3 g不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。  Y  B/ F) e; L# u

5 y0 C$ ~. s% J的确
+ u/ Y4 N4 b) z7 M* ^用惯3.82之后想去整3.91觉得压力甚大..
- n/ O' x7 O3 h& E1 Y+ t6 z& {干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12279
在线时间
21799 小时
注册时间
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”。5 [! D8 _) D8 ?# P- e+ M4 Y
' K) l& n0 i9 Y: X. M
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-6-13 09:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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