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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條- c1 u, O- r/ C2 j8 r  V; Z9 t) d
會在每隻事件怪物的腳下顯示
$ O2 X- t6 E( p9 j/ X# Z- m問題是不知道為什麼
3 D1 B% @5 z2 Z  p有時打怪打一打會跳出
3 L& {! ?: Y  H. a5 L9 C# j---------------------------
5 n+ n6 P* i3 |% r) aXAS6 ]2 K1 |' D) x: z+ I: ]1 ~% p7 z
---------------------------
: j. T1 ?8 j& k6 A$ Q: m脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。3 X' F6 v" p' ?" Y- G( q
$ K& g' @' @5 o* B$ f: ~  Z
disposed bitmap% R/ d9 X5 m. p) B
---------------------------& R0 s5 \$ Y# F5 V" m7 P) @9 s/ K
確定   
- d9 I) r9 ]6 `( v: t! q---------------------------/ u( Y9 B6 j" r% o1 [* ]6 K7 _% v4 |

6 m* Q' E/ ?8 d. H9 b8 L這是腳本
! g% t) S7 x! U% P  p
: M5 i- K* C; d2 B
  1. #===============================================================================
    3 q* t. _' O. k9 Z7 P
  2. # MOG - s Hud 1.0      
    $ m( z' w9 G* _# v& m
  3. #===============================================================================
    2 w" ~6 b% I& x( p4 l$ ~7 T
  4. # By Moghunter
    : h+ D9 S( v  F3 c/ ?
  5. # http://www.atelier-rgss.com3 G, _* D0 B2 i: k3 D: B. d- M$ k
  6. #===============================================================================' V) m) }  a6 J& }2 M5 H+ d
  7. # Translated by Calvin624 5 C2 s; p+ j- {' Y
  8. # http://www.xasabs.wordpress.com) E$ G$ i: q* |0 B& s8 A/ e. v
  9. #===============================================================================, Q+ X: F6 m6 y
  10. ###############################-DESCRIPTION-####################################
    % ?' J8 U5 ^/ n) Z6 s3 W
  11. #===============================================================================
    8 E% d& I/ J: R8 @% y7 o& [* \  ~( [
  12. # Personal HUD – displays the HP and SP below the hero.
    ; s) o. A9 e: w& p, f
  13. #===============================================================================
    ! P3 j( o+ e, z* X3 U  C* Z
  14. #( ^( |1 ^; `/ M
  15. # Graphics required:
    $ a2 T6 ]7 o1 J- B, e# _  m: H
  16. #
    2 A+ ]8 z2 c' {0 B: f
  17. # S_Border_HP_Meter.png
    9 J; X% k3 d2 K* s& N
  18. # S_Border_SP_Meter.png
    ; Q5 I7 F$ ]0 V
  19. # S_HP_Meter.png
    4 k3 O; G6 `! C) M+ {
  20. # S_SP_Meter.png  {- v, e7 S5 I0 v
  21. #8 ]& P. {. c* Y0 t7 _- R7 N: T6 o
  22. # All images must be in the Windowskin folder.
    # v, H- o% G  z' d5 e0 ^2 q# e6 h
  23. #9 P* G$ Q7 U; M+ T- p* H
  24. #===============================================================================
    . q* B6 n7 Q/ z7 L
  25. module MOG  M% v7 P* G9 v+ r6 {
  26. VISIBLE_DEF = false  
    # ]2 i$ W- k2 G' S, M1 b
  27. # Show HP meter?
    ' o! n; _. @, O1 \3 B% o7 Y
  28. HP_HUD = true
    5 G) a& Y% X# Y
  29. # Position of the HP border  R2 R) v' }# u
  30. S_BORDER_HP_METER_X = -2
    1 j3 U+ ]8 _; t, K
  31. S_BORDER_HP_METER_Y = -2  % s4 E0 r# r& I6 M' }$ ~) [! S& N
  32. # Position of the HP meter
    , E2 Z/ D4 n! e5 l9 _' }' s
  33. S_HP_METER_X = 00 P! ~8 r8 s4 K, n/ ^
  34. S_HP_METER_Y = 0
    & [; c  a$ \; p+ _
  35. # Show SP meter?
    % N8 d, {3 }0 s2 v+ n, _
  36. SP_HUD = true/ ?/ ?- S% u+ v1 {, D' I1 J7 N' ]
  37. # Position of the SP border
    $ e2 g0 `3 E: f$ {- X. i! H
  38. S_BORDER_SP_METER_X = 0* x# z( n( V% ]1 U
  39. S_BORDER_SP_METER_Y = 10
    5 G" I+ q3 N# L) b1 Z4 D, i. `
  40. # Position of the SP meter  Z# j+ d# r: S0 b. n9 \8 ?
  41. S_SP_METER_X = 0
    ) @! F. K! x& Z
  42. S_SP_METER_Y = 107 ^" m' c7 S8 y2 Z* A5 k; R8 S
  43. # Switch to disable the HUD
    " |, Y) n9 W9 T4 R* h
  44. DISABLE_SHUD_SWITCH = 5
    7 ^, o9 R9 N8 s- G
  45. RANGE = 20+ n2 k# r) J* A$ z( Y. k& J
  46. end
    " t! x7 Q- V' U! l$ F
  47. #===============================================================================
    1 q) b+ l# H! {$ A
  48. # S Hud+ Y" \' @; q) ~* l4 |  ^) s' Q
  49. #===============================================================================1 `3 w; ?9 V( Y( k/ T. @: L
  50. class S_Hud < RPG::Sprite$ q+ x  w5 z5 n* Z
  51.   include MOG
    : v# P2 ~) D: ?% C
  52.   #--------------------------------------------------------------------------
    9 j6 F4 T) ~' k  b
  53.   # * Initialize
    8 A: [( Z$ z! }7 W1 M
  54.   #--------------------------------------------------------------------------! A* C6 {% J. N
  55.   def initialize(enemy,viewport)
    9 t4 [& R( t' `8 A; o- L. x, X' _
  56.     super(viewport)   w1 Q8 i+ ~. M. @; i# T' w
  57.     @enemy  = enemy
    & `" ]8 d# O5 z: a3 J1 ]- x
  58.     @battler = @enemy.battler4 ]1 {- R; v1 Q% O6 V4 H
  59.     @old_hp  = 0
    . N" y$ k8 [/ Z  Q5 I  R5 t" }& ~
  60.     @old_sp  = 06 H( u/ J9 @/ q; L  a2 c
  61.     @old_vis = false& X" T% I/ u2 z
  62.     self.bitmap = Bitmap.new(100, 100)
    . }' S4 }2 `& S( B- U& F
  63.     self.visible = (VISIBLE_DEF)#false: V/ O# V+ i* i' a' K0 F5 p
  64.     self.z = 100
    & \% V6 ]. _# q3 S3 G
  65.     #HP Border -------------------------------------------------------------------# l* W; V9 i/ F9 W1 A
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter"). t" @# m2 {0 A. `6 `5 P. X( u4 E
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)8 X+ G6 ?8 i; `. r$ Z2 f
  68.     @layout_sprite = Sprite.new
    + Y; m/ u  V$ g8 Q
  69.     @layout_sprite.bitmap = @layout_bitmap
    : R6 K1 b: T8 u3 t9 y
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)$ B8 e* z# }0 G1 E. Q% [+ S
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)        A/ u# F+ P/ J# o! X
  72.     @layout_sprite.z = 5001$ \" A6 p7 X  v+ A
  73.     #HP Meter ---------------------------------------------------6 m! w, g  I1 Q; H- v
  74.     @hp_flow = 0* j7 i. b( ]" z; |9 h9 Z6 b) }
  75.     @hp_damage_flow = 0% e! a' t% T: q! W) U9 q- q
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    ; B& l) ^# X7 X) C) |1 `5 @" }
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    5 x3 S' o' `+ N  c
  78.     @hp_range = @hp_image.width / 3& T$ N# w6 w0 L" e/ @8 X! ?
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    , U" [) e& `/ T6 g9 R- V
  80.     @hp_width2 = @hp_range / 2
    % t" T( Y" t, j  J  E. x
  81.     @hp_height = @hp_image.height / 2
    6 I! F9 i% Q2 e2 t1 D
  82.     @hp_width_old = @hp_width+ x7 w8 t. i+ m; ?5 ^2 t& h
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    " z4 T& o  Q/ U& c6 X
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) * K3 Y9 |+ @& f
  85.     @hp_sprite = Sprite.new
    7 d2 i  ]6 p' S( x: D" \
  86.     @hp_sprite.bitmap = @hp_bitmap
    ( ^' _+ G3 V0 T- o! w. j
  87.     @hp_sprite.z = 5002
    . v7 v$ A$ h% |$ p8 d
  88.     #SP Border -------------------------------------------------------------------
    0 a. h+ E9 i, O! O/ ?
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter"): F4 C; c4 X+ W, j
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)6 c# N4 M/ B: F1 Z, A4 ?7 S
  91.     @layout2_sprite = Sprite.new& h2 C" l! x& F  ^
  92.     @layout2_sprite.bitmap = @layout2_bitmap; F* {, v! F: C0 O) v2 U
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)5 _: ]1 d9 i, U; a2 \, `' H
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      9 v* e# g# M! V% p: i8 `5 P7 I  r
  95.     @layout2_sprite.z = 5001   
    " o+ e3 J. M' w' L# J" j
  96.     #SP Meter ------------------------------------------------------
    % p9 {* J# I+ p. R
  97.     @sp_flow = 0
    6 V+ g% U2 u! p
  98.     @sp_damage_flow = 03 X# N. B0 X. j# V+ {; F
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")$ r. Q! p- c, k# D. y) I5 I4 o
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    5 ]& E# }% D) i6 K; F- _. K. o
  101.     @sp_range = @sp_image.width / 3
    # `; r9 ^$ @9 e9 g9 x3 _7 Y
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  ) d( n# @0 a7 R) p, V' ~- q
  103.     @sp_width2 = @sp_range / 2
    7 F: _! ]: G& @' w" t
  104.     @sp_height = @sp_image.height / 2
    8 t6 R% }8 T6 v% D  q8 w3 F" p6 Y
  105.     @sp_width_old = @sp_width1 o/ U. S3 G" k
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)- C  e7 S9 n7 U3 B
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)( i! E0 Y9 g! J  ^0 J
  108.     @sp_sprite = Sprite.new
    9 d( ?, _% O1 d7 W; T2 W) Y* p
  109.     @sp_sprite.bitmap = @sp_bitmap
    9 e0 K8 V: P9 ]; H
  110.     @sp_sprite.z = 5002+ R& |- |+ s( D( v2 }; ^6 y
  111.     update8 ]" C" N7 e! n! [* @
  112.   end
    ' M* k  S, l  Z: @  h! F% y+ T
  113.   #--------------------------------------------------------------------------# c: |" C5 `# M  n7 d
  114.   # * Refresh8 n/ Q- h7 K" o( X* K+ F- T8 H
  115.   #--------------------------------------------------------------------------+ t. Q9 R  G* ]! i$ X
  116.   def refresh& @5 @( \5 d# }! c6 V: C0 K
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible" J% _& j, o$ y, Z
  118.     self.bitmap.clear
    3 u" q+ W, U/ F  X* g
  119.     @old_vis = self.visible: b8 h# z6 H, _3 T7 [# P1 \
  120.     @old_sp = @battler.sp
    6 n/ _. Q: A3 T* V' c. T1 C6 C
  121.     @old_hp = @battler.hp6 u' w* T) w) z2 c
  122.     hp_flow_update" w- Q1 `; s' k7 f6 g
  123.     sp_flow_update
    - Z, F" ]& {% z. U+ I) n
  124.     hud_pos_update2 j3 ~/ U# Z# t) O) l7 z; |* M
  125.     visible_update
    1 C8 V, G4 o8 |0 r+ R
  126.   end; l/ L# I5 `/ }' t, y  g
  127.   #--------------------------------------------------------------------------/ m8 ^1 B# x, |" h4 l1 |
  128.   # * Dispose
    ) V: r6 e+ l4 b$ \6 ]/ b/ t
  129.   #--------------------------------------------------------------------------; S+ I* q8 Q$ {3 J2 R3 C$ M: G
  130.   def dispose
    4 d. R( D, F( x4 B) ^* t' L
  131.     #HP Meter Dispose
    ; q; p% `; J5 [, |+ \2 V
  132.     @hp_sprite.bitmap.dispose
    $ `8 `' J. {, L# @! U; G
  133.     @hp_sprite.dispose
    - z! l: o2 v6 h- Z
  134.     @hp_bitmap.dispose
      b8 J9 w; ?$ T4 `# ^
  135.     #HP Border Dispose! O" j7 o$ b( E3 m$ _, m: x
  136.     @layout_sprite.bitmap.dispose
    " {# _. @. Q% `1 a- {1 ?
  137.     @layout_sprite.dispose5 t; `" G- p' h" K( K
  138.     @layout_bitmap.dispose
    : Y+ |0 m- s/ F* ]/ k$ V
  139.     #SP Meter Dispose
    5 {8 U' N4 R4 G6 n4 o- n
  140.     @sp_sprite.bitmap.dispose9 u5 R7 `# e: n% s2 T: J  }2 M
  141.     @sp_sprite.dispose+ K8 T. l1 R% n; u0 D! ?2 t
  142.     @sp_bitmap.dispose- ]  A. G0 @( K
  143.     #SP Border Dispose
    : L- T2 |8 i! P$ [- [
  144.     @layout2_sprite.bitmap.dispose9 u& O9 V9 S4 q
  145.     @layout2_sprite.dispose6 g, ?! c* ^, q' r' R+ D
  146.     @layout2_bitmap.dispose
    9 f( ^& U$ H( M3 ^" F# d
  147.   end
    & \% ?0 k+ K8 X$ ?& k
  148.   #--------------------------------------------------------------------------7 i, t! K6 y$ d: G3 M( X
  149.   # * Update" O) G6 X, s2 |% y6 o
  150.   #--------------------------------------------------------------------------/ f+ W* G+ H1 \+ o2 R3 F
  151.   def update
    # M% V+ A, h! ~  I% v& \" E5 K( e  C
  152.      @battler = @enemy.battler 6 t. r. \4 Q- l( k
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    3 p. B1 Q1 H' ~% y* x
  154.      if self.visible
    ; X$ ~4 L) {$ m1 X5 J
  155.        refresh
    3 r/ M$ X4 |6 ~/ P; W: Q- q3 j
  156.      else# X( M) |3 ~0 S. M
  157.        self.bitmap.clear% r* P2 ^' v3 M$ n
  158.      end  {% Y6 @" e( J! d% L" N' m
  159.   end6 P6 V$ Q9 d, B6 [0 n
  160.   #--------------------------------------------------------------------------
    1 i+ X! E) p* T2 l9 p
  161.   # * Visible Update' B% ]8 O/ d5 @# T- g2 H! o9 w, ~
  162.   #--------------------------------------------------------------------------3 z- E; r: y4 \8 Z8 D* U
  163.   def visible_update
    7 T% q& N/ }3 R, |  i2 a# C
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    3 e) d: {- S& Z" S
  165.        @hp_sprite.visible = false- F0 y0 ~  @. \. n
  166.        @layout_sprite.visible = false
    ; F: f. g+ k- `* g& X4 R. e+ F
  167.        @sp_sprite.visible = false
    - P  Q+ X, h- q
  168.        @layout2_sprite.visible = false7 d' ~2 t8 W0 @: l
  169.     else
    . [" F0 L- F% h: B
  170.        if HP_HUD == true
      {: ~7 _6 [* v/ {$ r: Y) B
  171.          @hp_sprite.visible = true$ }! x' B, C2 l6 t
  172.          @layout_sprite.visible = true
    ) j$ n$ N1 P. {7 i& F% }3 E
  173.        else2 I( I! ?" x  D  S/ X4 u
  174.          @hp_sprite.visible = false
    ! X) f, Q+ B2 l( l# u+ `9 h
  175.          @layout_sprite.visible = false
    0 i7 ]5 \. `/ }1 s
  176.        end  
    0 |% x1 W: B2 A/ N8 A: L
  177.        if SP_HUD == true
    0 Z  S3 N* d- T9 k
  178.          @sp_sprite.visible = true' R  I0 u  T6 ^% A
  179.          @layout2_sprite.visible = true
    ' k' d" ^1 X: y! T4 O, [
  180.        else/ O* U* s, ~. w! N: [$ ^2 u
  181.          @sp_sprite.visible = false
    4 o% H0 g. b# T6 y+ O
  182.          @layout2_sprite.visible = false7 a" ^& L* N9 B: r5 p6 a' i6 _
  183.        end
    ' @  x' F, Y! q& Z4 f! R# a
  184.      end  
    % K: n6 o3 f! l/ O; D5 V
  185.    end
    7 l" K. z) x: D( [
  186.   #--------------------------------------------------------------------------/ s( \/ v! B( N& ~( g4 _0 A+ |: f
  187.   # * Hud Pos Update+ I9 Q% h  o3 H
  188.   #--------------------------------------------------------------------------  h& q: M$ E2 J
  189.   def hud_pos_update
    6 \8 h4 ^& \% P' O* v
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    4 Z. m9 u1 a' ~; ]+ `$ G+ q
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  1 G- W* w3 Y% E% Y5 h
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X4 ?* t* x' y0 {3 E& B5 W! S; j2 L" T
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    " t  \8 y: {0 s7 R, g! u. ~- ^+ H4 r" a8 j
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    : ?' y. `, m% P) c4 s
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  2 F; _! s$ ^5 c. Z
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    3 }6 r/ Q8 g  T/ y+ C. x8 n" R
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    - u4 z, m& v3 [# \. C! F
  198.   end  % w. G5 Z( L& I! p/ ^
  199.   #--------------------------------------------------------------------------  z3 K4 S+ l7 u# n$ j% M, F
  200.   # * Hp Flow Update; f5 r+ o1 f4 y0 B- d8 W
  201.   #--------------------------------------------------------------------------
    : m8 S( W- R% E; ^- K0 n( m
  202.   def hp_flow_update
      X8 P. t2 Q6 {1 x+ O' w6 e5 [
  203.       @hp_sprite.bitmap.clear" }: q8 H1 j+ |; w
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  $ U* v! M+ ~0 g  x/ E' V
  205.           #HP Damage---------------------------------
    2 {$ J' I# J2 h1 t3 q4 v! T
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    7 }1 q! f( C" i" e7 [6 m9 L0 D
  207.           valor = 0.5 if valor < 1          1 R# X+ y: ]( [4 O5 q; X
  208.           if @hp_width_old != @hp_width7 E3 a& d. y! e9 W
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  / u& l+ \) J* m  G( g
  210.           if @hp_width_old < @hp_width 7 w) y( w. @3 p" W0 h
  211.              @hp_width_old = @hp_width/ K( S" j) X+ G6 e* r. [% `  l4 _
  212.           end      # Y+ ^1 `0 k& j2 A& O% D
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)( _/ B6 x+ _* V' o7 U
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    - X; o* X2 P7 ~. r, m
  215.           end        # I9 z' q8 R5 l
  216.       #HP Real------------------------------------
    ) ?8 N. \6 x( D, J$ }  u* C
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    & ]  F& H+ r4 H4 G6 P
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          % z/ A9 x; _; S% p6 O
  219.       @hp_flow += 2  
    5 U8 W- c( @! O0 Q1 g8 ^/ N! z
  220.       if @hp_flow >= @hp_image.width - @hp_range
    / e( @) m8 L, ]' Y: x
  221.          @hp_flow = 0  
    1 a6 M* s% W, h$ ?( O
  222.       end* f, J# o" r& J$ E# O- H! k# V2 j
  223.   end    2 h: j$ @* ]) V- o0 F
  224.   #--------------------------------------------------------------------------
    9 I, T# G/ D5 e$ A
  225.   # * Sp Flow Update
      D- P  k6 _9 a+ ~
  226.   #--------------------------------------------------------------------------
    + l! x- T9 x, U* J  G
  227.   def sp_flow_update
    # g4 r' }: k' e, |3 {2 n
  228.       @sp_sprite.bitmap.clear# z4 T4 Z1 a/ a  t; G4 ]
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp 8 S; {  n+ F/ J" v" E/ B. h% H
  230.           #SP Damage---------------------------------; `4 J3 `7 [+ d2 O/ }
  231.           if @sp_width_old != @sp_width
    + Z2 ^- d* u# L6 D$ B
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    " J- O* n3 g" Q  V6 _9 o7 w% `
  233.           valor = 0.5 if valor < 1              
    # i$ y; u% ^: c+ x! \
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    ( M  g1 @! i$ t# F, c  q
  235.           if @sp_width_old < @sp_width
    / N; O/ L$ t' {6 Y/ h# y8 Z" c2 a
  236.              @sp_width_old = @sp_width
    3 S  Z0 o# x1 a' F! I7 I
  237.           end      8 }9 R- O) e* E+ S4 P
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    4 V1 a% D( A) i
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    9 D* d! P' Q; O: n" I* [: T% w
  240.           end
    2 H7 }( O5 W* w7 X* T4 M
  241.       #SP Real------------------------------------; c. ^, ?, P$ Z- L
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    : s, S$ r3 ~. z* I$ }* ], b
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)( i5 x. \) Y" u4 V, H
  244.       @sp_flow += 1  / K: E6 F6 A3 _) C
  245.       if @sp_flow >= @sp_image.width - @sp_range
    ( ~- O$ V, W+ }" @
  246.          @sp_flow = 0  
      Y. t: F2 O$ [. v  z6 n
  247.       end9 p7 }' q: A! V9 W
  248.     end            & [+ {; w% r% V/ d) y: Q
  249.   end- q0 y3 Q) B' g! t. ^) B
  250. #===============================================================================& b* B& n0 a3 r2 u) L$ L) u
  251. class Sprite_Character < RPG::Sprite
    1 \* C# _% o$ F- q: ~$ [) G+ I
  252. #-------------------------------------------------------------------------------( @  k8 m1 E# V# Y0 @  f8 D
  253.   alias :xas_emini_hud_init :initialize
    $ h" b. f7 a$ m/ D# e( P" X; R
  254.   include MOG
    / f0 @7 D  f5 n1 i
  255.   def initialize(viewport, character): m) x$ P2 @; |
  256.     xas_emini_hud_init(viewport, character)
    # ]4 F* F# c7 O! {0 ]7 P
  257.     @viewport = viewport" M: `; K2 x  D  M5 {4 A
  258.     return if @character.battler.nil?) g5 @, v+ L3 b" \
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    , q4 E, Q6 D3 G- E/ B2 k
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    : G- W% z) @. N- d; ]" E
  261.     return if @character.battler.is_a?(Game_Actor)
    ; D) U3 n2 N# O8 q  a
  262.     @bars = S_Hud.new(@character, @viewport)
    1 e4 x( T, v4 d
  263.   end, E! G+ G! \- w
  264. #-------------------------------------------------------------------------------: T! P: D, E( {0 d9 j' C
  265.   alias :xas_emini_hud_up :update
    3 Q2 {) m- E6 g% |; u+ j* {
  266.   def update; Z$ W; l8 }  W2 i9 R) u
  267.     xas_emini_hud_up# V, [  H* {2 N7 f1 C/ Q2 D
  268.     return if @bars.nil?. x* o  e7 {/ Z3 H
  269.     return if @bars.disposed?
    + q: h& T. G" U  P
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    ! r; k& Z9 D$ _
  271.     @bars.visible = (dis <= RANGE)
    1 V" M! S2 S( @% `7 i
  272.     if @bars.visible
    - B( P' ]/ K/ r0 X9 _8 h7 A  f  H
  273.       @bars.x = @character.screen_x# - @cw / 48 T8 D- Q" E2 A! B
  274.       @bars.y = @character.screen_y# - @ch / 44 c- ]: }, V, D: ], k( A7 K
  275.     end
    ! Q. M. p% i6 v- _/ _8 Y( G
  276.     @bars.update6 q8 I+ b" c, h
  277.   end
    , f/ `. K1 ^2 w5 g: M
  278. #-------------------------------------------------------------------------------8 @- a' v7 \3 R
  279.   def dispose; q8 g, X! ^+ B
  280.     super/ Z- j, ^% @6 K: x  L# p& S
  281.     @bars.dispose if [email protected]?  s, c# G+ ?$ N  B# Q1 g1 P6 l" [
  282.   end3 j8 S1 E& U1 U  i2 A8 {4 A
  283. end
    8 v& g9 v: k8 R; Q
  284. $ }2 r% i! l. |! r/ z
  285. $mog_rgss_s_hud = true
复制代码

$ F, F0 g6 F/ T  e5 i: X/ c/ j: @1 n2 m

& F! ]0 W/ R7 i  D& w6 l上面所說出錯的203行內容為
. ]# x6 D, E) x' E3 ?( `@hp_sprite.bitmap.clear! Y" x2 H3 l$ R- K7 p
, T6 J' ]) V' d' @8 z( T4 e9 ]; H
想知道怎麼解決5 l7 C5 \+ U: V9 a: x8 r' \

5 q; ~* M& l3 @; ~9 @* T( a7 k該腳本支持3.82
1 o, S8 }2 u2 A' x; ]7 \  j: k; k! ~9 g2 Y
下面是圖檔,要塞在Windowskin下$ ]( b! O1 ~6 }" w% I
; F; v# ^& C" S) |
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) $ ~" a- r9 q5 \" Y6 c6 b0 Z
/ C: F+ E6 L  ?: W
: \& w; y- [# n7 p# |/ c
) Y" r2 L% F- b
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
& `0 C& y6 Z. ~8 N7 t6 ~( \. H! B- W! c* i结果尝试刷新了一个已经释放的图形4 {3 |- N' ~6 P6 G9 i

& N- _7 F; e/ O+ N! c/ E$ ^
9 s- W# p- U$ R4 s7 t
0 k' |% L7 W- @0 J; {虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    + @+ r$ H! f; m- }- w
复制代码
不要后面那个条件貌似就没问题了。  o! u" O: i& n" q" o" g# b
6 J/ y+ a, J$ d$ `( `

, h$ z' c  B9 i
  v9 F, g: g( z2 L! J# `2 u5 K: {
- `% ?7 Z8 L! t  n  i
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
562
在线时间
1796 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
( u7 |. \( j) z' _* U& V& Z* T貌似是释放的条件不合适" t+ j8 T' ?; L2 R9 a& Y; `
结果尝试刷新了一个已经释放的图形
8 y; Z& C4 T* C2 h
把後面那個條件弄掉後,的確沒問題了+ h4 I2 O- @0 K( A6 s$ b6 z
目前從關頭打到關尾結束都沒再彈什麼錯誤
  E2 o; |. _; y& i5 ]' m非常感謝
: q- d% S5 X" J: N& ?  J/ G! F( q, H7 A& w
不過我是參照著別人腳本改的. ?3 o0 t8 ]3 \( S
他寫的條件式也是那樣,但我用他的沒什麼錯誤
1 M( h4 i4 q3 z; z9 A不知道是怎麼回事- @( h* S4 I9 O9 G  D$ P9 ]
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的; \, P4 n) q! `
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
- }/ I  k7 b+ M8 n1 K嘛..这个数组吧..我在以前试写队友的时候关注过一点
3 q8 ?' K2 p8 D; C  o% G( a不知道XAS内部对它做了什么手脚还是为啥,! P" E/ F" V5 S' E* c
总有那么一瞬间,没有被消灭的敌人事件也变成了nil
- T- x3 U4 `8 n# c: o" I8 U
6 ^2 ]! v0 k, q1 V$ |( G$game_map.events.values[@enemy.id].nil?5 b+ y) x! I6 c; P5 i1 ~
因此自然而然的返回true并符合条件把图形释放掉了( O  P1 H6 ]2 ?  R

# d$ @5 J0 U$ g2 @3 C9 R# ILZ应该有注意到吧,
' q' s+ F" C/ _# |3 y我测试的时候发现报错前几帧,图形会消失,
9 @% e# R  \# c应该就是“误以为敌人被消灭”了。' a+ N1 h, w" \2 `$ W% @% h8 H  J

7 x- _& Y6 X# Q" h" V0 U% E  X' H受限于个人水平,至今无法找出$game_map.events的真相..
& o" s# `$ ~5 q! F# P4 u
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
562
在线时间
1796 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
+ i+ ]1 J4 i4 U9 ^7 n4 m( i$ n$game_map.events5 L4 D& v% S- G. j7 ~9 F
嘛..这个数组吧..我在以前试写队友的时候关注过一点/ @" w- o0 B0 N& v
不知道XAS内部对它做了什么手脚还是 ...

4 [! |: }6 t8 r( E當初我把那個條件式看了三遍,都不覺得他有什麼錯1 W1 @! r, E' Q  Q+ P
原來還有這麼深奧詭異的事XD
6 f; y# I( L/ T+ m' }8 s
, _' t" R4 ?  T# [0 e4 a" g錯誤發生前的確會有圖形沒顯示出來
7 ^" l* P6 A. u  O! l# [不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
& S# u3 w$ T/ e) |/ @沒想到居然是詐屍了XD7 Y0 ?& @, f& v$ x1 K  |2 f- r
; H4 R% q$ P+ y1 e# L/ A
不曉得3.91有沒有修正這問題...
( a- D! J4 U2 r0 w: l不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
& A+ m$ q3 O7 J& `. |' O  z1 v- S- @1 d
的确
- ~4 u1 m( ]9 F9 `用惯3.82之后想去整3.91觉得压力甚大..
2 U0 ?' |) P3 y6 c干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12929
在线时间
21871 小时
注册时间
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”。/ c0 P; f' T) @5 e* x

0 U( y: J' \" z然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-10-31 04:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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