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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條! T& I8 E/ {$ y. ^$ @% l( \
會在每隻事件怪物的腳下顯示# ?5 a0 u) i  D# P- p, O) e0 m$ J
問題是不知道為什麼
% s. I- M9 Z8 f- ]& t* ^: a/ ?有時打怪打一打會跳出
) T( @6 y3 ^- n, g---------------------------
  z$ d- @# g4 lXAS
/ g1 c0 c3 r1 r---------------------------
7 \6 V1 O# Q1 d脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
% N3 m! l  [$ m( S$ _6 q8 t1 r  y# G0 _7 J
disposed bitmap
' z" ^. _3 D  M" I---------------------------
" k/ }$ j2 e8 _+ S+ }; _! X確定   
0 `) _. t, s: g+ L" G$ t* |---------------------------* N+ {$ d. O. l  r( U2 R

$ m8 g# ?: d# t8 J1 H* W8 J- b這是腳本) H( h# H7 F/ F  i0 |

& y/ ^/ B4 b2 G2 z
  1. #===============================================================================
    ) @) ~0 J2 v  A, K0 m( \
  2. # MOG - s Hud 1.0      
    + k. Q+ ?5 Q7 H4 u. h8 W
  3. #===============================================================================# O2 g! L+ R' M' v! I: ~2 G. `2 \
  4. # By Moghunter / X7 V+ T. Z2 t( f
  5. # http://www.atelier-rgss.com
    6 ?5 e2 I% K4 D" e. `5 \8 k8 t
  6. #===============================================================================
    5 U( S9 f+ V  b3 Z% j% k
  7. # Translated by Calvin624 4 s" V0 O: w2 Q# v2 `+ X& g1 T
  8. # http://www.xasabs.wordpress.com
    ) A% P) v$ L- r1 [( ?: f
  9. #===============================================================================
    9 P/ p5 H3 K2 C+ g; m5 f
  10. ###############################-DESCRIPTION-####################################3 _/ x( X5 [6 _5 }4 R. H
  11. #===============================================================================' |5 `" x, Y5 x8 N4 p
  12. # Personal HUD – displays the HP and SP below the hero.
    - D& L$ ~8 v& b& n+ _0 y
  13. #===============================================================================. A* C  u% t! J8 l1 l; N
  14. #) ]' i  x* p% Z0 q5 F% o
  15. # Graphics required:8 k- p& _6 E( _1 Y7 T
  16. #
    . h4 l5 [+ R8 K7 w3 D, F
  17. # S_Border_HP_Meter.png
    1 m) e9 l- P$ G( B$ I
  18. # S_Border_SP_Meter.png
    3 \1 V' m4 I5 M1 ^+ U
  19. # S_HP_Meter.png
    & z) T) y$ g0 i9 g
  20. # S_SP_Meter.png( e! ^# X( U6 r# n5 o+ U* q! W
  21. #- c3 [& Q  j1 F
  22. # All images must be in the Windowskin folder.7 [  C" {/ s" T6 U
  23. #4 Q4 C6 f& ^$ L- a8 `7 o
  24. #===============================================================================
    " _& R( T% E7 L
  25. module MOG+ {+ S( b! I2 R$ Z. D
  26. VISIBLE_DEF = false  
    % _/ W. c8 r% ?" ?9 ?
  27. # Show HP meter?
    9 j+ x% I7 U8 |3 C5 F
  28. HP_HUD = true
    # P4 f. y, ?4 D: ?
  29. # Position of the HP border( K8 S; O) N2 z/ @" u( g+ U- y; F: e6 H
  30. S_BORDER_HP_METER_X = -2) L# `$ ~: X5 g9 C  ]
  31. S_BORDER_HP_METER_Y = -2  5 v6 w: d4 A+ g: B# t
  32. # Position of the HP meter
    - v9 C- ^8 i' ?
  33. S_HP_METER_X = 0
    + m/ o# X; q$ Z  h9 v' N
  34. S_HP_METER_Y = 0
    & P+ c- J" T0 c( @
  35. # Show SP meter?4 f( y  N, V. r. l
  36. SP_HUD = true
    * c( C( i4 E, ]% F
  37. # Position of the SP border
    $ G* c/ s$ T) a& y# ~
  38. S_BORDER_SP_METER_X = 0, ?, B$ E1 @0 m- M" g* P
  39. S_BORDER_SP_METER_Y = 10 & n9 _3 }9 u* H7 x! z& K
  40. # Position of the SP meter( G3 I% A$ @, h* l  J
  41. S_SP_METER_X = 0$ n3 Q+ C: Z: i7 o( J, ~3 H
  42. S_SP_METER_Y = 10
    5 v; C. m2 p: O4 b9 l# J( r
  43. # Switch to disable the HUD4 N6 s) d2 C' |
  44. DISABLE_SHUD_SWITCH = 5
    4 i) r- ?. Y/ x$ j7 s  _
  45. RANGE = 20
    9 Y0 p0 R* X6 u6 ~, X: b6 Z0 y7 ]- ~
  46. end2 D4 _& O; u; f5 j% x
  47. #===============================================================================" i3 e5 C$ M9 f5 H' a9 m
  48. # S Hud2 F0 x; k( M3 u) T. k1 Q
  49. #===============================================================================
    . I( @9 c" E8 h9 x4 E- O
  50. class S_Hud < RPG::Sprite
    7 B7 a' ~1 t* j* n* y
  51.   include MOG+ {* a& ]9 N, L
  52.   #--------------------------------------------------------------------------
    , z. y, d6 W0 Z% Y' f; c! ^: F
  53.   # * Initialize
    " s! Y$ w1 d4 y; T6 Z: e
  54.   #--------------------------------------------------------------------------
    & g0 C6 [6 ^/ ^; C7 B- Y% T
  55.   def initialize(enemy,viewport)- ]" S/ U5 b5 N: m$ L* B# i/ @
  56.     super(viewport)
    8 _: i$ W3 r8 ]# N; u! ]* M0 @2 ]
  57.     @enemy  = enemy
    : R, g* ?: C/ R. M, u- c. g
  58.     @battler = @enemy.battler& H$ {5 w2 `9 p: Z! |4 N9 h* w7 U
  59.     @old_hp  = 02 [! D5 A9 G0 n2 m. v
  60.     @old_sp  = 0, s4 k2 K2 Z& _+ F
  61.     @old_vis = false4 z$ I; l1 l5 ]
  62.     self.bitmap = Bitmap.new(100, 100)9 P6 F5 g1 {4 z
  63.     self.visible = (VISIBLE_DEF)#false& }1 q) x$ \' a8 T8 [
  64.     self.z = 100' u" f( Z: r# D7 L- d
  65.     #HP Border -------------------------------------------------------------------
    0 [' Y" K& p8 B5 a& \7 h
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")6 p: k: K1 C& O; q
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    8 [* `; v! m0 R1 W, a! w
  68.     @layout_sprite = Sprite.new
    0 m5 f5 y5 m( E9 }: z  D
  69.     @layout_sprite.bitmap = @layout_bitmap; m  t3 [2 f# z" P5 P$ c7 R) p
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    5 [: z' R" g) ^- j# ^! J& ^; o
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
      J8 T, i6 H+ \+ X
  72.     @layout_sprite.z = 5001
    ) X! d! c9 |7 ~0 u2 B
  73.     #HP Meter ---------------------------------------------------
    4 C2 m, H# N/ Z! ]
  74.     @hp_flow = 0! ]1 f' x9 @! a- _  x
  75.     @hp_damage_flow = 0
    8 n7 g8 p8 z7 c4 ^
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")( E+ S& t9 J1 s, F' T$ U3 s
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    - l3 D+ ^0 n3 X! f5 }
  78.     @hp_range = @hp_image.width / 3
    7 ~! [- k7 J$ x
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    ! K7 P# |) u( u6 n) V/ {$ x" n/ k
  80.     @hp_width2 = @hp_range / 2
    5 n  M% R( c9 e
  81.     @hp_height = @hp_image.height / 2
    . Q# m: O( I( i3 Q3 o2 p  ~- x
  82.     @hp_width_old = @hp_width4 Z( M! b/ r  ?, a. N# @
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    4 W1 Z2 F% q' z6 ?# R* ]: b
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) ( O$ b# g% _* G) O! [1 z2 Q
  85.     @hp_sprite = Sprite.new
    : b: H+ r% _" d6 M) G
  86.     @hp_sprite.bitmap = @hp_bitmap
    ; H3 B) Z$ F- T8 l& j- J- `
  87.     @hp_sprite.z = 5002: [4 \, [8 {) N9 ^* B
  88.     #SP Border -------------------------------------------------------------------* A* p- A! V" ?7 m& n9 s$ K4 p$ V
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")4 }( L- j! P* @) X) d5 _
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    3 m( ]2 H$ D4 `# D9 [
  91.     @layout2_sprite = Sprite.new  p' q! ~* a9 H7 B/ I
  92.     @layout2_sprite.bitmap = @layout2_bitmap2 H7 x' {, p% F7 U4 ]
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)# [  d# ^6 k4 O. K2 \9 g
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    # W$ x2 C; z$ I- t
  95.     @layout2_sprite.z = 5001    ) k& q1 y& t; Y7 _$ n6 t" x
  96.     #SP Meter ------------------------------------------------------
    & a: ?  q- y0 y
  97.     @sp_flow = 0
    2 z+ v. l3 q' ]% X- t) t
  98.     @sp_damage_flow = 00 K* ?' g( x- W
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")  j% I" E+ i( B6 q9 N& w  S
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    ) h$ T! k& R. Q/ |; |1 ~+ Q0 e, Y
  101.     @sp_range = @sp_image.width / 3. r# J5 H* M, `8 T, }: F
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    ' r2 U% o- ^) T% S8 ^
  103.     @sp_width2 = @sp_range / 2( P0 @; d4 K+ J: Y2 |; e) v
  104.     @sp_height = @sp_image.height / 2
      |2 z( i' H- T9 k, A
  105.     @sp_width_old = @sp_width! E$ Q: r7 J% }  ~+ ?
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)7 [5 t& t8 F/ ?
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)# t( T" d7 V( k" l$ `2 z: K
  108.     @sp_sprite = Sprite.new  M. S1 ]) w6 k
  109.     @sp_sprite.bitmap = @sp_bitmap
    + j6 s/ U$ I9 k; r2 ?3 y9 z
  110.     @sp_sprite.z = 5002; p+ O  h7 }- r5 R, i7 }9 H3 `
  111.     update
    ' X; y  }# T$ \4 H
  112.   end, x& a9 Z. Y. i$ u
  113.   #--------------------------------------------------------------------------
    , i; r5 w, z3 ]& t2 A, l
  114.   # * Refresh
    5 B& `+ |+ f, v$ p3 t5 \; T* x$ \
  115.   #--------------------------------------------------------------------------
    : k( \% L. q& q  j$ p: C: f8 F; F
  116.   def refresh! |  x0 C9 x5 y1 V; u" u5 u3 \7 O% ]
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    2 v- ~* o: c' u8 C' U, s
  118.     self.bitmap.clear8 e# D& r. A! e& g5 y' ^  r
  119.     @old_vis = self.visible1 Y$ i. R2 g+ o2 y- c) T" {
  120.     @old_sp = @battler.sp
      e5 w/ p+ R  r0 M
  121.     @old_hp = @battler.hp
    ( C8 a5 _8 t% f  a' j/ o3 `, ~) `
  122.     hp_flow_update- D' b7 |3 R6 r( U3 \5 B. n
  123.     sp_flow_update5 c$ h9 v) g3 n. ~" z+ j/ y
  124.     hud_pos_update5 V& N* Z0 V: j* m  @3 j  K
  125.     visible_update
    : K' F8 U0 v* @7 O4 Y' y, q3 M8 i
  126.   end
    % I' P4 R. F5 c3 `
  127.   #--------------------------------------------------------------------------
    / }) z. S" C) H/ j2 T
  128.   # * Dispose
    0 W- u) W5 f( `7 R+ G' [5 a
  129.   #--------------------------------------------------------------------------
    " x8 X( @9 W, y; e* w
  130.   def dispose
    ( z% j$ ]' Y* u2 I4 g3 T+ z
  131.     #HP Meter Dispose0 N/ s6 x; [' b
  132.     @hp_sprite.bitmap.dispose
    & B' y6 `1 g# ~$ w* J1 p3 F. P, e
  133.     @hp_sprite.dispose
    / a6 P5 @- g& a- X
  134.     @hp_bitmap.dispose
    * B6 v, x% @0 ^' q9 E* P' f: E
  135.     #HP Border Dispose
    5 K8 |1 u' d4 Y0 D7 e
  136.     @layout_sprite.bitmap.dispose
    0 w& p, p& ]7 ?$ r: ]
  137.     @layout_sprite.dispose
    6 d3 \' l9 ~4 U+ b2 w* o
  138.     @layout_bitmap.dispose) O1 j! j2 ]/ s  [' J
  139.     #SP Meter Dispose+ b1 M% H) R6 N* n5 {- x3 u
  140.     @sp_sprite.bitmap.dispose! k, w4 w8 B7 N
  141.     @sp_sprite.dispose$ n1 m0 F& w+ |9 u' K/ I1 N! ]( p
  142.     @sp_bitmap.dispose
    ; E6 {; }1 H$ W, ?1 O; H$ \# s
  143.     #SP Border Dispose9 B3 E- Q7 M" R
  144.     @layout2_sprite.bitmap.dispose, c8 W% W5 M+ i5 h7 w) F4 Y
  145.     @layout2_sprite.dispose# c8 S$ y# K0 ]. f
  146.     @layout2_bitmap.dispose
    . Y- B" c$ \9 J* A1 D3 `
  147.   end, k2 }. p$ G' p+ e' F! M
  148.   #--------------------------------------------------------------------------
    : y4 Z. K7 D- ?5 n3 m/ W7 I
  149.   # * Update6 [/ g* E% f1 |/ M6 ?  A
  150.   #--------------------------------------------------------------------------  A/ B6 |. d3 j7 _
  151.   def update. T3 W" P# c6 e9 Y3 m6 O7 C
  152.      @battler = @enemy.battler
    - P* O# ~% x, H1 b! d1 V# m
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?& W. Q; b$ D+ j3 T. Y3 \6 a
  154.      if self.visible
    + x: ^# o  R# f$ g
  155.        refresh
      o" T  m! Q$ u, [/ l% K% D
  156.      else
    8 E2 i% s+ Y0 Q9 x) g
  157.        self.bitmap.clear9 e+ o0 w- n! x
  158.      end& z  d9 r( s' i8 }& n# Z9 |
  159.   end1 T3 C* @8 W) t' u
  160.   #--------------------------------------------------------------------------
    5 K( d: A, w$ O9 L2 T! ^7 A
  161.   # * Visible Update
    : A) q3 f" r$ Q$ y
  162.   #--------------------------------------------------------------------------
    * `* v& a( I& C6 ^4 d# q2 E
  163.   def visible_update5 o$ f" Q* D4 [& l* N& e. g: `
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true" h. G% i: T, r# U7 E- _
  165.        @hp_sprite.visible = false
    2 f5 I" ]& o2 c/ W3 o8 X
  166.        @layout_sprite.visible = false
    : N  A, v7 y* C5 ^, [
  167.        @sp_sprite.visible = false
    6 `9 z9 U1 T* j4 o6 }( @6 x
  168.        @layout2_sprite.visible = false
    + F: Y! w7 k! a2 Z/ X$ ]% q  {
  169.     else" v+ P% I9 f' h! E2 W0 K
  170.        if HP_HUD == true
    . h. v) {! C; u6 M4 D# e
  171.          @hp_sprite.visible = true+ a+ E( G) N& G5 p( k
  172.          @layout_sprite.visible = true
    ( n7 o7 X. k0 m8 `, ]+ h( G2 T
  173.        else4 \6 S' j' K* Z8 Q
  174.          @hp_sprite.visible = false3 o" @9 n5 ]2 E% G$ W  I
  175.          @layout_sprite.visible = false
    9 V3 @0 D6 N6 t4 ]8 C
  176.        end  ' T( |1 H$ U! L  ]) P
  177.        if SP_HUD == true
    8 n  c4 M: e) Z# g- L
  178.          @sp_sprite.visible = true
    7 {& [- J. C$ C9 r1 S- t8 N
  179.          @layout2_sprite.visible = true  K3 j" x. F1 n
  180.        else
    4 |7 O6 s  L8 \# E. u- s5 H
  181.          @sp_sprite.visible = false! t2 h8 k& x$ r& ~9 r
  182.          @layout2_sprite.visible = false
    4 }  ?6 ]) W7 L
  183.        end & C0 m3 @! O4 R/ b! _' ~) w0 K
  184.      end  7 q) `: h) B0 L# v2 M: Z2 W
  185.    end , p4 U4 Z1 `  H4 ?6 S
  186.   #--------------------------------------------------------------------------/ X0 |* a6 K  s& R& d
  187.   # * Hud Pos Update
    4 O/ g% z; g/ `8 T- O# V
  188.   #--------------------------------------------------------------------------- q' H' j. F# g4 n( \" i6 B$ U
  189.   def hud_pos_update( o( r( M# l: [8 @5 e
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X: O7 ~) {1 N$ ~/ {1 I
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    , U# _* \: d" O$ f- N# e
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X5 i- X# k% Q8 }- ?8 N
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y 8 `0 o+ z! A) X- [8 p5 K5 s! W( W
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    0 A. @  w. V/ ~# F
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    2 |( q: k* l2 ?; f' t
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    4 n" E9 X2 g0 K. y+ s( [
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    5 Q2 Z+ F* l& l' W: K
  198.   end  
    ; K# G' x. K6 n
  199.   #--------------------------------------------------------------------------
    7 a* ?- O* V$ Q. H0 X8 E
  200.   # * Hp Flow Update
    2 D! ?+ W" y9 y( Y: f
  201.   #--------------------------------------------------------------------------) M5 R+ G, v( g
  202.   def hp_flow_update& ~; b$ D& F- b  |# o% E1 {( g
  203.       @hp_sprite.bitmap.clear1 v) q' o. k5 K4 d' A' m4 C
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  1 l$ y. C1 N- e& I
  205.           #HP Damage---------------------------------
    ( p8 \1 N$ m3 q/ ]
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    , e9 e9 O4 ]. c4 q3 i6 {
  207.           valor = 0.5 if valor < 1          / }1 l) ~. b5 N$ Y2 E' E
  208.           if @hp_width_old != @hp_width
    8 i) E( `' ?; n6 ^# k$ ?7 q2 L. e
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    # O& J- S/ O, _; s( o& _( d1 A
  210.           if @hp_width_old < @hp_width 5 o8 |1 ^# Z4 E  ~; t% r) h
  211.              @hp_width_old = @hp_width- V8 x. I+ m0 m$ ?% Y1 ~6 |
  212.           end      " O4 s7 u' Z1 w% j
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)$ W4 W; a, M" V
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
      U0 ]0 N) a! D" h6 K
  215.           end        # Q2 U* P/ K+ j; I! J5 W
  216.       #HP Real------------------------------------7 C5 O% v( D' C- {/ B  b# @
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    " z, Z, E7 x9 f( @9 s* T5 k! `
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    5 m7 I, v% z" R+ N3 u
  219.       @hp_flow += 2  
    % [9 H+ K' _5 i, t
  220.       if @hp_flow >= @hp_image.width - @hp_range
    ; X7 P4 G7 G5 x9 ~1 _
  221.          @hp_flow = 0  " w3 j7 o8 g+ A* a
  222.       end
    8 F( p* O" r/ Q2 ^3 G# Q& A
  223.   end   
    # y& p5 ]' W9 \& s
  224.   #--------------------------------------------------------------------------8 r  w* g2 G! J. @
  225.   # * Sp Flow Update
    1 M9 P  J2 e( F
  226.   #--------------------------------------------------------------------------
    ' N2 C) g/ }# x
  227.   def sp_flow_update
    . i2 b2 K9 f" |" A
  228.       @sp_sprite.bitmap.clear
    & ^; B) U4 s  Q2 I! b9 F; c
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp : C5 w, S' i0 q4 \+ s
  230.           #SP Damage---------------------------------
    ; j4 E7 @  \2 o2 q% d6 e/ z+ ?' H
  231.           if @sp_width_old != @sp_width& z' b- ^+ u. V  d& {. [
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100# S! m0 N2 [9 o
  233.           valor = 0.5 if valor < 1              % [- S- x$ u  [3 y8 \$ k- Q
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    + ^+ I5 K) |5 C9 m$ \
  235.           if @sp_width_old < @sp_width 3 T( K( w/ N% `/ f1 [; H
  236.              @sp_width_old = @sp_width  e# U9 [, z. [7 m% g
  237.           end      + W8 l) \+ q. n6 {" o  ?3 M
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height); m8 c  \0 X( \% u/ L3 g
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) 4 j4 Z* l3 p5 V
  240.           end# D4 Z) u7 [5 K- r/ x: t
  241.       #SP Real------------------------------------
    ; X1 J& S5 `$ x3 ]
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)" [' L6 E7 s2 }
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)4 Y2 N: w+ h8 }5 N; T& Z
  244.       @sp_flow += 1  / H9 ?$ C- L1 w/ n- q3 j
  245.       if @sp_flow >= @sp_image.width - @sp_range
    . {: B. S1 A+ s5 J
  246.          @sp_flow = 0  & x2 j- j# D4 X' u' v3 A% E
  247.       end  C; c# _) O( {: @( q! c1 y
  248.     end            
    ) v7 n9 R2 X  q! v- [3 x" q
  249.   end
    + t* K; j! i: Q. [  y
  250. #===============================================================================
    # ?! l) o" W6 q7 R+ ]! K
  251. class Sprite_Character < RPG::Sprite
    - Y& n$ o2 q- {# Z" j
  252. #-------------------------------------------------------------------------------3 R# ~. ~2 ^( C3 {, y5 G/ [1 Q
  253.   alias :xas_emini_hud_init :initialize$ b) b, I' z; G
  254.   include MOG
    . j4 Q8 o; O, r
  255.   def initialize(viewport, character)
    . K2 P" A0 R/ M% K
  256.     xas_emini_hud_init(viewport, character)
    0 p7 e8 j( R5 A" Y
  257.     @viewport = viewport) _  E' a- z7 R& D" q1 b4 \3 X+ K& m
  258.     return if @character.battler.nil?# c0 u" X. m$ L
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    : B: y) H/ M6 h( W4 y: ~+ |) ?
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)+ G& w! |/ Y% }2 n0 m
  261.     return if @character.battler.is_a?(Game_Actor)
    + T( L) x! Z& h+ w
  262.     @bars = S_Hud.new(@character, @viewport)
    ( C. j0 t6 q. Z. k9 M3 }- ]
  263.   end
    # A6 w9 s& j6 ?) w/ k* r# _
  264. #-------------------------------------------------------------------------------
      G1 v+ J3 Y) a, C  Q
  265.   alias :xas_emini_hud_up :update
    # `+ z5 d0 P* G0 v2 {1 z- @$ d1 G
  266.   def update) e1 `  m; s* H- e. P2 _1 A" P
  267.     xas_emini_hud_up  h: m+ v) m: L1 j4 }8 U4 c8 o; v
  268.     return if @bars.nil?8 e) h5 p: {# [0 q; ]
  269.     return if @bars.disposed?' v" _! e+ z9 P- I9 {
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    8 Z8 d2 ~  A5 m
  271.     @bars.visible = (dis <= RANGE)
    9 K* |- h& R7 W8 o/ G$ v
  272.     if @bars.visible
    2 o) q; q0 H' M/ Y* ^* v
  273.       @bars.x = @character.screen_x# - @cw / 48 j1 P3 C- ~1 B; m9 q7 M
  274.       @bars.y = @character.screen_y# - @ch / 4" l3 u5 p1 n; C" H5 J$ r2 a! i. x* ]9 y
  275.     end( x5 i& A% n6 \, w3 J( {
  276.     @bars.update
    % M0 \: F6 o7 R) y2 i6 q. m0 S. o
  277.   end1 E) W. h' r1 W
  278. #-------------------------------------------------------------------------------
    $ g6 Z, X8 d% V2 R" I: R; [
  279.   def dispose
    ( `+ f( \$ f3 _+ r; h% ?% Q
  280.     super3 v7 E/ K3 J' q; d  Y" F  ~" P  {
  281.     @bars.dispose if [email protected]?
    ( [2 c$ T0 L# w6 H1 `' ?
  282.   end! r  q8 ~1 A1 N6 I: P% M; B+ M
  283. end; J+ {( o* i( C# D5 ?. ~) Z
  284. : V* q$ j7 _1 [7 Q6 T
  285. $mog_rgss_s_hud = true
复制代码

1 b5 k4 Y! ~$ g5 n' U" b5 M& P+ r% g3 k
6 J6 f) E" `9 {6 J
上面所說出錯的203行內容為
; M% w* p% f# Q$ O: u1 M1 Y4 U2 k@hp_sprite.bitmap.clear
8 V8 Q) j3 H/ d" q& m" u, {" ^5 f+ e! B+ l: F" ^8 K
想知道怎麼解決8 \; e5 h; i' v( C- ~

( U7 V2 T3 N5 N! }# l該腳本支持3.821 {- Y' d7 o2 i7 t$ i; T7 |

4 t9 }5 V# }( l8 A下面是圖檔,要塞在Windowskin下
1 ~/ M" Y/ |0 f
! l6 E& k! Q8 T( s+ P1 J S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) : |! \- V; J- ~8 Z9 N

4 I( J; ]$ C) p5 Z- w
7 [  Z. e4 ]7 \- ^+ R& C9 o' g; S; j) H4 [

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
0 I/ @. M# m- g: F  d. i6 O  F! m结果尝试刷新了一个已经释放的图形9 h5 d: Y$ p; K9 Y, d" ~
" z2 U& N5 e2 [) f/ z
( [/ W, }1 Z. s4 Z7 I5 z5 G
* v8 C( b. w* J. [5 }
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    # H3 y# h) T% J% l3 W% S1 G
复制代码
不要后面那个条件貌似就没问题了。
" Z% B5 \! |$ L3 v7 b6 t+ \9 m1 n6 ]6 J4 @. L! m& x" S( ^! Q

0 A% O2 u: F, R& a, `% B* Q- |! s
1 S& _; z0 l# [- Q
6 J' q4 ^* R1 T8 k4 |* {7 p& T
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
3 I5 P7 O) z! Y貌似是释放的条件不合适6 C% v- S' ?- g' k
结果尝试刷新了一个已经释放的图形
# f$ `7 A: j  [4 R& L3 w
把後面那個條件弄掉後,的確沒問題了
' |3 Y6 L$ U% h* k# X1 S- ]目前從關頭打到關尾結束都沒再彈什麼錯誤
* M& z  v8 I; E( B' O非常感謝# J% T! a0 @+ P9 E2 A3 Q
% R- Q$ S# y3 P# t$ D
不過我是參照著別人腳本改的
* @9 C$ a+ j, ^他寫的條件式也是那樣,但我用他的沒什麼錯誤
3 p4 r3 R) e# T2 r% O! t% W' t不知道是怎麼回事% O! h% Z5 n! x$ q
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
5 Q; ]$ `$ r' t" u我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
  N! t1 s6 O! M/ H9 M, D嘛..这个数组吧..我在以前试写队友的时候关注过一点
2 X  g4 |, h9 E8 y9 Y1 {+ V! H不知道XAS内部对它做了什么手脚还是为啥,
! @6 U& {& A* Y# N; T2 p* V- G总有那么一瞬间,没有被消灭的敌人事件也变成了nil
) R* D2 e% A! H8 }: F  x7 p; \6 Q( z; m/ y
$game_map.events.values[@enemy.id].nil?
3 M% Q+ d2 K8 l% h0 {5 s' }' [因此自然而然的返回true并符合条件把图形释放掉了
# K- ~- @6 h: X# ]; M( x: Z
. _) {" K1 b( _0 A9 t+ ALZ应该有注意到吧,
9 G) N# p6 y" g8 n* A: H我测试的时候发现报错前几帧,图形会消失,0 f' e8 n: f" Q/ {  n0 w2 M% b
应该就是“误以为敌人被消灭”了。
9 a' Y- k+ G/ |% @9 c9 r  p
1 m* ^% \1 y0 K1 Y% G. d# q受限于个人水平,至今无法找出$game_map.events的真相..
' o9 [0 t/ R" a! t) B: T* P
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
122
在线时间
1740 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 - O" N+ n* k. D+ L
$game_map.events+ c/ a+ b  f! F7 ~+ o
嘛..这个数组吧..我在以前试写队友的时候关注过一点
* [( }# s9 S# r8 X& P! B不知道XAS内部对它做了什么手脚还是 ...

- V8 J( o& e2 v5 ]$ |; Z" ?8 z當初我把那個條件式看了三遍,都不覺得他有什麼錯
* D9 t7 i1 t1 L7 A原來還有這麼深奧詭異的事XD" R: {8 H" r& b, v' _) n2 K
7 C6 q0 C+ T* m6 h4 }* ?# v
錯誤發生前的確會有圖形沒顯示出來
! e# }6 r$ l9 C0 i& [- z! a不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪.../ \5 Y; a* `: z6 D8 J! C- [
沒想到居然是詐屍了XD
+ n0 I! n; ?8 O% @+ z4 V$ C
% p4 [  a# N4 ~4 @& F不曉得3.91有沒有修正這問題...
4 |2 T4 v) z' \% W/ d1 [不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。0 t$ |6 T( j; n$ ]

1 o- b& D: ^9 ]  {的确
/ W) T# S/ ]% V) @用惯3.82之后想去整3.91觉得压力甚大..
- |. e  u( Q: U干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。' O' v5 @6 h; z& Y; m3 ?
. l( v% ?0 a) O
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2024-11-22 09:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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