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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條; S  B+ E; |: U& C  o
會在每隻事件怪物的腳下顯示
0 e& O3 c" P6 _6 t5 v問題是不知道為什麼
- _" q- r, G  s4 E; d4 _% v有時打怪打一打會跳出1 h  C3 N& s$ p# e9 _0 @
---------------------------
1 I- M3 s! T4 g* i8 _4 j% iXAS4 J* M# {6 p; j$ ]% \+ _
---------------------------6 k" c& q4 V# J( M; N
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。$ M( N, x; `7 b: ?
' H$ f9 g; L& O( B- W
disposed bitmap8 u' H0 k) q. H- C5 R
---------------------------
' q: [& S% T9 K確定   
* ~. o0 l$ g0 j: Y---------------------------- ~- C% v6 a3 |8 o% a7 C( @

# l# v3 o0 |3 S這是腳本4 y: Q. T$ d: u+ Q, \
  t- c5 f; \0 l( W5 i1 Q) o0 A
  1. #===============================================================================
    + Z% i) S' o3 A! l" g
  2. # MOG - s Hud 1.0      6 x1 s+ T4 Q2 O3 o  |
  3. #===============================================================================( {" l/ K6 p5 Y% k* T
  4. # By Moghunter ) E2 h, O* b4 `) V: J
  5. # http://www.atelier-rgss.com( @# b, ~" n6 e; `
  6. #===============================================================================$ v. j$ `4 F7 ^
  7. # Translated by Calvin624 1 Q7 a0 {# r9 O" g/ B5 L+ R
  8. # http://www.xasabs.wordpress.com
    * y  O. x4 `$ \% O0 S7 O
  9. #===============================================================================- P; l  v- B0 r
  10. ###############################-DESCRIPTION-####################################% g, ?3 V; j4 c
  11. #===============================================================================0 @4 ]/ E- |4 X5 U
  12. # Personal HUD – displays the HP and SP below the hero.
    8 y5 \" Y3 b; u
  13. #===============================================================================7 E6 U' P* G9 v3 S% M4 ~
  14. #5 q+ h$ h2 K5 b: {
  15. # Graphics required:" c2 ^1 t- d& n
  16. #
    ; W1 O* t  U) G$ y; s$ k9 ^
  17. # S_Border_HP_Meter.png2 G4 O" {) c: w; J
  18. # S_Border_SP_Meter.png
    8 g2 k* u4 l, B1 O, m/ ]5 g- S
  19. # S_HP_Meter.png
    2 {# V  }) `+ A/ s7 H
  20. # S_SP_Meter.png5 ~3 b/ W0 S5 x  a0 i* y
  21. #
    ( Q6 l8 W2 J0 C8 r1 d  @1 d( m
  22. # All images must be in the Windowskin folder.
    6 f+ @1 G5 V* x) \& K( ^7 I# T/ C
  23. #
    9 ~& i+ T4 v9 {; ~, D8 m
  24. #===============================================================================6 ?( R+ U& F$ p& F3 d
  25. module MOG/ P% L! e* s1 j- g
  26. VISIBLE_DEF = false  
    ( y0 [3 Q0 e# ~! g
  27. # Show HP meter?
    ( g) }8 m) t, L9 q  \6 `" q/ B
  28. HP_HUD = true7 C: m0 Y' C; {2 @/ v
  29. # Position of the HP border+ I1 H( X; G5 h* o. |3 b* J: _. U
  30. S_BORDER_HP_METER_X = -2
    , D( d7 }8 f4 o5 M$ {3 @7 M
  31. S_BORDER_HP_METER_Y = -2  : W# j5 t+ ~  c  \
  32. # Position of the HP meter
    ( h8 w/ H" C$ j9 Z  f+ }9 v
  33. S_HP_METER_X = 0
    * N# u  [+ }4 t, X0 g% s$ R; G
  34. S_HP_METER_Y = 0# R/ ]2 j+ h$ W+ V. q
  35. # Show SP meter?' N& ?: I% t' m/ `+ N% t( J
  36. SP_HUD = true2 r: t7 c( {& k9 Q  R2 Q$ q
  37. # Position of the SP border6 B" K7 ~: v$ l5 X" h6 x
  38. S_BORDER_SP_METER_X = 0
    ) I. \2 T5 i3 }- x% l
  39. S_BORDER_SP_METER_Y = 10 & X  X2 l. f0 t; ~% j
  40. # Position of the SP meter/ }+ O# Y) E2 y) w0 {/ o5 I" I
  41. S_SP_METER_X = 0- }2 }- _; I7 S; b5 n- D- A/ A
  42. S_SP_METER_Y = 10
    / Z+ ~9 n0 W5 A" \! P( I
  43. # Switch to disable the HUD2 a0 U$ K+ s& s  e1 q. H
  44. DISABLE_SHUD_SWITCH = 5
    3 r1 W. e! y1 e
  45. RANGE = 20
    1 B, E  n  |7 ]+ _3 u+ Y
  46. end
    # V( \8 C! V' a# K
  47. #===============================================================================
    * }3 I2 U# h) F% }
  48. # S Hud1 _1 i! r- [- D1 L; _
  49. #===============================================================================
    0 r  z* }6 Z% A
  50. class S_Hud < RPG::Sprite3 k+ S# _7 l; s! O# u
  51.   include MOG' u' n/ r0 V2 h! f$ ^
  52.   #--------------------------------------------------------------------------8 a) U  l$ u6 p7 u- r: E
  53.   # * Initialize: r; d# q* k! `+ ]
  54.   #--------------------------------------------------------------------------* e; G) e& u0 q5 e
  55.   def initialize(enemy,viewport)
    % [' S7 s/ X$ I2 p2 d& X+ a5 _* s
  56.     super(viewport) 0 w) j( |$ p' w5 {. O6 N/ ^0 w5 y
  57.     @enemy  = enemy+ X6 D5 ?% ~' t& \( s6 D
  58.     @battler = @enemy.battler
    % D7 {/ y' B. p; g: U6 w$ r8 H
  59.     @old_hp  = 0
    / ]0 n9 Y4 E3 J5 b& a6 n
  60.     @old_sp  = 0" j* J6 x9 P$ i  i; U1 a# x
  61.     @old_vis = false
    ; t  ?1 u+ X: u: R+ p5 J9 I
  62.     self.bitmap = Bitmap.new(100, 100)
    9 b$ ~  D) c# t1 x0 Z
  63.     self.visible = (VISIBLE_DEF)#false7 O. z: A" l5 M& T0 \2 a+ j
  64.     self.z = 100  D( g" F' @; v) H3 G& }8 T% V9 p
  65.     #HP Border -------------------------------------------------------------------
    9 u0 I. X7 ]5 P2 _# k
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")) v) a; ]) o0 w1 v9 r  A9 v0 k
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)2 P; M2 h. b$ v2 H0 N- h
  68.     @layout_sprite = Sprite.new: e: h8 ^! \% o) c# J, a) G
  69.     @layout_sprite.bitmap = @layout_bitmap- X+ b# Z2 [* {6 `/ O/ `7 M
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    9 W( _* |9 N9 M1 i9 Q  _
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      ; T+ P- @2 x5 \4 _0 E* ^9 `( U, S
  72.     @layout_sprite.z = 5001& y: Q+ }- b' U& n$ G
  73.     #HP Meter ---------------------------------------------------
    ! `6 v' f# I  a* _) n; T9 Q
  74.     @hp_flow = 0/ B7 h7 b% h, a- \
  75.     @hp_damage_flow = 0
    + A9 j: F5 }; e
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")# R9 Y) v$ |0 t5 q
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)1 l4 ^, w9 [/ `0 d9 K9 l2 _( ]1 I
  78.     @hp_range = @hp_image.width / 3! L! X  |1 U1 B8 [1 ]( U6 z
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  ( r% c- e9 @, h' q' d
  80.     @hp_width2 = @hp_range / 2
    8 \2 s3 r8 {( D
  81.     @hp_height = @hp_image.height / 2
    1 W6 m* F5 y$ ]! A: q
  82.     @hp_width_old = @hp_width
    7 P" {1 V3 N. w" L$ [0 D
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)& \" @9 o, o* ^
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    7 f3 G5 b! I# }. R7 S
  85.     @hp_sprite = Sprite.new! K) h7 j* {8 f, J( e' `0 j
  86.     @hp_sprite.bitmap = @hp_bitmap
    9 Y7 s. N4 B2 T. v6 q) W3 o
  87.     @hp_sprite.z = 5002
    7 \+ L4 g' A% E
  88.     #SP Border -------------------------------------------------------------------
    " \5 \& S0 H; \
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")2 j6 T+ [2 q$ L+ I" u; C* ^, g; j
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    * ]8 V' D( B# i* M! m$ F
  91.     @layout2_sprite = Sprite.new9 u7 X. T0 V$ h  I0 q5 T" F3 z( W
  92.     @layout2_sprite.bitmap = @layout2_bitmap7 L# C: }- \, G# S+ Q- D
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    + [0 I. B. ^; ^0 K6 J* d
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    5 H% s: L9 e; U
  95.     @layout2_sprite.z = 5001    ' _/ T+ `( z$ k) U0 x% y; O  G
  96.     #SP Meter ------------------------------------------------------$ q  P$ }: w0 c9 @& L
  97.     @sp_flow = 0
    , S3 Y1 W, s2 U# E) d
  98.     @sp_damage_flow = 0& Q  s$ T" \' ]
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    ! R% u2 w+ ]8 H5 w; w
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)$ I( K, ?9 w; s  r
  101.     @sp_range = @sp_image.width / 3$ M4 n5 ?9 x! ~& q; S/ d* p* p/ ?
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  + e2 W  }/ x' _! h# {; @& ^
  103.     @sp_width2 = @sp_range / 21 L0 H: I) G/ v, ?5 V
  104.     @sp_height = @sp_image.height / 2
    " e0 j9 M% Q! }
  105.     @sp_width_old = @sp_width
    6 k, ^1 a8 H& H/ h
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height). v( O  E& S. q5 i3 v4 [7 J- c: t
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)! C8 Y& z* B* ]3 v' Z
  108.     @sp_sprite = Sprite.new
    - h$ f# l1 N' s5 ]* S% B
  109.     @sp_sprite.bitmap = @sp_bitmap$ C* R) i; M+ c4 L; h+ ?3 _
  110.     @sp_sprite.z = 5002
    ! e6 h9 i& v- d3 W" W) v% N
  111.     update
    ; ?' e1 j% i+ D- D
  112.   end
    + a) z" s: E1 u1 k$ L; y
  113.   #--------------------------------------------------------------------------& d5 G4 V+ L6 u& \
  114.   # * Refresh
    / n: K2 i3 v- u3 W' V
  115.   #--------------------------------------------------------------------------9 c. m/ e) w) d0 W% j  r& K
  116.   def refresh
    5 _0 X$ j! S& g7 S$ o
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    , }) ~! L" q6 T# y+ P
  118.     self.bitmap.clear
    8 x! O+ U8 l& ~+ b
  119.     @old_vis = self.visible
    - }3 n& k6 F0 H" N1 P/ z! G
  120.     @old_sp = @battler.sp7 Q9 p: a, V  }: }
  121.     @old_hp = @battler.hp5 h# D" o5 @/ U9 A& f" a
  122.     hp_flow_update
    , x+ c- J$ E7 n
  123.     sp_flow_update
    " s2 c2 Q; w  ]2 ?  x
  124.     hud_pos_update
    . J/ }5 H# m! g. |3 V
  125.     visible_update
    % D5 Z+ M- Q2 O$ z( z9 s% p
  126.   end
    2 ?" x* R6 p; M1 p& y% u( v
  127.   #--------------------------------------------------------------------------
    ( ]! ~  S3 |; N( j. m: J
  128.   # * Dispose2 ^2 A6 P9 j. S# |2 B' ]
  129.   #--------------------------------------------------------------------------
    ; \. W8 a2 H! L# s3 p: O" F
  130.   def dispose
    0 k$ H- N' l7 J) C9 s
  131.     #HP Meter Dispose
    # l$ U9 O* |# e; b' T
  132.     @hp_sprite.bitmap.dispose
    4 S( D- i6 `; `& o& o
  133.     @hp_sprite.dispose) K) G( P0 ^2 q
  134.     @hp_bitmap.dispose
    + R" a- S: c0 {
  135.     #HP Border Dispose
    + b: z+ N& D# ?! _- p
  136.     @layout_sprite.bitmap.dispose( k' Y* Q1 H7 V
  137.     @layout_sprite.dispose9 d, m6 x, ?% F
  138.     @layout_bitmap.dispose
    , I: G7 P: ?# u3 f- T3 q  C
  139.     #SP Meter Dispose
    1 ^: n  l! E: K% W* [
  140.     @sp_sprite.bitmap.dispose
    # h; a. j1 e# a
  141.     @sp_sprite.dispose
    3 i7 O1 ^: \- W/ F3 D9 M* N
  142.     @sp_bitmap.dispose# A9 w  D+ u6 Z% G  ~# J: V$ K2 g
  143.     #SP Border Dispose9 V! C7 b' x6 ]' z+ W( e' A% `4 y
  144.     @layout2_sprite.bitmap.dispose/ s& X+ q, D0 @3 W5 l
  145.     @layout2_sprite.dispose& e* g0 k9 K+ ^3 y7 B5 X- b) _
  146.     @layout2_bitmap.dispose2 G9 H2 }4 @) h: b
  147.   end0 P9 f( F# L' k3 Z1 w" J0 L0 O
  148.   #--------------------------------------------------------------------------# B5 Z. Y) K/ U
  149.   # * Update& i7 M/ r2 T$ D+ d: n( _
  150.   #--------------------------------------------------------------------------
    6 J1 Z& W0 U# q+ N
  151.   def update9 H( M: ?- j+ P
  152.      @battler = @enemy.battler 9 D3 O" C9 {" v- E
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    5 C. l3 Y( a' n4 s& H2 t( N1 @
  154.      if self.visible
    ' g2 U+ |" ?8 x1 s) T# u' d+ O
  155.        refresh
    $ h# d: l* o9 Q- g! M  l% X
  156.      else
    5 ?; h( d: r" G  w3 t
  157.        self.bitmap.clear. w! F; U/ z8 n
  158.      end1 b3 P4 r* {# v$ h
  159.   end8 |' O. I1 g: m
  160.   #--------------------------------------------------------------------------
    / u. M7 @* z6 _7 ~$ C9 E
  161.   # * Visible Update
    ; G' ]! e* v- R2 K' o
  162.   #--------------------------------------------------------------------------  x0 ^! e& c3 l: ]
  163.   def visible_update
    % T- D$ G& {6 J
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true6 B9 A. a/ O, X* d
  165.        @hp_sprite.visible = false
    4 V. q0 f+ D' j: e3 h
  166.        @layout_sprite.visible = false+ ~7 R2 K6 A* W4 }. P, z2 a5 _
  167.        @sp_sprite.visible = false
    " d& r6 h- T1 B' t
  168.        @layout2_sprite.visible = false
    / p2 f6 X! Z; k
  169.     else9 Q2 B" b: N' T+ [- ~1 g
  170.        if HP_HUD == true% \" }5 N* D" K2 y
  171.          @hp_sprite.visible = true( K2 E5 x0 @2 T) q: v; B
  172.          @layout_sprite.visible = true# h6 M0 U8 R4 p: C) k& W5 J
  173.        else
    3 @( z* ^. L; H
  174.          @hp_sprite.visible = false
    ' J& `! ?( j" z+ O. |
  175.          @layout_sprite.visible = false
    2 ~4 t3 L4 o- h, c, g
  176.        end  
    0 c5 u# V; u. p1 _& ?
  177.        if SP_HUD == true, Z2 u$ W8 x/ G' M$ y
  178.          @sp_sprite.visible = true
    # ^3 u5 e) {( z$ T
  179.          @layout2_sprite.visible = true
    9 z$ l7 Q" d* d. c
  180.        else
    . [& u$ }: s' J. ^3 R. o' A
  181.          @sp_sprite.visible = false
    + `8 O7 D7 B" {" [$ R
  182.          @layout2_sprite.visible = false
    # M0 R) J9 J0 l6 N$ U+ v4 @
  183.        end
    & @- \, H( M5 b6 X  k3 U
  184.      end  # y4 K( N/ H' g( f1 H2 G( n0 l
  185.    end 4 q% E/ R, t; T
  186.   #--------------------------------------------------------------------------) A- \& K4 n3 s3 ^) O
  187.   # * Hud Pos Update8 k% G  ?6 ^4 i9 f+ Z
  188.   #--------------------------------------------------------------------------
    ! O' N+ ^0 b8 @+ [" \9 g! Q' `
  189.   def hud_pos_update6 h' G9 K8 @+ }, {8 I9 y( @
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X7 \5 [% c  n' q* O
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    0 a& r6 D6 t8 v1 G* j% N
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X; x: n4 Q3 s* |+ a
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y " Y6 |9 x+ [$ ~$ {
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    . V6 v! {$ W+ C- t* ]8 z; D
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    . J, Z' _, a1 [7 ]8 j
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    4 l; _8 I+ ]# Q) v0 d/ N2 [
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    : {! J4 i9 n/ f) X1 G! P
  198.   end  
    ! o0 N* E- x% S+ ^( I
  199.   #--------------------------------------------------------------------------' J) W1 Q$ i8 g8 }
  200.   # * Hp Flow Update
    : U& U8 X0 q5 j# f8 a9 p
  201.   #--------------------------------------------------------------------------6 M# H1 v4 G: P& \4 W  ^% b
  202.   def hp_flow_update- l* u( t- m. [9 s
  203.       @hp_sprite.bitmap.clear$ u& f/ E( [( r: z4 W9 r* K
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  ( N" {, M0 q  n; d
  205.           #HP Damage---------------------------------
    7 ]. h( ^$ a0 x, m% j/ L
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    + h; ?) v% y1 T4 a' Q
  207.           valor = 0.5 if valor < 1         
    , P9 q4 m% g, p) S' W% X) c
  208.           if @hp_width_old != @hp_width! R  I% x  ]0 W' R( |% B
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  9 e2 p2 T2 M" ?5 i! ^6 A& D
  210.           if @hp_width_old < @hp_width
    ' u: l) q  M) b/ B+ B. B: {4 N
  211.              @hp_width_old = @hp_width* D5 n( e- b! z4 m
  212.           end      
    2 Q$ U6 b9 b1 ?
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    " {* u3 p; i( o+ L, s4 d
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    1 [2 ^8 Q& d# |* K6 y' ?2 x4 [
  215.           end        / m6 u! P2 P* H- A! Z$ X
  216.       #HP Real------------------------------------) ^) v4 Y5 j3 ?" \( M) q
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    . p# o2 j; ^5 N2 Y  N9 g
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    - _3 s( K2 j0 Y. G, s3 V* ~
  219.       @hp_flow += 2  
    # [* r7 Z; d3 k, E
  220.       if @hp_flow >= @hp_image.width - @hp_range
    " H5 m, k" U1 g2 `, K6 z! J
  221.          @hp_flow = 0  
    # \  b, k: e. v& l
  222.       end
    * [0 Q! A7 c* c' f! D
  223.   end   
    0 d( V; m6 o7 i  P" e
  224.   #--------------------------------------------------------------------------' T4 j; x# p  K: q- ~& F
  225.   # * Sp Flow Update/ G/ W% \6 Z1 I# ~$ A9 o- V
  226.   #--------------------------------------------------------------------------9 G1 J( @* Z. g
  227.   def sp_flow_update3 G2 x1 S* d( m! c" O% h" J
  228.       @sp_sprite.bitmap.clear, U; F, @# f% m
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp # A, }4 h* V$ x' @* m" }1 y# I8 z
  230.           #SP Damage---------------------------------5 l0 F6 i  {6 j) Z; d4 E3 i6 S
  231.           if @sp_width_old != @sp_width( X, F8 I7 Y: i6 _! h' A, a
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    $ c; r0 r2 T- ?# G# h
  233.           valor = 0.5 if valor < 1              9 i; I! q( P+ o
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    . R6 X- b3 g* i! {
  235.           if @sp_width_old < @sp_width
    : e' K  n" _3 B) [
  236.              @sp_width_old = @sp_width+ r' A- v# U- K/ y5 d# B  L
  237.           end      
    * M$ z; L1 Y; x% |3 ?
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)* q$ C/ V& ^% g8 p
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    % D2 w- ?: W" ^$ `/ j
  240.           end& w& F" M1 X& T; O  X% W9 v2 G
  241.       #SP Real------------------------------------% G4 C3 V; o( p. J6 _
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    * e6 }7 U2 ^5 u/ H" t! w% E
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    , y9 j9 p+ [: P- r$ M" x6 b
  244.       @sp_flow += 1  
    , G7 C. f# ]$ I* v3 {
  245.       if @sp_flow >= @sp_image.width - @sp_range/ {9 z" O3 ^; W! d: t" r1 V4 ]
  246.          @sp_flow = 0  
    ) v: r* @& L9 s0 ?! f  y
  247.       end
    # d+ ]% w! i$ b" x4 t7 V
  248.     end            
    # X$ b. @1 g( N" g' e
  249.   end
    6 M. ^  d2 Q- A8 _, |
  250. #===============================================================================
    7 q/ J) T: A  R, r6 |8 B2 \- G# k
  251. class Sprite_Character < RPG::Sprite# a% E' |, n! n# Y6 S
  252. #-------------------------------------------------------------------------------7 w2 b6 n* Q$ I+ F% k2 V
  253.   alias :xas_emini_hud_init :initialize& P7 w' [+ \5 M" W3 i6 K
  254.   include MOG% t2 p5 }  ?9 Z
  255.   def initialize(viewport, character)# h3 e1 N5 A  r
  256.     xas_emini_hud_init(viewport, character)
    ) M% R8 [3 B( }4 C7 i
  257.     @viewport = viewport' ~4 N6 T4 n' z' B( F
  258.     return if @character.battler.nil?/ j/ a1 x8 x# E: C  ~% u
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    % b0 i: R  l) g* o
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    ( j  Z0 f: h  Y, D+ t
  261.     return if @character.battler.is_a?(Game_Actor)
    # U: T* W/ k  s" o
  262.     @bars = S_Hud.new(@character, @viewport)% I. r6 t9 A+ e1 w% F: t: {: d" s7 y
  263.   end
    / S, {; H6 r. _  |5 Y
  264. #-------------------------------------------------------------------------------+ C: \' V4 R/ G
  265.   alias :xas_emini_hud_up :update" r: K" U  D6 X( ^. t2 W
  266.   def update
    ! G) V# g. e" h1 w# d# h( F
  267.     xas_emini_hud_up8 `" j6 v4 F& P& L  ]
  268.     return if @bars.nil?2 z: s9 Y  Q  X6 J5 @1 y2 o+ z# I: F
  269.     return if @bars.disposed?
    0 i( C3 \$ {" s
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs) l9 U# y( M  v$ O+ V9 Q8 M
  271.     @bars.visible = (dis <= RANGE)
    ; p1 e1 D/ z5 s% b6 h% K
  272.     if @bars.visible( \) n  r# a9 [) i
  273.       @bars.x = @character.screen_x# - @cw / 4
    5 x' u6 d% p5 j, D  a, q
  274.       @bars.y = @character.screen_y# - @ch / 4
    ' `# ?0 Q& @# b! ^
  275.     end1 l- h0 o6 N! u1 @) n4 B
  276.     @bars.update. @/ s7 g  b6 M) L$ r
  277.   end% _8 m/ w% S0 N$ W, Y& m% k
  278. #-------------------------------------------------------------------------------8 x0 q  g0 m7 n& R8 {& _! h
  279.   def dispose% y# M2 B/ R# {( H% a( z6 I: [
  280.     super7 O6 u% B' X# Q, v; _
  281.     @bars.dispose if [email protected]?9 ?; n% i! b; {" a' O
  282.   end) e3 {* _; h+ ^$ \* a9 [
  283. end+ _5 P1 c, `6 D4 b- z- L. o

  284. 2 M& p: `: U7 m; [  o; ~
  285. $mog_rgss_s_hud = true
复制代码
  Z: w, S' I. \0 f4 {7 U4 Y

7 a0 L3 ~& J' L1 W, F8 J# t/ ^# l. r# K" q  @5 |$ r& ?' s
上面所說出錯的203行內容為
# M5 n) B# W: B@hp_sprite.bitmap.clear, s& y8 p. A1 J' ?4 n1 T
- \5 z7 d% u: d: |; |
想知道怎麼解決
* O4 K3 @2 C, A; F/ \$ M/ k4 o8 U
% J  l* `, `6 U( `3 a: g* h1 C6 W該腳本支持3.82
/ I' ?/ p0 ]! {. |2 Q# s: P* O
5 x& x$ S6 U* d# i. C, ?/ K# o$ ]下面是圖檔,要塞在Windowskin下
1 H. f. ]: S% f! V# u# b) i2 m
& b- T( w- t) d; c8 j S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
4 D' m% v; C% I" M
( z* t; Y# l# V8 q
; {+ ]6 K5 ^+ K2 t) L6 @* g& M# e" i7 l* W2 v/ X  H- {

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
4 o! d( `3 D+ t8 z, s3 @  {/ k结果尝试刷新了一个已经释放的图形
0 y/ ~& V4 J! @" L
' c6 Y6 O8 _$ F: [' G( c+ L8 K8 B

" U0 e: {# G1 J; ^9 E  w虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?! T2 J+ R% c9 f9 [
复制代码
不要后面那个条件貌似就没问题了。7 W' F; D7 q( k9 l" q6 K  E, J' y
* R6 K, C/ b* @' J; Z( t& ?

5 x7 m, J7 g9 g 8 M' ^* Y6 O1 M5 E0 M# z& O" N
3 n4 B3 b8 @; C) N1 L; [
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
400
在线时间
1778 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
* u( ^2 W* p0 Z( M8 S! T貌似是释放的条件不合适* W' }6 n/ M3 R: E8 X; N4 l4 D
结果尝试刷新了一个已经释放的图形
1 k+ g, E$ k$ X' |1 t- }
把後面那個條件弄掉後,的確沒問題了
$ Y  Q3 `: o0 O1 ?8 m目前從關頭打到關尾結束都沒再彈什麼錯誤
- j7 }- D% P' x4 s, S非常感謝1 _1 A% Z! l7 D  W% a5 M% X$ m

0 i; D7 _8 G* |不過我是參照著別人腳本改的
8 W  O% a+ h4 a9 L* f他寫的條件式也是那樣,但我用他的沒什麼錯誤+ y7 F1 B- S) y  l
不知道是怎麼回事" J# \, y6 c/ M" j) l6 G
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的! C( o% y* D, R* M) R
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events0 A( s9 v. g" N5 Q9 U, W  ~
嘛..这个数组吧..我在以前试写队友的时候关注过一点6 l; a$ |; }1 b- F1 R
不知道XAS内部对它做了什么手脚还是为啥,
* V5 O/ p! j. z+ ]* I1 q总有那么一瞬间,没有被消灭的敌人事件也变成了nil
& S( D3 _' L- V' v8 n7 \+ X* Z* e! c# ]1 k0 k9 l
$game_map.events.values[@enemy.id].nil?4 G8 d' l5 t4 R- E
因此自然而然的返回true并符合条件把图形释放掉了: R0 p. S% g& j
: U8 t/ H6 M. ~4 R
LZ应该有注意到吧,
/ O; f  f4 M  M1 m* L" y% a( U我测试的时候发现报错前几帧,图形会消失,: r9 l4 g- S  T# k. b  {5 [9 t
应该就是“误以为敌人被消灭”了。
; Y) R7 V, c7 {+ d. a: A& j. f; D) T4 o3 v; ?
受限于个人水平,至今无法找出$game_map.events的真相..
. W& E. g& T8 B# N' D
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
400
在线时间
1778 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
" l& l4 @% q' m* ^0 z$game_map.events4 j; k) ~% s7 ]; _: X* X
嘛..这个数组吧..我在以前试写队友的时候关注过一点" L* }! r9 k+ z' k7 j& h
不知道XAS内部对它做了什么手脚还是 ...

! A$ Y. h$ b0 q. H, r  K當初我把那個條件式看了三遍,都不覺得他有什麼錯
7 ~8 o7 Q  X# `原來還有這麼深奧詭異的事XD
( j3 p5 S% s1 y) ~2 l) ~2 w
5 A) V# X+ M( d錯誤發生前的確會有圖形沒顯示出來; Z) X: C" Z# @! P* U3 h8 B' X
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...) n8 a/ ^4 J6 W
沒想到居然是詐屍了XD  Z' l2 x( A2 P% K

6 a4 @9 S5 }2 S) W4 p# y) d不曉得3.91有沒有修正這問題.... m4 q8 _0 Z  w3 N/ ^0 K! b6 B) Q
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。" ~" a7 y5 u; v( t
1 D3 T0 O& `8 ]! u& p
的确$ x8 J5 Y: l0 L: X3 B9 `# I
用惯3.82之后想去整3.91觉得压力甚大..
1 f3 b; F: S& j2 N/ c7 G$ i) t干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12294
在线时间
21800 小时
注册时间
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”。
* r9 U4 U1 ~5 t  c% a# k! w# i& @% s; U7 l5 Y
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-6-16 04:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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