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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
- B% b4 g# W; Y) l" }會在每隻事件怪物的腳下顯示
  `. h' n' h9 D! A問題是不知道為什麼
; P1 Z' u  F6 n* U有時打怪打一打會跳出
1 n( J$ O8 S  J- l8 U) _7 R---------------------------! Y+ h' R' {$ D9 a2 ~
XAS
8 |0 U! |; L5 U---------------------------3 N& P( A6 K# Z
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
- n3 t+ w  m8 _0 d& B- _- G' X8 k' H  r# t& h) E: Q  ?8 y
disposed bitmap
2 Z! l- G3 ~0 k---------------------------
0 p% y& U; r/ s  A確定   
- D9 I3 |, s5 f+ i---------------------------
- v: p7 o- T- }" c) B% d9 s: j& R! r1 {  b
這是腳本
5 E- T) K1 ?) t& e7 i
% J# i+ `* c3 W1 r( |( @% ?( Q
  1. #===============================================================================7 t% K" G" M, h
  2. # MOG - s Hud 1.0      
    1 j7 M) s/ O1 U7 p' g3 g
  3. #===============================================================================2 p4 ]  R% {# f# Q: n0 ~
  4. # By Moghunter
    ( E1 c! W* r$ B+ |# U4 p& V
  5. # http://www.atelier-rgss.com
    . w( v- E+ Q% E$ O9 U0 ?
  6. #===============================================================================
    6 c6 k+ \/ _7 }; w! }4 G; B' K+ j. s* {
  7. # Translated by Calvin624 : T1 t' q- r' v% e  x
  8. # http://www.xasabs.wordpress.com
    : j) x+ K! X+ Z/ f3 Y; W
  9. #===============================================================================
    2 D, B% j: {% v: U+ ?
  10. ###############################-DESCRIPTION-####################################
    % P9 W5 _2 s8 p; ^* `" B
  11. #===============================================================================
    ; r0 s+ e" |' X1 N
  12. # Personal HUD – displays the HP and SP below the hero." L; n7 j# Y) _: {9 Z5 h  Q
  13. #===============================================================================
    9 a3 \; C& h7 @4 `. N" |0 L* u: U
  14. #
    4 ]( |, n# A$ f2 z0 r; L/ s+ G: Q" i
  15. # Graphics required:  ?( l0 m2 k3 H5 `8 p3 Q3 c1 j
  16. #
    ( W5 G& {" h6 V& S; |" B
  17. # S_Border_HP_Meter.png
    % Y6 \, B0 _! O* ]: a
  18. # S_Border_SP_Meter.png
      H$ y; u* X* E1 ?# n
  19. # S_HP_Meter.png
    3 e% @- _5 Z+ K
  20. # S_SP_Meter.png8 V* j/ W7 w) |' w0 m7 f; D
  21. #. P# p" s% k, U
  22. # All images must be in the Windowskin folder.
    " o! ^0 O) u; m, E9 M7 t4 e
  23. #+ B( h: L/ C  V
  24. #===============================================================================! v9 E: N1 i6 A& q( a
  25. module MOG3 R+ j! G# w! }, Q- V+ l  s
  26. VISIBLE_DEF = false  1 L/ h: M/ |$ v$ `' X
  27. # Show HP meter?7 g# o+ S- r  M% j( H
  28. HP_HUD = true
    * N" h* r  \! d5 _. y& t$ h
  29. # Position of the HP border
    ! \, z7 t, C$ `5 z& M9 G
  30. S_BORDER_HP_METER_X = -2" x. S: _' ]# L( s7 X
  31. S_BORDER_HP_METER_Y = -2  
    4 l; v+ Z6 g% l: [/ c8 n. R/ d, d1 c
  32. # Position of the HP meter5 i" K3 z+ P* R, v  F! S$ D" P
  33. S_HP_METER_X = 0. l" U0 {% q, b  ]2 a# j. d8 ~
  34. S_HP_METER_Y = 01 h+ S  {) w- X3 L  ~% i
  35. # Show SP meter?0 D, Q# [3 N! p3 Z) h/ v( F6 M7 n, u4 L
  36. SP_HUD = true8 c5 t1 l4 n$ _* o& t3 b: r6 v
  37. # Position of the SP border' q/ G8 i! X. B  N% x
  38. S_BORDER_SP_METER_X = 0# F4 P% B, v, C
  39. S_BORDER_SP_METER_Y = 10
    9 l4 e7 T& T' d: ^# z
  40. # Position of the SP meter
    " N4 a. \2 X8 M$ C" w+ R3 _
  41. S_SP_METER_X = 0# X& h1 f/ s5 a  x9 a( c
  42. S_SP_METER_Y = 10+ b) M) w' S- g! D3 W9 ^9 A
  43. # Switch to disable the HUD
    8 s# y. g; r" M# R: e
  44. DISABLE_SHUD_SWITCH = 5+ j, W6 O& l" G0 L) T* g
  45. RANGE = 200 B5 O: i9 p& j5 N6 n% u7 {
  46. end
      T" w3 g# p* c; R6 w  e$ ~0 F$ [
  47. #===============================================================================: R: ^( c$ L( v; t
  48. # S Hud* S+ z+ M; l  C1 o5 {. E3 N
  49. #===============================================================================( Z4 e9 b; u& g# S5 f; v8 z
  50. class S_Hud < RPG::Sprite
    - n& ^, @& v. _. z5 [
  51.   include MOG
    " z. w. z3 J. k+ v
  52.   #--------------------------------------------------------------------------( T! X* {# n: \
  53.   # * Initialize* p+ g! e" V/ R* g- D
  54.   #--------------------------------------------------------------------------" m  q) r8 A# L, ~
  55.   def initialize(enemy,viewport)
    7 F  Z0 f& l' ]4 f
  56.     super(viewport) " f8 d- g, S: R& X, D
  57.     @enemy  = enemy( X4 L9 G2 u/ Q/ W  F- N: {
  58.     @battler = @enemy.battler
    + i: c! [. j$ q( K- e9 h
  59.     @old_hp  = 0
    6 Y' {8 x7 B' F% N6 N# [" M9 @
  60.     @old_sp  = 0
      n3 l+ B4 }% c9 C9 D* k
  61.     @old_vis = false5 v; P2 C7 }1 J4 `' j! U7 r
  62.     self.bitmap = Bitmap.new(100, 100)
    * |! C' J1 a, P5 o; g
  63.     self.visible = (VISIBLE_DEF)#false1 m& J8 h+ S$ Z- m7 B- B( ~
  64.     self.z = 100
    3 I) Z9 G( J7 o) |
  65.     #HP Border -------------------------------------------------------------------
    6 F8 h8 N  s+ @1 \7 a& u
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")! b: D3 S- I( t$ ^1 I9 X* L
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    8 k! D" a8 ~) N
  68.     @layout_sprite = Sprite.new
    ( B& D1 o5 L* s+ a' `
  69.     @layout_sprite.bitmap = @layout_bitmap& q. ]1 D  K' J7 _- p* {
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    2 K2 q* u& L' R' _
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      6 r& N3 \% J" g* {9 N
  72.     @layout_sprite.z = 5001- {( l! s! C. J  [6 C
  73.     #HP Meter ---------------------------------------------------
    ( N1 C, h% n2 }" V
  74.     @hp_flow = 0' j9 b7 F5 Z- z! f
  75.     @hp_damage_flow = 0( t! b& x9 {- S& X" v( W: ]+ s* C% y
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")$ F* Y" p$ u' d. g
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    1 T) m* a* n" {( _: ?* H# h0 {, g
  78.     @hp_range = @hp_image.width / 30 S# r' V; R0 [! v5 B
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    6 V4 m3 Y( L$ }
  80.     @hp_width2 = @hp_range / 2
    " E9 }: b" ]& L$ a+ C
  81.     @hp_height = @hp_image.height / 2
    5 q  v2 u3 L% F  t4 [& B" |. k
  82.     @hp_width_old = @hp_width
    ; k+ \/ @6 I0 x) j3 M
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    / a( ]: D% G! A3 i) C; _
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    4 o  r4 s5 V& p1 b$ K7 l
  85.     @hp_sprite = Sprite.new
    1 A# P; L# M+ y' O% i8 i; R
  86.     @hp_sprite.bitmap = @hp_bitmap$ }7 i9 T; P( |, r  _
  87.     @hp_sprite.z = 5002
    ) ]/ A: j1 x0 n, M: P
  88.     #SP Border -------------------------------------------------------------------: Z! l! A! Y! x
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    * B, A; S# f$ c/ `; d7 V$ a
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    $ l% O8 ~7 z9 \& u' k# b: n
  91.     @layout2_sprite = Sprite.new( k1 B4 H2 P  A1 c
  92.     @layout2_sprite.bitmap = @layout2_bitmap/ _0 }6 V$ c: }; O+ j( j
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)! w; C) z" k5 T9 B6 u& b3 I7 D
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    7 v1 t, Y$ s; j6 E
  95.     @layout2_sprite.z = 5001      U- c- B5 ?* g3 L( g+ e
  96.     #SP Meter ------------------------------------------------------
    ( m7 `/ W' _! \) ?' ^
  97.     @sp_flow = 0
    - X, t! ~7 R) B: {/ A
  98.     @sp_damage_flow = 0. v( {6 q1 Q9 j, b
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")3 `  [2 W- c3 s% D
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height); E$ @1 |5 H/ x: y
  101.     @sp_range = @sp_image.width / 3! Q: b6 B- ]' |) [( D
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    : V2 w( x5 G; u
  103.     @sp_width2 = @sp_range / 2
    / T( @6 p' `! G1 f9 [0 ?2 x+ U& ]
  104.     @sp_height = @sp_image.height / 22 m$ ?7 c' `% J! [' S) y, D
  105.     @sp_width_old = @sp_width
    7 }/ A/ a, X4 c4 B! [! M: p4 q
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)& M  O8 `* j- T3 w* ?% c' S
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    % J5 S& d' E$ W
  108.     @sp_sprite = Sprite.new/ M* y( B; ], Q& a3 X4 s
  109.     @sp_sprite.bitmap = @sp_bitmap2 N% w6 O, f% Q! {: ?& M3 ~2 o
  110.     @sp_sprite.z = 5002
    4 Y2 B) q5 r& O7 R- o  I- b( F1 ^
  111.     update- t; u5 M, _7 H  ~/ S: x
  112.   end! t! T- t  P: l% l
  113.   #--------------------------------------------------------------------------3 `6 l# c; a, }: |, {7 {$ q
  114.   # * Refresh3 t- @4 y  D* S$ k* G- }& ]
  115.   #--------------------------------------------------------------------------
    7 S& ]$ f5 M+ n1 l7 t
  116.   def refresh
    / ^% `5 W7 O' Q
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible4 k# ]: }7 E: w2 w4 ?& ?, {
  118.     self.bitmap.clear  g5 c: G& T! ], @2 V( R
  119.     @old_vis = self.visible: u. D5 a2 N' Y! H6 k1 i
  120.     @old_sp = @battler.sp: H; z* B. v2 r
  121.     @old_hp = @battler.hp# u: ]5 @. y; n2 [
  122.     hp_flow_update
    & q, E+ E) h2 H: V/ |: s3 z
  123.     sp_flow_update! ^9 @8 f: n+ y* V$ T: R
  124.     hud_pos_update4 T- [! j- \; K& B9 U& c, H) `
  125.     visible_update3 Z3 B- K4 z; \
  126.   end* G5 V6 e1 u% e6 p" ~; [+ {9 _
  127.   #--------------------------------------------------------------------------
    / G5 b% \$ ^6 r% S% }& {& X. j
  128.   # * Dispose8 ~& g) U/ p! O+ S; J, Z
  129.   #--------------------------------------------------------------------------
    3 _. b; J7 l  ]+ y- s2 O
  130.   def dispose
    4 a$ f& t, h9 {3 F' S. E
  131.     #HP Meter Dispose
    3 g* m; p" z7 r7 c& M7 R; g) ^6 \
  132.     @hp_sprite.bitmap.dispose* Z2 o4 ?. J( c5 `( W8 u
  133.     @hp_sprite.dispose
    * \  ]) r1 G2 L1 t
  134.     @hp_bitmap.dispose
    . c8 I% L7 Y& P, M- o3 \
  135.     #HP Border Dispose
    % Z9 u/ u1 n8 y, e
  136.     @layout_sprite.bitmap.dispose
    $ K0 s) p6 c. j* b% F
  137.     @layout_sprite.dispose. L1 t4 r$ H7 C4 h& N4 Y( N, Y
  138.     @layout_bitmap.dispose
    0 i# q$ }% C( M1 S: j
  139.     #SP Meter Dispose; {- _, ]+ a' M, o% [) E
  140.     @sp_sprite.bitmap.dispose
    2 Y+ M: s* G7 z8 }5 O
  141.     @sp_sprite.dispose% e8 L& G. o5 r0 e( c3 n- s. v
  142.     @sp_bitmap.dispose
    & K2 v/ z) [- S. h1 f
  143.     #SP Border Dispose
    9 b+ y4 N. P1 z( P
  144.     @layout2_sprite.bitmap.dispose
    ' P3 I6 K3 s# R- \% [
  145.     @layout2_sprite.dispose  _/ X# r. J# I" e% E
  146.     @layout2_bitmap.dispose! X3 x& E: W& Q, X2 H* e+ T; E$ d
  147.   end
    9 e$ D4 v- P1 [4 s" L
  148.   #--------------------------------------------------------------------------* m0 I4 a- \4 ?; T' F/ z; G
  149.   # * Update
    ; k# \' ?  A( H/ g) F
  150.   #--------------------------------------------------------------------------' t7 Y' j5 x2 o* L' R; h) C% j
  151.   def update5 z0 x" u% A$ U3 M! @
  152.      @battler = @enemy.battler 3 R* ]: ^7 z& j& b4 ?# F+ p0 L* j
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?% s. A+ {+ e2 M# q  `% X# K
  154.      if self.visible
    5 Z2 R7 q+ f! q% G0 W( o
  155.        refresh0 c" s8 m7 J' x7 V+ _
  156.      else
    4 H- f3 T" `9 i$ k
  157.        self.bitmap.clear# ]  E, A/ b. F; L! L. s
  158.      end
    * K1 Q1 ^) A2 e" f
  159.   end
    - K% b7 H  T0 \0 R
  160.   #--------------------------------------------------------------------------
      Y" w" p% G; H4 I1 ?
  161.   # * Visible Update( z6 s3 b% _$ C
  162.   #--------------------------------------------------------------------------
    ) f- t* C  i0 I1 m& f5 f
  163.   def visible_update
    $ ~! V! a  |8 o. Y- M; G
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true& L- F9 e: F8 g
  165.        @hp_sprite.visible = false
    9 R( E6 W, M+ \, {) p) o6 m( x
  166.        @layout_sprite.visible = false0 S- u1 T* \2 X, U: y3 i
  167.        @sp_sprite.visible = false* b( N2 e! C3 p" N: r4 k' f
  168.        @layout2_sprite.visible = false4 |5 j* E! F9 l7 H+ G5 I
  169.     else2 h8 J* n8 }. A! k; v! z" T  @
  170.        if HP_HUD == true
    ( J# J1 d* D" p' f3 I4 B  d8 A
  171.          @hp_sprite.visible = true
    3 w) P4 ]- v1 U. c3 A, z5 M, _
  172.          @layout_sprite.visible = true- a2 l8 o% u8 n* W8 ^$ }
  173.        else
    $ D4 V4 Q% `. q; R& }9 o+ k- K
  174.          @hp_sprite.visible = false
    + P4 N$ @: r- W) C  m  k7 b) [  l
  175.          @layout_sprite.visible = false- Z) n5 z1 k; H) k
  176.        end    D8 w( {3 G( ?
  177.        if SP_HUD == true9 n) ^0 B8 H5 s
  178.          @sp_sprite.visible = true/ m9 f0 ~) m( u
  179.          @layout2_sprite.visible = true
    ! B" T1 I9 R( o+ v+ {
  180.        else! V% n! J( s5 M
  181.          @sp_sprite.visible = false1 E' m% g4 x  j( }* p, n' R
  182.          @layout2_sprite.visible = false
    ' L  H* K: `  X6 U
  183.        end
    " J/ o- T% Y" g+ K- n
  184.      end  
    . g8 i: F5 r6 b6 _3 _6 |. m2 H
  185.    end
    " A' O" |, P  b1 X. |
  186.   #--------------------------------------------------------------------------* z4 |7 P9 l7 {$ I' Q3 t
  187.   # * Hud Pos Update
      o% I/ x8 a9 }7 {( h& e$ m
  188.   #--------------------------------------------------------------------------% ^. Z! M, a$ K% @) U2 E+ a
  189.   def hud_pos_update( @* r* z+ f" `7 ^! c7 u
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X3 i  e% s/ U. w( k% T
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  4 s+ Q9 N  e% M: m
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X8 F* W# W; q5 W# b
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y 1 z# [2 \  L1 y: A7 l
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X( ?& s7 `1 d4 K1 w8 R0 b& p
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  # f4 U% [" F6 x
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    : n9 A" G8 W$ G  {! o  p
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     6 C, F" J; R' u& x
  198.   end  
    9 o2 |& S- n# N4 Z. ?; ]
  199.   #--------------------------------------------------------------------------
    3 S1 N1 ]: y7 D# A: S
  200.   # * Hp Flow Update
    9 \  v2 j$ Y% _& M" @
  201.   #--------------------------------------------------------------------------
      C, `& F9 Q3 `% t7 B
  202.   def hp_flow_update
    . n% p% e/ s6 g' Y
  203.       @hp_sprite.bitmap.clear
    , D. q% D. a; K
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    ) o$ K2 j& r' U
  205.           #HP Damage---------------------------------* d/ W" C- J( F" L; O3 P1 u4 Q
  206.           valor = (@hp_width_old - @hp_width) * 3 / 1008 X  e- ]$ X8 a8 M( A
  207.           valor = 0.5 if valor < 1          ; B% X' B2 y0 h' q/ Y
  208.           if @hp_width_old != @hp_width0 Z: ^" [9 c* @4 W
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    - M5 n/ n/ X4 G! w; N5 [* p
  210.           if @hp_width_old < @hp_width
    " |  Q/ V) S, i0 A3 j# Z
  211.              @hp_width_old = @hp_width
    ; k" ?8 G' b; Q! v5 ~$ t
  212.           end      6 ]9 {; }& W  m- M1 H4 g) p
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    * k, [+ N$ m4 b& r2 l; f
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    8 |2 z* ~; `0 ^# v7 A
  215.           end        
    8 ]* X+ p5 q4 U# H9 L- S
  216.       #HP Real------------------------------------
    $ m& r: U0 d6 `3 L2 q
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)7 J4 N* ^8 j$ d% v
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          9 E* K+ X! X; F; k, U/ L  a
  219.       @hp_flow += 2  3 C( h! b- d! B. D8 `/ g3 g
  220.       if @hp_flow >= @hp_image.width - @hp_range, e3 L! S8 g2 a2 V, f
  221.          @hp_flow = 0  , @9 C; \& z( ?- w& E7 Y, Y: R& O% B3 X
  222.       end
    * W8 o% I9 T( [9 W4 C3 c6 w
  223.   end    & ?6 S$ G  h) @* F
  224.   #--------------------------------------------------------------------------' v0 h# r# R$ x4 K, F! Q: Q* w& Y
  225.   # * Sp Flow Update
    0 {7 Q  ~. P- p2 S4 Y7 J3 _" N
  226.   #--------------------------------------------------------------------------& @7 c8 |& E1 M+ e$ p7 _& [
  227.   def sp_flow_update
    " V- m/ W. e4 \+ G. E. t; f
  228.       @sp_sprite.bitmap.clear
    ; ?- T* B# F( M" S+ {
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp 5 C8 ?3 A* U6 b0 n$ Q5 x: ?
  230.           #SP Damage---------------------------------6 x0 s1 X7 R+ w9 J' C& X, ?8 x! X1 {
  231.           if @sp_width_old != @sp_width& K, F& e6 T4 g  q( _: l+ W
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    ( q7 E4 V, i5 F4 F+ H" i* k. N& a
  233.           valor = 0.5 if valor < 1              
    4 j* F$ ~. S9 D. G  G% U
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  8 |9 y" A4 K( p0 }8 U& C
  235.           if @sp_width_old < @sp_width
    6 K5 G5 x" R1 h7 E& o
  236.              @sp_width_old = @sp_width
    * a* D+ e( D6 r" `: K% `
  237.           end      ! K3 i  d+ |6 v/ R
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    # Z* S  B5 J! M- {# b
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) 3 H) f  {' j) M' N8 l/ J% Y4 O
  240.           end  B1 \; }! \+ H
  241.       #SP Real------------------------------------
    + \0 x& V4 v! J* y
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)$ [2 e6 T) X$ @
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    " V6 v% U* M, h* n3 E( p; s  D
  244.       @sp_flow += 1  ; U0 \) q4 X1 Q: Z* K& y( J0 r, s
  245.       if @sp_flow >= @sp_image.width - @sp_range# M: V8 \4 n" o. R; }( S3 @
  246.          @sp_flow = 0  
    4 d" a6 i+ A' e! A- t; V
  247.       end" i; _0 z  f8 p. O* w
  248.     end            . ^9 g2 ^, e8 ~/ Q1 n( p
  249.   end
    1 C+ i* V4 z: f. D* B
  250. #===============================================================================0 E8 t1 `# P8 R: y$ y; F4 O$ U  C
  251. class Sprite_Character < RPG::Sprite
    , g0 T) \9 U4 W2 H; c: k9 C$ D
  252. #-------------------------------------------------------------------------------6 O( U& W# j/ _. h+ U
  253.   alias :xas_emini_hud_init :initialize# ^( B; t; y7 k# |% |, h4 p
  254.   include MOG
    3 Q9 K$ P5 J; ~+ n) x  P
  255.   def initialize(viewport, character)
    4 ^1 P# d( _  k8 f
  256.     xas_emini_hud_init(viewport, character); G) v7 [/ w( z1 Z5 ^
  257.     @viewport = viewport" r! {7 r* u7 Q7 k% K
  258.     return if @character.battler.nil?6 I' t; C. S5 V
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)* [( L1 A1 d& c; M6 @$ O/ {
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)$ s5 I# j) W9 ?3 r4 q9 R. C  \' K* H
  261.     return if @character.battler.is_a?(Game_Actor)2 Y5 ?, g  j- r  H
  262.     @bars = S_Hud.new(@character, @viewport)5 k2 b) ]" V; Q- `6 y* I
  263.   end
    ) m# {9 |) @3 w: b+ g6 R
  264. #-------------------------------------------------------------------------------9 ]+ g9 U% \. P4 F/ H# Q
  265.   alias :xas_emini_hud_up :update' D9 Z2 e8 Z2 J3 V
  266.   def update9 ?0 I7 V5 p" K
  267.     xas_emini_hud_up/ k' N. Q8 I; ^1 T* E) t) `3 G# Q
  268.     return if @bars.nil?
    6 I( w5 ]  [/ _/ e7 j( }8 }4 J+ w
  269.     return if @bars.disposed?
    * `" o) [& q/ u! ~* _
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    ! A" R0 c3 F, E& N
  271.     @bars.visible = (dis <= RANGE)
    * o  j& e0 `/ X; C, f% n2 F
  272.     if @bars.visible
    3 _! B/ N6 U: E4 x0 w' I. T
  273.       @bars.x = @character.screen_x# - @cw / 4
    # }* {4 |# Z2 G5 A& U  Z( u( C
  274.       @bars.y = @character.screen_y# - @ch / 4
    / j/ l0 h6 w# G# d
  275.     end4 G+ b. F; D3 S  S3 Y3 n9 Y
  276.     @bars.update) f" p* L( _4 e+ ^' Q8 H0 b
  277.   end0 R  t. P: z$ g! W
  278. #-------------------------------------------------------------------------------+ [5 N% g% \! H0 B$ |8 ^
  279.   def dispose
    ( R9 [7 @$ `2 Y4 A! r
  280.     super
    + i1 m/ T+ N1 w9 G. ^9 ^
  281.     @bars.dispose if [email protected]?2 n, K! K  Y4 [3 Q1 {# m! I
  282.   end" x$ T- b" r$ D
  283. end
    # z3 w, r. m* g# {2 c+ }  w" t
  284. + H, W$ U. o9 c: M: ]$ X7 D
  285. $mog_rgss_s_hud = true
复制代码

9 v) Q; e; I( a' V# W- k+ t+ ^: [4 [: q, p  S
- a6 ?6 I( d( J1 D) b8 |- |
上面所說出錯的203行內容為
+ |7 o" M% m/ I) T" ~@hp_sprite.bitmap.clear+ v: u  L2 h/ @# H2 U

$ U( C# z# j9 i+ d想知道怎麼解決
/ G+ ]4 m) e8 B1 y4 Y2 d! J% h1 t. g3 X
該腳本支持3.823 D. Y" b' w# o/ N: f: f

9 ?" X, v' w% r& P# j. j3 [; `下面是圖檔,要塞在Windowskin下
& Q5 w# p# `' U- o
& D8 K, @  q) E4 i' o S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) ! d; A# N9 T& e; u2 z0 s' t

5 D2 z1 ^4 _4 j5 C9 \4 Z1 H# D7 N6 `0 x* R/ w0 K9 |

" Q( J2 x6 ?: k' x

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
' i( u) K) C1 \+ y6 X# k结果尝试刷新了一个已经释放的图形
! A+ \8 K7 E5 f5 p1 F/ Q" U0 d9 {- f) Y  y& f1 k" @" c4 }
9 T9 D" d( F- Z0 _
4 L3 p; U) P6 j0 m$ }% i5 l
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    " G, a: y3 t' u3 t- o: l( E$ `
复制代码
不要后面那个条件貌似就没问题了。% o5 i; c( i6 g! x3 F$ f
% @( B* {; d; |7 O( N8 i1 Y2 v' B4 U
- {5 U0 y; ?2 B2 h; ~& B. t; H5 i
6 z1 w8 J9 _# v* u
/ h) v2 }  J' B
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
: n7 L# f% m; y: b6 E& K6 z貌似是释放的条件不合适' {5 r( Y/ v  f% [2 ?; p
结果尝试刷新了一个已经释放的图形
+ q8 i( K! ?  h
把後面那個條件弄掉後,的確沒問題了
# C% x9 }" |$ O- c  i0 X, y3 ^" h目前從關頭打到關尾結束都沒再彈什麼錯誤% K' I" q3 Q+ L- u# _4 C9 z
非常感謝
8 R! H: W  Q, Q8 V* }. C7 P8 |' \. c; J
不過我是參照著別人腳本改的5 a' g  ^6 K0 a4 R/ w  u
他寫的條件式也是那樣,但我用他的沒什麼錯誤& ?. r7 o5 D  Z) G! o* ~1 Z
不知道是怎麼回事
- A) x" |. C+ k" @是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的. U8 C' e# p  R0 a) l
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
( n& y' I7 I7 }0 B& D. V嘛..这个数组吧..我在以前试写队友的时候关注过一点
( C8 g2 s8 i9 d不知道XAS内部对它做了什么手脚还是为啥,
7 u) d5 K- F+ ?  s总有那么一瞬间,没有被消灭的敌人事件也变成了nil  p+ F8 ]6 r0 n6 V) h
" G% r2 O$ z1 j! c
$game_map.events.values[@enemy.id].nil?
/ ]; }& g+ ^! e5 u2 n因此自然而然的返回true并符合条件把图形释放掉了
- H9 Z$ [4 X8 s2 w& v' F: X# F! c" {' l: j3 Y
LZ应该有注意到吧,1 b6 s4 O8 C% Z+ N* n8 g! Y* x& f
我测试的时候发现报错前几帧,图形会消失,
1 I6 f/ U! T. _& H  ]应该就是“误以为敌人被消灭”了。& C) l9 l- `- ]4 _' i) l2 r# n

8 g# h% H, }- N* X# N+ T7 J受限于个人水平,至今无法找出$game_map.events的真相..
( \& c5 E6 A# ^" i1 D1 S
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
80
在线时间
1730 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
0 V/ Z# i. x; K5 s1 ]+ [$game_map.events/ o% ~1 ]8 d( e; z
嘛..这个数组吧..我在以前试写队友的时候关注过一点: C1 E6 g3 R" T( `4 L& _' I
不知道XAS内部对它做了什么手脚还是 ...

9 ]6 c! K% A5 W3 P6 l+ ]" r當初我把那個條件式看了三遍,都不覺得他有什麼錯- s! J7 r" p& g; e  c, m
原來還有這麼深奧詭異的事XD9 ]! g2 Z3 ]) ]& U1 y
1 H5 T( c; _% ^# d  [
錯誤發生前的確會有圖形沒顯示出來# K4 x; h9 D6 ]
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
4 F5 _  }( |, Q# c沒想到居然是詐屍了XD* ?$ l9 J" y8 R# U

- v! |: Z+ v% q5 R, u不曉得3.91有沒有修正這問題...$ ~( k' B! m: [  E
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
2 s- n: b1 G1 `
5 g9 p7 n' R" [5 G% _的确# f' n) U' p, S. m2 e
用惯3.82之后想去整3.91觉得压力甚大..
# d% x- M+ P4 a9 Z2 o1 V干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。) H! T6 V7 c& B
% k2 m% o" v1 I% w/ I- ^, O
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-2-20 04:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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