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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條# |, ?" t9 q* l$ |+ L3 W$ z
會在每隻事件怪物的腳下顯示  X" N1 E7 e) j+ I, B8 `1 g
問題是不知道為什麼. h! |: I. {3 z; v- r# T! [
有時打怪打一打會跳出
& h1 b8 s; ^1 a! \) J---------------------------( Q: M# W# U: }, Y8 ^
XAS
1 B( C( B) @) \% z) m---------------------------
. D7 }4 V" F% F  M; j& s. R脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
6 b3 r7 t3 k; i  c( a: {" P
% p( z6 p0 G- B5 wdisposed bitmap
. C( p" V8 R4 U---------------------------" X# w2 g0 Y. x/ w9 M
確定   
$ y5 m& H: K  ~7 h3 j---------------------------
6 h1 X* u4 T  |2 o$ X  f3 P+ I( h/ G4 o& g; {) ]: y! X  K
這是腳本/ T5 Y- {0 e) t6 w' c: R, U

1 ?6 e4 i( n2 j' K5 v& ^7 W
  1. #===============================================================================
      b1 F  X0 @( }% V" A6 V
  2. # MOG - s Hud 1.0      
    : X- x- M" H  b7 i: m  d+ t$ \& R/ f
  3. #===============================================================================- N1 Y. d3 L: ?& `' U
  4. # By Moghunter . W- k5 l7 t. e/ @% O
  5. # http://www.atelier-rgss.com
    2 R/ E- h/ ~( ], I! F1 X! z# [
  6. #===============================================================================3 j$ W$ s- a& l' N, f: e' t
  7. # Translated by Calvin624 / a$ l( |, k. v4 U' z0 _
  8. # http://www.xasabs.wordpress.com
    1 }4 ?+ N3 K4 X
  9. #===============================================================================
    6 x9 e3 f7 M: M4 y
  10. ###############################-DESCRIPTION-####################################8 g# K# X5 G7 U/ V! u# X% G
  11. #===============================================================================5 S' h7 ~' G3 P! k8 P8 n+ f
  12. # Personal HUD – displays the HP and SP below the hero.
    ; s) G/ A& _1 T/ l6 l6 U
  13. #===============================================================================
    . }* e) d! {1 Q1 m( S- W
  14. #
    * K0 N- Y. z0 W+ E
  15. # Graphics required:$ ^5 y- v0 c3 k. X) r5 l7 w
  16. #
    5 Z, O# j% b9 D. V) X6 a/ r% J9 v
  17. # S_Border_HP_Meter.png7 P5 k* M- M6 ^6 H
  18. # S_Border_SP_Meter.png
    - `  H# f0 E, k
  19. # S_HP_Meter.png
    ( v0 T" r- B7 G3 s& O9 W
  20. # S_SP_Meter.png
    # l* @5 L" q' i1 N0 [0 H) p
  21. #
    5 }  ^. c/ n+ p- C
  22. # All images must be in the Windowskin folder.& r7 |; C# v/ A( ~) @: ?+ A0 q
  23. #" p* i3 D3 e& f; B& ?7 B! o
  24. #===============================================================================# P: \# _+ t* [& s9 F
  25. module MOG
    4 p, r. T* B5 ?4 `( v  p  Q
  26. VISIBLE_DEF = false  ! L1 U; }  G( u) h$ D; B6 m  q$ k
  27. # Show HP meter?
    1 W; }7 h7 i4 \, L6 k
  28. HP_HUD = true
    ; P# g5 h) Y  e
  29. # Position of the HP border
    3 S. [& w; o  j) h, x3 o# j% l
  30. S_BORDER_HP_METER_X = -28 M% q6 P0 h5 A7 o
  31. S_BORDER_HP_METER_Y = -2  6 h  S' B1 p4 S9 a4 l8 m
  32. # Position of the HP meter' ~! X, `3 t1 @$ f2 ^  g7 n
  33. S_HP_METER_X = 06 i$ @1 W( e! j# T! l: K: a1 A$ X
  34. S_HP_METER_Y = 0) q  r# B  K; W. J6 D9 Y
  35. # Show SP meter?
    3 @0 L; j7 n3 Y1 x* K4 u( ~
  36. SP_HUD = true9 {7 r2 n* n- }) D; m4 }
  37. # Position of the SP border
    ) u" ~: G2 E- G1 y  B
  38. S_BORDER_SP_METER_X = 0
    / `+ \# p4 Q8 }3 X" N
  39. S_BORDER_SP_METER_Y = 10 - j! T' A, ^% M7 l! h# e
  40. # Position of the SP meter
    * n" T6 I) `2 ?& Q8 J% a+ f6 K( M2 b
  41. S_SP_METER_X = 0# t* a3 [& M7 B4 j4 O$ z6 B- \
  42. S_SP_METER_Y = 10
    / H  U1 a; [5 U% {
  43. # Switch to disable the HUD2 h& O& N! C: x4 e  w
  44. DISABLE_SHUD_SWITCH = 50 H2 W  ]5 Y6 y$ p5 A, U
  45. RANGE = 20* |' Y  R' y4 ?) q% K
  46. end
    . k& h1 H1 }1 P1 U# t0 i4 ~4 q
  47. #===============================================================================% `! A3 _- U- S0 @7 x
  48. # S Hud
    ) v" f5 V9 n* Y
  49. #===============================================================================2 G1 C3 s- s/ k' X. @& E
  50. class S_Hud < RPG::Sprite  D! u9 J- Q- R, }1 A2 ~6 U# g
  51.   include MOG, A5 t4 i% u$ D. F* @) a3 b7 B
  52.   #--------------------------------------------------------------------------
    $ K* u0 B( c  {- @( v
  53.   # * Initialize1 U3 d" @) T. M1 K* a
  54.   #--------------------------------------------------------------------------5 c) h$ a: T' ^) u$ q. n# {
  55.   def initialize(enemy,viewport)" H* Z9 {( b+ n6 b; D( ?
  56.     super(viewport) 5 d/ s. a+ n" S4 j
  57.     @enemy  = enemy+ A5 m/ z/ G2 P/ u
  58.     @battler = @enemy.battler6 N5 Y. D! V+ X1 [" f/ U
  59.     @old_hp  = 0
    6 t0 `% _" C! Y# A
  60.     @old_sp  = 0
    # j7 u) P# L$ K8 Q; s: j, r8 R
  61.     @old_vis = false
    0 ^7 s. P4 E0 Z5 t* X2 c
  62.     self.bitmap = Bitmap.new(100, 100)  k7 {4 W8 Z8 t$ l
  63.     self.visible = (VISIBLE_DEF)#false, L9 r5 G2 }! T2 b2 F# H5 S6 S
  64.     self.z = 100
    4 k' q, b* j5 X! e* K2 E6 V
  65.     #HP Border -------------------------------------------------------------------
    + S3 ^9 U9 g# k2 v$ q2 A  ~) R; q
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")5 K$ P  s% K% N- ?
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    . R9 `) A9 |) k9 _! Y
  68.     @layout_sprite = Sprite.new0 s5 b8 r: W) z; [+ x- V
  69.     @layout_sprite.bitmap = @layout_bitmap( ~) f, F6 ?# s7 t
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)6 S+ {( y9 @0 b# i
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      - d8 }4 i7 |+ X' j* j; W
  72.     @layout_sprite.z = 5001
    " [+ J! }2 b/ V! `
  73.     #HP Meter ---------------------------------------------------. \) W& ~/ j* c! E6 ?2 W
  74.     @hp_flow = 0
    " Q$ o" ~, P0 t$ E5 Y
  75.     @hp_damage_flow = 0# |2 t" B- r  S8 {) v/ F
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    4 H3 P0 Y! r  |" h
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)% f' c) b9 |7 r# U$ S
  78.     @hp_range = @hp_image.width / 3
    7 @# w4 Z: p7 ?
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    : N; \3 |9 A# T5 \6 w/ R1 z
  80.     @hp_width2 = @hp_range / 2
    % V- F1 S7 D1 r2 f6 B6 x7 C4 z
  81.     @hp_height = @hp_image.height / 23 L# b. J4 W9 V- Z9 c, e
  82.     @hp_width_old = @hp_width
    " Z) I4 R5 @2 {; ]1 F  D6 u
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    . |5 d$ j. y. C) [1 x
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    ; l# z# f1 c! D4 p+ v" g
  85.     @hp_sprite = Sprite.new( p% `6 A  S8 E
  86.     @hp_sprite.bitmap = @hp_bitmap
    5 W$ ^, O2 Z( ^2 }; x
  87.     @hp_sprite.z = 5002) I( E1 z7 L3 L
  88.     #SP Border -------------------------------------------------------------------
    7 G# @4 u/ \: U6 O8 {5 n3 [
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")+ j$ L0 A% h: N
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    % N6 O# N( D! q3 B- T# P, n
  91.     @layout2_sprite = Sprite.new1 Q8 L' O) e2 \; s* @% `9 q
  92.     @layout2_sprite.bitmap = @layout2_bitmap$ k7 [, z7 B% e0 D/ `( n
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    4 C4 S1 [* _2 }- |; v
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    : n1 r$ X- L) ^0 e; s: r
  95.     @layout2_sprite.z = 5001    , l" L- ^( c9 ]& `3 B8 y
  96.     #SP Meter ------------------------------------------------------% ?. J- S; R- t0 o
  97.     @sp_flow = 0
    0 ~1 L5 t! v, @, {! F  `+ L
  98.     @sp_damage_flow = 0
    1 K5 c1 N0 O% `3 o% T# K0 g# @
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")) m' J5 N3 d+ l4 V+ I& r
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)3 l0 }* L5 n& r" B; S, S$ @+ X
  101.     @sp_range = @sp_image.width / 30 S* @. h  o8 D; p: @8 k2 @$ g
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    5 p/ X9 W7 p- _& e' j& o
  103.     @sp_width2 = @sp_range / 2+ F9 ]: T9 b6 T- g
  104.     @sp_height = @sp_image.height / 2
    5 v7 c( G* t. E- ]3 M$ h
  105.     @sp_width_old = @sp_width9 k; ?$ E, d: S$ ~% D: j, U) r
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height): I5 E4 p. j% e
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    # z' B: b6 R6 A1 i- b: s
  108.     @sp_sprite = Sprite.new/ t7 d1 g) w+ h
  109.     @sp_sprite.bitmap = @sp_bitmap
    3 J5 j$ a( `0 Z! E: M
  110.     @sp_sprite.z = 5002" k& v+ v  \' c7 d
  111.     update! ~& @. _- m# M3 b4 y
  112.   end# u( B- d. ?5 S* l
  113.   #--------------------------------------------------------------------------
    ! q  d7 y& ]7 @8 x0 w; o
  114.   # * Refresh
    . I4 S& s$ r8 A1 P
  115.   #--------------------------------------------------------------------------$ C/ [" t- \2 C3 X* p
  116.   def refresh
    3 d) m) L  `$ h5 j
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    : |, o8 ^# v$ v# e: k% m' d% \
  118.     self.bitmap.clear% O2 G* q5 h5 R- f
  119.     @old_vis = self.visible1 m4 i' ^5 x  L6 w
  120.     @old_sp = @battler.sp$ b) F3 s" e: u+ h0 n/ `
  121.     @old_hp = @battler.hp
    6 U4 k4 U/ d9 E+ `& ~0 c3 l/ G
  122.     hp_flow_update
    0 [$ [2 K( d7 I& S
  123.     sp_flow_update
    " [1 W( p6 S9 E9 F
  124.     hud_pos_update+ n/ P4 ^" J7 n5 c: B
  125.     visible_update1 i6 `  U/ w9 r/ F# l. D: P% Q9 Q; m
  126.   end
    0 ~: K4 X+ y& R
  127.   #--------------------------------------------------------------------------
    3 E  _4 D# e# G; H1 w
  128.   # * Dispose4 _$ q! A& l3 ?9 q( G# u
  129.   #--------------------------------------------------------------------------0 F# p6 d1 H2 V6 R. I2 s
  130.   def dispose, z+ h7 ?" W" W
  131.     #HP Meter Dispose
    9 A, O+ u2 f6 y* N9 L
  132.     @hp_sprite.bitmap.dispose
    : w6 w/ a: v; ?! _% N2 B3 u
  133.     @hp_sprite.dispose$ M, i( y' G* B$ D- L
  134.     @hp_bitmap.dispose7 l7 K) \& U, c0 g
  135.     #HP Border Dispose! @5 V3 C) x* c9 M
  136.     @layout_sprite.bitmap.dispose
    ' T; F5 {% _1 \& v' M
  137.     @layout_sprite.dispose2 L) F  Y( ^4 X2 I4 q: p$ D1 ]
  138.     @layout_bitmap.dispose8 f8 u2 v$ Y: c2 ]
  139.     #SP Meter Dispose8 n( D( ]6 K* a+ k4 W3 U
  140.     @sp_sprite.bitmap.dispose
    ; l& h6 t) y* }# k' t9 N1 q  s
  141.     @sp_sprite.dispose8 M. n7 D0 d% Y& Z! A6 ?
  142.     @sp_bitmap.dispose# D* Z1 C# w4 F/ l+ M: k
  143.     #SP Border Dispose/ b- s& N' D3 D- T# i
  144.     @layout2_sprite.bitmap.dispose
    - E' D6 W  n0 h* q
  145.     @layout2_sprite.dispose
    ; L& p$ w8 j0 h
  146.     @layout2_bitmap.dispose8 A* K& F+ E" y6 k5 y
  147.   end1 F9 s6 C1 |8 W9 j6 o8 g3 y! C
  148.   #--------------------------------------------------------------------------
    7 `) a7 R/ _% e+ z
  149.   # * Update( c( k! d: M$ |& J. v
  150.   #--------------------------------------------------------------------------
    + ]. D& [, s( M, A, j' F
  151.   def update8 o# |# ~" E2 X; g) [
  152.      @battler = @enemy.battler
    - B" y- W% {8 \" M$ f* [+ x
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    & x! u  o) f; S( B; m6 c# ?
  154.      if self.visible
      A* P+ |) B3 ^" s6 r3 K4 B
  155.        refresh% W4 v* r  d) r2 o( l6 H
  156.      else& l0 K4 ~6 U/ V% D
  157.        self.bitmap.clear
    9 w* M7 B6 \6 p) [: w
  158.      end7 X& `# U( h5 u6 N; o# h9 g
  159.   end
    * y% R; N% X6 ]: Q# p6 h" C2 h
  160.   #--------------------------------------------------------------------------* G% ?5 M) n" T/ X3 d5 Q0 ~1 w9 P
  161.   # * Visible Update$ Z4 O2 R% g0 H( O2 ]; I& }
  162.   #--------------------------------------------------------------------------) O% x9 I  D9 M2 p
  163.   def visible_update
    ; E# ~6 F2 e; ?6 t
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    6 N; ?+ S) B, d
  165.        @hp_sprite.visible = false2 ^. z( k/ t6 @
  166.        @layout_sprite.visible = false3 F+ [+ [8 x0 }7 B2 S
  167.        @sp_sprite.visible = false  b" q* F7 S/ e
  168.        @layout2_sprite.visible = false" b1 t5 z2 z* L/ Z$ @, {( V; Q
  169.     else+ q+ b0 g3 }1 A$ x9 K
  170.        if HP_HUD == true$ H2 E6 P4 Z& K; J3 B( u( H2 T
  171.          @hp_sprite.visible = true2 F, Z5 x; g& n; {+ U! C; v
  172.          @layout_sprite.visible = true
    0 k; Y* {' f! ~; X, V/ M3 n2 Q: q
  173.        else* u2 u  t8 K1 X& \
  174.          @hp_sprite.visible = false* i( v! w' w. _4 t
  175.          @layout_sprite.visible = false
    0 f4 l: P' h1 a" I% o0 v
  176.        end  ) P' i; W9 I1 h( L1 ]" J% Q
  177.        if SP_HUD == true
    4 b- _& S% u, C
  178.          @sp_sprite.visible = true
    : c  X* E6 F6 c1 Q$ Z+ W
  179.          @layout2_sprite.visible = true
    0 A6 E8 Q1 m) Z6 b* h
  180.        else! `* j5 P$ ^) r# T% ?& v+ m
  181.          @sp_sprite.visible = false
    & t0 _4 `0 A5 c. o$ F; a
  182.          @layout2_sprite.visible = false
    7 g) O/ B5 H" R0 }% V% Y$ F
  183.        end
    ! N) s+ c% i+ n% P
  184.      end  
      W3 u1 \! c) q* v) q8 P1 Q+ ^# l) A
  185.    end
    3 |' s% p! w4 C4 M
  186.   #--------------------------------------------------------------------------
    " R! V7 K8 \* l9 N  H% [
  187.   # * Hud Pos Update' U" t5 \' _) x& Z! y
  188.   #--------------------------------------------------------------------------  G) K# z3 c& S8 x# g
  189.   def hud_pos_update/ _% q" S- g3 L$ g6 q9 p
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    , z, o9 Q( x/ w# L7 f! g' E
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    4 m' |7 y, n5 Z: b5 U! i
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X3 k$ d4 d7 X& c- |% u
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y 2 s3 a* F+ A: e1 ~
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X7 l2 [2 y; r+ k: _# j
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    " R0 l" p+ g! O
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    ' N, G4 U( t6 f8 m
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
      c) p" w( O$ Z
  198.   end  
    & R1 V, x6 k3 w4 E* L
  199.   #--------------------------------------------------------------------------
    ) i% C. `; Y3 g$ \
  200.   # * Hp Flow Update
    ; x% A6 z4 L0 J% ^* a9 p  A
  201.   #--------------------------------------------------------------------------
    - i$ o0 L6 ~( K1 B. Z- Z0 W# A
  202.   def hp_flow_update
    % Q4 k6 u/ R& L! w
  203.       @hp_sprite.bitmap.clear
    9 c* B. f' d* G# u$ }& R5 a/ e
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  . H  m% {& }" G1 L5 s( I
  205.           #HP Damage---------------------------------
    & k  C5 V9 O; f  w( @0 u7 h
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100# H0 B/ P( h- f6 q2 f4 s( S
  207.           valor = 0.5 if valor < 1            p/ p1 ^1 f2 ~9 ]  O
  208.           if @hp_width_old != @hp_width
    6 A$ m' t% _1 H( l$ I# G) x5 d2 i
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  6 z& H" r. F8 O" x8 k
  210.           if @hp_width_old < @hp_width % k( ?. A& m6 ~4 W' B1 m
  211.              @hp_width_old = @hp_width$ `  S! Y0 l! e
  212.           end      
    ' S6 Q8 A0 b) H( G, L
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)  T& n5 ]: |3 x* N
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       3 U" _$ ]' C, f0 i+ n( v9 L3 I- [
  215.           end        
    ) ]& w4 y' `1 y2 U' C/ L
  216.       #HP Real------------------------------------. z* C7 p9 Y) {( H$ r# T
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)% C9 |2 {, ~- a- g6 ]& N( s% Y8 R
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    9 S5 X! E+ w# W- l( D
  219.       @hp_flow += 2  ) K8 C: N# U1 a, \$ ]
  220.       if @hp_flow >= @hp_image.width - @hp_range
    # W. }8 D8 `4 D6 p8 l
  221.          @hp_flow = 0  : j1 b8 @! U; [- f9 F. A* k* Y8 O
  222.       end- ?; Y! @* S5 Q- r; V5 i, a
  223.   end    / N! q6 \$ {/ ~3 k3 C& u
  224.   #--------------------------------------------------------------------------
    6 ^, f' _- a+ B
  225.   # * Sp Flow Update
    & ~  v: j" n7 F) z
  226.   #--------------------------------------------------------------------------0 q5 I4 }: s7 B2 V1 O# B( N9 h" M
  227.   def sp_flow_update
    ! f. c# z0 P% U4 w
  228.       @sp_sprite.bitmap.clear- F) P# Y, q6 G2 s1 E
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    8 i$ y  k7 X( q7 z$ n. p
  230.           #SP Damage---------------------------------
    0 G- q  R! U) r5 j
  231.           if @sp_width_old != @sp_width6 ]8 {! |, V  r6 `3 q
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100/ d3 t9 L; [6 E3 t
  233.           valor = 0.5 if valor < 1              ; |. S) H$ s* \0 i0 B; r% `, A& y
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    " W) n# T& q0 e- Q3 l5 w/ A
  235.           if @sp_width_old < @sp_width
    + y3 `2 S4 m& o. t- E' {) \2 A( {+ n
  236.              @sp_width_old = @sp_width
    0 v- Y1 I" o9 Y. Q4 G
  237.           end      9 a5 X% q$ Y# o/ O5 P
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)' A+ [9 q( k1 ]' l5 [2 |
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) ; ?) N- N5 r% l  M; p
  240.           end% M3 O1 A1 K; h- W* x  e
  241.       #SP Real------------------------------------% a! O* n# }2 T- M( F) |& J
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    2 I$ T( a) H9 e6 Z) Q& N% g
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)/ R. {; L: v; E
  244.       @sp_flow += 1  5 P% C# }& k  v. D
  245.       if @sp_flow >= @sp_image.width - @sp_range2 k) ?9 v0 w" j$ l$ Y0 H4 L
  246.          @sp_flow = 0  
    1 s( \% w- u- D( p4 c# ?7 c5 I
  247.       end1 `+ i& V: ^' e% |! x3 I0 W: s9 e/ x! T
  248.     end            
    # B2 h, B: `6 A3 u% z
  249.   end7 x: @( F( x/ _2 I, `
  250. #===============================================================================
    . P2 ^. b6 |" ~; s4 g5 z( g& L
  251. class Sprite_Character < RPG::Sprite
    / W7 Y7 g6 I6 F( I  d8 L6 b
  252. #-------------------------------------------------------------------------------2 ~- |2 Q# B6 G8 u
  253.   alias :xas_emini_hud_init :initialize5 z/ y. i; o$ ?2 V# M$ }1 J
  254.   include MOG$ x1 K7 a) l3 Z% s
  255.   def initialize(viewport, character)
    5 Y1 k/ G# C( }. `
  256.     xas_emini_hud_init(viewport, character)# `5 K5 T1 f9 T7 ~
  257.     @viewport = viewport" R, e  l8 q2 y' u, ^
  258.     return if @character.battler.nil?
    / x' i" i: _5 d. N6 L
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)5 f3 M4 X" p; N8 Q6 r' T
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    ( e$ h7 p% {  K# F
  261.     return if @character.battler.is_a?(Game_Actor)
    + e7 M. ~  _: F4 l! X4 ?2 R; B
  262.     @bars = S_Hud.new(@character, @viewport)' K2 T, d8 o$ p. m
  263.   end
    5 a% N: O  m) _% H1 T- n
  264. #-------------------------------------------------------------------------------: _" ?+ {' k' I  ?( n7 z
  265.   alias :xas_emini_hud_up :update
    5 X; z5 F1 \& Q$ T% `# s
  266.   def update
    0 b& R1 Y5 q: p2 m, L6 ?: J% d
  267.     xas_emini_hud_up
    + F# }  A# A- P
  268.     return if @bars.nil?  z, M, W4 v, s* U1 M& b
  269.     return if @bars.disposed?
    8 k# B) u) Q  L1 c4 {
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs/ u9 l4 D5 G2 ~4 _  Q6 ]
  271.     @bars.visible = (dis <= RANGE)6 G: {* d4 [2 w
  272.     if @bars.visible
    3 b5 S( n$ ?. h! b6 _. e! p4 a  m
  273.       @bars.x = @character.screen_x# - @cw / 4
    2 W7 o7 |. j, `$ g6 V5 X
  274.       @bars.y = @character.screen_y# - @ch / 4( z) y4 B2 U7 k* @( K( o+ V4 S
  275.     end8 Q( j8 Y# ]4 k  y' `. D) U8 ~
  276.     @bars.update8 z4 s. n( v/ F; |6 q0 q( S, g/ A5 `. m
  277.   end
    ( J6 ^$ f  E7 A) l+ c
  278. #-------------------------------------------------------------------------------' Q# i( X' I+ C* W9 N( F0 b
  279.   def dispose
    8 V) ]& U# i1 K
  280.     super& F! W. E8 D( V1 Y2 ?6 b
  281.     @bars.dispose if [email protected]?
    ! r+ H3 x; Y6 d' Z; d9 \* A
  282.   end7 I3 S4 U) m* [
  283. end
    8 p+ p2 F, N8 G1 _! r
  284. * Q9 x% }7 I3 g* B
  285. $mog_rgss_s_hud = true
复制代码
# a/ s- y! w6 R1 k) g3 o

4 G- g9 K4 n# B
/ ]2 f! m8 x2 `1 {) [上面所說出錯的203行內容為3 v5 O/ e5 I& P& F" {5 G
@hp_sprite.bitmap.clear% \( Y% A3 [+ e9 p- E

3 p3 X, T8 O6 v( ]6 _4 U+ q9 n想知道怎麼解決
1 ~3 d# r6 f& ^# E9 x! {; M% r* v4 o
該腳本支持3.82
2 ]9 b0 g& G2 e) H0 w
) ?3 `4 j) T! x0 z+ H* a; o3 n( Q下面是圖檔,要塞在Windowskin下+ W8 v9 v6 V9 Q

% d0 Q$ D2 z# j2 c  Q8 j& D$ D! P S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
. v2 E+ U: }3 g/ P. e
% Y; \/ Z* n2 d$ M) l  w4 q5 @6 j. b% l+ ^9 B4 Q. {7 y" |! I1 E
) v6 Q( N" p% O

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

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。& g- L- N5 o% T6 p7 L. [
' R  k! L4 `5 q5 ~
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。" t$ C9 G, g/ L& r$ g7 W& `' M' t
6 }$ |6 J) E( Q% F) M* P
的确* F4 I0 Y3 I1 A/ x
用惯3.82之后想去整3.91觉得压力甚大..
4 a& `6 i8 I9 y, F/ e干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
5 i, R1 ~( ?% Q, t7 V$game_map.events- g" S" n& V/ T5 x1 k5 U
嘛..这个数组吧..我在以前试写队友的时候关注过一点2 O4 y0 T8 @0 a5 M% L4 K
不知道XAS内部对它做了什么手脚还是 ...

" ]0 R' t" V+ l% U* l& a當初我把那個條件式看了三遍,都不覺得他有什麼錯3 ^; v( ~" G3 _' n0 M3 I! R
原來還有這麼深奧詭異的事XD
5 F1 _+ n& u5 u7 @" j: y7 T8 k5 P+ {
錯誤發生前的確會有圖形沒顯示出來
, L) z0 Q- r- b& B5 |1 F$ A不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
7 c; [, h- K7 B沒想到居然是詐屍了XD' B6 @7 O4 D6 e& `  V/ h# Q- V' c

! _0 N6 f* H  u0 H/ m不曉得3.91有沒有修正這問題...+ ]* S7 G& Y  E0 K, n
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events, `* L% Y5 j+ L5 g3 @- ~
嘛..这个数组吧..我在以前试写队友的时候关注过一点
+ H- k; D% }( }0 ^+ H$ S不知道XAS内部对它做了什么手脚还是为啥,
: Q' n5 l" K. h" g' ?总有那么一瞬间,没有被消灭的敌人事件也变成了nil8 O" z' M0 E8 c. G/ M- y5 o" d
' E$ a5 K7 e; L4 z9 S3 e
$game_map.events.values[@enemy.id].nil?
$ f* \( I3 O" _! ~9 V因此自然而然的返回true并符合条件把图形释放掉了
1 @/ |$ m6 L. }0 H
; E9 E. M5 @, ?$ R. rLZ应该有注意到吧,9 O7 L4 F: Y' w& N
我测试的时候发现报错前几帧,图形会消失,+ N) d& n* m! R- I  _& t. b
应该就是“误以为敌人被消灭”了。4 ~6 d+ J7 N( w) e$ E$ F& m/ M
7 I. K. w: c3 K( O( {+ V# Y9 j+ P# c1 B
受限于个人水平,至今无法找出$game_map.events的真相..
) Z7 W/ |: t( G7 B# Z
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
- k3 ^3 u  U, C- m* P% ~, n! b貌似是释放的条件不合适( v; c/ X  @1 q+ K/ {
结果尝试刷新了一个已经释放的图形
6 l) b" D8 }: Y6 x. M: V  M
把後面那個條件弄掉後,的確沒問題了
$ \9 E8 @. I; k* ^& i- E5 _目前從關頭打到關尾結束都沒再彈什麼錯誤' ?9 M  d. v/ g% P9 ?
非常感謝" N3 _8 w' x( K1 e7 ~& b

2 P  K# O' W+ a9 i不過我是參照著別人腳本改的
. ^! j" H/ G' g2 b( r* ?他寫的條件式也是那樣,但我用他的沒什麼錯誤8 \6 q7 o/ q5 a- f2 G* d& D4 [+ q* U
不知道是怎麼回事
6 @% a* U, W4 Z6 z( Q& [9 C是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
1 ^" i; y* ~+ H( E- [我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适: C. I% }( ~2 g8 I5 L
结果尝试刷新了一个已经释放的图形
/ q: s) A4 a" T3 a. n5 A- H  g; R% f+ _
# {0 N+ [2 B( ?6 Y( \; ^
) B4 T! p- R# b9 z; U* Z9 s( h3 K
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?; k1 n) F2 _/ A
复制代码
不要后面那个条件貌似就没问题了。) E; m. A7 ?* q

/ n; ^2 D" L9 {7 _2 y/ O
+ i; n- R: a, P' N6 u1 a8 C : x! U) |- n6 j; n7 Q+ P
2 j3 ^* x( n% j
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2024-11-15 02:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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