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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條! k9 C" R/ H$ j5 @+ F$ l' t6 v2 p$ l$ y
會在每隻事件怪物的腳下顯示. X( u, `; @+ T# A
問題是不知道為什麼
2 ^; Y4 J- X0 Y0 n有時打怪打一打會跳出
& {% I! e; X" f# V$ I- B% v---------------------------
( y7 E& h5 V1 g7 L5 z. hXAS
. l  }3 X7 n3 f# o---------------------------* {8 M7 i9 D, x, ]0 j
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。  ]/ w; Q0 D6 l
$ ]' [% c- [3 L& d
disposed bitmap
' W% X+ Q6 ?. |; {- L4 n/ E8 }---------------------------7 p$ m( l2 {$ {* ^
確定   ; w- C/ l/ c% a& `# i
---------------------------
$ |! L9 l. g( e+ V" f. Z: m8 g
; |! w& D. p) C/ m  Y8 m這是腳本3 z7 o/ `; ?' u$ W$ T. p9 z
$ d1 j9 M; k6 C, [
  1. #===============================================================================; J$ a+ k+ f; }; m3 W3 `
  2. # MOG - s Hud 1.0      ' X7 K* S5 h4 j9 I$ V
  3. #===============================================================================
    % \2 Z7 c2 K% w( c3 }7 s& u
  4. # By Moghunter $ O. |+ w3 k! U# S3 @/ C
  5. # http://www.atelier-rgss.com
    " @  l' l% H# c7 U: V+ j1 m# W
  6. #===============================================================================
    ' i7 [' ]$ H- q' N( Q4 x
  7. # Translated by Calvin624
    * d; p; k( o4 }& c! Z
  8. # http://www.xasabs.wordpress.com6 R2 ~. e* n* J2 C/ x: y7 K
  9. #===============================================================================
    ! B- _9 q& X) E$ n1 W( F
  10. ###############################-DESCRIPTION-####################################
    , s2 m: s! {: O
  11. #===============================================================================7 r6 b3 i  K9 b: ~/ X
  12. # Personal HUD – displays the HP and SP below the hero., E4 Z8 [0 A3 ^1 [7 c  X' ?
  13. #===============================================================================  n8 _0 O* j- i! M) K5 u/ e
  14. #
    % q( I+ e5 b8 C: @6 u
  15. # Graphics required:
    5 T# A! O' e3 A2 @( k, f1 L
  16. # 1 F# D9 `+ `, a, V0 e" D
  17. # S_Border_HP_Meter.png
    1 e; V/ W  F7 V  C0 n1 X9 S0 U) m
  18. # S_Border_SP_Meter.png1 v8 F' C3 j$ N, C# O. Q0 i5 q' _
  19. # S_HP_Meter.png6 M6 C9 j1 _7 Z9 z$ w
  20. # S_SP_Meter.png
    2 D( k+ }8 _. Z  b- ?
  21. #  q2 G0 l3 ]! n4 H4 t* r
  22. # All images must be in the Windowskin folder.
    2 S* z* ?" E: _5 `, ^
  23. #
    # S! Z  K' f; r: `- y! s
  24. #===============================================================================
    . x/ q0 v0 c- A8 j; |5 B- q
  25. module MOG% i! ]/ A& I( g7 `5 N* `1 B
  26. VISIBLE_DEF = false  
    & g4 ]2 \8 v+ o9 D& c3 j1 R
  27. # Show HP meter?
    9 m5 Y3 X3 n  ?5 t1 Y9 }: U/ P
  28. HP_HUD = true% x( q9 @4 i8 A& f$ C) y; v; Y
  29. # Position of the HP border/ ]& [* k4 y/ c% b
  30. S_BORDER_HP_METER_X = -2
    6 O7 A! V* _2 I/ m" m! o* k
  31. S_BORDER_HP_METER_Y = -2  3 l6 \  b  U- @) r% E
  32. # Position of the HP meter6 V, |1 a2 Z3 z) q& ~
  33. S_HP_METER_X = 01 v' m4 S9 l/ R
  34. S_HP_METER_Y = 0
    ; n2 V- O8 O9 }4 N
  35. # Show SP meter?- V" v0 Q4 y5 {( P8 U
  36. SP_HUD = true% v8 j$ h( t9 F
  37. # Position of the SP border- K* r( W8 J4 E# w: ?! B& c
  38. S_BORDER_SP_METER_X = 0
    . R. E% X0 v" M/ _# U7 Z1 i0 F, [
  39. S_BORDER_SP_METER_Y = 10
    & b3 B/ r  T3 B
  40. # Position of the SP meter
    ; F9 H0 h( t, i2 E' M; a9 p0 N! I6 D) o
  41. S_SP_METER_X = 0/ c- X* n7 i7 L; G$ E8 V  u
  42. S_SP_METER_Y = 10
    , p8 p5 K- p& Z2 o1 o
  43. # Switch to disable the HUD
    % M7 y: G3 w* g- u
  44. DISABLE_SHUD_SWITCH = 56 y  M; o8 G9 q$ l1 c
  45. RANGE = 20
    , |# [) ~7 S7 x5 L/ U" T" O0 e" B: v
  46. end
    6 ]7 M' y. f' r1 ?$ m% F8 s
  47. #===============================================================================
      m1 a3 m4 Q# j. u3 U0 o  d' @
  48. # S Hud- T" ^% X- h, U# v/ l; l
  49. #===============================================================================1 l/ X: a- g) `' S7 A% i- N
  50. class S_Hud < RPG::Sprite
    ' Y! Y4 m" x2 N; v% V: c  O$ W
  51.   include MOG
    " j+ o4 p4 H8 h6 ~
  52.   #--------------------------------------------------------------------------0 d) t1 r; k. `0 U2 \, S8 ^/ S
  53.   # * Initialize
    % b( f1 R- X* |' {5 E  x
  54.   #--------------------------------------------------------------------------
    ( E& g- L1 T6 Y# d) g. c" V
  55.   def initialize(enemy,viewport)
    7 W, Z' b$ I) d# W" k# O
  56.     super(viewport)
    " _+ i  S! u, k
  57.     @enemy  = enemy
    3 f( d9 |  P; n+ d* L7 C
  58.     @battler = @enemy.battler0 A# W1 Q/ w5 {8 T6 o( v& M
  59.     @old_hp  = 0: G3 ]  {* m: o1 h/ `" n4 ]: X8 _
  60.     @old_sp  = 0# ?& T. E7 q5 }6 R2 ^
  61.     @old_vis = false4 }; H' U8 B4 `
  62.     self.bitmap = Bitmap.new(100, 100)
    ) k# m1 Q& I2 }5 ~
  63.     self.visible = (VISIBLE_DEF)#false
    + H0 F1 M) [) y% ~' [3 L* v) ~
  64.     self.z = 1005 o3 Z; y, m) e, |3 R* ^" l
  65.     #HP Border -------------------------------------------------------------------
    5 q' j6 `# L7 E+ d$ g& k  L
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")- m3 [/ E3 R" ?; {$ z& C% i- ^
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    8 q  c. e. F5 h3 b
  68.     @layout_sprite = Sprite.new; |5 N. e4 r+ r
  69.     @layout_sprite.bitmap = @layout_bitmap
    9 R+ j: r9 G, |& D4 Y( T
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    * x4 ]) v$ y  r: q- c" \9 q7 {6 t. X
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      . l- H+ F- \! n$ g5 F
  72.     @layout_sprite.z = 5001; |( x$ ?7 T/ ^
  73.     #HP Meter ---------------------------------------------------  u2 U+ \7 w* v+ |9 |7 u
  74.     @hp_flow = 0+ j' I7 h) @( p# V- P
  75.     @hp_damage_flow = 0
    ; m: B1 R+ d! V# B. k; R! T. e
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")2 A+ q8 X+ x6 n4 Y, [# h$ T% V/ n! w3 O
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height); E" W0 Z7 h- ^
  78.     @hp_range = @hp_image.width / 3
    $ x( l2 ]& t  P. I# Y9 A) H
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
      r  T$ k0 P0 x9 c5 |5 \+ U
  80.     @hp_width2 = @hp_range / 23 X: L' p- P' D. j" {' h
  81.     @hp_height = @hp_image.height / 28 a2 Y- Y- J# P' ]$ \% t: Q6 d
  82.     @hp_width_old = @hp_width
    4 r" o* R' V: g/ G% q/ K, x5 U
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    0 D( J! z8 c3 Y; ]$ W3 K! p% _0 p
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) 9 [- P/ I7 M+ Q: }: |  l! q
  85.     @hp_sprite = Sprite.new
    9 l# J2 t, W* [; Q
  86.     @hp_sprite.bitmap = @hp_bitmap
    ) f  `% U9 B7 d; @3 M% ?6 w
  87.     @hp_sprite.z = 5002
    4 P0 t: Y. v) l; k- n" @3 A$ D( K
  88.     #SP Border -------------------------------------------------------------------
    # K7 P" M1 N3 o! G# b. L; q  }
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter"). U6 d9 q$ c1 w
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    " D0 N3 J  M$ R5 z) n# f6 Z: a' o
  91.     @layout2_sprite = Sprite.new
    5 Z& b& ^3 @6 D$ d9 F% T$ }  x/ p5 p
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    0 U0 ^# L! g- e; O  f
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    6 h! ]- B% [/ Y+ t! ^6 j+ @
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      + j4 x: j9 K8 [. }6 ^" Z8 {# D
  95.     @layout2_sprite.z = 5001   
    5 w* n, ?9 M$ t2 w
  96.     #SP Meter ------------------------------------------------------! s4 A( R- M& n/ _' P
  97.     @sp_flow = 0
    " A4 f5 A, y% P0 y% e
  98.     @sp_damage_flow = 0
    - L& ?" A, }5 d: f
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")2 v- F/ {, D  b- h7 v# M0 V) L
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)/ G+ E" ]; J' \1 z
  101.     @sp_range = @sp_image.width / 3. Y2 ?5 w  D$ K% X4 e, D
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    9 Q/ G0 F& W( a
  103.     @sp_width2 = @sp_range / 22 D3 U  H8 \( d$ A7 S
  104.     @sp_height = @sp_image.height / 23 N+ ~: ~0 J  z! G' s$ l9 l$ H
  105.     @sp_width_old = @sp_width
    $ C+ i" i: `: t! }
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    , {2 f: L  z: B) R' f, Y
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    + V7 g5 x/ t$ V6 A) F1 c
  108.     @sp_sprite = Sprite.new0 ]" h* @8 ?; {4 t" B, E6 D" \
  109.     @sp_sprite.bitmap = @sp_bitmap  u$ x! n" Y$ }0 J
  110.     @sp_sprite.z = 50027 a. m; Z7 o; `, H
  111.     update
    $ @- k$ S$ t0 t: P* O% U3 @
  112.   end
    * g% \: V  {) k
  113.   #--------------------------------------------------------------------------
    % D" o) s4 d1 H$ z
  114.   # * Refresh1 t  Z$ ]* [7 F8 W7 j4 d. y
  115.   #--------------------------------------------------------------------------& y2 ~8 Y9 [8 ^7 a
  116.   def refresh4 L8 L7 x( L, i) ^
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible  k! b4 C+ q( ?" _; x& u
  118.     self.bitmap.clear
    ) z  i% H0 Q, t  z, p( O
  119.     @old_vis = self.visible. P% b4 r$ [- }1 [
  120.     @old_sp = @battler.sp, `+ X4 W% k) p
  121.     @old_hp = @battler.hp
    , g9 O: n7 |- i
  122.     hp_flow_update
    , K7 \! V( K, b  z  y* F% r  N
  123.     sp_flow_update
    ) @2 c6 f0 y9 a, [$ M6 b
  124.     hud_pos_update
    3 D  ~1 ~/ f5 J0 e6 K, ~+ A
  125.     visible_update  G  a( P0 E" s
  126.   end; }$ _, N/ P% i! l' ^& F! e, R
  127.   #--------------------------------------------------------------------------
    8 S4 l8 t7 y/ V% Z, @9 m
  128.   # * Dispose
    0 u1 y# g: N) S5 K9 T& [
  129.   #--------------------------------------------------------------------------) n6 u6 ]! }/ ~# Z- z& |
  130.   def dispose& ?0 |) {' P. G4 _0 [+ }; r4 v1 A
  131.     #HP Meter Dispose) I( f0 `$ m) N7 ~! d9 Q
  132.     @hp_sprite.bitmap.dispose5 ]2 j, }6 G( z3 j
  133.     @hp_sprite.dispose
    : W/ n" v5 T$ C1 S% i+ n  C* j
  134.     @hp_bitmap.dispose
    ; t8 e' c% [4 N) v) c& H/ w6 E  m
  135.     #HP Border Dispose
    - _; Y) E% A! c: ?5 G( {! N# U
  136.     @layout_sprite.bitmap.dispose
    : F8 u2 Q( P+ ~5 F
  137.     @layout_sprite.dispose
    8 f  O) R1 x5 l
  138.     @layout_bitmap.dispose
    * M3 A' |3 p; i
  139.     #SP Meter Dispose/ V0 v8 P, h2 ?8 W8 t
  140.     @sp_sprite.bitmap.dispose
    & v$ U# d0 Y9 E; Q: s! H0 \
  141.     @sp_sprite.dispose
    & {. k1 ^' a3 `* Q, D
  142.     @sp_bitmap.dispose
    2 ~* H) j( F* {8 ?1 k
  143.     #SP Border Dispose: c) U: g2 Z$ g! Q3 B
  144.     @layout2_sprite.bitmap.dispose- I0 A+ s- f0 z$ p* ?: w
  145.     @layout2_sprite.dispose8 B( s2 \( k8 N+ [
  146.     @layout2_bitmap.dispose
    4 }. h! _* B; U) h
  147.   end0 |2 g; g; i7 m% L# U6 @6 f6 o) Y9 z8 w
  148.   #--------------------------------------------------------------------------% @* Q; d9 K6 C  `6 P9 p
  149.   # * Update9 q0 I4 |& B- V2 o9 ~: r
  150.   #--------------------------------------------------------------------------' B0 F; Z) ]% s) M! L  Q' r
  151.   def update
    , s/ J9 I% I/ r% h
  152.      @battler = @enemy.battler
    2 S, U7 x: v# }8 n0 Q- I! @
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    - h. q  ]! X! ^  g8 W3 O, S+ C/ a
  154.      if self.visible
    2 n# R5 n7 p/ ~" e& A( b" n. D& J
  155.        refresh
    1 S! O5 x+ P$ V5 h" A0 S) M2 E
  156.      else
    5 N# _; V3 G4 Y; N% G; _" V
  157.        self.bitmap.clear
    7 w9 Z' p+ P+ l8 ^" b" ^+ D
  158.      end6 Q; C& j% X* [; W% w9 p3 d3 X) r/ n
  159.   end
    ; S; [1 U) v2 X' J5 _  m
  160.   #--------------------------------------------------------------------------# G% w+ s1 s. j3 C; x/ S
  161.   # * Visible Update
    " U1 O! |. V4 `3 U2 {% E
  162.   #--------------------------------------------------------------------------
    ! u4 L% ?' K4 X2 t1 J
  163.   def visible_update
    4 ~& e% V& A/ {9 u7 D- K0 O
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true8 o3 @7 O: [* o* t
  165.        @hp_sprite.visible = false3 h1 k5 g& q; l  v' n3 s: V. \2 S
  166.        @layout_sprite.visible = false
    ' p9 n& a. @' n2 B
  167.        @sp_sprite.visible = false
    : V& y9 n- |* z
  168.        @layout2_sprite.visible = false! ~& Q4 p9 b0 j* b& o1 D
  169.     else
    , j5 c: \" _& d# N7 v
  170.        if HP_HUD == true7 \  t! ?" e9 i5 w( }" G
  171.          @hp_sprite.visible = true1 o  h* s5 i$ O# u0 u, Y: e% s' {
  172.          @layout_sprite.visible = true$ V- \3 \. M2 |. @+ u
  173.        else
    0 d9 Q$ R( d& G  N$ A& Z5 V, G
  174.          @hp_sprite.visible = false
    ' T) @8 \& [+ B: M9 J4 H0 o
  175.          @layout_sprite.visible = false
    ) {; J8 o7 R- d
  176.        end  5 _( t3 {% Z* |3 q+ x& ^  J
  177.        if SP_HUD == true
    & [# @5 y( _8 i$ F+ i/ x/ Z
  178.          @sp_sprite.visible = true
    # R* k( ^# U7 H3 E/ M
  179.          @layout2_sprite.visible = true  A0 l1 v' \9 x! |+ ^
  180.        else
    ! O" P# Y4 O, ^; ?( h
  181.          @sp_sprite.visible = false
    + j' c3 ]  k0 l4 s
  182.          @layout2_sprite.visible = false
    7 r- u8 I5 l& i$ u1 B
  183.        end
    + I+ h0 u0 h$ ?1 p6 @% z
  184.      end  % Y% E6 Y$ l0 R& x
  185.    end # _5 Q$ Y" M9 Q) J. C  j5 f$ v
  186.   #--------------------------------------------------------------------------# Z( X  I: w, \2 q  G9 N
  187.   # * Hud Pos Update
    $ J5 r* {/ D) H9 [8 p8 {9 M3 }
  188.   #--------------------------------------------------------------------------
    & q- F( M" l( D( X7 N
  189.   def hud_pos_update
    7 Z5 O& J- X* D: G5 n
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    0 j; d1 \1 a& j8 F* `! h) b
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  9 H7 J+ k6 b' B7 T0 i
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    ! Y. F. W+ S$ R7 O
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y - k$ m9 a6 ]" h$ w% C% p9 L$ @, r
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    # M: R& k$ d$ o: O1 N) ~; R
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  ; o  g& U& G- d& h
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    ! b3 b1 M8 `8 I" o% j0 ?
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    & |( w, ?5 y" l5 y2 J! }
  198.   end  
    % s8 Y0 F4 l8 g' W# S
  199.   #--------------------------------------------------------------------------
    . J, q3 }5 k" H/ @! p2 d2 J
  200.   # * Hp Flow Update
    ) ~3 j5 R2 }3 Q/ m# h) y
  201.   #--------------------------------------------------------------------------/ C; W9 u! z  m. X  {3 Z
  202.   def hp_flow_update0 }# \& @6 Z7 T+ T  t
  203.       @hp_sprite.bitmap.clear
    2 P; v5 l' M& n- a
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    0 _9 Q4 S. v9 X6 z4 D
  205.           #HP Damage---------------------------------
    ) \% C9 G  H* F# f" b" I2 N% a
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    ( t; ~9 l* w) q1 n' d
  207.           valor = 0.5 if valor < 1         
    2 I7 }- y" S: @7 l
  208.           if @hp_width_old != @hp_width- b- ?8 F) F0 z
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  ; g0 K) `* l& b
  210.           if @hp_width_old < @hp_width
      P; V4 R7 a% q. D8 p- Y# t" |
  211.              @hp_width_old = @hp_width: J( ?/ X- |( t& U- ^
  212.           end      
    - ^5 |# |8 E7 O( x! N
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)# A7 C8 I( ?" R( z4 n
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    ! L1 S% q; z) [1 m- L3 e
  215.           end        . S6 |+ I9 e) K, F; Y/ c5 V
  216.       #HP Real------------------------------------" Q1 |. z4 O7 @" G4 ]
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height), a1 B, b9 S/ g- i! s4 z4 d! e
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          * _2 v$ e$ ]& u* U5 k8 R8 _
  219.       @hp_flow += 2  + g% I* K, Z- q  \3 L% t
  220.       if @hp_flow >= @hp_image.width - @hp_range
    % ?  O' o+ E% c, j  g
  221.          @hp_flow = 0  ! k3 G. C7 ?# `& B# u8 ]
  222.       end& h7 I" _; a4 T% [6 m; d
  223.   end    0 g- K  y, o, I; ^& c- |
  224.   #--------------------------------------------------------------------------
    - ^5 B5 W& s: I$ l; o  K5 r
  225.   # * Sp Flow Update6 x/ R' B4 _: q( h+ f; e9 d7 K) ?
  226.   #--------------------------------------------------------------------------
    0 X: T' G) ]8 `
  227.   def sp_flow_update/ B( u  u+ m' R6 U; j
  228.       @sp_sprite.bitmap.clear
    ( q' @# c6 G6 d; k! P" E
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    6 @) V. w" e+ u6 X3 L
  230.           #SP Damage---------------------------------8 M& N3 ]1 O2 T; S( b$ ~
  231.           if @sp_width_old != @sp_width
    # U0 p1 t- c3 H! A
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100' r& w/ A/ }6 [
  233.           valor = 0.5 if valor < 1              
    ( d: H$ r- a9 z% Q
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  ' N. ^) B9 d, J. @9 B& @# s" O
  235.           if @sp_width_old < @sp_width
    3 q; H/ ?5 l: w: z. W& \8 e
  236.              @sp_width_old = @sp_width
    / E9 _: j4 l" y, K0 q9 P, E
  237.           end      5 h* z' m+ k- R( A
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    , M) I# `$ }* D
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    ; z1 {% h% h1 t: P& E2 G+ a
  240.           end
    " H: S: l% n) }; k" j
  241.       #SP Real------------------------------------
    $ T. X+ R% l  z! D* Q$ v& X
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)8 b4 C6 m6 k' Y8 p
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    0 r( C# ~& G5 _4 L4 U4 Y
  244.       @sp_flow += 1  $ T( C  B& b3 ], W
  245.       if @sp_flow >= @sp_image.width - @sp_range
    ; [, t$ _- k* U8 X, z3 F
  246.          @sp_flow = 0  
    - g+ J3 G8 X. t/ }: v
  247.       end
    . x- }0 d0 Y( S5 Y( l' E
  248.     end            
    - |' T4 U/ w6 V) @
  249.   end
    5 x. p4 _6 `0 Z( w. ?9 T4 S" v
  250. #===============================================================================
    8 x9 R  L* j2 S$ w
  251. class Sprite_Character < RPG::Sprite8 v8 h) k" {4 U. U9 t; w
  252. #-------------------------------------------------------------------------------
    # s: ^3 q& l1 U1 I
  253.   alias :xas_emini_hud_init :initialize
    + ~3 `& ]3 P; [4 E
  254.   include MOG
    : [  V; {/ M) i; k4 Q% D
  255.   def initialize(viewport, character)
    6 M. `+ O7 j' R. l2 [& N
  256.     xas_emini_hud_init(viewport, character)4 @, q3 D/ |) Z$ K/ d4 P# T
  257.     @viewport = viewport
    % s$ ^) y6 u) q9 [, F! H' b$ O* J
  258.     return if @character.battler.nil?
    4 f" a" w# }0 X( j3 B& G5 Q
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    ( ~5 e  V: ^' G
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)" l3 a7 A+ U0 m
  261.     return if @character.battler.is_a?(Game_Actor)# d' e1 u! F$ m% p+ t8 N: _
  262.     @bars = S_Hud.new(@character, @viewport)# V8 p; P3 R+ f) g$ H
  263.   end
    ' u: l4 o' o* X
  264. #-------------------------------------------------------------------------------3 x; k+ e: C* T) d/ n0 W
  265.   alias :xas_emini_hud_up :update: }: O* D) Q7 i5 N
  266.   def update4 J! D7 D  [( ]- r+ x1 n9 }! i1 c/ s4 }
  267.     xas_emini_hud_up: V* ~& b2 b( E2 E+ v/ G+ L
  268.     return if @bars.nil?
    - t  t  d9 N. I8 z+ x' x* R
  269.     return if @bars.disposed?' Z! f+ h+ `0 M8 V& q3 H& G! u6 ^
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    / N, l& Q1 {' r+ w7 S- s6 f
  271.     @bars.visible = (dis <= RANGE): P2 F* e5 V/ m
  272.     if @bars.visible, E: U7 A- p9 B/ c
  273.       @bars.x = @character.screen_x# - @cw / 4
    * a( f( H6 y+ |0 Z% n1 U% l$ x
  274.       @bars.y = @character.screen_y# - @ch / 4) ~- G% j9 T$ I; C
  275.     end4 W! h# a2 `1 \/ \( _
  276.     @bars.update
    $ G) f8 {$ D: ^* f& P1 |
  277.   end
    : z0 W% W* K# t2 T  E0 ]& C& f5 b
  278. #-------------------------------------------------------------------------------6 \$ N: s6 L2 J% d
  279.   def dispose
    % E, q) m/ ]# Z/ r: M7 {4 W
  280.     super! u& G4 w: E* \) L
  281.     @bars.dispose if [email protected]?
    ; q2 D! O/ }# `- J2 V3 u: o
  282.   end
    - p- Q: i8 k9 N* h3 K
  283. end
    # @5 s0 ]$ }1 Z

  284. 5 C" Y# F) Z- Z4 Z/ f
  285. $mog_rgss_s_hud = true
复制代码
6 Z3 j# P, [# a; ^6 ^0 d) ^

* K. Y2 i$ F6 Z7 e# `* u9 k8 r) \8 O; L0 Q6 L9 ]% t6 D( Q, B/ Q
上面所說出錯的203行內容為
- O3 A( J+ X. U0 x% g! d0 X! s@hp_sprite.bitmap.clear
$ F( y+ Y/ w: t: q/ ?  c2 s4 F' L$ B
+ \% ~- J3 d! y+ `; g4 q6 ^想知道怎麼解決& g, K& }; K0 Q& F5 P
# ^7 m$ M( }, q9 J6 m* p3 `
該腳本支持3.82
( h* P( }2 e: h0 i6 c6 ?. W0 x, ]) U8 f
下面是圖檔,要塞在Windowskin下0 l$ Q: \4 l, Z1 I- Z% n' x! z# F
3 o) q9 M" ?- p6 t" e! c5 P
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
5 @7 w  j: L9 k( p2 q6 s
! k1 S$ i1 R6 i
3 X* t8 [! ]# ?6 @" f9 I! ]0 W
7 w5 |( v5 d' L
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
& R' f+ W8 ^  u结果尝试刷新了一个已经释放的图形
7 Q6 a9 D$ ]* e# M0 Z
6 n; ~2 |4 a+ `2 g! b) P4 {5 [0 Q4 z) ^
0 I% V6 j" ~# F; X7 h
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?! X( Y) w9 C  A. Y) F- }
复制代码
不要后面那个条件貌似就没问题了。2 K  n8 U9 Z% [  R

  [4 W$ n- X: Z2 U! }  B5 h# `3 o8 a, K6 b0 |
( W4 e- @3 ?# J

, Y$ Q& W8 g7 Q
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 ) W2 y4 k7 b6 O. O- q) T7 Y
貌似是释放的条件不合适# z; b! S0 p6 n: w  e9 Y; R' X8 W" M
结果尝试刷新了一个已经释放的图形

/ L' `; W9 u- r4 k5 \把後面那個條件弄掉後,的確沒問題了9 G% ?2 T: r6 ?' t
目前從關頭打到關尾結束都沒再彈什麼錯誤0 j: B5 @( E" }5 g6 Q" J
非常感謝6 G  T) `, g' T5 S- X
- @! K7 ^& ?, p" _. y
不過我是參照著別人腳本改的" G+ s. \1 N4 b7 X; j$ C( N
他寫的條件式也是那樣,但我用他的沒什麼錯誤
: T7 s1 Y. c5 j$ e5 T不知道是怎麼回事6 e' t- V0 J6 \' q/ |& i$ l
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
! U5 f3 }% l: O. }5 z3 N2 |8 h我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events' A$ V* D$ j& e$ O8 ~; p
嘛..这个数组吧..我在以前试写队友的时候关注过一点* Q2 @  {7 T5 S1 V7 J
不知道XAS内部对它做了什么手脚还是为啥,& j: F! s. B: ^( Q
总有那么一瞬间,没有被消灭的敌人事件也变成了nil
$ _6 S; u( f% o1 T) a
4 H# y8 i8 K% B5 j. W' i% }. E: e$game_map.events.values[@enemy.id].nil?
" d% u3 m/ B' ], c4 U- ~) T因此自然而然的返回true并符合条件把图形释放掉了
5 K) v6 d; J1 P- [; B" N" ?& w+ _
LZ应该有注意到吧,
: t4 N6 ~9 B' I2 _* s' u我测试的时候发现报错前几帧,图形会消失,
' Q" a7 s) x$ {$ P3 `+ U应该就是“误以为敌人被消灭”了。. c7 S. [' W& O: r- N8 y
5 Y+ t0 c5 l% n( E2 O* g
受限于个人水平,至今无法找出$game_map.events的真相..
" W9 L5 k& q& h/ K! u. [  f
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
& a: _5 W* g& T$ V+ p$game_map.events
* A; R4 B- u, F8 I' \嘛..这个数组吧..我在以前试写队友的时候关注过一点0 h. o7 Y( @2 n
不知道XAS内部对它做了什么手脚还是 ...
) i) G( P! {: C! e# g/ r" P
當初我把那個條件式看了三遍,都不覺得他有什麼錯' U( A. W5 ]! ]) T0 t- K) `. V' |3 a5 n
原來還有這麼深奧詭異的事XD2 P! y3 Z! ~8 t0 V* E5 W5 }

  W, s% Z& E, D' K4 L) b( q! L$ \錯誤發生前的確會有圖形沒顯示出來
1 F. R$ B. z. T# h+ n4 g不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
$ c/ j4 G, m% b沒想到居然是詐屍了XD& v. l% v! g( M8 q" q- J4 n9 `( ^

- _7 s7 D/ K  u4 w不曉得3.91有沒有修正這問題...
2 B* c: V6 ^9 G1 E* _7 ~! q3 M# H不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
$ m. b3 {4 U8 x; _) @. x5 P0 n6 J* ~+ a3 O$ z8 e1 X/ a
的确: s, Z  O+ t1 D
用惯3.82之后想去整3.91觉得压力甚大..7 }* S- b3 q, v; v; B, {
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。1 G! Z5 R; F6 {! X# [3 ]) Q' {
4 j8 m0 _  C$ g
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2026-7-25 09:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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