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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
1 z( Z0 {0 K7 Z' V# w& s8 a3 p會在每隻事件怪物的腳下顯示+ G7 T3 N+ v! S/ s+ f1 \
問題是不知道為什麼
/ e5 v+ Z! @$ T5 s9 \+ l有時打怪打一打會跳出" h% h" I2 ]" Z5 L" ]
---------------------------0 I+ b/ V& \2 f4 T. G
XAS
9 U; H- \7 b$ E: R---------------------------
! W; \) D. Q2 T; ]( {脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。5 H  [# U5 O2 K$ r
8 A' }; U: G2 \+ d' M
disposed bitmap
+ h) s0 l! w, e8 _---------------------------9 B$ Z, _& z, G: P* c9 @
確定   
/ `! a  |* E1 d# `! n$ f---------------------------
; l& M4 T/ D2 n, q% b9 L) k5 d; E) C! r" v9 F' o* E
這是腳本
6 Z  F" q8 {4 \! s3 A! e; V$ i9 N0 x$ x; A  Q3 O
  1. #===============================================================================
    4 U! h' v, W: S+ }+ k
  2. # MOG - s Hud 1.0      
    , b% T4 W! F2 Q8 D) f
  3. #===============================================================================% O8 ^% Y$ Y2 R
  4. # By Moghunter ; I$ s0 b0 c$ Q  i
  5. # http://www.atelier-rgss.com; Q( x& `7 f) c
  6. #===============================================================================: V* ]5 c/ @6 l6 r8 m
  7. # Translated by Calvin624
    6 A+ {0 k* t/ f( m9 m0 m2 r
  8. # http://www.xasabs.wordpress.com
    & k* R, V$ K* D
  9. #===============================================================================, \1 H* E( S" X  M
  10. ###############################-DESCRIPTION-####################################
    # U2 t( {8 n: l2 w' r
  11. #===============================================================================3 j9 m# m( J3 z, i0 `
  12. # Personal HUD – displays the HP and SP below the hero.8 B% |% c( s+ t6 |$ `
  13. #===============================================================================& l0 j1 T) _; w, w, C& Z! X+ s
  14. #: f/ i- M* n: C- t
  15. # Graphics required:
    . y9 ]$ U* j+ K" O
  16. # % `- q& X1 W+ @, o
  17. # S_Border_HP_Meter.png
    - P1 A! W- b, k% H; y2 |3 x0 C3 x
  18. # S_Border_SP_Meter.png
    ! ?2 \( q6 j, Q
  19. # S_HP_Meter.png* {0 u. U, Y8 A3 K
  20. # S_SP_Meter.png
    2 O# |8 ]. ?5 K  \
  21. #7 |6 l) \, J- S
  22. # All images must be in the Windowskin folder.3 s+ V4 {: J1 t+ X4 c
  23. #
    4 E) Z: \& M& O# l3 S8 {
  24. #===============================================================================* {! B% N+ E5 s9 A3 y+ }9 h2 g5 v
  25. module MOG9 _: C. M% E. y' k+ X
  26. VISIBLE_DEF = false  ) r/ Z0 N( X7 e" M! @) y! i; t
  27. # Show HP meter?
    6 z. z# O( e+ @! r( I
  28. HP_HUD = true
    ( O6 O4 P( d* Y8 V. Y* o$ p
  29. # Position of the HP border7 D2 n; f1 Y: x' T! u( T$ `2 t
  30. S_BORDER_HP_METER_X = -2+ r6 {- V3 l* z# F" y- A
  31. S_BORDER_HP_METER_Y = -2  
    " V* Q$ n+ G" k, {6 m8 j! w) B
  32. # Position of the HP meter7 R) h/ h4 Z& Q6 ~0 ?
  33. S_HP_METER_X = 0& L) k9 d( M/ n( X# Y' S# G
  34. S_HP_METER_Y = 0
    9 M- }; w! b% C& n0 H
  35. # Show SP meter?
    ( B* n7 \" F6 {  Y
  36. SP_HUD = true+ G$ u: k. p$ w' |# K3 f, [9 H
  37. # Position of the SP border
    . J3 J) ~$ Z: f1 U3 K2 i
  38. S_BORDER_SP_METER_X = 0
    2 c4 L4 [) N' h& m3 j
  39. S_BORDER_SP_METER_Y = 10
    - S. M. d7 C# ?4 q, ^8 f3 W, Q# h
  40. # Position of the SP meter$ t5 P0 o! d% @
  41. S_SP_METER_X = 0
    " i' {; `( ?& P
  42. S_SP_METER_Y = 109 d% q0 R7 D# W' g: Y6 E
  43. # Switch to disable the HUD( ]3 X4 Z, r* j# a) E1 ^# q: l% ^
  44. DISABLE_SHUD_SWITCH = 52 Q3 f( g' Y$ G& p# A
  45. RANGE = 20
    9 J: i. B+ ~: h" w2 ~& w. Q
  46. end
      P  @, s  C, v
  47. #===============================================================================
    / l6 `& n# @: f+ }% R* i
  48. # S Hud
    ! A. A; o- Z) `  `6 R/ G; }, ]2 m# [7 O
  49. #===============================================================================0 Q7 o  N6 C9 ]: K6 a
  50. class S_Hud < RPG::Sprite6 \/ h. H1 s& b" U
  51.   include MOG/ d! W% E: L4 l9 [# X# L& i- r5 `# V
  52.   #--------------------------------------------------------------------------
    : [3 b4 c$ I# {& o5 C1 \
  53.   # * Initialize. a$ ^. ^$ J+ P- H9 v1 p
  54.   #--------------------------------------------------------------------------8 r( \4 _! b- \/ B1 g
  55.   def initialize(enemy,viewport)
    - F# I3 E- V/ k
  56.     super(viewport)
    " S+ k, D' e/ s# s+ B$ c
  57.     @enemy  = enemy4 g- ^, R1 X; c5 q+ o8 `
  58.     @battler = @enemy.battler
    2 a0 `' m# P9 i, q  e' N1 }: d
  59.     @old_hp  = 0$ r; L' ^  F# w
  60.     @old_sp  = 0
    ( e/ M- u# @7 C6 C+ V( {, f) q
  61.     @old_vis = false$ A0 q' L$ K! \/ x( R5 \0 ^
  62.     self.bitmap = Bitmap.new(100, 100)  c  e) d6 d% V% @& `
  63.     self.visible = (VISIBLE_DEF)#false
    3 ]( w2 u. o! g4 Q. |- O  z2 k1 r
  64.     self.z = 100
    , r/ H6 T7 G8 U, ~" b# _, Y
  65.     #HP Border -------------------------------------------------------------------
    5 d- C3 K2 s- j4 t
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")- p3 C* K! G  {$ I, M
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)# M0 v1 Q  V. x5 P0 ~7 y2 f$ J+ H
  68.     @layout_sprite = Sprite.new- M$ H6 q. q1 g
  69.     @layout_sprite.bitmap = @layout_bitmap/ i. ?# Z. M8 o
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)% h( Q6 Z5 c9 W7 i
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    9 L& T* u- M0 _2 J$ @' I
  72.     @layout_sprite.z = 5001) `* X2 D- i1 |8 v2 x# ~* B& j
  73.     #HP Meter ---------------------------------------------------; D6 Q. Y: w0 b0 ^4 K
  74.     @hp_flow = 0
    2 x' s+ j# u4 b, N. ?
  75.     @hp_damage_flow = 0
    7 q+ |6 J6 Q" G* ^+ ]3 G, g  w3 O3 J
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    & Y  C, S3 }/ L8 z; [
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    6 `- p( o; E- Z9 {. J7 l
  78.     @hp_range = @hp_image.width / 3
    , D) N, Y% X$ m. }
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  : y/ j- v- P' X9 f$ f
  80.     @hp_width2 = @hp_range / 2: F& a$ O4 E" m  G1 Z" B
  81.     @hp_height = @hp_image.height / 2. U! g: E1 O9 y) V5 c
  82.     @hp_width_old = @hp_width* m; Y9 j0 o) |" m7 i/ l9 D  p* d
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)2 e& X" m9 q: L8 ~
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    7 {2 P' K+ q! ?% W5 Z, b  u' O$ |
  85.     @hp_sprite = Sprite.new2 Y; f5 N/ T( r9 F$ k
  86.     @hp_sprite.bitmap = @hp_bitmap
    1 b% J$ X. ]; [% w- o8 B# L
  87.     @hp_sprite.z = 50025 R( ]  d" d. _$ f- _8 E# N
  88.     #SP Border -------------------------------------------------------------------
    - l' z' A5 y& l. T. r6 d% }) r1 `
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")2 l) p& m7 _( Y
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height), e8 t7 ^6 ?, z/ M) O
  91.     @layout2_sprite = Sprite.new4 ~9 q8 B: o( h6 e9 f5 p% q9 x
  92.     @layout2_sprite.bitmap = @layout2_bitmap( C! A  X: m7 g" v( G
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height), J3 N& v; |" @/ U7 a$ k
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    : i' x# q: l0 B- I, Y1 X+ G6 S- x
  95.     @layout2_sprite.z = 5001    $ S8 \+ F! l$ r, Z
  96.     #SP Meter ------------------------------------------------------( g0 t+ L3 T5 e$ v5 c
  97.     @sp_flow = 0( o4 c% O/ ^1 W1 x$ n
  98.     @sp_damage_flow = 04 V9 {( n9 Q' K# O, Q) E' x
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    3 L9 ?( q; z/ i& Y& ?6 d; _
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    6 v- K# q5 F5 N3 y
  101.     @sp_range = @sp_image.width / 3! k/ c, \# J( T& h. V1 s
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    + w* i7 E0 e9 V7 ~; ^. r
  103.     @sp_width2 = @sp_range / 2
    7 c4 O, c% S) m  b! r# F) t4 I3 b1 @
  104.     @sp_height = @sp_image.height / 2
    8 i. l" J& {8 }( G5 J$ s  I
  105.     @sp_width_old = @sp_width
    4 T' P' A0 K4 k7 F
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    3 \  |1 r3 }+ g% k, ]5 y
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)' K" n7 p. a! O
  108.     @sp_sprite = Sprite.new% z, ~# U. h# J; n0 }
  109.     @sp_sprite.bitmap = @sp_bitmap
    : p+ R7 O. }+ x" |$ H* g* d! ]3 F
  110.     @sp_sprite.z = 5002
    , e# ^3 o, T5 C7 a2 X4 F4 N# w
  111.     update
    9 m9 o' _6 V3 Y* K# A
  112.   end* M- t! a/ X: s
  113.   #--------------------------------------------------------------------------
    9 V# K" O$ B( ?# L: U3 U
  114.   # * Refresh
    " e; P+ m! \; D
  115.   #--------------------------------------------------------------------------
    1 b/ p3 t& p1 Y) s3 J
  116.   def refresh
    6 U8 b: ^" t; H) g% ~+ b9 _; I
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible  Z6 Z4 y4 B. T( v, ]
  118.     self.bitmap.clear3 x; b8 `: K/ t3 \- J2 z: n  l8 k
  119.     @old_vis = self.visible) X+ L* R0 F+ {* M% o2 T
  120.     @old_sp = @battler.sp
    # u) p! Y3 d& I. h; x6 g. Q/ H
  121.     @old_hp = @battler.hp; y6 F4 h* l$ d4 O
  122.     hp_flow_update
    1 s' I9 e' T4 _  @" }: C( X
  123.     sp_flow_update  N/ L" B4 @' K' }  ~% F1 d
  124.     hud_pos_update+ W* p% p+ F6 H
  125.     visible_update( V; g8 r1 D# P2 _# v( T+ H$ @; I
  126.   end
    - a0 _, g) L3 l% W
  127.   #--------------------------------------------------------------------------
    : h: _8 Y0 I- z5 c: G1 p: j! q
  128.   # * Dispose
    0 k& U& d$ W& @) k5 C" B0 K
  129.   #--------------------------------------------------------------------------. v3 D: @! u( P4 r! y
  130.   def dispose$ E2 s6 L' B6 L$ }
  131.     #HP Meter Dispose" {9 e% V& o0 u4 G
  132.     @hp_sprite.bitmap.dispose
    + J0 I) T- c& I/ K6 c
  133.     @hp_sprite.dispose) j2 f) E8 a. t. ?3 o  S
  134.     @hp_bitmap.dispose$ |7 c! ?- }3 ]
  135.     #HP Border Dispose
    7 C# E- d8 m7 S3 [9 H& Q: r
  136.     @layout_sprite.bitmap.dispose: S1 H6 ]6 }. ?
  137.     @layout_sprite.dispose
    ! m' O: F# ], }& m  F0 h4 A+ \6 B
  138.     @layout_bitmap.dispose
    - V; |% R! `( q* f1 R1 R
  139.     #SP Meter Dispose+ C" Y  y1 G/ ~# K$ f: M
  140.     @sp_sprite.bitmap.dispose
    , D- B5 _; i& f; \
  141.     @sp_sprite.dispose" R6 H1 X, d2 Z- i# Q; l) m
  142.     @sp_bitmap.dispose7 D9 w" v3 e  K
  143.     #SP Border Dispose
    ! U2 w7 f! m0 D
  144.     @layout2_sprite.bitmap.dispose
    : |+ Z+ _/ s% n
  145.     @layout2_sprite.dispose
    7 O: x" p  T. i' n# @* A  P2 ?
  146.     @layout2_bitmap.dispose
    % I8 R# s" ], M9 i5 F: h
  147.   end
    9 u4 M- l, Z+ L# U- ~! i
  148.   #--------------------------------------------------------------------------
    : N" S( \) V' G
  149.   # * Update" ^% U( Q  J! n- {4 q7 [/ W  a  c: P
  150.   #--------------------------------------------------------------------------4 E' m5 A$ Y+ Y# [" J
  151.   def update4 `* K2 p  t5 e. ~  N
  152.      @battler = @enemy.battler 2 z1 n9 B5 C0 D% D6 i) n
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
      f) \: I$ ~6 u" p* i
  154.      if self.visible2 P+ \0 k0 {; W% F) D8 c
  155.        refresh& i9 {( Q* w* @, [* c9 V
  156.      else
    $ m3 D- p& }, a
  157.        self.bitmap.clear/ h4 q  i- @& c3 r! ]9 v
  158.      end
    " R- e' {2 ^9 O
  159.   end
    / _1 y  ^3 F: O$ C' o
  160.   #--------------------------------------------------------------------------
    : P6 }; g4 @. S6 }* \. R9 G! s
  161.   # * Visible Update5 e/ V/ ?2 D' `  W
  162.   #--------------------------------------------------------------------------
    0 r, t2 Y# t' T+ c8 L  V0 X) {
  163.   def visible_update# B! }) Q2 ]3 d2 O
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true, Y: l: Y5 E5 g- e7 q  b9 {
  165.        @hp_sprite.visible = false
    + W" r2 y4 g  ^, Q$ i2 k% w
  166.        @layout_sprite.visible = false
    / P$ f6 s6 \+ _4 z9 @: _
  167.        @sp_sprite.visible = false8 Z9 F8 y% X5 W
  168.        @layout2_sprite.visible = false9 u9 _5 N, R( p
  169.     else: N& e! i) _! ]) V
  170.        if HP_HUD == true# U4 p5 q" H  i3 F9 e' h
  171.          @hp_sprite.visible = true
    , V) f* G) t) }9 o2 I
  172.          @layout_sprite.visible = true3 K$ S5 r! W& W: V/ |4 P
  173.        else
    ; e' `( e+ e) F) s9 ]5 w- N5 a
  174.          @hp_sprite.visible = false9 O+ S, K& S' a+ W  L
  175.          @layout_sprite.visible = false+ ?; q1 a5 ]9 K% |2 ^
  176.        end  : j+ \% R% g- v0 {  M8 A% {
  177.        if SP_HUD == true# P+ J2 ?& f9 [6 T! ^
  178.          @sp_sprite.visible = true
    ( l2 ?" V9 Z% f- F/ P8 d
  179.          @layout2_sprite.visible = true
    ! @) W! P1 q4 c5 e2 Z
  180.        else
    2 B: F0 s2 e, W( N  n
  181.          @sp_sprite.visible = false, n5 a: f( C7 T" b3 T7 \5 `3 V6 w
  182.          @layout2_sprite.visible = false: K/ S* p- H4 p7 n; M
  183.        end , j$ W: M  F# u7 b# O+ G! L
  184.      end  6 {# `) r6 u6 a. S* `) ^
  185.    end ' |9 i1 x* u" X. o) x4 k( b
  186.   #--------------------------------------------------------------------------. K4 B6 M+ _0 f' y$ d
  187.   # * Hud Pos Update
    4 H: d0 v! U9 f) t( N
  188.   #--------------------------------------------------------------------------
    / I$ t) ^- E- s" v: E( P
  189.   def hud_pos_update# p. C4 D+ e* M6 ]1 A/ c, L- G
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X* N, b2 ]6 y0 M) ]
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    0 F8 }/ Q3 x5 I1 Q, _
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
      N# m. t/ p7 Z1 y) z  c1 @( I4 e1 i
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    , u# n' D: W: F$ @. }- `3 w
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    # ^/ x( y  |' O+ ~( H8 C
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  ! G/ X6 L" O8 c7 b  `
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X; `# Z; L; p1 m# @2 w) ^8 N
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    9 t) d3 l, ?3 r4 ]1 m1 Y4 ?
  198.   end  / Z; L7 B+ s# F6 N2 W, \
  199.   #--------------------------------------------------------------------------
    ! v3 h) m8 R7 }$ X" \! V& B4 O
  200.   # * Hp Flow Update4 o$ ^- x' Y1 J# A3 ]1 i( W
  201.   #--------------------------------------------------------------------------
    3 W/ y9 X0 o' I- W$ x' `
  202.   def hp_flow_update7 s) F# {: u: M$ h2 ~) h2 J5 d
  203.       @hp_sprite.bitmap.clear$ P2 x; L5 [/ o, x' p3 g' Y/ F
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  3 E8 X# O$ G, |
  205.           #HP Damage---------------------------------
    8 P$ p% U4 ^4 d& z; V
  206.           valor = (@hp_width_old - @hp_width) * 3 / 1008 U" B. ?: @" q0 G3 n* m7 V$ b2 `- I+ Y- X
  207.           valor = 0.5 if valor < 1          ( V. L6 \4 Z; G( W; ]6 H8 }
  208.           if @hp_width_old != @hp_width
    - C2 `. \# @( f; d+ ~2 t
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  + J5 |- p& `% s/ u1 O
  210.           if @hp_width_old < @hp_width 8 d8 s; Z, Z  d1 Q: _
  211.              @hp_width_old = @hp_width5 M+ y- p/ K% \$ d5 v
  212.           end      " i9 Q# u! f" d5 s, a, \
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    9 y; D6 X3 X& i) ?. M+ t* p
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       / N1 t0 R" }; H0 M4 S; k/ K
  215.           end        + R1 v, |0 b9 _3 ?
  216.       #HP Real------------------------------------
    8 \. s: y; g% r
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)$ k# i1 O( p( s3 H4 [, f
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          5 m. n. u3 E7 N2 x' g( Y
  219.       @hp_flow += 2  1 _0 K7 q' m, H1 u
  220.       if @hp_flow >= @hp_image.width - @hp_range
    ( C' J0 ?- N- w6 A% _
  221.          @hp_flow = 0  . n& c5 A0 f! \+ t" |6 e7 H
  222.       end
    , g; S0 r0 J3 p* x/ P
  223.   end    # `+ c! p+ T# n
  224.   #--------------------------------------------------------------------------- s2 n+ D4 i. j+ p. T
  225.   # * Sp Flow Update( o6 H: P2 ?7 W# d9 `8 M4 `# ?/ p
  226.   #--------------------------------------------------------------------------
    ) n: Y$ J- r; X. J* {; L
  227.   def sp_flow_update5 o; p0 b5 N4 q/ W
  228.       @sp_sprite.bitmap.clear" v: q, _) P8 o9 e% M7 n3 l) K3 d8 R
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    8 ~9 e9 S$ H% G3 U1 t2 e' {" r6 F' [
  230.           #SP Damage---------------------------------
    $ N0 r# S' b) ~
  231.           if @sp_width_old != @sp_width
      Z2 f* x- E4 A. [
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    / u. \0 h) W7 s; t1 h% [1 P
  233.           valor = 0.5 if valor < 1              6 N" m3 q( o- ?! {1 e1 _. `
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    8 e# ?! M" n) m% u* j
  235.           if @sp_width_old < @sp_width
    , h" F( A6 [) E& U* H9 h6 t  O
  236.              @sp_width_old = @sp_width6 p4 E  k$ G# V* @7 P
  237.           end      ' e' w- o8 D. D
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
      M9 ?# [; [% Q
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    1 {2 k3 f0 j" l8 w; U" p9 @
  240.           end1 c% Z; P0 ~9 y  A
  241.       #SP Real------------------------------------2 c8 n! x( [3 S: v2 |0 @) L
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)6 ]: M- D# n8 Q5 b1 Z: [* I( o: ]
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)% S8 F  ~: g7 q' `
  244.       @sp_flow += 1  
    ! U" o$ e1 i. ~
  245.       if @sp_flow >= @sp_image.width - @sp_range
    ' O1 t1 S2 R& M9 @' T7 Q
  246.          @sp_flow = 0  # ]6 D# l$ t+ ?9 V
  247.       end
    ' O+ K! g# O9 ^+ Z6 D, g1 l
  248.     end            # S1 F4 \, a( A( U2 Y
  249.   end) A. F6 }# A; T! M4 Z( A- }2 H
  250. #===============================================================================
    : Y) ~8 }/ G: x: f' A
  251. class Sprite_Character < RPG::Sprite
    + z$ |" T5 X5 e
  252. #-------------------------------------------------------------------------------
    " X, f0 a, ^3 J' A5 x
  253.   alias :xas_emini_hud_init :initialize- ?  h) f% {0 d; h
  254.   include MOG( ~4 \2 x2 D. g0 g, P. H. i) u
  255.   def initialize(viewport, character)% f; D; K/ t+ G7 V& H) r8 g9 D
  256.     xas_emini_hud_init(viewport, character)5 D6 g9 B  a7 o8 c, R5 z! h2 @9 b! X$ g
  257.     @viewport = viewport
    . i- f. S# w# |0 X) Q$ Z
  258.     return if @character.battler.nil?/ r4 P  I) {, i  j0 j' h. Q" `/ o
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)# ^) V' X/ T( R- P) }$ {- p
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)+ Y9 p& `+ W# L
  261.     return if @character.battler.is_a?(Game_Actor), a/ i' @" L$ k! x: x! G5 U
  262.     @bars = S_Hud.new(@character, @viewport)
    ( c/ T7 W- s# S5 c" F* d
  263.   end
    0 n. h7 ~  j0 a' o+ F' q& ]; f7 u
  264. #-------------------------------------------------------------------------------4 W) |6 R/ x/ i5 ]( k2 L) z
  265.   alias :xas_emini_hud_up :update
    % Y  x# T( c: G' I( ~7 G% C
  266.   def update
    5 C0 Z) r* k- ]
  267.     xas_emini_hud_up4 S& U$ L7 z; v9 X. M5 b$ D5 X
  268.     return if @bars.nil?
    ' e$ O) u; e3 e, B
  269.     return if @bars.disposed?
    # U$ ~" V( J/ U3 X; n" x
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    . Y  [" |  h  f+ P0 v# Q/ T
  271.     @bars.visible = (dis <= RANGE)
    ( w6 f8 Z) c& i2 X: a" g  O
  272.     if @bars.visible
    ) X$ G5 s3 v: h- |3 A
  273.       @bars.x = @character.screen_x# - @cw / 4/ l5 Z, b- K) D& m9 d  m9 B6 l
  274.       @bars.y = @character.screen_y# - @ch / 42 T4 S" U- Z( ~8 a: f& F. v
  275.     end; j; ^! \, ]( [7 k* F2 O( i% Q
  276.     @bars.update
    8 G' C5 G: N: v- a
  277.   end; z, c" U: M% c7 p- I& ~  v
  278. #-------------------------------------------------------------------------------
    ) H2 R7 g5 f# l' W' A5 c2 B
  279.   def dispose
    7 Y! M* `9 @3 ?# v5 u
  280.     super
    % z: ~* K' w. q4 U  i0 \: o7 J
  281.     @bars.dispose if [email protected]?
    - z7 J! M1 X1 Q* n( G
  282.   end0 |/ c# I6 T. E
  283. end% D& K, H. S9 ^  |; s. n4 d

  284. / v1 [* D  w+ H' D
  285. $mog_rgss_s_hud = true
复制代码

) M' |0 q3 R: O0 M# }  f4 s( }
) }2 S; [0 Q3 n" B) m" z% I  t; I
% l9 N) q9 T9 I1 |. w1 [' v上面所說出錯的203行內容為
# M) p) O( i: {% P@hp_sprite.bitmap.clear
7 l, |0 X; D! ?' T4 D* Z/ t0 {9 b7 j! C! W0 @& }+ d
想知道怎麼解決9 o$ D+ y5 Q- B& S; l4 B3 y
$ D6 Y) U8 l9 ^0 H
該腳本支持3.82
2 N2 P" ^8 U6 X! @% Q9 A' }
3 R: d8 r" U4 m, p' P7 q6 s- \; f- r- H下面是圖檔,要塞在Windowskin下$ k' S$ `( o1 U6 g) x
8 S* d3 K& X7 u' f* e/ i
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) 6 c/ G6 s. U4 p. z# {

: |1 h9 V& i" A. G( T: h0 P  S) z. |) f! |, o) [1 B6 c' F6 _

+ v4 P" ^+ R) G! L: s' |
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
  j' H' [4 J/ i& D结果尝试刷新了一个已经释放的图形
5 @- x5 k! G4 V& p
; r+ B" [! j* i# a9 c( _' X4 |' u' c& H) p

0 i! r- a6 i$ O# ^虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?; `/ n5 l) `$ F
复制代码
不要后面那个条件貌似就没问题了。% v7 Z$ h2 C* t2 P+ V% y5 G
7 t- a) y! b7 F; Y( W; K7 l0 V
  i3 K* X  Z: {! f7 m* B

: P9 M0 v; m3 O! X. ]. h0 S0 {2 ^( ]# N% c2 L" ]
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
: `; r- j) C$ }0 G貌似是释放的条件不合适* y1 B) F: @" l* N3 a
结果尝试刷新了一个已经释放的图形

7 D6 K4 `* l- @% z% u$ O( ~把後面那個條件弄掉後,的確沒問題了
+ r$ [& T( @8 n$ b2 ^目前從關頭打到關尾結束都沒再彈什麼錯誤5 E$ O9 i8 M5 A- f
非常感謝9 [: O# O- O* W& X$ Q

2 H  d! n3 B1 K2 s1 _不過我是參照著別人腳本改的& v4 t/ ^2 `" q2 n
他寫的條件式也是那樣,但我用他的沒什麼錯誤
% X& O6 @0 i$ `! s/ V. ^不知道是怎麼回事
" o7 J1 d/ {. Z; n% p+ M9 N+ E  [是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的6 `- z6 E/ i( M+ H! u' {' a
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
9 B* M- v; Q- ]9 h( m5 m9 Y1 U; H嘛..这个数组吧..我在以前试写队友的时候关注过一点1 d: s" Z3 a! T4 L" W2 q0 ^! X
不知道XAS内部对它做了什么手脚还是为啥,! e3 x. h- l9 K. w- {3 o
总有那么一瞬间,没有被消灭的敌人事件也变成了nil) W2 v# B) t8 A# V4 [& k- H

6 o* X( q6 |% y3 v0 S$ ]# l$game_map.events.values[@enemy.id].nil?
; l3 T# w. X$ v* Z+ i因此自然而然的返回true并符合条件把图形释放掉了
' M2 N) }! E+ B) A3 _4 i; z
# P$ B2 n8 v8 v$ o4 o+ VLZ应该有注意到吧,9 r( g7 l0 R5 G+ ~# ^0 L2 ?4 \4 s
我测试的时候发现报错前几帧,图形会消失,7 U4 ?( o9 G( P- O5 H
应该就是“误以为敌人被消灭”了。/ W# S; y; B) K, T5 M1 k7 w8 V

8 h  l  m! ~: n" r$ g! i5 m' f受限于个人水平,至今无法找出$game_map.events的真相..; F" C0 K( B0 I3 P' W
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
0 B/ Y' b) e" k, G$game_map.events
3 U2 Y, m5 X  @, s. W* O嘛..这个数组吧..我在以前试写队友的时候关注过一点
8 P; |! ?$ K5 q  n不知道XAS内部对它做了什么手脚还是 ...
; `8 O" @: C; a
當初我把那個條件式看了三遍,都不覺得他有什麼錯* C1 k5 l/ q0 r3 j8 i( o6 L
原來還有這麼深奧詭異的事XD
- q6 r1 Q4 j- a1 r* V( ^& Y, V* E0 r/ l. d
錯誤發生前的確會有圖形沒顯示出來( l- F# M& R6 P! W) e$ _
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
  I7 A* B3 E5 ?: _4 b+ v沒想到居然是詐屍了XD$ V- F9 q5 U. D, i" u( ~

7 z; b. Q; |6 w不曉得3.91有沒有修正這問題.../ p5 N1 G" q4 }/ O1 q4 E3 x
不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
9 f# d) z: ~9 h% O+ ]( m5 h, W( p6 K: _. Y3 n$ W- m. @
的确
! `8 I4 y8 s  A- }) }; Y用惯3.82之后想去整3.91觉得压力甚大..
. Z1 g( B: q6 ?0 b6 s/ e8 _干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。
+ F: c$ l+ q& r) y9 x: t3 O$ I% y$ [& t7 `& [; A, c
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2026-6-4 14:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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