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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條. r! x9 E( j4 e  P% v
會在每隻事件怪物的腳下顯示
" U9 ^0 g9 H3 @0 J問題是不知道為什麼0 y& _2 D- `: q
有時打怪打一打會跳出; ]3 k- J" c& d" s' R
---------------------------
  B; e/ _/ T1 o" |6 \* a. O7 {1 ?' WXAS
& s% a) n5 d( M0 Z---------------------------: |9 c8 F1 a, b1 j6 l3 W
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。. ]* r+ o& h/ @( ~5 a2 `* a/ |0 U  }

2 l+ s+ g6 X3 K: E7 n' D! t4 Hdisposed bitmap# `; M9 }: z( C* `% @! {
---------------------------
- K; ^) ^! ~: Y. ?% v5 c確定   
# Z5 h- \, z; J" s8 `/ V---------------------------! A% y1 z4 N( v2 j# \' o  ?
1 A; `0 s- b# V# |
這是腳本
+ K, o. s2 o$ v7 C; U' I0 l0 u
" @! w( v( z" S. U3 `
  1. #===============================================================================8 T  g2 G1 w6 f0 b4 K
  2. # MOG - s Hud 1.0      - @1 Z" B8 a5 W: e  G  K+ J, J( v
  3. #===============================================================================
    8 y8 F1 _+ n0 b9 O" ]3 u
  4. # By Moghunter . f9 ]7 D6 P4 j+ {4 M1 D
  5. # http://www.atelier-rgss.com( K/ i! b8 I  H/ q
  6. #===============================================================================  I) Q! Y( H  m" r8 {$ V7 c% v' [6 D
  7. # Translated by Calvin624
    $ L* t% X2 @9 X; o4 f
  8. # http://www.xasabs.wordpress.com  a3 J& F7 Y" Z$ e6 `+ l# ]2 Q$ y  O
  9. #===============================================================================( A; A0 ^% ~$ N. e! _" q
  10. ###############################-DESCRIPTION-####################################
    1 ?) p" I* G) y+ {. T# h  @0 A
  11. #===============================================================================
    . J( K2 f5 k  I* G) D
  12. # Personal HUD – displays the HP and SP below the hero.
    + _4 m  X7 f$ X" A; k# q5 Z
  13. #===============================================================================3 K) |) a4 [) O3 [4 Z
  14. #
    . L) A/ G5 c  {$ C# h6 d& {& q
  15. # Graphics required:
    2 a- t4 R! f$ k1 Q4 x# U
  16. # % d. g' }# @, L" ^9 w: @
  17. # S_Border_HP_Meter.png
    1 R1 O" _* y1 d, Q. U
  18. # S_Border_SP_Meter.png
    . {7 U" w4 r# v# W5 l
  19. # S_HP_Meter.png
    9 T6 V) W6 X, s2 A) s. \
  20. # S_SP_Meter.png
    1 z7 ?2 s7 U% V& G
  21. #
    , C) O' @! L  z5 J7 y; S+ L
  22. # All images must be in the Windowskin folder.: R* r/ ~6 v* U* j  G7 \" F5 |
  23. #6 N) L! v) _- p# l1 f
  24. #===============================================================================$ c) x" _- N; @) n) M- R
  25. module MOG
    ! D# S$ L+ m8 m
  26. VISIBLE_DEF = false  
    , |: g" D  \4 \/ m* W
  27. # Show HP meter?2 s! V0 ?  e4 I0 `2 B4 o8 N
  28. HP_HUD = true1 a7 I$ Q  E( ]" q; }0 t
  29. # Position of the HP border
    6 x' s+ M1 r$ {! i
  30. S_BORDER_HP_METER_X = -2
    ! d1 R, o8 f0 Z
  31. S_BORDER_HP_METER_Y = -2  9 l1 }- V! x& w2 [
  32. # Position of the HP meter( y- a# D8 O  ?* c9 D6 u
  33. S_HP_METER_X = 0
    5 z$ g6 O& v) D. ^+ p' q: I
  34. S_HP_METER_Y = 0
    " k  m. a7 e% b
  35. # Show SP meter?
    4 s. Z6 G% O2 Y+ u- j5 H4 h
  36. SP_HUD = true
    % @$ t7 m0 D+ m* x: z
  37. # Position of the SP border8 [& ]) E! o; D  u0 Y
  38. S_BORDER_SP_METER_X = 0
    + r+ K8 ?$ B( F( `: M
  39. S_BORDER_SP_METER_Y = 10
    + C5 b7 R& b& I3 ?% T3 d3 b* \& f
  40. # Position of the SP meter
    , B5 ^2 O7 C* Y5 U- i" G
  41. S_SP_METER_X = 07 t. Y% H+ B2 w. g* ]4 E
  42. S_SP_METER_Y = 10
    $ |) Z7 \5 K: {' ?6 ~9 M( o  d
  43. # Switch to disable the HUD
    % s; W7 o1 ~( l; `3 ^* y! S5 W
  44. DISABLE_SHUD_SWITCH = 53 B! E  |5 V. f1 R7 z' X
  45. RANGE = 200 k5 ~. j0 J+ w1 D# S
  46. end+ g! N9 g+ ?( ^- t" ~" {! L% B
  47. #===============================================================================) [# M" r" G) {) `* H& k- G
  48. # S Hud
    ! A/ _# d0 @1 M8 x$ k1 N
  49. #===============================================================================
    - R3 q' }8 X& }, r- G( j2 A: @
  50. class S_Hud < RPG::Sprite( P, O! t! D, l
  51.   include MOG
    ) q' {3 j1 E% P" y% \7 @, k$ ^/ [
  52.   #--------------------------------------------------------------------------
    7 I) R! |: p! H) [
  53.   # * Initialize
    % K6 c' C) j- t1 @& Q7 J' I
  54.   #--------------------------------------------------------------------------
    : D0 X* V) y2 X$ X9 \6 u, `
  55.   def initialize(enemy,viewport)( W! U- r1 b# U' r8 Q! ^, @, N& h
  56.     super(viewport) " \0 ]. K' Z- J) r% s9 g
  57.     @enemy  = enemy- p+ f4 K2 Z) f9 T4 ^
  58.     @battler = @enemy.battler
    $ D& D4 u3 T8 [; W4 a( ?' f, y' g2 R
  59.     @old_hp  = 0
    9 p. ^5 p! U# |! U, c; I
  60.     @old_sp  = 0- u* J8 Y6 L& n: D/ r7 o% l
  61.     @old_vis = false+ h0 n3 {9 c% ?
  62.     self.bitmap = Bitmap.new(100, 100)
    ; [1 n' X, k& P/ v
  63.     self.visible = (VISIBLE_DEF)#false
    & j. l" [' r2 _
  64.     self.z = 100
    + |1 @6 Q( N# z. N5 V4 x, i5 v5 G
  65.     #HP Border -------------------------------------------------------------------6 P& w1 _% s; }2 H) m  O9 q
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")4 C# o1 X5 U. I3 N! ~
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)  {/ @8 P" b+ @! a  `& ?
  68.     @layout_sprite = Sprite.new& W4 H, H9 w/ q( z7 @8 ?7 _7 \, g/ x% `
  69.     @layout_sprite.bitmap = @layout_bitmap
    ' H5 I* f7 Y+ M( P
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    ; U8 R4 s1 s( y
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      ' q( u7 z: |6 {4 s$ A9 }& h
  72.     @layout_sprite.z = 5001
    % k1 M* U3 M# C( R( ]5 r; v
  73.     #HP Meter ---------------------------------------------------. v! D' ~( ^8 w% }' Z
  74.     @hp_flow = 0' y2 d& C4 B7 c, N' K
  75.     @hp_damage_flow = 0
    + q5 T5 {8 l1 a3 H6 p: f, f
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    # d2 g. x' |, v
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    ' }& W" N: L3 l
  78.     @hp_range = @hp_image.width / 3- R$ X! p! K, {! M2 Z* a+ P4 f
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  ! J, b5 I7 P" k* E# ?% {
  80.     @hp_width2 = @hp_range / 2
    5 i# m9 U) t* Z! W! W
  81.     @hp_height = @hp_image.height / 2
    % v+ L7 H4 Y4 P  d8 U' O
  82.     @hp_width_old = @hp_width
    2 s* y$ g& ~: e$ p
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    0 E. d# b8 z. @' s" J/ K$ K4 R
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    9 l4 f* @. r* C* ~0 {+ V+ H; ]
  85.     @hp_sprite = Sprite.new: u. ~. C1 E5 d6 _
  86.     @hp_sprite.bitmap = @hp_bitmap: |6 n& p! Y' M' ^9 x
  87.     @hp_sprite.z = 50022 U0 P  o& W  |; {2 D
  88.     #SP Border -------------------------------------------------------------------
    $ h% O- l+ z; g  X
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")8 H; s9 w8 k0 R2 L  G
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    # A- ?6 n, `- t; u9 [
  91.     @layout2_sprite = Sprite.new
    2 e) u& w- d; L( K, `" ^
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    0 A% X4 y' O+ t. m2 Q( z
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)4 ~" T( X& i$ c5 j
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      ' E" b& m! Q& T" X
  95.     @layout2_sprite.z = 5001   
    4 s1 l5 }6 n& E0 c2 n3 I
  96.     #SP Meter ------------------------------------------------------
    7 K. r6 N& t/ `9 R9 E8 u
  97.     @sp_flow = 0& V8 W/ x$ U, w- I5 b
  98.     @sp_damage_flow = 0/ {  R7 H  `3 t! {' P: D7 e2 B
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter"). ~* i9 ^! s3 b3 Q- A8 S2 Y5 C! v
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)8 f: V4 W5 U: T: t7 h; H# g9 c6 g, l
  101.     @sp_range = @sp_image.width / 3, s' R9 z8 u7 c: w/ n" |! r/ Z- k
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    7 f8 \9 F: Q8 |1 ~6 e
  103.     @sp_width2 = @sp_range / 2+ R0 k; g/ f3 Y& x/ j
  104.     @sp_height = @sp_image.height / 2. C+ t) M; T6 h4 \: x+ y' \0 c
  105.     @sp_width_old = @sp_width
    0 m0 M  r3 i% w  Y4 v% ], v4 n
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)) o- c! o# A5 K. k0 ~# V
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    7 z9 w9 z+ D% `/ ?  H
  108.     @sp_sprite = Sprite.new
    2 P: z5 f/ z; r% z: [, b" X
  109.     @sp_sprite.bitmap = @sp_bitmap
    9 b! G* t4 A- X3 T7 [6 a8 g
  110.     @sp_sprite.z = 5002
    / }. w( j$ u/ ]- V: F! C
  111.     update
    + x3 I! H, t4 A- O6 E
  112.   end
    4 j/ m' W/ |" H' u8 j
  113.   #--------------------------------------------------------------------------
    2 ^* I7 R+ a4 k7 F
  114.   # * Refresh% r5 D# t  \7 m1 g, n! o. r3 o
  115.   #--------------------------------------------------------------------------, @8 Z& }& Z; c9 l
  116.   def refresh4 P. ?& H7 T1 n. {3 c/ [
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible1 t* z. X. a5 i5 V( n! q7 x+ E
  118.     self.bitmap.clear, Q5 y# ]- j/ Q$ k* i3 h% v- j2 H7 c
  119.     @old_vis = self.visible$ T6 `; k3 Q& n! @. X3 m0 V
  120.     @old_sp = @battler.sp
    - d- F: N+ A' S( }2 a  ]# s7 n9 a! A
  121.     @old_hp = @battler.hp
    6 h) D. d9 ^8 R+ P, N3 P
  122.     hp_flow_update
    2 ]+ h$ K# k* E4 @- y& ~
  123.     sp_flow_update
    ' c, v% t4 K! }& l& g! L
  124.     hud_pos_update
    : K3 A3 S1 U' s
  125.     visible_update2 U* h" I  V6 v' s6 J; r
  126.   end; ^# L! E9 f- P
  127.   #--------------------------------------------------------------------------
    * F/ B0 ~% |% f5 G  u5 i; p
  128.   # * Dispose' d! ~' V( |: r7 L
  129.   #--------------------------------------------------------------------------
    7 X) R( Q$ p- }! |* X" Q6 z
  130.   def dispose
    ' d  n3 t4 p0 E2 \& h4 J
  131.     #HP Meter Dispose. v& w- Q1 x4 M
  132.     @hp_sprite.bitmap.dispose
    / ~. E) i/ K) _, F1 U
  133.     @hp_sprite.dispose# T$ P; {2 {% s( a9 N  H2 @
  134.     @hp_bitmap.dispose! N- d' m9 T% e9 a- l( ^
  135.     #HP Border Dispose
    9 z4 C. I# C. T& V
  136.     @layout_sprite.bitmap.dispose0 F# x+ r4 y" G# x0 M
  137.     @layout_sprite.dispose
    6 _4 [- ]2 ?4 ^2 q- T; d6 V
  138.     @layout_bitmap.dispose$ k' G1 p0 B" }% z) Q2 e
  139.     #SP Meter Dispose
    ( E3 e! h1 B: W4 L: J
  140.     @sp_sprite.bitmap.dispose
    / x9 b! @# |8 m4 S3 W
  141.     @sp_sprite.dispose" f* U2 I; s& N! r% R5 Z
  142.     @sp_bitmap.dispose& }" Y+ d: d' b7 l6 r
  143.     #SP Border Dispose2 r! R  B( l0 V$ [- M" _4 r
  144.     @layout2_sprite.bitmap.dispose
      R* f: J2 y) n& O" s, b& n
  145.     @layout2_sprite.dispose
    1 H  E& `2 G* Y$ e9 S5 q, E% d
  146.     @layout2_bitmap.dispose
    : m1 g, `7 K- a" E  A$ f
  147.   end  U# {4 a+ ^. f' d
  148.   #--------------------------------------------------------------------------
    . C, ]  I2 j! s4 ~9 W8 D; E( O
  149.   # * Update  Z- C# @9 r6 x2 G) G0 b' _
  150.   #--------------------------------------------------------------------------" ], G7 d, Y9 u$ r* v
  151.   def update
    , U8 N1 K/ G& X
  152.      @battler = @enemy.battler
    . b' g# ^+ r; m" t; D! t
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    : f4 I, N4 Y; X2 Z
  154.      if self.visible" m! u# F, S$ ^, r
  155.        refresh6 h- \" a/ d6 v" C6 r. H
  156.      else
    ( D" ^, ^. F+ `' v4 ?
  157.        self.bitmap.clear
    " \8 ?" b2 W1 n% a$ [
  158.      end& M9 ?- [7 Q. B+ d. O
  159.   end
    : ?' U# e3 r( b5 ~' L3 }
  160.   #--------------------------------------------------------------------------
    ; J' j6 Z$ M  q, l4 q2 r! N
  161.   # * Visible Update
    & H: Y) a' n  @: H' l7 S
  162.   #--------------------------------------------------------------------------
    7 ^4 |0 W# ~9 l: A
  163.   def visible_update% C( E% m* S; K  f8 w
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true2 E; q9 ?; J# U
  165.        @hp_sprite.visible = false
    % k/ \9 s. `* M( \* P; j
  166.        @layout_sprite.visible = false
    * o( c2 e% B  `' p( H, W6 ^1 y
  167.        @sp_sprite.visible = false
    - `1 _$ l) o  M* I3 Z+ |
  168.        @layout2_sprite.visible = false
    / |- y+ u- d" R7 Y+ k% u+ L8 k
  169.     else
    1 z! J# @6 Q( _+ A2 I* G
  170.        if HP_HUD == true# z. o& ?; C& u
  171.          @hp_sprite.visible = true
    1 `( N* u. x' c6 h4 Z' G4 C8 Y' ]
  172.          @layout_sprite.visible = true
    . N3 E* D7 D  s
  173.        else
    / W2 M8 \: V  Q4 k
  174.          @hp_sprite.visible = false# ~8 v2 n8 a2 m3 S8 E
  175.          @layout_sprite.visible = false
    , A9 H* `& D, e! @+ j. c
  176.        end  
    + s. Q$ G1 D! g# {% A
  177.        if SP_HUD == true
    + h! k5 C7 b5 t4 K) w7 J
  178.          @sp_sprite.visible = true5 D  p& i6 T9 U5 n* S" p
  179.          @layout2_sprite.visible = true
    7 {  }, i  Q# t4 b1 Y/ ]
  180.        else
    . ]( t0 }% T. M" B# L
  181.          @sp_sprite.visible = false; \" i& f, S: S
  182.          @layout2_sprite.visible = false4 ]4 Z8 }5 B) v7 E
  183.        end
    ! `6 R9 y/ K3 K+ Z. @- N& c
  184.      end  - Z# `- k5 z; D! c9 `& R# H6 B
  185.    end
    8 O& p! Y- I' F; [' v* {" L
  186.   #--------------------------------------------------------------------------- @. J! x7 I7 }
  187.   # * Hud Pos Update- q) w/ d( g  l
  188.   #--------------------------------------------------------------------------, s+ n+ d8 o: i; w
  189.   def hud_pos_update$ k+ D7 k; O% ^9 B
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    . L' m1 U( N& F% [
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    * }& w" a, H7 v$ G& M
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X1 |5 ?' [& g, Q+ r# p# Q
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    ! F( o. b" D$ S9 z/ h2 F
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    $ q- v! u, j$ r& Q
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    3 U0 a( j, z2 S- Q
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    9 a. m. Y2 w) `6 X* L! C8 q
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     + l4 l- i; j5 B
  198.   end  " h& v: E) W8 o6 t1 a
  199.   #--------------------------------------------------------------------------9 K" [. j* I) r; w
  200.   # * Hp Flow Update2 ^7 ?, C1 H3 }! M1 v3 K3 v
  201.   #--------------------------------------------------------------------------
    - H5 G# |( c7 b% g# ?. n
  202.   def hp_flow_update3 i* g8 f6 W1 M/ N7 A8 j
  203.       @hp_sprite.bitmap.clear
    " h2 i0 r7 K2 Y
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  % B' w) X0 y; t% g8 p$ E$ ~8 p# c' S
  205.           #HP Damage---------------------------------" t+ e( V$ @* [: D9 M
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    # h1 V& L! n- V$ @+ q' n
  207.           valor = 0.5 if valor < 1          - {8 q0 W& G  y, K$ Z* t, }
  208.           if @hp_width_old != @hp_width
    6 F; ], \! _: `0 }& |& `
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    1 Z! o, a" M) c
  210.           if @hp_width_old < @hp_width 5 @0 S: Q& I2 v* W  V; }
  211.              @hp_width_old = @hp_width
    - h% C1 Q! J1 d1 K
  212.           end      
    4 H) T2 w$ Z1 T3 {% a( `
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)8 Z5 N* T) V. v* ~* @0 P
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       0 S( R" @' Q* p( H
  215.           end        
    % S3 O$ j2 [2 h  V
  216.       #HP Real------------------------------------
    : V* H: E9 J# @3 x. l/ a% d* {
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    / T. b1 x5 e2 @; J5 j4 M
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    , s2 e. J- L5 t, h( Z
  219.       @hp_flow += 2  8 Q2 b% \* z/ Z" i
  220.       if @hp_flow >= @hp_image.width - @hp_range
    - ~- b& }- B* h8 C( D5 ?8 p
  221.          @hp_flow = 0  
    1 y  T/ f2 h4 R& Y6 z
  222.       end. q/ T7 K6 y0 c1 j) m
  223.   end   
    & K5 x) }/ b8 s" f
  224.   #--------------------------------------------------------------------------+ |9 z$ }; z& ?
  225.   # * Sp Flow Update
    7 |, ?! Q, f: X! O
  226.   #--------------------------------------------------------------------------
    ! a, M  K- C2 C3 I
  227.   def sp_flow_update
      @0 [. V# l+ M+ M
  228.       @sp_sprite.bitmap.clear# H1 M; E  W  _& X" @9 Y
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    " u! J3 h2 D! a" u1 @
  230.           #SP Damage---------------------------------) c! J& T* P7 I9 e% p
  231.           if @sp_width_old != @sp_width
    + H- N- `/ G* }, p! f  }1 x$ p) f
  232.           valor = (@sp_width_old - @sp_width) * 3 / 1006 Z/ P" G+ }# d4 W' H
  233.           valor = 0.5 if valor < 1              
    1 j; U, }; `4 c
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    + S0 C) {  }  A3 t/ ^6 i- u
  235.           if @sp_width_old < @sp_width
    1 ?' ?. {* y: O9 Y: G' f+ A! J
  236.              @sp_width_old = @sp_width5 c6 j# \4 _6 C, L
  237.           end      
    ; G# O: v: O; A
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)2 ?% c  r# M% q
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    ; |$ [4 m2 i5 R8 `1 ^4 z2 {/ j
  240.           end( G- F( G) K( N, N4 q7 U( B
  241.       #SP Real------------------------------------
    $ m, P/ w, ^& I  o# }2 J
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    9 S/ \' {5 }" k- H; }$ R5 N  V
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    : ~: C0 X: d( O
  244.       @sp_flow += 1  
    * D5 B1 p" ^7 E) G
  245.       if @sp_flow >= @sp_image.width - @sp_range
      U+ G$ `# F( |3 T+ C2 g9 P
  246.          @sp_flow = 0  
    , p' _. J4 \' F  M8 h% ~
  247.       end
    $ M" l" j, Y: q* V4 S* w, S
  248.     end            
    . A/ }" Q) Y  F% H3 E8 g! t
  249.   end
    2 ?* _7 e8 j# {5 E- M/ z
  250. #===============================================================================+ r  M1 t  h; I6 C
  251. class Sprite_Character < RPG::Sprite
    # d. ^$ C+ s8 D7 Z% ?$ Z# C
  252. #-------------------------------------------------------------------------------
    $ o" W! J" G7 |0 E5 l
  253.   alias :xas_emini_hud_init :initialize6 K6 o2 Y9 `' y0 X; h$ r% T! J
  254.   include MOG1 i7 w. @$ ]4 B: W) [3 h
  255.   def initialize(viewport, character)
    6 G% J' J7 V' x  L
  256.     xas_emini_hud_init(viewport, character)% o* L4 B% o9 X- V0 c! Q8 w4 G: J$ w
  257.     @viewport = viewport
      G- m% j4 `, u4 F* S
  258.     return if @character.battler.nil?/ A8 D3 ?4 o. n! Y) o6 u* c* L
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)% i, q* X3 N: ~5 R2 {8 }
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    1 L, m. `1 [6 M$ q4 f1 b% B0 P
  261.     return if @character.battler.is_a?(Game_Actor)4 Y( Y: ^6 r) e) d9 u6 T& ?
  262.     @bars = S_Hud.new(@character, @viewport)& K. c1 m& C, b! ?" y
  263.   end
    0 q& G) [( U' f, @$ f
  264. #-------------------------------------------------------------------------------/ `& b+ e( @7 y! s3 J
  265.   alias :xas_emini_hud_up :update
    7 t" `, \: o; _
  266.   def update2 I- C4 B8 D6 A
  267.     xas_emini_hud_up
    7 |; `- q. w, \6 D- q
  268.     return if @bars.nil?' q  k3 F0 O2 R
  269.     return if @bars.disposed?
    $ X1 A8 n& q+ A# q- z
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    . F2 |! U4 i* w5 o4 ~
  271.     @bars.visible = (dis <= RANGE): }& V1 d) N( B6 h8 W7 H* X4 G9 i- H% x
  272.     if @bars.visible
    ; E& U) h3 ?" G! E* s6 V9 @
  273.       @bars.x = @character.screen_x# - @cw / 4. }5 D; y. w. j3 t* S
  274.       @bars.y = @character.screen_y# - @ch / 4
    ; k) h* [6 r% t  L* L
  275.     end
    2 p' p# p) k, y2 b, P: j7 ~- j
  276.     @bars.update* E1 G. X! W" Y# g# A6 N
  277.   end
    ' `/ ~% @+ z: c5 a2 {1 X6 S* a; _* z
  278. #-------------------------------------------------------------------------------; }5 q5 Z2 E  Y" Q; L
  279.   def dispose
      u) i1 i  r+ N6 q, Y* W
  280.     super
    1 s5 B: H8 V) X, f
  281.     @bars.dispose if [email protected]?: [, \8 d! @/ f$ }* O; p
  282.   end/ |2 q4 h* E: M
  283. end
    % j) b/ t: T  k3 B% d  O
  284.   l% d( ]% k* p3 B  v+ x$ @
  285. $mog_rgss_s_hud = true
复制代码
, ?- J' I& z; o
  W4 W0 H3 Z  \2 w
8 ?5 Q9 `  i# P  l- H9 m
上面所說出錯的203行內容為
, F6 ~. f4 i7 P7 x5 m* a@hp_sprite.bitmap.clear
8 y' q0 F$ \8 }8 M' i9 f/ {9 j2 o; W, s
想知道怎麼解決& ]- Z$ h4 [7 _8 l0 D' w' v
0 G& f) ~: j, C) V. _/ R0 m9 t+ M
該腳本支持3.82
9 X6 F* E. o" w' Z
5 O' b9 {3 T  x2 I8 R$ m; X下面是圖檔,要塞在Windowskin下
# u* u' r7 s6 D
, G+ y! Z9 C/ C) Y: y4 n S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) + t: m& T5 y# d# X2 C$ U, x, y
' P8 b: H# g% `. `) O
6 _3 F6 M2 @; H# H$ d0 Q
1 M, `/ @; c; t7 ]2 ~; _4 j

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适+ @' R- C1 F' F0 f+ e4 D* L' \0 V
结果尝试刷新了一个已经释放的图形4 M/ }! {# E' B& ^

6 d8 O2 H1 O1 y, {9 l) L  n# z0 d0 k/ S. X9 |. J. o2 [0 D
) m! |3 g* g2 N4 K' B/ I- _' ?
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?& y( X4 c; k9 U+ B. u2 t2 n
复制代码
不要后面那个条件貌似就没问题了。; W; e+ _' s  R6 M+ U
3 s: p7 h9 Z& E) M3 R

- u/ t$ @( z5 @8 Z5 W8 n  i- _
( Y/ h( Z/ m/ ~, n6 f, f( I* q
) b- d1 e/ e: _
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
380
在线时间
1772 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
* s- m+ [* P; _! Q! n- O貌似是释放的条件不合适
) t5 o1 z+ r2 \- q7 {* s1 Z结果尝试刷新了一个已经释放的图形
0 m! \6 y$ s8 O" l1 |+ n' w
把後面那個條件弄掉後,的確沒問題了& Y1 J7 v; [  f( T% U
目前從關頭打到關尾結束都沒再彈什麼錯誤! U) k$ M0 I8 C+ S0 r
非常感謝
* l/ x( {1 q5 |' a" }  j& }
: J& b" {2 `, w$ t( i3 L不過我是參照著別人腳本改的  Z7 u& d: c" [* i2 r9 I
他寫的條件式也是那樣,但我用他的沒什麼錯誤
- n" p7 c( D7 Y3 Q4 u不知道是怎麼回事6 I4 b3 u! T0 M( ]2 P" {6 V
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
! h( |+ F: V& R我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
; j; b' t  o7 @  v$ T1 A2 s) u嘛..这个数组吧..我在以前试写队友的时候关注过一点' f( p% H6 O4 s+ ^+ S7 {
不知道XAS内部对它做了什么手脚还是为啥,
. R$ Q9 `. |2 H- {. b: t总有那么一瞬间,没有被消灭的敌人事件也变成了nil
! P% J4 I" H, w/ ^* f% Z1 d% O9 Y9 j
$game_map.events.values[@enemy.id].nil?
$ x8 ?/ R" U0 S) v2 H因此自然而然的返回true并符合条件把图形释放掉了
) D) {1 f2 |* P' i* a" A4 K% U$ l0 B
LZ应该有注意到吧,' S# ]4 u3 L& T# J* E
我测试的时候发现报错前几帧,图形会消失,( y0 D+ L% s* f. z
应该就是“误以为敌人被消灭”了。9 \. F$ A4 F( s* H. e

! b6 v" F+ }5 q' M6 k) D4 j受限于个人水平,至今无法找出$game_map.events的真相..8 t; b! x/ K7 V. A; [
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
380
在线时间
1772 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
2 q# h9 L! V! A' S5 E! r& o$game_map.events6 j) y5 \+ Q2 Z& V! M
嘛..这个数组吧..我在以前试写队友的时候关注过一点
' n% Q# K5 ?( H9 W) L- @1 @; x不知道XAS内部对它做了什么手脚还是 ...
2 V' {% C& N2 X
當初我把那個條件式看了三遍,都不覺得他有什麼錯
7 I( @5 D# N. w; s) s2 X, g2 r原來還有這麼深奧詭異的事XD( G/ K8 \* F* R0 k1 ^

+ D$ G# H8 n4 A3 q錯誤發生前的確會有圖形沒顯示出來
+ I) C* h9 h1 C2 Y6 m3 g1 a* g1 K* C不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
! d, P# t& O- {: c沒想到居然是詐屍了XD  |$ E7 A- P: s1 Y: ?
7 v% e2 v# P2 f4 ]1 b
不曉得3.91有沒有修正這問題...0 T: `# E) ?  M5 Y
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。3 b. P( g$ C7 U& p1 }
: |  \0 J* Q) o+ W
的确3 M) N9 H! @' U' {6 A1 ~
用惯3.82之后想去整3.91觉得压力甚大..
1 y! q( b) J- Q* [" k$ S干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

使用道具 举报

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。5 o  Z( R: P5 V5 J

) ?# H  Y6 |, P* a9 N7 V2 N' }% ^( }然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-6-10 21:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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