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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
2 H, e9 i) `0 M" n8 ]+ o" p會在每隻事件怪物的腳下顯示# @4 S2 f! P+ A
問題是不知道為什麼5 N. x+ c5 G6 g3 C9 I! s( h- M2 l& R
有時打怪打一打會跳出. X7 O2 H9 B/ p7 L% c6 h% q
---------------------------
% C( u) h. u0 B9 r+ ~- V- mXAS! u$ G2 w2 U) A' t: A3 w- R
---------------------------" S1 v& D7 i2 ]5 @; h- V+ ?% e
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
" f; l% P! Q: C5 u! P% j
1 I) Z& y3 G) D2 y5 wdisposed bitmap5 E' ]$ h1 H. y7 A
---------------------------: L. r/ c1 P. ^9 P6 C
確定   
' K6 x& l- ^6 z7 d, ^# h& h---------------------------8 f7 g+ T+ B! J% I5 x4 `0 n

4 U6 _6 q: b$ u* y這是腳本
6 [1 @: Z/ @. p: L. N3 V! v
8 N- `- t# S% H) o
  1. #===============================================================================1 R1 a  n( q/ P1 T% k3 \- M1 T& z* }
  2. # MOG - s Hud 1.0      
    3 \3 {) {9 w7 i
  3. #===============================================================================
    ' Q3 b) G4 i- T  _8 L
  4. # By Moghunter
    , R1 h. T5 z( X
  5. # http://www.atelier-rgss.com
    : D& J- Q4 A4 q, Q4 @
  6. #===============================================================================) v4 s% I+ u/ d  d, C0 M! L
  7. # Translated by Calvin624
    1 a6 f, p) Y4 \1 h" r
  8. # http://www.xasabs.wordpress.com. e; g% K% j4 P0 z
  9. #===============================================================================
    2 O2 I9 a- j4 J
  10. ###############################-DESCRIPTION-####################################
    5 C+ R" s( r  \( }
  11. #===============================================================================
    ; Z) V9 N* o# N
  12. # Personal HUD – displays the HP and SP below the hero.
    " d' \! k2 j5 B2 ~
  13. #===============================================================================
    + G. ?$ L4 _% |$ R2 w: z( U% z
  14. #
    : l2 I, ?4 D8 ~3 C+ @
  15. # Graphics required:
    " z; C& k* S& ?( u9 l
  16. #
    - n% a4 _0 _2 h! _) T5 R. I3 J
  17. # S_Border_HP_Meter.png
    3 X* ^5 C  C( f0 y: z
  18. # S_Border_SP_Meter.png
    4 c5 x/ Q5 p/ F3 {
  19. # S_HP_Meter.png) R& V) t/ X* j2 M- D
  20. # S_SP_Meter.png
    " K& H: g1 M" ^8 f8 d
  21. #6 u( i4 X; q9 |6 P; K8 ^7 k3 l
  22. # All images must be in the Windowskin folder.7 M  R9 ]: A& Z$ ^) ]
  23. #
      P9 a. b; o3 h# S0 R
  24. #===============================================================================7 O8 e# u3 G  H  g7 o5 @
  25. module MOG
    6 J4 f9 p0 o" v% V4 Q. z" F
  26. VISIBLE_DEF = false  9 t7 I, X1 j- W( i4 R' q/ ]( ]
  27. # Show HP meter?" \# w9 b% z! o0 a
  28. HP_HUD = true8 r2 m, R9 ]& G4 y! O/ B) I) D
  29. # Position of the HP border0 j/ G0 ^. l& O. D
  30. S_BORDER_HP_METER_X = -2
    2 }' e! w* n. ]( X. p
  31. S_BORDER_HP_METER_Y = -2  
    4 A* F: f. h# f, v$ l4 ]
  32. # Position of the HP meter% ?. F% t$ F1 D0 [$ W% R+ i
  33. S_HP_METER_X = 0
    , L1 |  `  h% [4 ^* m( e
  34. S_HP_METER_Y = 0
      Q. J  }* C1 ^4 x' G* j2 Z
  35. # Show SP meter?( _+ o9 h% l. t2 |& m0 `9 P
  36. SP_HUD = true' }9 Z4 P. t7 q, @" y
  37. # Position of the SP border
    $ C5 b" r3 ^/ t. _( y% D5 }7 Y
  38. S_BORDER_SP_METER_X = 0, \) L  _! A7 C. `( x2 n9 t
  39. S_BORDER_SP_METER_Y = 10 4 |' y; Z' C/ _& y8 Y, E) M" _  [% L
  40. # Position of the SP meter8 x* A8 M7 K# m0 O7 L3 d: h/ q
  41. S_SP_METER_X = 0
    $ X3 X& L2 K" U4 a3 W, @; _; l( F8 c
  42. S_SP_METER_Y = 10
    ' T& P& T% t9 P  a/ x- ]6 V
  43. # Switch to disable the HUD" |. ^$ p5 H' w+ l. N4 t# `
  44. DISABLE_SHUD_SWITCH = 5! V9 F4 w0 ]  A
  45. RANGE = 20
    ) |4 B0 k% R* e: @
  46. end
      I; o9 e; i2 W. M) u
  47. #===============================================================================" h9 x# \0 X' u8 c7 z* [, k
  48. # S Hud4 s& C6 X8 }# V1 V" _3 y" [' a
  49. #===============================================================================
    7 Q& ?+ Y7 @6 D, D
  50. class S_Hud < RPG::Sprite, }( @" Y6 l* x1 ~( {. V; q: Z5 _
  51.   include MOG
    1 H- R. ~% m7 N# y$ ]+ J
  52.   #--------------------------------------------------------------------------8 q9 ]0 `. o; w* }
  53.   # * Initialize; y8 o  p  @0 Q' [! G  N
  54.   #--------------------------------------------------------------------------  T4 }4 V" {! ^
  55.   def initialize(enemy,viewport)
    % l; Y7 L2 F& t% w
  56.     super(viewport)
    & k0 K& w; g/ X1 F" |
  57.     @enemy  = enemy
    ' r, |! Y/ ^6 H! J
  58.     @battler = @enemy.battler, T+ F/ f9 `, t. I
  59.     @old_hp  = 00 V- n* w8 L9 S$ h9 z4 J0 @( @
  60.     @old_sp  = 08 \# D# i) T8 g5 G+ c* d
  61.     @old_vis = false5 B: P4 O% \5 c" c+ k) Y
  62.     self.bitmap = Bitmap.new(100, 100)
    ; J& d& I/ F8 ~6 k8 L' q( _5 |
  63.     self.visible = (VISIBLE_DEF)#false: j  a" c. Y% Z: v1 Q6 u$ g; M9 a
  64.     self.z = 100/ }( @! z5 n! C& L
  65.     #HP Border -------------------------------------------------------------------, B3 s1 a) R, C$ e  E2 h  v9 W
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    3 ~% F/ U4 S8 ?. r) u& p
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    5 k( Y+ x" }2 `* P
  68.     @layout_sprite = Sprite.new6 c- w6 G* k" Z0 F
  69.     @layout_sprite.bitmap = @layout_bitmap- h3 v0 a; t) B: C1 _
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    8 K, }5 O/ ]0 G
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    & u- d. n. @* F' M( m, K
  72.     @layout_sprite.z = 5001
    3 C$ ]. \* D  D1 U5 {* S
  73.     #HP Meter ---------------------------------------------------
    9 g$ d) x7 _2 R/ v
  74.     @hp_flow = 0
    1 Y" }! X! ?: B: J; [0 X1 @
  75.     @hp_damage_flow = 01 A! P! L/ J/ Z+ K, y8 `
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    5 M  x# W# `4 x0 N  H7 }( \
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)4 x  h7 M. L' i$ m2 z: ?. }; D
  78.     @hp_range = @hp_image.width / 3( o! b$ j3 \, D& t' M7 w
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp    M7 S- \4 `8 n, f% h  B
  80.     @hp_width2 = @hp_range / 2+ z- W+ ]( v/ K7 H6 }+ i
  81.     @hp_height = @hp_image.height / 2
    8 |% o: N3 b7 d2 K  F% |+ \
  82.     @hp_width_old = @hp_width' x8 v' r% O/ v9 g% J& a
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    ! p+ ]  h  `" O/ C5 b6 f
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    8 i4 x7 c. }% \9 V3 s1 h/ t
  85.     @hp_sprite = Sprite.new
    ( x8 n* x9 I5 Q: Y1 {$ \" c
  86.     @hp_sprite.bitmap = @hp_bitmap
    ) M4 c, J+ i$ [" w/ ~' S& G5 P
  87.     @hp_sprite.z = 5002, J8 s% m$ `2 J  C# l
  88.     #SP Border -------------------------------------------------------------------
    , S- P9 H$ {" w/ n+ G
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")2 w8 |3 ]  A$ j! t* Z2 `; v7 P7 q
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)2 \# c5 P( x" F9 s
  91.     @layout2_sprite = Sprite.new" w1 Q# q" L" H6 j
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    0 P  L0 Z, P1 c5 i2 c7 s1 B
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)& {9 l4 V7 b1 E; V' a+ G, L
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      & }8 V4 q9 M8 x0 ]9 n& q
  95.     @layout2_sprite.z = 5001   
    2 M7 m/ y+ i  ?8 `
  96.     #SP Meter ------------------------------------------------------
    4 w- ~0 c* h' r2 W! M+ b0 ~7 W4 `
  97.     @sp_flow = 0
    5 B6 ]! k7 s: |, _1 N- b
  98.     @sp_damage_flow = 0. q& t( f; \2 D8 {
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    ' O# o+ n* K6 V, Q+ r0 k4 L
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)% Q7 Y8 m( {  L/ @3 Y1 d3 N
  101.     @sp_range = @sp_image.width / 3- V  d/ W* O9 }) |+ t3 x
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  - h% v0 f) P1 n9 L0 }5 ~& P
  103.     @sp_width2 = @sp_range / 26 L4 `+ b/ Y) \
  104.     @sp_height = @sp_image.height / 27 Y! Q/ e/ A' E1 h( p0 @0 o
  105.     @sp_width_old = @sp_width& J8 e. X2 \+ x) F
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)! g. J& D6 m) v4 a( S! Q
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)' q2 R8 m6 I; _* D4 e
  108.     @sp_sprite = Sprite.new
    5 {* _7 k5 E# [* [' q9 f
  109.     @sp_sprite.bitmap = @sp_bitmap
    6 J+ G% T/ j- O: g" E3 {
  110.     @sp_sprite.z = 5002
    - k2 n7 A- K% T& `# o- i3 M/ E: `+ I
  111.     update
    & C! S) n9 V6 x: L% a" F
  112.   end
    ; I4 X9 X% O+ O" |
  113.   #--------------------------------------------------------------------------
    ; `0 [& _5 \. x, T' h0 v  E
  114.   # * Refresh- ?" e9 i% G; l6 `2 u
  115.   #--------------------------------------------------------------------------
    ( Y6 [1 s1 W$ W1 ?
  116.   def refresh  s% j: H$ N5 g+ C$ z8 k
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    ( S* L& W5 I- v1 d+ k1 ]
  118.     self.bitmap.clear
    ( h, W3 u1 l; z- Y; }
  119.     @old_vis = self.visible
    $ N9 B% f7 y9 V! D2 e6 o* q
  120.     @old_sp = @battler.sp4 u: W# Y" D8 ^# R! m
  121.     @old_hp = @battler.hp- i$ g3 w) P- m) N' b
  122.     hp_flow_update1 k8 l. U  L3 S- s4 O( Q! N$ D9 I
  123.     sp_flow_update
    ! Q0 ?6 x, N$ O7 {
  124.     hud_pos_update- D6 F: B2 o1 t
  125.     visible_update
    + y. z$ b4 ?9 f2 n; e( J5 L
  126.   end
    9 a/ S2 y" g9 h+ H% D. @. Q
  127.   #--------------------------------------------------------------------------
    7 o3 j2 E0 z/ @$ O0 `: L% s
  128.   # * Dispose& w. c, ~4 R9 i) p: a: m9 O
  129.   #--------------------------------------------------------------------------6 U$ w- k/ O0 Z
  130.   def dispose3 T* E! @1 L0 w: U6 p
  131.     #HP Meter Dispose
    " F, ~! ^/ ]- m& T& S. K  u8 O
  132.     @hp_sprite.bitmap.dispose
    ; w; j& Q9 B: Z- j+ ]
  133.     @hp_sprite.dispose9 J: P: A' E# B
  134.     @hp_bitmap.dispose
    ; l; U+ B  T( Y0 C' T0 R
  135.     #HP Border Dispose
    ( N! I7 k/ |% Y$ J
  136.     @layout_sprite.bitmap.dispose
    8 V# x+ u) C# Y( R
  137.     @layout_sprite.dispose/ Q8 S4 x5 I7 ~0 a! _3 A2 n
  138.     @layout_bitmap.dispose$ i. a% P0 ^$ w
  139.     #SP Meter Dispose3 x% |$ p3 `6 q: f
  140.     @sp_sprite.bitmap.dispose) ]5 E* \# I: l. h% l& Y' R
  141.     @sp_sprite.dispose
    1 ?  N4 C: {3 d+ p) K
  142.     @sp_bitmap.dispose, U# g; L1 ]; a$ u8 p6 T
  143.     #SP Border Dispose
    9 Y. s8 M7 a! I9 \! |' \( ]0 o
  144.     @layout2_sprite.bitmap.dispose
    , J/ |+ o" B8 V, s+ h" l1 A- [
  145.     @layout2_sprite.dispose
    5 X( x1 y! ?$ D6 o# C3 [
  146.     @layout2_bitmap.dispose
    / Y4 s2 G3 Z  i" |
  147.   end
    1 R6 n  E1 V; A5 y, g+ P5 h
  148.   #--------------------------------------------------------------------------8 ~/ |* _; ~8 J: n" a# E( W" L
  149.   # * Update
    : ]4 S4 Q7 d/ }6 u
  150.   #--------------------------------------------------------------------------0 Y2 x) E1 r1 f: l, S$ Q
  151.   def update7 v; c. n( g" x
  152.      @battler = @enemy.battler
    : v  T  m: o0 D* ~; W' ?
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?- ]# f5 a5 `# L+ e
  154.      if self.visible
    0 O# V' d. }; _! G/ M$ n" ?, W: D
  155.        refresh
    " e$ M% q3 c& ^
  156.      else
    ' W! _% @% q% l3 C1 H. {8 O# N
  157.        self.bitmap.clear$ E) h4 N' a" @' S, p' M5 w
  158.      end# u$ \3 i6 j8 B5 \1 A# V
  159.   end
      {: P: w- U3 ]
  160.   #--------------------------------------------------------------------------
    9 e+ E- K/ B3 }/ N5 ~7 M1 J
  161.   # * Visible Update6 C( v/ l, ]# w- @
  162.   #--------------------------------------------------------------------------
    1 ]. i4 r. |8 t% A
  163.   def visible_update+ y; ~& H% q8 X6 r
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true. O& {, u  A& E- B/ g$ I# }
  165.        @hp_sprite.visible = false
    ( I9 R* s7 Y8 x7 o  {. U' J9 c
  166.        @layout_sprite.visible = false
    * l& n; R. L1 t+ n+ J3 e% i; C. Q
  167.        @sp_sprite.visible = false
    7 @/ v8 Y1 q- j& u* q/ y
  168.        @layout2_sprite.visible = false
    : D! q/ y7 N' x* u
  169.     else( m5 p- s# d5 @7 j0 J" z
  170.        if HP_HUD == true
    0 j4 }8 b: U2 C% ~4 [* }, H
  171.          @hp_sprite.visible = true
    ' q; n; Z% Z5 w/ `: i( @3 _
  172.          @layout_sprite.visible = true
    ; j( E$ G6 B& B& o' M; R
  173.        else
    8 A) s3 o, [# ]5 L
  174.          @hp_sprite.visible = false2 q3 |3 G; p4 W  ~: L
  175.          @layout_sprite.visible = false
    7 p: [* J$ B; ?8 H. }* f$ s/ ~/ ?
  176.        end  
    1 ^1 K$ L9 H) z4 s* u9 w
  177.        if SP_HUD == true
    / R8 C( v6 k& R8 \
  178.          @sp_sprite.visible = true. h" b% q# n  ~) C$ m) E. p
  179.          @layout2_sprite.visible = true" h9 |6 t5 Z! S2 s$ i$ S
  180.        else
    # L6 z0 i& A+ @( }
  181.          @sp_sprite.visible = false
    2 m$ ?2 v5 x/ D- v1 m7 E# \
  182.          @layout2_sprite.visible = false
    1 R4 ?5 p, |! ^3 _9 w
  183.        end , O1 R7 e  G- O, _
  184.      end  
    " ?, Q  V. h  _! H
  185.    end # `" l8 X& S% B! P
  186.   #--------------------------------------------------------------------------
    3 I1 H! B1 g6 K
  187.   # * Hud Pos Update
    . M+ a/ M9 X- ]6 H- Y: V1 s* ~: P
  188.   #--------------------------------------------------------------------------
    8 Q" r7 F" P' h8 r6 }$ n
  189.   def hud_pos_update
      c4 v5 {  a! V0 a. f" H
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X& D4 R% J( }" v1 e
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  ( c, [" X! a, y8 o7 w
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    6 y9 Z; r% u3 h% r
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    8 h  k9 }' t, A
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X9 d1 w1 l* |5 t+ x6 X0 {
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    - {. k7 @2 ]: D5 G7 r
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X8 U3 s! {5 \; z* O( l( Q
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     / j' y5 j; T" o
  198.   end  . E8 [4 Z$ X  B# T, T( o
  199.   #--------------------------------------------------------------------------& L/ D" n' Z% R/ C  @2 n( e! G
  200.   # * Hp Flow Update
    : T6 J7 C) w/ V# R( x7 z' }' Y8 ~
  201.   #--------------------------------------------------------------------------
    7 e9 x: V5 l" M% R! J' _' i& j
  202.   def hp_flow_update
    + `3 m) a. V( L/ Z
  203.       @hp_sprite.bitmap.clear
    ! N. h' a" J9 c0 J( x
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  - G" i. u6 n$ t+ u
  205.           #HP Damage---------------------------------
    2 U' P9 C: I; Q, |& j
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    6 ?$ s5 v+ J. A  \5 X
  207.           valor = 0.5 if valor < 1         
    % N4 u* s0 x' a* P) w) f
  208.           if @hp_width_old != @hp_width
    5 C( l* |- F# f8 h5 C
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    % a5 a% n3 k7 ~: I" w0 K
  210.           if @hp_width_old < @hp_width % G" Z& n/ h! {# w# ~9 A$ D
  211.              @hp_width_old = @hp_width
    6 i# @/ Q! ^, N( U" m- C0 S& z1 M  G- Z
  212.           end      # g7 f9 \" `$ a5 U. c" @
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)# m' m' l/ L: h2 u) P' e4 t& e& o( b
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       ' b) p8 D. ]8 F: |* k9 j) Z
  215.           end        / n4 t2 k/ Y, A3 |- `" K- p' {
  216.       #HP Real------------------------------------
    4 B2 x" b6 x3 p6 v2 i
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)$ A5 z, T8 w$ H/ N9 F6 C
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    2 F$ i+ D+ y. v% d; u# v
  219.       @hp_flow += 2  
    : c1 u) x# ?# i9 ?$ g' A
  220.       if @hp_flow >= @hp_image.width - @hp_range8 u* N; k0 l5 S4 O, l; n) w' ?  e
  221.          @hp_flow = 0  & P+ `" e7 c( H
  222.       end
    / r% D: m- E- w
  223.   end   
    2 _' u  {& K/ s' f: _8 @: k
  224.   #--------------------------------------------------------------------------* U4 C! n5 Y" q6 V: B. _( w* ?
  225.   # * Sp Flow Update$ l  m# z( p; ^# a' N
  226.   #--------------------------------------------------------------------------0 e. B& k$ d# z; B% d' Y6 L! ]
  227.   def sp_flow_update& n" g. M! F/ k2 v5 D
  228.       @sp_sprite.bitmap.clear
    4 n0 m/ |0 R; n
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp 1 l; V# f6 m5 h/ w+ |' J
  230.           #SP Damage---------------------------------
    . a8 i3 |; E& R0 M& ~8 ~# q' h' Z# b
  231.           if @sp_width_old != @sp_width3 S4 y/ S# e3 ?9 M# `. {
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    3 ?7 ?7 g+ }2 Y/ G: V
  233.           valor = 0.5 if valor < 1              
    $ L3 H: B! u; H0 ~8 t3 O6 u2 n
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    ( P3 `9 P* K$ Y3 \% J9 G( M
  235.           if @sp_width_old < @sp_width ) ]2 ]% _. `6 G% A) v; }/ j
  236.              @sp_width_old = @sp_width
    0 I' z4 m: a* s/ ^" E
  237.           end      * c2 @: z" V. }* Z& A+ w
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    - i3 z# M3 M3 c9 l
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) 5 U  w, X! ~7 W) o2 n) q8 }
  240.           end
    2 a3 ~9 c% W. W, M/ ]) E% s
  241.       #SP Real------------------------------------
    ! T& _+ E- V* @5 t" \5 ~1 l8 Z
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
      z8 e5 l9 U" C1 ?5 ~
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)7 B# M$ V) L/ I) N1 \( a
  244.       @sp_flow += 1  ) A7 r9 u& T- o/ ?- Q
  245.       if @sp_flow >= @sp_image.width - @sp_range  l6 q/ S9 w* V( d
  246.          @sp_flow = 0  
    . p2 ]' a; h, C5 r1 Y2 P% K
  247.       end
    2 Q% u6 i; e2 q6 X2 f/ V; G
  248.     end            3 y" _+ i7 l4 k- @/ I, h
  249.   end. e* G2 \' L( \0 k
  250. #===============================================================================( N. ]& E) ]# c2 [0 k
  251. class Sprite_Character < RPG::Sprite
    , x  H* d" l) {" k: B
  252. #-------------------------------------------------------------------------------% Y& i: t2 p3 m' D  \* n- Y
  253.   alias :xas_emini_hud_init :initialize% A: q) G0 U: Z/ L" B5 T' \
  254.   include MOG
    / ~" t: ]3 W/ ]& A
  255.   def initialize(viewport, character)
    ; [$ s$ Q* Z( M
  256.     xas_emini_hud_init(viewport, character)) i/ v1 f/ \3 @/ r
  257.     @viewport = viewport
    & s3 ?# V8 z+ ?
  258.     return if @character.battler.nil?- s$ G3 z9 E  g$ q& y
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    3 t3 a1 L' R* j
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)% d! L$ q# m5 f8 f
  261.     return if @character.battler.is_a?(Game_Actor); ?9 |  V* J2 K  T8 `
  262.     @bars = S_Hud.new(@character, @viewport)
    9 g- q2 Y; X! g& q: n( c4 a
  263.   end* q. H9 m) Q8 o1 X, v# y9 U1 B2 @$ e
  264. #-------------------------------------------------------------------------------! @- z. d7 f8 c5 {- y$ p
  265.   alias :xas_emini_hud_up :update" ^5 \4 z7 E/ q0 a) T
  266.   def update
    7 V/ u' S$ O6 k5 z
  267.     xas_emini_hud_up+ |5 `( Q" n' `& a) A0 w5 Z
  268.     return if @bars.nil?
    0 W# x9 f. G2 D4 D: m( }
  269.     return if @bars.disposed?
    . D' y3 X- x0 n+ U1 m/ R9 @
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    0 w9 [. n- u( M& c" p/ A6 t2 x/ J! |
  271.     @bars.visible = (dis <= RANGE)
    $ N  d8 r, U4 }5 R, u- c" ^7 y" T
  272.     if @bars.visible+ F6 q3 l6 O  S5 j- B% k! B
  273.       @bars.x = @character.screen_x# - @cw / 46 ]3 b* s! C0 H9 c% \( [
  274.       @bars.y = @character.screen_y# - @ch / 4$ U, g- W, {9 w  D3 Z- G% V" p/ f" g
  275.     end
    * v3 `! E8 \. m9 Z
  276.     @bars.update* g# a3 q# Y$ S0 V
  277.   end  `' W. i$ ^9 u
  278. #-------------------------------------------------------------------------------
    / C9 d6 ]7 o+ j2 B( o* {. p4 T
  279.   def dispose
    3 i- k8 G: d, L# W
  280.     super. r9 x, T. A) r8 z0 b+ ~/ p
  281.     @bars.dispose if [email protected]?0 P" p% `* o1 _' {7 x* D1 W
  282.   end
    " E& }# A- O- i' ]& n1 l* ]
  283. end
    $ Y, r% @, s! ^& S  s
  284. # F9 }8 ]+ X- `( w% h
  285. $mog_rgss_s_hud = true
复制代码
) v  T# u6 C: r/ D* ~% f

$ P+ m2 t7 T( b. _# s) k) ^9 C
6 G1 A" @' i7 u2 d, ]# `上面所說出錯的203行內容為& i2 b& ~' {8 X% p4 a$ |: ^# d
@hp_sprite.bitmap.clear
4 |( v) y+ m- G4 U
; r& y/ _& R5 N% k  v9 H2 g想知道怎麼解決! r1 m. [' Z( _1 w

- s4 y  e1 W4 C, m$ b& u$ {該腳本支持3.82, `3 W/ Z  _: a! Y

3 F1 f/ {7 @7 q" `: }下面是圖檔,要塞在Windowskin下( v& _# a( X2 G  R4 j' d4 l9 Z. R4 r# }

- u/ t0 r2 T  d S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) 5 R6 |! i3 e6 G6 D' C; S" z

6 E' V* Y2 \. l1 v4 x9 ?
3 ]$ Q/ K1 e9 L* C* {0 Z
3 _' w& {$ Z, r

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
: q5 v7 P$ d5 {4 x+ T9 C结果尝试刷新了一个已经释放的图形6 H: m4 B) g4 @4 d0 B/ j
* I. m/ q( @( n8 i3 G  L
4 V1 j1 T6 ^6 o7 n
' g' y- [7 m4 X8 w, l; n* p3 d
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    # _+ N, X& r. {3 k6 h
复制代码
不要后面那个条件貌似就没问题了。$ y% \/ @' j' h' n; a

6 P; z9 l' `$ y$ K
' f0 ~3 l" w% B7 `! I  Z5 ]# h
3 D% Q6 O( y0 b
1 |- ~$ p5 z$ n( j$ P* E+ t: _7 D
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
1 A3 g! c9 _4 |) m9 q& _6 T貌似是释放的条件不合适6 p4 e2 ]: X& z; w" T& L# ~# A" v
结果尝试刷新了一个已经释放的图形
% R! {- X1 I& A! h
把後面那個條件弄掉後,的確沒問題了# B2 ?  R0 J1 t# ?
目前從關頭打到關尾結束都沒再彈什麼錯誤8 D6 C1 K: Z# W3 f, R
非常感謝
8 e# |- K* d% J5 R- t' d
" a4 ]- D9 |6 a- }% v5 O不過我是參照著別人腳本改的5 V8 [: i9 n- g4 a. X# T
他寫的條件式也是那樣,但我用他的沒什麼錯誤1 X4 V, L1 e& t1 A4 j- x0 l
不知道是怎麼回事
4 M. b- {% x; `( @/ f0 Q是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的- `+ B/ I1 |( i2 O" X" N* `
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events# T& ?$ }5 g/ I: y3 e
嘛..这个数组吧..我在以前试写队友的时候关注过一点: u; j. |- Y; R# A/ u/ u8 o# q
不知道XAS内部对它做了什么手脚还是为啥,
) Q. x5 y7 v4 s总有那么一瞬间,没有被消灭的敌人事件也变成了nil& W- C1 E' Q! F7 v- D. o4 l
. [% N1 b" q9 _5 F% v0 u
$game_map.events.values[@enemy.id].nil?
8 A+ e5 s/ T" @, o2 i! _7 e& f& ]因此自然而然的返回true并符合条件把图形释放掉了
+ e$ t) z. W" B8 m8 J* P5 I! q# W6 V0 n' T: j! n
LZ应该有注意到吧,6 I: L/ e$ R* V
我测试的时候发现报错前几帧,图形会消失,0 f, u3 V6 f. Q5 `! [! X
应该就是“误以为敌人被消灭”了。2 p$ x* _4 N& R+ H
) ?  o; L) _# n) ^
受限于个人水平,至今无法找出$game_map.events的真相..
% N1 \7 D4 X. G0 q/ v
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
; ]: ?# H8 _9 @: K# x1 {2 W9 h$game_map.events2 h0 q' }+ ]3 K3 h2 u
嘛..这个数组吧..我在以前试写队友的时候关注过一点" P0 p9 |3 a) W' Z/ _- O/ p
不知道XAS内部对它做了什么手脚还是 ...
; I; D- J5 U  V6 \
當初我把那個條件式看了三遍,都不覺得他有什麼錯
4 y, k# U5 f0 ~2 n原來還有這麼深奧詭異的事XD0 N! J' Y6 T! Z3 Y, K+ {, P

, N" w% s+ ]; f4 G7 U9 z  `2 ]錯誤發生前的確會有圖形沒顯示出來; o8 m$ v! x4 Z7 a( v
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...2 D; M; u2 L* `& a2 s: d/ s$ D
沒想到居然是詐屍了XD
2 N" v5 G! @* q+ c1 Y# n
% l6 c3 l* k% }' a: {% m) c不曉得3.91有沒有修正這問題...
0 d* B; u& k) `) \( f2 R; S不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
- q/ l8 G* N! ^' h6 g# d0 Y
& U' t! {8 C' I4 Y的确- r( k0 H% Q+ c& Y* b1 Y9 u
用惯3.82之后想去整3.91觉得压力甚大..
. D( i. o2 y+ z$ U7 s* v干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。
7 {$ H! ?: e0 B6 _, u0 \* p
6 M4 u$ d! c# G4 ]9 K( f4 V然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-2-19 05:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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