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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條1 h- q3 L) V3 I) D5 B5 z
會在每隻事件怪物的腳下顯示" b& m: X7 \. E1 C1 h% h
問題是不知道為什麼
% r0 ~* F( f( k5 e; ^有時打怪打一打會跳出
6 ?- ?$ [0 o( U) a; V7 d1 F0 L---------------------------' A$ W8 g/ Q5 d
XAS
1 D5 g  p7 G) r+ z---------------------------* Z) Q* Y& Y& {' V+ Z
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。1 m* ^. `" h0 h; u/ ]5 Z% ~

' W; d) y% F  G9 ^* S2 adisposed bitmap
3 }( l$ w& Y) [$ {5 {---------------------------8 U0 T/ }) q2 W0 A. k$ Z6 p' d9 @
確定   
( Z- P5 R: l, S) {# D2 r  a---------------------------; l* w, _; M* B0 K# \* U: ?! n' M4 e7 g
8 G- X: b, m; R* m& j
這是腳本! T4 u7 k' h) o  a. J

; i4 k: `9 Q9 ^
  1. #===============================================================================" ~1 b4 z7 _' P
  2. # MOG - s Hud 1.0      
    0 w8 R+ y* Q  Z8 }3 K+ @3 o& t
  3. #===============================================================================
    : |6 Z2 f% R0 _9 F, A
  4. # By Moghunter
    3 p# ~- L$ ?! q! _) }; L, y+ q. I
  5. # http://www.atelier-rgss.com" [/ a$ A& ~; L0 \  K6 Q
  6. #===============================================================================
    - K( c& p' s6 f  ~9 `
  7. # Translated by Calvin624 6 Z* T, Y; c- D$ I) x
  8. # http://www.xasabs.wordpress.com7 d; c' {2 i( l
  9. #===============================================================================
    5 [- ?, ^! J. T( y* U  H
  10. ###############################-DESCRIPTION-####################################
    , e# G" {1 P7 I6 V- x4 b4 ~
  11. #===============================================================================, a5 X3 C8 O( |/ s& `
  12. # Personal HUD – displays the HP and SP below the hero.
    8 g! }- N' o% m
  13. #===============================================================================, E6 K- t# b2 ?- [' N0 ?9 \6 B
  14. #  |! |% k- y( v0 _
  15. # Graphics required:0 {+ ^4 S' {# ^  P4 Y$ G2 S  Y; F
  16. # 1 n+ {' Y# u) d: X$ z! j% ]
  17. # S_Border_HP_Meter.png  Z% W" z3 ]" Y1 o
  18. # S_Border_SP_Meter.png& f4 O7 c" B- A
  19. # S_HP_Meter.png3 q# w9 v0 B+ j
  20. # S_SP_Meter.png+ _! P" M" v9 {
  21. #
    . ]2 Y; G/ P: ?/ J
  22. # All images must be in the Windowskin folder.
    0 g5 [- h) Z- r
  23. #0 _- h$ K4 n6 l" S2 K$ G
  24. #===============================================================================. i1 S3 S3 B6 x8 l
  25. module MOG# H) ^0 s- H. e
  26. VISIBLE_DEF = false  
    - j- r9 Q7 b7 c. x# g% Z' Y& ^
  27. # Show HP meter?
    0 e1 d3 t% h, Q7 P3 Z
  28. HP_HUD = true6 X; `$ Y5 a' o# A, N
  29. # Position of the HP border
    , M  l% o3 n- e2 G  }
  30. S_BORDER_HP_METER_X = -27 ]* [; T+ j, w0 V
  31. S_BORDER_HP_METER_Y = -2  ; g5 V6 V! y7 H- k5 J0 H
  32. # Position of the HP meter9 b: R  W* }9 h. f
  33. S_HP_METER_X = 04 R9 ^2 Y4 @9 k& h# d1 z# H
  34. S_HP_METER_Y = 0( n. i, M4 U  r3 U  }
  35. # Show SP meter?
    ! g2 I" [4 t1 L
  36. SP_HUD = true$ {; x5 b7 |6 S  ?+ ^% l
  37. # Position of the SP border
    ! a0 z) a; a  p9 m" P  u
  38. S_BORDER_SP_METER_X = 0
    . G$ q5 W; D) M, H- t
  39. S_BORDER_SP_METER_Y = 10
    ! `/ }- L/ G) r" o- W
  40. # Position of the SP meter
    7 w* W' Z' F) Z. a
  41. S_SP_METER_X = 0" U0 Y/ ^8 _$ {
  42. S_SP_METER_Y = 10
    4 c  M! Z% S# D+ h5 Z& T
  43. # Switch to disable the HUD% C& H3 O3 T7 E
  44. DISABLE_SHUD_SWITCH = 5
    6 t$ Q4 Z, Y/ Q5 V0 `. t
  45. RANGE = 20
    : I: f) o" N8 f( H$ J
  46. end
    " }1 t* p/ u7 `  z) Z
  47. #===============================================================================# b) I: L* Y$ I# q# M( \! B
  48. # S Hud
    8 d: T3 F/ S; C2 T% N
  49. #===============================================================================
    ; g3 L% J+ b2 H
  50. class S_Hud < RPG::Sprite! w2 h8 u0 p, O4 g
  51.   include MOG- P$ c; D. G& S% R$ ~$ l7 c; [$ c, y7 i
  52.   #--------------------------------------------------------------------------
    # W  I1 ?( n3 C6 n/ m. S* O2 w
  53.   # * Initialize7 @4 m3 s& p8 T7 j" G2 w0 z
  54.   #--------------------------------------------------------------------------
    . r5 g! K" h4 ^& E$ U8 q
  55.   def initialize(enemy,viewport)
    ; n" A& ~" ~' C1 }
  56.     super(viewport)
    * ]# _& F( `; c' M; |4 h
  57.     @enemy  = enemy
    3 b+ z1 ~" J0 u1 \4 N! Z0 a: Q
  58.     @battler = @enemy.battler8 ]3 v; I, E9 a. [" C
  59.     @old_hp  = 0* `. L1 U8 v: Q4 Z
  60.     @old_sp  = 0
    & G/ Q9 l& m$ ^% D/ _
  61.     @old_vis = false' ~1 Z, F8 g1 Q& i7 X! m
  62.     self.bitmap = Bitmap.new(100, 100)
    " E/ p7 G- V4 H: a) g: E
  63.     self.visible = (VISIBLE_DEF)#false
    & K0 c& ?1 H# D) q# E9 k
  64.     self.z = 100
    8 f+ ^% r) D' o/ X' ~( j  A
  65.     #HP Border -------------------------------------------------------------------
    : Y( F4 o8 ~1 m3 O  g7 ~/ \. [
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    $ V2 z, ]( j3 O! c8 z
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    , P. B  p* R  P; \6 ?  K
  68.     @layout_sprite = Sprite.new
    % v" \8 W7 S4 H
  69.     @layout_sprite.bitmap = @layout_bitmap
    3 V5 g7 G2 f# J
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)' X: c* g  a- y* m- H& T% V
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    / ^2 ]5 h8 N/ I4 I& J' `
  72.     @layout_sprite.z = 50010 O! G0 f8 G- V9 [
  73.     #HP Meter ---------------------------------------------------
    ) {: {+ h" _; m. e; Z6 n4 ~* T
  74.     @hp_flow = 0; _7 O' \& C8 t
  75.     @hp_damage_flow = 04 z7 y  s5 _4 V# W6 d
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    % J$ j9 H- t! S( [
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height). F8 a9 P/ J% e  S. f
  78.     @hp_range = @hp_image.width / 3
    5 H6 E9 s/ U+ q0 a$ b+ p: i
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    ! L' F7 I9 j; V
  80.     @hp_width2 = @hp_range / 2) {2 s' ]7 p! S" |
  81.     @hp_height = @hp_image.height / 2  P: |9 v4 O0 _
  82.     @hp_width_old = @hp_width2 a- j2 x$ X$ B8 r& `2 T0 P
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)8 ^% H; U5 f, G0 z1 [; O7 V
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    7 i$ S- i; W* m
  85.     @hp_sprite = Sprite.new: o' L7 q/ ~% E  ~$ N  K
  86.     @hp_sprite.bitmap = @hp_bitmap
    4 @0 e  a& J; H' `; X' M! F2 g
  87.     @hp_sprite.z = 5002
      q+ S% G* _9 m
  88.     #SP Border -------------------------------------------------------------------
    ( |: j4 X! e+ j5 d$ e+ X
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")5 y4 d9 {( ]5 v- A9 J5 e- u$ U8 Z% m
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)2 u8 ^8 y% @6 g  e" v" B3 N
  91.     @layout2_sprite = Sprite.new
    . P: d+ J5 M3 p& \" M& R- g, V
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    : [+ S" r! E. _7 ?9 X
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    8 @  D; S( ?2 H
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      # Z2 P* R9 n7 ^- ~# c6 x9 g2 ~" y  v( F
  95.     @layout2_sprite.z = 5001   
    3 T9 g/ R. b7 O+ U: H  \
  96.     #SP Meter ------------------------------------------------------9 \2 M) w* o. Z! @* ]
  97.     @sp_flow = 0
    ) Y, {" |9 I' z# G
  98.     @sp_damage_flow = 0
    2 f1 U4 I7 q6 T6 \
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    # q! E+ {* Z5 M+ v7 }9 G8 U
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)9 p  C8 ?+ E! W: ?
  101.     @sp_range = @sp_image.width / 38 G* L8 y! F( O9 c
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    . r" Z1 c; [5 c
  103.     @sp_width2 = @sp_range / 2# i" A) U! z' u% C$ r
  104.     @sp_height = @sp_image.height / 29 T6 j+ {' w4 q. [
  105.     @sp_width_old = @sp_width
    ( s# b) J5 O6 g+ d5 y) O! B7 a
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)1 |) N3 l# i! ~
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)5 Q9 A) {, T! e5 i6 Q, M% o6 X
  108.     @sp_sprite = Sprite.new
    ! d; T% f0 e" B. X  N! v8 q
  109.     @sp_sprite.bitmap = @sp_bitmap" l) c- J  A1 ?4 j) C
  110.     @sp_sprite.z = 5002; h! k9 f" w( b; M. f- B
  111.     update
    . j0 O; S9 ]- z3 u+ T# w
  112.   end
    ' U) P$ r8 U: O# a! U' S
  113.   #--------------------------------------------------------------------------
    1 Q/ k4 e6 D0 }" y0 H2 m
  114.   # * Refresh6 O2 G  `+ O& X2 r0 c
  115.   #--------------------------------------------------------------------------
    ( t$ ~" V1 g( H# m8 U6 h$ p, v
  116.   def refresh% O# q$ }- \* P, \6 D2 B
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    4 M  b, t7 C+ a3 F
  118.     self.bitmap.clear
    9 C; x0 P( G$ i
  119.     @old_vis = self.visible
    ( ~& U# _% Z8 o; b, z2 c% V
  120.     @old_sp = @battler.sp
    , n! {( w7 y: k" K; l
  121.     @old_hp = @battler.hp
    1 r. g$ l: f, r  F; U7 C$ r' g
  122.     hp_flow_update& l; e" C4 y& o/ Z4 ^5 F7 P8 Q
  123.     sp_flow_update2 c  x, @4 h8 p! o; E8 J
  124.     hud_pos_update1 N3 h& W0 q* d3 W2 ^2 _- @
  125.     visible_update
    . J1 D, X5 L% |
  126.   end( e+ N& w& w" f+ L' r2 H
  127.   #--------------------------------------------------------------------------
    ( m6 [7 v  o0 F' ?+ n& @$ }7 N0 L
  128.   # * Dispose! U- y5 |& H& U! \. h% @! J
  129.   #--------------------------------------------------------------------------
    0 ]- }! }) S) n2 q4 D6 ]: s
  130.   def dispose$ G- n7 Q* X0 z) w
  131.     #HP Meter Dispose
    - \. L: J5 `$ r& {, u: \
  132.     @hp_sprite.bitmap.dispose- E7 s, w' n( ?' Q3 R
  133.     @hp_sprite.dispose
    # L0 f3 N- l: r& ?! R
  134.     @hp_bitmap.dispose& Z$ z" V! l4 w3 u
  135.     #HP Border Dispose
    / G6 r. S) x, x3 L9 o1 a# X
  136.     @layout_sprite.bitmap.dispose
    9 r0 [) j! V  }  i" \
  137.     @layout_sprite.dispose
    2 r8 w6 ?8 I# N5 @
  138.     @layout_bitmap.dispose
    9 L5 e- {: ]$ Q1 i1 ]7 w& @
  139.     #SP Meter Dispose
    . e& {' {3 Q9 q) u; c" U& z4 Z
  140.     @sp_sprite.bitmap.dispose& ^5 c$ o' J) t+ u
  141.     @sp_sprite.dispose
    4 b1 E) ~8 W6 {& D$ L, h
  142.     @sp_bitmap.dispose
    9 _0 O6 e. a$ C; h9 l# n$ X
  143.     #SP Border Dispose" V, |. Y9 v7 n  D* x
  144.     @layout2_sprite.bitmap.dispose
    5 k& u- K" w7 h: P3 E0 T* f
  145.     @layout2_sprite.dispose
    9 |; z  s. U. E1 r
  146.     @layout2_bitmap.dispose  q9 a3 j% i/ Q; x
  147.   end
    & }/ P# v$ @) B$ w7 Q5 K) c% Z
  148.   #--------------------------------------------------------------------------
    ! l; j+ V4 y4 T( a8 |4 I5 M
  149.   # * Update0 x! I& y8 |- X% r, I8 v9 K
  150.   #--------------------------------------------------------------------------
    ; K/ t5 e% W: @9 Q1 U+ G: k( T+ v
  151.   def update
    ; A( n! o5 R: R% _, c. M
  152.      @battler = @enemy.battler
    ! ^" A+ `! e5 g! Q: m4 O
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?* n( \# S2 t; @/ Y
  154.      if self.visible
    ) J& |" i. n% }: |
  155.        refresh
    1 o0 L0 @% f( R
  156.      else' Y* B$ g$ j2 s  A; j
  157.        self.bitmap.clear6 X& R( I* g# z6 e! R3 K1 J
  158.      end
    # H* s9 \7 |, m
  159.   end2 [1 P* x0 u$ m6 D5 Q8 h# v
  160.   #--------------------------------------------------------------------------
    , v* A, d4 Z6 k1 A6 Z5 h" W; W3 u* h
  161.   # * Visible Update" Q8 i* a6 x: g8 A  R) F# b
  162.   #--------------------------------------------------------------------------
    " [- d; o/ G  r8 B  }6 U0 n$ [3 ^7 H
  163.   def visible_update
    $ ]- b7 z! W# o( E
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true/ G1 i0 z- b0 X# [1 ~3 I% J: ?
  165.        @hp_sprite.visible = false
    $ K3 P/ [, D  L) m2 A+ k
  166.        @layout_sprite.visible = false
    % D% L- }1 B4 H$ K% Z2 c; f
  167.        @sp_sprite.visible = false5 @! w- B2 l4 V. Z% K+ r+ }
  168.        @layout2_sprite.visible = false" Y; O% ?+ G$ Z) X& G2 M* a! ~
  169.     else: U2 q! u. a: ?$ g
  170.        if HP_HUD == true
    9 j" w2 J4 i) @
  171.          @hp_sprite.visible = true% ^' m5 U# x8 |( W3 a% w5 J! A# u, @
  172.          @layout_sprite.visible = true4 u# ?8 }, T1 @
  173.        else  c" c1 _' H# k9 ^( c
  174.          @hp_sprite.visible = false8 u" z" e* S3 o) {; R3 O+ C
  175.          @layout_sprite.visible = false
    * U# p0 t) ~- `
  176.        end  
    ' v$ E7 q( K- l
  177.        if SP_HUD == true! l0 R" b& t& r! ]# j6 `9 U( `, D- Z
  178.          @sp_sprite.visible = true! i4 G0 g/ N6 M- P, p2 o( ~/ Z
  179.          @layout2_sprite.visible = true
    # e, N: z( |8 J+ c
  180.        else
    # u+ S* X) Z, [8 a2 M# S  _3 {
  181.          @sp_sprite.visible = false* W! H3 x; D% S5 k, u- I6 q
  182.          @layout2_sprite.visible = false
    * K( H7 r# B9 Z+ y. R
  183.        end " k/ A; a8 l5 X4 j7 h! K+ [! i
  184.      end  ; Z* a% o4 E# a; i: Y3 A
  185.    end ' F- H0 l' I2 i" K9 U5 _2 ^
  186.   #--------------------------------------------------------------------------$ |9 |; Z! j9 K. Q2 A
  187.   # * Hud Pos Update
    . K1 Y' B( L* U/ P! m* G
  188.   #--------------------------------------------------------------------------
    ; t, L6 A: ]2 R% V$ f4 R
  189.   def hud_pos_update
    ' r) t( T6 b- M$ M* ?# M  G# [
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X. a# J) q% h1 u5 m5 D1 }3 [6 a
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    # q8 O+ `: f  o5 P4 k
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    # o# N3 ]1 e/ f$ h% N
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y + I5 P2 c# _# {; D  {' j: B; J7 t
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    ' S) q: x' f6 p2 t4 y$ E
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    # G0 i5 _/ N# m& w
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X3 n4 B& r! b: A3 l1 n5 |
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     " d( P' R$ n- E4 C  |0 g, z5 i; t
  198.   end  7 O: `) U  W9 V3 H
  199.   #--------------------------------------------------------------------------
    ) v# s0 C. m% t
  200.   # * Hp Flow Update3 Q1 ~. F$ l7 A$ l8 e+ C
  201.   #--------------------------------------------------------------------------. U/ O9 F  p; \  X
  202.   def hp_flow_update& s. ^; G) J- F  b- e
  203.       @hp_sprite.bitmap.clear! v, d  y7 g$ {" J' ?
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  & g) Y% G0 n7 J$ L+ F0 R& F
  205.           #HP Damage---------------------------------$ P% R! z2 L" L, f  r3 [4 l1 o
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    ! H- }# f5 u, m  q) P. A5 j
  207.           valor = 0.5 if valor < 1          ( W/ K+ N- o0 b! d4 S& ?5 b
  208.           if @hp_width_old != @hp_width
    ! o$ _! h; u* {
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    3 y7 N' k' p5 H
  210.           if @hp_width_old < @hp_width 3 C. Z2 o( ~- Y* x9 |
  211.              @hp_width_old = @hp_width. W& T. b9 a8 t! z
  212.           end      
    : H1 [9 O# f/ P5 @
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)0 W! G3 \! G; O7 [0 L# L' J6 n* `
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       ' r0 N+ W8 x0 n* x
  215.           end        % L' G' W8 q6 N! f
  216.       #HP Real------------------------------------
    - B! ^+ F2 M: Q. x8 M
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    ' I3 K& I, D3 \! G& ]6 M0 T) J7 P* x
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    & Y5 |  c; ~/ _
  219.       @hp_flow += 2  ) ], w7 [& V" n% A* }6 f- m/ S
  220.       if @hp_flow >= @hp_image.width - @hp_range
    : B3 n8 U- b0 y# ?" f
  221.          @hp_flow = 0  2 n7 U( l/ p9 `4 y# ^9 Z
  222.       end( f( e1 v* A8 t6 z4 J# G
  223.   end   
    6 Z. U, r' t6 k2 n0 N) x5 ~, W
  224.   #--------------------------------------------------------------------------
    8 W% D! ?, `) t7 _" Z
  225.   # * Sp Flow Update
    5 y' g( x! w6 P- R5 B  w
  226.   #--------------------------------------------------------------------------8 s  E6 x: u; X
  227.   def sp_flow_update, a5 r4 w# I6 Y( }7 r
  228.       @sp_sprite.bitmap.clear* X! W9 U, [3 T& d1 [
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp # L7 D2 [1 p7 X, Q" K: h3 {8 x" Y
  230.           #SP Damage---------------------------------$ R' K( n1 G+ w  o& }/ O4 U
  231.           if @sp_width_old != @sp_width& c7 V% A2 N) D4 i3 L
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    5 \/ N9 o) P, {# p
  233.           valor = 0.5 if valor < 1              $ W/ R/ d8 G2 M) S/ ~
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    & `6 m. W* A" P# \% ]
  235.           if @sp_width_old < @sp_width ! W. N+ v; J1 ]3 i" s; P
  236.              @sp_width_old = @sp_width
    8 j" p- q0 j) b5 F. T/ J4 T
  237.           end      * E6 ?+ w4 ^/ I% {8 P3 s3 @; u9 p
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    ! e4 }. r8 ^! U; [/ n, v8 w
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) . a5 H" ?2 S# u7 P/ h' `
  240.           end
    * S, `1 Z3 e+ @/ r* u) h4 ~
  241.       #SP Real------------------------------------
    9 L1 M4 i4 a1 V% J, G
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height); D: A( \4 q( g! j
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    : S) S6 V8 p4 v: ]
  244.       @sp_flow += 1  
    1 A5 h& n2 k8 R% {: q
  245.       if @sp_flow >= @sp_image.width - @sp_range
    2 J3 R4 O4 n" \
  246.          @sp_flow = 0  ' R+ F. ^6 g# W
  247.       end7 i$ p' v, M0 K( I8 ]2 N, y
  248.     end            + |# N( w3 B& r# i+ X' N
  249.   end% D, q# {+ u# b
  250. #===============================================================================
    2 D6 b- i. p6 `  U3 f
  251. class Sprite_Character < RPG::Sprite3 @8 q, `% x& L2 q
  252. #-------------------------------------------------------------------------------
    5 S1 R# f+ m% O$ w' h
  253.   alias :xas_emini_hud_init :initialize
    ' c+ A! ^/ Z' ]
  254.   include MOG3 L( G* _* ?2 \
  255.   def initialize(viewport, character)
    7 ^! Q" \! s5 N( N# C/ @) ~
  256.     xas_emini_hud_init(viewport, character)
    2 [% @& F" j/ t
  257.     @viewport = viewport" K4 Q' z& X8 W1 L
  258.     return if @character.battler.nil?
    $ W6 z: ]5 U; {& b5 R
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)* Y9 e# E# f3 [+ r7 W: u5 B
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id); z: `! s; v) V) _; O- _& `
  261.     return if @character.battler.is_a?(Game_Actor)
    # f8 Y. x' [( U- C9 ^' r
  262.     @bars = S_Hud.new(@character, @viewport)
    3 \1 f# I; Q: M, V9 V0 n$ J; ]0 ?( O! ^
  263.   end& d5 l: C5 {& R# S7 c) B! {
  264. #-------------------------------------------------------------------------------0 I4 G% l7 Y/ X
  265.   alias :xas_emini_hud_up :update
    , }2 T/ @2 f: `/ D
  266.   def update& Y/ B" C' d; s
  267.     xas_emini_hud_up
    1 W( l& b. x( p; Q
  268.     return if @bars.nil?
    5 @1 x' x0 W3 C# Z7 B; c
  269.     return if @bars.disposed?( ]9 w/ g8 n/ W. e9 j
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    + B4 z. ^) v, I% D5 v; K
  271.     @bars.visible = (dis <= RANGE)& s2 ?6 Y: X6 X5 F# E
  272.     if @bars.visible5 g, p9 ]- Q2 F. B
  273.       @bars.x = @character.screen_x# - @cw / 4
    # @' O$ v5 W0 V  O8 @
  274.       @bars.y = @character.screen_y# - @ch / 4
      V7 X+ y+ w1 F; R# R5 S% t0 Q
  275.     end
    ; Y1 ?+ C( B' [- k
  276.     @bars.update
    ( m: r7 F1 h% c3 @+ V* G/ f* E4 l" p
  277.   end
    & ]# m7 _$ _9 j1 n4 y" Y( X
  278. #-------------------------------------------------------------------------------
    9 e( e8 M4 y/ I
  279.   def dispose$ T" X$ |3 M/ Y' k! {
  280.     super* p. F/ F- z, L5 n4 \
  281.     @bars.dispose if [email protected]?
    " L) Y+ t, G, _) _' r) @
  282.   end
    ) Q# t9 m; d$ j& d' t1 ]
  283. end
    ! P  H* b: z8 C# W
  284. ; F; `1 D( d0 ?* a" w
  285. $mog_rgss_s_hud = true
复制代码

/ L/ J. ^; ^, |; Z; ?- a3 r6 k: p  Z! B( M! w' s5 z2 u
* V! d' G& s7 i) U" N% i$ N3 m
上面所說出錯的203行內容為
, o" f4 Y( Q: y5 M* I0 }- F3 H! x@hp_sprite.bitmap.clear
6 [, [$ |, ?% d2 _, N9 L8 f& n3 _' N" S. _
想知道怎麼解決
6 i1 q! }9 E4 I1 G; n* i- o$ W0 R7 E0 a# N
該腳本支持3.82
' z! K0 J' ~& V4 l' F) y% L1 e. U: b6 Q8 Q/ d
下面是圖檔,要塞在Windowskin下
7 @( w+ d; k$ J4 t; V: ]) J8 h; l; @( ?! A8 _/ |
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) , H3 o$ \4 a" L8 j
$ G% Q0 W  _( ]. A

* _  y. S, u4 @
7 T% k- H' u8 }% U, f! d
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适! U/ h* X7 S. v! _
结果尝试刷新了一个已经释放的图形, U6 K2 y- P5 z  r; N

  C2 R0 Q: z; ?9 u& K' V6 A
+ |* ~# N8 g* m# R3 Z- t) |: S; o( i/ W, @% h( H; x
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?7 Y3 J4 ^1 M. b8 s. P2 O+ N0 z
复制代码
不要后面那个条件貌似就没问题了。- I% y8 p. Q' i9 H% p

, e& W# m' d, O/ O8 X( @0 c1 m$ M5 @

, g( D* d- E2 l5 N: M
5 x# u/ O6 y" a2 x8 @7 |
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 5 u+ N  u  @) `. u& U" v: K9 c6 P
貌似是释放的条件不合适! o/ ^  V( w1 j) S
结果尝试刷新了一个已经释放的图形

' t+ a; l8 q! m% T& M$ _把後面那個條件弄掉後,的確沒問題了1 O" G! \: T% [- }. K0 {! K: ^
目前從關頭打到關尾結束都沒再彈什麼錯誤4 O0 Y$ }* j% H% g; ]% @! e
非常感謝+ `) _. `7 @8 Y
) a7 V3 {1 s, L2 _& x
不過我是參照著別人腳本改的
, d: j+ i( o+ [/ V6 K& q4 s他寫的條件式也是那樣,但我用他的沒什麼錯誤
& p* a: {  j2 F/ M不知道是怎麼回事
5 ^' [/ _" F9 F/ f是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
' f& L: _" L) P( M我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
2 c; m  {2 C' G& H* k嘛..这个数组吧..我在以前试写队友的时候关注过一点. {" n3 i" C4 h5 \7 t- }# A- @
不知道XAS内部对它做了什么手脚还是为啥,
! j& h( Y9 `# A3 t总有那么一瞬间,没有被消灭的敌人事件也变成了nil0 Y) r7 E! _& E* c

. N% @" W% F$ G$game_map.events.values[@enemy.id].nil?2 ]% C6 q$ q% C% n# _
因此自然而然的返回true并符合条件把图形释放掉了0 l; d" N4 K; [6 ~3 j  O5 e$ Z

3 r/ ?" O' ^9 d+ \" P6 YLZ应该有注意到吧,
4 R% F) F  W: S( |% `( z9 `我测试的时候发现报错前几帧,图形会消失,# q1 v- |9 y5 L, C" H- z0 D1 _
应该就是“误以为敌人被消灭”了。
- Y% W$ `4 C: \6 N( P, U
/ O9 d2 c# V& n2 K  C受限于个人水平,至今无法找出$game_map.events的真相..
9 `( `& u" e4 ?# h4 q( T
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
687
在线时间
1808 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 3 @% g: x+ [' d+ H
$game_map.events4 W) R3 N% ~9 \$ B% r. i7 U) V( {
嘛..这个数组吧..我在以前试写队友的时候关注过一点9 b/ r) `7 W* [7 ~
不知道XAS内部对它做了什么手脚还是 ...
1 S; C' b" [, g. {- z" K) I
當初我把那個條件式看了三遍,都不覺得他有什麼錯3 j, a' ?$ N  p6 \
原來還有這麼深奧詭異的事XD
- \# c% p( C3 J9 @- V; D
" T" F0 _! w  D: C& e5 k' N錯誤發生前的確會有圖形沒顯示出來
  x2 i' O5 V( H不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
8 M' `3 x( i/ N) {% o1 m7 Z( z沒想到居然是詐屍了XD8 T4 F  Z! X; P2 n
9 h# Q  u& F( x( g6 U1 b  B' r
不曉得3.91有沒有修正這問題...; ^/ J7 L7 s. @$ M
不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。5 W) K$ i$ s# S# b* D

+ q7 ^6 H8 G' Z& U6 O2 h. S的确  h. G$ C! e5 {" }, l' t' e" z
用惯3.82之后想去整3.91觉得压力甚大..; F, r$ A2 g- G( {6 y6 N
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
14015
在线时间
22009 小时
注册时间
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”。2 f0 u) w! f9 B0 Y: ?) G2 [+ M

& r+ I0 B! e  I+ E% P' e然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2026-6-9 06:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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