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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條! T* q% g& F, v' w6 [, E
會在每隻事件怪物的腳下顯示
$ [  Z$ ~( i* D2 o0 p問題是不知道為什麼3 C$ X7 A# |5 Z$ O6 p1 G- i
有時打怪打一打會跳出: s0 y, V" a7 `
---------------------------& X( a, c" ]6 `8 |9 w
XAS7 l: w: S3 T: s* d2 C0 @
---------------------------
2 k+ n5 ?# R: e' ~: L脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。+ c5 K$ G; Z$ d% P5 z. M

4 t6 L/ `0 l) u+ T( Y! b! {disposed bitmap
( G1 [; W2 v/ j0 Y---------------------------1 |: s& V. X& G: M) b- K9 g9 s0 `6 O4 y
確定   4 X4 [$ ]/ }' [$ w
---------------------------
% u: l" [" f$ E, Z' G. x; E8 E3 j) N1 ]
這是腳本
! J+ r- g$ W! x4 r9 x# X. A6 v: u
+ W0 O) `$ |2 f1 c8 k! ~: B9 P6 Z
  1. #===============================================================================1 J% Z  [! ^! M
  2. # MOG - s Hud 1.0      
    ( L/ L" v: ~. A+ h2 B
  3. #===============================================================================
    & d' e: s; `( _* q3 d6 `2 Q! C
  4. # By Moghunter 1 [, G5 L0 {- C, ^! d
  5. # http://www.atelier-rgss.com
    3 s  L! z1 t, \) p, c3 _  U3 j
  6. #===============================================================================8 u! f$ p0 ?% X. z. K4 V
  7. # Translated by Calvin624
    ; K0 @' r- {. g( ?% s9 D1 B9 M2 ?0 U, a  ^
  8. # http://www.xasabs.wordpress.com
    ; Z1 P3 f; t$ ^. _1 ]1 U1 q: D
  9. #===============================================================================
    1 k+ O! A- ?$ `
  10. ###############################-DESCRIPTION-####################################+ ^3 Q0 E4 f4 e, x
  11. #===============================================================================6 Q% l6 `1 L4 i* E2 k; A
  12. # Personal HUD – displays the HP and SP below the hero.% E3 f/ j% o! T
  13. #===============================================================================; P$ P) w- T4 Q! d7 n6 s+ o
  14. #
    4 J. L+ M+ H3 M3 F& s
  15. # Graphics required:
    ( V. d. j9 b; E+ l6 N
  16. #
    & L3 N: f) x5 f$ j, `' L# S
  17. # S_Border_HP_Meter.png
    6 f. x. k+ O# S
  18. # S_Border_SP_Meter.png* O7 w! D/ v! h$ B* K8 D0 P  `+ o
  19. # S_HP_Meter.png9 H8 }# M: b; b( Y4 u/ @" }/ w
  20. # S_SP_Meter.png  c) e6 C2 u! [5 E8 F
  21. #
    7 J& @2 m8 v% s, u# l1 D- K! Q
  22. # All images must be in the Windowskin folder.
    $ X7 c/ V0 S$ a/ ]- q
  23. #$ m7 S4 n( y' J) A( a0 `3 ~. i* P
  24. #===============================================================================
    2 R0 d. r. a3 M3 \/ c+ w
  25. module MOG7 b0 @" Y) w( z7 ~7 t" K; _( W
  26. VISIBLE_DEF = false  ; _% P: N* A) D1 o* }7 b1 D
  27. # Show HP meter?: Z8 Y  ~3 K( p% u8 B
  28. HP_HUD = true& t  [5 B( W2 c( K& q/ V
  29. # Position of the HP border3 L1 x9 ~  G: Z+ O# {; ?
  30. S_BORDER_HP_METER_X = -2) {2 ^( a( Y! D( i
  31. S_BORDER_HP_METER_Y = -2  
    1 f4 I. F4 }; ^) q, R+ q
  32. # Position of the HP meter# w" j; ^. V) ^, w. @; i. P
  33. S_HP_METER_X = 0/ C5 ~) S) t3 [2 l9 U
  34. S_HP_METER_Y = 0
    ) ^5 l) }. F$ \& n* u1 l  q
  35. # Show SP meter?5 m2 k/ L. k4 o: Q' B" v
  36. SP_HUD = true4 h# m0 Q! G1 l$ T% ?  P5 x' h% x$ ?
  37. # Position of the SP border: X. q' ?, ~5 n7 I" Y% n
  38. S_BORDER_SP_METER_X = 0
    / l8 G8 v3 K, I- H& F7 I+ u
  39. S_BORDER_SP_METER_Y = 10 + N% i) k7 s# X/ [7 d$ p; z7 X
  40. # Position of the SP meter8 B# b7 @+ I' i3 a' n2 J3 s4 L
  41. S_SP_METER_X = 01 [/ ~- Q. C; X* s
  42. S_SP_METER_Y = 10# v) ?, p3 C6 N: w" M( d) `; D& T
  43. # Switch to disable the HUD
    7 x- s, J. h8 M( t
  44. DISABLE_SHUD_SWITCH = 59 N( r% s# }4 [2 P: l) [8 `% j
  45. RANGE = 20" N! I, s1 y: }7 }' G* |0 B
  46. end
    ; }/ Z: U# F# p. g
  47. #===============================================================================4 F% H. f; V7 S) G: r/ }
  48. # S Hud5 ^, b% T( ?% L+ L% {
  49. #===============================================================================3 t6 l) F6 O% p+ D! A0 b% n
  50. class S_Hud < RPG::Sprite
    ! Y2 l8 U" g  s$ K; p2 a/ ?8 B" P
  51.   include MOG' Z( |: A) k% Y- i# Z
  52.   #--------------------------------------------------------------------------
    / [( A4 F2 e) T  p- m/ R
  53.   # * Initialize9 \1 d9 k- i( ]5 t% J  D
  54.   #--------------------------------------------------------------------------" R& `  x! x0 Q% g1 A  }
  55.   def initialize(enemy,viewport)
    5 k) b) z3 y6 `4 A& p5 R) O& R
  56.     super(viewport) 5 U# ^1 X* A2 Z$ N
  57.     @enemy  = enemy
    # L+ }# |4 r$ `" W2 w9 |; b
  58.     @battler = @enemy.battler( X4 x# x9 ~5 D% }6 h
  59.     @old_hp  = 0
    $ z0 p5 ?8 r( D$ C
  60.     @old_sp  = 0! r! N8 E" B- m3 _
  61.     @old_vis = false
    % A0 A4 Q, P4 k* W% D" S5 U
  62.     self.bitmap = Bitmap.new(100, 100)
    0 Z+ U" |/ |5 g" T! X
  63.     self.visible = (VISIBLE_DEF)#false
    ! _( _! a& R* y
  64.     self.z = 100
    5 n7 u! f/ ]2 ^: d. v& A% j; {5 V9 P7 ]
  65.     #HP Border -------------------------------------------------------------------/ B. u+ T# F7 ?" P  l2 N% J2 n
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    3 k3 z# J, Z& l
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)5 e8 x+ B+ Q9 S# P0 T0 w: F
  68.     @layout_sprite = Sprite.new: \5 c9 _2 b$ c' f% t6 V4 t
  69.     @layout_sprite.bitmap = @layout_bitmap+ J6 r, }! I9 Y( ^' X
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    " ]( [5 Z5 G; c9 T
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    1 g4 P+ |2 q0 h# p& N2 ^$ X4 f
  72.     @layout_sprite.z = 50019 x! L  x8 }  Z
  73.     #HP Meter ---------------------------------------------------
    ' f) B. O9 i4 H) z: ]" ?
  74.     @hp_flow = 0
    ! s7 v/ g2 J4 `& z5 b+ j
  75.     @hp_damage_flow = 0
    ) R8 ]! V( ~4 U0 |) ^) C
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")+ w; C$ A- [7 T
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)# M% F( x; z- G3 b0 s
  78.     @hp_range = @hp_image.width / 34 r. i) o; {1 \$ I: C
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  2 S$ M- P8 v" b2 m6 w7 b7 I
  80.     @hp_width2 = @hp_range / 2
    ( i0 ^3 b' q* _  m* q/ w, z& }
  81.     @hp_height = @hp_image.height / 2: ?  O; T3 b! N0 p) ?
  82.     @hp_width_old = @hp_width
      G) a7 A9 j# e! G5 c# }9 o
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)& j# O; v* ]) [, s6 P  ^
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) ! ?% z! e" T& d) [
  85.     @hp_sprite = Sprite.new
    5 Z% K0 b6 b. f+ \4 @
  86.     @hp_sprite.bitmap = @hp_bitmap1 |: ~: ^( X" e$ r6 l
  87.     @hp_sprite.z = 5002
    / P2 B( q! p/ k
  88.     #SP Border -------------------------------------------------------------------
    - D4 E( q4 e" f% R
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    5 j) C6 V% y- W* |5 A4 i) Y- s
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    ! z+ D7 F( z; r# P
  91.     @layout2_sprite = Sprite.new: P6 B* z; \' K/ q
  92.     @layout2_sprite.bitmap = @layout2_bitmap  j5 f9 {3 K  n7 L6 x: n8 ~
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)8 V- h- j: g0 R
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    # M( R1 ~- g( t4 V& g
  95.     @layout2_sprite.z = 5001    ( R( \# v' F2 N% C
  96.     #SP Meter ------------------------------------------------------2 v2 j% ?2 Q5 n, V7 w
  97.     @sp_flow = 08 W8 l( \. R; H. b
  98.     @sp_damage_flow = 0" U* O5 Q( Z) i. u
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")$ w* H! C7 ]2 c4 S$ E+ W1 f8 I" c
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)$ |" q5 u- v) X; D
  101.     @sp_range = @sp_image.width / 38 p6 X, }; v; n; b1 f* }7 l
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  2 }' `$ X# K2 L" e6 q( K5 ]
  103.     @sp_width2 = @sp_range / 2% R! }2 R& m) m& B( M, a  b
  104.     @sp_height = @sp_image.height / 2
    ( D# C: Z+ T* x8 E
  105.     @sp_width_old = @sp_width0 O, s: x8 u: d/ ]6 i* c& C
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    # X5 D0 Q% g: @) K( f7 t) ~2 W+ c
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)5 a3 s) r3 k! x
  108.     @sp_sprite = Sprite.new& x# Q5 x9 L) `9 z* S9 O. l, U( y
  109.     @sp_sprite.bitmap = @sp_bitmap5 k+ i) M' l. B6 ^3 T
  110.     @sp_sprite.z = 50027 ^+ A- a9 D6 D3 a" i" \* A
  111.     update
    7 v9 ]! s5 I, a8 \; h
  112.   end
      B: E. W/ T: H% P
  113.   #--------------------------------------------------------------------------  o% B. K3 V% V; V& z9 ~, H/ V
  114.   # * Refresh
    - k, e. r2 H" K
  115.   #--------------------------------------------------------------------------
    8 I" s9 a' V' g  E# ~2 G
  116.   def refresh- F- p: g2 S2 ]) {& e- D* W, i5 Y
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible; _8 s; _! C3 ^2 D  C6 w
  118.     self.bitmap.clear
      P% Z2 j1 T  y9 e& O" J
  119.     @old_vis = self.visible
    9 }" C+ Z7 m) w; o% f
  120.     @old_sp = @battler.sp* ~/ e" D8 S) _
  121.     @old_hp = @battler.hp9 o7 @! I* M! n' \  p
  122.     hp_flow_update' Y$ Q9 t# j: e5 T# R
  123.     sp_flow_update* h2 V! Z, c. X6 t
  124.     hud_pos_update
    ; s( H0 V% c+ |. Z) ^
  125.     visible_update9 m! p8 o: i% W3 M( N) d$ a6 N  ~* r
  126.   end
    5 I1 C! j, Z) `9 e( E  G- l- ~" ^' k
  127.   #--------------------------------------------------------------------------
    # a' ]' W2 P  f" P! k) Y# M' \
  128.   # * Dispose' i5 R" z3 ^/ a' u! i
  129.   #--------------------------------------------------------------------------
    - h$ v& u( j6 d8 f$ i
  130.   def dispose! g0 C, ?( s$ Q1 f9 b
  131.     #HP Meter Dispose+ p9 f, W5 p- p' s+ R& R
  132.     @hp_sprite.bitmap.dispose
    3 \) \, k" `( T9 b. d* Y2 A
  133.     @hp_sprite.dispose
    0 q7 B" T; U# R0 f$ }( s
  134.     @hp_bitmap.dispose, ~, L* ?5 j% M: U
  135.     #HP Border Dispose
    9 |; [( d4 l. M0 U( O0 t! v
  136.     @layout_sprite.bitmap.dispose& a& z9 x9 L/ C* b1 \* ]
  137.     @layout_sprite.dispose
    * c  d/ Z% X. Z9 n* y: m- d
  138.     @layout_bitmap.dispose
    * [4 \8 _3 w) j! @- s0 T
  139.     #SP Meter Dispose
    ! m1 ]3 [0 S3 l* X6 e. v0 |  g
  140.     @sp_sprite.bitmap.dispose  u1 Z7 O5 ~$ K  ]& h
  141.     @sp_sprite.dispose
    : G( Y3 g: h' h& Q. Q
  142.     @sp_bitmap.dispose6 W4 ]; C) i3 U$ v) W7 ^
  143.     #SP Border Dispose- h3 L* G' t/ j1 l1 F/ V1 [' G
  144.     @layout2_sprite.bitmap.dispose
    5 B  v3 ?- T/ O6 x7 [. R& ^
  145.     @layout2_sprite.dispose) ]- B8 v: _' n9 j- o( F
  146.     @layout2_bitmap.dispose
    * b7 w; q* l8 J. t
  147.   end" ~. T5 r1 t) \  H/ j
  148.   #--------------------------------------------------------------------------9 q) \9 K7 P) J, e7 o0 H
  149.   # * Update
    2 U7 s1 @' g) a  l* ]/ U
  150.   #--------------------------------------------------------------------------
    ; g4 ?5 P9 }! z. o5 Q
  151.   def update
    ' z6 {1 }1 ~2 o- f% f3 r; ]; ]$ J/ z
  152.      @battler = @enemy.battler 6 X6 g4 o$ j$ d3 C( ?& V7 T2 e
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    2 A* C' C! z7 _6 f+ L/ ]
  154.      if self.visible
    / k7 q% ^$ a( Y. q( j# ]& D  z
  155.        refresh
    ) Z4 I* z5 T8 a# ~% v/ A- E
  156.      else
    ) f8 T, J6 i* W) q$ {
  157.        self.bitmap.clear1 v" b8 s+ e- W( H' \
  158.      end
    2 M0 X" N  }' H4 ^
  159.   end1 w- v7 }  h* a' B4 c2 P
  160.   #--------------------------------------------------------------------------8 P& g9 O$ d9 f* d. K% d
  161.   # * Visible Update
    9 k$ T" {" k2 ~7 ^5 V
  162.   #--------------------------------------------------------------------------* d* M( s  F# _) p
  163.   def visible_update9 e& X+ A  ?( K) _/ U
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    & v( b4 I- v  }8 n/ I
  165.        @hp_sprite.visible = false
    1 o: T+ w7 a( Z( l5 ^$ a" K
  166.        @layout_sprite.visible = false
    . e. k; r+ {! `9 x; R
  167.        @sp_sprite.visible = false8 |6 w9 M% T, s
  168.        @layout2_sprite.visible = false
    6 \3 e# o. B5 {; ], b' t" K* a
  169.     else
    / C: ?, B# _0 u; B9 D
  170.        if HP_HUD == true- m3 V% I1 x0 X$ k4 ?. ~
  171.          @hp_sprite.visible = true" f5 e0 @8 \9 e% _* ^# s4 Y
  172.          @layout_sprite.visible = true
    0 Y. M' i1 q# ]9 ?* g
  173.        else
    - X: _( ^) I4 s4 f/ D
  174.          @hp_sprite.visible = false
    7 `& g) C0 l; S  N$ O7 K6 u
  175.          @layout_sprite.visible = false
    ; H! Q1 ], a7 j
  176.        end  
    . f, K5 n+ D3 u: n0 m9 \; i) K
  177.        if SP_HUD == true
    * p' |$ e& H3 s! q: v4 z  |
  178.          @sp_sprite.visible = true& F4 D. }" V) w: y6 M! s- B" t2 }
  179.          @layout2_sprite.visible = true5 v; z7 S: Z4 M# a" V
  180.        else
    ( k: C0 [+ t" I% R. k8 ^6 u- m5 _' A
  181.          @sp_sprite.visible = false
    , X# d  U3 E8 Z0 j1 O6 i# A
  182.          @layout2_sprite.visible = false
    % T# ^# s5 i' O0 H9 m# {
  183.        end
    % u7 k$ S3 @" C" B# N/ J
  184.      end  
    ) w6 b7 e% q3 U7 M
  185.    end 6 D+ g& F4 D5 N; \6 f
  186.   #--------------------------------------------------------------------------1 ?+ i2 I" s/ z% G  u" ~: H' `
  187.   # * Hud Pos Update
    % |  j: z3 S  N9 D
  188.   #--------------------------------------------------------------------------
    4 b/ d6 A+ u  P8 m1 e7 d. D- x# r$ q" L
  189.   def hud_pos_update3 b8 @0 u5 U: u% j& O' j
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X) Z" o" t' G! G0 t2 E1 D
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  5 u) ~; l0 \. ?; J& q6 i/ p( M7 T0 B
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X  o, C7 y) @2 r$ d/ [  Z. a
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y ! D4 p+ c* _4 H  m/ C
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X$ K2 d9 E4 p, y$ U% g+ ~' t
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  " p$ c# p$ R0 q5 x  @' I
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    . I/ Q4 T* O7 c( O5 p
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     9 o  M5 |  |# Y
  198.   end  
      X! G' O* C1 A; v' |- b; Y
  199.   #--------------------------------------------------------------------------
    ; e- V# F3 H+ X! N6 U" c4 ?6 {
  200.   # * Hp Flow Update0 n2 J& J2 o1 K, t5 U5 G2 @" E
  201.   #--------------------------------------------------------------------------
    # ^! `2 v- i( p1 b
  202.   def hp_flow_update
    - ?8 ^( E1 N8 E$ }# X
  203.       @hp_sprite.bitmap.clear% f1 @3 N, L/ F* x! h+ Q
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  / E; `! R" L' f" t
  205.           #HP Damage---------------------------------
    ( v# d" c3 Y1 o5 }. f* P' c
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    2 [8 p& g+ \# `; q
  207.           valor = 0.5 if valor < 1          # G+ S, @; H6 f% @
  208.           if @hp_width_old != @hp_width2 A4 }# B$ n5 S; |& s1 ^
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    / D7 a; t; m5 N  ?( @
  210.           if @hp_width_old < @hp_width ' i- _% m1 Q9 F3 o
  211.              @hp_width_old = @hp_width
    # z7 Q/ _! h# s+ z& [
  212.           end      
    " w# @. h! W5 e$ B, `
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    8 Y( t: d, A6 i+ ?# r$ X
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    3 @% V, F" E7 t9 Z+ A
  215.           end        * t2 X* _1 R" Z6 j/ Q9 F
  216.       #HP Real------------------------------------
    - q' x) V- T* \( p2 a5 A1 {: Z% f. ?
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    6 @6 ~  j. ~2 Y5 ^
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    5 E. h4 A4 M1 |! g. j* p
  219.       @hp_flow += 2  + v' e  k( p. {* l
  220.       if @hp_flow >= @hp_image.width - @hp_range
    ( D9 B" |7 z+ [
  221.          @hp_flow = 0  * T5 t& n+ x3 x" P5 }
  222.       end7 H5 v/ F7 ?# V2 I
  223.   end   
    ! T5 {% _- S# x, ^
  224.   #--------------------------------------------------------------------------
    9 p+ c: `, \' D  Q4 V) M# `
  225.   # * Sp Flow Update
      F$ p* J+ A7 e+ i: W
  226.   #--------------------------------------------------------------------------  \4 G% G/ s" M% o; R9 A
  227.   def sp_flow_update) h9 Z# ^1 S! B* A
  228.       @sp_sprite.bitmap.clear6 L3 n! {4 X9 m0 L4 q# c5 o
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    % x4 x: {  @5 o5 P2 d$ n+ a1 p6 q
  230.           #SP Damage---------------------------------
    5 E/ @- Y, x( s. {, J4 a- J
  231.           if @sp_width_old != @sp_width$ O4 P" L) {8 e
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100! r$ w3 z' K/ ~" u7 D$ y  O
  233.           valor = 0.5 if valor < 1              
    9 `/ F# I/ c  j; n7 g& ^/ n
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    4 n  ~2 s) f0 s2 ]0 H
  235.           if @sp_width_old < @sp_width
    ! ]7 ]8 Q" c$ }, \- O4 }
  236.              @sp_width_old = @sp_width* z5 w  M0 w. w2 h  H: h3 m
  237.           end      ( E6 ?: Z: ^: b7 i) E
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)  `- z' R' B8 `3 d8 b
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    3 ?* @5 v# y1 v/ N4 X! _9 \
  240.           end: Y$ G3 _6 q* Y
  241.       #SP Real------------------------------------$ B2 y% {0 W. G" e
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)! \0 j. m; K, i/ A
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    , R( m1 V7 M- {$ a. D  p3 |8 w
  244.       @sp_flow += 1  
    " h& J3 L1 b8 Q' F0 Y% a: c/ d
  245.       if @sp_flow >= @sp_image.width - @sp_range
    2 g# C- Q) }: P5 c; Z5 }
  246.          @sp_flow = 0  
    ( O( }$ V" k/ T' p4 @
  247.       end( V, C" P" P* w& U
  248.     end            
    + N$ o; R; H( }
  249.   end
    8 {  ~) A- l; F) ], o; w4 p$ b
  250. #===============================================================================- J4 @5 v+ t; c
  251. class Sprite_Character < RPG::Sprite
    ! T$ o  A8 o+ W1 P
  252. #-------------------------------------------------------------------------------
    * v- o6 n# p! n7 i* k% F3 M# e
  253.   alias :xas_emini_hud_init :initialize3 S0 Z' D, Y& `8 e) e. N+ G( a- f
  254.   include MOG! a& Y" T: h  k. w5 m
  255.   def initialize(viewport, character)
    - ?2 a, n; R6 o/ R% x& \4 f" g
  256.     xas_emini_hud_init(viewport, character)
    & ^+ e/ z9 |& a2 k! K
  257.     @viewport = viewport
    $ d+ Z; ?: l# g3 Z6 f! z
  258.     return if @character.battler.nil?' w: \- V) N* _/ }# b- Q0 T
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
      M" i  S' i/ M: z. \
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)1 q, O$ F4 r! q/ Y9 ?3 Q3 l
  261.     return if @character.battler.is_a?(Game_Actor)
    $ h9 v/ L  Y+ D# v: r1 k
  262.     @bars = S_Hud.new(@character, @viewport); A" A2 m* v# B
  263.   end- t0 s: m( I( |1 J- T# p# h- \
  264. #-------------------------------------------------------------------------------
    9 ^9 b) ?" D8 w; |* w( A/ J
  265.   alias :xas_emini_hud_up :update
    7 S; x# |  Q# Z, i
  266.   def update
    * y' C5 u9 R  F! u
  267.     xas_emini_hud_up
    " r6 U! S) v& {7 s
  268.     return if @bars.nil?3 p2 I7 u/ O( f0 [6 ^1 `; h
  269.     return if @bars.disposed?
    / S3 X5 E/ R$ i  K# e# r
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    ( h4 k# D- h' w/ i
  271.     @bars.visible = (dis <= RANGE)/ n2 Z8 x! {; L6 i8 j9 |
  272.     if @bars.visible' G5 C# ~7 `- @1 t! g3 V
  273.       @bars.x = @character.screen_x# - @cw / 41 _+ S; c0 l. P/ D7 c, Y( C4 j5 |4 _
  274.       @bars.y = @character.screen_y# - @ch / 4
    # v9 l5 `- ?4 g
  275.     end# G4 w; G4 n' T/ N' e' M
  276.     @bars.update. W& j0 J# x2 T1 \- S0 \6 x) g
  277.   end( L1 ^' m; f, ]2 A
  278. #-------------------------------------------------------------------------------6 `$ ]) M% P3 g# ]1 }
  279.   def dispose* X& R2 c" O$ H: _
  280.     super
    4 p4 l- n2 h: ]* C" S/ w" \- {
  281.     @bars.dispose if [email protected]?9 Z$ L/ W$ ?$ L$ f9 @& G7 R6 }7 F
  282.   end& h3 k) [( s) \; x) P) n- {
  283. end2 V! M9 I( E/ ?7 W8 @( J

  284. : j7 i2 b+ I& a8 v1 _1 h
  285. $mog_rgss_s_hud = true
复制代码

4 `7 e, [! E7 |
. m9 O9 V" n) e3 }( p1 M+ e- e
5 @, ?6 L& w6 T+ U; H) B6 k上面所說出錯的203行內容為6 \5 w- l& v8 G- ^- j
@hp_sprite.bitmap.clear% q+ u# v0 n% l) o3 X7 ~$ K

9 O0 H, ^& k1 n( C' h想知道怎麼解決/ h7 d% L  N; R" f! O* `+ d1 @

( E# K  w, m+ ]) M7 s4 p( W該腳本支持3.82
: b$ t& C+ Z: b4 M- e% b6 B8 o9 `% w, h+ `
下面是圖檔,要塞在Windowskin下
! A% S) V" X$ M$ R6 R3 _/ [+ M& |* x5 A; |
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
7 e! D- @) ]: j, {5 f
+ X5 Q$ i- H. X: M& w9 q7 ~
* Q" w+ L( _1 c' X* c5 ^* ?5 T# J7 D; c- j/ f& B' o3 ]+ ]0 ]
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
6 ]- ^, g- l, h; A% {9 @结果尝试刷新了一个已经释放的图形1 C4 j# Q9 v- X( F% N9 B6 G+ C
6 ]: ?' j5 ^) r) Q0 A' H
3 `4 c% I/ p1 J7 f6 c

" \+ I0 M9 g) ?* ~虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?6 f2 Q5 H; U5 K: ]1 _5 S
复制代码
不要后面那个条件貌似就没问题了。  T2 \& W- }* r/ Y

) J& C7 s* D% K2 t4 K: y2 k7 j8 K( P8 s: D
& \8 G  C5 b4 ~& |3 G, q7 Q+ Z- k

$ w: A7 h& ^& W- O
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
% z# r% D) B0 c0 b4 `貌似是释放的条件不合适
- n. _- O* ^- P) ]结果尝试刷新了一个已经释放的图形

, f+ D8 l; b8 G7 U把後面那個條件弄掉後,的確沒問題了* C: i/ U$ q8 b" D4 c
目前從關頭打到關尾結束都沒再彈什麼錯誤$ ?" J8 ~$ q+ ]2 o4 i5 `
非常感謝
4 G% s7 q! i3 v* W. l& }+ |7 R4 k& C% M2 e. }" ?& f
不過我是參照著別人腳本改的/ N. O+ X0 x* U: ?1 T+ ]) t- R
他寫的條件式也是那樣,但我用他的沒什麼錯誤
0 f7 w% t+ D4 L" D# M5 \0 v不知道是怎麼回事
- G  J- Y" W; s1 F是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
! p, i; g& x4 L我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events% R: O  D. D' r- a3 `  t
嘛..这个数组吧..我在以前试写队友的时候关注过一点
: _' B/ M: v3 X; A3 G+ U不知道XAS内部对它做了什么手脚还是为啥,
' E6 {# N0 F4 R% L总有那么一瞬间,没有被消灭的敌人事件也变成了nil
; ]/ j- g, m) P( _9 W9 |* n+ c) I0 `
$game_map.events.values[@enemy.id].nil?
: F8 P! C% y* z! Z( Q因此自然而然的返回true并符合条件把图形释放掉了
7 J; R& m0 s; [( o& u0 n
# L/ T6 p1 M* s2 x/ JLZ应该有注意到吧,
  e& ^' {+ [* I. k6 B" s( c; \! N我测试的时候发现报错前几帧,图形会消失,
( x2 s1 K3 u3 t8 H8 Z( D. m应该就是“误以为敌人被消灭”了。
8 x# l- ~! L# l/ ^1 Z& o% c
' S( H8 t7 i5 O  t受限于个人水平,至今无法找出$game_map.events的真相..
% D, X8 a( G  k- U' D
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
: ~& M  r2 i* [$game_map.events: c9 P9 \% G" u: c: N# v( ^
嘛..这个数组吧..我在以前试写队友的时候关注过一点4 d) [2 \5 \6 j! _2 `. s
不知道XAS内部对它做了什么手脚还是 ...
: k- J" q: U7 E8 F
當初我把那個條件式看了三遍,都不覺得他有什麼錯
  E8 H$ t$ {& Z( U5 w4 {  @原來還有這麼深奧詭異的事XD; R, Z+ H; d! O

5 ?8 l& M) c9 B錯誤發生前的確會有圖形沒顯示出來
& M  A  r0 Z, ~$ w; H2 \9 g不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
& ?4 O6 e( k" D. O2 I" Q沒想到居然是詐屍了XD
% ]& ]6 F  I$ Z) [$ M% I/ N
( \; y* Z4 L) x/ ]不曉得3.91有沒有修正這問題...
) O4 B" i# j- [1 N5 M5 ~9 N/ T不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。: R* m6 Q2 o1 ?4 N3 i
  ], Q7 m; ^# z* O9 t! d% Z
的确
" I3 q; U9 k0 i$ P4 j$ m1 X& d" p用惯3.82之后想去整3.91觉得压力甚大.., B- I/ Q% h5 C- q1 f" q
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。( i8 T! k) @' g6 I$ H
6 `; }% O& U; R* G3 L
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2026-7-25 17:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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