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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條  m9 N7 s2 C% x) M
會在每隻事件怪物的腳下顯示! t9 E" q% W, `0 C. b' {  B# A
問題是不知道為什麼
& }! I) A! o- v; `$ G& J有時打怪打一打會跳出
; g' d+ P: g' E5 {) V& j/ H9 [9 p---------------------------
* R' `3 e' A3 EXAS* K$ D. f7 g! p- D
---------------------------
2 b$ U+ ]' k3 g+ ^7 w) k脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
( k" V, o! J6 k" i# x+ Y7 N' U" g/ k2 L. S! Q
disposed bitmap4 D5 g& a) @5 b: a
---------------------------
6 [5 \  ~/ ?0 k' c3 ?# F. [  h確定   
, N1 y$ `( X& _" w6 x7 I5 P5 j---------------------------
/ ]* u! v" t7 {' |  r5 X4 K
# }! g4 Y% f% p4 f  y! ^/ D這是腳本
: @: Q8 s( t. ]$ ^, L. M$ _% y. T* n# K( N9 p0 H
  1. #===============================================================================
    : m: V; X5 n* }! U
  2. # MOG - s Hud 1.0      
    / _" y/ w4 H$ q  t) U8 [
  3. #===============================================================================3 `2 ]5 [5 B9 ~6 Y5 s+ ~6 x0 L
  4. # By Moghunter 0 P: j- z- E' [& A3 I' _
  5. # http://www.atelier-rgss.com. q* c* n! {/ @/ V- l# o
  6. #===============================================================================
    5 {( Y/ q0 T0 ]6 S5 N& _: K9 M
  7. # Translated by Calvin624
    4 f+ _$ x1 y# b9 Y
  8. # http://www.xasabs.wordpress.com
    & u8 ?/ Z. ?' H7 g
  9. #===============================================================================
      d5 y- G1 ?8 z1 s( {
  10. ###############################-DESCRIPTION-####################################
    , U8 R0 `1 Z: v& P- i
  11. #===============================================================================  o, Z$ N1 b- Q9 I
  12. # Personal HUD – displays the HP and SP below the hero.: {# @$ X3 s3 S2 W
  13. #===============================================================================4 i2 @1 P, ?; m3 d1 j" z5 X( {
  14. #
    $ C) C3 D% H" H8 }9 j/ W" e; I5 f
  15. # Graphics required:
    + a( B+ _& R) b2 i3 h& [  ^
  16. #
    - Q* [* b# q7 Z: M5 q! e/ W5 c
  17. # S_Border_HP_Meter.png" o# V' L$ N6 D  b% t( e
  18. # S_Border_SP_Meter.png7 _' C3 ^8 ^! o) h* L
  19. # S_HP_Meter.png  z7 N8 Q# T# N# D) J7 l( d
  20. # S_SP_Meter.png0 i/ w) m2 y4 h; F% b
  21. #
    # m" I% X1 R1 x2 P7 ~+ @! H" B, N8 k
  22. # All images must be in the Windowskin folder.0 T! Q- I: B# z4 L: F( W$ B
  23. #+ K8 D! z% Q. `  g
  24. #===============================================================================
    . u5 A- i6 o/ m+ C% `( _& z6 Q
  25. module MOG* \1 q1 c0 c' R) [9 u* a
  26. VISIBLE_DEF = false  
    : J: l( Y  N! O6 M
  27. # Show HP meter?6 v7 }1 H% N6 y# B  `. ?! A
  28. HP_HUD = true2 P7 T: Q4 \6 ]# M
  29. # Position of the HP border- W- O- E9 Y3 M* Q: K
  30. S_BORDER_HP_METER_X = -2- G& h2 }1 V8 O: J: y/ |" _3 x& T
  31. S_BORDER_HP_METER_Y = -2  
    6 J9 ?# V( F8 R  e
  32. # Position of the HP meter
    4 T* N& g( ?  E
  33. S_HP_METER_X = 0! k; C  e! f  o0 J3 E( u
  34. S_HP_METER_Y = 0. O4 r# i  c2 X6 f) P3 k
  35. # Show SP meter?
    5 W# J8 I3 W9 H' l# v
  36. SP_HUD = true
    * S/ J5 z. V! u
  37. # Position of the SP border8 d; A+ T9 o1 o% M& ~4 {
  38. S_BORDER_SP_METER_X = 0& X7 J$ N' V6 ^& O
  39. S_BORDER_SP_METER_Y = 10
    ( z; z% ^0 [( q3 G7 O2 A7 U
  40. # Position of the SP meter  L& U) ^4 z7 l/ g+ x& ^8 i
  41. S_SP_METER_X = 0
    : m# j" F8 N$ V
  42. S_SP_METER_Y = 10
      q0 v: Q7 y: s! @$ W  s9 {
  43. # Switch to disable the HUD! l& H, C& q5 b7 B
  44. DISABLE_SHUD_SWITCH = 5
    : e3 D% l) u" Y' m$ q
  45. RANGE = 20
    4 e8 m! F3 e: w5 ?; ^8 k7 a7 t4 p
  46. end- Z* e9 E: g( o" w/ o
  47. #===============================================================================6 X7 p; Q" [$ j1 P* Q5 K- C: j
  48. # S Hud
    # Z' u. N% F0 e& o! ?. J$ h1 T
  49. #===============================================================================
    " x7 m# v3 L1 E+ \8 h- [7 g: H2 k6 g
  50. class S_Hud < RPG::Sprite
    7 n3 o# ?7 C  ^6 l# M
  51.   include MOG6 i6 e% [) `* `6 O& g- w. m- C( O0 ~
  52.   #--------------------------------------------------------------------------
    0 P: `4 A- W* c$ a% y
  53.   # * Initialize
    # b  Q1 z, D- e, p
  54.   #--------------------------------------------------------------------------
    , l6 p) p9 J8 r
  55.   def initialize(enemy,viewport)6 P8 v' P+ T7 ~/ a$ A3 M. U
  56.     super(viewport)
    7 `6 }6 x4 t4 u6 _5 N5 O3 L" Z$ x
  57.     @enemy  = enemy5 K3 G) p. J5 n2 y" [. |8 k, u, ]
  58.     @battler = @enemy.battler/ p' R* l7 H. y2 N7 J3 D- @) V
  59.     @old_hp  = 0! j0 ^3 e# L( ]6 c( `2 S7 P( s
  60.     @old_sp  = 06 T' |3 t% U! t# ]! ~0 X
  61.     @old_vis = false3 R4 H+ n, n8 N9 R
  62.     self.bitmap = Bitmap.new(100, 100)
    ( z  a& Y, k  r( N0 X+ Y* `
  63.     self.visible = (VISIBLE_DEF)#false
    ' H1 m) `: m) p, z; ?0 l
  64.     self.z = 100' I6 g* A0 D. N) t9 e# [* f: e" m3 ]
  65.     #HP Border -------------------------------------------------------------------
    5 o0 W  t, n8 J/ B1 D! {3 {
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter"): @$ B4 l0 j; K& d/ Y( [/ H/ o! d
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height). |) G* ?& s# S9 {& ~
  68.     @layout_sprite = Sprite.new
    7 V& Q! q) s4 I/ O, z& Z4 l- A
  69.     @layout_sprite.bitmap = @layout_bitmap
    - L/ ~# B  F. o* D
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    , Z! @! s1 W, O( ]' s, P
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      ' Q: m' T* x( p. ?
  72.     @layout_sprite.z = 5001- D2 i6 W5 c* {
  73.     #HP Meter ---------------------------------------------------
    4 J% |0 A# V( S* f1 U& N) r
  74.     @hp_flow = 0
    , m1 G1 k( Z, P/ \7 [6 M
  75.     @hp_damage_flow = 0
    6 K+ W# F& l5 Q; c% u3 h  e+ u
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")0 X0 w4 [. b4 |$ q
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    7 m4 }+ d0 X. u/ k- K( x
  78.     @hp_range = @hp_image.width / 3& E: r  {7 @* G( m" `
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  " d# [1 |0 K$ \3 ~: z
  80.     @hp_width2 = @hp_range / 2) ?" q# E6 ?" u' f7 g8 i3 e& o
  81.     @hp_height = @hp_image.height / 24 d. w& W# H) W6 c3 e; s
  82.     @hp_width_old = @hp_width
    - k6 F3 o8 W6 X* H2 v
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    : y& E, V6 V: v' ^
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) 9 o% M" O: h) O# U9 c" x
  85.     @hp_sprite = Sprite.new# y2 @0 I1 K" j6 I# _( x' i0 [& V
  86.     @hp_sprite.bitmap = @hp_bitmap
    : ]( p6 M0 E2 ]( R; l7 o5 Q  y" z
  87.     @hp_sprite.z = 5002
    % b) ]( Q% S& K$ X' P/ b) U5 N* D
  88.     #SP Border -------------------------------------------------------------------
    - n' k! \( z0 _* r
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    6 K. g2 G0 I. ~. x
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)2 N" d" R; e8 A& x# C; H# t
  91.     @layout2_sprite = Sprite.new2 B7 V( O3 D- j7 D
  92.     @layout2_sprite.bitmap = @layout2_bitmap+ ?, _! q! A  o5 ^) V* u& d5 A9 u
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    , Q; e2 D/ ~& ^' x
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
      p' }5 W8 |% z# J4 P* ~' J
  95.     @layout2_sprite.z = 5001    4 p! p8 Q7 }, l0 |6 J8 L* I* p- M4 f
  96.     #SP Meter ------------------------------------------------------
    7 s8 X& J2 D5 k% m" L0 \% R
  97.     @sp_flow = 0
    6 c/ G2 j# R( H1 }  ?
  98.     @sp_damage_flow = 08 G: t; z* D+ K' |+ U
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")1 ~/ G/ E$ d, v8 J
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)# Y2 q9 t9 p- h% F
  101.     @sp_range = @sp_image.width / 37 F. C1 L; m" g2 q0 E
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    # Z9 o! f7 h. v/ g1 P1 j
  103.     @sp_width2 = @sp_range / 20 r  P' G# A7 Z4 C7 |
  104.     @sp_height = @sp_image.height / 2
    ' X2 K$ `1 X* N* v0 w0 J
  105.     @sp_width_old = @sp_width  v9 C: e7 Z5 L$ Q4 s* u! f
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    % u9 V- S5 o' R( v, y% N0 w4 I9 y9 T
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    " ]6 y9 e4 g# {' Z9 |: [" \: ?+ {
  108.     @sp_sprite = Sprite.new
    - A& w" I' b7 |
  109.     @sp_sprite.bitmap = @sp_bitmap
    : r0 \/ R  }0 [- }+ l
  110.     @sp_sprite.z = 5002
    - Q% L! [1 E0 {$ c1 N1 c5 O
  111.     update
    7 c# N  v8 g. g; m0 g8 S
  112.   end
    - H: Q! a* ^+ Q7 }3 l9 G
  113.   #--------------------------------------------------------------------------( q! r0 n4 s% X+ L" Z3 }9 r
  114.   # * Refresh/ r' j4 p$ M& |3 Q. C1 Z" s
  115.   #--------------------------------------------------------------------------) H2 Y0 t# R3 [6 N) U$ \
  116.   def refresh
    6 ~9 i. g. }* u# m
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible* C# l9 k" M6 Z( s* L5 Z. u: v
  118.     self.bitmap.clear
    - x- Y9 r. z2 W8 _9 U2 d$ y4 \7 y
  119.     @old_vis = self.visible! ~/ X4 I" Y2 R2 U, n2 t9 E
  120.     @old_sp = @battler.sp
    ! N9 E' r! h4 }8 I) z" t$ F, v' N
  121.     @old_hp = @battler.hp
    % }3 Y. \( g, q
  122.     hp_flow_update
    . z, ^, ]- i2 J  |! f- N
  123.     sp_flow_update6 W' H1 Z/ G$ G
  124.     hud_pos_update
    1 R3 M% L5 r3 Z  Y5 p* W! j$ f
  125.     visible_update- Q& q, [% y4 @
  126.   end+ s$ _7 s! e! U$ H
  127.   #--------------------------------------------------------------------------
    7 o6 C: L! @( P- C2 V
  128.   # * Dispose; g' A7 ~, f9 x: A: @3 m, y
  129.   #--------------------------------------------------------------------------+ [  N% _- r: B$ V' j
  130.   def dispose
    ! |; Y7 `9 M! @8 k% x
  131.     #HP Meter Dispose
    : u5 A0 x" p* c. `2 i, m) k' Q" w6 }
  132.     @hp_sprite.bitmap.dispose
    4 D9 D7 T7 y1 @. \
  133.     @hp_sprite.dispose
    ) y+ ~0 C9 G+ I& n/ t1 W" [1 ~0 w
  134.     @hp_bitmap.dispose" `; s1 N: c& g2 r# t  H: m
  135.     #HP Border Dispose
    2 L2 g2 b0 R& x6 f: b* k% {
  136.     @layout_sprite.bitmap.dispose: ~- u4 g0 u) g
  137.     @layout_sprite.dispose
    2 B! p4 Y4 X' P( H; i
  138.     @layout_bitmap.dispose
    $ @, g- J  h, s
  139.     #SP Meter Dispose+ K8 Z$ l& l) S$ R9 ]/ U
  140.     @sp_sprite.bitmap.dispose1 N' a0 p+ V- E7 g* t0 U9 n) W& `
  141.     @sp_sprite.dispose. K8 Z7 \+ H; G8 O2 f2 f
  142.     @sp_bitmap.dispose
    5 Y2 s" R0 g0 n$ h. j
  143.     #SP Border Dispose
    - `  o% ?% f7 c2 _" |7 B2 U
  144.     @layout2_sprite.bitmap.dispose
    6 b& L  y, j( `2 h% H
  145.     @layout2_sprite.dispose
    + Y" r! _0 M$ M5 A  |# j
  146.     @layout2_bitmap.dispose
    9 g7 A4 \  I% T
  147.   end
    : y% X6 y$ W9 v& d
  148.   #--------------------------------------------------------------------------
    + A! d$ D: R  ?+ o
  149.   # * Update
    9 o9 K6 H6 k& }9 E% A
  150.   #--------------------------------------------------------------------------
    1 K1 G  U2 B) W# o
  151.   def update- ~3 U; ]. }2 s4 \' W- H/ t- l! k
  152.      @battler = @enemy.battler ! V. m. N& D# y& ]* |; [0 I
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?& G' q5 d: \" R) k+ ~  ]
  154.      if self.visible3 }  Z3 S4 u( o* S) z$ _
  155.        refresh2 O) T. x1 u# b( p% n3 F# C+ k
  156.      else
    6 V, h5 m# Z6 v0 ^' x( T- t& R7 e
  157.        self.bitmap.clear
    ! N- y9 y/ \7 f0 M( i% I
  158.      end
    ) x# u6 @/ T. u: o4 S: Z. l
  159.   end
    % z1 K# D; I" Q' v0 K; G3 K- O
  160.   #--------------------------------------------------------------------------
    9 S- f2 Q2 U+ v' s0 A! v
  161.   # * Visible Update$ G  G" |- c7 E0 y* b
  162.   #--------------------------------------------------------------------------* V, u0 ^9 J* x6 K) K
  163.   def visible_update
    # d) I9 y- `$ a
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    # ?8 z  c1 S' W: G; g- d- C
  165.        @hp_sprite.visible = false
    3 v. s1 W$ @* z5 z
  166.        @layout_sprite.visible = false5 t+ Z" S3 ?6 Y3 m
  167.        @sp_sprite.visible = false% s0 g0 M& i6 H7 J$ g1 Z
  168.        @layout2_sprite.visible = false
    3 S) _, d! r% k. {9 G: x
  169.     else% u3 X1 b9 v, @" i0 y
  170.        if HP_HUD == true
    9 R& V7 ~# q$ i: c
  171.          @hp_sprite.visible = true8 J$ @4 z4 k6 @
  172.          @layout_sprite.visible = true
    ' A* _( _! S  n9 Z' S: B8 F# j, j
  173.        else
    7 h9 q) j: S  F8 h
  174.          @hp_sprite.visible = false
    1 X& G, f, x6 A2 a& H
  175.          @layout_sprite.visible = false
    # Y( }' `7 q% J7 L' P
  176.        end  
    6 Q+ Y9 \8 }) D: z( W. K0 |& n
  177.        if SP_HUD == true
    % y! b; ]4 [8 x: N  I  v
  178.          @sp_sprite.visible = true
    . F1 ]1 G7 x" o. c) ~9 ~6 l
  179.          @layout2_sprite.visible = true3 A! O* F5 U0 V
  180.        else
    ) `1 F* `' O8 c' p& x: X6 l, J  g
  181.          @sp_sprite.visible = false$ N; D8 j/ |: _
  182.          @layout2_sprite.visible = false5 \$ g; D! V- k" @# x( i+ G6 O  E
  183.        end
    ! o) }4 a' B* T2 c: g0 y' r" N
  184.      end  
    % d7 |9 P0 z4 o% O1 d! w( G
  185.    end + ^) t5 M% L) O& [5 _: d
  186.   #--------------------------------------------------------------------------
    2 k4 L# E  d- {4 C- |
  187.   # * Hud Pos Update9 f4 V% d6 ?1 Z1 m- P. k6 W$ N
  188.   #--------------------------------------------------------------------------
    * y: P7 e' J! j! V4 u
  189.   def hud_pos_update) n( o- [/ d' q4 O; P& V$ w+ a
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    # e( M+ ]1 `2 b1 L. [* M$ W, F: E6 b
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    % r. D! a, K' C1 e
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    9 T$ g% S. U. }) w7 e; H8 G
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y : @/ t& s& |7 {! s; Q
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X, R% \5 D% k1 W! i
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  - `' I6 u. _# K* }
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    0 j7 {, w6 x7 Y: H* v3 q! B. ]
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y       _! \) }7 r. l4 S4 q
  198.   end  
    6 \) N9 H& L7 [% h& S4 ^0 i
  199.   #--------------------------------------------------------------------------) g" p6 k7 i& k$ f( f
  200.   # * Hp Flow Update* |: O( g6 `5 H! m5 H6 G- r1 _
  201.   #--------------------------------------------------------------------------
    3 ~+ w( S2 r# |' n( X0 C
  202.   def hp_flow_update
    ; ?+ D2 r* _" ~+ w  K  w
  203.       @hp_sprite.bitmap.clear
    ; Y5 w* ?( J( F' U; {
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  5 ^/ l$ I: \' P% t+ b, ]
  205.           #HP Damage---------------------------------
    9 U$ M0 B& U0 a2 _/ f
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100, ^+ N* r/ K+ G" g4 O$ _0 h# C
  207.           valor = 0.5 if valor < 1          ) S# T) d1 W3 f6 G6 n+ d. }* V- i
  208.           if @hp_width_old != @hp_width
    4 I4 H0 ~# \) j/ N* ?( c" F( e" o4 r
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    8 _, Y% i1 F6 z; L
  210.           if @hp_width_old < @hp_width / u# E6 ?$ o& l
  211.              @hp_width_old = @hp_width6 S# z$ H+ \9 ~' c2 K: k8 Y
  212.           end      3 J. z* A, n8 W1 H' U  |
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    / s$ {2 f- |' q- m  X6 N
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    4 ^& z1 J  L$ v- B6 _: A
  215.           end        # q# {+ P8 N+ j7 [8 o2 F7 v  z
  216.       #HP Real------------------------------------
    # q: Y* i5 c7 f& R) q
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    % ]9 h& h) n+ l- t
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          ) g' c7 K$ I* {" `) \. c
  219.       @hp_flow += 2  
    5 _/ l. `- `7 l. t. l+ j
  220.       if @hp_flow >= @hp_image.width - @hp_range0 r3 k/ X! h& v+ N+ s
  221.          @hp_flow = 0  
    2 p7 _4 F; {" ]0 i
  222.       end# [$ E- y0 v7 z1 X$ k
  223.   end    9 b7 I8 R. Q$ |5 ?9 E. h* ^
  224.   #--------------------------------------------------------------------------
    . @  ^5 A& M7 J5 l" y) ?" T
  225.   # * Sp Flow Update8 D0 m6 ~2 S. s. p3 W
  226.   #--------------------------------------------------------------------------
    3 c0 z2 J" Z" R  C/ j/ ?& o3 @5 A
  227.   def sp_flow_update7 h0 f9 m3 r$ N  V; {
  228.       @sp_sprite.bitmap.clear
    " ^) y- K: ?' e0 y; G# Q4 }
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp . P$ V; M3 O; F0 @1 Q
  230.           #SP Damage---------------------------------
    % x* K0 R- R' n9 N
  231.           if @sp_width_old != @sp_width
    . T2 y7 k' j( }6 Q5 X- J
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100, v( \$ \  J( R$ L; d0 V2 e+ b
  233.           valor = 0.5 if valor < 1              4 G) x, R" K+ @
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    $ n. h4 `" L8 G2 _
  235.           if @sp_width_old < @sp_width
    " A0 q6 b* N6 u$ E# f# A7 Z
  236.              @sp_width_old = @sp_width0 d& m4 o& U& U) @# v: t# T
  237.           end      2 t! t' O- X& j. N  O
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height): C; k- Y8 C& ]. V% A
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) 0 y" K  \/ E  N7 L% {0 `6 {' A
  240.           end3 [- i7 V7 {7 [# F
  241.       #SP Real------------------------------------6 d1 _$ D. K" x4 y" G) ]
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)2 k2 f, y+ }& W. q
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)/ y( {# n+ J! E, r1 z3 N" p/ P
  244.       @sp_flow += 1  
    " U# ]6 \, ~" M2 M
  245.       if @sp_flow >= @sp_image.width - @sp_range4 M: V7 f3 [9 B& w* K2 J
  246.          @sp_flow = 0  
    9 P% k2 i& K/ p5 R# k! [/ V
  247.       end, K* H/ i' _; P0 f* g! M0 f$ d0 f
  248.     end            / J2 \! ^+ x: d2 v3 G0 w! k
  249.   end
    ; F, x( {4 `0 {) R
  250. #===============================================================================
    # J/ x7 H- F, A1 a9 [
  251. class Sprite_Character < RPG::Sprite& }2 N: u# ~4 |" I) M* S
  252. #-------------------------------------------------------------------------------
    & H4 l( d, N( d* E8 a  ]8 r
  253.   alias :xas_emini_hud_init :initialize
    0 u3 @, r. p* [4 j9 F
  254.   include MOG
    ' W( H# @& m- H0 w
  255.   def initialize(viewport, character)
    : w1 d# {  X2 G0 k4 D4 g
  256.     xas_emini_hud_init(viewport, character)$ X" _6 b& o: S* B2 h9 ~5 _& x
  257.     @viewport = viewport
    1 J6 {5 L6 ], d. A
  258.     return if @character.battler.nil?
    % k2 d" ?! {: @) |% b$ u+ r
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    , f1 E3 S1 a/ i  A' s' Z
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)4 n+ U9 p2 r( y- }* B
  261.     return if @character.battler.is_a?(Game_Actor)' T$ p) ~* k+ `3 u
  262.     @bars = S_Hud.new(@character, @viewport)
    $ B  ?( k9 `6 \  A
  263.   end
    # o+ ]: K  ~& B
  264. #-------------------------------------------------------------------------------, W. L0 R! O/ r& h0 |( S% }7 B- O
  265.   alias :xas_emini_hud_up :update
    1 ?8 l0 X* H6 s1 [7 V$ K
  266.   def update
    9 u& W" d% {9 C+ V% O  D% c7 F4 g
  267.     xas_emini_hud_up" y2 a1 M' c- R
  268.     return if @bars.nil?+ R) ]: x& O2 P; E" ~! B
  269.     return if @bars.disposed?7 D" h. {& e; S7 y9 h; y
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs: h: z0 \% E3 U" l" z1 ], T
  271.     @bars.visible = (dis <= RANGE)' L7 T) H% r7 S6 j" K. \7 z
  272.     if @bars.visible- [0 W6 M3 I1 I
  273.       @bars.x = @character.screen_x# - @cw / 47 L: k+ u+ L% Y
  274.       @bars.y = @character.screen_y# - @ch / 4
    6 z: w" s6 i" @+ |$ y- C( w! j6 `
  275.     end$ |! ~- H  {/ ?7 \" [, c
  276.     @bars.update1 A0 M' ?: {2 U% @8 ^
  277.   end
    9 }/ q/ p, Q* n% t1 F) V
  278. #-------------------------------------------------------------------------------/ Z; |4 z0 u. ~# G' z* I
  279.   def dispose. b! U) \8 A1 U; Y+ F9 F/ x8 [- n8 U
  280.     super6 j8 V9 }- W0 P+ }2 {7 V+ i, N. o
  281.     @bars.dispose if [email protected]?0 I# V: _! k% f( N3 l5 \
  282.   end7 B, n6 Y( J' M
  283. end
    5 D3 C. u/ Y+ a$ h

  284. 1 Q* D: `. g! T! V) |2 D9 o
  285. $mog_rgss_s_hud = true
复制代码
9 o7 V& D/ Y! j) n

* }1 o& f; W) v* k1 g9 E& M; z5 O. N6 i: F) c# C# \: Q
上面所說出錯的203行內容為
! v: i( d6 @1 g* p+ K) B& I5 z@hp_sprite.bitmap.clear
- k" \& B* \6 M- A( c$ b9 A5 n7 Q( [# @* N& }# x4 k. }: Q# U
想知道怎麼解決
6 E6 l7 F7 w: _" ?: w/ k: q* i
# H) z) z3 A6 D# B, F- h4 a該腳本支持3.82
+ s* t) t* m5 z1 z: l# N8 i  m8 [8 ]. ]) M
下面是圖檔,要塞在Windowskin下! _0 M$ a2 P8 D/ Z& @' R& Q
  h/ w, U, w+ P5 T3 i, V) E
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) ) H5 j' a+ D9 A3 u3 ?

! L/ O9 r/ o: E3 j+ |2 ]8 L% K
/ A9 B" @4 \, @8 m( y1 c0 d. o
2 o6 @+ d' k' M% [& A) p4 d
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
, g. X/ U( c" `5 S, C  [: b7 U结果尝试刷新了一个已经释放的图形$ e, ]  t1 F$ ?. T! a) K5 w+ n

$ s4 q4 [/ N, E2 A
" n6 @% R( e1 C4 t( T  W
$ B* H7 e  i, M' g. {6 S7 s/ B虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?, H( Q- Y% ?- G
复制代码
不要后面那个条件貌似就没问题了。; v5 r7 f0 G, t+ E: z$ K& w
) ^3 w0 M6 s! m% `

9 O2 A# H" W# ]9 `1 V
6 \8 ?6 d1 ^/ h& [4 O
! K: B% ]% x, c3 \- g; C% {
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 / _8 g5 Z4 {) z: |, I4 M* F
貌似是释放的条件不合适
9 o4 J! m! T7 K$ X5 k$ e0 Q# R结果尝试刷新了一个已经释放的图形

5 c+ d' ^3 `* }, f把後面那個條件弄掉後,的確沒問題了5 F  H4 k, U  e7 p, s% }
目前從關頭打到關尾結束都沒再彈什麼錯誤; L5 I) Y. [  z* X6 a) Y; j
非常感謝* T  L. F9 X+ r; E$ t) C

, h( n/ F$ w# [+ u( e2 h不過我是參照著別人腳本改的& E4 f' T# a% p' v; a, e$ ]' B
他寫的條件式也是那樣,但我用他的沒什麼錯誤
0 l* L) I( f+ u5 _不知道是怎麼回事' e/ _3 o) P7 J! b2 k
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
! K7 C" i' Z3 _! @! L4 h" y/ r我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
6 t6 y2 K6 ^' ]4 P3 V, X1 W$ v( Z嘛..这个数组吧..我在以前试写队友的时候关注过一点8 f, ]- U- a+ N9 o: U
不知道XAS内部对它做了什么手脚还是为啥,
( j+ V& F8 {* r. P6 O5 p1 M总有那么一瞬间,没有被消灭的敌人事件也变成了nil/ q& C% l# n: k# g8 Y+ g

+ k4 V2 j7 a2 j$ ^  S5 D/ N$game_map.events.values[@enemy.id].nil?0 ]( v8 B1 H7 q% w. b
因此自然而然的返回true并符合条件把图形释放掉了
( l* ?; I* s" r" m& O
- b9 U. `4 O; g1 @1 t& P: VLZ应该有注意到吧,
7 O6 }7 F/ ~1 I我测试的时候发现报错前几帧,图形会消失,$ D1 i, Q5 h4 k: d
应该就是“误以为敌人被消灭”了。$ ^6 X2 w  Q  ]4 _# h6 l+ Q
- S9 u& v& @0 c! ]1 Y0 `
受限于个人水平,至今无法找出$game_map.events的真相..5 p+ v$ C+ P1 Q; G& U! E9 q! N$ p
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
5 i) U4 Y! ~5 K- M6 M, `  M# h. D$game_map.events4 `* g- }  Y, ~3 Z9 _$ A
嘛..这个数组吧..我在以前试写队友的时候关注过一点
! T  d; H9 b3 T不知道XAS内部对它做了什么手脚还是 ...

) k" i" @! C6 m$ c5 P% H當初我把那個條件式看了三遍,都不覺得他有什麼錯
4 x' E& D" w7 A7 \& n原來還有這麼深奧詭異的事XD
! r5 z1 X! _$ X8 O' h3 }% H' h5 n# w* I- j! C7 e) A
錯誤發生前的確會有圖形沒顯示出來
8 H$ s7 |! H9 d7 |1 w2 r, i不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
9 ?& j3 e5 O6 n沒想到居然是詐屍了XD
$ ^' ^! r0 B) t9 _7 x" x3 Q
$ k& x/ f1 {( }7 y# A不曉得3.91有沒有修正這問題...4 n0 ]( F! x* W9 V$ s
不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。7 D9 g# n4 d! }
+ ?8 Q, b% G7 C1 v7 G
的确
( `8 ~, s# r" T' z用惯3.82之后想去整3.91觉得压力甚大..
. V1 D- L! h4 L! f$ ~干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
14000
在线时间
22007 小时
注册时间
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”。
) h; b8 K7 B9 r" f- x- e) _: ^; {8 E' c1 A/ }
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2026-6-6 03:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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