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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條# R2 J! J* @0 ?& A% |( ?7 ~* i
會在每隻事件怪物的腳下顯示  B/ `: H$ C6 f  U
問題是不知道為什麼( X+ o. R! a# H5 L
有時打怪打一打會跳出
( E0 _3 R# c/ ]! ~' M, p---------------------------
9 [6 z8 T/ s* o! k$ W  eXAS' p6 Q! o  ~& l
---------------------------
9 \& N+ d' h" a" A. e3 y# ~脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。$ b; {; R" s7 ^2 X% L0 u; b. N
* P% \; b+ b6 x
disposed bitmap: E6 L, |% X& s& |1 Q
---------------------------% S9 _2 R4 I, Q
確定   0 Y1 F2 x, F1 n& ~, R! `
---------------------------3 H% k. p5 v" ^9 u

& Z9 l9 q3 ^9 l4 [5 U* e這是腳本: g7 M" C9 N0 Q; o3 p: E* N

" v. y4 l  T! I+ o7 C
  1. #===============================================================================
    5 T8 v$ `/ t  J: X$ H3 P9 ]
  2. # MOG - s Hud 1.0      3 R$ ~$ [: G; q' q! p$ `% h
  3. #===============================================================================- Y8 \0 }  ?+ `2 k
  4. # By Moghunter
    : b9 J% s1 g$ l
  5. # http://www.atelier-rgss.com
    1 z5 K  {: H8 X" e& Z/ Z' n! b1 v0 I
  6. #===============================================================================
    4 Z  ?. h7 p" m3 ]# {
  7. # Translated by Calvin624
    # b2 r; r% e. i
  8. # http://www.xasabs.wordpress.com
    & r1 ]. \) E0 i. a' H
  9. #===============================================================================
    2 e$ q0 F. m1 @5 ?# Q0 W* ^5 K
  10. ###############################-DESCRIPTION-####################################& o) n/ E6 R; [  I( U8 `; i/ T
  11. #===============================================================================
    , h6 n' X. H4 I$ F2 J
  12. # Personal HUD – displays the HP and SP below the hero.& D/ ]# Q: P0 U' o
  13. #===============================================================================7 ]8 d, V* |: o; V& A: L& T. [
  14. #
    ! q6 v; V) v# t, _0 g1 `6 U
  15. # Graphics required:7 z2 d$ R* ]5 u# s" X* x
  16. # & e5 W( r/ ]# L: e- J/ q
  17. # S_Border_HP_Meter.png' ?- g; f1 D# F" i6 b
  18. # S_Border_SP_Meter.png
    % F& O! K; [3 t9 u4 o( H
  19. # S_HP_Meter.png
    + y7 F) Z: D  n( k- ~: G5 b
  20. # S_SP_Meter.png
    * Z: F% B) y, |  m  }
  21. #
      [" i1 A7 G5 P% Q
  22. # All images must be in the Windowskin folder.8 z) D9 b6 N1 U9 a) Q: h+ |% Y% o' G
  23. #
    : b( R: Q2 U- M3 J8 U! U
  24. #===============================================================================
    : {/ ^& [: M# m( \5 Q
  25. module MOG& L) I/ r+ R; n1 Q
  26. VISIBLE_DEF = false  
    3 s1 D! j8 l. \* w: y, z( f
  27. # Show HP meter?; c7 ]; |* b' w0 c9 ]
  28. HP_HUD = true+ B$ d+ u0 x) W7 F6 y5 k: @& a# `
  29. # Position of the HP border" |$ x$ X3 \3 Z( s" m
  30. S_BORDER_HP_METER_X = -2
    ; q; O9 g- _8 K" E1 q5 Z4 d5 P, B5 }
  31. S_BORDER_HP_METER_Y = -2  - N- R  l$ y/ W% H& K' R, y
  32. # Position of the HP meter
    6 ^3 U. {$ F6 x0 U, J3 _& s' \# \
  33. S_HP_METER_X = 0
    & K- }6 n3 n( @) L: x: V: z- v# A$ B
  34. S_HP_METER_Y = 0
    ( R6 N6 @9 Q+ M; H1 K: K- X
  35. # Show SP meter?
    : I/ S# i' X8 f9 V5 N
  36. SP_HUD = true; m! o' u; Q8 M+ p$ f# ?8 L
  37. # Position of the SP border: u( T3 @* D( }* m
  38. S_BORDER_SP_METER_X = 0
    . [2 Z1 k& e# n6 h  W4 g: v
  39. S_BORDER_SP_METER_Y = 10 4 f7 m, @* @* g6 Q1 O8 ^7 H
  40. # Position of the SP meter
    7 z: P' c6 x* a0 L# p: D" L
  41. S_SP_METER_X = 0
    # G* a3 ~( d# o1 y6 p& W' w
  42. S_SP_METER_Y = 10+ C6 A* G# m% N, l
  43. # Switch to disable the HUD
    : {& g  t) g, a, I6 r& [
  44. DISABLE_SHUD_SWITCH = 55 f" A0 R4 ^* y6 M  i
  45. RANGE = 20
    , }# @$ q: F" L, X6 L
  46. end
    6 Q7 T" H  I& w
  47. #===============================================================================
    * s( W1 }6 _4 R# t8 s4 E/ l" Y
  48. # S Hud
    ( g( q. m, F! z5 {# D; ]4 y
  49. #===============================================================================
    3 U' A2 I0 j0 T" O) t8 `
  50. class S_Hud < RPG::Sprite7 t9 b* e2 C- N& [$ @+ _* K7 E$ s
  51.   include MOG+ X/ L; t- ?5 Q  l  ?( ?1 T$ t: J
  52.   #--------------------------------------------------------------------------* t& a& t" w  A9 M8 X& g
  53.   # * Initialize
    ( C' B! l* O& m$ E
  54.   #--------------------------------------------------------------------------) S5 S' t3 B  u, x* C
  55.   def initialize(enemy,viewport), W* j* `& ?7 U$ J: G9 z
  56.     super(viewport) ! J/ m' U9 Z8 R# E/ Q' r
  57.     @enemy  = enemy& |4 K) K% W  O
  58.     @battler = @enemy.battler
    # [9 {' a6 i( s: _8 S
  59.     @old_hp  = 0/ O9 z, H% V3 \! |( G
  60.     @old_sp  = 0
    * v! |$ c  m& F" v3 p% @! Y
  61.     @old_vis = false
    ( K3 ?, ~' U3 p( U6 b1 K
  62.     self.bitmap = Bitmap.new(100, 100)
    + Q6 ^* v0 A- e7 o$ o
  63.     self.visible = (VISIBLE_DEF)#false
    $ h5 X- A# H& c- v5 s
  64.     self.z = 1003 X" t% G: `0 ^& b, U8 u
  65.     #HP Border -------------------------------------------------------------------+ I% q  S$ {+ A- {! m
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    * O# J0 q3 `' w5 j, `, t; o6 l
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    9 C8 ?5 m2 t$ C* W- ^+ m# r: i
  68.     @layout_sprite = Sprite.new
    0 |+ {. B+ H! w( D
  69.     @layout_sprite.bitmap = @layout_bitmap9 v2 `" c, O$ p) l- V( J& K3 |
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)# h9 o: o* A% o- S. m4 |2 U; p
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    / W/ O  U- x+ w( [) y; {
  72.     @layout_sprite.z = 5001
    2 M5 r( L5 G2 t0 O% L
  73.     #HP Meter ---------------------------------------------------, k# i! C" p" O" A
  74.     @hp_flow = 0' l3 J% T6 {8 W
  75.     @hp_damage_flow = 0$ o& G; S" b& t# X8 t, ?. A
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    % Z$ H, u" z* @+ P
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)3 v! @0 I0 o- b5 ]0 J* a7 b0 T% _
  78.     @hp_range = @hp_image.width / 3) H+ b# t5 d5 V& d/ W0 D
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    - h1 v* d1 R. V3 r& w
  80.     @hp_width2 = @hp_range / 2
    . ^) G( V% J$ p/ P& e
  81.     @hp_height = @hp_image.height / 2
    5 n& Q; H0 J) T3 B3 J0 ?6 N, n
  82.     @hp_width_old = @hp_width: |; X4 J* I( N( S5 Q5 I- _2 g% `
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)# m5 q5 g% n& @2 A; O
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    1 }* P6 r5 Z4 X9 y# L# p7 Y( R$ Y
  85.     @hp_sprite = Sprite.new$ S2 G" Z. X3 p" r/ m  M" G- H% t
  86.     @hp_sprite.bitmap = @hp_bitmap
    : Y; ~- V' i  \9 c6 R& i# D
  87.     @hp_sprite.z = 5002! _# p8 Z, C2 r. u  S# f
  88.     #SP Border -------------------------------------------------------------------
    $ n( y% o5 H  k: ~
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    # c% p' R& f5 C+ W: Q4 g! c; O
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    & a9 `' Z9 j/ V
  91.     @layout2_sprite = Sprite.new
    ) S4 v8 |) x( K" K* r& K: M
  92.     @layout2_sprite.bitmap = @layout2_bitmap
      |5 C, F3 E1 O: [2 J  j$ x- u
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)( k! i4 f; o" ~# w: k: a
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    " X  A2 t' i% v1 C+ v$ J
  95.     @layout2_sprite.z = 5001    ) k6 [7 @( d& t. Z2 C  s
  96.     #SP Meter ------------------------------------------------------% |4 w; y7 E  }% _3 X
  97.     @sp_flow = 0
    3 [- u3 c6 g1 p( D7 K) Y+ Y
  98.     @sp_damage_flow = 0! t$ \! F! c* n$ C  D
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")" [3 W4 c* N# D
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)8 m$ i, J9 o: b5 R# m+ z
  101.     @sp_range = @sp_image.width / 3
    ; x2 j) _% I% h
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    2 {& V! w$ f! @
  103.     @sp_width2 = @sp_range / 2
    7 A8 z) ?/ f0 h6 z) Y! p5 A, ^
  104.     @sp_height = @sp_image.height / 2
    , h" k7 ~" y7 V- K$ |  ~
  105.     @sp_width_old = @sp_width2 X8 T' }& g1 D2 S- n- d) s
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    $ M2 |- ?% A4 F% ?
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)1 n7 p: P& q0 q( Q# X  H2 x
  108.     @sp_sprite = Sprite.new
    6 @  n0 t) h8 F/ U
  109.     @sp_sprite.bitmap = @sp_bitmap7 ]% K0 R  C; ]% ~! O) |- T
  110.     @sp_sprite.z = 5002
    4 u$ d+ ^, g, ]/ C& T4 Q
  111.     update
    ' p$ w" F  ]; ?' ]$ Q* W
  112.   end
    0 E) W) f- |8 T; M" {; g! G
  113.   #--------------------------------------------------------------------------
    . y+ E, C3 A' H- h! v. Q; M
  114.   # * Refresh$ a, `. v: @# h+ e( x
  115.   #--------------------------------------------------------------------------
    1 [4 T3 z4 n2 R0 M5 e
  116.   def refresh& b, i# L  q* ^0 C( I
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    7 b/ j0 c" W5 C% e
  118.     self.bitmap.clear7 b- u. N1 n  Z  U# d$ V! y9 r
  119.     @old_vis = self.visible
    1 l9 W# l" x( `. m) K8 f% z1 y
  120.     @old_sp = @battler.sp
    8 o+ P& i& l2 p
  121.     @old_hp = @battler.hp
    + ?' |) p: U! n. V" ?  t
  122.     hp_flow_update
    & t& p, q- y5 {, |  S
  123.     sp_flow_update( A4 e: k$ f& G; |4 E5 T8 O
  124.     hud_pos_update
      v- F2 G: i8 ~8 T1 y
  125.     visible_update
    ' D1 H# V9 u5 y% p# j, S
  126.   end- N- X, a/ D5 h5 E5 W7 `/ O
  127.   #--------------------------------------------------------------------------
    ; F9 s9 |5 g0 a( M" w: k
  128.   # * Dispose
    3 l# q7 \5 V/ o+ L& ?9 ~2 m' N1 `
  129.   #--------------------------------------------------------------------------
    & `5 V9 a. D+ N& h* Y
  130.   def dispose
    ) b. d( t9 X3 m( l
  131.     #HP Meter Dispose; e+ P% \- E0 b
  132.     @hp_sprite.bitmap.dispose
    ( n; M/ \. F+ ]& U- z% b8 i
  133.     @hp_sprite.dispose" Y: n& e( I; f+ n
  134.     @hp_bitmap.dispose
    4 d' {2 t. [# n7 e
  135.     #HP Border Dispose
      k4 c$ I7 A7 G0 W3 |
  136.     @layout_sprite.bitmap.dispose( c, o5 i1 ]5 J
  137.     @layout_sprite.dispose6 j+ M8 m: B/ ]2 e' v; F9 U. v
  138.     @layout_bitmap.dispose" \' e& Y- E9 D; z, l' p$ |* G
  139.     #SP Meter Dispose. d6 C$ O& o5 L
  140.     @sp_sprite.bitmap.dispose
    . X' s( H: J# x3 v
  141.     @sp_sprite.dispose
    * O; H+ w2 m: x+ x
  142.     @sp_bitmap.dispose
    9 N9 D1 Q3 d1 @
  143.     #SP Border Dispose
    2 g+ R2 P3 j2 C- a3 l
  144.     @layout2_sprite.bitmap.dispose
    . ^7 ^0 `$ x. O  U) e- X
  145.     @layout2_sprite.dispose
    ' P/ Y: k5 p3 X4 u& Y# d% @6 ~
  146.     @layout2_bitmap.dispose
    * C4 V( j3 k, z
  147.   end
    4 _; y, }" f0 j7 U. [
  148.   #--------------------------------------------------------------------------
    " q8 P+ R' O7 t# [0 n
  149.   # * Update& V7 s! S( u% K- q8 z4 t
  150.   #--------------------------------------------------------------------------
    9 L1 ^% E5 `3 I1 O' s' V& r
  151.   def update" H6 C0 _" [$ @# l
  152.      @battler = @enemy.battler
      l* b* s% j6 q4 o( h% L% F: x- b
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?, j4 r4 z) H3 A
  154.      if self.visible. G& w# n# m/ n
  155.        refresh" e. a8 H8 q8 u+ T6 P
  156.      else
    : f+ w" W2 I" Y. s& d' n7 S1 b0 k
  157.        self.bitmap.clear
    9 k. c1 g0 Y, l# ^/ @/ z
  158.      end3 J: b5 p6 ~+ p8 K  G  g
  159.   end/ Q# k! L8 w1 w  i( n
  160.   #--------------------------------------------------------------------------# ?$ X7 O3 A  q5 G+ `3 Q7 H
  161.   # * Visible Update
    6 j; W9 y: p* D4 o& ]$ J! o* _  `
  162.   #--------------------------------------------------------------------------3 M' F# H( }4 n0 @7 g5 J7 N
  163.   def visible_update
    % L5 T7 y5 {' D/ F5 u
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true" i0 v6 T' }& H- `# b9 g7 ?
  165.        @hp_sprite.visible = false
    & c5 h5 U$ a/ D; @5 O0 j! X2 {
  166.        @layout_sprite.visible = false
    % \, j0 |+ |. ]' T0 @7 t
  167.        @sp_sprite.visible = false, ]$ o) m* M  R( M) k" g2 f% w& ?
  168.        @layout2_sprite.visible = false6 e+ ~, ^; Q4 _% [5 l8 R1 {1 z: m6 y
  169.     else
    9 h; A" S3 z0 `. [2 p7 X; W
  170.        if HP_HUD == true
    9 F, P( j) T( V3 J& y; Q1 t& q: ]1 |
  171.          @hp_sprite.visible = true
      S3 `8 n0 i$ b. q6 A$ d
  172.          @layout_sprite.visible = true
    , w# k/ E) w8 s2 J1 \
  173.        else, o( \! L1 H$ ]6 w# |# E$ E) u7 ?
  174.          @hp_sprite.visible = false" K( I/ Y6 f9 i
  175.          @layout_sprite.visible = false
    ; P% I3 a6 l9 v8 H5 q
  176.        end  . g! F5 X( K  b) |# m5 n. Z
  177.        if SP_HUD == true
    + H1 @% p8 A% {/ [; P  b9 P  `
  178.          @sp_sprite.visible = true: D; G  H: d7 @4 ~2 t
  179.          @layout2_sprite.visible = true
    " d1 R6 E2 F6 }9 J% J+ |) s
  180.        else
    ; i' w" B: E3 l5 }$ A+ T9 b6 n) A
  181.          @sp_sprite.visible = false; W! J& \5 O7 w1 F9 [! O2 A
  182.          @layout2_sprite.visible = false( C, z- ]$ u+ S# @2 E/ F# L
  183.        end
    : G. G* g8 C7 f9 O
  184.      end  
    ( M( c2 P# u2 B" L
  185.    end
    * Q# Y( e3 G2 ^. B
  186.   #--------------------------------------------------------------------------  s9 v/ W; k; Z
  187.   # * Hud Pos Update2 C2 V3 Y" \- u/ F
  188.   #--------------------------------------------------------------------------
    , R. e. N% h8 P/ j/ A3 ~
  189.   def hud_pos_update
    ; t0 `5 I+ k( ]9 c' O
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    ' a( [* @" u) Z9 V! S
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    : H8 r% E7 |  ^3 q  q$ r
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    ( i9 T& ~! ^4 g1 Y2 w+ `: `! E
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y 9 ^- i, O+ g. x
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
      J; X; d" ~$ g
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  4 u+ x. w7 B7 M. j/ A& \0 D
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X4 C' t$ _3 Z( ?
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    : W% }% o6 Y$ g$ \2 p7 A+ p
  198.   end  
    ) x1 `; Q2 y6 x! n
  199.   #--------------------------------------------------------------------------, s  }/ F# N" A8 _9 r5 ^, J
  200.   # * Hp Flow Update" @* E- Y3 H0 T: a9 J$ \# u+ j
  201.   #--------------------------------------------------------------------------+ R5 |$ Z  Z. v
  202.   def hp_flow_update
    $ _& g3 A9 o1 ~# F7 v3 i% y; i' \
  203.       @hp_sprite.bitmap.clear
    $ I/ K7 ?% S; _
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  ) g1 v& w' j, X% Z3 F6 b. d
  205.           #HP Damage---------------------------------
    3 |# B# O2 ^9 L
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
      j# D# ?' ]8 ~3 i! q8 v
  207.           valor = 0.5 if valor < 1          2 ]; x8 }5 t* A" n3 c5 z! h
  208.           if @hp_width_old != @hp_width4 g: B5 ~- F# c7 [0 ^+ k
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
      F* O) a0 Z* @9 {7 v% b. |
  210.           if @hp_width_old < @hp_width
    , E: p3 F: I1 A$ Z( {2 B
  211.              @hp_width_old = @hp_width
    ( b$ `5 _) ^0 w2 p* ?" F# `" H
  212.           end      5 Q, d2 m- _% s" r! g" l  \
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    ) J) }3 y& y! H- i8 E1 m
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       7 {8 a/ W7 {( e8 [& y* h
  215.           end        
    . V8 N! D$ t- b
  216.       #HP Real------------------------------------
    4 I2 v' P- v" x% n& B+ `0 h& b1 M+ b
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    7 I8 y, F1 y  G
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    ( c% H# _. C2 ^& w: {1 `
  219.       @hp_flow += 2  0 c7 y7 h, v( d* V1 R- X+ C
  220.       if @hp_flow >= @hp_image.width - @hp_range
    - O1 @" _+ O  e  k
  221.          @hp_flow = 0  ( ~6 C0 U6 U5 r+ H; D! i
  222.       end
    ; d1 E0 c' ]* S4 m- }4 K& U
  223.   end    1 j6 s+ R- X& X. R. i/ z2 S; [4 s
  224.   #--------------------------------------------------------------------------7 v0 F. W' B* g
  225.   # * Sp Flow Update9 Q9 t( a( D8 q" }# k7 y& J
  226.   #--------------------------------------------------------------------------
    4 h4 E" {# G& n4 Z
  227.   def sp_flow_update
    + f* l' ~  v  L( [3 j6 S  \% ?
  228.       @sp_sprite.bitmap.clear
    ; h! ~. b; j$ }* O
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    6 x* {+ ~2 s# K# b: }
  230.           #SP Damage---------------------------------; f1 x1 ^  ]* B9 V
  231.           if @sp_width_old != @sp_width
    ( y' R' t7 N, R$ F, `$ r! |
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    + U6 C! n5 ~. E1 X* M) b) \3 D
  233.           valor = 0.5 if valor < 1              
      G0 V: N' y% s3 R. }
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  7 r5 u( E+ B& J- j1 \& J
  235.           if @sp_width_old < @sp_width
    : i. Q9 L; w. C3 b
  236.              @sp_width_old = @sp_width
    7 Q; g$ C3 m" E& F# M/ `: c
  237.           end      
    4 M1 g* s" s# y/ I2 j6 @7 J
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    . J1 b" d9 c1 B/ U* [
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) $ ]5 _" L3 J) W  a0 @7 ^& @1 c/ ?
  240.           end
    ! Y5 R" t; m7 c6 v
  241.       #SP Real------------------------------------
    " P+ j" I; U8 x
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height); l# m* v4 X! ], y, h
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
      `$ u! L- p  ?% G
  244.       @sp_flow += 1  5 _" f$ G" R  g& T! {
  245.       if @sp_flow >= @sp_image.width - @sp_range' H# O* B; N$ j5 o; g9 t  V
  246.          @sp_flow = 0  ( K# R4 A4 v5 i8 \1 K5 P1 q
  247.       end
      j5 ?* \4 G  w. |2 x
  248.     end            8 ]) W4 S5 t- Q9 A: D
  249.   end
    % T  ]% s( X, C' M  ?+ ?
  250. #===============================================================================9 v# |! y8 U" P
  251. class Sprite_Character < RPG::Sprite
    3 z) {1 n9 i8 K3 x; ?
  252. #-------------------------------------------------------------------------------
    : ?" ?$ o" K, i  a; j" g
  253.   alias :xas_emini_hud_init :initialize
    ; i. }* \( }2 V' [8 ~
  254.   include MOG
    7 ^+ t+ |, C) \# h3 v7 t
  255.   def initialize(viewport, character)- E; I4 E" T: c3 i6 R  z2 d
  256.     xas_emini_hud_init(viewport, character)
    - Z  {+ N6 r7 j. {
  257.     @viewport = viewport: O9 B+ f9 u/ w, P7 s9 m( P4 ]
  258.     return if @character.battler.nil?) M0 B. O8 p& c- N7 s
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)# v, K+ n7 l2 j* O+ F
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    7 V6 I2 F$ B5 N3 v; K
  261.     return if @character.battler.is_a?(Game_Actor)5 I) \. Z3 b: k8 v6 r, h) j& F( {; Q
  262.     @bars = S_Hud.new(@character, @viewport)
    / o& m7 ~1 H& a
  263.   end
    - z4 r+ W2 x2 T
  264. #-------------------------------------------------------------------------------
    ( f+ t2 ?) o" a, i+ W& s
  265.   alias :xas_emini_hud_up :update
      t8 t3 e! W. l) f; |
  266.   def update( P" h& A1 q0 V6 |) d7 G
  267.     xas_emini_hud_up
    , k* ]4 Q( h  w7 P$ ?/ _8 O* \! F
  268.     return if @bars.nil?* C; J8 v# D* [
  269.     return if @bars.disposed?
    9 p: v2 l) h- L- u6 w
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs# Z/ X# L% _9 ^) V/ c
  271.     @bars.visible = (dis <= RANGE)3 @) h2 M. W1 l# X' k. y/ l; X
  272.     if @bars.visible
    . O/ t% [( }: d* n; e
  273.       @bars.x = @character.screen_x# - @cw / 4. Y3 ]% C6 H9 I
  274.       @bars.y = @character.screen_y# - @ch / 4
    4 O9 J4 o! {* w, q
  275.     end
    1 n4 z% y! `( r4 @) {, F
  276.     @bars.update
    4 V* T- D" V4 d- l7 t
  277.   end( Q6 l- b7 p$ R4 B
  278. #-------------------------------------------------------------------------------- S7 q( ?3 m# p& B* U
  279.   def dispose. L4 I4 C9 N: t5 j2 Z* a
  280.     super' P; m3 \; Y" v5 h+ c
  281.     @bars.dispose if [email protected]?
    " F( ]2 l* H& Q5 x+ p, u1 r
  282.   end
    5 S' A- p+ k% x- I, M  X7 |- h$ ^% m
  283. end
    ' b: }4 a+ U' j# W' K% |* \

  284. & N8 n' u: r% b$ Q7 |6 }
  285. $mog_rgss_s_hud = true
复制代码

: `8 S# N) s) `  s( `" M* w$ @! e/ V4 `  @. ]: d  W
* d, C8 ~$ E1 T. j7 T2 T
上面所說出錯的203行內容為
9 w/ e% {0 ]1 U5 O@hp_sprite.bitmap.clear
9 {$ O* v. |8 D$ W; V
6 ?) b8 F' r$ n1 r8 V4 y想知道怎麼解決  y. q7 _( }9 B3 d- T& E* \& f
9 T. u# R% W% H9 j. e
該腳本支持3.82% G8 H4 }* r$ b: d1 ~
/ Z. I+ {8 L8 g0 w* @; [) |' L2 ~
下面是圖檔,要塞在Windowskin下) V5 O! S4 [, {& z" e4 Q

" V: i2 m; }. W3 d S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
- _, W7 M* V: H  U# j+ Q
8 m9 s7 c; K/ c, u4 f( Y% w- Q/ y6 Z+ O& ^+ g! v+ X% A
1 B" Q, q6 x* X8 _& o; k) W

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适6 T) u7 V8 b  ]$ s# e: l' v7 S
结果尝试刷新了一个已经释放的图形) ]6 f' j  i5 ~6 C6 s6 T# |6 O$ A
1 ^3 ?( `: p* h6 D% F- h" I
; f. J+ K. N; @3 h9 T* b) o1 N
, f: P- W4 y7 k6 f
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?% m; D/ t0 v7 S! b( k
复制代码
不要后面那个条件貌似就没问题了。2 l( a/ Y( `" H5 X  d  ?0 Y* H

2 C, R, h! E9 |$ ^6 I2 f/ X
/ u& @& Y, i! t/ @. w% [) ~
2 [/ u0 d, n6 J7 w& E  w
" {/ G+ ?" b" p
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 7 q& F# z  H( N7 b* D
貌似是释放的条件不合适' S2 c% j) q" w
结果尝试刷新了一个已经释放的图形

4 v4 Q4 K5 n4 a把後面那個條件弄掉後,的確沒問題了
0 H" l" i7 Y' M5 N8 `$ Q- }& P1 ^目前從關頭打到關尾結束都沒再彈什麼錯誤
0 F# j+ R* |6 p" F: \6 |非常感謝2 w4 ]  N$ w5 A8 Y
5 v( y6 C5 O  X" s
不過我是參照著別人腳本改的
$ ^3 n3 Z+ U% i( x, [! e3 K他寫的條件式也是那樣,但我用他的沒什麼錯誤
7 b5 m! j7 ^; N0 t8 w不知道是怎麼回事4 P5 w" N7 K' a! U( a: L; ~! o" O
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的; C4 A# j3 L  ~1 ^( c
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
' D' z8 C% c7 L" L嘛..这个数组吧..我在以前试写队友的时候关注过一点
% R! P  N9 {" Z8 k6 t不知道XAS内部对它做了什么手脚还是为啥,( Y# b0 u! j2 U* j& h
总有那么一瞬间,没有被消灭的敌人事件也变成了nil' B/ o/ Z8 c' F+ H$ p/ Y
; Y2 j: C( C$ T
$game_map.events.values[@enemy.id].nil?7 f$ w; m1 M$ g: d
因此自然而然的返回true并符合条件把图形释放掉了
% R% p$ H+ I1 @/ }0 A! ?( O/ {0 o3 C" w, l2 y
LZ应该有注意到吧,
+ s/ w8 v4 l$ ~6 R. C我测试的时候发现报错前几帧,图形会消失,
3 T" P; H; ?. \7 h" i" }应该就是“误以为敌人被消灭”了。; ~4 d* M5 ]- M% `. ~. a
  P0 \- J2 D" ?. w+ F: g4 {( w% p2 ?
受限于个人水平,至今无法找出$game_map.events的真相..0 E; ?+ L/ b  w6 _" B9 E9 F
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 # O9 d) Z7 P' V( I2 C, Z/ e
$game_map.events
" e' l* K" C" p) i嘛..这个数组吧..我在以前试写队友的时候关注过一点) e2 p6 Q' o& c# r
不知道XAS内部对它做了什么手脚还是 ...

/ B. V. ?0 z/ o% c1 f# ~當初我把那個條件式看了三遍,都不覺得他有什麼錯0 N& ~- K3 z0 O$ E; T. c
原來還有這麼深奧詭異的事XD
  h" y" t+ w" d" T
" t+ b" v. y& \; b: q/ i錯誤發生前的確會有圖形沒顯示出來7 I: N5 D( p4 Q
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...2 b* S  a, Y1 Y4 s7 E7 [
沒想到居然是詐屍了XD* \/ V3 n( _. [. O; Q: G" ?) H

, L% q9 o: r$ G# w5 r( q( a  ~- a0 O不曉得3.91有沒有修正這問題...
+ B/ i( V3 d8 P5 n6 }& \9 Z不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。) ]; R  p; d( M; i1 N

  s* V3 R; @' m: K的确' Q, B$ h6 D  M% G: _' v
用惯3.82之后想去整3.91觉得压力甚大.." @" M8 g  M4 U( ]$ k' H5 P* t
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。( y: n# Q1 J6 r
* y* P3 }2 [2 W' ~( |6 {7 ]
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2024-11-14 15:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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