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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條# K! E1 v- f2 Q2 m, \  w1 u
會在每隻事件怪物的腳下顯示
5 E$ g* x8 W# u+ e, ~( T, |問題是不知道為什麼3 Y/ P* H) A( X5 [4 z
有時打怪打一打會跳出6 x+ i3 o$ L5 R+ n. a* c
---------------------------4 H! n8 Q1 z! o) F) n" [; j
XAS
" V4 r# G- X) a* s' P3 x; u" _/ L! q---------------------------
* ~2 n1 ~$ i4 z脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。! }/ }- ~& J1 S: n/ R6 u

# y7 k) Z1 S. i. d! ~4 Udisposed bitmap
5 U' l: i% c3 T" c---------------------------3 j+ K- Y+ ~" L/ D- R( u: U, @' b
確定   
. C5 `0 w2 [/ ?6 `; b$ q---------------------------
$ N( }9 B) n" `2 X# x( @( @& X; p3 G8 `9 t" _. X
這是腳本
  u0 T* k* u0 `) c! p* B- u- G8 F8 U. J7 E. B9 F
  1. #===============================================================================
    " f5 N  I1 g+ `/ H, U, m& X6 k9 q
  2. # MOG - s Hud 1.0      + n# e: b$ C% ~9 b) A
  3. #===============================================================================( I& G  p# b% d3 i' p
  4. # By Moghunter
    ! R: F8 K# k2 V
  5. # http://www.atelier-rgss.com# y% J& M# g3 ?  }+ Q- T
  6. #===============================================================================
    $ y4 s0 u. k8 j9 L0 c& L% F$ A' T# x
  7. # Translated by Calvin624 % p, L* N& e+ J# o
  8. # http://www.xasabs.wordpress.com
    - z1 g' U3 Q7 A9 n
  9. #===============================================================================
    " Q1 q( O9 L$ A) z2 e$ g2 f
  10. ###############################-DESCRIPTION-####################################
    # {$ h9 X: M4 f, A# E, X/ f3 Z
  11. #===============================================================================
    + i3 e# E1 {: N8 J) C  R
  12. # Personal HUD – displays the HP and SP below the hero.
    3 X5 v, G" m, [  `: ]
  13. #===============================================================================2 h5 S! C4 G- \( h% Q7 {5 V
  14. #; \) ~# s- n4 k$ ?
  15. # Graphics required:
    3 ]& y# Q& j/ a% K( |
  16. # ' \+ }+ p; R! f- r
  17. # S_Border_HP_Meter.png
    ! T4 E# s6 z+ D) I6 D: r6 b
  18. # S_Border_SP_Meter.png
    7 a0 l8 X3 R, W# Z- ?" D
  19. # S_HP_Meter.png
    2 G5 W5 u' m' o0 H2 u& }8 b9 |7 R
  20. # S_SP_Meter.png
    / G2 ]- W% ^1 N, s
  21. #0 A6 _+ B5 c$ _: E
  22. # All images must be in the Windowskin folder.
    $ b' W7 H3 ?! Q: Q7 W0 k" c, B6 g# {
  23. #0 ~+ ?+ S. m. T  j
  24. #===============================================================================$ b6 m, B) Q' H: g8 L1 s
  25. module MOG' n; [. O7 @$ w) G3 e( w9 ^/ T6 u; m
  26. VISIBLE_DEF = false  
    ' n8 r/ J8 Z$ \5 H9 h% A' h
  27. # Show HP meter?
    ! s+ e# y! p7 E' x8 i
  28. HP_HUD = true
    ; Y4 T% [" K1 v, J9 T. p
  29. # Position of the HP border# v+ C) o% `# s% ]$ I) k6 u& B
  30. S_BORDER_HP_METER_X = -2% N' E1 S0 r9 }5 g- W5 L- ~' o, P
  31. S_BORDER_HP_METER_Y = -2  ) o3 v1 V0 X( t- O
  32. # Position of the HP meter
    ' _, _1 m% o: G5 [4 w% \& v+ F
  33. S_HP_METER_X = 0" A" c: b* o; R9 E+ P- V2 Q0 J$ F. t8 C
  34. S_HP_METER_Y = 0+ h' C- l2 d; t  t  V
  35. # Show SP meter?
    ( q6 d6 `+ z7 _) |
  36. SP_HUD = true7 `0 C; r  y- _9 f1 v8 `
  37. # Position of the SP border9 U( [% x' P7 X, T8 g, q% R
  38. S_BORDER_SP_METER_X = 0! d1 J' N8 c9 M2 `) {% P
  39. S_BORDER_SP_METER_Y = 10 $ v8 z7 f5 o# Y+ `9 k3 N# k
  40. # Position of the SP meter' x) ?# i2 R6 @4 q
  41. S_SP_METER_X = 0! u: `% `" H- S0 ?) a$ W7 B
  42. S_SP_METER_Y = 10! X, O- h* H  o/ O5 L" J4 g6 j
  43. # Switch to disable the HUD
    8 `6 e* l) Y8 }' v3 Y# u
  44. DISABLE_SHUD_SWITCH = 54 X2 {. s% g5 b# _' \0 z3 K) J
  45. RANGE = 20) C  z1 J' V+ K# T
  46. end
    " v. A# h$ v+ S1 I+ _/ p
  47. #===============================================================================
    9 w, F% l) p# d) Y0 V" \7 S/ `" B
  48. # S Hud& e, k& U8 Y* V3 R1 w7 j1 M
  49. #===============================================================================- \+ {6 \9 X7 O3 Y9 i8 D
  50. class S_Hud < RPG::Sprite
    , L7 F3 r5 k9 i
  51.   include MOG' ?# J& [6 r9 t! N3 L  e: D/ q
  52.   #--------------------------------------------------------------------------6 z2 h" H3 C- m+ ?/ p3 E/ Y8 j
  53.   # * Initialize8 i, \1 x0 Z$ B- u1 z3 t! @
  54.   #--------------------------------------------------------------------------
    , g; r" G. o- t8 w9 T2 q3 p
  55.   def initialize(enemy,viewport)2 L, h, z7 R. W! @# y9 q* K
  56.     super(viewport)
    4 Q# G; w. W' D2 L/ ~3 `8 e, Z
  57.     @enemy  = enemy
    : I0 T7 K+ ]7 }$ |
  58.     @battler = @enemy.battler* `/ X' T$ H4 c9 D. m8 \
  59.     @old_hp  = 07 x8 `, t- \; J
  60.     @old_sp  = 0" [7 T& g/ `" X
  61.     @old_vis = false. g; c6 \" H/ v3 M4 n# t
  62.     self.bitmap = Bitmap.new(100, 100)9 Z( e2 m9 A$ ~0 ~* O$ L4 V2 c
  63.     self.visible = (VISIBLE_DEF)#false
    0 N4 R# C5 J3 D: b
  64.     self.z = 100
    5 A8 K$ l  r* X# `+ k# n
  65.     #HP Border -------------------------------------------------------------------8 |0 z) w0 u- p1 t9 J' F% S6 c
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter"). d$ [% w: Y* Q& U% \
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    1 M5 U6 k1 V3 h' `
  68.     @layout_sprite = Sprite.new6 y4 P2 s( J) M; S
  69.     @layout_sprite.bitmap = @layout_bitmap$ [8 |8 e" L) T0 z+ f
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height); S+ W( q: c& Z/ K& {
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    " ^% t. K; x9 F
  72.     @layout_sprite.z = 5001
    9 Z9 n" K  S3 d9 ]+ J7 L* [
  73.     #HP Meter ---------------------------------------------------
    5 b& ?: j. l* x# g3 b  S, W
  74.     @hp_flow = 0- y8 {. H+ Z% m; G: R
  75.     @hp_damage_flow = 0
    - I( L9 t% g& G
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    , h) {7 \, H: P& m( \# i) F
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)  k! U4 Y& R* q7 O7 ]7 l
  78.     @hp_range = @hp_image.width / 3+ P  K+ J/ s* f6 n% J
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    - x- Q7 y2 g: y$ u! q: }* [
  80.     @hp_width2 = @hp_range / 2
    + o! V" \. j$ G3 _2 y! O
  81.     @hp_height = @hp_image.height / 2, O8 ]* n9 N  L8 a0 y0 ~6 q
  82.     @hp_width_old = @hp_width
    5 [: V# S! h5 @5 [
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height), e& u: _7 s) E& U9 X4 X
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) ( b! j$ X9 k6 x6 D
  85.     @hp_sprite = Sprite.new
    ) u) `$ L) S0 [) G, D, z0 ?2 ?
  86.     @hp_sprite.bitmap = @hp_bitmap# C8 S+ Y, P2 @$ T
  87.     @hp_sprite.z = 5002
    ' y7 h; {- O: I4 g& n8 V9 i; R
  88.     #SP Border -------------------------------------------------------------------5 b6 r) i1 t' J1 g. T! \: M
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")% M8 h& Y+ I1 m& w1 j" o, @5 D
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)6 n2 ~5 q1 N1 s- x
  91.     @layout2_sprite = Sprite.new
    * [! |( W+ S1 c: M
  92.     @layout2_sprite.bitmap = @layout2_bitmap6 Y5 X. M! ]2 H) H! c
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height), d8 ?: @- N+ I2 C! k/ h5 t
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    9 H7 q8 S- `7 q/ @
  95.     @layout2_sprite.z = 5001   
    + I: ^6 }. w9 L% k3 _7 n
  96.     #SP Meter ------------------------------------------------------
    / i4 C7 a3 z6 L
  97.     @sp_flow = 0
    6 Z2 J/ S( R/ {9 v$ n4 J# r  x
  98.     @sp_damage_flow = 05 a. l' u4 s# h
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")+ @% @, G+ L6 P* B" T
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    ; y" p4 L. T$ k; i5 Z5 O" f! L$ g
  101.     @sp_range = @sp_image.width / 39 e4 ]2 n. w: @% E2 [' i
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  - K; w# ~" p  w7 x
  103.     @sp_width2 = @sp_range / 23 i4 _, P  `3 q& h- q3 G) g
  104.     @sp_height = @sp_image.height / 25 E2 w  A4 q3 Y/ D4 K( w9 P
  105.     @sp_width_old = @sp_width
    " R6 w6 N6 b2 G, B1 O" p' b$ p
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)2 J. b& S2 G; p) O6 m
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    0 b) P/ Q% z% q; r
  108.     @sp_sprite = Sprite.new
    ) r! }3 E8 i1 d0 s' |6 [
  109.     @sp_sprite.bitmap = @sp_bitmap
    , G# ^& M3 e% a- [6 M
  110.     @sp_sprite.z = 5002- n9 c9 K* ^1 t3 c! W8 L1 _' }% A
  111.     update
    * [3 ^) X4 o$ j6 S/ O- E. V
  112.   end
    9 g) w( X8 f4 g
  113.   #--------------------------------------------------------------------------! r3 V; X& l2 e: b, n
  114.   # * Refresh
    ! y! v4 r1 j9 r1 `+ [7 v' e9 S
  115.   #--------------------------------------------------------------------------
    / j' ^: ~& i3 N: c' t
  116.   def refresh+ N5 g- J. J! z7 t/ q
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    - K1 c5 [" q% [5 N
  118.     self.bitmap.clear
    , d& F  o$ D$ B2 G( ^
  119.     @old_vis = self.visible0 n7 _: i( E; u* w: D8 D
  120.     @old_sp = @battler.sp" x, H+ X% B& n& G) U4 |
  121.     @old_hp = @battler.hp
    ' d8 `* `7 a( ~0 Y  {
  122.     hp_flow_update
    % o2 D" d, f. r& `  T0 v
  123.     sp_flow_update$ b  j; y: ~* Q4 ~9 Q4 [9 W' L
  124.     hud_pos_update. A! v3 x4 v1 X5 x( W3 P' |
  125.     visible_update
    ' K8 H$ J: m& L: g
  126.   end
    # S& S1 M: [/ J8 k7 e3 O5 C
  127.   #--------------------------------------------------------------------------
    2 J% l& ?& e! E/ O5 O1 x3 }" R
  128.   # * Dispose! n. N# {8 s9 [# L2 ~9 Z
  129.   #--------------------------------------------------------------------------1 w# D# g! ^) B' P( c  {
  130.   def dispose3 i+ d  u- M" j* B. x7 r- @( m8 M4 [' s
  131.     #HP Meter Dispose7 Z3 D; O4 T7 }  x- K
  132.     @hp_sprite.bitmap.dispose
    , q! I' e7 M# k9 c! ~( P
  133.     @hp_sprite.dispose  b- K- s: j. @8 B  g
  134.     @hp_bitmap.dispose
    ! a7 s7 |. p% Q( O+ q" V4 f8 }& @
  135.     #HP Border Dispose4 L: N% f, x4 j) U
  136.     @layout_sprite.bitmap.dispose% ]( u, W0 V9 P$ T
  137.     @layout_sprite.dispose3 y3 M/ c* l2 C1 f) {
  138.     @layout_bitmap.dispose+ q" A8 Z9 P9 k) u  p- Z: p; f7 I
  139.     #SP Meter Dispose
      v: _  o# D0 l+ x9 D8 q5 z4 C
  140.     @sp_sprite.bitmap.dispose1 f: ~6 J# c  ?, I: ^
  141.     @sp_sprite.dispose$ R5 @5 _& k- v' s" N9 S* @
  142.     @sp_bitmap.dispose0 M) X+ Z4 I/ x: {
  143.     #SP Border Dispose
    , g+ D6 O: h  t* Z% }& v
  144.     @layout2_sprite.bitmap.dispose
    ! t' I$ M5 V+ o5 a! e
  145.     @layout2_sprite.dispose
    ) K2 a0 c. Z$ ]  u( b+ a6 k
  146.     @layout2_bitmap.dispose; m: c" p/ W; I, m  u# p
  147.   end
    2 X2 g+ v5 c( v- }. w8 E
  148.   #--------------------------------------------------------------------------
    " n) @& o2 y9 ], t. {
  149.   # * Update  b. p3 g% s1 [, \) @
  150.   #--------------------------------------------------------------------------
    2 X  I7 L: ?. z" r+ w( p
  151.   def update
    / ~3 v: d1 ~4 f  l% k* I  s' {
  152.      @battler = @enemy.battler
    4 \: J; B& B, v% h
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    0 H2 C1 c; q2 d
  154.      if self.visible4 w1 j( @* Q# N: @
  155.        refresh
    # c7 F% J( ?; b7 H6 u( c
  156.      else
    # V" _/ E- A/ a
  157.        self.bitmap.clear* u" S" [& `- P+ D
  158.      end* n0 T8 v/ x$ H0 f
  159.   end, J1 ^1 x2 m2 R, d' {
  160.   #--------------------------------------------------------------------------; u7 K1 u$ D; {2 e; K: x
  161.   # * Visible Update
    5 p4 D7 R* f7 X! b' Q8 f
  162.   #--------------------------------------------------------------------------: k$ m. n8 ^) q9 Y  k
  163.   def visible_update
    0 T  ^7 M( P6 u( `
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    8 T" j% H1 i6 H( T# R4 L' C
  165.        @hp_sprite.visible = false
    6 ?4 Q- Q) c# p9 }' Q/ y5 k
  166.        @layout_sprite.visible = false
    : m$ U/ v8 A: F4 h: j
  167.        @sp_sprite.visible = false
    : _- ~. D( @3 w: @5 ]' C
  168.        @layout2_sprite.visible = false# \$ C% e; a% R4 A
  169.     else+ M4 Y5 y( M( N
  170.        if HP_HUD == true0 O6 _5 d% p7 e, `) t* N% {
  171.          @hp_sprite.visible = true
    % Q/ F; k$ I+ `2 t
  172.          @layout_sprite.visible = true
    ) w' |6 r" F, K1 W  i
  173.        else
    . v$ k. \3 G. {6 e1 z
  174.          @hp_sprite.visible = false
    ; l* n9 D8 x& G9 z/ t
  175.          @layout_sprite.visible = false! h" W4 n6 |7 z
  176.        end  & H5 Q. o6 F! I' _; z0 D+ v
  177.        if SP_HUD == true4 `0 S' l( D4 p; N3 ^+ a
  178.          @sp_sprite.visible = true
    # U0 a# o% D0 D
  179.          @layout2_sprite.visible = true( K- f7 |; s5 O. j! [1 ?. r
  180.        else
    " c. s1 H. }9 e- K
  181.          @sp_sprite.visible = false
    ) ~- P$ K; y5 Q" W" K4 C, v% i
  182.          @layout2_sprite.visible = false$ l3 y3 [5 l) ]/ l
  183.        end
    ' W- Z5 s$ s; X& m" ], G
  184.      end  ; M3 ], C4 @, L# s
  185.    end
    8 E" d2 S: C8 i# E
  186.   #--------------------------------------------------------------------------
    " {$ X* Z& }+ w8 F) `) i
  187.   # * Hud Pos Update
    ' v! i9 N8 ~! c- h3 d
  188.   #--------------------------------------------------------------------------
    7 i9 D5 v% @: `2 B; f. x6 y: c1 Y
  189.   def hud_pos_update: |$ O" U3 o$ ?9 O. c( p7 e/ ^
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X+ A; N  P2 \: k$ N+ `
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    5 m6 @8 o: B. b1 d3 W
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X' U# l1 S* r9 Z# P
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    " j( |/ e; ?/ b2 S$ c5 K
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X+ |+ P6 H9 V4 ~
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  1 S: Q" a9 h4 J. S7 `% v
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X: V5 V! \, M4 K5 x5 j) X& s$ N
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    ( D: e- r) |4 Q# [
  198.   end  * |2 ^! e* j7 R
  199.   #--------------------------------------------------------------------------" A7 `! Y0 t$ m4 x$ ]+ A
  200.   # * Hp Flow Update$ n% |& h2 e0 _' J% R
  201.   #--------------------------------------------------------------------------
    1 p( r+ L' L0 J
  202.   def hp_flow_update$ F7 ?. N1 D- _! {
  203.       @hp_sprite.bitmap.clear
    5 d# `. ]5 _& H
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    ; T# j# f5 f% H% G3 {: \$ ]
  205.           #HP Damage---------------------------------: p5 z4 f+ s  R1 q6 `
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    $ @. \# u' {0 A( d4 u% ^  F
  207.           valor = 0.5 if valor < 1         
    8 y: f* W5 w4 u. r+ K
  208.           if @hp_width_old != @hp_width; }( g5 D1 F! x  N) c
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    / `9 L7 \' f1 K5 {0 r: f
  210.           if @hp_width_old < @hp_width
    2 r9 ~$ W# ]4 R8 @( ~4 L
  211.              @hp_width_old = @hp_width
    9 \# s- ~: Y; \1 f% I' X5 X
  212.           end      
    ) k2 A- E3 h/ z8 ]* C
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    9 k2 I! m+ w8 c6 F8 ]
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       ( A. }2 ?/ F! y' q6 ^
  215.           end        0 g$ V, y* X8 q2 V/ N; {: C3 E2 L
  216.       #HP Real------------------------------------
    * ]( s9 q- h/ n
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    + h" I( Q9 ]/ M+ u  g/ C
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    $ K5 n4 d( G( E9 x) z3 |; t
  219.       @hp_flow += 2  
    . j; a% R6 W. A9 u2 d7 p
  220.       if @hp_flow >= @hp_image.width - @hp_range
    7 n  q+ z; V, j$ L3 ^9 }& t9 N. y
  221.          @hp_flow = 0  ) h+ j5 d. b8 y' @- h
  222.       end8 {9 D- L& _- @% M$ V4 o4 o
  223.   end    2 q5 o- ~# f5 H7 U2 K5 w+ o
  224.   #--------------------------------------------------------------------------; a$ @4 |- I6 b6 v# t$ V) Q! {4 c
  225.   # * Sp Flow Update  D' O- Y2 f: t/ X5 O0 i, c
  226.   #--------------------------------------------------------------------------
    0 [4 A* s5 A& z" x" ^2 B! F
  227.   def sp_flow_update
    4 \3 n- `- d0 J& M8 b. u) ~
  228.       @sp_sprite.bitmap.clear
    % `0 h0 B0 `6 ^$ F/ p3 r. o
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    0 q" t8 a4 ]5 j. H( G; Q' X! I# r
  230.           #SP Damage---------------------------------+ M1 D, j" S% z3 W2 P! H
  231.           if @sp_width_old != @sp_width. H; b! e! _; P7 D
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100' O; W; I3 x& t- |; X# S9 V/ N
  233.           valor = 0.5 if valor < 1                y! ?- e5 p9 n: u' O
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    3 t" [/ @9 U! N" q4 H
  235.           if @sp_width_old < @sp_width
    # k1 r* A5 [- Z0 k% v6 L
  236.              @sp_width_old = @sp_width3 w0 l) [# k% r  ?
  237.           end      
    3 s0 R- I- }3 p/ |; i
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    # H2 {$ U0 L; D7 v. F
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) 2 {) b: h+ c" A1 H% c* o) O
  240.           end( l* Q5 B2 _0 C( I' a
  241.       #SP Real------------------------------------
    $ S& Q! l0 r! U' k
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    1 Y# a% Z/ {0 d( D! O
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    - [9 R1 k# q/ g+ r% q
  244.       @sp_flow += 1    W' x5 i5 B7 [  L9 c7 r- m
  245.       if @sp_flow >= @sp_image.width - @sp_range  [2 ~, Y, r3 r
  246.          @sp_flow = 0  4 ?0 D( z2 @; J8 R4 Y9 |! W
  247.       end% m/ b4 i, v0 g" n* `2 x' {  M2 R8 j
  248.     end            7 q& t2 M1 C" x8 L' n; \( s4 C$ ]+ j
  249.   end# M! g% b) {. Q; i
  250. #===============================================================================; n$ k. k; {( K9 l+ @7 d
  251. class Sprite_Character < RPG::Sprite# i7 b* L; u. g/ |, I" z
  252. #-------------------------------------------------------------------------------; _% z) y9 g" I& v( F$ U& S
  253.   alias :xas_emini_hud_init :initialize
    5 M8 Z5 s2 K5 ?, D: Q1 J9 L
  254.   include MOG
    * X8 q% o+ \6 F( J; `
  255.   def initialize(viewport, character)# B/ }1 m  h( o0 j; C
  256.     xas_emini_hud_init(viewport, character)# n3 |. a: F7 b4 X/ e- z& E. N4 D
  257.     @viewport = viewport9 p! q! _  ~( @9 S& T+ Q
  258.     return if @character.battler.nil?! c3 f$ \9 k+ ]& C
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)$ V8 r5 Q3 V4 p
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    5 S# G% H' i+ G6 H
  261.     return if @character.battler.is_a?(Game_Actor)( S1 ?3 W. H  B
  262.     @bars = S_Hud.new(@character, @viewport)
    2 k, j: @7 j) \3 F1 W* {0 g
  263.   end
    4 V. e7 F- o( Z  {+ [" B
  264. #-------------------------------------------------------------------------------$ V# S# G1 d, u+ o( }4 k" l
  265.   alias :xas_emini_hud_up :update0 Y, Z- M& {3 O$ G& g
  266.   def update' ~9 e7 R9 M% ~2 X  z) U( X; l
  267.     xas_emini_hud_up
    6 h. R* R5 e: g; Y% B. }1 b
  268.     return if @bars.nil?
    ; L0 o6 ]7 a) [+ Q3 f8 f
  269.     return if @bars.disposed?9 Q6 G8 v) I1 C# O
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs9 n; m; \1 w. O3 J
  271.     @bars.visible = (dis <= RANGE)% w( z9 e# ]5 E
  272.     if @bars.visible
    ; y: _4 K/ c; c, w- U
  273.       @bars.x = @character.screen_x# - @cw / 4. b3 Y1 o. p( l* r. }' }0 _0 y
  274.       @bars.y = @character.screen_y# - @ch / 4
    ( S% g+ P7 b6 o9 p4 A
  275.     end+ y) E9 o8 Z$ Q% l! M3 b9 x
  276.     @bars.update; f( ^) P& ?$ f9 d% m2 L  }
  277.   end- _8 A; @3 l/ e
  278. #-------------------------------------------------------------------------------9 l3 s, w9 L) M  }* {' W0 c
  279.   def dispose
    $ V- }+ Q6 A/ t7 S" x
  280.     super
    $ r1 j7 o* m# p. ~
  281.     @bars.dispose if [email protected]?  N0 F8 v  r" k( L7 _! u# {
  282.   end
    , z( F- Y% }3 k% B# A, g
  283. end
    2 b* p- P. M. D+ q( F9 a* R
  284. 0 ]- [" s, B7 B% X
  285. $mog_rgss_s_hud = true
复制代码
) q* L4 H! t6 n1 g- Z' W

! U. z1 ]( u, J/ U
+ \) U" G# ?2 t+ o5 n- W. ]: n- O上面所說出錯的203行內容為) `) i0 s# l, W9 E7 U0 ]& J, P' p
@hp_sprite.bitmap.clear8 k9 x$ M- t! x/ z- k7 J  d& U% Q
2 _0 q; ^# [+ d8 S$ C5 a6 D
想知道怎麼解決
7 u/ G. j; z% {8 I% z. a/ Q4 Z9 o3 _& {0 q1 X7 R
該腳本支持3.82
  A( k" Y) `9 S4 k  J4 [/ B4 l- o2 P5 {/ b  y9 |+ N* z2 U
下面是圖檔,要塞在Windowskin下
# t- r3 K/ p6 E1 p1 Y- {0 _- T, V" K# @
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) " Y, X) X/ i. i# ?4 ~7 ?7 C
+ `8 y& C! Y: _6 S8 T" N9 R; y' j* x

, `9 O' ]+ S; M
: N$ ]& a6 u# p6 V% o% f( P' f% E
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适5 L9 u- x7 p% H) e, P5 f
结果尝试刷新了一个已经释放的图形- {: l9 v; ]7 q, w) p) j
5 J! S* G9 m4 z3 F
( a5 A! X9 h/ ~: }
  |5 ]  \, e5 |6 Z6 g9 N
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    + Z* h8 O* {6 h
复制代码
不要后面那个条件貌似就没问题了。# P0 ~: j  H+ N+ u$ k3 Y* Q
; A4 O- D* w4 e) q  |3 s2 ]
4 B% o5 L+ y# S# @3 |7 J- Q

: p; D2 F' n; Y1 h0 g) P
0 k" k9 r% s2 `% }( w
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
507
在线时间
1789 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
1 A2 C; n4 @$ I* t貌似是释放的条件不合适
( _+ L& h0 Y% i结果尝试刷新了一个已经释放的图形

* d; a  [$ l% D: y把後面那個條件弄掉後,的確沒問題了
' [" l4 ]2 M$ Q2 A+ n3 ~目前從關頭打到關尾結束都沒再彈什麼錯誤
( r6 n0 Q- k' ]非常感謝
5 T, m9 @% Y- K% u( r6 i" \
2 x% ~5 Y6 l* e) s  w6 J! q不過我是參照著別人腳本改的
+ I& y* K% p2 w2 f; s4 o他寫的條件式也是那樣,但我用他的沒什麼錯誤6 I; ~' t. K7 z  T
不知道是怎麼回事; h' ~4 [  R/ U% R% C. n4 |
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
# x# v. ~& }+ T我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
9 }2 b- c3 h% \4 B* S0 V: F嘛..这个数组吧..我在以前试写队友的时候关注过一点+ P& S2 Z7 R8 o0 i/ Y5 s, `6 I
不知道XAS内部对它做了什么手脚还是为啥,
' N) |& k8 `* @总有那么一瞬间,没有被消灭的敌人事件也变成了nil
" g' s" G1 c2 c" s' X2 V) |5 Z* c6 I9 K7 R/ W, G9 U
$game_map.events.values[@enemy.id].nil?* {( ?7 A2 s4 A$ V# b& E, T
因此自然而然的返回true并符合条件把图形释放掉了
* a6 }9 F( e$ ^" z4 ^5 _, Z) o/ g+ K) x7 r; m' r7 ~( `
LZ应该有注意到吧,- K6 t  f4 {" n: u6 W
我测试的时候发现报错前几帧,图形会消失,3 S/ k! i" {: n$ K
应该就是“误以为敌人被消灭”了。
3 j: j$ ^" O0 a2 @3 _% \  h9 k
4 O4 M0 v) ~! S& E4 S% _) m! Z" S受限于个人水平,至今无法找出$game_map.events的真相..& `2 o4 x2 o2 g4 N4 h6 \% D
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
507
在线时间
1789 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
3 i2 ]& U0 W; Y0 ]$game_map.events4 j0 Y& Y4 X! L
嘛..这个数组吧..我在以前试写队友的时候关注过一点
) A; G2 D0 v4 s- N' K9 N6 L5 M不知道XAS内部对它做了什么手脚还是 ...

. P  K# h6 G& Y+ g; t. c4 l. i  d當初我把那個條件式看了三遍,都不覺得他有什麼錯
+ g) _7 \& Q9 c, G4 X1 ~原來還有這麼深奧詭異的事XD# [$ q+ V1 l$ C2 z* i1 a4 _
! @" M9 `, y$ m  Z7 q7 |
錯誤發生前的確會有圖形沒顯示出來
; m0 }* M) c5 B$ x; i6 h8 A不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...+ }/ B$ c8 o9 n4 g
沒想到居然是詐屍了XD
/ ~( B) f/ ?' a( w! Q  J) f! Y
: b9 [5 |) u$ B( [3 ^不曉得3.91有沒有修正這問題...
1 o& D5 X- j# |& s- s不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
" w: C) k3 D7 {  A7 w3 E6 i
  Q: c- S7 x' @" U) _的确8 v% I/ Q' k; r  b) e2 I: L
用惯3.82之后想去整3.91觉得压力甚大..; [7 t" ?0 R4 r  L
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12749
在线时间
21852 小时
注册时间
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”。
. U( x6 p5 u  D6 }  j9 P' G0 y! J8 x+ y8 ?2 V# }
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-9-19 05:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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