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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
" p7 j% D3 {- e6 Y% A; `) E會在每隻事件怪物的腳下顯示: s/ V; E& j. d0 i! P
問題是不知道為什麼# v' h9 h: Q2 Q
有時打怪打一打會跳出9 w, ]2 g) C) J1 Z( m- V; S
---------------------------
6 R9 f3 ]7 M4 y" M$ N) yXAS  C) [1 D& Z$ H2 y5 h, l' ?
---------------------------4 M+ I3 j  x: r9 b" V
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。. l8 J- d$ ?  x6 {
( g' S4 [2 o0 I& W
disposed bitmap1 F5 K8 j' |; e. j$ U
---------------------------' |- L/ U4 {$ E" [  T) Y  z( N$ R
確定   . f: f# H# ]1 ]' Z9 f
---------------------------
& _; l( f5 O. u
, }! n; G6 u) O  j! {+ F, n這是腳本, W4 z/ B# D8 b& \9 W% _+ i8 ^
+ k# k2 X; t( r  {% P; O
  1. #===============================================================================
    " l  V- w9 S2 U4 [7 |
  2. # MOG - s Hud 1.0      
    9 }5 v6 c0 ]; Y$ K  {$ C! k6 O
  3. #===============================================================================! m5 n. q  ?0 I5 Q8 A' k
  4. # By Moghunter
    7 {8 X6 \" A7 P2 {# H: ?1 ~" Q+ s3 R
  5. # http://www.atelier-rgss.com% P2 p5 ]7 B, o
  6. #===============================================================================' J* k3 Z: S8 J8 w# N, L3 U2 Y. {
  7. # Translated by Calvin624
      j$ f3 r3 m% t2 L
  8. # http://www.xasabs.wordpress.com
    * L  a/ Q2 m- y1 c8 F, y& F/ q
  9. #===============================================================================
    9 i* U' l5 C: k2 [' x3 d
  10. ###############################-DESCRIPTION-####################################: |, u1 W& u1 p" [" v
  11. #===============================================================================
    & {; ^1 _) q/ @, d1 ]( s, c
  12. # Personal HUD – displays the HP and SP below the hero.) {: ]: P1 Z+ t' {% ]3 T
  13. #===============================================================================
    . D: w! Q( ]/ g6 F
  14. #* G9 n; h, f" @
  15. # Graphics required:
    ( _7 m. Z( Y/ d
  16. #
    ( Y  ^  f4 H* I
  17. # S_Border_HP_Meter.png
    , r6 k9 m( P+ x+ X3 b
  18. # S_Border_SP_Meter.png) M, e7 P1 D% U: q% O' _5 |" G
  19. # S_HP_Meter.png
    6 ?: [, W  x4 q4 `1 \! M3 p
  20. # S_SP_Meter.png8 b& E7 m2 j6 p) u3 b% Q
  21. #
    $ e+ _/ S) p$ Q/ E0 K  `% y' k" C2 j
  22. # All images must be in the Windowskin folder.2 n/ \' a6 E7 e) S4 _; ]5 l
  23. #
    . H8 N. C5 c, p% o/ s8 A& ]
  24. #===============================================================================
    4 t4 `4 i$ C% L: g4 v! D8 W
  25. module MOG) X' a- r7 I& ~1 J
  26. VISIBLE_DEF = false  
    " m$ p9 z: G8 H! b7 x
  27. # Show HP meter?
    " B' u( I, R- t
  28. HP_HUD = true: g3 Y$ {* x$ M! N8 E$ [' x9 F0 p6 v
  29. # Position of the HP border
    - y  z0 y# M% a6 e" k
  30. S_BORDER_HP_METER_X = -2
    . F. K- T4 v4 Z9 O$ M* i; j
  31. S_BORDER_HP_METER_Y = -2  
    9 B$ {9 c% i" X7 W, r% Z
  32. # Position of the HP meter
    5 S+ h& g. z4 _" y2 G  \% c- m: Y6 E
  33. S_HP_METER_X = 08 b: G4 }; r% s, ^1 E- c" s
  34. S_HP_METER_Y = 0" G1 W6 k, U' l# o, @8 H' v1 A8 `9 b
  35. # Show SP meter?- F: N3 M3 y! S( q
  36. SP_HUD = true# C% Q7 j9 u$ }+ \+ f! `" I
  37. # Position of the SP border1 }) \8 p1 [6 n+ q  o' b# u
  38. S_BORDER_SP_METER_X = 04 y0 K3 J: d* L5 q8 b
  39. S_BORDER_SP_METER_Y = 10 5 m1 |, ~' @: F
  40. # Position of the SP meter
    - s, _0 x* a3 x& _% Z7 n
  41. S_SP_METER_X = 0
    5 p! |+ A$ i- H  w* T: ^2 A
  42. S_SP_METER_Y = 10
    7 s0 p) |  F5 Z/ @. o
  43. # Switch to disable the HUD
    ) r7 J4 l4 r& X/ V6 {" z$ o
  44. DISABLE_SHUD_SWITCH = 5
    , Z, f& l& R1 ~9 x8 A! ]* |
  45. RANGE = 20
    9 E6 r$ T& U7 [, v
  46. end
    . b; F1 J* |8 ~* ~
  47. #===============================================================================6 U) L  y/ F3 z; P" c
  48. # S Hud
    4 |$ f3 V+ ?  x# |
  49. #===============================================================================, l$ R9 q4 A" R9 t/ N
  50. class S_Hud < RPG::Sprite' U* a) y1 p/ t0 D: h
  51.   include MOG
    5 b. a! U+ S3 Q8 e4 K' C: U8 c
  52.   #--------------------------------------------------------------------------
    $ t7 e  ?/ j9 b( H: z
  53.   # * Initialize
      e+ {. o4 R% \; ]3 N
  54.   #--------------------------------------------------------------------------1 T  S) B& Q9 e/ [. X5 O
  55.   def initialize(enemy,viewport)
    ( {  S; o% w$ S; F# u! Z
  56.     super(viewport)
    $ ^2 z2 e; c+ g- h7 {. `
  57.     @enemy  = enemy
    " L  j6 ]: t* o
  58.     @battler = @enemy.battler
    ! U# O" j6 y$ Y* {- c& U
  59.     @old_hp  = 0
    6 s2 x% \) G9 r
  60.     @old_sp  = 0# f; f/ `* ]9 `  C& ?, r$ y6 Q! x; B
  61.     @old_vis = false5 {+ g3 N8 J3 k# X
  62.     self.bitmap = Bitmap.new(100, 100)8 @% Q1 ^# ]. K
  63.     self.visible = (VISIBLE_DEF)#false. C; }4 L9 K& |, Z
  64.     self.z = 100; w% ]% ~( U/ V3 e: [) `8 j; H0 x4 n( D
  65.     #HP Border -------------------------------------------------------------------
    3 ]  Z1 ?# b' p, e! x  Q; g- p
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")' P# @* h: }7 p* W: k
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)  z' T. H) C5 ]- V5 |, K( f, }. D
  68.     @layout_sprite = Sprite.new- h& @% r4 O1 e9 E: o" A1 t* ~
  69.     @layout_sprite.bitmap = @layout_bitmap( R# H! ]0 j) @, ^- F- w* d8 n
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)( I, w0 m: v5 D$ q; `
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    / K; }2 _. U6 X( [& ~5 T7 Q! `
  72.     @layout_sprite.z = 5001
    9 P6 M$ ^0 ^# X; y* J0 v
  73.     #HP Meter ---------------------------------------------------
    8 N# j1 e7 F, ]" i7 q- T5 I. w6 g/ U
  74.     @hp_flow = 0
    ! Q7 a) B3 |* M* y+ u2 Q# ~; i
  75.     @hp_damage_flow = 04 q6 h2 ^9 |4 p- ]5 v9 @, o
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    2 y7 t1 D  D( e3 L( u9 B$ s- _0 p
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)2 }6 N0 b  O. t; X" h9 W& K4 l
  78.     @hp_range = @hp_image.width / 3* J+ j' C& W) C! g- w$ m
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  ) J! T! s0 ~" y' |/ a
  80.     @hp_width2 = @hp_range / 2' f0 A( o& n7 `! S! q
  81.     @hp_height = @hp_image.height / 2
    ! \3 t* X& a' o
  82.     @hp_width_old = @hp_width& \' y( d  f' e; E
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)+ C" v2 z0 j( }! v' E- `4 s
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) * a, _: x: }$ s( Z* K. Q/ X
  85.     @hp_sprite = Sprite.new; T& m) B3 F* }% X0 ]
  86.     @hp_sprite.bitmap = @hp_bitmap: y  F) N' a3 P- {4 ~
  87.     @hp_sprite.z = 5002
    % a- X' Y- {1 m3 m1 |
  88.     #SP Border -------------------------------------------------------------------1 H1 b0 z3 T8 v, o  ~6 V' ^4 ^3 a
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    , t! c6 u- e+ R- x* |
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    1 Y8 G% O$ m0 A- {4 o$ \
  91.     @layout2_sprite = Sprite.new0 }4 l8 `" I. ~8 o; x( t
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    3 ~* g2 H; L1 R2 Y. x+ r, N3 c- ?
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)8 U' z: s9 Z: J, F. I/ N+ H
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    " H" x1 t, Z( O9 W. }( a! F0 g0 i7 ^
  95.     @layout2_sprite.z = 5001    , W0 I: E5 {) w- p
  96.     #SP Meter ------------------------------------------------------
    9 X: V9 [6 ?( L
  97.     @sp_flow = 0
    3 R- I7 ?" m2 u% V, I! t3 X3 B
  98.     @sp_damage_flow = 0
    3 `* F& ]9 w# R
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
      U: D. p5 q  l4 P
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)9 g2 O$ C! h) z
  101.     @sp_range = @sp_image.width / 3
    & K9 I& x( [- \1 g% i8 r) M$ {
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  0 }8 `% V& b+ N1 x* I
  103.     @sp_width2 = @sp_range / 2
    ! B1 ~: j$ \) a0 J8 P% [5 N5 {0 W, ]
  104.     @sp_height = @sp_image.height / 2! K; O1 g" T6 I& P2 @! f1 ?# ?* W% B& G
  105.     @sp_width_old = @sp_width
    - Y% @4 g/ q. Z" v) ]
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)3 Z5 H% E8 i7 {/ i' s! j. W# E0 C2 v
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    , l" N% c! x# g2 W
  108.     @sp_sprite = Sprite.new
    8 f- v. Q9 K3 \
  109.     @sp_sprite.bitmap = @sp_bitmap, p" K0 g4 s& D9 r/ I6 V0 \( w: D
  110.     @sp_sprite.z = 5002
    * {  V) m' m7 J( L' P- \* x
  111.     update- I" @0 j& F  W0 @* X8 p( _
  112.   end# B$ u- k# y7 s
  113.   #--------------------------------------------------------------------------9 j. R9 z3 J* q) y" A$ B
  114.   # * Refresh
    8 U3 }5 e% S3 q
  115.   #--------------------------------------------------------------------------8 ^9 w# ~. q, R2 f  j. w. Y0 K
  116.   def refresh
    7 v' q; C4 A3 }. a5 J
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible. S! q& S( G/ L) p
  118.     self.bitmap.clear. \7 q$ N0 i! F/ x! e8 F; y" N- Y
  119.     @old_vis = self.visible
    ( f$ U: R# E6 f" k! y
  120.     @old_sp = @battler.sp
    4 {/ }; z' N$ O$ |- M4 x& _9 h
  121.     @old_hp = @battler.hp
    : O  W9 H% H# C% l# l+ W# k
  122.     hp_flow_update8 N3 L5 S2 `& G2 a) o
  123.     sp_flow_update
    , Z  ?; z  i* H# P
  124.     hud_pos_update
    & Q  I" a% {) G3 A" C6 d% ]
  125.     visible_update% p7 {$ f0 k& f: q) b
  126.   end2 q3 Y5 Q8 T/ \' D- K/ G& F
  127.   #--------------------------------------------------------------------------" ]' b& u6 P7 [9 t* F
  128.   # * Dispose8 w( v6 M4 P$ J1 @* b+ \2 y" V
  129.   #--------------------------------------------------------------------------
    5 {6 X. i7 H, f7 T
  130.   def dispose
    1 w6 W# Z& G1 D; m7 l- J
  131.     #HP Meter Dispose" F( J* Z# \- C# h$ K9 C6 e- ?
  132.     @hp_sprite.bitmap.dispose
    ) o9 V% }% Q* {+ ^, d& C  l
  133.     @hp_sprite.dispose! T& p" J7 i' `" C" }4 b" }& V+ t
  134.     @hp_bitmap.dispose8 q2 f5 s: g* @
  135.     #HP Border Dispose, J$ \0 h8 r3 x( C1 w
  136.     @layout_sprite.bitmap.dispose
    - R% w* q- Y& a1 h. p- ~1 t9 i
  137.     @layout_sprite.dispose1 {9 p/ r3 t4 i
  138.     @layout_bitmap.dispose; e! a; t: b0 Y$ t. c3 I5 Y
  139.     #SP Meter Dispose
    8 s: W* q' Y, U
  140.     @sp_sprite.bitmap.dispose: |. n/ ?3 m0 F# U2 s, X9 }# `
  141.     @sp_sprite.dispose* ]! v1 s1 n' P+ J. W
  142.     @sp_bitmap.dispose
    # R  {8 j& F  S3 }" p. G
  143.     #SP Border Dispose) f% N, |# t! q9 J) c% b
  144.     @layout2_sprite.bitmap.dispose
    2 G7 l' y' z" A9 K
  145.     @layout2_sprite.dispose! P" }0 I% @- `5 L% e
  146.     @layout2_bitmap.dispose
    ( R& F( K  H6 o8 s2 |+ s
  147.   end, w" l0 N# L# S$ K
  148.   #--------------------------------------------------------------------------
    1 [7 Q. H) D* t. Y% I
  149.   # * Update4 Y3 L8 h2 Q/ Q5 q8 S
  150.   #--------------------------------------------------------------------------$ M" V6 ~  u* I% |+ G1 h9 L
  151.   def update  O+ E. x! Z1 C2 D  J4 P
  152.      @battler = @enemy.battler 4 Y0 X5 t, D  {# R% I4 Z7 T' F
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?; [' f- c2 J1 o8 U4 @
  154.      if self.visible
    / q) P% M0 v  v: q9 T4 ~/ j9 U
  155.        refresh3 C$ h2 @  q" q# U' f& {
  156.      else
    / M  k' O+ T' c; Q0 W! Q$ [  j
  157.        self.bitmap.clear" M' V+ _/ ?& ?$ Y9 J, |
  158.      end# ]1 I; r: z3 U- L4 B! Y. g3 y
  159.   end
    * i$ _0 B' ~' w5 i
  160.   #--------------------------------------------------------------------------) g0 ?1 }- H& M' q# u# P  i
  161.   # * Visible Update6 t$ F; U/ z& a/ w( v
  162.   #--------------------------------------------------------------------------
    6 V: S- n+ t+ ?* ~
  163.   def visible_update
    $ j4 N. m0 G3 n7 L+ `) L
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true7 @4 e+ U: f, k
  165.        @hp_sprite.visible = false
    # h( \, I* \! P7 X; f, C6 _
  166.        @layout_sprite.visible = false
    4 o8 j+ S) R- I4 A. T/ y
  167.        @sp_sprite.visible = false
    : M" T; \( a9 @! o7 e- `2 E3 }8 ^
  168.        @layout2_sprite.visible = false  F( D9 _, R5 _0 F2 M( Y
  169.     else
    , b5 r1 M* s) J0 |& Y9 Z8 O
  170.        if HP_HUD == true
    & T4 B; [7 u+ f  M. X5 ^3 A
  171.          @hp_sprite.visible = true
    , |5 I9 V  }: F4 K% `4 m/ w0 r( {4 `
  172.          @layout_sprite.visible = true  J: d6 s" V+ m8 a* t
  173.        else
    ( k7 x6 m( N' A3 d9 b4 B
  174.          @hp_sprite.visible = false# M" L2 m. p$ W
  175.          @layout_sprite.visible = false
    0 G) H6 Z$ W9 A" X% t) L2 Z& w
  176.        end  ) U2 N* X3 D7 g3 |
  177.        if SP_HUD == true
    ) S3 |- M& J: j2 X* H7 |7 Y' Z- s$ ]
  178.          @sp_sprite.visible = true
    ( X  u: ^# Z( S  l! z0 J
  179.          @layout2_sprite.visible = true
    ( D7 b. A# g" a5 e" d, m% Y1 c5 z
  180.        else2 }& A: R' x$ H$ Q8 ?
  181.          @sp_sprite.visible = false" U" Y: J0 D# {9 z6 l, s
  182.          @layout2_sprite.visible = false
    8 l5 g& P) V  r' [
  183.        end 2 `1 T! A; b* b9 `+ ]4 L6 l7 l
  184.      end    j; t: J; }" X. x, h4 g( a
  185.    end
    " x* M% b; z! z
  186.   #--------------------------------------------------------------------------. i4 O- k3 K0 r4 \0 c- e$ e3 `* `
  187.   # * Hud Pos Update% |6 b+ }. D. m/ K: u( d
  188.   #--------------------------------------------------------------------------
    & h1 A6 i) G( S& ^2 O- ?# F
  189.   def hud_pos_update
    9 A, G) Z; |- D3 j% H% g
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    % y8 c, r1 r* B- s/ f; O3 M
  191.     @hp_sprite.y = self.y + S_HP_METER_Y    A* c- {3 b! ?3 A6 ^( B- V. |
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X. i# w5 l6 g, ?" V& n1 d
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y ' N. ?1 l+ h7 U- @7 b
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X7 V7 ]) _. v" n+ x
  195.     @sp_sprite.y = self.y + S_SP_METER_Y    l) {! o0 V( m' D$ w
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    0 r/ X, D# }8 Q& l' P2 E
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    . o* [8 [0 P5 X& M1 I" O$ U
  198.   end  
    - b( p# o: P2 D8 F+ ]
  199.   #--------------------------------------------------------------------------
    6 }7 z  U8 Q: G" B4 |' v+ e& `
  200.   # * Hp Flow Update* m: `! a5 _' I" U' P
  201.   #--------------------------------------------------------------------------( {2 K0 t: H; E1 h! t& A3 N
  202.   def hp_flow_update! L! f: d( Q2 c  A- [
  203.       @hp_sprite.bitmap.clear5 i. r3 g7 {. \. p
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    & _8 c0 {' N% V
  205.           #HP Damage---------------------------------
    $ ^7 K4 @+ g9 a$ G& l
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100/ A2 A8 v: \# m* a' l8 a
  207.           valor = 0.5 if valor < 1          " H! w* T" V4 q
  208.           if @hp_width_old != @hp_width
    ; Q7 V8 Q' z' M% a/ a/ s
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    . h8 H+ l+ _2 f" {/ N* ~" h* b0 S
  210.           if @hp_width_old < @hp_width
    / k) k. ^0 r) f% ?2 e
  211.              @hp_width_old = @hp_width5 G4 ]2 M' x5 M. ~
  212.           end      ; i0 O4 @" u! u/ E. |1 D
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    3 H- A$ d. l6 \1 [6 t  n
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       9 C& k2 l, h6 ~; C/ }, }
  215.           end        
    3 }, |+ k3 F2 z
  216.       #HP Real------------------------------------
    $ g4 f. D4 ^- ~4 L- H% Z
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    ) f- L$ O8 D( {
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    2 b: @$ B, ]8 L' j3 ]
  219.       @hp_flow += 2  2 H3 K& B0 O7 g) F9 s+ ^
  220.       if @hp_flow >= @hp_image.width - @hp_range
    5 b, E2 v, u0 y' e2 L( k; Z
  221.          @hp_flow = 0  # O) e  N+ ^/ n& h% f, @( h
  222.       end4 @! z* v7 M/ c) m3 R
  223.   end    7 ?0 R. \( Q* p2 w. u) S9 t
  224.   #--------------------------------------------------------------------------' Z1 V/ a0 o+ O5 L; p
  225.   # * Sp Flow Update
    " e0 U  T0 n9 C. O8 i
  226.   #--------------------------------------------------------------------------
    9 L7 ~, S9 J# v+ m1 t  x
  227.   def sp_flow_update- O# t9 {( j6 p4 [- C
  228.       @sp_sprite.bitmap.clear. t7 W' l0 {* j; n& p" P! @
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp / l  @7 ?4 Q: G+ f
  230.           #SP Damage---------------------------------
    + r* q* _/ ^4 {- e' p
  231.           if @sp_width_old != @sp_width: [) C2 @1 P2 `) j1 u
  232.           valor = (@sp_width_old - @sp_width) * 3 / 1008 T& c% N/ q6 ^' p$ s
  233.           valor = 0.5 if valor < 1              
    * p7 \# J+ i) B9 \& ?( q3 T8 l# Z
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  : B! X& ~* z/ f9 S
  235.           if @sp_width_old < @sp_width
    6 X8 ~% \2 \, C; W; F
  236.              @sp_width_old = @sp_width- g" H7 O: Z4 f( `, G
  237.           end      3 m- u1 N  N2 P% j* a  A1 g2 n
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)1 @* u3 B: q2 @3 S
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    : }+ x3 W' p, }
  240.           end
    , A/ q% ~# V( m  r5 @+ w1 ~& C6 r
  241.       #SP Real------------------------------------/ C4 I; l1 l  ?/ n" ?
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height): g2 f1 x$ K7 n$ Y
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    , C  M* q+ t8 G, a
  244.       @sp_flow += 1  / {/ M, S$ h9 e7 m
  245.       if @sp_flow >= @sp_image.width - @sp_range/ L7 s3 e& ]% |! p' {* W* E/ b# q4 r
  246.          @sp_flow = 0  
    1 X) y) P) j8 m! l5 G2 P: Z
  247.       end% w0 V6 ?  X4 J: ]% N8 }
  248.     end            
    ) X5 `4 r5 D! l3 b. w$ B/ @% b
  249.   end0 [4 ]& O$ Z  v
  250. #===============================================================================& v/ D# \: [2 k6 \( N% e& x
  251. class Sprite_Character < RPG::Sprite
    / `* E9 {: L6 D' q4 a
  252. #-------------------------------------------------------------------------------" {: W  _5 B; Z7 q: q0 h* t
  253.   alias :xas_emini_hud_init :initialize
    , ~" _5 n# n4 f% m: g/ P
  254.   include MOG8 x/ f; b" ?6 d: G4 [
  255.   def initialize(viewport, character)
    ' i, z$ i9 L+ f7 p
  256.     xas_emini_hud_init(viewport, character)
    9 M8 d  `" {* C3 O: C$ {
  257.     @viewport = viewport+ C0 j; H2 c4 c0 A5 K8 i
  258.     return if @character.battler.nil?; H/ N! u* g0 f' P3 ^
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    . ]" M" L- v$ d$ E* L# B, v+ n
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)* o/ y) t: U" Y3 s5 K( j
  261.     return if @character.battler.is_a?(Game_Actor). R4 I/ l0 y) e. @( v. A& F
  262.     @bars = S_Hud.new(@character, @viewport)
    0 F6 |" G! n% e% k" Q2 d0 h# B
  263.   end
    2 w1 t* r+ {; O4 _# u$ [" J
  264. #-------------------------------------------------------------------------------
    6 j$ @& t, \6 N. n2 [) H5 Y5 S
  265.   alias :xas_emini_hud_up :update' |3 p+ H; _$ B
  266.   def update) L; F, g- n2 n
  267.     xas_emini_hud_up, I8 |% ]6 `$ r4 d, m9 {& j- r
  268.     return if @bars.nil?) C# y. E2 B% ?7 ]" i- k: ~
  269.     return if @bars.disposed?
    3 V% c7 w  N' Y( L2 A
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    $ _: a0 Q4 F. V( K
  271.     @bars.visible = (dis <= RANGE). F- Q1 g* c+ {
  272.     if @bars.visible
    7 r1 @& L) b! b5 |( \0 h
  273.       @bars.x = @character.screen_x# - @cw / 4
    ) l" D1 j& b) n- _' b' ]
  274.       @bars.y = @character.screen_y# - @ch / 4
    8 q/ g. ~) {5 P
  275.     end
    9 u& ~; }0 L4 N, s; D! v6 p
  276.     @bars.update# r$ g; {. w. L( Z; e
  277.   end
    + f  t0 W* [- s- ^7 W
  278. #-------------------------------------------------------------------------------
    5 b% f* I: L3 Y9 r
  279.   def dispose
    ( _" r! V) t/ _2 K& W6 `
  280.     super1 Z$ [' m$ K* J# S
  281.     @bars.dispose if [email protected]?
    . h! N  m# z; v4 i* |* k8 x
  282.   end
    8 R  q# a* i  B$ t3 T* A8 Z
  283. end
    & i! L) }  [7 h, I- G
  284. : \6 z/ M5 ], C# h$ H
  285. $mog_rgss_s_hud = true
复制代码
$ v) M2 E0 j2 m& p

) r' e  c6 s: s. f9 |9 U
1 r  {) n) a& e* k- r上面所說出錯的203行內容為  J" u% Y3 z! u) w8 H2 x2 y
@hp_sprite.bitmap.clear
0 W4 i9 q2 s( H1 Q) [
: B: F  U  Q$ n0 g9 _0 j2 H! ~0 R想知道怎麼解決5 Q) }" f& }. F5 X# Q

  \- T! T. B- ]5 ^該腳本支持3.82& A7 d% l' \( {$ [2 @+ J

7 [, N5 j& \8 x7 K下面是圖檔,要塞在Windowskin下
4 _6 [, Z' b6 l! j& c/ ~  ^% m( x9 u% r( N7 [; v
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
$ e6 V6 }, f1 {* r# f# m4 U1 @% j7 l
- g7 g7 y, M" a6 ?% [* x0 q+ I' ?- E

, [" M( A; s4 x- r+ d
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适; ]1 Q2 i! @0 A5 ~% |$ s" t: e7 Y
结果尝试刷新了一个已经释放的图形+ R1 F! {7 @& E- {3 h" p
( s2 O  _/ n. B- O) ]
! p2 P/ N' T- |! `& T

. }2 p/ x& a0 `. V  ?8 n虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    1 O: q& S" d3 ?9 C% ?; E
复制代码
不要后面那个条件貌似就没问题了。
0 H3 D; K9 n9 H: ?" O7 |% _2 s5 H' {8 [$ n1 G
$ x2 b% q7 Q1 Z4 k" C
! I, B2 Y  w  R' X3 q2 t

# g7 Y: d2 v; b# W
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
" U* N9 `$ Z- q, G2 O貌似是释放的条件不合适
4 ^! I& n7 s; y: S2 A结果尝试刷新了一个已经释放的图形
  j7 i. M# g: P/ t+ r- I- E! {6 b
把後面那個條件弄掉後,的確沒問題了
# X+ H- [# [8 Z+ \+ Y目前從關頭打到關尾結束都沒再彈什麼錯誤
6 ^: V0 V& j, V7 l非常感謝: M5 k& H2 e7 }6 ?* @- ]3 E
6 Q$ Q  e, V2 A
不過我是參照著別人腳本改的
) v8 P& `" Y! u$ \" `他寫的條件式也是那樣,但我用他的沒什麼錯誤
' g% i2 _+ ?  E不知道是怎麼回事
1 B/ O- `  D/ @5 K1 O是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
# G1 h2 d1 D, Z我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
! d. f7 T+ s$ N  N" R5 }嘛..这个数组吧..我在以前试写队友的时候关注过一点
: j4 R5 e! N% A* U/ u不知道XAS内部对它做了什么手脚还是为啥,3 o$ z" q. w8 T# Z7 L% b$ C
总有那么一瞬间,没有被消灭的敌人事件也变成了nil5 n. v8 o, H3 X2 T7 e, U

7 V2 B$ u5 l) a% G! h' N$game_map.events.values[@enemy.id].nil?
5 ~7 O  `3 N1 [5 q7 t因此自然而然的返回true并符合条件把图形释放掉了
4 A9 v5 Y8 M  _
8 K  x) U# D0 I" x6 F! f6 Q' T, dLZ应该有注意到吧,
, N6 ]' h: J5 c& H' h我测试的时候发现报错前几帧,图形会消失,. b' \8 m# N" Q1 {& H( {
应该就是“误以为敌人被消灭”了。
: l* V! K: Z) H% P( a! N& Q- Y8 P9 C# n8 C* n
受限于个人水平,至今无法找出$game_map.events的真相.., n* i0 T& \3 q( L
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
+ f$ b% G/ K3 b9 J$game_map.events( d0 v0 ]. X9 [: Y* Y+ v1 t4 i
嘛..这个数组吧..我在以前试写队友的时候关注过一点4 |3 V1 C. \4 k' T9 A+ ^) E
不知道XAS内部对它做了什么手脚还是 ...
3 p" |% Z/ E  o' _; U, o6 ^
當初我把那個條件式看了三遍,都不覺得他有什麼錯$ X0 s+ W- ]6 G  {4 ?2 y
原來還有這麼深奧詭異的事XD
4 D7 s' S' s( D
- t. V. h" c0 @0 S0 ^錯誤發生前的確會有圖形沒顯示出來% `1 `( U  I+ D
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪.... p( S  ]) b* Q
沒想到居然是詐屍了XD8 n6 T3 P- i/ t3 ^5 V/ |
5 b* n$ z* O6 Y5 U% u- l$ h" ^7 ]
不曉得3.91有沒有修正這問題...
$ ]" @: k6 N) u" n3 G% ?9 W. v+ J5 m不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
" n3 M" {7 }: G, U' ?0 P' @3 _. O' E9 Y
的确
  x; C; j% h- N: r) W用惯3.82之后想去整3.91觉得压力甚大..
% @: p% M0 W# n! h/ h, E干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
14215
在线时间
22031 小时
注册时间
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”。
: x2 p: b* L8 V
, A) S4 b2 Z1 P3 Q* o然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2026-7-22 01:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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