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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條& p8 D! w( _$ l9 j
會在每隻事件怪物的腳下顯示$ v. h. |; C) Z! L; n$ u
問題是不知道為什麼7 c' _4 H. F* ~; x8 Z
有時打怪打一打會跳出- O; b* U" a" R
---------------------------
8 X- P& ?) P( ]5 E6 B, ~( jXAS! `2 s& G) _' \
---------------------------
, x* J2 \0 ~, J1 c脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
% ?* v6 j- B; G8 o. }4 J7 n  P  _+ [
disposed bitmap' k; z+ |' b3 O. y4 X/ _# p9 D
---------------------------
; N9 M$ S' D% t0 _1 q確定   ( k+ p) U+ c3 @, P7 Y
---------------------------& l" t6 V; N# n% u
; f6 R: @* i" _3 D7 Z: J
這是腳本/ |- p. ^3 O9 ~9 q5 {' S% y  |7 c: S; B
' z* X( X9 n; l2 [3 s
  1. #===============================================================================  C5 y" ~0 _$ p+ z
  2. # MOG - s Hud 1.0      5 U. d$ d& A( V+ I
  3. #===============================================================================
    ' C$ n  B. o1 J6 i% d$ u0 t
  4. # By Moghunter 6 i2 X) C# D6 W* b/ f
  5. # http://www.atelier-rgss.com, W7 C) d  |: a+ ]3 S3 G
  6. #===============================================================================: p3 D8 W7 c( Z' y
  7. # Translated by Calvin624
    " q. k9 J6 w9 z* U
  8. # http://www.xasabs.wordpress.com
    / {+ m; g6 n- x3 m) n
  9. #===============================================================================
    3 ]0 Y6 d& v% V8 a/ k, |* l
  10. ###############################-DESCRIPTION-####################################: X8 I- _" n+ K( g) p
  11. #===============================================================================' g* [& O" P9 f9 X: L8 V$ c- @. N
  12. # Personal HUD – displays the HP and SP below the hero.0 m* |$ R# W. g- |- h, E
  13. #===============================================================================
    ! M+ b4 k/ J* J  B- g
  14. #
    $ N( ^& U% N5 Q2 \/ b
  15. # Graphics required:, I2 @- q$ v2 e1 O) C9 P/ ^+ _
  16. #
    0 I, o1 W7 F9 d' I, I+ u
  17. # S_Border_HP_Meter.png
    $ O9 V. B3 h8 Q4 U0 H3 y5 F
  18. # S_Border_SP_Meter.png! `5 N$ j$ }( Q8 h% K( x
  19. # S_HP_Meter.png
    / ^' Y0 T( X" Z0 q& D2 u
  20. # S_SP_Meter.png4 [: U  z6 c7 I* o  M. |6 x' H8 r
  21. #) b. i' X  V$ P* W% X/ b
  22. # All images must be in the Windowskin folder.; m+ ?2 c2 o: [) I1 @! r
  23. #
    1 D8 `, G+ F9 d+ A- e
  24. #===============================================================================! ~0 V) @% P& R% E. t
  25. module MOG
    5 T$ h5 k' x  _+ G- k5 Q2 n! M
  26. VISIBLE_DEF = false  6 e& F( E2 f! @8 }4 q
  27. # Show HP meter?
    3 a# G6 O9 L% [- y/ M  Q6 v
  28. HP_HUD = true1 t2 j+ |) O  U6 V+ G
  29. # Position of the HP border! |; {7 B" U8 D* ^
  30. S_BORDER_HP_METER_X = -2
    . V2 o% `5 q" E; x
  31. S_BORDER_HP_METER_Y = -2  + r$ y5 Y" r$ \" a! Z" H
  32. # Position of the HP meter  K1 z5 `9 F: Y7 b3 r5 N
  33. S_HP_METER_X = 07 C2 X1 B3 {3 x/ t
  34. S_HP_METER_Y = 0( a$ B" M2 v0 T
  35. # Show SP meter?5 r" f' g% Z9 `! z
  36. SP_HUD = true
      X& t  H+ U$ \4 B2 P
  37. # Position of the SP border+ ~; y: ?, E& p( C7 y
  38. S_BORDER_SP_METER_X = 0
    6 r' i% l7 |7 t$ F) G6 B5 Z7 D3 W+ `- V
  39. S_BORDER_SP_METER_Y = 10 ( _# d1 c7 e8 J- z
  40. # Position of the SP meter4 W3 U; f! F8 C) z4 Z. y0 w
  41. S_SP_METER_X = 0
    * o+ q3 [. e9 X: Q: p* N
  42. S_SP_METER_Y = 10# _& q* C* f+ K* d4 v+ D) z1 b1 Q5 W
  43. # Switch to disable the HUD
    4 p' V' j2 x' P2 m, o# z
  44. DISABLE_SHUD_SWITCH = 5
      \+ n. C) D/ ?6 S' N4 {9 b3 E" u
  45. RANGE = 20
    ' ]/ u, Z- O& o7 k, E+ Z3 E" U* o
  46. end/ y* n8 ?4 [) V6 f. a9 f
  47. #===============================================================================
    7 l% j) B( h4 ~3 i" F; Z2 m5 d
  48. # S Hud
    % y% \  k& {8 S. p8 y
  49. #===============================================================================* {% Q  p  @; V
  50. class S_Hud < RPG::Sprite. ^: _' q5 u+ ~& @$ V% s0 G1 R1 c
  51.   include MOG
    ( ?6 B& t+ r; @  J$ F% k
  52.   #--------------------------------------------------------------------------2 ~$ ~* }* t. d5 v' x
  53.   # * Initialize6 y, J- ^$ |+ D9 P
  54.   #--------------------------------------------------------------------------4 U- c! \: |" i8 U9 s; A. u% A
  55.   def initialize(enemy,viewport)( F  s  M) w  J
  56.     super(viewport)
    . F5 B8 O- B6 k0 j( w+ ^; c% u2 r  B
  57.     @enemy  = enemy
    ! k/ v, x8 I+ S( X0 J' a% @
  58.     @battler = @enemy.battler, `+ E: `9 l' m# c8 n% m' @
  59.     @old_hp  = 0
    $ E7 q& S3 y: _, q0 U  `9 c
  60.     @old_sp  = 06 h/ V4 n  Y+ `. R; B; X. f
  61.     @old_vis = false' X; M( P9 T6 H5 Q1 |. j
  62.     self.bitmap = Bitmap.new(100, 100)' C0 u, f4 n5 h/ O3 |( O; m% e
  63.     self.visible = (VISIBLE_DEF)#false
    + a5 i" b# L* V1 T: ]) p' x
  64.     self.z = 100
    % m+ {! J* r% z+ A8 J& R
  65.     #HP Border -------------------------------------------------------------------
    / U. J2 U8 t$ [  W
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    ( L0 z$ j# M- F1 b  ~) L+ j: t
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    5 i; |3 M) G# K6 F) d
  68.     @layout_sprite = Sprite.new
    9 C6 \; w& P; w$ j. w
  69.     @layout_sprite.bitmap = @layout_bitmap- C( ]* E- Z9 x8 Z
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    0 z! }1 U& O+ s
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    , Z- y% G& D! A8 `: A
  72.     @layout_sprite.z = 50018 u" c7 n+ {' r5 `- n
  73.     #HP Meter ---------------------------------------------------
    - b9 m7 [' Z' }( T- H
  74.     @hp_flow = 0& W; [& S2 w! f
  75.     @hp_damage_flow = 0
    $ a! v; U  L1 D. E; s1 v9 n' |
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    7 {" }' a" C+ J' \8 H
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height): S$ @! o( _! f2 d9 O
  78.     @hp_range = @hp_image.width / 3
    3 g* H% W; Z" P! o6 I, W/ \
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    * P6 U8 V5 S! @3 }) A1 U# |
  80.     @hp_width2 = @hp_range / 2
    1 I$ }8 U. f( i
  81.     @hp_height = @hp_image.height / 28 o* p, U" b* D, c
  82.     @hp_width_old = @hp_width& e: i$ j- x0 B  H2 q0 F' f: h, ~
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    3 e% k3 b; A& R* p1 f6 a1 b
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) # h! I: O* K' _- U
  85.     @hp_sprite = Sprite.new
    $ K# Y! b: j7 @$ w! L. e  G
  86.     @hp_sprite.bitmap = @hp_bitmap
    / K3 T' n7 |8 m, ~! ]
  87.     @hp_sprite.z = 5002% d0 l" A$ l, z6 Z8 L
  88.     #SP Border -------------------------------------------------------------------  n. k2 J+ R# _0 v$ @
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    5 M7 h/ U) F' o  ]- D% z
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    ; s8 d# S1 ~  ]9 x: C1 t
  91.     @layout2_sprite = Sprite.new
    * G( u% e& x6 S9 H" H/ M9 N2 a
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    1 H: t0 I3 R) Y7 H2 H* A+ h  A
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)  Q. Q7 O; [* u; L! w% s3 z9 |; l
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    7 p& F/ j+ a6 x0 x
  95.     @layout2_sprite.z = 5001    0 d& F: ]% Y1 I" x& u
  96.     #SP Meter ------------------------------------------------------5 d  h) F/ o0 ]7 X; ^
  97.     @sp_flow = 0
    0 P: x+ X  T- V' ~/ w4 X( ~5 U( g0 {
  98.     @sp_damage_flow = 0
    " M8 Y* a' X" _& T1 f, _- i
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")  H- Y- L7 B0 K$ @% `7 w, z
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)4 X+ T, I/ [" d% {$ I% V9 ~" |
  101.     @sp_range = @sp_image.width / 3
    8 o! h1 k+ `3 z9 d, N
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    6 t! l2 j3 O8 ]2 n+ v1 \. D& ^
  103.     @sp_width2 = @sp_range / 2& J, a  I8 U+ R# ~1 O1 p- @
  104.     @sp_height = @sp_image.height / 2% z0 {3 g8 l% [- |; e7 J( z  t, Y
  105.     @sp_width_old = @sp_width
    6 G4 y0 K- M+ R" g: x% g0 z# u
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    7 b% F0 P$ f( u# E# v4 H
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    7 J/ `! x) _  p* `2 f
  108.     @sp_sprite = Sprite.new
    3 s% F9 j3 d6 N4 k- L/ q
  109.     @sp_sprite.bitmap = @sp_bitmap
    1 L- G) R: P! w* a5 D, ?
  110.     @sp_sprite.z = 5002
    ! y" R2 a/ H9 H6 k6 h* g
  111.     update; r1 `2 q! u, y+ `
  112.   end( E1 r: F/ Z, p  Y5 P* N8 _, @5 h) D
  113.   #--------------------------------------------------------------------------! \+ E. Z1 f/ \  v6 z& w( d3 b
  114.   # * Refresh
    " z5 H: r1 ?5 t4 i6 g
  115.   #--------------------------------------------------------------------------% p! L1 E( }2 a& M3 M
  116.   def refresh
    5 T* v0 ^  S2 V0 d6 x
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible" k1 v) L# x5 a' R! U! t5 i5 }
  118.     self.bitmap.clear5 T$ a' J# a! Y, _4 h
  119.     @old_vis = self.visible/ A9 G9 K1 M3 K& ]9 |( I
  120.     @old_sp = @battler.sp& c4 ~" Q$ N! t' D" ?
  121.     @old_hp = @battler.hp4 W/ t: ~1 X+ x, X
  122.     hp_flow_update
    . J. a0 [% E$ T3 Y* t! Q( O' }& D
  123.     sp_flow_update
      H& d8 W. f% d
  124.     hud_pos_update- m, v0 n$ j8 J/ X
  125.     visible_update
    ) y* N- s9 U. H" }0 h2 p0 w
  126.   end
    / ?" {% n! A7 h
  127.   #--------------------------------------------------------------------------. G$ |) Y& d- @; p; P3 v# S
  128.   # * Dispose
    # T, G( J6 G0 a4 X7 [
  129.   #--------------------------------------------------------------------------9 T' i" o- u6 \/ H# d
  130.   def dispose- R) |( a: p+ A% ~$ T1 L% ^& Y
  131.     #HP Meter Dispose5 p" N5 W& [& C# p3 h
  132.     @hp_sprite.bitmap.dispose
      O2 T+ J; J: v& p3 c' i
  133.     @hp_sprite.dispose
    ; v6 _6 V0 z1 c" N0 l
  134.     @hp_bitmap.dispose
    : `  W* O3 j/ k. Q& g
  135.     #HP Border Dispose! |. I: g5 n" Z2 z" d
  136.     @layout_sprite.bitmap.dispose% g. F1 D1 U6 {
  137.     @layout_sprite.dispose
    * @2 v5 F0 S. m& d2 v5 n2 Q1 _
  138.     @layout_bitmap.dispose
    9 e7 n# \0 ]7 M" u6 A0 V
  139.     #SP Meter Dispose
    / |+ E! t% ]  P9 J9 z
  140.     @sp_sprite.bitmap.dispose  d: {  H" T% t4 n& d+ [6 H, b
  141.     @sp_sprite.dispose
    4 j4 E$ Y' T4 f  k9 v2 [5 G
  142.     @sp_bitmap.dispose
    ( `! I! z3 z* w9 b; u
  143.     #SP Border Dispose
    0 E5 F% ^  ^$ L
  144.     @layout2_sprite.bitmap.dispose- G- ]! T. V* I7 f7 f$ J
  145.     @layout2_sprite.dispose
    ' H+ t# a5 v: F
  146.     @layout2_bitmap.dispose- W; d0 V4 c. V3 {4 E! H* S' Y
  147.   end" _! K- x  a7 @. j# @# S
  148.   #--------------------------------------------------------------------------
    - k" T: d5 |  t. F
  149.   # * Update8 S/ e  T, S- s5 G0 @+ U# H9 P
  150.   #--------------------------------------------------------------------------
    2 `. S" H7 C. Q; V4 y% \! y
  151.   def update- P9 V6 ^! a  d* D! V% j9 {
  152.      @battler = @enemy.battler
    ( j7 M% U7 }- z1 s9 i) A% Z/ l+ ~- Q( b
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?5 c5 L  g5 c  K
  154.      if self.visible
    % G5 x! P9 F3 e6 W: O" ^/ X
  155.        refresh+ L; t: w/ ?0 K# C
  156.      else
    4 T7 g% I: W& l' V3 D
  157.        self.bitmap.clear/ K6 q: f6 |5 W
  158.      end; b& S% j. ^8 Z8 z
  159.   end4 i5 F$ v3 `: h  A
  160.   #--------------------------------------------------------------------------
    & F: P1 ]6 \  z
  161.   # * Visible Update1 w$ V2 ]; u) e: |
  162.   #--------------------------------------------------------------------------
    # l! ?. M) v) v: g) U# B) ?1 d
  163.   def visible_update
    3 w* L+ y( O% m( A* B: N
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    " U: V1 ^- `, r& ^4 `' L, z8 Z
  165.        @hp_sprite.visible = false
    5 h2 Z: _( o6 Q& `! i9 P# e. v  F
  166.        @layout_sprite.visible = false$ [( G) D, J- Z/ O4 x' b
  167.        @sp_sprite.visible = false
    ; W+ e; c- M. P2 f( P8 L
  168.        @layout2_sprite.visible = false. T' ^  @* H9 i
  169.     else: A+ f' R0 x% ^8 D& |$ q
  170.        if HP_HUD == true
    3 m! U+ |- O" s# ^
  171.          @hp_sprite.visible = true
    ( C/ @: ]2 Q+ I6 B, g! G, b. N
  172.          @layout_sprite.visible = true$ Q% I% D1 J# h2 `) S
  173.        else! C9 w+ I; L: @* a- I: }  |
  174.          @hp_sprite.visible = false
    0 ?9 X" }; P6 V* O  H
  175.          @layout_sprite.visible = false- J6 h8 ]% I# x+ j3 n4 O
  176.        end  
    ' r% B) Q4 X1 _4 o% v5 M! ~1 D
  177.        if SP_HUD == true% Z4 y" q( J4 h9 A% ^& [: D
  178.          @sp_sprite.visible = true
    0 L7 K  B8 ^/ b+ S- b: g
  179.          @layout2_sprite.visible = true2 y7 `3 G5 K  A
  180.        else
    2 ^: i3 ^- M* o8 v- C5 ]
  181.          @sp_sprite.visible = false
    1 ]# {3 A# {+ _
  182.          @layout2_sprite.visible = false
    * v# @# g8 E8 V1 W' T
  183.        end * U6 O2 E0 [$ Q
  184.      end  2 o% L4 z  k3 w! I" |1 L  A
  185.    end & L" V  q2 ^8 l
  186.   #--------------------------------------------------------------------------
    9 x9 d& v9 k3 d& n
  187.   # * Hud Pos Update. t5 a/ s5 ?0 G: J- e
  188.   #--------------------------------------------------------------------------  i4 {, D( x+ k. `1 B9 L
  189.   def hud_pos_update
    0 N6 }$ C5 f, U  C
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X1 |5 \- \$ a5 ~7 e; x7 }" A4 u* j
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    : f% ]% g# A. U9 o8 m' ], \0 J
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    ( x5 I( ?6 O. r3 K0 M
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y 6 h9 G& r0 d  s' G# ~5 F
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    ( d# L' T% N5 ]0 `1 v$ D7 K1 ]8 J$ c8 K
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    9 G' @0 L; S) F! z1 Q% k6 R( q8 h
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    $ a8 E8 z3 O- r7 m( e) I
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    " X* F2 x- B. {" T9 _0 g9 ?
  198.   end  # }7 [6 i) c, |1 ?
  199.   #--------------------------------------------------------------------------" \: P  d# w2 s% [1 B7 h7 ~
  200.   # * Hp Flow Update+ \/ N3 Q8 j. B3 m; j
  201.   #--------------------------------------------------------------------------
    4 g* ?9 g4 a7 k6 m
  202.   def hp_flow_update! Q0 m: I( g' U$ s( ^$ B4 D2 e/ T
  203.       @hp_sprite.bitmap.clear
    & k0 Q; U0 d  ]! a; m/ a$ `9 _) p
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  4 X+ z8 Q4 e; S+ I$ m
  205.           #HP Damage---------------------------------
    1 }9 i( g  `% o4 P- h
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    ; b# u9 u' H, a# Z
  207.           valor = 0.5 if valor < 1          ( _+ @1 J) {9 {4 D- A5 o
  208.           if @hp_width_old != @hp_width
    9 _. h2 ?  h7 @
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  2 D3 s- t. B" U- _
  210.           if @hp_width_old < @hp_width
    3 u4 f- z; F3 w* I9 |+ S1 v) b5 `, J
  211.              @hp_width_old = @hp_width
    & k5 m3 m4 M# [0 o% h; X( B
  212.           end      9 W$ H9 r% W  K: g
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    * W2 v! k) C" n+ r5 _1 h
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    8 R+ C$ J' N2 I; p8 G3 x+ k; j* L
  215.           end        
    ' \+ d8 x! j- y8 R. U
  216.       #HP Real------------------------------------
    5 D/ h+ O  g/ T& Z
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    * I; u0 {. O" V4 j2 j1 N
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          2 O7 K- h4 i: R; A
  219.       @hp_flow += 2  
    ! _+ \: E" c8 H. l0 w! f/ Y. M
  220.       if @hp_flow >= @hp_image.width - @hp_range/ m) g7 n. {" U, \6 m
  221.          @hp_flow = 0  4 c) i3 A8 I* A6 T5 n5 j7 p, L
  222.       end( N5 t; [# X- j5 L
  223.   end   
    6 H- t# T; j9 A  e( T
  224.   #--------------------------------------------------------------------------
    ) Q; y; `5 m, o9 T1 V9 @2 T
  225.   # * Sp Flow Update5 b1 u% J: D2 F' U2 u
  226.   #--------------------------------------------------------------------------! ?1 c) p( N# G# P
  227.   def sp_flow_update7 S, M( p. k! o, j- x: c- i; G
  228.       @sp_sprite.bitmap.clear* ^3 J  |5 e3 s) ]4 Z( Y
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    & j( D+ B/ M  U& ]) H: M0 \
  230.           #SP Damage---------------------------------
    # k! D! a' c3 m
  231.           if @sp_width_old != @sp_width7 ]6 Z  r3 L5 @! l2 P
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100# [0 d$ m- `4 ?1 {2 T
  233.           valor = 0.5 if valor < 1                Z/ J# X' }# \( p, P6 U$ a' Z
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  3 G1 S, L( |# }1 m
  235.           if @sp_width_old < @sp_width
    + X2 U; }, S( d9 V9 g4 @
  236.              @sp_width_old = @sp_width
    . S) r: [0 g/ h$ ~5 J/ S  L  _
  237.           end      
    ; }3 W8 o3 y, z% `% t# [
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    3 E' h; `+ x6 l6 Y: J1 K3 u4 l
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) 9 b! b9 L0 _8 |1 ~) a% H$ V- O, K
  240.           end
    ( m+ Y7 q2 k% ]; _4 D* P, T& @
  241.       #SP Real------------------------------------/ Z! Z4 ^( u9 G3 u! _, X
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    + _! d2 d0 ]; m3 D; M: s
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)& X# K4 ^3 J. p) o4 h( L* J
  244.       @sp_flow += 1  
    5 Z* q4 n. C/ K0 y5 V$ I2 e4 \1 E
  245.       if @sp_flow >= @sp_image.width - @sp_range
    5 Q8 `% d- G. m' y) i9 W  @
  246.          @sp_flow = 0  ! m" ~4 X: l( ]  B
  247.       end
    " b" T+ n6 H8 w6 G* |
  248.     end            
    & T9 w3 Q' ^& o6 R  N
  249.   end3 J0 Z2 ^/ ~/ B( j
  250. #===============================================================================
    6 L6 t  o; }% Y9 u9 @0 m" W
  251. class Sprite_Character < RPG::Sprite* I; _+ X0 w9 v* r
  252. #-------------------------------------------------------------------------------
    , ^# u$ D1 I, I: S' `
  253.   alias :xas_emini_hud_init :initialize
    & D& I2 ?" ~& j  L' ~, ^
  254.   include MOG2 `. ^/ X1 z4 `
  255.   def initialize(viewport, character)
    : Z0 @5 g8 U% n" h
  256.     xas_emini_hud_init(viewport, character)& m) K, j& A: {6 v6 e" p+ q
  257.     @viewport = viewport/ |$ E6 }& x, L) }. F% w6 K
  258.     return if @character.battler.nil?
    0 X; ~  j* m) O8 v! Q9 U' Q: o5 F
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    * W& ^7 e3 w  g8 @
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id), r  V$ S7 C3 K
  261.     return if @character.battler.is_a?(Game_Actor)
    ' h/ K5 Z" p, W3 t  m! ?0 f4 j$ J
  262.     @bars = S_Hud.new(@character, @viewport)
    ! W8 |9 ~2 ^, `6 S: k/ _
  263.   end
    9 L# s4 u! f  R) `5 O$ V6 i
  264. #-------------------------------------------------------------------------------
    + ?$ g8 e# i& d- Q' d* r& Z' i5 r  |
  265.   alias :xas_emini_hud_up :update
    " d6 |! M: ^* }& {
  266.   def update
    6 ^6 Q/ }& `, w  {4 `: z% k4 T
  267.     xas_emini_hud_up/ m; M8 y8 D" Q" E" {2 \3 w
  268.     return if @bars.nil?4 B$ y/ y0 K$ ~6 r# ?
  269.     return if @bars.disposed?
    ( ^+ _0 W) a9 W1 P" j+ t1 A
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    6 G* y2 P+ S! K  z
  271.     @bars.visible = (dis <= RANGE)
    ( m/ t; S; R$ T& n, x
  272.     if @bars.visible' T( \# e" Y* D# Z5 O# h7 T- Q
  273.       @bars.x = @character.screen_x# - @cw / 4- K* o3 L( u3 N
  274.       @bars.y = @character.screen_y# - @ch / 4. ?) J; E4 m3 O; O* @9 t; w. X0 J
  275.     end
    $ ~: {& f* X4 n9 G# l3 a! B6 i
  276.     @bars.update
    $ J: b7 Q5 I. o" O( ?  r
  277.   end+ l3 R6 R5 C- Q+ p" l
  278. #-------------------------------------------------------------------------------
    ! O8 F; t$ E1 r6 E. b% \
  279.   def dispose6 j; ?( u' K4 d  Z0 @
  280.     super* [. V  h1 w3 A& _, O! k# M
  281.     @bars.dispose if [email protected]?9 k" e8 k. u+ V8 o7 M
  282.   end
    5 A( D1 e! ^: [
  283. end3 @7 x; r+ y! R; z
  284. ! X8 E' k7 s" u7 K* N: L4 A) E
  285. $mog_rgss_s_hud = true
复制代码

% Q6 f. F0 T. z* q' ?" j4 }
5 e" Y* S9 J" p: b$ V2 v* Z+ \
9 f. e/ B. }$ G9 ~- d上面所說出錯的203行內容為9 R5 N2 j% ^7 c4 k, k
@hp_sprite.bitmap.clear9 N$ a  V- Z3 j2 A, `
: t' z3 ?, a8 D( {) Q1 ~
想知道怎麼解決1 T0 A( j2 s1 H! j0 D& L4 H
7 n( O2 U4 n5 U$ M3 V$ i
該腳本支持3.82
! U0 r; e9 P3 o4 X- U  M9 t1 g7 K6 c  Y6 q- L) J/ }' [
下面是圖檔,要塞在Windowskin下
3 \4 E3 _/ _8 n5 ~; Y" k0 T
( ?6 r2 Q5 @" W' x S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
$ k! c: u7 O' {: Y/ Z$ ~& L  N1 {
8 X% p3 ~1 Y5 f1 A, \; o/ h$ F5 {: b7 N

* ?' N# ?3 r3 v' v& U

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适2 A. v8 \' |6 j4 a' C5 Q
结果尝试刷新了一个已经释放的图形
4 c* q7 j5 @. l, u1 m3 f
; \6 ^( Q9 L. d( _
/ o% _3 ^+ _) X+ a! `' ~: X  d. p$ h" d& ?
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    0 a# d7 `- H! q) M& L( D
复制代码
不要后面那个条件貌似就没问题了。8 w8 `8 O  e; [+ K8 F8 E
& ^" i" w6 ^: L' F

2 v( E; z& B4 d1 c( {% F4 Z% p- H
- K, I7 r+ z( o9 K4 J3 R& a
* o4 s( t% K; U9 g4 c3 [
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
153
在线时间
1742 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 ) p% R  u, Y% O- Q- Y$ H
貌似是释放的条件不合适
& B3 ?7 e& O$ J( d  _结果尝试刷新了一个已经释放的图形

3 A3 C) b0 B* H8 }把後面那個條件弄掉後,的確沒問題了
8 B! t2 ?: f" W% O; ]' Q3 c; o4 @( d目前從關頭打到關尾結束都沒再彈什麼錯誤
" Z+ n1 A) U0 ~! |! _非常感謝
! i$ Q) p5 ~/ D8 t1 R* j5 s' u6 q1 I/ ?1 E5 b6 i
不過我是參照著別人腳本改的2 {7 m# I9 {6 R6 k  N1 X: O
他寫的條件式也是那樣,但我用他的沒什麼錯誤, ^( `6 l8 Z4 Y) t6 J$ w" d) D
不知道是怎麼回事/ U9 B+ ]: G; |/ P5 ~
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
+ T4 x. v! _+ @! _! I8 B5 F我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events* I+ r- N) a9 `4 x
嘛..这个数组吧..我在以前试写队友的时候关注过一点
* t& ^# \( A+ o- }, s  S不知道XAS内部对它做了什么手脚还是为啥,* b$ z7 x) T: K& P& r# j8 Q
总有那么一瞬间,没有被消灭的敌人事件也变成了nil  e: Q8 j+ W1 I% @8 ?

. R8 \* s8 {/ {$game_map.events.values[@enemy.id].nil?4 @/ K6 L; V" G0 N4 ^- D( _4 ~
因此自然而然的返回true并符合条件把图形释放掉了
2 m7 ~( ]2 A7 ]7 n+ E
9 P8 P# F+ b" dLZ应该有注意到吧,
- E( R8 Q' q6 X2 B; t7 ]3 A我测试的时候发现报错前几帧,图形会消失,
( p6 v8 U) n+ B+ D9 ~! R. z应该就是“误以为敌人被消灭”了。
1 {. G  i' e# [6 Z( O% R' r4 w' b  P) W, x& z1 |
受限于个人水平,至今无法找出$game_map.events的真相..  k9 L' W+ {& k+ X4 G/ N
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
153
在线时间
1742 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 1 Z- T9 l4 D( j2 W$ z
$game_map.events# ~& q" @7 j% a5 ^: U3 D7 q
嘛..这个数组吧..我在以前试写队友的时候关注过一点
- d$ g% |/ h0 ?5 {9 ]不知道XAS内部对它做了什么手脚还是 ...

& H, i$ O# e$ v當初我把那個條件式看了三遍,都不覺得他有什麼錯" e6 P/ a% r* j: G  o) h4 Y
原來還有這麼深奧詭異的事XD
! ~7 ^+ S$ `' q
4 F/ s" g" h+ a2 Y+ D, n( q- v錯誤發生前的確會有圖形沒顯示出來! v- {" O& \% G! F
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...' w5 Z. L2 i1 p, W+ z- Q. l7 w
沒想到居然是詐屍了XD
0 l  Y, Y) C9 {. z+ l3 W( m0 D1 H2 o
不曉得3.91有沒有修正這問題...
1 ~7 y+ k+ t+ r% h& ?不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。7 G6 q! e# _' ^; W+ ^' D

0 O3 n4 H% _4 o% g的确
9 m) [3 \$ q0 o. i2 `  o% R用惯3.82之后想去整3.91觉得压力甚大..
( k9 N0 z+ e+ a4 a7 g. b干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。1 o  b' w% f8 |1 K- A9 C

- m" O# Y4 P8 l5 @  g$ v$ B+ ?2 V然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-4-2 06:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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