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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
4 e+ E. {$ |6 X$ M會在每隻事件怪物的腳下顯示0 `( m$ j* K! S6 j
問題是不知道為什麼: b$ x4 c' r* O, n
有時打怪打一打會跳出! Q3 e; x5 X; d) W# k/ \: L
---------------------------
; Q; D3 v  G: I2 g/ l( B8 XXAS6 i& a  p* F5 }1 d2 _3 q9 M% T! S+ p8 d
---------------------------
. t- c$ X8 ~5 m! d+ T脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
2 O$ }' m, a- [$ d" U+ n
/ X! l( P5 h) \# R4 T/ R- }disposed bitmap
" @+ k/ a' a3 C; _7 L8 l3 n0 R---------------------------
. I) k+ ]+ B" e1 D確定   
/ |4 `1 Z* l! f---------------------------% C  O. G' D) f/ Q
9 k4 w2 o8 ?5 j4 Z  N# F
這是腳本) ?; b4 w+ _8 `  n
" q; n/ Z- Y. q! Q, }1 k
  1. #===============================================================================
    / D9 w4 S) Z. q' r6 {+ c* y
  2. # MOG - s Hud 1.0      - H- ]; d! o7 [$ z' a
  3. #===============================================================================
    & q4 A9 d( f+ ]. a  N3 _0 M
  4. # By Moghunter
    % W+ d% u" ~- V( c' P
  5. # http://www.atelier-rgss.com* \7 n5 P: m6 h6 t5 A- L
  6. #===============================================================================
    4 j' O6 j8 N0 v9 Q; z
  7. # Translated by Calvin624
    $ ]& F' `- S2 |# L# u6 {- l
  8. # http://www.xasabs.wordpress.com
    ; c* x1 L# m$ H+ G9 R3 @
  9. #===============================================================================
    1 d  v3 W; k; T2 M5 |
  10. ###############################-DESCRIPTION-####################################7 d; e. t- J% L6 Y# p* p
  11. #===============================================================================: k+ {4 O3 n& i+ a2 c& ~2 G
  12. # Personal HUD – displays the HP and SP below the hero.% [. B2 U% ~; S9 W! j( R
  13. #===============================================================================0 n. R0 u4 H* E' @  P
  14. #1 N: n: v# _5 w: P$ x
  15. # Graphics required:5 R) L6 L0 [6 P4 X
  16. # 9 g$ a/ X2 u/ _  z) J0 o0 c
  17. # S_Border_HP_Meter.png
    6 ^1 |0 y/ r* ]  w. ?* {
  18. # S_Border_SP_Meter.png% E/ Y/ O2 N" E3 m* ?
  19. # S_HP_Meter.png+ c; [4 E7 ]4 F! k; I
  20. # S_SP_Meter.png
    # O+ m: [9 v, m6 Q$ I
  21. #
    9 h, M2 I' }! u& S# j' ~+ C( c
  22. # All images must be in the Windowskin folder.
    $ y* d4 P0 g8 s6 B, ~* z  r1 O
  23. #
    ( ~, Z9 z% x  R1 K
  24. #===============================================================================
    * `8 Z+ B2 F4 A# z
  25. module MOG0 T# q: h) A! }* V' h/ O6 I
  26. VISIBLE_DEF = false  3 [3 g9 G& l2 e, y& r$ [6 \
  27. # Show HP meter?  g' a, }0 b$ v  l7 G1 J
  28. HP_HUD = true
    / K: V2 m2 `# B4 q* D
  29. # Position of the HP border7 [$ B1 F) |8 D, I! |: G! {
  30. S_BORDER_HP_METER_X = -2) v5 p2 t. H2 Y5 [
  31. S_BORDER_HP_METER_Y = -2  
    3 [% l9 X+ v; K
  32. # Position of the HP meter
    ) B. t/ {+ Z+ _4 C3 t1 Y) {
  33. S_HP_METER_X = 0
    0 o/ ~& s1 y/ O' w& d0 }  y+ J; @6 D
  34. S_HP_METER_Y = 0* J* w! M8 H1 ]/ d% U
  35. # Show SP meter?4 d0 N* i, {4 l" i0 I5 i7 W
  36. SP_HUD = true/ G" @; t, e" V
  37. # Position of the SP border) h7 |, ^; g7 x7 y$ p8 n; {
  38. S_BORDER_SP_METER_X = 04 q; z) b+ m0 N9 ~% C
  39. S_BORDER_SP_METER_Y = 10
    ; V0 u3 L7 u, Y; n% A) F
  40. # Position of the SP meter9 ^7 ^# w( ^! Z: j
  41. S_SP_METER_X = 0
    1 F6 L2 C0 p# z6 L: [) Z0 s
  42. S_SP_METER_Y = 103 X: s7 M7 D$ [. F4 R
  43. # Switch to disable the HUD
    2 B6 g8 r/ w6 W) I. x
  44. DISABLE_SHUD_SWITCH = 5) a5 V( j/ |3 t; d$ B& ~
  45. RANGE = 20
    4 _* |# _2 z" h, F- V
  46. end
    0 t2 i/ u* f% N* ~; J7 w9 Q/ I
  47. #===============================================================================1 S4 S8 G/ @' y5 a* T
  48. # S Hud
    : `6 I. ]% g; K8 S4 X0 R; r/ s
  49. #===============================================================================
    ( N7 {5 K% S9 B' \% Z( F( ~: ]8 U& x( q
  50. class S_Hud < RPG::Sprite; k% b: S% O8 U& p2 o
  51.   include MOG
    ! a% t5 C. a# s% M' }/ p1 O
  52.   #--------------------------------------------------------------------------0 H) ^3 D' I7 V9 h2 V3 B
  53.   # * Initialize
    ( [) i! ^& e6 v. Z9 m! e; j0 k  Q' B
  54.   #--------------------------------------------------------------------------% u$ a' \3 k, d. \9 ~5 f' ~3 A- I% V
  55.   def initialize(enemy,viewport)
    : O9 W. ]4 U/ E1 k3 W9 @$ s
  56.     super(viewport)
    " ?& p; x/ w, I, D
  57.     @enemy  = enemy
    * b: i9 m' @; ~: i( M$ u' J1 Q
  58.     @battler = @enemy.battler
    # w. L8 d8 O1 y" s7 Q; g; u
  59.     @old_hp  = 0
    7 p: r" d9 p% A  c  J6 K  {0 E' b* c
  60.     @old_sp  = 0- {3 A, G& J  A' F: V
  61.     @old_vis = false
    3 f6 P3 G9 l# s  o. l0 ^# R
  62.     self.bitmap = Bitmap.new(100, 100)
    1 d* h/ x0 T$ ^
  63.     self.visible = (VISIBLE_DEF)#false
    4 F. ^3 _' P5 E( @4 b
  64.     self.z = 100
    0 x7 C7 J3 m& Q4 b/ Y
  65.     #HP Border -------------------------------------------------------------------
    8 G6 Q, K' ?+ I. k, e6 o2 _- u
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")0 @: X, z% f& {5 L9 f9 R  b4 P5 P
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)4 T! X6 o* h+ D& R$ y& @  ?$ r6 M
  68.     @layout_sprite = Sprite.new$ \8 k* v& P+ {! C( ~
  69.     @layout_sprite.bitmap = @layout_bitmap3 w* c% x' R; ]% L+ `2 z' L* x3 u
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)! J  I. ^7 ^5 V0 Q8 B
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      # I: x' ]6 M# J* `
  72.     @layout_sprite.z = 5001
    ! g* b% L9 b( a* G, W0 R
  73.     #HP Meter ---------------------------------------------------
    2 a1 g% R+ ~) G: n5 G
  74.     @hp_flow = 03 B3 }9 t+ Q$ `3 X" ^: Q! U
  75.     @hp_damage_flow = 0: t/ C: g1 i( }2 y8 i. g  ~
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    4 K4 C8 ?. q* |2 o4 t* G8 n
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    & k* [5 ]* _- k- K5 i
  78.     @hp_range = @hp_image.width / 3
    ) G: R: a  i8 Y% S# o- e
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    ; P. t0 g3 ~2 e( I  Z4 e/ B& x
  80.     @hp_width2 = @hp_range / 24 ?& ~' m: R' j1 @
  81.     @hp_height = @hp_image.height / 21 ]' l% s5 ]" b4 Q! _; R% {
  82.     @hp_width_old = @hp_width9 Z. j+ [! f# E6 G8 [4 Z& Y( q/ Q6 M/ Z
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    / N- c( w* a0 I# d* d
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    . n+ t3 F# b1 D) @
  85.     @hp_sprite = Sprite.new
    & c8 B9 D& w0 u+ m
  86.     @hp_sprite.bitmap = @hp_bitmap
    - W5 c6 u  Q$ S% O& V4 N7 w7 _
  87.     @hp_sprite.z = 5002; m4 _: T! Z5 X/ q& l' K; F
  88.     #SP Border -------------------------------------------------------------------" `& P( [5 J! \: z# p
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")3 i7 C3 [3 C! n4 s
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    8 o  i2 t, v2 [) y$ I
  91.     @layout2_sprite = Sprite.new
    8 E( Z+ R0 u  P5 C& [) o5 p
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    ) T% s& }% C3 ?# f+ [2 `
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)% j2 v& H" Z' X3 p- q
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      4 T4 f# c9 G* ]+ f
  95.     @layout2_sprite.z = 5001    & d7 {: x. s5 f+ o
  96.     #SP Meter ------------------------------------------------------$ ]! Z0 T2 I' C6 D. Q
  97.     @sp_flow = 0
      I+ `1 j5 g- X
  98.     @sp_damage_flow = 0
    ' n: P) F3 E0 l. A  x# g
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    + V2 l/ o$ j7 u: u
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    6 u9 L3 o' a* N7 i: l0 a& t
  101.     @sp_range = @sp_image.width / 3: q; R+ @  Z2 Z; Y, s) N4 Z
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  9 D5 u* ^$ V8 A+ E) f8 C
  103.     @sp_width2 = @sp_range / 2
    : Y) y( H. e' Q. `7 g3 l5 v+ x
  104.     @sp_height = @sp_image.height / 2
    # _5 i# m2 Z; U: p+ G2 J. {
  105.     @sp_width_old = @sp_width1 V1 n' `6 |2 V( I6 k, d
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)  x& C+ d% a* Y6 n6 {/ L3 k. h
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    6 n( _% T6 G0 ?, W
  108.     @sp_sprite = Sprite.new; W/ y' w! e  b3 ^
  109.     @sp_sprite.bitmap = @sp_bitmap
    8 T* ]  o) L' a, ]1 V& r3 w$ |
  110.     @sp_sprite.z = 5002
    $ |! b' q. z! b7 F# K
  111.     update! a+ t+ c$ g0 t% J* u+ p$ O
  112.   end9 _0 L+ ~: V1 U1 o" p- w
  113.   #--------------------------------------------------------------------------' A- h. |' B) s3 [  H1 f% \3 q
  114.   # * Refresh
    . d8 `2 o5 d1 R: B) |5 V
  115.   #--------------------------------------------------------------------------! E$ @, ?& t% S" z$ L* R/ v! u
  116.   def refresh( P0 N7 ]* B* n( m
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible8 ^( w, Y( [! d7 x% \7 q0 J% a" v
  118.     self.bitmap.clear
    . ]) _3 L' X5 [) @8 ?
  119.     @old_vis = self.visible  Y8 t% b- `7 N2 }
  120.     @old_sp = @battler.sp
    ! u% D1 R7 d3 a) ~
  121.     @old_hp = @battler.hp
    ( k* u: S; h" N% M' K+ T+ ^5 R' K7 r
  122.     hp_flow_update
    . s+ w% O1 m2 A& D( V. D! V
  123.     sp_flow_update
    + {8 Y: w; \/ h3 ^) x
  124.     hud_pos_update; F8 I( ?, N$ n3 o2 |
  125.     visible_update/ w( b0 K. S4 a
  126.   end2 g( T9 v0 T2 W
  127.   #--------------------------------------------------------------------------4 O& N4 a/ v: w. }. S* i6 C0 r
  128.   # * Dispose
    / ~1 q8 m# _: u* E0 p) {* m
  129.   #--------------------------------------------------------------------------5 x- K1 s0 _1 O! u
  130.   def dispose6 L% D0 M1 |, U5 [. t9 O; G
  131.     #HP Meter Dispose
    % U( s: e! s8 K9 A
  132.     @hp_sprite.bitmap.dispose
    9 p  g7 n- h* }) p# _9 d
  133.     @hp_sprite.dispose
    # ?  h7 C1 ]5 G& K7 }
  134.     @hp_bitmap.dispose
    2 @- S% T- y' e' q& z( G0 B3 W1 M
  135.     #HP Border Dispose: K/ T$ ~1 P$ @" o5 \
  136.     @layout_sprite.bitmap.dispose
    8 w' c* n& {* D: x' J: K
  137.     @layout_sprite.dispose
    ! ^- a* s' |+ h" G
  138.     @layout_bitmap.dispose; h4 I4 c* v( \$ [1 W8 J" {' T
  139.     #SP Meter Dispose
    " X! q* x, Y6 A, n: e
  140.     @sp_sprite.bitmap.dispose
    % ~8 ^, V" v/ h0 T
  141.     @sp_sprite.dispose+ [" N) h* _( ?
  142.     @sp_bitmap.dispose$ a" j# p/ k8 F- R
  143.     #SP Border Dispose6 _. `" t+ B% a1 N# |
  144.     @layout2_sprite.bitmap.dispose' n1 e: A6 C! Q# f8 W6 }" A
  145.     @layout2_sprite.dispose
    % Z# v+ h7 k. ]. A
  146.     @layout2_bitmap.dispose
    2 H2 ~% X1 n, q4 p, \- {
  147.   end
    $ g, L  W# j& }( n' `+ U
  148.   #--------------------------------------------------------------------------
    5 v8 C9 D3 [, k/ S. G3 S5 r
  149.   # * Update2 y+ ~2 B& M! }# I8 K0 {* g! B
  150.   #--------------------------------------------------------------------------) z1 H4 y; X$ S7 w. u8 [4 u$ J
  151.   def update
    2 [! r! F, B+ l. ~& s6 d2 v
  152.      @battler = @enemy.battler 5 F& M+ {8 A- Y! e" y, w
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    . S: Y  H% z7 B4 e
  154.      if self.visible
    0 e* Q; `5 Z4 e1 u1 S
  155.        refresh
    ; j) R+ \* e3 W. F) N
  156.      else1 d2 H9 V! E" N" j) e! c, p. K
  157.        self.bitmap.clear
    2 r" D+ H0 ]; K6 S/ m
  158.      end
    ) F8 |, c  ^6 x3 K
  159.   end
    ' p! j  Y2 A5 q  R
  160.   #--------------------------------------------------------------------------
    0 V0 w# \$ g- i" P, d
  161.   # * Visible Update# D) M1 \0 f* {3 k: p$ U
  162.   #--------------------------------------------------------------------------
    $ ^: i+ e9 d; _
  163.   def visible_update
    " _( U- l+ ]( r! f# i
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    ) W0 n0 t$ \8 @& x& @
  165.        @hp_sprite.visible = false
      }& k1 |! r8 U- S$ }1 Y) L$ F. s
  166.        @layout_sprite.visible = false
    . `4 m5 g+ a3 D2 t9 f' w% b
  167.        @sp_sprite.visible = false
    - d# k1 c" m" q# D/ x0 r1 B# Y* q8 k
  168.        @layout2_sprite.visible = false' z/ ~# O7 C8 b, v: y. W8 S
  169.     else
    * T. \1 k) s8 H  p% |
  170.        if HP_HUD == true! O( K# `2 ~7 r; ?6 M
  171.          @hp_sprite.visible = true
    " _& {1 [. X( P! N
  172.          @layout_sprite.visible = true/ q: i1 c- G% t' P* k% J& I
  173.        else! ]( `, E5 `. b3 N) y
  174.          @hp_sprite.visible = false8 d! R! V+ Y7 j) m: _; {. r
  175.          @layout_sprite.visible = false$ Z2 |1 r. V- |' r7 X) i
  176.        end  
    7 K7 K* j$ C2 J5 N4 o0 H
  177.        if SP_HUD == true
    7 X+ h* o9 I% ^( f- m; g, x0 o/ y
  178.          @sp_sprite.visible = true
    6 g/ P$ U! r, g1 j* A5 ~
  179.          @layout2_sprite.visible = true' S; L$ N1 e* v9 K/ c. N3 X
  180.        else
    ; y) E1 R( j& u* w
  181.          @sp_sprite.visible = false% B/ L: K. \+ j* _! ~
  182.          @layout2_sprite.visible = false. f/ U/ z0 Z! _+ e0 E
  183.        end 1 }/ U" a8 p1 A5 i
  184.      end  
    6 N1 e7 a# q+ K* s1 S' G$ `: I
  185.    end ' `$ a* D  F8 z: b7 P
  186.   #--------------------------------------------------------------------------
    ; A# j+ O5 ~5 y1 x
  187.   # * Hud Pos Update4 l" e! j8 }+ A6 S. l5 I& W( _8 Q
  188.   #--------------------------------------------------------------------------2 ^: p; E% c3 D, x0 x6 \8 l0 J
  189.   def hud_pos_update
    * Z! H5 q( b  E% e- r, N) k+ T
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X. R3 v. x6 ^) X
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  ! r0 M; C; x: x5 t. B) t: _
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X- k# M% y+ l) `* g/ z9 E
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y , o9 u& \- g2 v, M* B
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X6 d9 |% u1 l* k7 {
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  ) `/ w7 r, p' _0 }. y. p
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X6 T& W/ \5 E% ?2 [: t9 {1 c
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     / K# i5 t2 f+ o' k) ^/ @  z
  198.   end  
    * k& `& u" i. [! ~5 R8 ]0 B
  199.   #--------------------------------------------------------------------------
    ! Y& Z% E4 y. Z4 I
  200.   # * Hp Flow Update' K8 |* R. h3 {. I9 Q
  201.   #--------------------------------------------------------------------------
    , [5 h6 \4 U( ~: a7 T$ g
  202.   def hp_flow_update& m. R9 Z* L' r. A6 S$ h
  203.       @hp_sprite.bitmap.clear
    / T7 f9 U1 g* O1 `: y& s  ^/ B
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  3 U+ `# {* |& L5 o' d" W* D
  205.           #HP Damage---------------------------------9 v( _/ C- _7 }+ s
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    ; [( D/ X; w2 S# Z4 `
  207.           valor = 0.5 if valor < 1          : I) U  j5 H1 R6 i
  208.           if @hp_width_old != @hp_width% `; ^9 N8 S: E% B  j
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  + M# z3 l- R5 V! g. v6 p& q
  210.           if @hp_width_old < @hp_width
    # \; h! S' q" n0 |$ a4 u6 F
  211.              @hp_width_old = @hp_width0 b7 G. h. ^. {
  212.           end      9 Q4 S  ~: {8 F  @
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)) f$ f7 d( d' s* f/ G
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    0 a4 r4 R1 D5 s, w) f
  215.           end        
    + y0 |6 z7 t2 @/ h
  216.       #HP Real------------------------------------
    3 e5 m, K2 l7 B4 V6 P
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    & C! f) q$ O4 n+ [7 P
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          / `" D& T( C, S7 W; K
  219.       @hp_flow += 2  : V7 d- L2 v0 w. D0 s! H8 O
  220.       if @hp_flow >= @hp_image.width - @hp_range
    ! O4 ^: [" s. M& Y3 f8 C. Z$ q0 ]
  221.          @hp_flow = 0  8 F/ Q: K% r" A3 s3 n. B& q
  222.       end7 Z9 |) M+ [; e1 Z1 E6 v
  223.   end    1 d2 [! P) o" t! V- b
  224.   #--------------------------------------------------------------------------$ ?9 U5 W5 N+ E8 ~
  225.   # * Sp Flow Update
    ' {% d1 j$ v: _8 u. }  @
  226.   #--------------------------------------------------------------------------
    * m1 ^! a/ q; z+ O" _
  227.   def sp_flow_update
    3 `" M4 n" w- }5 p+ X" g( Q1 w
  228.       @sp_sprite.bitmap.clear
    3 q: O  q3 N8 \& V5 E/ H
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    & r$ D7 ?5 f; S3 E
  230.           #SP Damage---------------------------------
    4 i! ?* r* t) I, L3 C; v2 T$ a5 w
  231.           if @sp_width_old != @sp_width
    : ]3 o9 u5 t5 ~- X
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    $ W! x0 h5 n  [) j) i# l3 I' H
  233.           valor = 0.5 if valor < 1              
    1 `7 b# G$ `- [
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    $ r- f: _: b% h0 U2 O! Y
  235.           if @sp_width_old < @sp_width 9 u$ ]) I) t: W- ], G3 R
  236.              @sp_width_old = @sp_width
    # k& [& B9 ?" b3 ^0 u
  237.           end      
    6 S$ r' E9 |% _0 r
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)8 i8 K/ ^5 T4 n8 J: O2 L  I
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    ! V6 p, a: f! D0 n
  240.           end
    - F! {* ^( c6 k( W2 u2 |
  241.       #SP Real------------------------------------& m' J+ W: G# H" l6 D) l* _
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height). c4 @0 p# Q2 H2 |% i
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)' D( j+ D* ?8 N, H! ^; d( K
  244.       @sp_flow += 1  8 Q; I/ b0 O+ B  ~+ T% ?
  245.       if @sp_flow >= @sp_image.width - @sp_range8 u( A8 _# a1 f
  246.          @sp_flow = 0  6 G8 K2 }5 M6 Z- A
  247.       end
    $ l; |5 S0 w$ F8 M5 A
  248.     end            $ e$ [" V; |5 k" t, h( e
  249.   end" s1 S' b3 R1 w" W5 |; x
  250. #===============================================================================
    % u' [+ I: R: i# c. d
  251. class Sprite_Character < RPG::Sprite
    / i2 f) d: i  z$ `% ]7 A' q% t
  252. #-------------------------------------------------------------------------------2 n* {# w; g: g( C( Q! P
  253.   alias :xas_emini_hud_init :initialize) U! P! W. S' b2 [7 R& g
  254.   include MOG  k, Z: m0 C5 `8 F- `
  255.   def initialize(viewport, character)
    $ ]6 m) X4 y+ m- E+ U
  256.     xas_emini_hud_init(viewport, character)
    + i  ^: \& _1 e4 Z# X
  257.     @viewport = viewport
    * S" }5 w+ `- j9 P8 i' h
  258.     return if @character.battler.nil?1 K& ]. T' k0 Q/ w; x
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    $ `/ K/ L6 ~8 V0 |* l
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)' V0 F: c* i/ A* r; P8 e1 w) L0 o# G
  261.     return if @character.battler.is_a?(Game_Actor)
    + D3 i# t5 J# I  l% T# l
  262.     @bars = S_Hud.new(@character, @viewport)
    . R! l2 @! \7 g- i* c
  263.   end3 o5 u, N* U( F! a
  264. #-------------------------------------------------------------------------------, \* M/ K: h3 s  \' {$ s
  265.   alias :xas_emini_hud_up :update
    / v/ W# n( I8 A0 s0 F" `/ \# M6 r
  266.   def update, N8 e1 X. A! Z* j) m7 Q/ ~
  267.     xas_emini_hud_up2 x, O0 a. V- W$ N( U
  268.     return if @bars.nil?
    : S' I; \5 K" z" n
  269.     return if @bars.disposed?% d0 ]) z  Y8 Z5 ?) g
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs5 I9 s( o% G$ j. Q2 [' V8 Z' e
  271.     @bars.visible = (dis <= RANGE)
    " C+ X4 T+ x3 [! {. v
  272.     if @bars.visible8 h3 ^/ P% t. u2 R
  273.       @bars.x = @character.screen_x# - @cw / 4' A) L' I% b' T8 I" B4 f8 `
  274.       @bars.y = @character.screen_y# - @ch / 4
    0 s9 N* H. J  [
  275.     end8 ~  e$ `) J5 n, x: R
  276.     @bars.update
    9 |1 U) ]: w9 ]) S
  277.   end
    ! H5 x0 q8 F" V' j
  278. #-------------------------------------------------------------------------------( s$ `) Q* Z  w/ l
  279.   def dispose5 M: s/ N3 ^$ |
  280.     super$ J2 h- }7 ?: P( O8 ~& U, a# X
  281.     @bars.dispose if [email protected]?
      A5 N$ {4 ^& w% R* G
  282.   end& x2 g, l! `2 X; C. _# e4 {2 r
  283. end
    2 Q8 ?& i6 Z5 u. @3 w

  284. 3 w6 ^! B! t& V# B; ~9 i8 n
  285. $mog_rgss_s_hud = true
复制代码

2 ?4 K9 d) J( u/ j' U% Q, O; X7 w) p; u$ t
& n9 m" M7 g* X- l
上面所說出錯的203行內容為. a6 y- A( \- ], h$ I  M
@hp_sprite.bitmap.clear
/ ~  D7 X# O. o& R, c2 m' H
' G$ A2 e2 ^5 y% y/ P想知道怎麼解決
$ L  n4 Z$ H; [: n- C2 r3 L' ~$ J: L9 z
該腳本支持3.827 P8 o3 J' k9 J6 \4 Q

3 G% f8 C3 b+ R+ U4 [0 D下面是圖檔,要塞在Windowskin下- l, D& R; d7 p3 ~+ I/ k+ |  V4 O

3 \! B+ L6 ]& A* }! L' a" t S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
  K) |& K' S/ E) ]4 L4 o7 u; t8 P! ~
4 y" v6 ~- [) t) Y$ M8 O( |

& I; T5 W3 {  L1 b. J4 e; \

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
1 {' u5 |9 j5 H' S3 {1 v结果尝试刷新了一个已经释放的图形
7 U& D. e. }- C+ ^# \5 x  O  Y
# ^  J( s, P4 @2 O7 z% }- U4 t
9 |7 `4 @; I, f) M/ I* `
& m$ n( E) i4 `/ }虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?! G% s9 T" w, Y+ n% Z% O
复制代码
不要后面那个条件貌似就没问题了。3 r/ {& E0 M- L# e# c* X
1 _8 R8 T- }  T4 F
6 g8 e& U+ P! j: C' ]2 P& o
& w9 K. {5 A' \- v0 q( w9 B
, |1 x3 K, m2 g
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
477
在线时间
1785 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 4 n9 |" H/ j* }% ~$ |
貌似是释放的条件不合适
! C3 V9 j, D3 N# V/ a结果尝试刷新了一个已经释放的图形

4 P0 n, D: z" f* F把後面那個條件弄掉後,的確沒問題了
: a' f0 A+ w9 K6 M8 J: M- x目前從關頭打到關尾結束都沒再彈什麼錯誤
5 z' \, H4 ]/ j0 j4 ^非常感謝
+ q' l! H: ^; P6 d
4 p0 h) Y5 I8 k& _# N不過我是參照著別人腳本改的. a2 }9 Y; t: W; S0 R, d
他寫的條件式也是那樣,但我用他的沒什麼錯誤7 a# R- ^  H9 K9 N' P- \! W
不知道是怎麼回事+ L; D  ?2 B4 [
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
7 N# M# D. ^: Q我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
1 q( |( d2 b0 ^3 N+ ^+ f1 T# u嘛..这个数组吧..我在以前试写队友的时候关注过一点
+ U( j. f9 ~! T3 ^9 z  r7 s5 C5 p不知道XAS内部对它做了什么手脚还是为啥,  \1 p- i; w; k
总有那么一瞬间,没有被消灭的敌人事件也变成了nil3 e2 I* v: m5 }1 M- T9 x

9 `, d1 {6 v4 C" d+ }1 P$game_map.events.values[@enemy.id].nil?0 Z2 ]; o4 B* B
因此自然而然的返回true并符合条件把图形释放掉了
" u: r' m  Q* V7 Q$ L9 X
; `& ~) a4 H  d/ y7 T, {LZ应该有注意到吧,
( O6 w7 W2 l1 X& L. I6 m( e' |7 x我测试的时候发现报错前几帧,图形会消失,
: X! m3 j" h( |0 a' A应该就是“误以为敌人被消灭”了。
. q6 q- j2 [! _, B* [$ X$ b2 L6 W) W4 _" N) f
受限于个人水平,至今无法找出$game_map.events的真相..3 K) A. p3 d/ }$ F* z5 T
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
477
在线时间
1785 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
6 K3 F& C$ a/ d2 l$game_map.events9 M; i7 a8 j1 G3 E/ _/ e
嘛..这个数组吧..我在以前试写队友的时候关注过一点2 @, R$ d7 F2 v$ B
不知道XAS内部对它做了什么手脚还是 ...
; a! Q: o; s$ X9 E
當初我把那個條件式看了三遍,都不覺得他有什麼錯7 A, L/ E; `6 K2 q. R
原來還有這麼深奧詭異的事XD' P1 j0 x4 M- G8 p6 }3 X
- p9 s8 h3 R- y" {
錯誤發生前的確會有圖形沒顯示出來
% j1 T' U' j8 x: r. u; r3 @# K3 Y不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...! B1 A6 U+ s  {% E
沒想到居然是詐屍了XD
+ X# R: q5 P/ _
- A. Y& }" q1 [. k8 p' H不曉得3.91有沒有修正這問題...6 g# Y! E* X2 W# {. s: M( y, r) X
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
% Q0 W3 w4 c! Y
) k2 P# d3 ]& R( M2 \+ \% l的确
! `+ v/ n8 j& q7 x4 T1 [% r, G9 Y用惯3.82之后想去整3.91觉得压力甚大..
1 \' F% y+ g! m5 G* ~9 z0 D! y8 G干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。9 j* n- W1 [* E# E7 O9 q% r
1 U+ K( d; J" d* d1 g
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-7-27 05:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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