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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
5 Z* d& x$ G( |! {7 m會在每隻事件怪物的腳下顯示
! k; F; O, O) J. r! J問題是不知道為什麼
$ O* Q% Z/ P( @" J) f' w; t8 j有時打怪打一打會跳出
3 q/ H) [& f9 Q* ?, [---------------------------
! O! I1 ^0 k2 P( q4 _XAS
. q% v/ F5 L1 Z---------------------------
* U5 F4 W9 j) o2 u. k9 m+ e脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
/ y9 d% x& r2 y
8 E1 o6 }6 |9 r' u3 gdisposed bitmap9 f1 |: e- s- a3 x4 O6 P$ s5 ~; V
---------------------------# a, `5 F% F( R2 C
確定   
! f% F3 U4 ]' x# j2 R0 x: h" o. |: v, f  K---------------------------
2 R  K& B7 |7 U) K- y6 p- S" c% v# D0 b( K+ i
這是腳本: _) W0 S' _4 I" Y; }
& z9 Q% f+ c5 P5 r) p5 P
  1. #===============================================================================
    & l# _2 @1 ~( @$ f
  2. # MOG - s Hud 1.0      
    , m5 K9 w' N& }( l: A1 m! x
  3. #===============================================================================/ Z; `* C- }* u* i& X& S1 I
  4. # By Moghunter
    " F: l% R  Y, d8 s: @  M
  5. # http://www.atelier-rgss.com9 o& X4 t6 w0 E6 u. |! n& O
  6. #===============================================================================4 C, O, w& a3 i
  7. # Translated by Calvin624
    ) D0 f2 f: p% T
  8. # http://www.xasabs.wordpress.com
    * T5 S7 D6 A! J3 m* i
  9. #===============================================================================' ?  Z% N# z$ h9 F
  10. ###############################-DESCRIPTION-####################################
    ' L9 o4 I9 C2 J. \2 j; ?- P, ~& x
  11. #===============================================================================2 K  h( {+ T9 u5 }8 H' Z9 M
  12. # Personal HUD – displays the HP and SP below the hero.  _* }4 X, q1 k* e% {
  13. #===============================================================================
    * }& Z: e. I# p# o& X, m
  14. #3 x( P' }7 w( c/ v& u0 {$ r
  15. # Graphics required:
    * ]% m, J8 n/ f. f! S) O9 |
  16. # & W, ?+ s( b0 [2 E9 T. I$ i! O+ R
  17. # S_Border_HP_Meter.png+ ^+ U& P  G4 w( y
  18. # S_Border_SP_Meter.png1 G" S3 d$ ~, ?
  19. # S_HP_Meter.png% m" i& k2 |! s/ U! g; I
  20. # S_SP_Meter.png+ t; y( y7 \. k" R( S- V
  21. #' X' o3 p, |: N0 r- c. V0 R
  22. # All images must be in the Windowskin folder.
    . M1 o+ s$ T/ w; @9 H: j1 A4 |1 q
  23. #7 G+ H1 q7 P$ C6 P' u
  24. #===============================================================================
    ( ?+ R. g3 B# y# N
  25. module MOG/ c& B6 J# N  r, j/ @) j" X
  26. VISIBLE_DEF = false  
    % P( a4 R3 X: c/ t0 j
  27. # Show HP meter?2 S  U: p- N' t2 L! g' W4 j
  28. HP_HUD = true
    " X' X" P. p$ T
  29. # Position of the HP border
    , z# H3 ?  y' v$ @. V
  30. S_BORDER_HP_METER_X = -2
    / W) V9 g. k& ~* F6 k" {
  31. S_BORDER_HP_METER_Y = -2  
    / I% p) i( E2 ?) K% c6 A* W0 Z
  32. # Position of the HP meter, m" j  q/ z8 b' O7 G
  33. S_HP_METER_X = 0
    6 m5 M/ x; g: j6 z( b
  34. S_HP_METER_Y = 0$ q7 j# {* P+ d  G. K4 B/ e& H/ d; j
  35. # Show SP meter?$ d' N1 `9 L# [0 l; a) ?! {  u
  36. SP_HUD = true2 t# J- M6 Z1 `, J
  37. # Position of the SP border3 e. q4 }' O6 ]; j2 E
  38. S_BORDER_SP_METER_X = 0; r: k! m0 F& G: D/ v7 K
  39. S_BORDER_SP_METER_Y = 10
    & X, {7 x& }9 c5 x( T0 R7 |
  40. # Position of the SP meter
    $ J: ]# I) k+ {  {
  41. S_SP_METER_X = 06 N  b+ B0 r1 f$ h/ E8 ~
  42. S_SP_METER_Y = 10
    1 D2 n2 {) I) [! ~+ n6 B" }/ V$ R5 n
  43. # Switch to disable the HUD$ O0 O- u. n0 ]
  44. DISABLE_SHUD_SWITCH = 5
    ' W& I& ]4 P3 {
  45. RANGE = 20
    # u, S8 z  t& I* `/ a; [5 O; I
  46. end; z9 d& \: N- j# N& N% R0 I
  47. #===============================================================================
    7 U2 p7 ]9 H9 x: t! P
  48. # S Hud
    0 e' {; s4 o# V6 s0 E2 W; x0 r
  49. #===============================================================================
    8 e" V+ J7 C2 I" u
  50. class S_Hud < RPG::Sprite
    % h) i: m% Q0 d. D+ Q  D3 {
  51.   include MOG; v4 Y* |2 u% s9 L5 n  r7 ]
  52.   #--------------------------------------------------------------------------
    3 W0 l# ^/ V  \4 ?
  53.   # * Initialize
    + }5 t8 v! w; m8 ^% |5 k: W( B8 E
  54.   #--------------------------------------------------------------------------' w0 B. `! p: l3 R+ T
  55.   def initialize(enemy,viewport)  T/ R- u7 w) c' ~; u7 R( _" h
  56.     super(viewport) - D% z7 ^5 p- c# ^1 d
  57.     @enemy  = enemy
    ! s0 u% L& {. L6 b, P7 b( o  E
  58.     @battler = @enemy.battler
    : t/ Q+ E0 _; t7 R2 p
  59.     @old_hp  = 01 N4 y& F/ L, u" m$ L$ V; i
  60.     @old_sp  = 0% h- S7 }4 W$ r* T. w" Z5 z+ g2 O
  61.     @old_vis = false6 e. P* X* ~" V# Q$ n! U; Y4 a
  62.     self.bitmap = Bitmap.new(100, 100)& F. P1 V/ z( ^- F
  63.     self.visible = (VISIBLE_DEF)#false
    1 h# Q2 ~) U8 E4 x' p
  64.     self.z = 100
    ! l: H4 ]3 G! x8 b4 ]' H
  65.     #HP Border -------------------------------------------------------------------
    ( T. C6 M+ Y9 j
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")2 x& m( a$ S6 E( Z2 ]5 c
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)4 P$ }8 v( b, q# H% l
  68.     @layout_sprite = Sprite.new' u& s4 G7 f$ s( c& M$ j7 Q
  69.     @layout_sprite.bitmap = @layout_bitmap1 E& L: |5 L: Y1 `
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    ; z: U+ _' Q9 x
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    % E* q1 D) J7 ~1 t
  72.     @layout_sprite.z = 5001
    , S0 [4 W5 r7 [0 i) Z
  73.     #HP Meter ---------------------------------------------------% [' \9 t$ d8 B) e: t' J# A
  74.     @hp_flow = 0- h" J+ x' c7 Z, \9 @
  75.     @hp_damage_flow = 0. M9 u8 ]  S+ ^# |& Q) A* d1 l7 u
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter"), p4 l  \. T# o2 x  q
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    2 n  k# n: F. E1 l
  78.     @hp_range = @hp_image.width / 3, M' H$ u+ E- L
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    9 y- p  H6 }7 S: L  c# r/ [
  80.     @hp_width2 = @hp_range / 2
    + O+ J+ c) D7 ?1 p3 j8 O2 C4 L
  81.     @hp_height = @hp_image.height / 2" U) E3 W+ ^3 N4 @
  82.     @hp_width_old = @hp_width
    ( m6 s9 h1 R6 X0 m; j0 ]0 E, I; d6 @
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)" N2 a4 O1 g8 l* T
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) 5 ?- f1 L" h. c1 p6 x" T; @
  85.     @hp_sprite = Sprite.new
    ; ]3 ^9 `* e4 y, ]2 R1 r& G  ^
  86.     @hp_sprite.bitmap = @hp_bitmap
    7 Y; [3 S8 |- s- I% n. G0 B
  87.     @hp_sprite.z = 50026 U' ~" B* _7 U% ~; e
  88.     #SP Border -------------------------------------------------------------------, ]* _: C6 H# S1 |7 F5 f
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")  {/ o  e  F$ X0 f2 D1 ^
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)* Z8 B" v- B+ }2 P
  91.     @layout2_sprite = Sprite.new5 n* _% G( u$ f8 J
  92.     @layout2_sprite.bitmap = @layout2_bitmap- t2 ]% P7 Z5 M( j
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    ) }8 o+ k' l( Q+ S
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      2 Q5 ~2 a! `( r
  95.     @layout2_sprite.z = 5001   
    ; J7 u: t! ~$ k1 \0 N+ r0 ~
  96.     #SP Meter ------------------------------------------------------0 U- x* t2 N/ I3 d2 c1 _7 X
  97.     @sp_flow = 0( {/ \* A( s: p: F4 S% }* ^
  98.     @sp_damage_flow = 0! Q: I  M' T+ k
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")7 O6 C9 X7 c" w4 c
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height). H# A0 O0 }8 V/ b% a  G* H
  101.     @sp_range = @sp_image.width / 3
    ) i( \/ |' T5 s. i
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  8 B0 g! Z) B0 y# [
  103.     @sp_width2 = @sp_range / 25 Q* l# m; u) a7 V# {" x
  104.     @sp_height = @sp_image.height / 2& [/ z0 p6 v5 p/ e, ~& H" v
  105.     @sp_width_old = @sp_width
    * m! q' c) X; L* p' }6 C6 @3 d$ `; p  g4 q
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)" a, d# h0 F7 ^, E! s8 e
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    6 @& U% K/ y& ]# k5 O( ]) y
  108.     @sp_sprite = Sprite.new
    6 q; D& B5 B- |" l' Z( H5 \
  109.     @sp_sprite.bitmap = @sp_bitmap, B8 s  X8 L4 o8 |- U
  110.     @sp_sprite.z = 50024 ^; J6 \# L, W' I# X
  111.     update  G: B$ o$ W% l( ^
  112.   end0 O1 C& V* G$ ]
  113.   #--------------------------------------------------------------------------
    ; }9 w8 j4 Y5 t2 L# I( Z
  114.   # * Refresh
    % M8 d' K+ y! N
  115.   #--------------------------------------------------------------------------
    ; c! o; ~# |! A" D) ~
  116.   def refresh* j3 F- n- U$ ?  A: |
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible2 L. T7 w% i/ k1 P1 {* G
  118.     self.bitmap.clear9 F) b, H3 V2 @% Q' u  q# v
  119.     @old_vis = self.visible( k$ L1 w7 W3 s5 q
  120.     @old_sp = @battler.sp) X# X7 d" {' \) E7 {7 c" J% C
  121.     @old_hp = @battler.hp
    ( `5 @& g0 {" \$ Y
  122.     hp_flow_update. i) b  f+ m: g
  123.     sp_flow_update1 X( N: T2 Q# G# R/ r7 t
  124.     hud_pos_update
    : z6 V% s& ?0 t/ i* g
  125.     visible_update9 Z4 n9 ?# C& z2 {  X# ], [6 A
  126.   end
    1 P9 s3 w- U+ N
  127.   #--------------------------------------------------------------------------
    4 S/ T- T0 ~  c$ ?! @3 L7 o4 `
  128.   # * Dispose
    4 j/ B( H! `( ~. g1 m2 n; c" l
  129.   #--------------------------------------------------------------------------
    + M: y0 h4 Q1 ^
  130.   def dispose( C* `" o' Q3 G9 q0 N! A
  131.     #HP Meter Dispose
    % `7 Z( v3 _; T( J
  132.     @hp_sprite.bitmap.dispose. o& Z( y- o/ k0 Y5 {
  133.     @hp_sprite.dispose7 U- v7 H1 F! i3 |% N3 J1 p$ L
  134.     @hp_bitmap.dispose
    ! o- ~" V* M' k! }$ O2 m
  135.     #HP Border Dispose* `  F% q/ ?! m& n; C1 R
  136.     @layout_sprite.bitmap.dispose
    - f' |4 v' ~, w# n2 n
  137.     @layout_sprite.dispose! P) ?5 h' T9 P7 a! [/ R
  138.     @layout_bitmap.dispose
    7 [' g7 a* ~. w9 ~: H7 {
  139.     #SP Meter Dispose, M" o( o! P, M; F0 l9 U
  140.     @sp_sprite.bitmap.dispose/ `5 r$ N9 r# u( T- r5 L
  141.     @sp_sprite.dispose1 Q  L5 U3 X/ T! f
  142.     @sp_bitmap.dispose
    8 s% D: B0 `4 [$ D, K
  143.     #SP Border Dispose
    : v- n5 W" a5 u1 P
  144.     @layout2_sprite.bitmap.dispose  E" A" p2 q1 b; [6 _2 ]4 S
  145.     @layout2_sprite.dispose
    1 Q; b0 L" v% e* N, g+ G2 H- t% N
  146.     @layout2_bitmap.dispose
    / R$ x6 B" {# m/ A2 k4 q% u- E
  147.   end, Z; w! S6 C6 ^' I5 s
  148.   #--------------------------------------------------------------------------
    / I9 v7 d- ^3 j" M2 a' K
  149.   # * Update/ Q- ~3 g" Q& c* w# U
  150.   #--------------------------------------------------------------------------
    - p1 ^: E9 C& H" c  U
  151.   def update
    , L# j$ g. E1 e) X3 u, `$ w, t
  152.      @battler = @enemy.battler 3 [/ E! j$ V; @9 O' F
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?7 B1 S8 r! x# j( E# F: I
  154.      if self.visible
    ! \: p, w+ p" b/ X
  155.        refresh
    6 M" I; j7 n$ I
  156.      else3 i( D+ J2 D: Y& B2 ^5 }
  157.        self.bitmap.clear8 e& s) C  S; X5 o5 p& E
  158.      end
    $ C$ [7 W) Y; F7 S
  159.   end' K2 T7 @1 {+ i) B2 B  z
  160.   #--------------------------------------------------------------------------# |, d$ E' _% L: u* I& q4 t. @$ R; L
  161.   # * Visible Update( C: F+ s$ b7 t0 r
  162.   #--------------------------------------------------------------------------
    6 W# `% M3 a. o# T$ ]
  163.   def visible_update
    1 _' f- T7 a7 n  t* s# |
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true' E! k1 U, K9 h% \9 E- f
  165.        @hp_sprite.visible = false9 R: i, |* _; W, s8 q' X5 X2 c
  166.        @layout_sprite.visible = false
    ! L5 m2 M" y* r5 M9 ]$ L
  167.        @sp_sprite.visible = false
    : M9 V1 E/ M% W8 [. |; y% s5 t- Q& J
  168.        @layout2_sprite.visible = false+ q, I8 k7 A6 O1 N/ Z/ j/ f. P$ Z: e
  169.     else; i) H, p5 G3 l2 @' }: X, v% o
  170.        if HP_HUD == true7 g; d: P, A7 _: G4 ~1 Q# Z0 j
  171.          @hp_sprite.visible = true7 R* b5 S& V; P
  172.          @layout_sprite.visible = true
    & k# {  M3 s7 {3 X4 \  {3 _
  173.        else' U- p$ X2 K& ]: _) W
  174.          @hp_sprite.visible = false4 I" g& K* H# s2 U$ j6 J
  175.          @layout_sprite.visible = false' v% k% v. J8 V% H( ^' m6 u
  176.        end  
    6 y. I$ n! r/ N9 D0 c
  177.        if SP_HUD == true
    : T0 ?4 K4 N+ O/ z* P( m+ R6 v. e; u% x
  178.          @sp_sprite.visible = true6 Y$ b8 U" ?0 F% G  J
  179.          @layout2_sprite.visible = true
    , ]; w  q2 \, ]
  180.        else
    6 S0 U+ c5 g+ l5 P4 R! c
  181.          @sp_sprite.visible = false
    & f1 U: ^% j5 N
  182.          @layout2_sprite.visible = false
    , H# h$ Z+ }, M* z7 p
  183.        end & K8 y9 n6 x; c
  184.      end  - m. A2 Q1 e9 n
  185.    end 6 D2 i- o- q/ u* B  ?' o" G
  186.   #--------------------------------------------------------------------------
    / H: Y( V+ P" A
  187.   # * Hud Pos Update
    / o& Z8 j# l4 s, z$ [2 g, W! r3 Y
  188.   #--------------------------------------------------------------------------
    7 {' D, v( N( k% ^7 G
  189.   def hud_pos_update3 `( @3 ~7 D: h4 P3 S
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X- F$ R2 z5 p  G2 {' H
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    8 f6 ^! L5 ?) `. e4 N
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    8 k  Y- @' O: \" H3 ~9 F
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    # ^/ j0 M$ o# o4 |7 `" I# r
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    3 v1 g- p% }* Q$ x
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    6 F; O  b2 |' [! H8 m& g( \$ L
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    $ w; v5 {: n- k# O6 w
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     1 `# e; Q' x0 `* N
  198.   end  : u4 @& V( ~) T1 x
  199.   #--------------------------------------------------------------------------
    1 a$ d6 q1 J0 Z# c3 n7 q
  200.   # * Hp Flow Update: y( I9 z7 ?$ W
  201.   #--------------------------------------------------------------------------
    / J0 ^+ E! _5 [: ~& m
  202.   def hp_flow_update
    2 w* y' E, N8 E7 Z8 q. x
  203.       @hp_sprite.bitmap.clear" v2 U9 L- W$ N
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  * l) p9 p9 X4 h+ M  Z+ c" k) {9 f  m3 W
  205.           #HP Damage---------------------------------" A% Q' Q6 U' s+ y6 J
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100+ G/ z1 a% ~: ~# s! d
  207.           valor = 0.5 if valor < 1          5 Z+ L$ [7 X* ^* d; R9 D
  208.           if @hp_width_old != @hp_width% A/ |  j7 S5 k4 C# X) G! r) A+ ?9 u
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    % k7 j3 ?" X! @# q+ c
  210.           if @hp_width_old < @hp_width 1 m: n) A/ B% m6 i( d- h
  211.              @hp_width_old = @hp_width& c* ?. N8 d/ i
  212.           end      
    , }, S6 i4 h& A3 O
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)* z3 t! D$ P7 r2 ]# y2 j
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    ) Q2 i; W8 `, u" K( t
  215.           end        
    % W. F" d- n8 Z* G0 \7 w
  216.       #HP Real------------------------------------* P& O8 a7 A6 z( y/ r* G3 \
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    4 C/ ?3 j0 v' n& ?2 X! k
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    + e# T" [1 q1 U7 }! ^5 `
  219.       @hp_flow += 2  " ~# S5 s5 g8 Z9 P1 {
  220.       if @hp_flow >= @hp_image.width - @hp_range6 J0 a6 A: p& ?- F  E
  221.          @hp_flow = 0  ! ]- R( }0 {( j0 S$ y
  222.       end: p8 x2 v8 T9 N: _( N
  223.   end   
    9 O5 g5 N4 M& \9 i) O6 m
  224.   #--------------------------------------------------------------------------
    " t0 I6 F. S4 N2 y) D9 `
  225.   # * Sp Flow Update
    , b( Q+ o3 Q8 ^1 D* _* ?) g" G
  226.   #--------------------------------------------------------------------------
    ) u  m4 J9 l% A& H
  227.   def sp_flow_update
    8 Y7 e0 R& n- C2 g% [
  228.       @sp_sprite.bitmap.clear
    : a- K/ B$ q# ~
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    % F- q7 R2 Y0 f# O  N- V4 j# t
  230.           #SP Damage---------------------------------
    : C" X" ^( w, i. j# A
  231.           if @sp_width_old != @sp_width
    % b& V) @" O' @) |% q
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    $ Y) V! h) v$ U" _! b, Q
  233.           valor = 0.5 if valor < 1                Y* ?6 u9 X7 T4 z
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    ' K1 p% t. O( h* U5 Z5 A
  235.           if @sp_width_old < @sp_width
    - Y: x  R8 {3 n  G
  236.              @sp_width_old = @sp_width4 K$ t2 S5 B5 Q3 X+ Z8 P: s  s9 E/ B
  237.           end      ; c9 |( m3 f7 G5 g, ^' `+ o1 w9 B( Z- W
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    0 l1 E; I: l! C, p% g4 `9 K/ w
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    - z& |% Z; Y2 i/ s" \
  240.           end. @, E& o) f# ^+ \$ C. l8 j
  241.       #SP Real------------------------------------5 d/ z3 s  X% Z  p
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    . K# D9 i; Z; ^; m5 M
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)  s1 I- Q9 v: O5 V
  244.       @sp_flow += 1  
    # k" Q% H( B/ O. d
  245.       if @sp_flow >= @sp_image.width - @sp_range9 E  s+ q6 r) ?6 i8 h3 H
  246.          @sp_flow = 0  + b/ f* z! L9 ~: M/ }
  247.       end  S! n6 D5 |) u; \& B. F
  248.     end              R8 C  o3 k7 s+ [
  249.   end
    9 |" m6 z+ l1 i2 N1 U/ u
  250. #===============================================================================
    7 A6 t" E) K+ i9 `  N
  251. class Sprite_Character < RPG::Sprite6 L4 v: l; a7 @
  252. #-------------------------------------------------------------------------------. C: c) O1 d* n0 {6 `6 F7 ^8 r
  253.   alias :xas_emini_hud_init :initialize5 a  n) W; a& U( @1 h5 [8 C
  254.   include MOG
    - Y, i- L4 n& d
  255.   def initialize(viewport, character)
    / ^1 g' E/ T5 r4 _
  256.     xas_emini_hud_init(viewport, character)& w5 I7 c  R5 N
  257.     @viewport = viewport, i9 K3 ]7 x3 v. N( t
  258.     return if @character.battler.nil?
    7 z9 O" O6 ]9 }9 E8 N+ n  u. C
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    * a5 ~1 D' G2 t0 c1 i/ p
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)' H0 w  Z' X2 w( ^& P, x& p5 R
  261.     return if @character.battler.is_a?(Game_Actor)
    : _/ U! `# p. r1 A- R* x7 p" [
  262.     @bars = S_Hud.new(@character, @viewport)
    ) L8 f% r4 M5 v+ C
  263.   end; r( o. ]# a' Q8 }3 {2 X
  264. #-------------------------------------------------------------------------------" V! [8 z# q% S6 d
  265.   alias :xas_emini_hud_up :update
    9 b5 B- y6 ?$ v1 Q8 @5 l7 Y# d: R
  266.   def update
    " i% r8 X9 `& u& z
  267.     xas_emini_hud_up) y- i. g; e0 U
  268.     return if @bars.nil?
    3 @% D$ M0 H  b
  269.     return if @bars.disposed?
    % ^& X  {/ F+ r! l
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs$ o5 [3 m: o' o" F+ @" O0 N
  271.     @bars.visible = (dis <= RANGE); ~' @2 ?4 B# t6 s2 ]0 K. L
  272.     if @bars.visible
    1 }$ {+ b' p% q9 i4 u- w3 @
  273.       @bars.x = @character.screen_x# - @cw / 4
      ~( a( N" K( J2 ^9 ]4 |
  274.       @bars.y = @character.screen_y# - @ch / 45 O  f  @# S/ O- K3 x' I5 L% Q% a
  275.     end; h# ^3 E1 J/ Z
  276.     @bars.update1 _1 g4 Q, W0 T
  277.   end5 l. {  d2 B( [
  278. #-------------------------------------------------------------------------------& _& Z/ [% h1 `- Q, l; ~$ {: ]9 T
  279.   def dispose
    ' t2 D+ @0 b: [: c
  280.     super
    % u: K6 _1 q4 C0 q$ ]
  281.     @bars.dispose if [email protected]?
      z4 }" s- t' H$ _
  282.   end
    5 S4 U) j1 T! y' L: z  v* T, J5 b
  283. end
    9 {" Q2 V- j$ R$ a
  284. " J4 R5 J: z7 \- d$ G, U* }% r  l
  285. $mog_rgss_s_hud = true
复制代码

# r/ i8 J; E/ L* ?5 ]
# O4 S; p8 p+ c3 l( q. W5 J  F7 Q0 x% k4 O
上面所說出錯的203行內容為
( N( a; M+ D: ~* m; ~3 g; S@hp_sprite.bitmap.clear
) T6 {& I! Y2 l- d+ x  G9 b- w, T' L+ c- L
想知道怎麼解決
! c* t0 D1 ]. m# \+ C
, _- ]8 h( l2 `3 b$ J& ~/ ]7 \該腳本支持3.82& {' l4 k" y, B4 y

7 R% l2 u- W: A; V6 _下面是圖檔,要塞在Windowskin下
2 E& f( v, [9 u; O7 m+ h  s* m- N" R9 [3 ?0 }* U9 k
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
1 x4 b( U. t0 |! o, c4 M3 \% s4 v: x1 E$ K* w  C8 Z: y0 V
! U2 u* t3 ~; w

& f# j) [' J% Z4 B

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。2 u- J" Q2 ~1 V* J/ r* p

/ v) P. P- I5 x+ i9 e; ~& O, P然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。- [2 u8 x4 u5 I2 `

1 ?5 T' X. m3 T' f的确
% {; D+ g) b, @; I2 G6 |用惯3.82之后想去整3.91觉得压力甚大..
+ s8 A* q6 L+ ?4 Y干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 2 t3 F! ]( G4 I4 i0 \
$game_map.events
* t* A0 z9 T1 n  U4 V嘛..这个数组吧..我在以前试写队友的时候关注过一点
! _7 P) @3 l" I- ]' W2 i' D3 R0 f不知道XAS内部对它做了什么手脚还是 ...
2 ^0 w3 V; S: I/ X
當初我把那個條件式看了三遍,都不覺得他有什麼錯
$ I  W1 H! P9 `1 d2 [  h9 W原來還有這麼深奧詭異的事XD
1 f, y: t, A) E7 _4 h: }# O. n) Y8 A  x3 r* |0 M! \# q% ]
錯誤發生前的確會有圖形沒顯示出來
2 E6 l. V: y* S- y) F9 [3 }不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
( [! y( W& `2 u5 y2 S7 _沒想到居然是詐屍了XD
, X" L% W% T2 }* O1 r; }, G
; T, P  j, W9 t: D  w6 A; h0 m不曉得3.91有沒有修正這問題...) `: o7 S& a8 m- G& b9 X/ r
不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
0 T3 g6 k$ O1 W( O嘛..这个数组吧..我在以前试写队友的时候关注过一点; k" S5 q4 g7 h6 l) s4 c
不知道XAS内部对它做了什么手脚还是为啥,5 r, I: ]/ Y2 Y% t+ E7 z
总有那么一瞬间,没有被消灭的敌人事件也变成了nil
1 J1 h5 |0 V+ Q1 t9 L9 ?; F/ t* `% ~4 t5 o% U4 s
$game_map.events.values[@enemy.id].nil?
4 z3 i& n# b  B% r0 i& P因此自然而然的返回true并符合条件把图形释放掉了3 A( N  v% t- {0 ]9 u% o

% K6 [8 [+ [9 d! g3 lLZ应该有注意到吧,
5 _/ E- J: W6 x% c0 L! Z8 N+ ^我测试的时候发现报错前几帧,图形会消失,4 ]2 g; W* C9 ~9 {$ c$ x/ l( w
应该就是“误以为敌人被消灭”了。
3 @: ~' Q% Y- f( U
+ ^1 K6 a3 v9 K; a4 k9 t/ y受限于个人水平,至今无法找出$game_map.events的真相..
# G4 o. z9 F/ J% s: [
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
4 A5 m2 `7 s, v1 S貌似是释放的条件不合适
1 w8 ^* K+ |6 }9 ]) U6 c0 I3 }: l( a结果尝试刷新了一个已经释放的图形
0 {: b$ k, ]( J3 o% F9 l
把後面那個條件弄掉後,的確沒問題了
/ x$ n5 X* R4 d2 n: f: R: P3 F目前從關頭打到關尾結束都沒再彈什麼錯誤  v& W6 p1 `2 k* M
非常感謝
; A/ A: P7 b5 A. ]+ q8 @& t  p, }, v& S& z0 M4 B7 X
不過我是參照著別人腳本改的' F3 m+ G8 m- W8 ~) u
他寫的條件式也是那樣,但我用他的沒什麼錯誤- D- g2 p  F  r; i/ L
不知道是怎麼回事+ t; A+ N# ?) `; \. _( h0 Y) p8 U
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的' W" ^. I# F( V! C0 R3 _
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适- Z+ Y! e1 T& D! I! j( K
结果尝试刷新了一个已经释放的图形
: _+ R' |( u& h8 u
! x. w- J3 H0 M: H, u3 j! v% }1 n. {* n1 @
& b' D( L: j( Y" X5 ]
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?& Q) W2 B4 c  Z$ o* V
复制代码
不要后面那个条件貌似就没问题了。
" S5 k6 x0 a3 F/ W9 p* J8 o" ^+ U0 q7 j  u. N

5 f7 p9 O/ Z1 |2 l1 Q
5 M( V9 `3 P- c/ L$ d, @$ h  ?$ O2 z7 W* w/ ^/ x  X9 }9 B5 u- z
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2026-6-5 22:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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