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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
0 ?+ k5 A6 c. l1 ^$ S會在每隻事件怪物的腳下顯示3 Q' d, v- E& Y( e% t7 |
問題是不知道為什麼
: `" F! ]# J, X6 ]7 {. J& q有時打怪打一打會跳出, |# l5 s/ [; E9 T0 k# i" j$ ^
---------------------------& y/ g2 ?1 C% S
XAS
( Y5 E) t5 c; a1 |0 I---------------------------. l0 h7 P3 k% o1 a# t3 t$ ]
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
0 S2 |' u% f! U% ]# [$ E1 \& D( O: @3 g
disposed bitmap
# g3 l4 ~! W( ?; R7 a5 N2 B---------------------------: y" k4 q5 }- }; W8 X
確定   4 u( I7 Y# f/ g
---------------------------/ W: T! H( l: N

' W  D$ Q+ O* j3 O這是腳本
. r( N' F) R4 H9 F
" A1 r  |; Z8 N; N/ O& P
  1. #===============================================================================
    $ v8 A0 a: {4 y' e7 F
  2. # MOG - s Hud 1.0      . A# V& H* T$ G/ S8 Z# C
  3. #===============================================================================# {& w3 P  k' \" h  c: v
  4. # By Moghunter
    . I' N2 ?$ {) L
  5. # http://www.atelier-rgss.com* t% ?3 h" u' a# R4 C
  6. #===============================================================================! g! o# d8 i  A/ y
  7. # Translated by Calvin624
    3 ^9 M5 y3 i; Q; Y
  8. # http://www.xasabs.wordpress.com3 S4 M- S& h! Z' X2 b& R6 c
  9. #===============================================================================" ?5 i2 f! J4 @2 f  _
  10. ###############################-DESCRIPTION-####################################* [& ~0 d. j2 c2 ?9 p
  11. #===============================================================================! R% F* {. T2 c- e5 Y! c( w
  12. # Personal HUD – displays the HP and SP below the hero.$ h: k1 }2 t9 X1 e6 \1 I
  13. #===============================================================================2 V7 N& D% Z" P4 S4 J
  14. #  |; y5 z9 N4 D( [7 m( ~# R4 j
  15. # Graphics required:
      C9 a3 I: U# u6 z# }4 a  i
  16. # 5 q; y# |7 i4 t! k- b$ R. W/ t
  17. # S_Border_HP_Meter.png* k% L* s; x: i( l5 I; E! j/ }
  18. # S_Border_SP_Meter.png
    * Z& Y# T$ d6 l: c$ V, k& }! w- l- B
  19. # S_HP_Meter.png( U9 O# s) L3 M) }
  20. # S_SP_Meter.png
    $ p" F9 D- o* u
  21. #/ `/ p8 V0 p( X/ D9 X5 A& s
  22. # All images must be in the Windowskin folder., @" R' N2 }, I5 ]7 T
  23. #
    ) u& M% I$ ]. M* A: s9 R
  24. #===============================================================================
    ; m3 P  e5 n) Z% b% p
  25. module MOG0 B7 ~5 W% C5 K% M
  26. VISIBLE_DEF = false  
    9 b3 q2 y: _) [9 a+ a2 v' S
  27. # Show HP meter?
    2 _5 [; J" E. N6 \7 \
  28. HP_HUD = true, `, x( L/ W$ n  y% ?: j
  29. # Position of the HP border) ]3 u' w: C- T. ~3 R5 y0 M8 i
  30. S_BORDER_HP_METER_X = -23 `7 S' z. _. t4 j) A8 o
  31. S_BORDER_HP_METER_Y = -2  
    2 h# P1 s# n; ^6 t
  32. # Position of the HP meter4 S% e, z4 ]% j
  33. S_HP_METER_X = 0
    5 |2 C6 x  n  v3 ~" y
  34. S_HP_METER_Y = 0, d# S/ ~- o( E' V2 C% F
  35. # Show SP meter?
    / @  O  F, P- S0 ~" [  }. x8 y! S
  36. SP_HUD = true
    : |( a. |2 t2 l' w" |0 w
  37. # Position of the SP border$ p6 ]; ?0 @& }" ^3 r
  38. S_BORDER_SP_METER_X = 0
    ) h; _! L' H# f6 I& x0 N
  39. S_BORDER_SP_METER_Y = 10
    9 m. w3 k, G2 ^
  40. # Position of the SP meter
    , A) `' u6 f+ r  m% x
  41. S_SP_METER_X = 0- K2 H4 m' B8 b) ^
  42. S_SP_METER_Y = 107 D( w: _7 Q) _2 A& x. U
  43. # Switch to disable the HUD
    5 J- B) y2 ?" n* ]2 h  V
  44. DISABLE_SHUD_SWITCH = 5
    . n6 N# \' ?2 s, u
  45. RANGE = 20( o" D4 y- m/ c# _
  46. end
    8 u8 q; o, L8 B
  47. #===============================================================================
    - i5 R$ ]. i( i! `, ~1 e# Z
  48. # S Hud
      ?- x! O; o' A7 M; D
  49. #===============================================================================
    ) Q1 M, P+ D/ h' }1 R) `0 N; S
  50. class S_Hud < RPG::Sprite
    % l0 B2 p) a( f; c* }; k
  51.   include MOG
    4 F9 r7 I5 K  }( b1 R: T0 V
  52.   #--------------------------------------------------------------------------
    & L; {- e5 P# P
  53.   # * Initialize! Q6 @+ g5 {# n4 @
  54.   #--------------------------------------------------------------------------: D' ?( |! P9 B5 n: a: [' ~
  55.   def initialize(enemy,viewport)
    , L2 d6 ~$ N1 K1 w" B& K0 Y
  56.     super(viewport) 7 v' ]: l1 o" i" W' P& Y' u' c1 t
  57.     @enemy  = enemy4 L0 }6 v. U9 w! A  ~" W
  58.     @battler = @enemy.battler
    * }* I) R! I, `7 W4 ^! m, M; \3 X
  59.     @old_hp  = 05 Z2 V. E7 i4 T3 Q$ z/ S& q) L1 T
  60.     @old_sp  = 0
    ( e1 b) F7 T5 t& j: C* e0 v, @( Y
  61.     @old_vis = false
    6 s  d7 e6 l1 R3 k4 z( e' K
  62.     self.bitmap = Bitmap.new(100, 100)
    1 B/ u: L& h3 y! k6 B
  63.     self.visible = (VISIBLE_DEF)#false
    6 E6 v7 [% P, ^1 _
  64.     self.z = 1001 l1 G" E  l6 q8 d" {$ z+ _
  65.     #HP Border -------------------------------------------------------------------
    6 T$ p, H! |, B4 Q% W
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")( l/ K/ {. `* R! b3 c
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    . G5 `% m7 i9 h7 |. p
  68.     @layout_sprite = Sprite.new" ?* z6 s5 ^6 c$ l
  69.     @layout_sprite.bitmap = @layout_bitmap
    $ S2 w" ?1 C7 w7 W9 {& [
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)) w# R7 X( e' G
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      2 Y6 R; `/ Q% R+ V  O
  72.     @layout_sprite.z = 5001
    * q$ O7 h5 U2 A+ [" r- U/ A
  73.     #HP Meter ---------------------------------------------------
    ; {' Q! f  @& m, a9 p  Q
  74.     @hp_flow = 05 N# p% j6 F8 p
  75.     @hp_damage_flow = 0
    * D0 B! O- D. t0 H
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    ' T) {( }! E! z% J8 Y
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)5 S' \, ?' \( ^/ V3 c3 a
  78.     @hp_range = @hp_image.width / 3: l4 f. c  ~0 O$ Z1 v; ]& o
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  : s" E# T! O& I) m
  80.     @hp_width2 = @hp_range / 27 p3 L; h! w# k: n: c" \; e
  81.     @hp_height = @hp_image.height / 2. f, o3 ?. `2 P
  82.     @hp_width_old = @hp_width
    & A: I" `' I8 u3 m
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)+ x4 T* k6 S9 {: ~7 O( N
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) , V" L) l' ^; _6 U4 I3 q& N0 l
  85.     @hp_sprite = Sprite.new
    ' v% T! J7 |, i7 X9 o
  86.     @hp_sprite.bitmap = @hp_bitmap
    ! ~* C4 y5 [# J4 `' r% l" m
  87.     @hp_sprite.z = 5002
    % m. p: Q, |! `$ u
  88.     #SP Border -------------------------------------------------------------------
    % ?) ?# m0 Z9 `8 [
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    1 O* t$ U) y6 J  `. _
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    $ x0 H3 n$ |/ j7 G4 E, M! Y
  91.     @layout2_sprite = Sprite.new/ v3 C# B0 E- ]3 b; K
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    ! f, C% E0 ?0 R3 h6 U" B* z  S. L7 X
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)' Q5 l. N, r: K
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      4 d5 W  ?4 X0 K$ E7 z1 r: l
  95.     @layout2_sprite.z = 5001   
    , n  w" O/ o2 I1 i
  96.     #SP Meter ------------------------------------------------------
    . i, i% ~- m" u2 M2 L
  97.     @sp_flow = 0
      E, c' ~- b: r% i3 ], y
  98.     @sp_damage_flow = 0
    . D& E) ^& S' v
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    % e7 v& `6 W3 n+ k8 C9 z
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)8 z1 _0 K' @9 U0 M3 |# x
  101.     @sp_range = @sp_image.width / 31 S+ e% W/ H' y: Q" q7 O/ w' f
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  , j8 I* G" N$ D" B2 u* Q
  103.     @sp_width2 = @sp_range / 2- E# F& X! J, r0 Q# q4 U
  104.     @sp_height = @sp_image.height / 2
    5 `9 s1 v1 U( F' S2 p7 l
  105.     @sp_width_old = @sp_width, g  s) n6 L. f4 V
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    % S' O, b  K. ?
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    # D9 Z' g& j+ Q( |
  108.     @sp_sprite = Sprite.new
    2 c% ^/ x0 ]: A5 f
  109.     @sp_sprite.bitmap = @sp_bitmap
    $ f5 N- b6 o5 M- L4 X: t) M6 H4 S+ n
  110.     @sp_sprite.z = 5002
    " N& N& @- u3 ?: M3 i0 f" @- F
  111.     update
    . F) ]8 E, Q# ?* t+ d0 M
  112.   end& o! O' z) G; p! O9 u& U( e4 N) R
  113.   #--------------------------------------------------------------------------
    3 x: K; n! L* o- X" ~) `
  114.   # * Refresh
    ' `  Z5 R, H0 ]% x
  115.   #--------------------------------------------------------------------------
    # M* g; `1 K" T3 T: l
  116.   def refresh- T# g& J* T5 A( g6 k
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    ! e' O/ W7 N2 C  J: M
  118.     self.bitmap.clear7 c! h' m0 K) c1 w* S
  119.     @old_vis = self.visible
    6 R# M$ }. B' s/ }  z1 w, R% U$ V
  120.     @old_sp = @battler.sp
    - R( k0 n2 r$ y9 B3 L8 h) k% T
  121.     @old_hp = @battler.hp% D6 K5 `) c# A' u6 G. j0 U& r
  122.     hp_flow_update
    1 }8 U* J: c2 m/ d# j% |2 }
  123.     sp_flow_update* Y% a6 k& i/ [) Y
  124.     hud_pos_update
    % z  T6 L  U6 P2 |
  125.     visible_update
    8 Q. Z1 x% }- H, R/ G8 E# v! r
  126.   end
    - \; U: r+ G; e( Z6 P/ \( H
  127.   #--------------------------------------------------------------------------
    % _: T2 V9 F8 |# n1 t
  128.   # * Dispose
    ' b5 N1 ?( _1 D
  129.   #--------------------------------------------------------------------------
      Q' h" B$ x0 ~- b
  130.   def dispose  a# `1 i. U- @
  131.     #HP Meter Dispose% o- o  ?: P5 K- r: S4 A
  132.     @hp_sprite.bitmap.dispose7 O; `% C1 z2 U+ V6 Z
  133.     @hp_sprite.dispose
    , q: u$ u5 n6 F# \
  134.     @hp_bitmap.dispose
    0 s. {3 z3 A, b* w
  135.     #HP Border Dispose
    " L% H( O8 A7 r! l( o* U- m
  136.     @layout_sprite.bitmap.dispose( \0 U$ R4 A5 b. p% y
  137.     @layout_sprite.dispose6 Q9 l' ?7 G4 h; r& g" s' |
  138.     @layout_bitmap.dispose
    , A  \: {; i& _) e' d: E
  139.     #SP Meter Dispose
    8 H$ R  \0 O7 c- o* d) Q
  140.     @sp_sprite.bitmap.dispose
    + H, D4 e& X( Q4 m" ~* Z# U$ p3 D% t
  141.     @sp_sprite.dispose0 t1 G4 [; W$ D, T3 o8 {
  142.     @sp_bitmap.dispose- o* p( W3 [( J0 {
  143.     #SP Border Dispose
    ' w5 x* }; n2 v: I! O
  144.     @layout2_sprite.bitmap.dispose! W0 Z, f( ~8 ~  `, O  ?1 n
  145.     @layout2_sprite.dispose9 q# n, w* X3 Y( l" r; R9 h
  146.     @layout2_bitmap.dispose
    + u% z$ P" j0 `
  147.   end. D+ K& t1 o) g* N2 q; W9 a  ?! v" p- N
  148.   #--------------------------------------------------------------------------
    0 s. p9 ~) B7 A7 x
  149.   # * Update
    2 D  o/ Q! {( d8 [# E$ f7 |! X
  150.   #--------------------------------------------------------------------------! I# I) U: q5 Z. X& }& [1 D
  151.   def update* ^/ `0 q2 z9 J' g2 E: ?1 C
  152.      @battler = @enemy.battler
    8 r! g3 I9 P4 G2 S
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?9 x1 ?% ~1 R- X# z
  154.      if self.visible/ Y+ u; e9 z9 f) z/ c
  155.        refresh& H! K$ ]& a3 u4 N7 x0 n
  156.      else% r# k$ i, ?$ v& v6 E3 k
  157.        self.bitmap.clear# o0 ~3 W9 D+ {) h6 R1 P) ?. k
  158.      end# `' O3 _+ p; t" {
  159.   end
    ( Z! x" Y$ j$ ^/ s3 v
  160.   #--------------------------------------------------------------------------7 c" @( d1 {8 Y2 ~2 s2 M( G+ j
  161.   # * Visible Update
    - W( V: \% R: j6 v) M
  162.   #--------------------------------------------------------------------------1 X3 e# z+ ~# H+ W
  163.   def visible_update$ Z  A$ k9 H- F# \! G
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    7 b9 h4 B: t" A- A" x' `; B
  165.        @hp_sprite.visible = false
    & E6 x* e; m* ?6 w* n* d+ ]
  166.        @layout_sprite.visible = false
    7 G1 _' G( O2 i# K  M* y
  167.        @sp_sprite.visible = false" K" P4 F0 P  W: f5 o
  168.        @layout2_sprite.visible = false
    2 H2 {4 ?# Y( h/ p' C1 o% v. d
  169.     else' ^, \0 _0 i% v  W$ H3 ?3 D1 L& s
  170.        if HP_HUD == true
    : {5 d  f3 v' @0 \
  171.          @hp_sprite.visible = true% t' C6 N; ~8 u: f5 P7 m. b2 D5 A8 w
  172.          @layout_sprite.visible = true2 Y& n+ i- l3 D. i) x2 |+ F
  173.        else# y9 h$ [/ T  S$ a9 K/ j
  174.          @hp_sprite.visible = false
    + L$ x1 r) x$ `/ {
  175.          @layout_sprite.visible = false4 @% W' o# m0 T3 `/ X3 _% ~. R: c+ ?
  176.        end  
    % j4 J4 e. O" U1 \, N3 }- Z
  177.        if SP_HUD == true
    : [3 l, |" w9 y
  178.          @sp_sprite.visible = true
    , Q$ G! \$ Q' _# W3 M( w
  179.          @layout2_sprite.visible = true
    , y  o9 S4 T& N
  180.        else' I( F& S) [5 }0 q6 i
  181.          @sp_sprite.visible = false0 h5 O# M  t6 c- c9 ]# n
  182.          @layout2_sprite.visible = false
    ! i' a3 D. N, P& m& ?3 ~7 h4 k0 g/ P) o
  183.        end - ^* h/ F- M+ _5 u' z
  184.      end  " A7 X% r5 B. ?8 o2 ^5 ]: K6 h
  185.    end * w. T. b: F  c* `5 R7 x) J7 l
  186.   #--------------------------------------------------------------------------  Z% [0 P! O! W
  187.   # * Hud Pos Update
    ( \; T# r0 n1 {7 A: }3 s
  188.   #--------------------------------------------------------------------------
    $ z0 v# n, u' R0 V6 v
  189.   def hud_pos_update  P# J9 ]) b- W2 X& s) o
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    9 K7 V8 k1 b* a" X8 R( q' N5 V
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  7 \2 O" N6 \5 C8 m" ]
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
      d* o* z* e2 Q3 J6 u* q" _
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    " V- z; _$ C3 A0 m' r/ {: ^
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    4 ^( d% W; ]$ B3 R" N& q  S
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    ! e2 q: ^) ?2 U; d  B% a. U/ a; k
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    - k/ w) i. k  }& z8 k
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    5 e# {+ S+ s; d% ^+ o: X
  198.   end  
    7 E! ]* Z; @- v/ n
  199.   #--------------------------------------------------------------------------
    8 p$ O- Z+ X+ u" K  T* W7 |6 y
  200.   # * Hp Flow Update3 M; a& R" g, Y5 H6 i! p1 k
  201.   #--------------------------------------------------------------------------
    # W" I$ X3 f( \- Z6 h7 W: G8 _! F( `
  202.   def hp_flow_update6 B$ V; H# `- T4 N2 F0 x: k% }" M
  203.       @hp_sprite.bitmap.clear& ?+ B5 _& p: m" {7 r3 w
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    3 z% D) W% E1 G+ |
  205.           #HP Damage---------------------------------% p( n8 c' F6 f+ U
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    $ g- Q9 S  `. n
  207.           valor = 0.5 if valor < 1         
    $ u. p  ?( n: Y3 N0 X1 S
  208.           if @hp_width_old != @hp_width/ }8 G" _5 H" Z4 A- x
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  9 h1 d# M" I$ m% s
  210.           if @hp_width_old < @hp_width ' o7 n2 _4 s$ G" q; h1 O
  211.              @hp_width_old = @hp_width
    ( z6 D% f4 O! w
  212.           end      3 {6 r; g4 \; u1 p, |# P
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    ' h1 k& i% L$ z! f5 F! P5 m- k
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       ' Y& N; U( z2 X5 p
  215.           end        ; J6 O7 \; I+ J7 Z. F6 m2 l8 C
  216.       #HP Real------------------------------------6 h; ^) P- d( {; N/ C
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)3 L/ c* D1 _6 o1 c* {7 s
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          + r; Z- ]" N0 c: S/ e
  219.       @hp_flow += 2  
    7 L' W/ Y5 _3 [; @. H. @
  220.       if @hp_flow >= @hp_image.width - @hp_range
    6 F$ [4 e& ~$ V
  221.          @hp_flow = 0  
    ; i1 l3 P+ F3 v% @& `
  222.       end
    8 P: F4 C2 B# {8 X0 _  l4 e7 k) i
  223.   end    ; p  y" o6 A, {
  224.   #--------------------------------------------------------------------------
    " z; N3 l: f0 ^( N7 Y
  225.   # * Sp Flow Update
    " }, {7 o, w6 V  D
  226.   #--------------------------------------------------------------------------
    ) Y" X5 _) M2 z5 G
  227.   def sp_flow_update9 |4 e3 c" c1 V' W# r1 Y3 b
  228.       @sp_sprite.bitmap.clear8 n: @$ H/ b7 {8 j0 Q& H
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
      x. ~0 d" J, t8 X/ [
  230.           #SP Damage---------------------------------( N' e8 w/ ]2 o( s) h, V5 |
  231.           if @sp_width_old != @sp_width
    7 |/ @* X) Y6 x! Q( P# h( `9 S
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100# l3 q7 R$ ]7 c$ O6 j9 {+ k) k2 f! y
  233.           valor = 0.5 if valor < 1              ' }5 E# P$ }+ n! O
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    7 T$ p1 z5 W) h- S" ?
  235.           if @sp_width_old < @sp_width
    $ k0 D) P* M; ?: ?$ G
  236.              @sp_width_old = @sp_width
    $ V  U, Y: R( e0 }% }" j
  237.           end      + o! F  n7 W8 N
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    : r6 Z3 P) x& }5 a' z
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) ( \, G! V8 r1 |/ X1 _" C
  240.           end% w+ _; `9 O2 O1 l
  241.       #SP Real------------------------------------
    4 X* K- H8 ?8 s3 Z3 H/ q" q& @# K
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)3 a2 N+ l) p* Z4 ?' ]2 ~  o5 J7 F
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)) O' X# c* b' a+ ~0 E  t; B( g
  244.       @sp_flow += 1  
    - y; p6 D* t$ r' N( p
  245.       if @sp_flow >= @sp_image.width - @sp_range9 P  F1 y& l: j6 Z
  246.          @sp_flow = 0  
    $ \3 `# p8 U0 ]
  247.       end# D' T/ @" k$ `& |+ v. _! w. R! c
  248.     end            
      K( R  k( L6 L; V6 W9 o" w) n
  249.   end
    2 i; Z* C! C: X. e& w' U1 N
  250. #===============================================================================
    * J- q+ X, o6 {
  251. class Sprite_Character < RPG::Sprite
    - `9 k* m5 o* }4 u1 L  i8 J$ H6 g3 [
  252. #-------------------------------------------------------------------------------
    8 \5 I2 y% T7 O0 D. r
  253.   alias :xas_emini_hud_init :initialize: g! r# E; c" n& j& o
  254.   include MOG
    3 q" j& P: l7 ~* ?0 B. I
  255.   def initialize(viewport, character)) i  A9 K5 l# R4 y% g
  256.     xas_emini_hud_init(viewport, character)
    1 m' I+ n' ^) A( Z/ O- j5 d* f
  257.     @viewport = viewport% Z% K7 `7 P8 Z8 o0 A- D5 y
  258.     return if @character.battler.nil?
    8 t+ d3 u, ~/ Y8 U9 h) x* g
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)" g% X% a$ Q: C9 u
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)( K0 b2 T! {$ Q9 Z2 _$ ~% g
  261.     return if @character.battler.is_a?(Game_Actor)
    $ X) U* F) Z! o( u/ q
  262.     @bars = S_Hud.new(@character, @viewport)
    ( q9 J+ b( N1 p5 v; I
  263.   end
    2 T! f( e9 |& p! J5 @$ [. S
  264. #-------------------------------------------------------------------------------
    1 d: b; O6 b% P. {: ?' ~
  265.   alias :xas_emini_hud_up :update5 a, V; J" p2 D4 }2 m
  266.   def update
    9 w4 l  m* m4 G+ h; R
  267.     xas_emini_hud_up
    1 e* ~. {* K; [; |1 u
  268.     return if @bars.nil?9 H& z( v% |7 V! w/ U
  269.     return if @bars.disposed?, A" n, A: n& A4 p
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs+ o9 a3 S- Z" y6 F$ X  i+ j1 o5 F
  271.     @bars.visible = (dis <= RANGE)) p( j# K, t, u
  272.     if @bars.visible
    1 R- M2 ]  i( [+ t
  273.       @bars.x = @character.screen_x# - @cw / 4
    * }" ~, t' _3 x+ c
  274.       @bars.y = @character.screen_y# - @ch / 4
    4 J% D3 [! W# e; Q' j! u) q4 g1 Y" b
  275.     end/ H5 M+ W2 G9 D% `0 J1 D
  276.     @bars.update
    + g9 H3 C- J/ K2 b9 w% }/ i  Q
  277.   end( t# z7 n2 M' j* }/ t: J
  278. #-------------------------------------------------------------------------------
    # P4 r+ `3 w( V6 c' ?& F
  279.   def dispose4 |$ n% P/ Q5 w- M) k
  280.     super# f' I7 P: w. E0 b4 c
  281.     @bars.dispose if [email protected]?. l6 q6 Q& X: S0 y
  282.   end
    * ?) X. ]" _, j1 ~1 e
  283. end3 U) E" K: [2 x

  284. 9 M1 }" f5 N! F* [/ H/ F
  285. $mog_rgss_s_hud = true
复制代码

. x' {) B' W5 i1 C  }- J- ~" i$ K5 `% o% {; s' @* n5 [# N8 F
( p$ i4 p# c5 P; {' Y8 }1 Z
上面所說出錯的203行內容為
2 v$ I9 K. ?5 r( ~& O8 N+ k( h/ C@hp_sprite.bitmap.clear# J# a4 R: e, B# s: N# Q

6 }5 M- _2 }7 O想知道怎麼解決' B! `9 ^4 ?3 s) I! ^' H4 ^% j
: L0 L. A& V2 M+ G+ {- _% M
該腳本支持3.82: m) N; i& K. I9 j
, D2 u6 }. j( e/ ^
下面是圖檔,要塞在Windowskin下
. q) y2 [, z* W0 B9 h
: F: u. l: t% h" r0 k% ^ S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
! |3 t% S% F1 l: k$ j* N$ n3 ?2 h3 c$ b( @5 ~
- D  N. I' k' J8 [5 i2 H  p' p
  ]0 e) E: |3 G9 E

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

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。
' Z: u3 _4 K# \6 i  k
3 Q8 E2 D( ?# J然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
* Z8 R6 u1 t3 S. I5 U+ }
, R! \  r+ I7 L+ N2 D$ v' V, J; k的确
) v' Y1 B5 ^: `' u' M用惯3.82之后想去整3.91觉得压力甚大..6 F) W" S" J& |8 m5 A! N3 u$ m/ b
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
395
在线时间
1777 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
' N; @" _/ D* q8 o, `$game_map.events! `- W$ A& ~& o) g; r5 `- Q
嘛..这个数组吧..我在以前试写队友的时候关注过一点
# l8 G6 J' E: W7 k% o: N不知道XAS内部对它做了什么手脚还是 ...

6 ]1 V2 z) B( w7 J9 x' ^當初我把那個條件式看了三遍,都不覺得他有什麼錯
; G2 Z  z9 J# @3 y原來還有這麼深奧詭異的事XD2 ~* c! o0 A& N* E# ?
& p4 h& w) \6 m
錯誤發生前的確會有圖形沒顯示出來
& d. a+ k  b# Y1 D; a% a7 E' [不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
6 q; \- F# M) q8 o沒想到居然是詐屍了XD6 n& `2 }7 h$ w& ^3 L& l
2 D- Y& ]" h. w- L
不曉得3.91有沒有修正這問題...
/ g+ d! I" g# K. |' W不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events/ k9 S/ E# E4 y  }1 |3 e
嘛..这个数组吧..我在以前试写队友的时候关注过一点3 P  p/ w+ P- E; j% L- Z. W4 D2 K
不知道XAS内部对它做了什么手脚还是为啥,4 `9 |$ J, w: ~: O
总有那么一瞬间,没有被消灭的敌人事件也变成了nil
2 i: U! @! x+ h( q
2 ^8 R( f2 X7 X$game_map.events.values[@enemy.id].nil?
2 r0 W" b" E) x$ r* C; C; f因此自然而然的返回true并符合条件把图形释放掉了# c4 T2 Q% z1 O4 F

5 W0 L, S" F" R: P; ?3 s* E; `LZ应该有注意到吧,7 S$ Q; a* u& d% a  B
我测试的时候发现报错前几帧,图形会消失,
; m7 s  c) j* P* n8 e: @5 X  e2 ~( P) C应该就是“误以为敌人被消灭”了。& q( P! T0 E* w

! c$ J% f- @0 P" g; W受限于个人水平,至今无法找出$game_map.events的真相..  T) }, g" G0 D$ X) @
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
395
在线时间
1777 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 ! E- \! u; Q4 d# S
貌似是释放的条件不合适  X1 I. F6 m. Y$ W2 U" H$ |3 ]- G# p
结果尝试刷新了一个已经释放的图形
+ I% ?$ j* H9 E0 L, f+ ?" G
把後面那個條件弄掉後,的確沒問題了- ?' E/ x/ c/ W( E( W
目前從關頭打到關尾結束都沒再彈什麼錯誤
  w! o' M$ @* S1 w" m3 i, K* |非常感謝
- r3 C6 t9 |) h! L, @9 y% v$ \
6 d" P# u$ U, ^# |- y- q不過我是參照著別人腳本改的2 @; W! a) ~0 Z
他寫的條件式也是那樣,但我用他的沒什麼錯誤
( n# i- m" ]- M! x2 I9 u) }  B$ W不知道是怎麼回事
4 o/ d' g; F3 |: U/ Q( s6 M, J5 S是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
3 l- k5 z1 Q  E. N, o我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
: T6 b* l' N2 d, G' s结果尝试刷新了一个已经释放的图形/ t9 w! ~* o2 b7 y4 N4 P- T
, c+ C' ^: E; h3 K9 f" v

( Z  F+ }) b. w, z, u9 l
- [9 _' B9 M& D& T3 W3 g, G虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?; Y  U& R1 i( \# A8 i6 f! n
复制代码
不要后面那个条件貌似就没问题了。
% }# x+ p% {5 n' l2 F. O5 [
* O0 }+ l8 I4 @( W' W: N4 v9 F8 S
- r& r6 m9 h3 f) Z  }' D, G ' z0 s  ]* N7 P1 D; |; s3 [: w9 _

( e5 q6 {6 N$ h
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-6-15 08:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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