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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
3 o( w6 g$ [7 x/ r, v# m. O# {1 X5 y會在每隻事件怪物的腳下顯示( M. _( ?5 N9 [" M# l% S) I
問題是不知道為什麼. R& V* y/ q0 ^0 N0 |
有時打怪打一打會跳出
: b+ Y7 G; s5 i; L---------------------------7 |. {, Z  n2 }* c7 X3 h
XAS
  k" n& \. ^: M* u* F# H& u---------------------------
$ ^4 S! b9 L/ P2 R- z脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
  O$ r  z& g- m* \% p, [5 b" P1 A5 t; Y  v
disposed bitmap
  L6 |: l/ ]' z' M" l  ]0 Y---------------------------
% t" F% R6 e8 [/ N% f  P! a5 \確定   
' f$ F, C3 }0 I5 B) I---------------------------* B0 `6 t2 t3 w* _

0 W' d# [; p+ H4 C* o# G: N" S6 A* O這是腳本
# G0 C8 K+ v3 _1 k. e6 ?
; P. i: l# U+ g, M- U+ m
  1. #===============================================================================0 ^! I' B( {6 [5 I1 Y
  2. # MOG - s Hud 1.0      
    5 Q! U$ p9 _" K8 u! w$ N2 ?
  3. #===============================================================================
    1 Q0 Z7 R3 W% X% M  l+ a
  4. # By Moghunter % f: {/ |. a8 ]7 Z; G3 r+ Y
  5. # http://www.atelier-rgss.com
    / b; X: _6 I* Y  C4 b( J! [$ `
  6. #===============================================================================. s& g& N& A1 H1 {0 b
  7. # Translated by Calvin624 % Z$ e5 S5 M4 p' a
  8. # http://www.xasabs.wordpress.com
    2 X3 q; B) p& Y9 p4 c0 y' T; W
  9. #===============================================================================5 W" Q# k# T& x, k
  10. ###############################-DESCRIPTION-####################################  o) S* N: E2 w) O8 }& v- k
  11. #===============================================================================* S- g! m9 I* F' o# f
  12. # Personal HUD – displays the HP and SP below the hero., x& f2 f! q. c8 T' F, ~) J8 P: S
  13. #===============================================================================
    & x) Y2 V$ c0 l. M' s
  14. #+ I8 s" r( ^4 D  K
  15. # Graphics required:8 x, B2 J/ e" \, c
  16. # 7 |* ^3 w/ S! \  h4 N0 Q; [1 y% x! x
  17. # S_Border_HP_Meter.png* R+ O8 h" W2 n1 {6 L1 s
  18. # S_Border_SP_Meter.png
    - A. _$ Q4 \! I6 d* \! U3 k/ t
  19. # S_HP_Meter.png) t, n' C2 ^% X. W! w% }
  20. # S_SP_Meter.png
    . P- ?9 o  n) |
  21. #
    " w+ J) U! T7 Y
  22. # All images must be in the Windowskin folder.
    8 U% s3 v, t0 S
  23. #1 y6 Z* v6 f. Y( J3 `5 M5 E
  24. #===============================================================================
    ' D4 \3 p% ~1 n/ m" [% n
  25. module MOG# \4 F& W$ g+ s. F- i* i
  26. VISIBLE_DEF = false  
    % `  g/ T! A* ]3 U$ c! G1 }' l" m
  27. # Show HP meter?2 q) X# i  t, }' q; p
  28. HP_HUD = true" {6 t8 b' u  ]
  29. # Position of the HP border( v- U( ]' ~8 e/ ?5 [
  30. S_BORDER_HP_METER_X = -22 Y" K  R  q8 Z' q  u7 O
  31. S_BORDER_HP_METER_Y = -2  3 J( Z1 z2 \) C7 w' Y
  32. # Position of the HP meter
    + C* ^. W; Q) K
  33. S_HP_METER_X = 0
    9 Q8 O6 F  X8 K
  34. S_HP_METER_Y = 0( b$ T, g3 A7 `! j8 Y
  35. # Show SP meter?
    ! u) x" E' R; X5 w* [# l7 r
  36. SP_HUD = true  K  K; F( Y: `
  37. # Position of the SP border
    8 `% B- I, u2 v9 H* A" `6 Q, F/ i7 v5 z* X
  38. S_BORDER_SP_METER_X = 0
    & G  {* [& }! ?0 u% @
  39. S_BORDER_SP_METER_Y = 10
    5 ?0 D; f2 j. F! z# z
  40. # Position of the SP meter$ y  p- x. s2 s! f
  41. S_SP_METER_X = 0, a" Y0 [1 G0 h, ?
  42. S_SP_METER_Y = 10
    6 A% p3 J: @: M& P: g, J; V" h+ |
  43. # Switch to disable the HUD$ v' d# z3 ~8 z& Q! F, n
  44. DISABLE_SHUD_SWITCH = 5
    4 P( Y1 M2 d/ k5 y7 v1 B& F$ T
  45. RANGE = 20/ F/ f! G6 \; |1 w8 x% o# y
  46. end& Y0 y" E; e8 k9 A% L" i
  47. #===============================================================================
    - ]  L/ Y+ @$ I3 j
  48. # S Hud
    / q5 b( k2 F7 s; S- `, G
  49. #===============================================================================) ?5 t. ]4 Q% j0 K, b
  50. class S_Hud < RPG::Sprite
    0 |+ ~$ o1 B# I/ g: w
  51.   include MOG' y( H0 Z4 ?& c1 H, z
  52.   #--------------------------------------------------------------------------: F, Q0 J2 q1 Q& T8 R
  53.   # * Initialize
    7 J! c7 Q4 ]6 y$ a  `9 D
  54.   #--------------------------------------------------------------------------$ K1 n$ D) b  V! L% _
  55.   def initialize(enemy,viewport)0 ^$ [* v$ d. w( n) a( X4 g! @; ]& o
  56.     super(viewport)
    : @( }' `- k) t% M
  57.     @enemy  = enemy1 ^  F' A8 A5 b5 ~' W6 |
  58.     @battler = @enemy.battler0 Y+ ?/ d1 d" j. i( L
  59.     @old_hp  = 0
    , P7 u2 p% x8 V6 V* A$ u; x3 C8 b
  60.     @old_sp  = 0
    : P! x  |+ W- F% }. m5 P: }- Y
  61.     @old_vis = false
    . a: g4 h) s8 Q9 R' d
  62.     self.bitmap = Bitmap.new(100, 100)
    3 u8 f7 s+ P0 S% c* q  F$ P. I
  63.     self.visible = (VISIBLE_DEF)#false% i0 j3 ^# [# o
  64.     self.z = 1007 _/ `4 b; M- E( p
  65.     #HP Border -------------------------------------------------------------------
    + g) S) m! R* B4 b
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    5 g- o' A: x# |9 ?, F
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    % p$ ~  l  j# w3 _2 s) b
  68.     @layout_sprite = Sprite.new
    ! N! A- s; W4 h/ ~
  69.     @layout_sprite.bitmap = @layout_bitmap$ a, ]9 v) U' V' Q9 p: w( W
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    / ^& j6 Y" I2 h# O7 c" F
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      2 N9 q% }6 ~( O/ N! w
  72.     @layout_sprite.z = 5001* b3 B/ e7 \9 O  y) d" X$ g
  73.     #HP Meter ---------------------------------------------------! O9 u# q+ {5 e; [
  74.     @hp_flow = 0: T, A6 S/ A# m2 V+ `/ C( p! ^
  75.     @hp_damage_flow = 0. _0 d( Y, G/ h. Y3 M, p
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")) T4 D9 t) L8 g/ N6 t3 z
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    9 F, ?' ~! m$ C
  78.     @hp_range = @hp_image.width / 3
    5 j& R( ^% F4 U7 V% m% t/ l7 r
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    2 S" L( i+ J, {& T1 w, U( m' A( L5 ?
  80.     @hp_width2 = @hp_range / 27 p! ^% S. p$ k5 e* ?$ h( f
  81.     @hp_height = @hp_image.height / 2- V( @0 _  L+ ~7 y+ {7 r
  82.     @hp_width_old = @hp_width
    ! X* x; K3 V; j- s* v( p
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)) s& T: \( a6 s, z
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    4 h% Z1 o5 l2 L% W$ j9 W! R
  85.     @hp_sprite = Sprite.new3 ]+ |4 s& @4 @
  86.     @hp_sprite.bitmap = @hp_bitmap
    6 b) [( w3 f) d8 M: |
  87.     @hp_sprite.z = 50024 @: l+ z! b7 s+ u# Z5 p& A
  88.     #SP Border -------------------------------------------------------------------) V6 m" f3 b0 T* y* y$ ]
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")- d: E' J( ?; L  ~2 N1 j
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height). h/ D1 K! S! k3 j/ L7 j  s4 n
  91.     @layout2_sprite = Sprite.new/ K9 A& E, O4 Y8 |. M8 m+ S
  92.     @layout2_sprite.bitmap = @layout2_bitmap3 [$ L5 H  q) B0 z: t
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    " q1 K" S; B  i1 P& O, A
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    / e" P+ |9 K  g$ U  M4 @
  95.     @layout2_sprite.z = 5001   
    2 w) _7 S6 A: K, ]  [* S: e% s
  96.     #SP Meter ------------------------------------------------------
    0 l2 |* g3 O: k  K* O( X
  97.     @sp_flow = 0* X& E# `. Y; U! `. X8 M6 l6 C
  98.     @sp_damage_flow = 0
    5 L: }( l! O! [8 ^4 @
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    # i) R# r9 ]: m% [2 ~7 K1 x
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)5 L: G/ a2 K& @  b* S0 G" b
  101.     @sp_range = @sp_image.width / 3
    2 F" q9 w8 d9 _6 X2 r
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  : v, x- T. m8 o1 B; t9 ]! r
  103.     @sp_width2 = @sp_range / 2
    " v0 c$ u' f! c  s
  104.     @sp_height = @sp_image.height / 2
    + J6 v4 p0 @; I1 q8 V' s/ k
  105.     @sp_width_old = @sp_width% D! V/ Z9 ?' S+ S
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)# z) x, k2 I( g% v  P; {+ }7 G
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    9 W- R5 [) V& P0 O
  108.     @sp_sprite = Sprite.new0 T3 ?5 e( D5 R0 `$ H
  109.     @sp_sprite.bitmap = @sp_bitmap' ~4 e$ s( {/ g
  110.     @sp_sprite.z = 5002
    2 ^: O5 `4 L1 J3 W1 J; [
  111.     update4 T! V, e/ T' `2 f1 E; d, i
  112.   end  n9 h! W. D# U( @
  113.   #--------------------------------------------------------------------------  m4 K2 h' B- ?! G1 a6 i6 [7 y
  114.   # * Refresh  x  B; p1 Q& v. U+ M) a( e
  115.   #--------------------------------------------------------------------------; C' N4 i; S2 }  ?; G
  116.   def refresh8 T& z) L; Q2 r/ o% G* ~1 m
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
      c/ n0 V, G5 y$ D8 `
  118.     self.bitmap.clear" m" ^1 Z4 W+ p, n/ {# B" [7 ?
  119.     @old_vis = self.visible
    # K2 k: q) O! n5 h
  120.     @old_sp = @battler.sp7 W; c2 K. {" \0 B3 V  U
  121.     @old_hp = @battler.hp
    7 X% {. g$ v9 a' {& B5 V) Z
  122.     hp_flow_update4 S% x4 j3 b: U
  123.     sp_flow_update- U' m% W- E" |( ^, r  Q
  124.     hud_pos_update5 P& r( k: ]6 M9 z0 F9 u
  125.     visible_update, @1 i4 }) f* Q
  126.   end
    9 G' x& e' a* p& _. g- h8 S
  127.   #--------------------------------------------------------------------------+ D& m3 c9 g6 L9 O
  128.   # * Dispose
    0 z0 E+ \+ X7 X1 q" g$ \: D- [" D
  129.   #--------------------------------------------------------------------------7 X* u6 C. n& o
  130.   def dispose2 d+ N2 \& l* i1 a3 A
  131.     #HP Meter Dispose' [5 \; Y# v+ j0 o1 i
  132.     @hp_sprite.bitmap.dispose) z  C  o+ b9 d$ L
  133.     @hp_sprite.dispose
    2 _. `* [- w; @% }% {) h
  134.     @hp_bitmap.dispose. O9 b7 w+ g* X$ X3 u
  135.     #HP Border Dispose
    ) z( L! Q; B3 K- J# \/ j" X5 M9 T$ M
  136.     @layout_sprite.bitmap.dispose
    + ?$ }+ s1 Z" H1 U
  137.     @layout_sprite.dispose' P7 _3 ^# k. ^/ @5 O/ S0 |
  138.     @layout_bitmap.dispose; c% y+ R+ Q) x1 F/ N9 I) Y
  139.     #SP Meter Dispose# [1 `2 E4 N% ?# v" L
  140.     @sp_sprite.bitmap.dispose+ F7 c/ @5 s* r7 x
  141.     @sp_sprite.dispose& n4 _- D- ?  j
  142.     @sp_bitmap.dispose
    $ `1 c8 U# B+ Q- L1 R
  143.     #SP Border Dispose8 |; i# R* k0 G5 Q1 p
  144.     @layout2_sprite.bitmap.dispose/ {% H# E/ E% ]: R6 S5 q7 u8 a6 v
  145.     @layout2_sprite.dispose
    4 g* p# a# W& ?6 R; j
  146.     @layout2_bitmap.dispose: o# \) a$ s. T( Y& b- R6 t
  147.   end
    $ l, s5 E4 C0 y" B
  148.   #--------------------------------------------------------------------------
    ' A* T; u- y$ K8 h. c4 u
  149.   # * Update  J/ B6 h( U5 r& n9 b6 d9 ~5 ~+ {: g
  150.   #--------------------------------------------------------------------------8 y" G* D" D4 H9 A3 I
  151.   def update
    - `  ]( w" _7 O' O: o5 {% Y
  152.      @battler = @enemy.battler
    $ u/ S1 X; d' x1 n, ]1 M" Q
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?' O9 i. S, g! j0 `, l7 r, x  b
  154.      if self.visible
    . s4 w' X- U. G8 U4 l! N
  155.        refresh
    1 m8 |) x% f2 I6 P
  156.      else
    ' e0 i) D- C, A) U5 O3 @' J
  157.        self.bitmap.clear
    ; J: }) \$ D* }/ y
  158.      end: e3 s6 L" `. V  k, h# J+ z, _7 V
  159.   end
    $ l3 p8 l! d7 q4 d& [
  160.   #--------------------------------------------------------------------------
    " K1 N- b7 s7 O, j
  161.   # * Visible Update
    3 i1 p1 }( H+ N+ }& @
  162.   #--------------------------------------------------------------------------# \3 H' S7 o4 t
  163.   def visible_update+ @) F+ p( b( i- t3 K6 ~
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
      k, U1 F4 y( z7 x! v& Z# W$ E
  165.        @hp_sprite.visible = false8 @  G( g' _. u. H' j. n* l
  166.        @layout_sprite.visible = false# i0 z7 H3 `* a: p: v' I: k
  167.        @sp_sprite.visible = false/ [; f; @6 n  }$ F
  168.        @layout2_sprite.visible = false% z4 Y! [/ c. i8 A, h
  169.     else  v7 u8 N" H4 S0 s; `- _/ T% ^
  170.        if HP_HUD == true
    % w2 N5 C7 F! ?( q; {# H2 a, v5 o) E
  171.          @hp_sprite.visible = true
    , e! j% ~. R9 W3 S
  172.          @layout_sprite.visible = true5 q8 u1 ?% Y9 C; Y# a2 X
  173.        else" [0 }8 i2 c7 K: ]" n/ h9 @8 y! v
  174.          @hp_sprite.visible = false6 o! C" q6 K) m/ \. m: d: i% F
  175.          @layout_sprite.visible = false
    7 {! o7 q5 V+ `+ B  g+ K
  176.        end  0 E, S6 d# g: @
  177.        if SP_HUD == true# m9 A+ ?6 R5 W; S% P
  178.          @sp_sprite.visible = true! ~% m& }. n' p( I' Q) H* x2 [
  179.          @layout2_sprite.visible = true
    # L7 J7 u/ j! Z, l, Q% e% O: @8 Q
  180.        else
    , K7 z- R1 [. A& ~- h& A
  181.          @sp_sprite.visible = false
    % `$ S) `$ R3 F
  182.          @layout2_sprite.visible = false2 p' H$ t$ `3 o
  183.        end
    ) H9 }4 s9 `: S6 i; }- ?, C
  184.      end  * x8 a# C1 Z# K! l( Y
  185.    end 5 M# ~& v8 j/ r* r2 m: {$ x
  186.   #--------------------------------------------------------------------------8 \5 o2 l( E- y, u! O; T! Q
  187.   # * Hud Pos Update
    , R* f" v) b) Q2 [" r
  188.   #--------------------------------------------------------------------------
    2 I: [' c. |9 I: j+ {( o7 ~
  189.   def hud_pos_update
    $ U' r6 U' W1 d: x* l& b- F; r
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    . _2 T  C) Y8 i- }4 f: C
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    * Z& b# C; U4 x( S+ [) ^
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    + N3 L3 y7 a/ q7 s4 O* M+ |
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    * c- {6 o: r1 Z; ~
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    / s4 h# g1 `% t" k
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  1 L4 R6 T( s5 v# o
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    / _0 _# N2 P6 H" @, E
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y       I! J; I$ w, G# U0 j% @
  198.   end  
    - Z' y) j; ~+ k$ _8 S
  199.   #--------------------------------------------------------------------------3 ]( Z+ m+ S& N1 {
  200.   # * Hp Flow Update
    : @, T6 N) K9 l. @# _9 B! s1 k; F, ?* u
  201.   #--------------------------------------------------------------------------
    3 j' N7 q0 `  I. _2 J
  202.   def hp_flow_update0 _9 `5 a* F* Q  G+ g" Y
  203.       @hp_sprite.bitmap.clear
    & g2 p4 I( T5 H! ~* V- s
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    8 G: N( J& _2 @- e! V
  205.           #HP Damage---------------------------------0 z! a: W1 w  h* N$ T8 K9 A5 Y
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100! }* [& T$ _, i/ ?0 E% ?/ O
  207.           valor = 0.5 if valor < 1          4 R: {8 v1 L, q. A0 M
  208.           if @hp_width_old != @hp_width
    % a- R4 w" M+ i& a& k: b
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    5 B9 M( K9 d$ s: Q, D/ w5 G8 `
  210.           if @hp_width_old < @hp_width 6 N8 h) ~4 E0 T6 U' K
  211.              @hp_width_old = @hp_width
    1 l) E4 [$ Q* Z+ B8 ]) _
  212.           end      
    : z( D' j( l7 N! g+ v
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    % o# ~1 Y" A7 }0 C% |
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    6 Q7 m$ K  ?4 E, b( K, g
  215.           end        + T. J5 W) l* }5 w2 m, D8 J1 M
  216.       #HP Real------------------------------------! ~5 B! R* |8 p- c
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    9 f0 Y5 k7 d' h
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    5 h" s# e: t1 A- y" D$ A
  219.       @hp_flow += 2  
    4 D" A( g5 T: c7 X/ C- a2 ?
  220.       if @hp_flow >= @hp_image.width - @hp_range
    ; L  v4 G2 r7 O2 S
  221.          @hp_flow = 0  
    . O" e! y. _1 r7 i4 w
  222.       end# e. `6 K$ x. t! f2 G% b$ i
  223.   end    ! ^7 x: D9 b3 |7 T' P
  224.   #--------------------------------------------------------------------------
    - N7 N$ h3 f; g# X
  225.   # * Sp Flow Update
    . B2 ]8 }) T; g3 r1 l
  226.   #--------------------------------------------------------------------------
    . \8 b8 [. [( l& B
  227.   def sp_flow_update
    ! p3 X3 j) ^+ ?; u
  228.       @sp_sprite.bitmap.clear/ y6 X0 e( _' N1 O. B6 q! J# v6 J* G
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    # {' d  C3 U- I! D+ l7 c5 @
  230.           #SP Damage---------------------------------
    2 ~7 {& J2 f8 K2 y& i  n% T
  231.           if @sp_width_old != @sp_width4 r/ w3 L6 j7 L1 a+ S% R
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    ; z2 i) N6 F6 v8 b
  233.           valor = 0.5 if valor < 1              
    9 Q' [/ \$ [0 j3 K9 A
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    0 R# N7 d1 s+ m
  235.           if @sp_width_old < @sp_width
    : \2 ~6 c- T3 p0 |
  236.              @sp_width_old = @sp_width6 [5 |6 z# r( H) _. z
  237.           end      2 W# o) z4 X' d/ c0 a
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    / f7 k' b8 Q- |; q
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) & V9 E0 J& H+ F
  240.           end7 k2 g/ h% P1 u0 m1 N
  241.       #SP Real------------------------------------
    ; m* f" A2 e0 V  O6 Z
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)8 M! |! m( m5 j" n6 k
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)1 i6 G9 b& g& i, @6 m
  244.       @sp_flow += 1  
    # V, v# o4 I; J& O' ?) f& W2 |# U
  245.       if @sp_flow >= @sp_image.width - @sp_range
    0 W& @; v; {  t& Q* t
  246.          @sp_flow = 0  : P* `! [! f0 h# A6 f, V
  247.       end& k5 g: \8 _7 y5 p8 D6 h, s. z
  248.     end            
    1 h- ]! C' J, N9 T, {# x
  249.   end
    5 }, j" T; k8 B3 ~" [
  250. #===============================================================================( S) a; e/ _* T% R% i. z! T  H) n
  251. class Sprite_Character < RPG::Sprite
    8 |4 E0 M- e) ^" e# [7 \8 j
  252. #-------------------------------------------------------------------------------
    6 X5 V3 Z8 Y% e0 _
  253.   alias :xas_emini_hud_init :initialize: |, e9 B4 J/ y- F
  254.   include MOG
    . g+ g$ ?1 x9 B3 j* e% [
  255.   def initialize(viewport, character)
    - s; }* f* |9 p: e' J5 t" ^
  256.     xas_emini_hud_init(viewport, character)
    : z, J  M+ ^0 u1 e0 x0 |$ e* ]& t
  257.     @viewport = viewport- h+ u; ]. D- ~5 B8 C# O
  258.     return if @character.battler.nil?2 H) ?; i3 s; k8 W
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)1 G' M7 j' M; y7 p- t6 d
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    3 c: q. @( a7 Q
  261.     return if @character.battler.is_a?(Game_Actor); @! q$ [9 W; K# j  j
  262.     @bars = S_Hud.new(@character, @viewport)
    5 u* b9 s" |! b) M+ J  a
  263.   end
    + c+ Q( `" Z1 ]  ]0 `0 L( e
  264. #-------------------------------------------------------------------------------/ K9 f8 c9 H& v) c, i
  265.   alias :xas_emini_hud_up :update
    0 C! c& r0 `/ K7 N# I
  266.   def update
    ; I( P! f6 C& m5 b3 {
  267.     xas_emini_hud_up
    7 t- D- a  T* g% B8 V7 h
  268.     return if @bars.nil?
    ! x( l3 e) O& i! Y7 X/ D$ @
  269.     return if @bars.disposed?
    8 Z8 p# `" Z* }0 e( B; o
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs# C6 w3 Q/ ^2 [3 A# T5 n
  271.     @bars.visible = (dis <= RANGE)
    5 \6 d1 }6 H" p- c1 g# [4 l% P$ r
  272.     if @bars.visible
    : Q1 e% @7 K( W8 C7 f+ t' [
  273.       @bars.x = @character.screen_x# - @cw / 4
    ' Y, g* p4 R) y9 _5 e
  274.       @bars.y = @character.screen_y# - @ch / 4% m( ]; n& J8 c2 B7 o
  275.     end  w9 v. O; D/ w9 }, f
  276.     @bars.update
    7 h! A: O0 j9 `( X& i% h; c
  277.   end
    % }7 {/ l- W  t, R& r6 @
  278. #-------------------------------------------------------------------------------4 ?6 \/ R1 C! K
  279.   def dispose
    ; ]- h% l3 v7 b3 |! Q* h/ s
  280.     super" e! J& C* ^# ]$ w" `
  281.     @bars.dispose if [email protected]?
    8 s9 ]4 [9 ]# B# K
  282.   end
      ?1 x; @6 _5 k: `% q' u
  283. end1 k. q$ a. ]0 n6 X( P
  284. # S7 Q" W" ~  }
  285. $mog_rgss_s_hud = true
复制代码

$ R- c0 l% l  Y& W9 \3 `0 _, l' A" [
4 z% b0 Y; B- q6 V
上面所說出錯的203行內容為3 b" t# i/ W' j: f- J
@hp_sprite.bitmap.clear
& ]3 ^5 H. t; Z/ L9 e+ \
2 Y+ P% x* Q7 E+ |. k+ g# o9 h: h想知道怎麼解決
4 i$ J$ H  t5 t' t# B8 p: s: j0 F6 V( O& }8 p6 P
該腳本支持3.820 M* H5 J+ f: ]: `" Y* u  Q/ F
" s5 U; z( H9 a) c! G" h! @
下面是圖檔,要塞在Windowskin下
$ Y+ a: v9 h6 P; u6 _, n3 p7 V- `  W1 }
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) $ b6 Y% e+ p# U# w' {3 w4 F% M
3 F+ U  g0 \; U# c

5 U; o) r+ u- o, V1 C# l6 A, `% N9 H3 i+ S: R' H- B, W

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
; a/ |  e- j% [9 W结果尝试刷新了一个已经释放的图形
6 d. V9 k) O/ a( w) W* d, t6 R" v* T3 `# @, b9 q
, W, M& p' H9 o

- D8 J; Y0 c. ~# c虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?, J8 L# Z: }( _# i: Q
复制代码
不要后面那个条件貌似就没问题了。
) z  L( m, M4 M+ W, Z. ~- h8 g6 s4 n8 X- R# h- [- W; x' g
; ~/ O1 v/ [& E- _" e! e- j+ ?3 r

! W& v2 E$ v5 d( k+ D
4 u. H1 T7 K' [5 c/ A6 D5 a
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 + J7 t5 y0 C; ]% b
貌似是释放的条件不合适
  D! D$ E+ b: a8 W结果尝试刷新了一个已经释放的图形

, e" D7 m/ V" j- D' I# w把後面那個條件弄掉後,的確沒問題了
" M- c7 K/ _, u9 [目前從關頭打到關尾結束都沒再彈什麼錯誤! w$ y! T- O6 @" z5 j, _0 K
非常感謝9 K9 j& i; H4 a' C; C+ m2 l$ ^
& y3 s) m* {; L4 o9 G3 h% e
不過我是參照著別人腳本改的
0 U$ S7 n; _* F- ?他寫的條件式也是那樣,但我用他的沒什麼錯誤
* {# z, G. U6 b8 K( x不知道是怎麼回事3 [3 J: ]# p$ Z7 T
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的, N% T* U7 z/ {' w) h. \
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
2 g- Y' H* X) M" {" Q嘛..这个数组吧..我在以前试写队友的时候关注过一点
8 s6 R# _6 r4 o: w不知道XAS内部对它做了什么手脚还是为啥,: ]2 F: e# G& d1 B
总有那么一瞬间,没有被消灭的敌人事件也变成了nil2 q7 j5 M7 }& @. q) l3 }! d
" b  a+ t' }3 [6 ]
$game_map.events.values[@enemy.id].nil?+ e  F7 S& {# K0 L7 C1 t  {1 M4 q- O
因此自然而然的返回true并符合条件把图形释放掉了7 z9 s! {- ^" Y. E! L
9 z: y2 h! R6 i( \
LZ应该有注意到吧,, D2 ?9 h0 v( G7 \6 {& O9 _
我测试的时候发现报错前几帧,图形会消失,
4 X5 D; O; c) v1 k' _" Z应该就是“误以为敌人被消灭”了。& i' I0 u# E2 n/ K8 v

6 h% F% l! ]# P  `受限于个人水平,至今无法找出$game_map.events的真相..2 O- J4 S$ [* w5 |$ h
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
2 p. O2 V% f, u( ^2 {, C% s! I$game_map.events: E' j4 G. F. D. k" n& D8 }. O7 s7 p
嘛..这个数组吧..我在以前试写队友的时候关注过一点
, F0 }8 H8 K; Q不知道XAS内部对它做了什么手脚还是 ...
) ]; R/ d7 H$ C4 }  i- t0 W
當初我把那個條件式看了三遍,都不覺得他有什麼錯% I- v# U4 Q; u
原來還有這麼深奧詭異的事XD8 j( B! T7 b! Q. A+ `' Z
9 ?! z5 ~2 s5 H) T5 H
錯誤發生前的確會有圖形沒顯示出來
  l7 ~/ p1 S- f$ t) _- P- b5 H不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪.... b  [* ~. Y: l3 k9 T' D; M
沒想到居然是詐屍了XD
* p0 s' ~# N! o: D0 b( ]% I. a9 m  ~4 L
不曉得3.91有沒有修正這問題...
  H" |/ R5 Q4 z1 w8 b8 s' N不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。; X/ w7 n9 m, z1 ?+ `

: M  I( Y3 U  J, y% c+ E* e的确
' G6 L& I$ l0 n2 C% C* s2 Z用惯3.82之后想去整3.91觉得压力甚大..
  J) H, g0 r& H. S# o" a- x% s6 g0 C干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12289
在线时间
21817 小时
注册时间
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”。& d" O  x( b% Y; h* n. t

- I! G/ N2 ~* D8 b, G然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2024-11-22 04:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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