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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條% J! q3 F! _* D' D# x( p
會在每隻事件怪物的腳下顯示
7 u4 f% \  R; E問題是不知道為什麼7 I/ _4 i4 B; T3 ]9 D# E' t' G
有時打怪打一打會跳出! k! @7 u6 b; n. y4 t
---------------------------
8 y" o: I& H+ `1 k0 iXAS
) T/ [* \" t7 c---------------------------+ H- ]1 V0 J6 d
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
0 `6 g. X0 q& i$ B1 U8 A5 s- s" L( ~5 a* t7 u
disposed bitmap0 u5 E: w, m) V! \
---------------------------" C! R% c. m5 B$ W, P
確定   3 H+ ^) i# Z" d
---------------------------# h, m5 I9 ~2 n; I, S3 _- o
$ A! H' K! y% @6 Q1 W# D. W5 a' p3 ^
這是腳本
' J5 \, {1 y% \- \6 a6 L8 F2 H" R0 [) a) A6 z
  1. #===============================================================================
    $ k0 [' u, K7 H
  2. # MOG - s Hud 1.0      
    ! B9 N& _% @+ @" s# q
  3. #===============================================================================
    3 i: \* ]% w- K5 S
  4. # By Moghunter 6 C- g- h$ m& v) n5 F' P# h! p
  5. # http://www.atelier-rgss.com
    - W# b5 ~" Z  n  E8 E; T" g
  6. #===============================================================================
    " h) W6 j: V: w% p* Z+ `) K
  7. # Translated by Calvin624
    # n9 B4 ^3 u  D3 E6 P
  8. # http://www.xasabs.wordpress.com
      r/ _4 g. m" U, ^! d
  9. #===============================================================================: z* }  U3 |2 J! D0 d8 x
  10. ###############################-DESCRIPTION-####################################
    6 M' B7 ~- l; G+ g
  11. #===============================================================================
    * U2 G) n5 P# l) g/ a- E* P, }6 Q
  12. # Personal HUD – displays the HP and SP below the hero.7 M8 w. q  \2 z' Z
  13. #===============================================================================* Y0 j* n& a9 \; Y
  14. #
    & X3 q8 D5 J7 {' G! S
  15. # Graphics required:4 n" `% }# w% F. F! J1 R1 e7 O
  16. #
    , g& c! J+ ]5 Q2 k1 j
  17. # S_Border_HP_Meter.png) K3 R8 x0 e& K! i& S' ~# |2 G9 Q2 I
  18. # S_Border_SP_Meter.png+ V: ?8 c, d, `( y5 t1 y
  19. # S_HP_Meter.png$ ]5 j4 y5 c* l5 E% S" o
  20. # S_SP_Meter.png
    8 \7 y; o$ T$ z8 R0 ], ?* j1 _
  21. #
    , o! m3 E2 \* n! z; X  P
  22. # All images must be in the Windowskin folder.; R0 x  W6 _2 Z0 J  U- a; ~
  23. #
    & E4 [$ F" d* X
  24. #===============================================================================
    6 P/ |' a3 i5 m( b! L
  25. module MOG, `- y+ {# e2 a% O1 d" E, d  D& X
  26. VISIBLE_DEF = false  
    ) m" I; Q  {4 P
  27. # Show HP meter?5 D) @2 k% `& E) A
  28. HP_HUD = true; q) u# V9 q' O- c2 r
  29. # Position of the HP border
    $ g3 z5 \6 b) y
  30. S_BORDER_HP_METER_X = -2. a7 }6 G4 B8 [6 J7 m# T5 C
  31. S_BORDER_HP_METER_Y = -2  + H, x* i; a, K9 _
  32. # Position of the HP meter% ^% R) G0 @/ b  R1 N. ^% O+ ?
  33. S_HP_METER_X = 0$ F# t1 {# E# _( l3 b
  34. S_HP_METER_Y = 0
    $ ?  ^+ z$ r4 L# y5 k1 Y% W1 g  |
  35. # Show SP meter?# G$ \: E7 I# Q$ G4 ]
  36. SP_HUD = true6 x( r7 Y/ b3 i2 N* Z" C
  37. # Position of the SP border0 l1 b9 [7 g+ z, \1 b- R$ U
  38. S_BORDER_SP_METER_X = 07 g1 z; k$ T6 O- Q7 E) i$ \% f3 f9 `5 }' \
  39. S_BORDER_SP_METER_Y = 10 0 l/ {$ V1 y7 z( B
  40. # Position of the SP meter
    3 M  i0 S( c  d$ U  v( b/ G
  41. S_SP_METER_X = 0# F: C8 m* n2 I" f3 r; B3 w6 D% z
  42. S_SP_METER_Y = 10
    . x  I: |( z% |+ {* d2 e
  43. # Switch to disable the HUD# s; ]7 i) O, b" T% z- @
  44. DISABLE_SHUD_SWITCH = 5# u, ?: U/ @4 E6 M9 C: b" C9 {
  45. RANGE = 20% I9 s  I0 Y0 C8 d4 x, T* O
  46. end
    5 S% g0 _7 ^5 |4 w4 X: ^
  47. #===============================================================================( h8 z. v& `1 b/ N0 [3 z( N
  48. # S Hud' y0 Q4 O) `9 U" a2 a- m
  49. #===============================================================================/ {- A1 p6 y) V/ U2 _
  50. class S_Hud < RPG::Sprite
    - Z0 u. s: o) v
  51.   include MOG1 c) q. `3 Q# `3 i0 f9 S5 o7 d
  52.   #--------------------------------------------------------------------------( Z) B1 V( ^7 ]8 Q: }1 V3 j# L& o+ q; B
  53.   # * Initialize
    9 V6 c3 e% Y8 e& s
  54.   #--------------------------------------------------------------------------
    . P. ^5 \5 @; n
  55.   def initialize(enemy,viewport)
    ! V9 h, L5 M! Q' `4 g, z2 m$ o
  56.     super(viewport) ) P) y+ ^2 y6 l0 ?. y) g; e$ [
  57.     @enemy  = enemy
    0 |  B( C% H! I( Y. G" R3 R
  58.     @battler = @enemy.battler
    * \! W" C4 K9 B8 U0 {8 H; a: p
  59.     @old_hp  = 0
    0 [. C7 x: D* _1 I
  60.     @old_sp  = 06 q$ G5 i/ M' v- l* w5 r1 i
  61.     @old_vis = false
    ( G0 r7 ?( \6 w7 z
  62.     self.bitmap = Bitmap.new(100, 100)
    ; M! k! ^3 D1 \* v, G
  63.     self.visible = (VISIBLE_DEF)#false; A% ]" Y7 L1 x& R, \
  64.     self.z = 100; y2 W2 }1 a7 g4 F
  65.     #HP Border -------------------------------------------------------------------. K7 T, {6 i1 Y. G  \$ b( g: k" l
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    4 J, A$ d, H, X7 Z% n
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)7 O/ S  C# n, @7 f
  68.     @layout_sprite = Sprite.new
    . `3 C0 @6 u/ t2 w- s4 H, d
  69.     @layout_sprite.bitmap = @layout_bitmap
    ; O. R! q; }$ {2 R
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)- k; P0 t* M3 |0 F0 U
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      # e0 R* n2 O& Y& t
  72.     @layout_sprite.z = 50019 L; @9 V9 a: P8 o7 `5 M. w% N
  73.     #HP Meter ---------------------------------------------------8 Z9 Y) h1 n- @/ H( C( f
  74.     @hp_flow = 0, I9 ~* v' h7 U' R' @! K3 v" O0 J
  75.     @hp_damage_flow = 0/ i# y2 {% }  p5 ?- Y4 q- H% h
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    / K) }5 [" E! s2 G
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)# [$ T5 j( t2 W0 S8 H5 y
  78.     @hp_range = @hp_image.width / 3
    * k: O: Z% T, C: j
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  ' {3 c5 L) L- [+ k
  80.     @hp_width2 = @hp_range / 2
    ! q8 V& m3 T' k8 H( ?8 k
  81.     @hp_height = @hp_image.height / 2) R- y% c( N7 [2 a
  82.     @hp_width_old = @hp_width
    : F0 p& Y& M+ w
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    & v. O  c4 V8 n
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) : [0 D: C2 B' U  _0 i0 k
  85.     @hp_sprite = Sprite.new1 t; H2 h. b: k: W. l/ Y: Y
  86.     @hp_sprite.bitmap = @hp_bitmap; T" v  B8 K0 u: n2 ^
  87.     @hp_sprite.z = 5002
    2 e  c, r0 y2 ]. {% ?8 p
  88.     #SP Border -------------------------------------------------------------------
    * f( _/ K4 p  t0 x  v
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")6 f0 p( e3 ?" J" b: G
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    5 S8 V2 f1 K- g
  91.     @layout2_sprite = Sprite.new5 m$ n' _0 y# Q
  92.     @layout2_sprite.bitmap = @layout2_bitmap8 e7 T0 @$ J( z/ g2 g) C2 M8 T/ S
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    ! `- w$ e8 p( ~0 P* {
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      , g1 s9 B& e6 Z* ?4 t: u
  95.     @layout2_sprite.z = 5001    8 t* z: O7 z, O- ^( e
  96.     #SP Meter ------------------------------------------------------2 j% ]: s7 m+ D1 B6 X" J6 n7 R
  97.     @sp_flow = 0
    6 _7 b0 @4 Q* h+ y$ g, |" u
  98.     @sp_damage_flow = 0
    4 j# ]3 j0 _" D' R" `' |
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")6 D0 j" O2 `1 X$ v; d4 [9 e+ `  ~
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    4 l! b, a) S6 W: d' J
  101.     @sp_range = @sp_image.width / 3% `% Y  l9 M3 B& L, e  e( p0 ^
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    ; W3 K7 @) E/ c2 ]/ l. P
  103.     @sp_width2 = @sp_range / 2
    & Q$ C* ?8 k( {8 v- R4 j
  104.     @sp_height = @sp_image.height / 2
    ) z2 V# |) K, B5 m2 e+ r! B" a
  105.     @sp_width_old = @sp_width. l6 S' w  q5 b3 y1 k9 I# x
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)7 L0 j/ ^8 u9 i& m$ g
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)' `6 q1 p! O7 f% l$ ^9 A; Q
  108.     @sp_sprite = Sprite.new
    2 S5 T7 u! j) L7 s9 D& S
  109.     @sp_sprite.bitmap = @sp_bitmap* `5 O; C  C: O( i; i+ `
  110.     @sp_sprite.z = 5002
    : H4 e; o( `! P$ u* ~$ S2 Q+ p
  111.     update
    6 z6 z" Z8 a; b+ `6 Y
  112.   end' m; q) ^: e% X# c. l
  113.   #--------------------------------------------------------------------------
    4 a' K3 j# c* a
  114.   # * Refresh
    # k8 K! X6 @% |8 g$ S) M
  115.   #--------------------------------------------------------------------------
    % Y2 A9 o. i, f$ ]& A5 J( P
  116.   def refresh6 y0 \+ o5 I% `8 B& j# l" J
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    8 @% ]- ~" I+ L0 }, M% b3 D5 f
  118.     self.bitmap.clear
    1 I) z/ R/ q# }6 n
  119.     @old_vis = self.visible% v2 D- e! X$ Q* ~" k
  120.     @old_sp = @battler.sp
    , t& ?" _( j4 F  Q# w" Z8 u) f
  121.     @old_hp = @battler.hp
    ) W. m* ]9 Q1 [$ w' K* u
  122.     hp_flow_update! o2 A, J/ F5 {) T2 S
  123.     sp_flow_update: o5 p2 B# H6 b. I0 {
  124.     hud_pos_update) m4 s/ c1 ?+ J4 p+ R
  125.     visible_update/ P" m' ^/ f5 e3 k
  126.   end
    4 {5 M; t- `' f( G0 t
  127.   #--------------------------------------------------------------------------
    8 T3 Q* k3 A6 K) Y; H7 B: l
  128.   # * Dispose8 W1 Z$ }* j- V& P1 g
  129.   #--------------------------------------------------------------------------, m7 W1 a+ [3 R( M6 T8 w- Z% @
  130.   def dispose
    - a. U$ j% J$ Y: X: h" q
  131.     #HP Meter Dispose! l+ p; Z2 h+ @, J& L# D) v4 ]5 Q9 }$ _
  132.     @hp_sprite.bitmap.dispose. @. A* y6 g7 c6 |( W9 `* V( o
  133.     @hp_sprite.dispose7 l  ?6 o* _/ h2 k( t, K2 b
  134.     @hp_bitmap.dispose- ^" g; T: g: ]$ _
  135.     #HP Border Dispose
    8 |) m3 Q7 m7 s; p) ]' Z1 M, y
  136.     @layout_sprite.bitmap.dispose
    ' D# _7 D! `& P4 B' _) i
  137.     @layout_sprite.dispose
    5 z" H9 I& \1 V6 y. p+ }) V! S
  138.     @layout_bitmap.dispose0 \% n" f, o4 c3 y6 D7 K& y
  139.     #SP Meter Dispose' M& g4 y8 d- F7 H0 _
  140.     @sp_sprite.bitmap.dispose) w6 o# C; r# R" O0 P8 W
  141.     @sp_sprite.dispose
    ( i2 r  ^( ]! p# i0 _8 j. A0 ]! I- K
  142.     @sp_bitmap.dispose
    / p1 X7 |& }  `4 N
  143.     #SP Border Dispose& z, S+ |! k& R1 o, V0 Q
  144.     @layout2_sprite.bitmap.dispose
    4 A+ A3 U* ^2 [1 j* H- a5 i1 e
  145.     @layout2_sprite.dispose7 W$ V; [, p0 P! l' B
  146.     @layout2_bitmap.dispose
    9 g$ }/ t+ k+ `. J* z1 r5 f  a0 _
  147.   end! D' m$ s( _3 K7 ?9 t, ]2 A
  148.   #--------------------------------------------------------------------------
    ! b  }( U) i' S8 U% u" k$ U+ `" W( c
  149.   # * Update  `; J% q: d% \2 O- {8 Z
  150.   #--------------------------------------------------------------------------% p# E7 B# j+ r" O: R3 m
  151.   def update
    " B! v4 _4 B8 e  _$ d+ C, M( P( P+ b
  152.      @battler = @enemy.battler / p/ B% i% s- p- ]" K7 G$ j
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    $ G: a7 ~0 U$ @; Y
  154.      if self.visible
    ' s. v& Z! S2 Q. ^) a% D
  155.        refresh
    1 L- F% D3 e; l
  156.      else
    ; t6 C, e* Z; P, Q& y9 {/ }
  157.        self.bitmap.clear$ f0 K) b7 @3 I  H- x
  158.      end
    7 n& R# q& {- e+ S
  159.   end+ Z- n! E! z+ _2 V2 C# Z
  160.   #--------------------------------------------------------------------------; P7 W9 S( i% ?' P4 a
  161.   # * Visible Update7 d6 ~  \" T4 {8 j" }
  162.   #--------------------------------------------------------------------------
    ; x* E* Y- n1 Y* l9 [* _( ^
  163.   def visible_update
    3 R- {- I% g( @+ F+ f" o1 g$ C
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    2 o# t' R" u( S8 S, i
  165.        @hp_sprite.visible = false
    " e8 ?4 T+ n  i; o
  166.        @layout_sprite.visible = false+ h' K/ [9 y% a# S8 i7 V
  167.        @sp_sprite.visible = false+ R" g0 b" Y5 n! X& b
  168.        @layout2_sprite.visible = false
    7 E% Z) n  V( i1 J# C5 G
  169.     else9 |3 [" o: J  ~$ ^7 T
  170.        if HP_HUD == true. c1 F+ ~7 L8 k4 t3 n
  171.          @hp_sprite.visible = true
    * P( [) W1 @+ F+ x
  172.          @layout_sprite.visible = true) z$ b# i7 k8 z, v7 w& h
  173.        else3 i/ _9 {) L7 q$ L, _
  174.          @hp_sprite.visible = false  {. n0 n. L2 w
  175.          @layout_sprite.visible = false
    & y6 e7 {, q7 v+ C" c; X7 _
  176.        end  
    + k: W! h  R  }$ O5 u# t9 [
  177.        if SP_HUD == true
    3 f4 H: ]7 Z4 o
  178.          @sp_sprite.visible = true
    8 L& d, Z0 b) ^+ @1 W
  179.          @layout2_sprite.visible = true
    ; \+ r% F! ~8 h2 `4 t& i
  180.        else: d0 n$ W! e- F6 z! _
  181.          @sp_sprite.visible = false3 }3 ?- ]3 r/ T, }% c
  182.          @layout2_sprite.visible = false( S# Y( C8 ?7 F
  183.        end 9 M; y) c* a# P! e+ j7 U  Y' X
  184.      end  ' Q4 P- [* g5 _) x
  185.    end % Z8 [  h' I5 `, L! B, e8 w, j
  186.   #--------------------------------------------------------------------------
    2 _1 h0 J) L& s9 i, b/ ^
  187.   # * Hud Pos Update) Y7 h. ?4 U: @; z
  188.   #--------------------------------------------------------------------------
    # ]$ S! d2 S8 C& U+ V) F, r
  189.   def hud_pos_update
    ; q1 D  Z+ ?3 R: E/ j
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    ! h! |7 q' D) K6 M# t, ^
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  ' y' Z, N4 Z8 g: ?" `
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    - {/ ]+ F% z) f1 P
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    * M+ p' ^: ^2 e. ?
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    ! O+ i) R3 N6 a* Q) Y6 O' @, v
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  * ^7 N: w; t5 a1 Q# ]9 Y  R$ J
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    & m1 Z/ q( p; V) ]8 k" t$ n
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    / a. f5 T; G" e2 ^1 `
  198.   end  
    ) k/ r$ F1 }( y5 e% ^
  199.   #--------------------------------------------------------------------------
    % y& b: A$ S+ c( G) S" D0 b7 Z
  200.   # * Hp Flow Update
    . M. Z- X0 ~4 P( m1 y+ D! ]/ m
  201.   #--------------------------------------------------------------------------, w" J4 J1 [  q, n' @6 ^
  202.   def hp_flow_update3 O$ G8 u) [0 B* s; C. h% m
  203.       @hp_sprite.bitmap.clear
    9 |: k- T1 C5 V) H* C* I% K
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    ( Y# b/ V0 N0 g& T3 F' ~" l
  205.           #HP Damage---------------------------------8 i4 ~& |# n4 n8 T) f2 O
  206.           valor = (@hp_width_old - @hp_width) * 3 / 1004 U* N: u: r( W& ?. R% @
  207.           valor = 0.5 if valor < 1         
    9 w& k0 Y; Z4 u
  208.           if @hp_width_old != @hp_width
    2 z. K6 B* u. ^: q. s7 l" T$ u
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  0 [2 t! ~, X0 f% X
  210.           if @hp_width_old < @hp_width 1 ~( w' W+ Z' v6 e% }4 ^
  211.              @hp_width_old = @hp_width
    7 ?6 J7 k- L* H
  212.           end      
    0 s3 v2 b/ A0 t7 @
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    1 V* t; p: ?. f5 q2 H/ X' c
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    & j: a" @7 _1 S: w+ J( e4 z
  215.           end        
    ; R2 S6 Z; L) O7 K: F& a' u/ R
  216.       #HP Real------------------------------------' o5 ~4 ~/ g2 w( E9 D$ p
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    + c% s0 o1 I0 }6 P
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    5 b, Z* ?: g' M7 o) q- v9 m3 q
  219.       @hp_flow += 2  
    : G7 S5 O$ }. u; J4 T" W
  220.       if @hp_flow >= @hp_image.width - @hp_range5 V; K, |( b, Z9 ~4 i
  221.          @hp_flow = 0  
    / Y4 _* w$ r. @" D) q( K# ~
  222.       end0 D$ ~; r% X6 q/ u; R
  223.   end    8 ?( E4 ~) K* Q8 R( s7 V
  224.   #--------------------------------------------------------------------------
    $ l, A: R6 l" e( c
  225.   # * Sp Flow Update
    ; Q6 {! |4 }# J, P  t
  226.   #--------------------------------------------------------------------------
    9 k8 w) O( T% o. c) O  P
  227.   def sp_flow_update/ A1 F" G" E& f: ]3 I
  228.       @sp_sprite.bitmap.clear
    ! Z. w5 n6 J( j) N* c3 q6 K
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp % Z. A# A1 w+ C9 o$ i
  230.           #SP Damage---------------------------------
    * p9 N; H1 b6 t, ]8 g
  231.           if @sp_width_old != @sp_width
    , h* f0 ^2 _' A# W: S+ R
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    ; N" ^* r6 L% W
  233.           valor = 0.5 if valor < 1              / c$ U' `( M: }4 ~2 G9 Q
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  7 \. T% d# q0 M, ~- s; H
  235.           if @sp_width_old < @sp_width : B% @1 Z4 ~1 v8 e8 |6 K
  236.              @sp_width_old = @sp_width" I8 E1 H: T) P8 L+ i6 `
  237.           end      
    . _. N8 ?# [" M2 `; q7 v( ~1 y, ^
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    # p. m, f+ @1 Z! k& G. F; q2 K2 O
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) 3 B( l" K5 v) `* l% }
  240.           end, c9 N% k. s! U8 I' O% {7 ?% b% C
  241.       #SP Real------------------------------------
    0 ^3 i2 C' s) x. M
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    & c4 C& }- H- k6 f  n3 v; R, N, o
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)# g0 i2 f  X. z7 Y1 a
  244.       @sp_flow += 1  6 g' ?7 ^$ V! O" R
  245.       if @sp_flow >= @sp_image.width - @sp_range6 q4 v, X3 V+ c
  246.          @sp_flow = 0  
      E6 P3 a9 d- K, Y5 {  x
  247.       end
      E8 k. s8 Q, J3 @4 _
  248.     end            
    / w4 }( q2 ?: Z
  249.   end1 q3 {" B6 K7 ~1 S+ J- }+ W( `
  250. #===============================================================================
    , y2 o) T% s/ e# ~& a2 q! w
  251. class Sprite_Character < RPG::Sprite
    8 B3 c. J1 m0 e, U$ S, x3 {* R; r/ d
  252. #-------------------------------------------------------------------------------
    5 J# g: C; c) t1 u4 P5 t
  253.   alias :xas_emini_hud_init :initialize
    . v8 T/ h6 r- L- |5 f- i
  254.   include MOG
    ! k) K% Q7 U; r" y6 H) C9 r: f% P* a- D" E
  255.   def initialize(viewport, character)
    3 |8 H, X% ?) O2 R3 f# c8 R
  256.     xas_emini_hud_init(viewport, character)/ t- d. Y, y0 ?5 Q
  257.     @viewport = viewport
    , _& s0 b" w- h8 r# t7 G
  258.     return if @character.battler.nil?' u! k; w, D" |( s
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    # l0 ]* h3 P  M* t+ F) @3 t5 m$ j) x- p
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    2 V9 N7 k6 Y( D; y0 U8 L0 I
  261.     return if @character.battler.is_a?(Game_Actor)3 Z7 p* K9 i9 u& n7 z( h$ e& R0 \, ^
  262.     @bars = S_Hud.new(@character, @viewport)
    8 B* s2 g3 z! i4 P4 J+ J0 j3 p: p  M
  263.   end  j7 J: s3 z$ u5 R. \
  264. #-------------------------------------------------------------------------------; ~- m! g4 u- e; D% `
  265.   alias :xas_emini_hud_up :update. q* W6 U* ^% T
  266.   def update  E& `8 c$ {6 t
  267.     xas_emini_hud_up! c- N( A- j' h: h. ?
  268.     return if @bars.nil?7 u7 `: @2 {  h9 i
  269.     return if @bars.disposed?
    . o+ L/ v8 c/ r: W
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    9 G7 s, T% b& f' @2 {- E
  271.     @bars.visible = (dis <= RANGE)# m1 Y  ^/ k  I- O5 y0 H! P
  272.     if @bars.visible
    $ W$ V9 U, e! L' n: p
  273.       @bars.x = @character.screen_x# - @cw / 47 ]: m% t* w/ z* M; ]
  274.       @bars.y = @character.screen_y# - @ch / 48 W4 Q! l  [  I- j1 z2 _8 X
  275.     end
    " e8 W4 t7 q; e, F+ z1 K
  276.     @bars.update
    7 Z  A2 }2 R2 b4 e! u5 E& y0 I3 J+ k' ~  g
  277.   end
    9 a$ G# i/ I, ^  {( a/ x1 N
  278. #-------------------------------------------------------------------------------
    ! K6 z0 |4 O9 z
  279.   def dispose8 t/ V/ i4 F- [0 b% K3 p% f
  280.     super
    - X% @: l( F$ t/ R
  281.     @bars.dispose if [email protected]?
    5 o7 P& j2 H- g0 y/ B+ h
  282.   end5 `3 ~7 D* l" @
  283. end
    - M" ~0 {8 j5 ^# U* u* a
  284.   S  K3 {$ L8 C$ r" y
  285. $mog_rgss_s_hud = true
复制代码
9 a' T5 n& F& m+ l: f3 J

$ M' E8 {; R( `" C. c1 P1 Y: d! _
3 I0 I9 g( r7 X+ C上面所說出錯的203行內容為
* i: `) u' x' U3 w5 R2 a! D8 D@hp_sprite.bitmap.clear
' ?8 ~) g  }" f3 U( a% O+ B- q% J
' c" h0 }& f: T" Z/ d想知道怎麼解決
# `  o1 `; {7 u) c9 d' d2 b. [4 h% S. `
該腳本支持3.82( M, x$ M2 P6 R2 U# |8 d* C( b" I/ K
0 _5 T  C; D2 x+ W+ ?
下面是圖檔,要塞在Windowskin下5 J; s7 a- H( V" |
2 T5 b* C5 q7 W6 ]
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) 7 g8 F8 U6 S" R  m6 n6 C

+ d: L- h% v! e/ M+ d/ h3 ~3 q7 ?; W- m/ \9 @

# D1 [4 n: p& S: P9 c& {' \& N

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

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。
+ R9 p3 n5 u$ e* x1 j8 y' ?" A7 ~
5 o( p4 N  F* y然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

梦石
0
星屑
11729
在线时间
21739 小时
注册时间
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 | 只看该作者
恩。。没问题的话姑且这样吧。: {/ K+ J$ X5 Z6 @: h

6 g3 O4 J; D( I; R6 o0 b: ]的确
3 w# h: S. [9 c2 K; t用惯3.82之后想去整3.91觉得压力甚大..8 P; A# d$ Z# H
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 . s2 a  w* x* s! `5 @$ L7 r- |  X
$game_map.events9 V6 z  ?' _# P. a  y5 n9 ~+ F
嘛..这个数组吧..我在以前试写队友的时候关注过一点
& _# v! o8 R, D! q0 K" o; K' }不知道XAS内部对它做了什么手脚还是 ...
* S8 w; K$ l! |5 q6 l" ?. e1 i7 k
當初我把那個條件式看了三遍,都不覺得他有什麼錯& }4 u$ q" v% Q7 B: Y9 T
原來還有這麼深奧詭異的事XD
3 K" M0 n' I; D; b2 F; }: l, F. N) P- g; B, R
錯誤發生前的確會有圖形沒顯示出來
% A, K+ w8 L( o  L不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...- Y) O2 d) X" e5 H0 P1 T1 X9 r
沒想到居然是詐屍了XD9 ~! B5 @: V7 P/ p- C# l1 }
/ `9 _# w5 J, j) P* X, y1 h! S& g
不曉得3.91有沒有修正這問題...5 {" A# g0 V; o2 G  I- s
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events. t' u* h- D' V9 o& E, u
嘛..这个数组吧..我在以前试写队友的时候关注过一点, `! i, D+ y! F) S
不知道XAS内部对它做了什么手脚还是为啥,- Z5 O6 |/ E5 o" b
总有那么一瞬间,没有被消灭的敌人事件也变成了nil
/ ]* _1 C' w9 H+ r. y" u1 s; |' N+ v7 S/ @4 l$ F* V* D3 `
$game_map.events.values[@enemy.id].nil?6 ~2 D8 N- V; y6 ?7 a, a( Z. V+ y
因此自然而然的返回true并符合条件把图形释放掉了
; M% e7 r" A" C) I* r# ~, _7 R
9 w+ l: c- {2 oLZ应该有注意到吧,5 f! Q' q, g5 `% i
我测试的时候发现报错前几帧,图形会消失,
3 s# ], y9 W$ x! p  n应该就是“误以为敌人被消灭”了。: C5 ?8 f1 q: U' U* Q

/ i( a) K; ?: s" I: o$ H受限于个人水平,至今无法找出$game_map.events的真相..
& v" J$ z8 |+ |# s
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
  ~0 c' o$ b* v3 P貌似是释放的条件不合适
) k) e3 R0 B' ]- }* h9 ^结果尝试刷新了一个已经释放的图形

  ]$ ]7 x$ L7 h3 N8 [6 q$ l  S% P( a把後面那個條件弄掉後,的確沒問題了2 a" u" ]: D7 ?0 u- a0 G
目前從關頭打到關尾結束都沒再彈什麼錯誤
0 J+ i1 S: X% I9 I$ r! u& I非常感謝
" l0 r- N- ~" C& j
7 X  h- o/ O9 t+ W2 q+ F1 U- c不過我是參照著別人腳本改的
: R# n% j  k& d' q他寫的條件式也是那樣,但我用他的沒什麼錯誤
1 }( [3 g+ f! q不知道是怎麼回事
1 k- m, {* [  B; @( [, }是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
* G$ d6 D; U" \. n7 V我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
- ]2 h5 [- J/ l0 D7 e% y结果尝试刷新了一个已经释放的图形
8 l' I. o, C7 T+ U2 e! t- d9 K% I" H
' u0 ~+ {5 S8 T8 n& R0 K
, l: t9 b( @; h9 L
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?2 [7 Y+ ?" x. ?* z1 S5 N# }+ S
复制代码
不要后面那个条件貌似就没问题了。
' u8 Q+ }% e4 J9 l
: T4 r. b2 d. w/ `0 e3 z  f' N# g$ Q0 A  q. j. O6 [0 R, K
1 S  z2 J: ~- c" F: ]: F! D5 r

  ]( c. m! t8 ?7 \, _
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-2-16 23:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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