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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條/ h. h6 {: e) y; M5 G8 p
會在每隻事件怪物的腳下顯示2 M4 X& f& [+ d" ^
問題是不知道為什麼
7 @% f3 y# t$ P/ v9 z. j有時打怪打一打會跳出
  F4 k% G: \  n---------------------------; B" R9 P# J1 {
XAS/ k' r4 v' k! f- M0 E
---------------------------
7 Z+ }* D* H' O) u脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。5 ?. d) w8 p4 ~$ ^
' ?+ g! X5 `8 M9 [
disposed bitmap" v6 {# n! W+ X2 ^: a2 Z* b% M3 Q1 c+ C
---------------------------5 l( u7 K' ?+ @. \" X2 ^% Q! n
確定   
" O5 W3 e" L" z+ g/ e, ]---------------------------
# J9 D3 y8 o3 X, M( d
* a, A  K+ v2 M# k3 D! A6 g) W這是腳本$ L1 X* p' s! }$ ?
& c0 z- H4 b+ k0 ?, t& g# H
  1. #===============================================================================
    9 \- n6 V$ K) n. {1 r
  2. # MOG - s Hud 1.0      
    9 u( k: f6 q; E  i0 Z9 C5 ]
  3. #===============================================================================' T. L1 c/ u  g* Q# f, I
  4. # By Moghunter % Y0 r: l. w! w" ^
  5. # http://www.atelier-rgss.com2 ?. Y4 f, K$ t9 s) T5 Q/ H3 B
  6. #===============================================================================8 E, S" B7 M1 a" f" i, b
  7. # Translated by Calvin624 / O5 F8 N0 Q# g+ @
  8. # http://www.xasabs.wordpress.com
    7 b* Z& O8 P/ K
  9. #===============================================================================, J6 E# b9 R5 n" {# N
  10. ###############################-DESCRIPTION-##################################### w$ k- I, B( W3 P  J& @
  11. #===============================================================================$ w% y# k; o6 R* @" s' v% V( x% ]
  12. # Personal HUD – displays the HP and SP below the hero.! F' s/ u7 N$ G7 c5 |, t1 {
  13. #===============================================================================
    " p& x! G# m0 i
  14. #
    8 F3 j* b7 N7 |- C1 b
  15. # Graphics required:
    ' b# [* T) y$ o+ w5 R
  16. #
    # A$ ]* c! i% w1 b
  17. # S_Border_HP_Meter.png5 m2 i( b% P( }, ~2 _
  18. # S_Border_SP_Meter.png
    ; W3 d9 w# X. q9 D" {+ R/ ~* Q
  19. # S_HP_Meter.png
    1 s* c, E5 r2 M! {8 b# Z
  20. # S_SP_Meter.png* H8 Y, J7 H7 A/ B# x: _
  21. #
    - k, Z9 e' G6 D: m& @
  22. # All images must be in the Windowskin folder.
    5 n/ N3 i: ~& `/ {# @; z
  23. #. O1 C+ i+ T" [- H
  24. #===============================================================================
    ' f" z9 L! X( [1 |2 q- T* B6 w
  25. module MOG
    8 U3 P" ?: w0 o' J
  26. VISIBLE_DEF = false  
    . j/ L: q( O% S2 j# u# c# j
  27. # Show HP meter?
    - b# q; l% O5 B4 h  J- A9 n0 v
  28. HP_HUD = true
    7 E5 g+ ?" [) z* ], V
  29. # Position of the HP border
    ' ~2 n* c  {$ ^& q# j/ o9 a
  30. S_BORDER_HP_METER_X = -28 N: m2 V& v3 Z/ I* w
  31. S_BORDER_HP_METER_Y = -2    O7 Q/ c$ {8 O- x! S
  32. # Position of the HP meter( m* R% _2 @. W: g0 j
  33. S_HP_METER_X = 0
    + r/ A0 }6 Y1 h/ F9 e
  34. S_HP_METER_Y = 0
    ' J' p' d' v% j) o
  35. # Show SP meter?& m  e% |/ y# D' \- V; |, l: F) u
  36. SP_HUD = true
    2 H; v: }5 r- s$ c+ I$ \! g
  37. # Position of the SP border. c# |! a: t( z7 w) K6 F
  38. S_BORDER_SP_METER_X = 0+ g! n; a% X. q) J
  39. S_BORDER_SP_METER_Y = 10 9 z" e1 q$ G# \
  40. # Position of the SP meter. {' K  y$ O" l0 k* W- w2 i6 d
  41. S_SP_METER_X = 0
    6 p1 l; T' s. q+ u& U: I
  42. S_SP_METER_Y = 10+ z+ x6 t# S) B) k5 P
  43. # Switch to disable the HUD6 l1 m4 T1 [5 G
  44. DISABLE_SHUD_SWITCH = 5
    , t$ K1 E! B* |+ k: M: O! u
  45. RANGE = 20
    + P8 m( n. ~( @9 ?( U
  46. end
    9 |3 p/ z2 r; O( ^, k
  47. #===============================================================================! G4 H' g% ^0 K$ S% M  B6 O" ~
  48. # S Hud- B# A6 T* [4 `* Q
  49. #===============================================================================
    3 [% E3 B- ?& c8 \2 a
  50. class S_Hud < RPG::Sprite- N+ g  w7 M1 f& T* [, ]2 s
  51.   include MOG
    6 C$ L( B6 J( r$ }
  52.   #--------------------------------------------------------------------------
    , ^" g& u8 b& e  e
  53.   # * Initialize
    : L/ B/ z) T5 W. Q
  54.   #--------------------------------------------------------------------------" J, g$ A5 {7 d8 a4 U. Q
  55.   def initialize(enemy,viewport)6 l. R$ [' z9 q7 t6 E
  56.     super(viewport) . q8 ^8 S- ^0 g, ~
  57.     @enemy  = enemy
    1 v4 w+ _! z" p' N
  58.     @battler = @enemy.battler
    / O3 h: i5 W4 r- v9 a; Z, B; H
  59.     @old_hp  = 0' k: d6 h7 P1 ?8 V0 E
  60.     @old_sp  = 0
    7 R! @: o; T: s7 `+ N  w# G# M! _
  61.     @old_vis = false
      U. u  z7 e/ ^9 T# m4 \7 S9 x
  62.     self.bitmap = Bitmap.new(100, 100)0 v6 U* P2 J/ n, d1 g
  63.     self.visible = (VISIBLE_DEF)#false0 R8 T. d. X( i. o; z3 n) x3 T
  64.     self.z = 1003 X' ~7 `9 l; _+ T/ k$ [) Y
  65.     #HP Border -------------------------------------------------------------------& j  {5 Y0 {( J) {9 r
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    . C/ e2 L$ p6 C0 y4 g. x% w
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    , r" I# s. z% G  L! C
  68.     @layout_sprite = Sprite.new
    , I4 p* X$ d$ q1 }# z& Q: ^; G
  69.     @layout_sprite.bitmap = @layout_bitmap' D' ^3 y# F2 X/ E5 i! y
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    ) h  E1 |, Z5 a( J: C
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      7 C& }# A- ^" u  W( e
  72.     @layout_sprite.z = 5001- T% H( s! u0 B6 [
  73.     #HP Meter ---------------------------------------------------! |5 R" L& Z+ ^! ?  P. |# c
  74.     @hp_flow = 0
    + v( A% v) f9 E4 \9 N
  75.     @hp_damage_flow = 0/ ^% f! d/ h$ y. F. k/ K
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    2 F8 v+ }, {3 ~6 o, F: S- M' P
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    3 u- K. k( v. I- Q
  78.     @hp_range = @hp_image.width / 3
    / u4 k6 D9 b3 M5 i
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    ( L& h7 |0 l6 H1 V7 ?2 z
  80.     @hp_width2 = @hp_range / 27 `0 P. B9 C2 A4 ~4 G0 z
  81.     @hp_height = @hp_image.height / 2
    ' J6 D3 R9 D2 m9 q. m7 [7 Z
  82.     @hp_width_old = @hp_width
    5 O# Q+ D; `. w( q. D! A/ Z
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)4 K* ]; C/ T, D
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
      @+ k. L, y6 b6 {, u4 j
  85.     @hp_sprite = Sprite.new
    7 w$ @' J" b. X5 j& j) K
  86.     @hp_sprite.bitmap = @hp_bitmap
    " r8 U' P+ _( g0 V% g4 X
  87.     @hp_sprite.z = 50028 A3 m0 Q$ ^. H1 H6 X2 E
  88.     #SP Border -------------------------------------------------------------------' x  R" q5 t# \: ^6 x8 w
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")6 @& p& n& e" z8 x" a; A1 t
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)* z# d& v- P* h4 Y5 M
  91.     @layout2_sprite = Sprite.new& d+ d5 K5 r7 J3 D8 g  M( D% a/ y. r
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    2 w# k; ?  h8 D& {1 k9 ?2 y
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    : x+ O6 W2 T7 \: C+ ^) b" b4 o9 u
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    0 `2 p$ `" Y% X6 X3 ]' u
  95.     @layout2_sprite.z = 5001   
    $ P8 k/ o: p5 n" f
  96.     #SP Meter ------------------------------------------------------
    + y# R( k; X  c; p! C3 J% ]
  97.     @sp_flow = 0' b$ [& J, Z9 T* U, E, J1 ?+ L9 _
  98.     @sp_damage_flow = 0! u; Q4 V/ q& g, s9 A
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")' F$ P! d. n2 z! q9 ~
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height). k- V( J$ R& B  X7 T
  101.     @sp_range = @sp_image.width / 3" K/ S- }8 K" _, g8 q
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    " j7 Z% c1 A) W. Y2 I
  103.     @sp_width2 = @sp_range / 2- V' N1 H) \, j5 {) w5 w( y0 o2 {; m: Q
  104.     @sp_height = @sp_image.height / 24 X0 p' Y. ~6 [
  105.     @sp_width_old = @sp_width0 M" p/ `% ^6 F; K: O5 g/ W( L% Z! \
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)) D0 j& f. y3 [8 R
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    ( m( `0 ^$ E* C2 G0 T$ y
  108.     @sp_sprite = Sprite.new$ R% N! g' L7 U7 X' s
  109.     @sp_sprite.bitmap = @sp_bitmap
    ! V$ ~- r  y/ N" x& H5 k
  110.     @sp_sprite.z = 50021 ?4 a, P3 v* H* t
  111.     update
    7 t7 w+ V9 n7 f2 D- N+ a
  112.   end/ U+ j5 K5 g' k) R; q! B
  113.   #--------------------------------------------------------------------------- Y; B) [4 J9 D2 b  K( e1 i
  114.   # * Refresh3 C+ _6 U% C0 T. l( v
  115.   #--------------------------------------------------------------------------
    ( t& E6 q  d/ e+ H9 w% t, g
  116.   def refresh; }8 k/ f5 a3 R0 \, Z
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible8 @  D# m% {' J% c+ R& ]
  118.     self.bitmap.clear
    / R, B5 F# h4 ]4 O+ Y. W5 s4 b
  119.     @old_vis = self.visible; x( L$ q/ [' o2 f6 o1 L! d4 _
  120.     @old_sp = @battler.sp
    ) m- @) g! Q0 v
  121.     @old_hp = @battler.hp
    , M- }, a& E& M5 [
  122.     hp_flow_update% {; ]" c7 i& y1 F
  123.     sp_flow_update  n/ |5 u% _' I  b
  124.     hud_pos_update
    7 d7 {# I! P2 c6 q1 l3 T
  125.     visible_update' d. W2 v1 E& d0 c
  126.   end5 L5 U, P# o3 H/ C9 i
  127.   #--------------------------------------------------------------------------
    ( s( M! o0 O8 Y/ P
  128.   # * Dispose7 ]5 b* d% M3 h1 v) G6 y
  129.   #--------------------------------------------------------------------------
    % D% H$ N, T; e8 m
  130.   def dispose
    6 G0 X0 ?1 V& j" Z7 Z) v+ g
  131.     #HP Meter Dispose
    3 k: ^9 ]: M& T# P5 J
  132.     @hp_sprite.bitmap.dispose
    & I* a( Z' K8 g. U% o* {% `
  133.     @hp_sprite.dispose+ @4 [9 R" T) ]5 j& F0 n
  134.     @hp_bitmap.dispose# W6 x3 x. O7 P
  135.     #HP Border Dispose
    $ Z8 B) p" R' l9 ~
  136.     @layout_sprite.bitmap.dispose  T/ }+ O- N0 o0 h; L: h
  137.     @layout_sprite.dispose
    2 c- h6 b5 V( I9 U! b
  138.     @layout_bitmap.dispose
    % ?* y" @. m- M, k" W
  139.     #SP Meter Dispose8 Z! F% L* F, {0 ~% T; @0 _
  140.     @sp_sprite.bitmap.dispose, |  @6 ^: ?, w/ h8 Y
  141.     @sp_sprite.dispose
    2 p0 x2 |2 C# j7 `
  142.     @sp_bitmap.dispose# \8 Y4 z6 @: ]( }* R% Q
  143.     #SP Border Dispose# _# ^; F, @/ C/ z  I
  144.     @layout2_sprite.bitmap.dispose  w( M" O: x  y7 C
  145.     @layout2_sprite.dispose
    . R) U; p" l% S  k# i, H6 ~% }' o, K" x
  146.     @layout2_bitmap.dispose
    4 [9 n6 B" b6 N: E
  147.   end
    ( k  b- O* L8 _& U  X0 @
  148.   #--------------------------------------------------------------------------1 m6 [' ~* T7 |9 [; m" \# `4 n
  149.   # * Update
    1 W$ e: c7 q& l0 g
  150.   #--------------------------------------------------------------------------
    7 h3 A5 z8 X1 F9 x* j$ T( Q
  151.   def update
    4 D; Y6 L2 j. X/ T
  152.      @battler = @enemy.battler 1 m, Q2 a; h  X+ M
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?1 E! j3 M8 P; i4 s6 @9 T( H6 O+ {, x
  154.      if self.visible4 O4 p! O' w  P  G# C2 e0 c
  155.        refresh
    / G) S( i0 a$ P4 a+ w0 y2 f
  156.      else
    * o' R0 I% O3 f( `' S
  157.        self.bitmap.clear
    . w+ C( U3 q/ \, B
  158.      end: A& j1 L- S. \
  159.   end
    ; q8 c2 d, \. m# G4 q
  160.   #--------------------------------------------------------------------------
    8 \9 c: u! p; ~0 R
  161.   # * Visible Update& ^$ i7 J$ {% L% U6 i
  162.   #--------------------------------------------------------------------------" Y* i% s% X# \$ U
  163.   def visible_update3 P2 }) p' G) c2 Z# Y; l# U
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true7 m0 m8 {2 U5 {: x, p0 ~2 {
  165.        @hp_sprite.visible = false
    5 M% d' l! S' }, m; ~+ E6 x
  166.        @layout_sprite.visible = false
    + w# u) ]6 a6 k5 K
  167.        @sp_sprite.visible = false" o* v2 }  @8 r0 [# ?5 o+ E4 o; ]
  168.        @layout2_sprite.visible = false
    ( T5 L1 e$ I  q4 L; o9 ]/ l- ^' e
  169.     else' S8 v3 m* p# q0 H# ?. V
  170.        if HP_HUD == true
    4 i% g* b6 Z! F1 s
  171.          @hp_sprite.visible = true
    1 ^& \' `, K. U% p# q  n8 Z+ T4 v
  172.          @layout_sprite.visible = true
    4 h' R  ^" n1 |( H
  173.        else' G7 Z' V6 e9 ?1 M
  174.          @hp_sprite.visible = false
    ( ^" _6 B8 T8 |+ V. m( g; K+ A% d
  175.          @layout_sprite.visible = false1 F& X6 v; G' {- R
  176.        end  ) Y' A3 i3 g0 X2 U9 I) A+ B, i
  177.        if SP_HUD == true7 i' p* s! g, V9 V3 f0 _+ R
  178.          @sp_sprite.visible = true7 i, O0 P* m4 c+ J! N% ^2 O
  179.          @layout2_sprite.visible = true
    2 @; c9 B: a( V& w- w) c
  180.        else
    8 i0 d1 M: d! O8 T6 Z7 H
  181.          @sp_sprite.visible = false
    % U; V& ?, c& y
  182.          @layout2_sprite.visible = false9 F& |! n7 m1 ]9 @
  183.        end 5 x; _* z9 g8 h. J" j* D- u6 d
  184.      end  
    & g+ l( B6 a2 a
  185.    end 1 K8 ~# ~  t+ s% R! j/ {: D
  186.   #--------------------------------------------------------------------------5 P  u1 G* u: T" [/ i
  187.   # * Hud Pos Update
    " x, Z3 ~3 R) N) R( W/ s4 P  T+ ^
  188.   #--------------------------------------------------------------------------: c  X- ~8 H4 T" }' j0 B. x0 U
  189.   def hud_pos_update- _) R9 t! ~+ a, g' v# i- g
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    $ |$ ]& {( p3 M7 A0 R; {& D( I
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    # Y" f' U8 S2 T  c
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    * S+ L4 W5 {# R2 v) D
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    9 Q- l' f# O0 ?$ A$ {( E& y
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    ! a: \. c5 K" t4 F5 K
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  1 z, i' Q, q+ \! _8 G
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    4 k" M, ]; @2 @9 ~7 [; j; x' D
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     9 p8 x/ w, |! t: \1 H8 L9 u
  198.   end  
    0 p, i* I4 C5 U, \5 }9 K) f" M
  199.   #--------------------------------------------------------------------------
    2 q# q# E$ F; Y" q4 m+ t
  200.   # * Hp Flow Update
    + k. G0 @$ h- s5 `* l1 |3 N: B, X; _
  201.   #--------------------------------------------------------------------------0 y. L  H. E1 @7 q
  202.   def hp_flow_update
    . M* |0 x) Z3 W9 \* g7 L1 r
  203.       @hp_sprite.bitmap.clear$ _3 F( D5 {' o8 f; U
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  - Q+ O, Q+ \5 C* V0 n3 u3 |
  205.           #HP Damage---------------------------------9 R' q8 M! `, Y" l+ L
  206.           valor = (@hp_width_old - @hp_width) * 3 / 1008 R5 X7 @1 d# [. p2 D5 U7 Y7 G, X
  207.           valor = 0.5 if valor < 1          0 a1 W" Z# V1 F7 M& q% M/ u
  208.           if @hp_width_old != @hp_width
    $ F5 q9 J( _) _
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  ! _! N8 C9 V* z5 T3 [* ~+ S4 |1 {
  210.           if @hp_width_old < @hp_width ) @: N& V" {8 S. U% u
  211.              @hp_width_old = @hp_width7 Q5 |9 y* m8 @4 B3 }+ N% z' I) ~' s  O
  212.           end      
    ; v& R- t2 E; e+ R; X6 l/ p' P
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    9 |" |! g: W; P  g* h0 j* c9 [
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       0 n1 T+ V7 a& j# p, ^( N6 d& B
  215.           end        
    $ W+ b! I7 {  f! A- z. m& U
  216.       #HP Real------------------------------------2 f0 q% d( ^! h  i" D! @
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    # ~( n2 }; o( W3 [9 Z
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    $ q: ?/ \3 |0 z3 L; e" s1 K4 h8 T
  219.       @hp_flow += 2  
    . f1 m+ O; a- b7 r. U
  220.       if @hp_flow >= @hp_image.width - @hp_range
    1 O- d+ f: Y; Z0 M/ _# ]# e
  221.          @hp_flow = 0  
    + ?3 x3 Z2 g2 x" |/ A$ N7 z
  222.       end( L0 _' l- S* I/ i. N* _; c
  223.   end   
    8 y0 s- w6 Y0 u
  224.   #--------------------------------------------------------------------------3 f0 @8 d3 I8 Z, Q- P" _- M
  225.   # * Sp Flow Update
    ( M7 |& _% r2 ?  B/ V
  226.   #--------------------------------------------------------------------------
    7 T4 x% U5 `2 c* z& @
  227.   def sp_flow_update
    / Z8 F+ _% Q; K' [& L
  228.       @sp_sprite.bitmap.clear, y; P0 s3 w0 }
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp + |& D8 ~; m1 {/ }. r; u8 B! x
  230.           #SP Damage---------------------------------, j: h, g; m7 ~
  231.           if @sp_width_old != @sp_width4 ~4 o' L+ p7 \0 A9 p' U
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100" v  I2 i5 t+ v% ~
  233.           valor = 0.5 if valor < 1              
    / V! l8 ]" W$ O- N) B
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  * m7 a- S5 j1 |; T
  235.           if @sp_width_old < @sp_width " }0 r2 B: W/ g+ k- X3 i
  236.              @sp_width_old = @sp_width
    2 X# ^' [$ ?4 }- n
  237.           end      
    9 A( I3 x, w8 S& M& p/ a
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)% Q- Q% P0 z8 J- |! Q, n: m
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) # v8 {  k1 o$ _5 ]4 a6 }
  240.           end
    # y( O5 V$ }" }
  241.       #SP Real------------------------------------( [' X+ S0 N. p; H$ b+ C
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    / c% E# d, v1 o( ^+ ~0 R& H
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    + B9 d; D9 B. N( m; W
  244.       @sp_flow += 1  
    ; w! i6 q: c/ N: n/ {5 I2 P5 F
  245.       if @sp_flow >= @sp_image.width - @sp_range" l+ [) X1 s" R2 R& o' t/ ?
  246.          @sp_flow = 0  + O, \; N* d9 f5 e% A/ ]
  247.       end8 N# [1 o/ c1 i" N) n/ x' h% e# m/ i6 x' p
  248.     end            ) G  t# \) d+ p; F& j
  249.   end
    / P! ]. t* B7 J) K$ |$ ]! C
  250. #===============================================================================/ ?( S9 l& L( J5 ?+ r% E( P" k; r4 R
  251. class Sprite_Character < RPG::Sprite
    8 }+ [, B: C+ c* |- a1 H
  252. #-------------------------------------------------------------------------------3 N$ ^* f! |5 ]+ p) {
  253.   alias :xas_emini_hud_init :initialize+ g3 W) r5 R- d9 x# i1 P' A
  254.   include MOG% e' S: D) f  [" s9 G) X+ h. u
  255.   def initialize(viewport, character)
    " V8 K8 j8 X) j  j
  256.     xas_emini_hud_init(viewport, character)% a$ d: B2 v9 S6 R; f3 I" X3 d
  257.     @viewport = viewport
    * D7 X% z+ x% @- c5 `
  258.     return if @character.battler.nil?
    ! S4 W% _9 ~2 K, `, k2 a
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    % k: \# Y9 N6 ^+ a5 J4 B
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    : T0 x7 b+ \5 H- }& m) I/ d1 ?
  261.     return if @character.battler.is_a?(Game_Actor); y2 K7 b1 N" ^; I& [0 y. m: Q, Z
  262.     @bars = S_Hud.new(@character, @viewport)
    ( Y) F( g+ i" O2 w! V( U
  263.   end3 }2 S) [5 u6 P, f4 n
  264. #-------------------------------------------------------------------------------  ?! J( ~3 J* f0 F3 M/ ?! M( v
  265.   alias :xas_emini_hud_up :update3 g5 p/ B9 |6 E
  266.   def update0 }+ D0 N* }* M7 ^1 {/ s
  267.     xas_emini_hud_up( \( o) {# B8 [! G
  268.     return if @bars.nil?
    ! @: H! Z& l; [' I9 i  B- T
  269.     return if @bars.disposed?* g/ B3 L2 d; T! J" V- V
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    / b5 G1 l9 [' Z2 h  k- _" E" ~! N
  271.     @bars.visible = (dis <= RANGE)
    0 @/ \3 Q: ?6 H( q
  272.     if @bars.visible
    6 W* D1 u" e3 K- `
  273.       @bars.x = @character.screen_x# - @cw / 4
    8 g3 W& S3 z% ?8 j# G+ {
  274.       @bars.y = @character.screen_y# - @ch / 4
    " W, E- [2 G8 ^# `$ g
  275.     end
    8 J* }$ k" s' b) I
  276.     @bars.update' w! y: x4 [4 t9 o4 u9 N* [' z
  277.   end
    + p" N- P5 K; S
  278. #-------------------------------------------------------------------------------, v* e2 Q6 r' T; E7 M2 P: U0 g
  279.   def dispose
    5 V8 N9 b7 d+ t; g+ r2 I/ W, v
  280.     super8 t; B  J$ L7 o
  281.     @bars.dispose if [email protected]?
    1 r9 ~( r4 Q* o, l
  282.   end9 I9 X' G" Q% n8 f6 v
  283. end
    9 m6 i1 e, n+ B% t0 d4 e: Q) Q

  284. ' k. N* [' p2 q7 r- \1 O& [4 x5 N
  285. $mog_rgss_s_hud = true
复制代码

4 E' a* p! `6 N* F* M8 _* S, c: ^. K6 F: T9 E4 \1 D+ R
  p  A# Q  L/ T% W" U
上面所說出錯的203行內容為
2 ?  k5 f3 S$ }/ f# |@hp_sprite.bitmap.clear3 }5 f- _/ H; n. \2 E

$ l! A5 S( q# ~- ?- L' v3 E& S+ T想知道怎麼解決. r8 r; s% O5 c  r& Z

& K9 t& m9 p* ?& w! g該腳本支持3.82
, V# k* z, G/ d$ y" b  h# s+ X* g# k6 D* ~1 O7 y$ V% e( g
下面是圖檔,要塞在Windowskin下
* s5 S* ~+ x+ w2 k% N$ E) J7 L8 M( `, v  q' R0 A9 ~
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) : M$ `2 @: ~. C6 h; G6 B* L
: i4 b( f9 P2 L* w& g. k+ C

9 c% k2 d# }0 `% P- E6 ?' x# N, |; S% E4 U/ |! b( I3 R' X2 h

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
$ d& ]' S' d8 X7 {结果尝试刷新了一个已经释放的图形8 e, f, J$ Z2 w/ O. L
( Y& l4 R, p  k
2 g- x$ a: @! M8 }. e* M: c
$ h) [% B8 ]3 ?% f( d% ^
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    9 O  h/ M6 Z6 N; `
复制代码
不要后面那个条件貌似就没问题了。% I* W4 j" U3 i0 u! M4 y  G

" h0 t/ V7 S, Y7 s1 ~" E: X8 k% {: Y2 U, K0 u0 Q3 G  X
1 G2 K! E) V$ Z2 C  s+ Z2 d) P

2 b4 f) q: N: {% T1 ?
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 5 Z7 |' |" y% b8 Y# T) K" d& E
貌似是释放的条件不合适1 C! h$ S1 {6 t! m
结果尝试刷新了一个已经释放的图形

& ?, K( O  T5 ?" B9 ^5 ?把後面那個條件弄掉後,的確沒問題了: Y* Z4 |# n1 ]8 t; ]
目前從關頭打到關尾結束都沒再彈什麼錯誤( I# P- I/ `: R! c' `, y
非常感謝& I" m* M! y: t6 [9 |" Q" e7 L. i7 A

2 |; j3 @' T) ?5 E6 D不過我是參照著別人腳本改的
- G# A2 V" P- N9 ^2 Z他寫的條件式也是那樣,但我用他的沒什麼錯誤9 J" Y$ J& \% S3 x: ]# d5 Y
不知道是怎麼回事
0 P, U) B: Q0 _" K- X8 w/ m2 T是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的' x4 r0 L1 q) n/ F
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events0 X" h2 q3 Q, ~) a' }
嘛..这个数组吧..我在以前试写队友的时候关注过一点9 _, A5 x% R  k* }/ X& S- W4 \" z& {
不知道XAS内部对它做了什么手脚还是为啥,7 m$ w5 c# ?) K
总有那么一瞬间,没有被消灭的敌人事件也变成了nil
, z9 R9 J5 O8 Z; \
5 S# H. _2 _6 b- f" Q; m% z0 j* E* \1 a$game_map.events.values[@enemy.id].nil?
3 ]- g4 }8 H; o- V因此自然而然的返回true并符合条件把图形释放掉了
' \  o/ Z3 o+ @  t) x# {$ k+ w, Z7 C- _4 O6 Y1 l
LZ应该有注意到吧,8 K/ j5 Y( h5 ~5 ~5 F! S% O6 S, k* x
我测试的时候发现报错前几帧,图形会消失,8 g  }# N5 G7 T8 l; E5 z
应该就是“误以为敌人被消灭”了。, i! @0 p9 z. P, q: b

; d  D% d2 l+ {6 @: `- n- N) o. B# h受限于个人水平,至今无法找出$game_map.events的真相..; c8 S0 F1 J/ @
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
, v8 u1 j! B/ Y, X# Y$game_map.events
  G8 x8 V; ?$ G6 a/ R( i) K嘛..这个数组吧..我在以前试写队友的时候关注过一点
7 X# a# f2 S1 H% Q9 b不知道XAS内部对它做了什么手脚还是 ...

! ?0 q& f0 B/ }. t  M* b當初我把那個條件式看了三遍,都不覺得他有什麼錯7 B. h1 _' x9 p0 i  [
原來還有這麼深奧詭異的事XD
3 n* D6 K0 C  ~3 T1 Q; w5 `% R! Q1 g9 n  Y
錯誤發生前的確會有圖形沒顯示出來
. B2 i$ N" d% S8 Q5 X9 @, q, ?$ ?不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
( R* u) Y* j4 j" \1 p% w% M6 p沒想到居然是詐屍了XD( Q( U! r) X4 {/ X1 E& H! m

3 j+ H4 |" m% R+ w( G3 v不曉得3.91有沒有修正這問題...
& X0 I$ D+ i# R4 m5 ?/ e. O4 ?不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。$ Q9 u$ H7 G) l% b9 K
. W5 C5 N% G" |. X! O: [
的确
4 W* q3 @8 t7 S8 ~2 x4 I5 Y用惯3.82之后想去整3.91觉得压力甚大..3 S4 t" M% }- K6 }
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。$ v$ {* ^) Q" s

, w: U- K: z8 u然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2024-11-22 06:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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