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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條5 y9 g) t5 `" m4 H' f" j' P
會在每隻事件怪物的腳下顯示" _; z5 t% B/ `1 q8 v
問題是不知道為什麼
5 j) U( m; e5 ~' t+ I/ a$ K! Q- u& j有時打怪打一打會跳出; r+ R+ D# q- y: u1 ?
---------------------------' d  _& ]7 `  A2 c1 F+ I( t
XAS# \# L) f$ ]& J7 U* s
---------------------------
5 _2 M3 p1 ?7 i* e' E  a9 w脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。" f3 ~: F4 Q1 ^+ S; b; N
' D* O* q- t: a1 I# D' B
disposed bitmap
/ I. _. ?- E) A2 T( h3 A' a0 G/ b---------------------------
) z6 T" Y& X0 l9 q' ^  k確定   
. N: g$ @; D* \3 T* f% B2 x& d  v7 f, b---------------------------( |  U6 q3 s3 }8 P" D$ i, }' v! h" _

& C: |2 V3 G: \這是腳本3 S: ?+ q1 I- l( w- F9 N! @

# D9 j% Q- h, v1 P
  1. #===============================================================================
    " P& r( |, |3 X/ ]  m
  2. # MOG - s Hud 1.0      
    0 I8 c. a; w& U. J) @. y4 q
  3. #===============================================================================2 \- f7 M; _/ N0 Z. ]0 D8 J
  4. # By Moghunter
    / |( i5 P5 |# {0 s+ t* X. {% w
  5. # http://www.atelier-rgss.com5 v7 B$ V9 O; u/ _  c) G, `) A
  6. #===============================================================================
    ) b& u1 k( K; W* [
  7. # Translated by Calvin624 ' U) G: o; L0 Y  q, X
  8. # http://www.xasabs.wordpress.com0 B1 h. _0 i, f
  9. #===============================================================================. r/ h" m2 [" z+ B3 T
  10. ###############################-DESCRIPTION-####################################! I9 [4 P5 V  y4 p5 o) e3 C
  11. #===============================================================================' J! S# n9 P7 Q
  12. # Personal HUD – displays the HP and SP below the hero.
    - r# u5 \- N- B. Y: X1 N+ W$ z
  13. #===============================================================================
    % T  a! }2 I; p. N5 Z6 T5 p
  14. #1 {4 ]# n1 w) R1 ~& Q' s
  15. # Graphics required:. z1 U7 W) }2 L5 l) w& h( @( X$ b
  16. #
    , g4 z" }9 j- w& y/ w. K) a( P
  17. # S_Border_HP_Meter.png$ z- A8 ^( A# n; k6 D
  18. # S_Border_SP_Meter.png
    4 Y) ~9 N/ |9 N! H8 K: E. [3 E
  19. # S_HP_Meter.png) S) {* E& V5 E  o: i# v' Q
  20. # S_SP_Meter.png
    . P: p* L$ ^( B2 ?$ G
  21. #8 o* ~( q' X  ]5 |" l6 _& w
  22. # All images must be in the Windowskin folder.! Y& A8 _4 m2 ?  ]  o# A
  23. #% c5 w  d8 F) n* G( C9 d1 R
  24. #===============================================================================& F/ ]/ m, O8 \3 U: H
  25. module MOG
    : g) T4 B- Q$ Q) q
  26. VISIBLE_DEF = false  1 m$ J7 C, Z& S6 n2 r" M# i
  27. # Show HP meter?
    8 K' H4 c- b2 L) @
  28. HP_HUD = true1 _4 \  B5 n7 H( b8 O! R  `
  29. # Position of the HP border
    . I9 U$ c% l& F) Z
  30. S_BORDER_HP_METER_X = -2* P/ m5 b' q) H2 J
  31. S_BORDER_HP_METER_Y = -2  " ]8 E1 V2 ~, w  C$ _3 f
  32. # Position of the HP meter
    / j  c) R+ N2 b  K. K( Z
  33. S_HP_METER_X = 0
    : j/ H  t- k; F( P# \
  34. S_HP_METER_Y = 0" G' j7 b. L* W
  35. # Show SP meter?. S6 f2 E! i' y; ^
  36. SP_HUD = true
    ! u$ ^% B9 z3 u2 Y
  37. # Position of the SP border6 a' k, m. H+ D
  38. S_BORDER_SP_METER_X = 0
    - {6 V9 ~: |3 v/ u9 o, D& Q
  39. S_BORDER_SP_METER_Y = 10 ; y9 h* U. H: ^' g- Z
  40. # Position of the SP meter0 O( ~2 b7 x" s! o+ g
  41. S_SP_METER_X = 0; f$ B- ]# l0 ]6 `6 ^7 ]
  42. S_SP_METER_Y = 10
    , Y' J4 N& y& r  X
  43. # Switch to disable the HUD7 q( e  q% O; y" F# G! S
  44. DISABLE_SHUD_SWITCH = 56 x- C+ l" m  A/ Q
  45. RANGE = 207 a% }0 Y3 X, J" ]1 k' S( {
  46. end
    4 W, U% u! p/ ]/ B; h2 Q
  47. #===============================================================================
    8 }, D  R% e. [* T8 _
  48. # S Hud
      A' l8 E" z: S$ W" v' q. t
  49. #===============================================================================7 m' g3 g: M. F% K
  50. class S_Hud < RPG::Sprite4 d& x$ Q, l5 ]% e- z6 q% H
  51.   include MOG
    , S8 R. N5 M% p' l
  52.   #--------------------------------------------------------------------------
    % @  h& d9 ~' q9 T. e( C6 t
  53.   # * Initialize
    8 Q$ u7 L  K+ c+ }2 X7 f% g
  54.   #--------------------------------------------------------------------------
    2 {! Q7 Q8 d' j5 M" c
  55.   def initialize(enemy,viewport)
    ) B/ s6 k% M, n. B3 p/ T
  56.     super(viewport) 0 Z2 Q& t8 Q5 |6 i6 x. b
  57.     @enemy  = enemy; |7 e6 {$ ?) N+ K, j3 a
  58.     @battler = @enemy.battler9 g/ [' h( T3 r" U
  59.     @old_hp  = 06 h3 ~! ~$ T+ l8 W- H! v# m" k
  60.     @old_sp  = 0
    / c. e& N* O& t$ f: ^8 j/ L0 m
  61.     @old_vis = false
    # q2 S2 N7 G! W1 {
  62.     self.bitmap = Bitmap.new(100, 100)5 k% W( e  D$ D1 |4 {9 d
  63.     self.visible = (VISIBLE_DEF)#false/ N" u9 |2 v2 f2 ]
  64.     self.z = 100; S# L9 Z  E9 A7 b) C2 ~% W
  65.     #HP Border -------------------------------------------------------------------
    9 ~. n4 T, N/ u9 P
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    7 i2 T& u8 ~  G( A$ \6 U
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)! b- {- C! [+ W' Q( }$ [* P
  68.     @layout_sprite = Sprite.new
    * t& f: H, m% P" `8 R
  69.     @layout_sprite.bitmap = @layout_bitmap6 S4 d; w3 L5 t2 l  }
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    & M1 Y7 q* T  |% m) F2 Q
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      * L5 @6 Y# N( |
  72.     @layout_sprite.z = 5001
    , |( {/ C# X" V4 y4 Y) m7 N8 J% H
  73.     #HP Meter ---------------------------------------------------* u. Q* Y& _$ S
  74.     @hp_flow = 0
    ) y. V# ?. J# |3 ^1 B/ L. u
  75.     @hp_damage_flow = 0* k: e3 ~6 u: X* }/ e3 \( m
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    - K% c! Y: N0 v) e9 W/ U! W# G# ?
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    " |1 M1 h* j( h+ h5 Q5 P
  78.     @hp_range = @hp_image.width / 3- `) Q1 g) D* k0 C: I5 W% Q# m
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    0 E* x! N. |0 ?( X$ z
  80.     @hp_width2 = @hp_range / 2
    & D7 |$ t0 ]/ N: |+ ~
  81.     @hp_height = @hp_image.height / 2
    4 N! U# i: C. z) `! Y, j. Q
  82.     @hp_width_old = @hp_width: G# P5 a% r- w7 A6 D  @
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    ; _; L% x' n. z+ @# ]8 I
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) 6 X3 h1 A) U& p0 d0 ^* f
  85.     @hp_sprite = Sprite.new
    ' u/ T% V7 Z  t# ^
  86.     @hp_sprite.bitmap = @hp_bitmap
    5 h5 e) D4 z& Y& {2 D$ O7 i7 }8 Z
  87.     @hp_sprite.z = 5002. G7 v" j$ e2 G. R- `
  88.     #SP Border -------------------------------------------------------------------; e2 J3 D3 J( T& u9 a
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    $ y' M7 a' {2 I/ V- P
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)/ s  w9 n4 E& Q
  91.     @layout2_sprite = Sprite.new. T' u9 f# s' {% M- {* r5 e3 m
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    $ S9 P# D* T* x; p0 w4 I. j$ N
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)2 V+ h4 H, R! M+ r9 ?9 x% Z% F
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      ' E1 K6 y- A% X. _' I7 c& e, {  y- [
  95.     @layout2_sprite.z = 5001    : P; j8 U: u  U# }
  96.     #SP Meter ------------------------------------------------------
    " H. \, C6 F6 Z6 H
  97.     @sp_flow = 02 J% A6 n; ]- |& r4 i. v
  98.     @sp_damage_flow = 0
    / g% B' z; D, U
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")4 m" }+ E3 ]: O3 A5 |8 y
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)( C- g# l9 r2 G& \- K& a7 K+ }
  101.     @sp_range = @sp_image.width / 36 V" H* C9 ]* G0 b/ B. A3 \( X
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  - O, V/ ~: v- b5 r" X% S' A
  103.     @sp_width2 = @sp_range / 23 |: a$ T# o) L# ]6 c
  104.     @sp_height = @sp_image.height / 2
    ' F8 N9 g# }7 N3 r% E4 d! w
  105.     @sp_width_old = @sp_width& A) v$ ]+ I! w/ |
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
      m; ]! F$ z9 c- ~
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    - ?' T( }: Q1 d( I: r
  108.     @sp_sprite = Sprite.new
    1 U- y6 j+ l2 \
  109.     @sp_sprite.bitmap = @sp_bitmap
    $ ?; [0 j  u: [* B" ]7 |% R2 P
  110.     @sp_sprite.z = 5002
    ) l% M! K9 g1 [0 K% S7 G6 _2 J2 }+ m6 `
  111.     update, u3 R; y, O+ n
  112.   end/ `1 u& V, H/ Q. Y4 |
  113.   #--------------------------------------------------------------------------
    ; W) m& n9 K% I! i( P
  114.   # * Refresh+ j: o  Y0 q! Y3 N; T
  115.   #--------------------------------------------------------------------------2 j2 E( V! ~+ w+ \8 n
  116.   def refresh/ D: d! F1 A. ^3 I/ a- a
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible: r2 I, b4 G0 n7 ?" g
  118.     self.bitmap.clear7 L  o: S* Y# b2 E9 `2 k6 c
  119.     @old_vis = self.visible( W/ A5 B6 j! A) y1 y
  120.     @old_sp = @battler.sp
    2 C8 d( z, C. R, i0 F
  121.     @old_hp = @battler.hp+ s  V4 P3 k' O9 e
  122.     hp_flow_update- g! ?1 T# C* K1 M. }
  123.     sp_flow_update
    4 ]/ N$ a" w7 E: O* K
  124.     hud_pos_update* N! M: @! Y: s9 C: j2 @
  125.     visible_update
    ! }) V! P+ {1 @% y# ], m/ H- I
  126.   end  ?& r. x. E: z% C: ~
  127.   #--------------------------------------------------------------------------$ d" P: v# F, _8 C' I; Z1 S7 y
  128.   # * Dispose) I, P( n# N) q' s9 F# ]
  129.   #--------------------------------------------------------------------------/ j% G+ k7 Z9 H" B
  130.   def dispose
    * u/ U- {: m/ x! F( G  r/ A
  131.     #HP Meter Dispose
    ! P, n& G/ f9 W$ E* ]
  132.     @hp_sprite.bitmap.dispose
    % j' N; \" c/ ^- e+ d
  133.     @hp_sprite.dispose
    ; D% l* u: E9 G( _; G2 L
  134.     @hp_bitmap.dispose
    , }$ L* X' a# W  N0 F7 A
  135.     #HP Border Dispose4 K: K% [3 P! a3 O+ v$ ^
  136.     @layout_sprite.bitmap.dispose
    3 Y! v' C$ r) W6 L2 I
  137.     @layout_sprite.dispose. \0 u9 T3 n; S8 q3 j
  138.     @layout_bitmap.dispose3 Z/ ?% ]) w- ]4 A
  139.     #SP Meter Dispose
    ! ]$ Q7 }  \4 \5 L' j- T; F7 Y8 z2 }
  140.     @sp_sprite.bitmap.dispose% T  a- }8 F2 g* j' U# y
  141.     @sp_sprite.dispose2 B4 q. G% i" Y6 G' Y
  142.     @sp_bitmap.dispose
    / Y/ B& P0 X1 c# L4 k+ F& Q/ r
  143.     #SP Border Dispose* b2 Q- ^+ d* n/ Y* E3 P4 N2 |
  144.     @layout2_sprite.bitmap.dispose+ e- F+ g1 d- x- d
  145.     @layout2_sprite.dispose
    ' C8 y) h* q7 t
  146.     @layout2_bitmap.dispose
    4 p. n( P- ~) C5 Y. A3 O
  147.   end
    8 R$ x" E/ ]3 J3 u: w+ z0 N
  148.   #--------------------------------------------------------------------------
    ! ?9 M& m, \- W' Y
  149.   # * Update
    6 W/ [0 e) m" U7 v+ T8 T  s
  150.   #--------------------------------------------------------------------------
    - {' W: u" a1 d* }1 K& w
  151.   def update
    7 n  x$ T% i0 s1 p1 G) ?1 G' ^
  152.      @battler = @enemy.battler ' x" M9 z: x4 s; N* y: I
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    6 u+ j- |5 ?: m) ]2 Q# D' o
  154.      if self.visible9 R6 A) |3 h% h5 g4 A( E
  155.        refresh. l* p1 r5 ?7 v% {
  156.      else1 a( e; c. G0 J4 a
  157.        self.bitmap.clear: x# z8 V, \5 Q7 l1 v  K& P1 I
  158.      end/ S0 V" U8 B% ]' d
  159.   end
    5 @0 d2 }9 h$ i# ?
  160.   #--------------------------------------------------------------------------1 ]( E, d/ J% T
  161.   # * Visible Update$ T" @% C8 J; q
  162.   #--------------------------------------------------------------------------
    9 V: |( B# E- \8 _
  163.   def visible_update
    , Z3 y$ M, i7 G  M
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    # k9 G5 v7 F+ @0 k% o
  165.        @hp_sprite.visible = false
    * t2 @0 ]% N1 H5 |$ f/ z6 j& [
  166.        @layout_sprite.visible = false# o6 l/ c' A% ^8 j6 V
  167.        @sp_sprite.visible = false- {" u- \5 h& K. `( Q* e
  168.        @layout2_sprite.visible = false' y1 Y0 z6 m: r% {$ r% B
  169.     else$ |$ G6 p4 {! z* [7 O- k
  170.        if HP_HUD == true5 M8 k( ^7 _3 P: f1 Z# ^' A: ?( _
  171.          @hp_sprite.visible = true& [* h. K' J' P: b
  172.          @layout_sprite.visible = true
    1 q1 `7 T' N4 [! a8 r; h1 X
  173.        else  F3 r" Q; P3 ]) ^5 r0 y( V
  174.          @hp_sprite.visible = false
    4 C& Y2 k( Q# S+ U5 E
  175.          @layout_sprite.visible = false
    ( z* H. v! W# N5 l- d7 t9 C" `" Y
  176.        end  * ^9 f+ X. f/ D( ~: I+ X2 q
  177.        if SP_HUD == true
    0 f$ ]( ~8 S2 ^+ r
  178.          @sp_sprite.visible = true
    , k8 b$ [1 P( }( b) T
  179.          @layout2_sprite.visible = true
    ' y0 x- R# d+ W4 \
  180.        else7 I5 n; `$ n! c3 E: i' k/ J* b( P
  181.          @sp_sprite.visible = false5 ^! v4 r) t& Q5 k
  182.          @layout2_sprite.visible = false
    / g& K* H+ u5 y; j- e4 {$ E
  183.        end
    ) k' S( B' k( B& b8 @- n1 Q$ L9 y
  184.      end  2 v2 M, m" Q3 R7 d) ~8 w/ K# X
  185.    end
    ) h0 s1 [) O" e  t$ x( s7 [$ N
  186.   #--------------------------------------------------------------------------, o1 u: `5 j; ^" T6 W$ l
  187.   # * Hud Pos Update
    7 _. A0 u( w  K& _
  188.   #--------------------------------------------------------------------------1 _, v' `% G% t5 R9 C& N% J
  189.   def hud_pos_update
    9 X' i7 D2 d' _4 R; r% D: G& F
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    $ ?, ~0 t: I2 E' S" u+ E  T( ]
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  / o% X5 S9 R7 Q, v& Y2 n
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    / A7 p$ A) o2 e6 J5 `! ~
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    4 k9 f9 p# k& Y% O
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    2 V# r8 _& w& m# N# |, m
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    9 }0 e$ O- I. r0 B6 J
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
      K; Q6 E" \. Y1 O0 V
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     ; p7 ?. F3 h8 ?; O! M
  198.   end  
    ; k, J8 j  r' k  Q5 N
  199.   #--------------------------------------------------------------------------
    0 D7 G) l& c% `7 _0 z
  200.   # * Hp Flow Update
    4 i+ N# E9 q) }0 h3 w( w* t( U
  201.   #--------------------------------------------------------------------------
    0 a9 \9 F" {6 c6 E2 v
  202.   def hp_flow_update
    , m* N% V$ Z; O2 ^
  203.       @hp_sprite.bitmap.clear. _9 S2 o+ o- x( o$ K
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  - e; J4 h2 y" b# e! b  u5 M2 m
  205.           #HP Damage---------------------------------, w4 M- ]% @$ |" o
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100# j6 F' x( @3 j. t
  207.           valor = 0.5 if valor < 1         
    % f* O- ^3 D0 e. [
  208.           if @hp_width_old != @hp_width' w2 T7 _- r" R- U% H5 i3 f
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  $ s# X) [' g3 x1 G
  210.           if @hp_width_old < @hp_width
    4 i' N2 [1 Y- a5 O4 N
  211.              @hp_width_old = @hp_width
    % a- }  ]% m. D$ r; I. R
  212.           end      
      E, v& P+ W4 S# Q  G
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)' v6 ?& {) d6 `, ^8 g$ k5 I: d
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       . i- c1 ~. E; c: A& _! |3 k1 i+ `1 W
  215.           end        ( s& I  C, W$ v5 Z
  216.       #HP Real------------------------------------6 ~: j6 J* U+ x! i7 F; m7 m/ }' V7 L
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    " q0 I; C, E, I/ D- b) f! c, v* h
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          + g4 ?% E8 I1 U  _
  219.       @hp_flow += 2  8 W) P# o/ ^  ]& g6 ^! C
  220.       if @hp_flow >= @hp_image.width - @hp_range
    * @: e7 |0 F6 L' ^" }7 _, E
  221.          @hp_flow = 0  
    / j1 J  _1 ]6 v5 @0 k
  222.       end
    % M% I( N, m) x+ T) f6 u
  223.   end    4 p, I0 K( J8 |8 `3 D5 h8 ]5 @
  224.   #--------------------------------------------------------------------------
    + m" C8 n( V# M& d$ S- P
  225.   # * Sp Flow Update
    # {7 ]( G1 R# e% Q$ K
  226.   #--------------------------------------------------------------------------
    $ T& w. B# c7 s1 W4 v
  227.   def sp_flow_update' y8 q: Q% H( |9 J1 @) {' f
  228.       @sp_sprite.bitmap.clear5 `! j7 E' H5 B' V' C3 Z
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp " C- B7 z+ B7 v! J$ X3 Q, U& P
  230.           #SP Damage---------------------------------
    3 h$ u, \$ {3 A2 v* r
  231.           if @sp_width_old != @sp_width* ]# x* r6 d5 r
  232.           valor = (@sp_width_old - @sp_width) * 3 / 1004 ]2 r2 _, I6 c# S
  233.           valor = 0.5 if valor < 1              
    3 c- i% E- C; U' o
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  & e' p, M. F. X# t" |) }9 w
  235.           if @sp_width_old < @sp_width 8 [, @$ U) z( N5 R! N
  236.              @sp_width_old = @sp_width8 M" ]& g" N, ^: e' ]/ F
  237.           end      
    3 R- s! R, @; b. W0 k
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)8 g7 {/ F7 g* S/ o3 R8 i" G
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) 0 d- q. b) J9 `( X# O. \
  240.           end
    0 b) Q0 g9 d* ?3 B; r
  241.       #SP Real------------------------------------1 _( X/ w9 N" N6 }1 {) d8 b/ Q
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)1 E  y1 L3 e/ z3 K) w  Q
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)3 x& S/ Y/ t! {3 B+ n5 r
  244.       @sp_flow += 1  5 C; H/ s1 ?3 p( z3 H1 o3 y
  245.       if @sp_flow >= @sp_image.width - @sp_range" O) c/ G  `0 q0 `; f$ s; n
  246.          @sp_flow = 0  
    . L  j/ @) ?7 E4 B! w) d
  247.       end7 O" T) @3 y& K: O9 q* n
  248.     end            
    - _- M$ N$ B: Q
  249.   end" r  F; \) j) j: K4 T5 U* a
  250. #===============================================================================
    8 _) j2 t: M" K
  251. class Sprite_Character < RPG::Sprite
    0 z- j2 w6 Q) w6 @0 c
  252. #-------------------------------------------------------------------------------
    - a! s- \( w( |; I
  253.   alias :xas_emini_hud_init :initialize# O3 v5 Z& V1 Z) J# N. T
  254.   include MOG
    ! l- y) J$ j" t0 n1 i( i
  255.   def initialize(viewport, character)5 ]& t9 t* f4 ?7 {. t4 K' `
  256.     xas_emini_hud_init(viewport, character)+ @* }! Q( n0 x- \
  257.     @viewport = viewport& \! {6 g7 Z) c' o
  258.     return if @character.battler.nil?
    ) k) k3 A) G2 K# m# b! d
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    ) _* ^. O& z1 I
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)" s% ~8 r1 H, @7 ?
  261.     return if @character.battler.is_a?(Game_Actor)
    # f  k  P" {  A* k% v2 g# Z' E
  262.     @bars = S_Hud.new(@character, @viewport): `0 I  \% s- U! X- J& |+ B
  263.   end& U' {& b' ~* Z! b
  264. #-------------------------------------------------------------------------------: D8 U$ y/ N! u5 c0 f
  265.   alias :xas_emini_hud_up :update
    ) _6 O  K7 d6 e( {; f
  266.   def update
    9 B6 ~) j5 Q0 v. V7 j
  267.     xas_emini_hud_up
    5 Q: ^1 z; H4 m( b: p( ~
  268.     return if @bars.nil?
    - L! Z6 T* [: b" {
  269.     return if @bars.disposed?
    9 ^4 _& ~  M# R/ p* ~3 r
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs; _1 L! P7 D" G- p) v; v) H/ J  n% X
  271.     @bars.visible = (dis <= RANGE)$ x! N; F3 E% j( X3 G
  272.     if @bars.visible9 E4 `/ P$ s. t+ J
  273.       @bars.x = @character.screen_x# - @cw / 4. Z6 c. u" P) s7 O6 m5 O* t
  274.       @bars.y = @character.screen_y# - @ch / 4
    ; {  N  E9 L4 s$ ~
  275.     end
    2 R4 d3 o: g2 s; G. A9 \) A
  276.     @bars.update9 T' Z4 B- x) Z: y1 |; p
  277.   end
    . C1 a$ S. B: o6 ]# i2 J7 `
  278. #-------------------------------------------------------------------------------
    7 j- S( z& y# p$ i* h' R! U
  279.   def dispose
      E) [! }, a" V5 Y1 G. H+ y
  280.     super( J' o' q! a3 c0 ?$ k- g0 F/ ~
  281.     @bars.dispose if [email protected]?
    9 }" D! ]7 l% |5 W! v9 j
  282.   end( d- U; n  j& w+ \" A+ W& _" L. J
  283. end* {7 ?. K5 n+ r6 \$ f7 d" U  c- x

  284. 1 E+ j2 S! R, K! H
  285. $mog_rgss_s_hud = true
复制代码

8 L% d7 _! n3 o# a' \1 a  W" D2 {  j5 d% _% P; a- C; @, ]

; j+ E8 X9 U' W( c上面所說出錯的203行內容為2 W4 @5 l2 i( F- M
@hp_sprite.bitmap.clear- T  W2 Q$ g* O
+ C2 \; A+ U8 [- }
想知道怎麼解決$ R. r  N5 n! B7 J7 M/ J

  c: q# A3 n. ]+ ?該腳本支持3.82
3 t3 N6 i4 d% @3 \8 f
2 [+ a' u* J% h. m! P$ y3 w" K下面是圖檔,要塞在Windowskin下
  H& B/ D. }& X8 R% b
# @% y8 X0 g; R% c( E0 f+ y' {- [ S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) % T- ~5 x" H9 I8 A9 Y
+ X8 T3 x: j% b$ d- }

! y- N8 L& b' m- H0 G. h* w" x! Q

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适9 i; W( @# [& z6 f  _! a
结果尝试刷新了一个已经释放的图形% Q4 H" S- Z" w. C2 }4 `. t5 W

* c- }0 D( v0 l- J3 w0 D. o7 q7 d# }: q

& [0 c: m4 e) f# ^* H: C/ ?% ~" S( o虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    4 S( A, N2 f9 m# q# h8 F/ Q
复制代码
不要后面那个条件貌似就没问题了。
: f1 p7 n; s0 @
, d6 H& G/ J7 i1 S' E! B: e' f2 Z' J7 }2 Z* c6 N; o
- _3 {2 a: w5 q' C& n( h
8 g& K% v; d( H
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
477
在线时间
1785 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
0 |0 ]6 Q3 M) v/ \9 I( O貌似是释放的条件不合适7 f& u( ]. x1 n- r+ m
结果尝试刷新了一个已经释放的图形

/ b6 Q# ^8 V& [' t* d3 H" z! X把後面那個條件弄掉後,的確沒問題了5 U) K4 K1 ?1 r$ G7 Y
目前從關頭打到關尾結束都沒再彈什麼錯誤* d3 P$ t$ a% D$ x
非常感謝& G5 V- K/ I$ n4 ^. A

" W) p0 x* C- J  z5 [; V不過我是參照著別人腳本改的8 ^- _7 l# s6 |9 R! c* Z0 H7 d7 y
他寫的條件式也是那樣,但我用他的沒什麼錯誤
/ d0 v* ]5 _3 c  s8 b不知道是怎麼回事" y' g( b7 v1 w; V: n2 b1 N' |1 k
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的# K% L/ A' n  B4 `7 d; I
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events6 u  C9 f! Z$ T& \* [+ t  i. m+ B
嘛..这个数组吧..我在以前试写队友的时候关注过一点  I$ P- H5 o) \
不知道XAS内部对它做了什么手脚还是为啥,# l& W' H* O. U2 c
总有那么一瞬间,没有被消灭的敌人事件也变成了nil
* s5 g) H, N$ i4 `
/ G0 m9 e# s- Z$game_map.events.values[@enemy.id].nil?) d* }7 u) p. h1 K+ f
因此自然而然的返回true并符合条件把图形释放掉了8 V( A/ Y5 B" H2 a& g$ C

; Y8 C) p3 u6 n! N/ |# |LZ应该有注意到吧,- a2 ]  r0 [/ `0 A
我测试的时候发现报错前几帧,图形会消失,: `- x- J  _! v2 \$ C
应该就是“误以为敌人被消灭”了。' p6 D7 I2 @& e$ z0 T" E

5 L1 c' u! L; ^受限于个人水平,至今无法找出$game_map.events的真相..* N- Z9 L7 l' o; B( x
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
477
在线时间
1785 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 $ o8 v; v, [" y+ H1 I8 p
$game_map.events
4 B" t% U2 }) q$ ^& N嘛..这个数组吧..我在以前试写队友的时候关注过一点8 |( E! P+ T: [% W1 m; O
不知道XAS内部对它做了什么手脚还是 ...

1 T8 i% N, [2 V* C4 H當初我把那個條件式看了三遍,都不覺得他有什麼錯
! r7 G1 D; T( a3 Y原來還有這麼深奧詭異的事XD( s/ Q& B  u7 p6 q7 ^1 V" M
9 Q" x. o  E# D% [. V
錯誤發生前的確會有圖形沒顯示出來' a0 o; J" x5 q
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
* Z! h% s. q* Q9 h沒想到居然是詐屍了XD
: d2 m& P! Z8 y/ }# b7 v3 [$ g# `+ o: b, i* _3 m" e
不曉得3.91有沒有修正這問題...
2 ]9 h* v$ s: C. D. D; v0 i不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
+ f  Y* }7 T1 R& v! G, f( G
. o6 H: L! N8 X- u5 {的确
( y: y* W6 T" Z* B7 \; }用惯3.82之后想去整3.91觉得压力甚大..
5 v9 P2 _+ Q% Q8 A4 M1 N7 H( b! U干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12484
在线时间
21820 小时
注册时间
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”。. r% Q- S- c5 R  x9 a, ~
' O& c0 u& [$ ~& o
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-7-28 00:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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