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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條" A# i+ F6 d* g* N# z, e
會在每隻事件怪物的腳下顯示' z7 E  T% x9 v$ i2 |( e& M
問題是不知道為什麼, b: R' k0 {$ Q* Y! x' l, A# e# F4 ^
有時打怪打一打會跳出, e; r( W0 o% y) Z8 O
---------------------------" O: Y6 G  [$ i) Q3 o
XAS) b8 k2 d$ ~6 k+ {$ q
---------------------------
1 K, B! B6 U* m$ ^4 K脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。! H3 q/ c  K8 F) Z& L

5 }) _2 D1 M) X4 H8 r, zdisposed bitmap
$ s% n$ @; b6 N# ^; r5 O---------------------------
- ?) R! k: J& z" X* M0 P: Y' D確定   
7 V/ {8 E. ]+ m---------------------------% r0 A" j$ Q$ Z0 \6 ]% q
- F9 Q) x, J9 r- Y# d! I& O, |" O
這是腳本
. C1 j- l' r3 M9 N# ~# D( b3 _# v' @+ f9 @8 }
  1. #===============================================================================
    1 U+ p) h2 p5 U4 C
  2. # MOG - s Hud 1.0      ! p, @- Z# [0 F/ g3 q% A, m
  3. #===============================================================================0 L- T% n. x- t% N9 x9 [! C0 E
  4. # By Moghunter . P" q) B3 R1 |7 M3 G5 B
  5. # http://www.atelier-rgss.com
    3 g* s4 ^% M" {( o6 [) s1 L
  6. #===============================================================================1 H" d5 y$ s- R
  7. # Translated by Calvin624
    ! D+ X& U& U& V* Q
  8. # http://www.xasabs.wordpress.com
    6 j3 `0 r! M" j& Y) ]8 Q  U" R' y
  9. #===============================================================================
    # |& }0 L) }- m$ |/ W
  10. ###############################-DESCRIPTION-####################################. |- A$ z: i# a# `2 e) g( S; \+ u
  11. #===============================================================================
    : g) n! l3 A' U2 f$ _
  12. # Personal HUD – displays the HP and SP below the hero.
    0 H* S# D% I1 Z$ x
  13. #===============================================================================
    3 Q$ N2 R# t& W9 h" R3 \$ @: e
  14. #
    * t5 }1 _( V6 V* _! ^: E( K
  15. # Graphics required:! X! W2 Y% }/ v+ Z
  16. # ; ]* |2 K5 g9 K. g) L9 q8 u! P+ x
  17. # S_Border_HP_Meter.png
    , \/ x6 ]- F4 n# h% j8 J
  18. # S_Border_SP_Meter.png; R; @6 w- A+ O$ j1 D6 k
  19. # S_HP_Meter.png
    % ~: u  t8 I+ H+ B$ ?1 B+ I) N# y! m
  20. # S_SP_Meter.png* m8 M1 @  h3 k0 B1 Q& G/ y. G) R
  21. #. P' @4 ]1 h7 g* k
  22. # All images must be in the Windowskin folder.- X9 w% x  \  `% L- v
  23. #
    & T" @' r8 ]1 ?
  24. #===============================================================================
    0 k: j- Y. r! h
  25. module MOG4 \% u! J# _. j4 A5 {
  26. VISIBLE_DEF = false  ; g/ w) w  {( b8 ^* L
  27. # Show HP meter?
    4 C- n- Y4 \$ p
  28. HP_HUD = true' E* Q# n: {5 E6 n  S
  29. # Position of the HP border
    5 `3 _5 |7 O7 V1 ^( R
  30. S_BORDER_HP_METER_X = -2) f+ e0 H& l- y& _1 b* j4 d. B
  31. S_BORDER_HP_METER_Y = -2  
    3 i7 P  E$ |) i- o$ Q
  32. # Position of the HP meter
    ! P, x2 _& z6 F, N% h1 T2 s( P3 `4 U
  33. S_HP_METER_X = 0/ ~6 G2 H, E# k& s+ D
  34. S_HP_METER_Y = 08 ?2 P+ [! I, z* ^+ a5 U* t3 w3 A# f
  35. # Show SP meter?
    5 S2 f0 {' S& N* T$ s# F+ Z9 t& V
  36. SP_HUD = true
    ; p5 |6 T  l/ r- n3 v- h2 n3 P, T
  37. # Position of the SP border7 k4 E4 m3 u! k/ H! u# u& j
  38. S_BORDER_SP_METER_X = 06 E6 _5 ^5 A- \( I$ h* d: v* `& ]' u
  39. S_BORDER_SP_METER_Y = 10
      m8 m2 [& O$ i4 g9 t. r
  40. # Position of the SP meter$ r: _2 A, J0 ]' b, ^
  41. S_SP_METER_X = 0
    ' y. _& O2 m( Z9 \$ E
  42. S_SP_METER_Y = 10
    7 s, j6 d- k, k. T
  43. # Switch to disable the HUD
    % [2 Q: ^% G6 l+ @& @
  44. DISABLE_SHUD_SWITCH = 5
    : r3 c* `* G. [& R1 ?" [
  45. RANGE = 20+ Q' z: H5 l0 B) ~# V( c/ d
  46. end: y: @/ ^  e" B9 T
  47. #===============================================================================, O7 w  x+ D8 G  y
  48. # S Hud% n6 c9 I( y2 w1 @
  49. #===============================================================================8 y2 S/ [2 Z8 z% z6 i, X5 y
  50. class S_Hud < RPG::Sprite
    ) @! _# h: a2 q( E( t3 s; N
  51.   include MOG5 ~$ D& V8 J1 p) O6 I0 {) a( i
  52.   #--------------------------------------------------------------------------
    + R& a$ h: S* g4 L
  53.   # * Initialize. T6 |5 ^: ~  \6 R5 H
  54.   #--------------------------------------------------------------------------' Y& _  Y+ _% \4 {! q# C
  55.   def initialize(enemy,viewport)
    $ k' u" l  V+ r; L: j7 J% v3 T
  56.     super(viewport)
    # r! G0 u$ f& m" o' y
  57.     @enemy  = enemy
    9 b" {3 M$ t, }( p2 C  p
  58.     @battler = @enemy.battler
    : w+ t: E) ?* ~- ?% y4 ~; X5 W
  59.     @old_hp  = 0
    ! d; L' e( i: F
  60.     @old_sp  = 05 F6 f% c/ ~( B
  61.     @old_vis = false
    - X8 m2 l( j# H: F* n$ U- i- Y7 b0 L
  62.     self.bitmap = Bitmap.new(100, 100): S9 g) T# X4 [  |7 ^0 w9 ]0 d  H
  63.     self.visible = (VISIBLE_DEF)#false
    ' r0 B' M$ ?& I4 Z
  64.     self.z = 100" L+ Q* ~. d+ @- b
  65.     #HP Border -------------------------------------------------------------------
    3 G1 c4 {! Y& B
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")1 _) r2 h6 n+ e: Y
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)6 M( {, T6 Z) M* j# Y; {
  68.     @layout_sprite = Sprite.new
    - I  T/ `6 K. O+ w. ^
  69.     @layout_sprite.bitmap = @layout_bitmap* I% b, C. P7 `6 D# {4 {
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)  \0 P4 \0 S) N
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    / ?* r1 E4 Y$ i7 z/ n( k, u& ^
  72.     @layout_sprite.z = 5001& O; d$ F9 A# @& Y/ [, T
  73.     #HP Meter ---------------------------------------------------& s1 G5 f' o  e
  74.     @hp_flow = 0  C/ f$ u: V* Y5 j# I! V/ [& Z
  75.     @hp_damage_flow = 0
    / g3 ~% |* r. v9 V' T. e
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    ' V6 ^  l6 Q8 d/ D8 ]  \1 n
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    % K  ~0 r$ `' p, F& S& x+ H
  78.     @hp_range = @hp_image.width / 3
    + y+ u1 y2 b5 a, u/ _- X; z
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    ' @  v# ], ~" K/ {
  80.     @hp_width2 = @hp_range / 2
    9 h- E. ?) G, r8 F- ~- N1 P
  81.     @hp_height = @hp_image.height / 2% y, }1 ?8 k+ }' K' E- ?
  82.     @hp_width_old = @hp_width+ R4 q# t4 [8 P: ?8 E
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)) _* G( ^) l) i  x, L) B2 n
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) & w0 [. l. h% U1 m7 x9 b$ n: x4 D
  85.     @hp_sprite = Sprite.new
    * y7 y& {: {4 I0 ^$ l% O" @+ A
  86.     @hp_sprite.bitmap = @hp_bitmap. k: W/ }, @0 Z5 {- C
  87.     @hp_sprite.z = 5002
    " ^' U4 {& c0 p, k; |) H) R: u
  88.     #SP Border -------------------------------------------------------------------
    6 v  h! O1 q5 D% V0 B# d
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    $ J% a( J6 u# e: W7 \
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    3 `$ W5 Z" {7 q9 G
  91.     @layout2_sprite = Sprite.new
    ' |! e: j# L) `5 h& z
  92.     @layout2_sprite.bitmap = @layout2_bitmap( ]: W1 t# |) K. L
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    7 R9 _/ N4 x' {- B; d
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      * I' Z0 s* W! @
  95.     @layout2_sprite.z = 5001    % x6 o3 M. K2 }7 d; |
  96.     #SP Meter ------------------------------------------------------- T& E/ U3 s2 w/ ]) ^( [
  97.     @sp_flow = 0
    3 Q$ a( U+ G* @' k, h. ]
  98.     @sp_damage_flow = 0& n5 j8 l1 S/ _" [8 t; f# d
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
      X( D' Y! F3 h3 X# ]9 P
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    * w  ~/ |. y( h3 O7 m
  101.     @sp_range = @sp_image.width / 3' u+ i& o0 V' w  [8 `- z) K
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  ; I, `; L% }( ^4 q
  103.     @sp_width2 = @sp_range / 2
    & |1 R$ Z% C3 l2 W: z1 e7 E9 G" \
  104.     @sp_height = @sp_image.height / 2
    ( f+ e' L0 z; C( l1 r  t
  105.     @sp_width_old = @sp_width
    ! H7 m- V! d" b. b/ g- Y* k- J. m
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    4 b9 B5 _+ S1 _
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    # Z: j  R1 s& p! G. I5 w9 k4 p
  108.     @sp_sprite = Sprite.new7 S% J, G! W  ]$ V3 a4 V2 ?
  109.     @sp_sprite.bitmap = @sp_bitmap. j& p. V# U% P
  110.     @sp_sprite.z = 5002
    ( p6 N9 W4 I! M1 h
  111.     update
    5 q* \, ?% W) X2 ^+ N) P
  112.   end+ M! r' x4 a8 n. p0 \
  113.   #--------------------------------------------------------------------------3 W: |& o3 p, {6 d5 {; L3 V; y
  114.   # * Refresh; O! q, Q, O. _0 Q
  115.   #--------------------------------------------------------------------------0 e) t: A- [; u/ R5 E8 Z' Y0 n  a
  116.   def refresh1 j" q& B/ L. s
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    / W3 p" ]. }0 a( l' ?
  118.     self.bitmap.clear  K/ o' Z& X: N" V
  119.     @old_vis = self.visible* B" f; o4 j8 s6 z; M8 c  o; R/ {/ X
  120.     @old_sp = @battler.sp/ k1 ?% s+ X, g  ?; h4 y
  121.     @old_hp = @battler.hp
    6 D# P2 ^5 s/ }$ A! N' u4 t
  122.     hp_flow_update
    - y' y6 U" E4 G6 m. F
  123.     sp_flow_update0 [( {1 O$ [% H5 O' U
  124.     hud_pos_update9 V7 a  R6 v, _9 q
  125.     visible_update
    % Q# c- [+ }2 k; N! Z
  126.   end! q# h( [! N2 j
  127.   #--------------------------------------------------------------------------
    5 U. m8 u7 @+ K0 n+ p, k
  128.   # * Dispose
    - u2 R9 {2 _# e- o2 p
  129.   #--------------------------------------------------------------------------
    % `2 \' R; p; U' E
  130.   def dispose
    1 Q, k: r" o) S
  131.     #HP Meter Dispose
    ; Q) W* L/ S4 s8 B) m4 f
  132.     @hp_sprite.bitmap.dispose
    4 K  i, r+ N$ \+ H, w& r" f
  133.     @hp_sprite.dispose
    . K0 c, O8 ]& X0 r
  134.     @hp_bitmap.dispose
    , V5 h$ o6 ~- o% X0 ?; L
  135.     #HP Border Dispose/ b0 u" z$ ^; _! `' \, [# f* D* _
  136.     @layout_sprite.bitmap.dispose
    " y4 v! B$ ?) s$ n# z( @9 u
  137.     @layout_sprite.dispose
    ' K- {8 {! X- h
  138.     @layout_bitmap.dispose
    # v2 P" v# V* x6 K
  139.     #SP Meter Dispose* T+ y( O4 Q/ i" d; P
  140.     @sp_sprite.bitmap.dispose
    0 J8 F$ {' m0 @% d
  141.     @sp_sprite.dispose" r# r+ {5 S) V) `
  142.     @sp_bitmap.dispose2 f0 x! z+ q5 p. z. j
  143.     #SP Border Dispose% r4 q0 B3 a( m6 k: j9 S
  144.     @layout2_sprite.bitmap.dispose" Y( y4 E6 |5 A$ |! Y. ^
  145.     @layout2_sprite.dispose9 V$ i0 l. l6 K2 W7 c
  146.     @layout2_bitmap.dispose
    ) R1 J4 F/ R( M$ x1 ^3 }
  147.   end' [- V* S0 y# A" t# \/ T9 p
  148.   #--------------------------------------------------------------------------
    * v4 x7 q+ e# i7 J
  149.   # * Update
    * a4 u+ P4 Y! F, o* j
  150.   #--------------------------------------------------------------------------# I! K7 J( H; j/ S5 H" j
  151.   def update
    + |% r: V& x/ }2 L
  152.      @battler = @enemy.battler 0 c7 i) ]. I) N3 M0 d; x" ?5 `
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    / L# X1 }7 W& y  _0 w
  154.      if self.visible) {. H# F, `  {9 u& a' x0 C
  155.        refresh
    & d& B& w/ S) T0 B6 z
  156.      else
    $ t5 U$ y% k- r+ v4 n; G) B- {4 J9 L
  157.        self.bitmap.clear
      ]  q* P+ T9 E* {; ^3 Y
  158.      end5 X$ l1 U5 `4 T5 \
  159.   end
    + M0 ^) ^% ], U" B3 W3 e7 X1 ~
  160.   #--------------------------------------------------------------------------
    & {* X# N- A/ k) T5 N' c  w# S- K
  161.   # * Visible Update
    ! {0 O, H" ]% {/ \
  162.   #--------------------------------------------------------------------------* G9 E( N" n3 m5 T) i1 K
  163.   def visible_update
    # p; X- m* }0 @, I  l% n* s
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true5 r) |4 f0 _; D+ A' L' g: M4 L
  165.        @hp_sprite.visible = false
    . Z! U3 z7 ?3 J4 {7 C
  166.        @layout_sprite.visible = false3 H* E1 i7 L' k! C! u/ t. b/ _
  167.        @sp_sprite.visible = false' b3 r4 S. A" c. w% f
  168.        @layout2_sprite.visible = false
    # g/ j2 g6 y3 @3 l6 Z
  169.     else
    * \% i* y# c: O
  170.        if HP_HUD == true
    , t: v9 c4 M. i
  171.          @hp_sprite.visible = true5 B# ?, h5 [7 T# g5 n
  172.          @layout_sprite.visible = true
    $ }# h% ?9 Z! H+ _5 @; v( A
  173.        else
    + b( a" I) S; D- ?+ E
  174.          @hp_sprite.visible = false+ v9 N& |2 o# b/ u1 M% q% n& H
  175.          @layout_sprite.visible = false
    , W! }9 p6 p. [6 H  i
  176.        end  
    5 Y" d& F1 W1 j9 e; K
  177.        if SP_HUD == true
    2 W4 H! t) b  c6 Q- i  i
  178.          @sp_sprite.visible = true
    ) f  E" t$ |% Q  l, d% {
  179.          @layout2_sprite.visible = true! c' H, J- R5 K( g: V4 J' B, {
  180.        else' n, A2 P: Y: {. O
  181.          @sp_sprite.visible = false/ }) {+ S: E$ F8 Q
  182.          @layout2_sprite.visible = false
    # Q% `: A( J0 j
  183.        end : g& Y, m7 {7 X: M7 H
  184.      end  
    & b' G4 ~7 u. h4 x  U( O% J9 G- O
  185.    end # @0 h- M+ y4 M
  186.   #--------------------------------------------------------------------------
    - f% h5 r4 c0 M8 x+ c/ d
  187.   # * Hud Pos Update( K$ ^% F8 a4 s2 ?8 t
  188.   #--------------------------------------------------------------------------5 h9 T4 E8 h& |  l2 m  k: c- i: C
  189.   def hud_pos_update
      O' ?/ l0 k5 P: i& f
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X# m( P* o+ i- l& M* `' F$ {
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  , z2 q9 W0 c: X0 m
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    : D1 I) u, y, J; y1 s! V" w
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y + P  }* m' ^$ e2 G9 x1 C% H+ T
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X5 k, [6 b" D4 m3 U' b& ]/ z
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    ! E. x5 Q9 U" J) _5 }" k
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X7 o8 z3 X3 c4 R5 _: Z# i" t! W
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     / n6 Z0 n$ |# G5 D  [9 c
  198.   end  , K2 w2 b1 n7 F
  199.   #--------------------------------------------------------------------------
    0 y' S) m2 X5 j" m# T+ V
  200.   # * Hp Flow Update7 P4 S8 B  }0 R  H7 e2 d: n
  201.   #--------------------------------------------------------------------------
    ! l3 B+ V1 q, _+ h6 ~5 O  ]
  202.   def hp_flow_update
    * k* b6 X: r' A! K- {
  203.       @hp_sprite.bitmap.clear  M& c2 D6 h4 P8 j& h, i5 b# I: u
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  & `* Y$ p! |3 a0 D2 d8 {5 @3 E
  205.           #HP Damage---------------------------------4 t& r0 Z6 t% F) J% G" b
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    . K! w) V8 E8 y4 C) W$ g6 W* g& p
  207.           valor = 0.5 if valor < 1          ( f4 i. |5 ~* U0 K0 B; t6 N
  208.           if @hp_width_old != @hp_width  @8 n! ~5 x& r1 D. ~( |
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  ; h; ]6 A* z0 y( M. s6 K" w4 ~
  210.           if @hp_width_old < @hp_width
    & W$ d+ V9 n/ c) t. v) ?
  211.              @hp_width_old = @hp_width
    ; b! D* A& R& Z! |. V! m
  212.           end      0 |. c) o: x) ~0 }. o3 S( u
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)% o9 k$ H; x3 [8 e+ e% ^
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       + ^# z  y4 \9 }. P: c2 X) L
  215.           end        : h2 V) t, J9 t" h) w
  216.       #HP Real------------------------------------3 h% a+ m2 A( F: Z
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)1 B& }( V# P* @: {. C
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    8 p+ b9 y3 h7 S, Q
  219.       @hp_flow += 2  
    ! N1 x9 `. B' M8 k6 {
  220.       if @hp_flow >= @hp_image.width - @hp_range
    $ Y, l- H/ x2 x) M0 u
  221.          @hp_flow = 0  
    4 V( w9 j* [$ P- i- K0 [% L
  222.       end4 p' G; K/ n& b
  223.   end   
    ' }8 P- ]* j* K; p- z
  224.   #--------------------------------------------------------------------------
    4 s! Y8 G# `8 S( |
  225.   # * Sp Flow Update
    7 b7 \0 [9 {2 Z9 F( t% m
  226.   #--------------------------------------------------------------------------
    " \: d) T$ ]" o- t) C8 k
  227.   def sp_flow_update
    ; O" D& r0 M: U4 a
  228.       @sp_sprite.bitmap.clear" w, C' |0 A( [) Q% {+ Q) v& O! B  U
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    3 ]1 {$ o5 X, ~. o
  230.           #SP Damage---------------------------------+ |3 Z* q6 _- ^9 r
  231.           if @sp_width_old != @sp_width
    & S/ P8 u: l( c7 |$ _  O3 K
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100/ J3 b( c" I" H+ @8 o" ~
  233.           valor = 0.5 if valor < 1              * ^( ]7 J7 a, M! D
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  0 w# |% D$ a+ d) P/ C+ k
  235.           if @sp_width_old < @sp_width
    + a3 k; f$ @, p6 Y
  236.              @sp_width_old = @sp_width) @: ^( h& m$ F7 t; A! W8 U1 O
  237.           end      
    / D2 m) L5 {0 b* `, x& @6 v
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    5 o1 z9 s" b6 j
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    % M0 Z1 h1 ]0 y- p
  240.           end
    # ]& U+ K% Y6 u1 T$ p: l1 l% ?$ |$ j
  241.       #SP Real------------------------------------: O- {% w: S* t# f( w6 K: J, n+ z& H
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    4 o, J$ h: \" s! w* o, y
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    " G9 f* j! B9 L& A0 s
  244.       @sp_flow += 1  ! n" v6 A  m) n+ A" }. N6 T
  245.       if @sp_flow >= @sp_image.width - @sp_range7 S0 q7 a# \6 W6 h6 u  g
  246.          @sp_flow = 0  
    ( I. S( I, {1 k+ a# I1 I; Y& Q% @
  247.       end  w$ B4 w6 z( h! ]0 d& Z
  248.     end            $ h& v. e  g" P! }
  249.   end
    & a! n4 K  u& x& _8 k% b! b
  250. #===============================================================================- X( G3 B$ B9 w& m( w! G
  251. class Sprite_Character < RPG::Sprite. x; `/ x# e5 A; ]0 ?; C  G& j
  252. #-------------------------------------------------------------------------------
    % k6 v& z3 k- v2 q" M4 t) W, }2 }
  253.   alias :xas_emini_hud_init :initialize. F+ g0 g0 l2 K# a% F
  254.   include MOG3 K% B+ u6 W) J
  255.   def initialize(viewport, character)9 S( s" C" G3 ^; ^. p
  256.     xas_emini_hud_init(viewport, character)1 c: p% R+ `% d
  257.     @viewport = viewport( a* ^% \  X2 A+ v* h* c5 S
  258.     return if @character.battler.nil?1 _7 R: P3 y: n: ^& v7 p
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    + A* s: R+ `# G
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)4 |2 i5 {% h3 {" @2 c1 C
  261.     return if @character.battler.is_a?(Game_Actor)
    & Z* E% }  {1 b% o( ^% H
  262.     @bars = S_Hud.new(@character, @viewport), L& D& w" {2 o+ S
  263.   end
    3 c; b4 u, C3 T9 C6 T, m2 D1 R
  264. #-------------------------------------------------------------------------------
    ! d& @# v( C0 G7 r5 A8 O
  265.   alias :xas_emini_hud_up :update$ D4 T/ u! u/ h5 A, a& E' x8 _3 R
  266.   def update, `$ {: y2 B, p- g( Q9 G; b% ]
  267.     xas_emini_hud_up
    & F2 Q' Z0 p5 e
  268.     return if @bars.nil?
    ( q9 _! P) h' b% r. m
  269.     return if @bars.disposed?
    7 Q- p2 c: S/ ?: H. ]& q7 o3 U1 m
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs8 g0 z8 s! N0 X9 a; s, k0 E
  271.     @bars.visible = (dis <= RANGE)4 T$ L+ l1 {; H# P$ z5 W' t( V
  272.     if @bars.visible
    % o- n% F) S1 D2 O9 }- X1 M& X
  273.       @bars.x = @character.screen_x# - @cw / 41 q% d6 G8 q, }  `% q5 V
  274.       @bars.y = @character.screen_y# - @ch / 4
    # s" i$ T1 y7 ]( v
  275.     end
    3 g/ z9 e( H0 y. n& t9 F
  276.     @bars.update
    " C* r0 I% j2 c, P# C, T# `6 v
  277.   end
    7 Z3 N3 b" B1 g2 J- g
  278. #-------------------------------------------------------------------------------
    % ^+ O# g; v$ y7 P( y2 g
  279.   def dispose
    ( [9 u6 M  l4 E7 D
  280.     super
    - y2 l7 m$ |: R0 Q$ J+ K% Z. G
  281.     @bars.dispose if [email protected]?
    - f3 y# y5 N$ K6 n
  282.   end" g) N& L  y2 a6 \" `3 Z1 ^% E
  283. end1 i, \3 c: `2 s# n
  284. 4 ?0 M5 W: k& r
  285. $mog_rgss_s_hud = true
复制代码

# Y4 ]) d. {+ p; U% t  o' D- }  D
6 v& q( l( Z6 F0 U* [! {( }
9 G, {* G* E- W( @上面所說出錯的203行內容為- N/ m/ Y& D5 F5 U8 l# t
@hp_sprite.bitmap.clear8 @0 F/ r% v4 X4 S

6 ]! ^- e5 f, O. {% j& g想知道怎麼解決& M1 r! C; }9 e+ x' _

: }: }' T, W9 Y: J4 g/ R該腳本支持3.82
/ b' o. ], C0 ?3 o$ l& S8 e" ?! b! l
下面是圖檔,要塞在Windowskin下
' S+ r; I" @& q% p* z2 G. G( L  C  G$ X$ w9 |: P' g: _" y
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) 0 h' b5 V  z  O/ b

$ d* B( n' D, h7 Y/ E- `- c  l/ X2 T0 @  N$ m
5 k3 c) Z" M& K$ H* L* q# N

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适" ^+ d5 X& C0 `' |
结果尝试刷新了一个已经释放的图形7 K2 E( j, y( ?5 X' B

" g6 n9 L$ ^" k2 s( h
6 c* r8 t8 ~( B$ {' d" R3 u2 X- j+ G# z$ d& s- [
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?( q1 Z: u* `4 @& N) R8 t% W
复制代码
不要后面那个条件貌似就没问题了。, Z7 G7 v$ p/ z8 S

* k9 J1 d. @+ X! ?; k9 W( R, Y: N, ^+ z2 {" i* @
  h7 h, [' G5 A- V8 j
6 f9 a) z  ~. \9 b/ ?
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
385
在线时间
1775 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
; j4 I7 z9 E- T. ^' L/ C8 q8 t貌似是释放的条件不合适7 P0 z+ Z2 J# e5 [, p* m! f
结果尝试刷新了一个已经释放的图形

, ~, ^9 N( P' R0 J: H把後面那個條件弄掉後,的確沒問題了
+ {" D) S- C# U/ p/ k$ @目前從關頭打到關尾結束都沒再彈什麼錯誤
4 r, i, ^3 D! A& A3 \非常感謝+ d# b9 z% f! x3 x7 y' e

# `' C1 n( s7 }) G0 I不過我是參照著別人腳本改的! w$ M2 e8 T+ _( b
他寫的條件式也是那樣,但我用他的沒什麼錯誤
2 `% s! ?0 N( V5 G不知道是怎麼回事
' c' X. {: {/ F- v, q; i是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
7 M- C* N  t, R4 Q) k! L; d5 t我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events% {: ^- L) B" y5 ?3 g, t
嘛..这个数组吧..我在以前试写队友的时候关注过一点! ]& c6 J! T: T! r$ |7 Q) q
不知道XAS内部对它做了什么手脚还是为啥,
& C1 q+ Q2 i8 y" `+ A9 J& u/ w# w- T总有那么一瞬间,没有被消灭的敌人事件也变成了nil0 {/ m4 n$ C' z7 e7 v5 b2 ?

8 r8 a5 G) q/ F7 m2 b: W$game_map.events.values[@enemy.id].nil?/ e# N8 s. W, Q) r  c2 N
因此自然而然的返回true并符合条件把图形释放掉了
. o) o6 |2 i, s3 \8 d; p1 a7 d0 C5 n
LZ应该有注意到吧,2 V$ P: p) }5 b& F! o( t4 ?: x
我测试的时候发现报错前几帧,图形会消失,( V. m" t1 k  T) I  w+ P
应该就是“误以为敌人被消灭”了。& r" L7 R8 U3 }7 Z+ n" R: P) V; U
+ X, x' w  G% r; ]+ _2 u5 I
受限于个人水平,至今无法找出$game_map.events的真相..
* P! N7 t, P* S6 p" w
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
385
在线时间
1775 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
* J/ j9 d4 w% c5 I9 C$game_map.events
) G: r. I& I: z8 [; T) b嘛..这个数组吧..我在以前试写队友的时候关注过一点
% A: L: T' z: j' @; a0 M4 R8 q不知道XAS内部对它做了什么手脚还是 ...
" }8 R) H+ K  P1 X! C) |
當初我把那個條件式看了三遍,都不覺得他有什麼錯2 _+ g1 @" p. ~# B: j
原來還有這麼深奧詭異的事XD
/ r( D- u: g  p; W1 J1 o
4 _. O7 ^2 c/ x' ^0 \錯誤發生前的確會有圖形沒顯示出來
6 m: D1 v# z9 {/ R1 c( o& \6 a  v& C不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
1 _3 z8 f+ L$ l$ t- a; _0 ]" s沒想到居然是詐屍了XD! U2 J4 P1 _7 d
& }  W# i! ]# D1 ^5 _1 s2 F) m
不曉得3.91有沒有修正這問題...% {" W$ R$ M1 p9 c) s$ A7 c
不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
0 o& q# K* C& u: g( e) |- i$ i' K
的确7 \' d1 @' }- p
用惯3.82之后想去整3.91觉得压力甚大..& d( g9 A! C/ F. O) r" x
干脆就等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”。
% j0 E. I4 y$ }& S# S; V
+ \1 p( I) i9 o! F然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-6-11 16:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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