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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
: F$ e6 X8 V  p  p+ K( _會在每隻事件怪物的腳下顯示
; {* E3 Q% a- n% o+ _  K0 r  t問題是不知道為什麼
; W9 S% L2 H- Q5 a- _9 _0 G有時打怪打一打會跳出6 h- B  z4 _9 m% S
---------------------------
0 j  {! z$ b0 y2 K1 mXAS  {! ?0 Z0 d$ F( N+ }0 ^% Y/ [/ q
---------------------------
2 B( i" ~$ P& G- s( W脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。' p4 S+ E3 q& h& k8 q) k
" s% ?( b# ?2 A3 v
disposed bitmap
% z( q1 X6 b# {$ D( k' K" t& d' {---------------------------
! x9 z* [! d2 h3 \! x1 `2 x確定   
' }1 C1 V# [4 s---------------------------6 ^, d, _/ ?# g, |( Z# K# @
4 d) e% x* S0 K! M% C
這是腳本
) [$ c! N4 v) t' U$ i% e( c. j
( Y( L3 |7 V0 Q
  1. #===============================================================================
    + H0 f+ N; R  Y( b7 n+ R
  2. # MOG - s Hud 1.0      
    / S  x! t  R% {" c- o: y
  3. #===============================================================================
    3 @) q0 i; w$ N. H0 O+ [
  4. # By Moghunter ) r& H9 _, ]" p( Y/ _& ~& a
  5. # http://www.atelier-rgss.com
    , q& R6 `# c7 S. @
  6. #===============================================================================
    2 f- G. z* X3 W
  7. # Translated by Calvin624
    + v3 n" }+ d: [, _; F" y0 e
  8. # http://www.xasabs.wordpress.com# @1 ^$ C* W5 ?- R' g
  9. #===============================================================================
    ' l3 C8 K+ v# L8 o* ^
  10. ###############################-DESCRIPTION-####################################. j& c- y, W; e* N7 g
  11. #===============================================================================
    , C* p4 g$ B+ J, M
  12. # Personal HUD – displays the HP and SP below the hero.
    # w( X  B. o( X4 z2 z! U8 x% I
  13. #===============================================================================0 x$ p# [' A% }5 B
  14. #
    1 Z' c& l' R+ J
  15. # Graphics required:& ~; O; j8 w( R! d3 x0 H8 q
  16. # 1 P9 U/ [  {9 V+ V
  17. # S_Border_HP_Meter.png  I6 X' T3 B$ y. e' `" C
  18. # S_Border_SP_Meter.png
    + K  x" q, V2 @) o" \! F
  19. # S_HP_Meter.png
    : S4 c( Z  u! m& q  k& D
  20. # S_SP_Meter.png6 [9 S/ u; f/ M7 d
  21. #. \* i) g2 |7 @$ }
  22. # All images must be in the Windowskin folder.
    : ?3 I9 e1 e) @1 i9 Z# A4 g: z& r
  23. #
    + t+ p1 f& v% H' I
  24. #===============================================================================
    1 ], t$ m. g1 @4 B
  25. module MOG9 s: o, ~$ ?1 g: N
  26. VISIBLE_DEF = false  % ]+ p+ ~1 Z. p
  27. # Show HP meter?
    1 e& @# E6 S! ^% b
  28. HP_HUD = true
    3 E& D0 D8 O) }, x5 V8 `
  29. # Position of the HP border3 O4 w! k, G) l0 N4 w" W  \
  30. S_BORDER_HP_METER_X = -2
    + v( o* m/ n) C1 p0 G
  31. S_BORDER_HP_METER_Y = -2  " @. v& Q  W/ p2 |$ G& H3 ^. G
  32. # Position of the HP meter
    - u& k! `# C$ I/ U
  33. S_HP_METER_X = 0
    " M( N. X( a6 t  Z
  34. S_HP_METER_Y = 03 o1 W* E7 E: F  B* p
  35. # Show SP meter?
    9 |' n) `4 l, L7 ^, V( s6 L% G4 r
  36. SP_HUD = true$ T. e( ^; E/ G/ e6 K# r
  37. # Position of the SP border1 k. r* J# M2 O/ C6 {
  38. S_BORDER_SP_METER_X = 00 Z) @- N% x9 Z
  39. S_BORDER_SP_METER_Y = 10
    ( o' l3 v7 U1 y6 G0 f( }
  40. # Position of the SP meter, I! `& v% N3 V
  41. S_SP_METER_X = 0% ?5 T' d5 C( d$ d! N& r" P2 |
  42. S_SP_METER_Y = 10
    8 I4 F* o/ {* X+ _; Q
  43. # Switch to disable the HUD
    ( y# P' o* I' ~9 J7 v5 _  o3 ^# n
  44. DISABLE_SHUD_SWITCH = 5- `4 B* B  W; z" j
  45. RANGE = 20, H$ m; Q7 v, ?3 M% h
  46. end. S% [2 C: m' ?1 u
  47. #===============================================================================1 g5 e) r6 D: k* r$ \# V2 R
  48. # S Hud
    6 J% `5 [& ~' i6 D) Y
  49. #===============================================================================
    6 F0 L2 t+ G! e0 K8 ^% d
  50. class S_Hud < RPG::Sprite. A8 L9 l6 |0 C* R- {6 o6 P% w
  51.   include MOG! T, F- u; Y4 C& g. D$ @* }) ~
  52.   #--------------------------------------------------------------------------4 z: O4 a$ t; ~, m* d: m
  53.   # * Initialize5 n# W5 g4 s- V9 r
  54.   #--------------------------------------------------------------------------, `) F) I4 n7 T. m1 G
  55.   def initialize(enemy,viewport)
      t* a+ |0 v2 @+ I( I
  56.     super(viewport) 8 T+ E( q* v% v" X4 d
  57.     @enemy  = enemy. {. n+ e, Y$ z% L; c& \/ q
  58.     @battler = @enemy.battler
    : ~! g8 F3 Q: s* ]2 \; g3 \" K" m$ c, H
  59.     @old_hp  = 0
    ) q8 g, H7 B) }
  60.     @old_sp  = 0
    & r3 \! a7 X/ M# ^
  61.     @old_vis = false5 V: L7 Z& F" B2 Q) I3 ^
  62.     self.bitmap = Bitmap.new(100, 100)9 S8 ~9 f% Y! ~- F; |+ s
  63.     self.visible = (VISIBLE_DEF)#false# O7 [  Z/ o) d& y5 s
  64.     self.z = 100
    # R' V' X% g! C5 {
  65.     #HP Border -------------------------------------------------------------------
    # H; t, _7 Q/ q9 B! a4 y
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    * H  i' @* q' l# O
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    % H, Y! D4 I# O) p& `
  68.     @layout_sprite = Sprite.new
    $ b* N0 g! _3 t5 a% A- y, S
  69.     @layout_sprite.bitmap = @layout_bitmap
    ) d! b3 u5 j6 u- i
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
      D3 A( ?3 T" s! S
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      ' s5 F9 v7 d# B4 J$ }# O$ j8 r
  72.     @layout_sprite.z = 5001
    6 x) R5 F- j( W% a
  73.     #HP Meter ---------------------------------------------------% E( l2 s. p5 |# f# r% F% l
  74.     @hp_flow = 06 U! D0 {% t" N
  75.     @hp_damage_flow = 0
    9 w/ j% z+ J. @) _- G) ~
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    % y- m0 O+ e3 V
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)% ?+ j; x" c9 @7 Y: R5 O
  78.     @hp_range = @hp_image.width / 3
      Q2 \% |+ t3 H7 }% l1 S
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  : |8 z  n( R0 t1 @# J9 g
  80.     @hp_width2 = @hp_range / 2
    0 x9 c( ^4 v  C
  81.     @hp_height = @hp_image.height / 2
    0 k" m2 V# f5 h: x$ p5 L) Y
  82.     @hp_width_old = @hp_width* U; O/ K  s6 }* L8 r2 T
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height): S( T/ x1 p- O
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) / [) s- s# A% M! P* w
  85.     @hp_sprite = Sprite.new6 V1 x+ u/ D2 j3 V7 n' Y9 }
  86.     @hp_sprite.bitmap = @hp_bitmap# h2 ^% T  a) L
  87.     @hp_sprite.z = 5002
    ( X, P) G3 g+ g9 @% O
  88.     #SP Border -------------------------------------------------------------------8 o& L* _0 |4 |3 G) i
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    # {, B$ t" k% _, d0 N
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)+ m' Y6 o" H, k6 N
  91.     @layout2_sprite = Sprite.new
    ' |; b( o" U! b
  92.     @layout2_sprite.bitmap = @layout2_bitmap& n# e1 Y: C) }- U3 _7 k
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    * n( C+ L0 N9 ~; u) Q% o6 ~
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    ( K5 q/ ?# O# L/ N
  95.     @layout2_sprite.z = 5001    ) o0 b( {+ {0 u! I
  96.     #SP Meter ------------------------------------------------------/ b* O9 L3 j1 i# h! E6 _2 i
  97.     @sp_flow = 0
    : Q) O! Y' f3 H- g6 E! ~
  98.     @sp_damage_flow = 0. ~: |0 ^/ S( r; c, o9 v
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    & b7 q1 K4 s$ [+ x. ]- W
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height); a3 q/ b, g4 y
  101.     @sp_range = @sp_image.width / 3
    # m5 r9 `0 l7 n1 D) R6 k
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  ' s0 q, j. c( e2 `: v6 I% _8 S
  103.     @sp_width2 = @sp_range / 2) y9 m" p; ]1 n1 U9 q
  104.     @sp_height = @sp_image.height / 2
    2 d/ w. t. X- L: x: t. \( p7 }! f
  105.     @sp_width_old = @sp_width
    3 d1 [) e- `  X' N6 x
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    ) G7 B: w  e. I: J
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    5 }/ @8 G$ {- @/ q) a2 D
  108.     @sp_sprite = Sprite.new
    - a+ B* i- E4 }
  109.     @sp_sprite.bitmap = @sp_bitmap& V& o* s6 a5 q8 V- O
  110.     @sp_sprite.z = 5002
    0 w9 D# x( b8 d3 x- a4 s  A) m
  111.     update; w9 E4 G7 _& h8 Q+ ?
  112.   end, `/ P; o; `% ^+ \' q+ B
  113.   #--------------------------------------------------------------------------
    1 q2 f" [6 x7 g6 d( }; R/ |
  114.   # * Refresh  f; d) y2 M# I' e. M, y3 f* u) H, O
  115.   #--------------------------------------------------------------------------
    : a/ K, h! v$ Y) O
  116.   def refresh
    " E. q/ ?) r6 T0 {' q
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    4 }4 {8 w) T' Z' R8 |: j! g
  118.     self.bitmap.clear' @) a3 j$ _0 K
  119.     @old_vis = self.visible
    & j2 H0 O/ b# N1 Y; k
  120.     @old_sp = @battler.sp
    : M6 Q& ]  O3 Y+ N6 P0 Y& s/ G
  121.     @old_hp = @battler.hp
    1 `: X8 Z# Y/ i0 j) R/ l4 Y
  122.     hp_flow_update9 l  A5 r6 t2 i; |, ~, m, r
  123.     sp_flow_update
    - V+ Y: d+ x0 X0 o/ C$ U3 L
  124.     hud_pos_update$ q! Z- ^0 T* ]0 q( E1 v8 n& o
  125.     visible_update$ ]0 w  x4 {+ Y
  126.   end
    * L/ N7 P7 j9 j, d
  127.   #--------------------------------------------------------------------------5 {  X7 {0 N6 }3 G! c3 b
  128.   # * Dispose
    * c9 ^' F* @2 k# R+ o, }
  129.   #--------------------------------------------------------------------------
    % \0 N/ P0 C) v: T
  130.   def dispose
    " A' ?. F& ?, {
  131.     #HP Meter Dispose! A7 L% a# C; i+ }
  132.     @hp_sprite.bitmap.dispose
    1 ^0 K1 s1 I1 ?! b+ Q; P4 d
  133.     @hp_sprite.dispose
    & ]' o$ @4 d/ m: i( `
  134.     @hp_bitmap.dispose" |, L2 U- X* g$ u/ R6 o/ V% b8 b
  135.     #HP Border Dispose% b4 Z3 a- D) l: T9 L
  136.     @layout_sprite.bitmap.dispose7 v- k( {+ U1 a% N0 V. L  l
  137.     @layout_sprite.dispose
    7 Z% Q' j7 _) W, j  m. w# U
  138.     @layout_bitmap.dispose  Y0 G/ ^4 d3 c/ X) G: S
  139.     #SP Meter Dispose
    % z" y( @" L, ~1 H2 j/ r
  140.     @sp_sprite.bitmap.dispose
    , {7 c' R3 z5 \2 s. u  Z' u
  141.     @sp_sprite.dispose
    6 Y) i# {1 j9 l0 x( E% h
  142.     @sp_bitmap.dispose9 A. |/ B! ?1 O9 m& q  W
  143.     #SP Border Dispose8 Q1 P0 \7 ^! A5 o/ a3 U
  144.     @layout2_sprite.bitmap.dispose! X: h0 y" }' L, F5 f- O. [* @
  145.     @layout2_sprite.dispose
    2 U8 [. f/ G6 N) `7 @$ s
  146.     @layout2_bitmap.dispose3 P8 s' W, P- J* w1 w
  147.   end
    & s3 i0 d( o7 ~" B6 `8 X
  148.   #--------------------------------------------------------------------------9 M1 v. {& ~$ d" ]- a$ [# |( V8 y
  149.   # * Update
    % S  a! Q* F9 J' d. A
  150.   #--------------------------------------------------------------------------
    0 J, _. B. w% X! a5 z7 `
  151.   def update1 i5 f& M. s+ }+ T5 ^3 M3 o
  152.      @battler = @enemy.battler
    1 p& {. D4 L# E& F
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    9 J6 Z' z7 X: @
  154.      if self.visible/ l2 N  G5 q! J6 A' j8 F+ \
  155.        refresh# C; x% W3 g( E3 y
  156.      else
    ' n9 ]' \: O7 M
  157.        self.bitmap.clear
    9 n  a& q# X* t0 G% t, l2 M
  158.      end5 Z5 K, X) E% y: H+ ?: G9 ^2 [
  159.   end
    , R. ~- \5 _5 s2 M) w
  160.   #--------------------------------------------------------------------------
    9 H9 V" ?+ G+ _$ ~1 n
  161.   # * Visible Update, j+ p7 Z3 l: D% i* m2 v9 N8 p
  162.   #--------------------------------------------------------------------------
    # K3 ~3 m/ F0 b8 b- n. ?& T
  163.   def visible_update, ~: A" p0 s1 w* U7 j/ u
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    2 e* t; q: p9 j* v
  165.        @hp_sprite.visible = false) |* n. k" W" N
  166.        @layout_sprite.visible = false
    % X3 g1 |& N/ _
  167.        @sp_sprite.visible = false
    8 q3 ]5 {7 J5 K, Q% k# Y! b" D5 ?
  168.        @layout2_sprite.visible = false5 q. o' Q; g/ }8 h) {2 ~! d
  169.     else% `8 N  ]; h) o- x, M" L
  170.        if HP_HUD == true
    " J. `" k+ h. W7 ^; {9 D
  171.          @hp_sprite.visible = true7 b! \: {9 s+ M# X" t  j( Q! `9 b
  172.          @layout_sprite.visible = true5 A4 s* m* B3 F
  173.        else0 d' ^/ R5 R, e# z4 q
  174.          @hp_sprite.visible = false- f  E7 q8 |. C8 Y. [! W' o
  175.          @layout_sprite.visible = false, a8 v8 d1 I/ q1 e
  176.        end  $ Q4 S0 p3 w, B
  177.        if SP_HUD == true
    : M0 B* ]& D" W  }" O
  178.          @sp_sprite.visible = true7 C) y) [3 F! l/ j
  179.          @layout2_sprite.visible = true
    ( g7 D0 I  D- C+ m4 n9 y
  180.        else+ V1 t6 o; f- a" s( }2 p( k5 e" E- u+ H
  181.          @sp_sprite.visible = false
    % b  F1 V) A( q/ u* P
  182.          @layout2_sprite.visible = false# `3 i- A9 Y( `
  183.        end
    0 x" f1 m) {& d1 V
  184.      end  ' f) y( d6 ?. w' g& m
  185.    end
    % C$ J% C3 w* o& x
  186.   #--------------------------------------------------------------------------
    ' |4 H# @* K- t; V% ~: c0 h8 m
  187.   # * Hud Pos Update9 M) C" P: G6 [* ?' N4 Q2 J
  188.   #--------------------------------------------------------------------------
    / D$ {/ n) e8 W' h
  189.   def hud_pos_update/ e9 d6 q, }: F9 e$ O1 ~2 I
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    ! ?- O6 `0 g' Z  G
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    , Q9 e7 t* E, s7 Q; E+ n
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    # Y( S  k! v; I# T, L0 v7 h  G8 r
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    & ]' _1 w& v& R0 [8 g2 t
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    * e! k0 x4 ]4 A- Z
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    6 G3 B6 E1 p2 T, I5 m* t7 S3 k  K
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    3 K3 ^; d& U9 D& ?
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    $ |5 f2 k& E$ n  R
  198.   end  9 R" ]) u6 P& f* ^. ^' n
  199.   #--------------------------------------------------------------------------! W! Y0 i0 o7 P' R$ |
  200.   # * Hp Flow Update
    9 K% }& V. U* L4 b0 K& M  R8 D& T; ~. _
  201.   #--------------------------------------------------------------------------
    8 A: H+ w$ @1 f0 @6 j
  202.   def hp_flow_update
    2 O/ S: v# x2 J+ \1 P
  203.       @hp_sprite.bitmap.clear" Q3 r* z3 B: P8 {$ w( J# v# R6 Q) _0 Q
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    - M- g& R; \' B! x7 P
  205.           #HP Damage---------------------------------
    # u5 n' M+ G& Z4 H0 S4 o) B
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    - b* [& s8 ]3 O9 D5 |1 ^
  207.           valor = 0.5 if valor < 1          5 L$ j% @, {. H$ X
  208.           if @hp_width_old != @hp_width
    7 Y; O3 I) Q/ O0 w* _1 p( n& S4 j
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    9 ]4 x1 ^2 c: P4 ^  ~' d
  210.           if @hp_width_old < @hp_width
    . C" a# P) N- r
  211.              @hp_width_old = @hp_width
    9 q9 {2 D8 }! b- b& c
  212.           end      7 y% c# x2 l( G2 a
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)! [' e. U8 }5 q) q0 \( ~
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    ! ?* L8 L* L0 L
  215.           end        
    3 u7 Q( e; E" v, q( U* ^1 T0 C7 |
  216.       #HP Real------------------------------------
    , W. {5 Z' e3 v- v
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    ) l. ?- N* a; h9 V- j
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    ) W5 q1 n8 v% a6 k% Z
  219.       @hp_flow += 2  3 r$ `  F5 e: J& }! C; x
  220.       if @hp_flow >= @hp_image.width - @hp_range+ y. T) N" n% h7 V- ~0 B* _! ?2 |1 B9 J
  221.          @hp_flow = 0  8 p- r* C$ {$ o
  222.       end) g$ R: B% i9 V8 Q7 P, {9 A
  223.   end    * R6 a" w; J# A$ d2 d. J* K% u
  224.   #--------------------------------------------------------------------------
    * l$ R0 e, Y2 K3 s$ T2 V/ E3 q
  225.   # * Sp Flow Update8 n; {- S; B% c8 r, s
  226.   #--------------------------------------------------------------------------: D# r7 c* z5 y
  227.   def sp_flow_update, X, P0 l* g( q0 z, x' b7 F: `) @" {
  228.       @sp_sprite.bitmap.clear
      P. V2 O4 t" Z# j- E- W6 ?
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    1 [; t) K0 S: p8 r% w
  230.           #SP Damage---------------------------------
    1 M! w. u) C9 F' y/ o6 @3 E) {
  231.           if @sp_width_old != @sp_width& s# N$ j$ A% u" {$ q2 N4 |
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    ( T! {7 p) [' _: A6 w" m0 S
  233.           valor = 0.5 if valor < 1              / f3 l7 D! a8 N5 L9 `
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  ) f3 I- n3 G2 @
  235.           if @sp_width_old < @sp_width
    0 m3 ^' b8 h$ W$ q
  236.              @sp_width_old = @sp_width
    & g/ f9 `& u# O4 o
  237.           end      + P0 g; l+ v' [' G# F
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)9 p$ t( }3 b0 m
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    3 Y: l' n  R4 [  n
  240.           end
    - J+ F( C, v- q3 b5 ?; S& m
  241.       #SP Real------------------------------------
    1 E* `9 H7 g2 k5 N8 R) g
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    ; P/ l$ K0 v; l; a/ j7 f
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)/ ?! D5 ?( t$ Q' y5 w/ M$ f* Z
  244.       @sp_flow += 1  
    1 i: I; v8 O& x, w2 i
  245.       if @sp_flow >= @sp_image.width - @sp_range+ }3 w: d, V; d7 H- |/ s+ f
  246.          @sp_flow = 0  
    3 [! d; `! M" o, P3 j( q
  247.       end) t# f, T, T& d
  248.     end            6 V$ z1 e2 ^1 w2 g
  249.   end
    7 F( M. n$ e& z! p) R
  250. #===============================================================================! ^  }( X, V3 \' i& f
  251. class Sprite_Character < RPG::Sprite3 O" A6 H1 o7 K
  252. #-------------------------------------------------------------------------------
    & ~; q- n/ g( U! u% A! Y
  253.   alias :xas_emini_hud_init :initialize
    1 @8 e6 _3 w' ^
  254.   include MOG
    ( f3 n- s0 e4 S2 }
  255.   def initialize(viewport, character)( O4 ~' j3 m7 ^  b
  256.     xas_emini_hud_init(viewport, character)7 s# v- `% U* [  I- \% N3 v, y1 R
  257.     @viewport = viewport
    4 T6 b, v5 g7 R; g. X5 K
  258.     return if @character.battler.nil?
    " [( t' G& g* ~
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id), H2 O/ e) N- }# _' G& i
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id). |% N, `  w7 E+ {$ R8 u" X
  261.     return if @character.battler.is_a?(Game_Actor)- Q) @5 u6 m' T/ l# F
  262.     @bars = S_Hud.new(@character, @viewport)9 N# @$ `8 E' I; e% [
  263.   end, y' a9 x2 M) }% A) j* y2 G
  264. #-------------------------------------------------------------------------------$ n& q$ `& a0 n' p9 l2 Z
  265.   alias :xas_emini_hud_up :update
    & H+ e5 U2 {+ E$ A# Y$ \% g
  266.   def update
    " W. g, W" Y7 `
  267.     xas_emini_hud_up0 \' K/ q. y+ E& Z$ f
  268.     return if @bars.nil?- W0 B* X9 H5 A, \9 p) d5 Y6 W
  269.     return if @bars.disposed?4 F# I; p% {0 b' g. F/ Q! p3 c2 A. e
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs) m* W; n% i1 \8 _2 |4 g' j; j
  271.     @bars.visible = (dis <= RANGE)
    ) m9 ]* c9 n4 G, J7 g5 O2 p7 ~2 h5 q
  272.     if @bars.visible0 \  b+ y6 q! E- ~* |$ k
  273.       @bars.x = @character.screen_x# - @cw / 4
    4 \: `6 x3 C- }; `9 C
  274.       @bars.y = @character.screen_y# - @ch / 4* ^' E8 x6 N, a9 C4 c7 U
  275.     end
    % I/ ]9 ^' M6 X6 n, J3 D
  276.     @bars.update: O; G3 P* n- E% i$ U
  277.   end
      R% q2 W; I7 d0 V9 K* K8 S
  278. #-------------------------------------------------------------------------------
    " T0 Z* `: {3 J# L8 u& `
  279.   def dispose& y3 ^3 K+ R; s* Z: E/ q* W$ X( I
  280.     super
    & l& g" [$ N# V9 U# q6 r$ V
  281.     @bars.dispose if [email protected]?
    9 G9 t+ k0 s. S1 G# S
  282.   end
    / g: A3 A! V! n1 Y' j2 K
  283. end
    ' P' L& R; P  R
  284. 1 p" ?6 j8 h+ W* T
  285. $mog_rgss_s_hud = true
复制代码
3 U$ B+ j' e2 C) e" j0 T/ S; Z* k
6 U* U$ ^  R8 H4 r3 s

" M" x6 y- F0 k! A( u2 ]+ Z上面所說出錯的203行內容為: Q& ^1 ]* Y' r. R  m
@hp_sprite.bitmap.clear1 t  W* I. }* X/ }

. }1 M1 d( j% {( w* f) `5 q想知道怎麼解決  R( A0 R0 q% b) K, D; E3 ?- F" I1 I

  y; v2 z+ \1 o4 I# @該腳本支持3.82' M0 U; A0 X& c
' M) e& W! W( ]6 v! ?% t
下面是圖檔,要塞在Windowskin下
# y. u, p) f6 h1 o% w8 W; |7 r  y7 @, y
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) 8 `; B' H- V& r( `
( L( _& j1 Q( [& F$ d

) E& m6 u3 g$ D) K8 K% {3 t5 Y4 V' v, Y' `+ h0 d/ \
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适/ s0 n9 w7 h4 h6 H
结果尝试刷新了一个已经释放的图形" }, W; v; ]. T6 F8 w) ~
0 `& W% X. X4 z7 D
: I& \/ C7 h4 {! @
1 b7 Y) g- Q. L- L% Y
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    : J& e9 \; u+ s  G& T
复制代码
不要后面那个条件貌似就没问题了。, L+ D# C7 k5 g) C5 l! k

% y% ]2 U+ q* ^
: U) z  S3 d% L' A+ C: v- u / u  C7 `; H7 U" f

: V6 w/ a) J0 A
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
507
在线时间
1789 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
7 e, v0 t5 w8 y  n% U0 c) H貌似是释放的条件不合适; q7 D' V9 q) N( f: l  k# g0 a
结果尝试刷新了一个已经释放的图形

, u: y5 |, P) b7 ~% B4 S把後面那個條件弄掉後,的確沒問題了
0 s2 p& K* e. r6 L: ^: d目前從關頭打到關尾結束都沒再彈什麼錯誤& ]  Q8 z6 S, z8 d
非常感謝: L, ~; f4 L3 D; a- q* ~5 H5 G" f
/ N  O1 ]9 Z, |9 @" S/ E$ ^: u
不過我是參照著別人腳本改的
' A5 _) ^- H& H8 |他寫的條件式也是那樣,但我用他的沒什麼錯誤
* u* ]1 z/ Y8 ^; N+ E$ J6 N不知道是怎麼回事
) z4 e  V4 M3 L) W2 E是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的8 d1 R/ S( D  l% u, h
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events$ S* A- \, o% ~- Z. J+ q. y0 l
嘛..这个数组吧..我在以前试写队友的时候关注过一点
& z! ~8 F; U8 k不知道XAS内部对它做了什么手脚还是为啥,' _  @* _% o: o9 s7 R
总有那么一瞬间,没有被消灭的敌人事件也变成了nil) W% Z4 ~' H6 a* L$ B) f$ Q5 K, q1 }

# m/ @0 `& ?& d/ n$game_map.events.values[@enemy.id].nil?
8 }  A2 N. Y3 L# I) X- c因此自然而然的返回true并符合条件把图形释放掉了
+ l0 G( `2 ?7 D0 F! W6 y: \$ F( Z8 y! ~- d; s2 N6 b& y$ V% d+ Z) @
LZ应该有注意到吧,* V4 y9 M) {! _
我测试的时候发现报错前几帧,图形会消失,( |; k$ ~! o! z$ a* V7 w
应该就是“误以为敌人被消灭”了。
. x- e& d/ j. o( \$ M
# l4 g" O/ h- k/ e9 J受限于个人水平,至今无法找出$game_map.events的真相..$ {0 T4 l  G$ O7 ?, ~& [. V4 J' c+ i
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
507
在线时间
1789 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 + K; C* y) w4 {8 P  _
$game_map.events
5 j" P3 J: H" r3 S3 H嘛..这个数组吧..我在以前试写队友的时候关注过一点
' m+ x1 ~1 t7 ]+ }/ q: o( G/ U2 K不知道XAS内部对它做了什么手脚还是 ...

$ L9 y' Y" e) e/ t$ L; D: ]# y* R當初我把那個條件式看了三遍,都不覺得他有什麼錯
; W" a3 d+ E, Q& ?. b原來還有這麼深奧詭異的事XD( _* i$ {, ~9 ?6 ^8 F* L

& n0 `) k  N; e% P: R% |) H錯誤發生前的確會有圖形沒顯示出來; A( G  K9 \0 A8 m2 b
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...# K" U" C  c: |/ Z  S* m
沒想到居然是詐屍了XD3 _5 L/ V2 @# \, k2 {6 @' ~
5 M% `3 m. p1 n3 A& g
不曉得3.91有沒有修正這問題...
/ R  j' n- @3 N2 s不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
) e' y, C; e( |9 ^3 `& z; L7 Y, f! X: M+ u6 [  k" h
的确
* b7 E3 u& R% h( S2 L8 N" S/ P1 k用惯3.82之后想去整3.91觉得压力甚大../ X9 s: T( p  p' i6 o( }
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12704
在线时间
21847 小时
注册时间
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”。
9 O2 t0 _- B8 ]4 Q) \0 {
! F7 t3 O+ ^1 X& y然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-9-10 14:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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