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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條4 O) l# V0 \5 }5 R
會在每隻事件怪物的腳下顯示" Q' q* v; v, ?2 s. z
問題是不知道為什麼4 N$ p( w9 k5 Y1 B) N- f
有時打怪打一打會跳出% g) i+ U* H2 }! V4 w6 F
---------------------------& S6 a7 G7 I# T1 G6 q: ?: _
XAS
. ^$ f1 Z5 |6 U3 G; \---------------------------
. M) ?& i  K8 x0 F) |' j脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
" |( {/ W7 j; }$ {  g- b0 W
, W+ s' y$ w& K( R, z2 Cdisposed bitmap# X0 S+ c& }+ N8 W0 d. D
---------------------------
4 G! V1 c7 l4 z. B. {! {& G& v& P確定   
  K7 o- K' W) F  h---------------------------( x; B/ `0 u6 V# A0 A5 Q$ P- i! G
/ }1 e6 r& e; }
這是腳本
; f. n4 O1 u5 U1 Y% W
1 C+ V/ r' ~" {" o
  1. #===============================================================================
    6 v8 r% q: Y$ y/ ^3 o
  2. # MOG - s Hud 1.0      , ?0 D& S, F$ R& M/ A* A' D/ w8 R
  3. #===============================================================================
    . N! ~, s* g: c3 w
  4. # By Moghunter - i, Z0 O6 h5 j8 Z7 O6 f
  5. # http://www.atelier-rgss.com
    $ B& S& M( L0 o3 J; b- k! u
  6. #===============================================================================/ Y1 g# ^& z% ?$ a1 g+ q, F
  7. # Translated by Calvin624 , H7 _3 |8 {3 L! [7 C9 h
  8. # http://www.xasabs.wordpress.com
    & }0 ?6 L' Z. F. O$ Y0 J
  9. #===============================================================================- ?1 A8 M- K3 c  U/ L8 S
  10. ###############################-DESCRIPTION-####################################
    7 }, g8 d) P9 }# o5 S% X  Z/ Z9 Z$ w0 p3 K
  11. #===============================================================================
    % R: ~$ \. m' o2 q/ H# J) L; P3 C
  12. # Personal HUD – displays the HP and SP below the hero.
    . V7 v, W6 K& Q5 `3 \' F, T/ }
  13. #===============================================================================/ N5 i7 N, @" Y7 z
  14. #
    ) ^$ z. V) Z+ e& {% e7 M
  15. # Graphics required:
    + w& f# r( O" E5 [" C2 R
  16. # " G: M6 a0 H( k5 ?* S3 T+ [/ R
  17. # S_Border_HP_Meter.png, m7 ]" U! ~& L  J) {  h
  18. # S_Border_SP_Meter.png5 l0 ]/ a) [( G% e1 {" Z; j
  19. # S_HP_Meter.png
    $ J; a: ]9 p5 t
  20. # S_SP_Meter.png
    # M, ]0 Y3 ^4 f! b5 c# c
  21. #
      _& L$ O% g& Y$ W  H
  22. # All images must be in the Windowskin folder., @9 u' v6 t0 L: Z
  23. #) {$ l/ j# c1 R* w: x8 C1 H& W
  24. #===============================================================================& F: {% d1 Y/ y* l7 G5 Y
  25. module MOG% v$ D7 f+ E* R6 l* w% F5 V' Q
  26. VISIBLE_DEF = false  : O% O' k0 v; F+ [* P, Y
  27. # Show HP meter?! O* Z( j  d% e; U2 E
  28. HP_HUD = true
    4 O! J8 r/ i( @
  29. # Position of the HP border' i/ P' U: |+ q. I9 k3 d
  30. S_BORDER_HP_METER_X = -2
    / Q/ e/ |' n& v5 k
  31. S_BORDER_HP_METER_Y = -2  
    , n9 S$ R3 `0 f# E0 f, Z- c
  32. # Position of the HP meter
    0 E2 u7 q) g9 O
  33. S_HP_METER_X = 0
    " _. u4 \* N" [4 K' @+ w
  34. S_HP_METER_Y = 0# K$ z4 i3 B$ p- k
  35. # Show SP meter?
    + O& I3 b3 ]6 G+ L
  36. SP_HUD = true
    1 N) j7 n% b. s1 R% f0 r" s
  37. # Position of the SP border9 u) m: A4 k* |
  38. S_BORDER_SP_METER_X = 0
      Q( }0 [6 U% L; k: M# X
  39. S_BORDER_SP_METER_Y = 10 - M  [& v3 L7 i  e
  40. # Position of the SP meter1 A( J' W; {/ m4 E. r" S
  41. S_SP_METER_X = 0
    1 X6 m4 n& ~& {0 M" o8 N
  42. S_SP_METER_Y = 10" j8 E+ J+ M6 C4 ]  Q% t
  43. # Switch to disable the HUD+ [" D: r' g" A5 V2 `8 F- n/ Z
  44. DISABLE_SHUD_SWITCH = 5
    . K3 ]3 e9 j; n$ w$ b  z6 q
  45. RANGE = 20) M& c% d% G2 t/ f) l4 D1 @
  46. end
    4 n3 R5 ]' W0 z
  47. #===============================================================================
    6 _) z2 b6 h- d% l. P7 G
  48. # S Hud
    ) ~- j% _  h) g. u/ X! w
  49. #===============================================================================/ r* R! F, U8 P2 S
  50. class S_Hud < RPG::Sprite$ n7 H% \, v6 i
  51.   include MOG
    4 `4 n8 x/ P9 m' Y: n
  52.   #--------------------------------------------------------------------------7 h6 v' |6 W! j* e
  53.   # * Initialize
    0 M5 F! q1 W- b+ @, o
  54.   #--------------------------------------------------------------------------
    3 `; ^2 V& W4 F! n9 w! F+ j  G
  55.   def initialize(enemy,viewport): U' w4 q  [- f* w2 Y: C3 J/ d& X
  56.     super(viewport)
    ) J5 v& I# F$ G  N1 j
  57.     @enemy  = enemy- G; {8 R$ b1 b( ?, s5 b+ I
  58.     @battler = @enemy.battler
    1 Y. v$ y; I1 o" y* ?  C0 N  Y
  59.     @old_hp  = 0. Y. `' ]& t" Q
  60.     @old_sp  = 0
    , d9 i8 p; j/ s* k0 N4 G
  61.     @old_vis = false4 F* A, @( A9 U4 \( I, Z0 i
  62.     self.bitmap = Bitmap.new(100, 100)1 p  Y1 O; z* ~4 Z1 a
  63.     self.visible = (VISIBLE_DEF)#false# y6 A0 Z! L5 s
  64.     self.z = 100
    # \) Q; O4 T' r& p. F
  65.     #HP Border -------------------------------------------------------------------
    . G% r0 e% _) w) ~  S* a& H: I
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    # I; o" L" Z6 h: C1 C
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    % ~% r% k9 h. Z# ?) r' r) _/ k/ y, W
  68.     @layout_sprite = Sprite.new
    , _* `# t+ s+ H0 \  y% b* U$ k  P
  69.     @layout_sprite.bitmap = @layout_bitmap: M" r- U0 C7 ^. Q; P1 T. V- B  U
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    : o' L, m; i* Y' w1 s  ~0 n7 Z
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    4 R- D! r+ c) |' l9 @# T; o0 c+ a6 l
  72.     @layout_sprite.z = 5001
    / Z& @3 S: \+ t) n
  73.     #HP Meter ---------------------------------------------------
    8 _6 e) y$ W4 I5 s/ C3 I
  74.     @hp_flow = 0
    ' _* x8 B# f- A: _* ?- ~* a3 F$ ^7 O
  75.     @hp_damage_flow = 06 ^8 l3 }( l$ K( i
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")2 t3 D% E) v( j! z2 Q
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    8 {) d. K( }5 J6 J" J! D
  78.     @hp_range = @hp_image.width / 3
    / ]( k0 E- K, K  o+ M3 R, M
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  % q1 j4 G* m7 T
  80.     @hp_width2 = @hp_range / 2
    1 g! t4 b5 d- G
  81.     @hp_height = @hp_image.height / 2
    $ H" m% b6 F2 L3 g( N
  82.     @hp_width_old = @hp_width, ^" Z  ?7 K% w
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)) z% p4 B2 y% ?8 X* u- {1 F
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) ! J8 n  ]4 Z8 ?3 ^. U3 z3 |/ ~5 l, j
  85.     @hp_sprite = Sprite.new$ L, }! r# V$ N: Y% a( H& `
  86.     @hp_sprite.bitmap = @hp_bitmap; f7 R8 ^$ h5 a: G- m1 ]
  87.     @hp_sprite.z = 5002
    8 d' m/ E& U4 m" s' Q
  88.     #SP Border -------------------------------------------------------------------
    ' C4 w4 d7 H  B/ h5 R# ]7 w4 f( D0 N
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    9 U, z) d8 x& D+ B$ z3 w
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    4 n+ G* }; d2 A+ c. K
  91.     @layout2_sprite = Sprite.new' [" R" l; L5 B4 C
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    : `3 w; v/ J, N
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)+ ]" m( I; x- t5 M8 e) h7 N5 x" U
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    % g7 i7 W- w7 I5 w9 l2 o
  95.     @layout2_sprite.z = 5001    5 R. d6 Q' U$ d: q7 X1 i
  96.     #SP Meter ------------------------------------------------------, c8 e2 n( \: Y9 k" o) n
  97.     @sp_flow = 0
    , Y; n2 C, z1 B! n- z( `* m: e
  98.     @sp_damage_flow = 0: C% ?+ s5 i% Y2 I9 d) A
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")! L- ^# F1 F/ c
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)/ a" @& Y& w3 k" S+ Z4 _) d" p
  101.     @sp_range = @sp_image.width / 34 `/ w* C+ v- {; k" k; |  D
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    ( T+ a! x  `3 {$ ~  J( T/ ^: y5 x7 C
  103.     @sp_width2 = @sp_range / 2
    3 M7 A0 Z6 {* ?* e) t, y
  104.     @sp_height = @sp_image.height / 2" B8 q" k' W, u: G$ }
  105.     @sp_width_old = @sp_width, H* @8 a, e8 O$ r
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)) q' k6 ^9 `8 b! y. w% m; H$ P
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    ; i- V7 V% G' i2 S
  108.     @sp_sprite = Sprite.new" a" ~9 s  q2 y/ G) Y/ {
  109.     @sp_sprite.bitmap = @sp_bitmap
    # s; ^5 I, Q4 e& m) l; ~) b
  110.     @sp_sprite.z = 5002" C3 S6 G4 [' J/ P7 N) [
  111.     update
    9 f4 n; }. a; t, z
  112.   end, N" W% N  x( ]8 _5 \1 q- z; ?
  113.   #--------------------------------------------------------------------------
    . P% o. N% J- D( a8 _) F" y* O
  114.   # * Refresh: I- F4 e$ M/ Y* X' r1 [
  115.   #--------------------------------------------------------------------------4 T! C/ |9 Z$ r+ C6 c4 s2 l
  116.   def refresh
    ; o) o; f) y6 `
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    9 f/ g5 o) z- U. a$ p8 b) T0 G
  118.     self.bitmap.clear
    ; i8 g8 v! ]* j7 L1 Z+ v
  119.     @old_vis = self.visible& R+ k" \5 v1 P# O/ o+ Z! \
  120.     @old_sp = @battler.sp
    $ V1 n6 y$ |- M6 w" z2 X
  121.     @old_hp = @battler.hp! h7 L4 I2 H' F0 s- _0 K+ X
  122.     hp_flow_update% Q6 P2 p: a' o: N( f
  123.     sp_flow_update" i5 S2 w% F& Z" K
  124.     hud_pos_update
    ( ]1 l  c) \5 q" ], }" b" a; x
  125.     visible_update& R$ M& E3 ~' j, t  Y( K" D) b3 Y
  126.   end: ~" m1 H' H. I$ W/ e+ E1 k; m& h
  127.   #--------------------------------------------------------------------------6 Z6 [% G9 f4 @6 z
  128.   # * Dispose
    & X2 k% r: J  i7 C% q, C! d
  129.   #--------------------------------------------------------------------------
    & N% G4 x/ l3 ~* [' F
  130.   def dispose; @8 h; I- G' H
  131.     #HP Meter Dispose
      @) C% \! n) Y
  132.     @hp_sprite.bitmap.dispose
    ' L( J% h, F: m5 d; S1 \
  133.     @hp_sprite.dispose
    ! u# i3 X+ j5 _# g2 r# q
  134.     @hp_bitmap.dispose
    # R" U& U' ~( ]: v% V& f" C. Z# y
  135.     #HP Border Dispose
    1 U# A3 W9 G5 F: v% o3 R9 a4 U+ ^( C
  136.     @layout_sprite.bitmap.dispose( e& _$ [: z5 w1 @2 K; X/ I; X/ {' d
  137.     @layout_sprite.dispose
    5 J% }6 [! @3 g. I9 v, E7 u- x. p! H
  138.     @layout_bitmap.dispose
    . j+ O+ A) I2 d
  139.     #SP Meter Dispose
    $ c1 m! W5 M+ b. D4 o; y
  140.     @sp_sprite.bitmap.dispose
    & {/ D  n/ J, l, c% U0 I
  141.     @sp_sprite.dispose
    % s/ h' N! ~$ T5 w( J: a. v/ I1 {" o
  142.     @sp_bitmap.dispose, z& a0 W3 c- Z" \
  143.     #SP Border Dispose# h& y4 Y7 I2 m: o. ~( V, b% {$ z
  144.     @layout2_sprite.bitmap.dispose5 f1 \% O2 L- {/ }
  145.     @layout2_sprite.dispose
      O' b! T/ N2 R" z( \! N# v/ v
  146.     @layout2_bitmap.dispose# y0 v; w' q) f2 |( E, K9 q( U
  147.   end
    ; b* D5 t# |8 ]3 [5 ~
  148.   #--------------------------------------------------------------------------$ c7 l* @+ V9 a- [3 F4 B5 J
  149.   # * Update# Q' |- a0 r) N# t6 [
  150.   #--------------------------------------------------------------------------7 c- V/ n9 t" z3 {; H
  151.   def update
    : A( e- s  ?+ ~, G
  152.      @battler = @enemy.battler
    5 E: s4 B$ y" A. p/ D/ r9 o9 W# S
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    7 a4 E9 w2 p& `9 L) g* Z" X; q
  154.      if self.visible
    * X# \  Z+ S# s8 l1 r3 d5 [: M
  155.        refresh$ P% g7 J; y+ e
  156.      else
    9 H2 E! t0 j/ P0 Y
  157.        self.bitmap.clear
    $ P. `7 Z0 u2 z3 i- b. T& h
  158.      end
    0 u" g# \8 p1 O
  159.   end
    ) e3 V/ W  g' X  [
  160.   #--------------------------------------------------------------------------
    0 d5 z# u  s0 C& X# P' L9 H
  161.   # * Visible Update% g; `  m- v! _( w
  162.   #--------------------------------------------------------------------------
    - J2 J' @- y8 L9 z# ?- T
  163.   def visible_update- |' d7 ]' m8 k: V
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true4 a8 ]. ^& f$ T3 Y$ |& Q
  165.        @hp_sprite.visible = false! N* U9 {1 k% c$ X; e
  166.        @layout_sprite.visible = false
    # c: t; Q; y- Q, R( ]
  167.        @sp_sprite.visible = false: ?+ Y" M; a2 ]
  168.        @layout2_sprite.visible = false
    - V: a/ F# `4 N" z8 D
  169.     else! s% c% o+ c- ~, M! @
  170.        if HP_HUD == true
    3 W7 _$ _2 @- F" O, x5 j1 l
  171.          @hp_sprite.visible = true
    . c, c( u4 c( R' U! U" c
  172.          @layout_sprite.visible = true
    1 z, k5 I% p6 Q, ~9 E4 h6 g3 @; D& k( r6 Y
  173.        else7 m2 @7 J+ W9 v0 g- t
  174.          @hp_sprite.visible = false3 v: T: O1 g# E5 o
  175.          @layout_sprite.visible = false
    7 v1 G# \8 }: W& R; b/ j$ s
  176.        end  
    - T$ g, z; j  M$ `' Y! F
  177.        if SP_HUD == true
    7 p! D+ J- l+ ~/ f# m& r' d
  178.          @sp_sprite.visible = true
    ) Q7 C1 J9 g% Z
  179.          @layout2_sprite.visible = true/ |8 p9 b+ U: |$ A/ V
  180.        else2 v; d3 l. w2 l
  181.          @sp_sprite.visible = false( I+ D! u6 w) v8 B, y
  182.          @layout2_sprite.visible = false
    " H- c+ O2 c# [- B3 A% B  Z
  183.        end
    + t7 ~) G3 Z( i2 S% H
  184.      end  . m9 e2 i# G; o8 N1 F' W
  185.    end
    5 t0 B( ]7 m# Z" S# y2 S
  186.   #--------------------------------------------------------------------------
    ; ^3 Q& h* f5 j
  187.   # * Hud Pos Update8 k6 d0 |" R8 @% p- t1 P
  188.   #--------------------------------------------------------------------------
    $ F8 \" G6 J1 d% t
  189.   def hud_pos_update
    1 t" b! t/ O& N) a
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    8 N" R, ^  x( O9 a$ J" s
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  ! `2 {7 E1 \* h  ]8 b, C, ^
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X  e3 |/ Y) ?% c
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    3 u4 Y  |! H5 `6 ?& l9 d
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    7 H; m5 i% I' n0 S3 |& p* M
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  8 y  L- l5 U; U+ @1 I& R$ B( D
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X9 p6 n+ [( Z. a( l2 j7 n
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    6 G& T) c0 W* Z9 q
  198.   end  9 A. P) B5 z  P6 G* @+ N" `
  199.   #--------------------------------------------------------------------------9 N0 m3 Y! z5 n. ]
  200.   # * Hp Flow Update* V$ K0 {) j0 }, ^
  201.   #--------------------------------------------------------------------------
    , {6 @6 K8 h9 ]6 l. n4 O( v( x
  202.   def hp_flow_update
    3 `! j8 ~. @3 K1 m7 J2 m
  203.       @hp_sprite.bitmap.clear
    , r0 }. v1 ^8 b% \. n9 g8 R
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    7 Y/ G# W) d) l2 t
  205.           #HP Damage---------------------------------+ b; A# U; P; l. i) K& n- \; p
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    % p( b, Q5 g" J+ m$ D
  207.           valor = 0.5 if valor < 1          % e0 P, B( F& d8 z
  208.           if @hp_width_old != @hp_width
    # W5 `  Z2 X" C9 M/ @6 @8 k& d4 P
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  0 H- c- Y- Q# a1 r6 u
  210.           if @hp_width_old < @hp_width
    0 o+ B$ ~. @- O( k
  211.              @hp_width_old = @hp_width
    + y+ [5 d% o9 S# R' J. r
  212.           end      % G& R0 @' t. A  Z8 v
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    ) W/ ^3 U9 _8 a6 F0 K; Q9 B
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    ( _  D- L& q: k  I% m- y6 i& ?
  215.           end        + c( u8 y! c  r+ z! W2 J# g
  216.       #HP Real------------------------------------$ N+ s; l4 G( G
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)6 S3 r8 p5 g- p9 h0 L
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    ' G+ ?8 z  u* W3 {
  219.       @hp_flow += 2  
    1 m$ `: K# {# c) i+ N
  220.       if @hp_flow >= @hp_image.width - @hp_range- a* R5 o6 ?) l/ ~3 [' X  \
  221.          @hp_flow = 0  8 [4 R1 {& G# a' t1 O
  222.       end+ d% x& E9 H# S7 o, f! g; q
  223.   end   
    7 u0 ?1 b  B% Y- h( J6 ?
  224.   #--------------------------------------------------------------------------8 {& g6 U6 [5 D9 {9 T& |, B& a7 g
  225.   # * Sp Flow Update
    & K  U1 J, t7 [8 t/ ~
  226.   #--------------------------------------------------------------------------
    3 V  v# d1 P- j* j' S% d2 Z
  227.   def sp_flow_update. R5 R2 [4 z1 [9 v  o" B% Y3 ?: c
  228.       @sp_sprite.bitmap.clear
    3 E/ K5 z9 T& f5 u) \0 m2 @( z
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
      ^. W) O8 L6 K
  230.           #SP Damage---------------------------------
      t. b) q$ l3 V; G$ \% P
  231.           if @sp_width_old != @sp_width
    4 \( I- I1 `) Z, v7 W
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    ; _, }* O# T1 u: }
  233.           valor = 0.5 if valor < 1              
    . v5 }2 P  \" q" Y$ m) ]7 Z% r
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    ' E: S6 w8 `' f! K; z# h/ S0 p
  235.           if @sp_width_old < @sp_width
      M2 c8 a0 I# s
  236.              @sp_width_old = @sp_width
    4 ~( C8 P- f' e5 b
  237.           end      
    8 I- s$ x( k( ?3 i9 t
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    0 v8 s; x  S5 N* B
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    3 G' k: P; X9 T
  240.           end
    # n( `- o$ Y6 Q
  241.       #SP Real------------------------------------, Q* W7 s" X+ t. M0 ], ^2 u6 Z
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    5 ^) I& C6 i* `
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)0 L, C3 X5 F: u+ i' Q, f/ N
  244.       @sp_flow += 1  1 c& y* i+ \# g9 S1 `
  245.       if @sp_flow >= @sp_image.width - @sp_range
    ) @, n4 Y1 Z1 ^5 Z: B3 C  p. U
  246.          @sp_flow = 0  
    0 R; [0 ]' y2 Y# e  E6 X$ F- q8 V
  247.       end! r9 h, }* H; x1 G' A, _' k
  248.     end            7 [: Q4 U. P0 |' ]
  249.   end. R* W4 c( B# x! Z; d( q8 B
  250. #===============================================================================) Y5 ?: i. q7 G- x$ F# ]; O3 j
  251. class Sprite_Character < RPG::Sprite
    ! X5 J5 m7 b) O0 u
  252. #-------------------------------------------------------------------------------
    % \" s- C. v) m
  253.   alias :xas_emini_hud_init :initialize( Y7 d, N* h3 v9 y7 Q
  254.   include MOG$ {0 [" n1 @  n$ {4 L
  255.   def initialize(viewport, character)( S+ R3 }# g8 s
  256.     xas_emini_hud_init(viewport, character). r- h" l) u9 A; m1 I5 [; d* ^
  257.     @viewport = viewport
    . {# Z& H( E' ?% ^3 I, G# X
  258.     return if @character.battler.nil?
    # T; J4 o( g6 E% r
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)) w; n6 s+ i  g2 B  b
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)) m- r/ b0 J% V; y3 Z' Z' u+ i
  261.     return if @character.battler.is_a?(Game_Actor)
    ! w, ?4 o# E  r1 B4 v; [
  262.     @bars = S_Hud.new(@character, @viewport)
    9 A# z0 h! z( z2 D0 w
  263.   end5 g8 _" M7 s9 h8 O
  264. #-------------------------------------------------------------------------------
    - j- j5 p1 U  I0 P0 p5 X
  265.   alias :xas_emini_hud_up :update
    0 E+ g! Z2 {4 T" {
  266.   def update
    2 r# ]6 Q% H( c2 |# L/ l
  267.     xas_emini_hud_up9 ]2 D( D& v) N0 _: R
  268.     return if @bars.nil?
      v5 A3 ^7 y) Y  h; }
  269.     return if @bars.disposed?
    / P' y: ^4 [- x+ Z; H! r
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs+ h0 `8 C# p' N: l  ?$ _4 L& K
  271.     @bars.visible = (dis <= RANGE)
    / \9 ^9 |4 X& N5 c% t% `
  272.     if @bars.visible
    # G' `2 Z9 L3 i0 N5 x4 ^* n
  273.       @bars.x = @character.screen_x# - @cw / 4& u* }( V% z* x( p; h
  274.       @bars.y = @character.screen_y# - @ch / 4
    ' D; T3 S, g9 ?2 x
  275.     end
    , F( u" X  l$ I+ o4 K3 p; X4 C
  276.     @bars.update& [4 ~/ ?0 r. K. `& S
  277.   end
    8 m* Y: p4 f; s7 Z' {, U2 _. T
  278. #-------------------------------------------------------------------------------# F7 ?( f) R; ^3 `' T, E
  279.   def dispose
    ( ]  U% p3 `% Z1 `
  280.     super
    0 h( A# l3 Y+ W, D
  281.     @bars.dispose if !@bars.nil?- {9 K! Y% |; T8 U
  282.   end" a0 {; t% o1 _3 S7 t+ x
  283. end' D! q2 p# u( G: [: D5 K

  284. ! m1 F+ u& C+ d8 k7 w. m$ ]$ s
  285. $mog_rgss_s_hud = true
复制代码

$ C( F7 l9 y& }" j6 P( l% q& K# M1 T4 ?$ D
! l0 A% s& |+ f" F9 T7 o
上面所說出錯的203行內容為6 Z% n8 P& L; s- ^) @9 b
@hp_sprite.bitmap.clear) {" f1 r: b8 D' o! K& U  B& @
+ g8 `) {) T. s5 b
想知道怎麼解決/ Y* Z7 X4 X, n8 d6 D

, j1 h0 }( [9 t0 B該腳本支持3.82  R; D) k# b+ ]6 B

# p0 e6 i, e$ A1 Z2 e* L下面是圖檔,要塞在Windowskin下# ?, @  x8 _+ Q/ C/ ?6 }% x9 X, T! k

, q* P" r* Y& i% ?: j S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) 5 v- w, W: l% O+ O7 Y8 l! n
' _& e: r$ u3 D

- f" i( {  c$ S. Z* ]6 ]! f! y
/ p7 A$ E/ U$ h/ I

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
1 d' g/ n3 [# j- s! a! W结果尝试刷新了一个已经释放的图形
- r' j  Z+ T- W: B6 X# W4 j
: w1 G8 h) }" p% J" t6 T* q# N$ \/ J' k/ N2 W8 l$ i/ B

5 \5 U# F9 ]) V: B6 K虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?4 U2 H) t: {3 x
复制代码
不要后面那个条件貌似就没问题了。
5 w+ B$ E( o; n/ d# M' e; j0 s9 G3 E7 C) k; R, Z, _" x

/ U$ j5 z* F# w* ^$ Z
0 o& _, O" z' `* q! ?
; N% Z' t# K# ^/ O
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
507
在线时间
1788 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
- ~; [+ R# d% _' s! d貌似是释放的条件不合适
+ e; Y9 u, `" ~结果尝试刷新了一个已经释放的图形

, B6 g( ]9 A5 }- a3 p7 P" X把後面那個條件弄掉後,的確沒問題了
! J' G+ F: X, t2 Y+ @# T: n. L目前從關頭打到關尾結束都沒再彈什麼錯誤
' x5 {8 ~6 V  N非常感謝7 @1 T0 n1 _0 H8 Y. f7 Q2 w

: |6 ]7 ]( ^. C; G/ D: d, w不過我是參照著別人腳本改的% l8 P4 t$ y% K- T; I7 ]8 b
他寫的條件式也是那樣,但我用他的沒什麼錯誤1 p% r$ O5 t% z( B& g# x* Y0 e
不知道是怎麼回事7 |4 `% c- x- O2 ]8 K
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
% L: C$ Z* I4 }- |3 u# F我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
8 o9 Z; J: ^5 }; i& n7 s嘛..这个数组吧..我在以前试写队友的时候关注过一点
- n( w! {6 L5 T$ T不知道XAS内部对它做了什么手脚还是为啥,1 S* E4 {8 h! l- R% f
总有那么一瞬间,没有被消灭的敌人事件也变成了nil
; X; a& @! Z  W/ s
2 I% P7 z4 E' d5 c; Q2 _$game_map.events.values[@enemy.id].nil?) _4 D! L  \. D7 Q' b
因此自然而然的返回true并符合条件把图形释放掉了  p  `( _2 X1 r9 O5 S# r7 h' q
1 o' t/ q6 s& O4 O4 h- E" m
LZ应该有注意到吧,
- q% \. Q% a) a我测试的时候发现报错前几帧,图形会消失,2 h. s% i5 N% w1 s6 U8 R: n+ U
应该就是“误以为敌人被消灭”了。
/ n' g9 {9 x' ^* D$ q/ u3 ]2 O% S" S- m  O
受限于个人水平,至今无法找出$game_map.events的真相..& B8 V7 f: l0 c0 x7 X$ [$ _* C2 ~$ L
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
507
在线时间
1788 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
! k* R0 Q6 A& R- j/ o. {1 g. C' @* e' h$game_map.events
+ H( r& Y5 _% V0 H, O: T+ @: g嘛..这个数组吧..我在以前试写队友的时候关注过一点
7 N; F+ S& C1 t8 T不知道XAS内部对它做了什么手脚还是 ...

2 d* U: F2 i/ Q. {5 @. G7 ^% i' t當初我把那個條件式看了三遍,都不覺得他有什麼錯& X; i, L6 O: w, |0 ?
原來還有這麼深奧詭異的事XD
* ^2 I6 n% a/ V- a8 T" a  t2 K) ]4 O4 U, ?
錯誤發生前的確會有圖形沒顯示出來4 s0 n4 V$ ^  a/ n
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
+ {7 R0 T# v% j" H沒想到居然是詐屍了XD
8 c% r0 d. W1 w$ O; \, K/ G  p  `+ s3 ]7 n6 l$ y
不曉得3.91有沒有修正這問題...
9 @, ], u3 n: \' o% p1 ]3 K: C/ w不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
7 U3 i$ h) @0 I9 n. D! I5 N- F2 ?5 C0 P! B8 k& N1 [
的确. Y, g7 E* L/ D
用惯3.82之后想去整3.91觉得压力甚大... u5 N9 _+ ?' Z
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。6 a2 {6 [! M/ ~2 e) q1 p/ G

9 X; z7 p( T9 O, g% x' X. N然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-9-9 16:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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