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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
+ k: g0 J' w" I7 t: M0 V會在每隻事件怪物的腳下顯示
6 |9 u9 S0 S: c1 h問題是不知道為什麼
  e9 U2 ?# ~7 C. Z3 O" V9 ~/ n有時打怪打一打會跳出! T% U7 M+ S, c4 \0 ]
---------------------------- Y- s  P8 |$ k, X2 p0 R# {: o2 b
XAS
$ H5 Z: H& E0 L# R, K* y) b---------------------------" w8 l/ {4 U& i* s4 U* N
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
8 g3 v, O1 V- |" w) Z( C8 P# }7 \1 F2 p; k- Z1 l  j
disposed bitmap
3 _6 I8 @% z" z9 }) i* l1 z' P0 i---------------------------
5 W) _; M7 I- j$ a8 V7 ]# T4 l" Q確定   
( _3 r. V. R3 I---------------------------& h! t) h$ h* ^% ?

; q' C$ D% d& B0 J這是腳本4 G/ @+ T! d9 D: `* l4 I3 l( E
( t; L# W  {! |  G0 q6 A- K3 k# ?
  1. #===============================================================================
    / G& Z( z; n0 [1 S  w
  2. # MOG - s Hud 1.0      
    # _; D6 ^* R/ R) a' v% p
  3. #===============================================================================
      z, C, }. g4 G  n6 o
  4. # By Moghunter 2 C6 f0 L' `) V( v  I/ h) s6 O
  5. # http://www.atelier-rgss.com
      b0 o+ L* {' f8 w; o
  6. #===============================================================================
    ) X" n$ F/ g% [- u
  7. # Translated by Calvin624
    6 j" ?3 E4 b# o, A
  8. # http://www.xasabs.wordpress.com
    3 m; I9 {0 z. w9 q) @5 m
  9. #===============================================================================
    4 I# g. q* ?* o( T& A& x& @
  10. ###############################-DESCRIPTION-####################################
    8 w, k5 K) H$ S, x# x2 K4 p: W
  11. #===============================================================================9 m% H3 r6 w# D% c0 C, J! p# }
  12. # Personal HUD – displays the HP and SP below the hero.) [+ }# g, f/ t$ p, J; j7 y
  13. #===============================================================================
    ' \1 l9 v! o/ \6 G( a' ~6 G9 c
  14. #
    7 q0 S: Z4 t, A0 t
  15. # Graphics required:- o( J8 x8 E5 {4 n' ~* W
  16. #
    ' _$ h2 U& y' v# Q) T. {
  17. # S_Border_HP_Meter.png
    # Z& g1 r4 D# t0 I. W
  18. # S_Border_SP_Meter.png
    3 w* i: J: f3 Q
  19. # S_HP_Meter.png
    : h, r  q* t! c7 {. J, V
  20. # S_SP_Meter.png
    5 V* X: o# i/ `$ w, t: {+ h
  21. #
    ; `/ h2 q8 E; k5 v
  22. # All images must be in the Windowskin folder.7 Q! J6 ]' b: o( _8 t8 K  g/ B# ]
  23. #
    0 E" ?  M) m) z* l% M
  24. #===============================================================================
    : p0 l$ e  b" {( V( c# N  l5 [
  25. module MOG7 X6 L( Q  p9 o- O- X) N. ^. y
  26. VISIBLE_DEF = false  7 E* n* X! A, v0 l3 {; {0 t+ L
  27. # Show HP meter?
    7 n' r: f) f. F) J1 t6 I
  28. HP_HUD = true9 b  f/ S" |: q  i  u+ k3 u& s$ o
  29. # Position of the HP border: _) J1 {/ ^9 B. g
  30. S_BORDER_HP_METER_X = -27 p8 a2 T7 y4 w6 Q( h/ [
  31. S_BORDER_HP_METER_Y = -2  
    1 V8 }# {, U7 K# z4 u
  32. # Position of the HP meter
    " b' j) S; z# T; K" w4 b/ n% A  [# d
  33. S_HP_METER_X = 0
    , ~5 Q# s, {" k/ H
  34. S_HP_METER_Y = 0* {0 ^/ S9 s% s* N9 c* Z4 g
  35. # Show SP meter?
    3 p2 Y) o: Z6 b1 g& I6 }6 d
  36. SP_HUD = true
      z; B- ~% z. J/ l
  37. # Position of the SP border: I; z3 ]6 \0 n% C0 C8 G. F+ P5 `
  38. S_BORDER_SP_METER_X = 0
    2 x$ ?! o! [4 Y2 b$ X5 U4 S* E  z
  39. S_BORDER_SP_METER_Y = 10
    - c& H/ b. J9 x! {! @
  40. # Position of the SP meter6 j0 ~- G9 K5 {! d
  41. S_SP_METER_X = 0
    ) s% y! e" F9 W4 k
  42. S_SP_METER_Y = 104 y6 A9 \  \7 }" A
  43. # Switch to disable the HUD6 v+ k0 O% g6 R9 f; h) s2 \
  44. DISABLE_SHUD_SWITCH = 54 ?! l8 N  \  _) V
  45. RANGE = 205 p" k. [$ b  J0 i7 L7 v
  46. end0 W- u1 c' Y. w$ I
  47. #===============================================================================
    . Q; ^: t8 A; g; p' b
  48. # S Hud
    " [' z. I) Y1 @+ G  j: d- B* w
  49. #===============================================================================
    ( g$ o# K/ }. y2 m& c! h9 y2 [: i% n
  50. class S_Hud < RPG::Sprite
    ) w1 V1 Z' r# C. N" Z
  51.   include MOG
    6 t+ j# M9 P$ V0 }8 w4 u
  52.   #--------------------------------------------------------------------------2 G- D, Q8 {2 F
  53.   # * Initialize
    + `9 t: F! q% W) Y& F0 w% k
  54.   #--------------------------------------------------------------------------6 o/ A7 ]1 {$ \; l8 Q- x& d) {2 m. d; C
  55.   def initialize(enemy,viewport)
    0 E1 \3 {) ]. ]6 ^+ c
  56.     super(viewport) ! m& {/ L" o1 Z
  57.     @enemy  = enemy
    5 U. e7 {$ Y- x
  58.     @battler = @enemy.battler0 S2 N- j- c9 R2 U# z" f5 C& A
  59.     @old_hp  = 08 Q  ]6 |0 t" _# D
  60.     @old_sp  = 0
    ! N( t+ x+ a( |( Q8 d4 j; a
  61.     @old_vis = false
    ) a) S7 s8 {% t0 F  x5 E' o
  62.     self.bitmap = Bitmap.new(100, 100)
      R& {, U0 O. l7 K
  63.     self.visible = (VISIBLE_DEF)#false
    ' I5 n8 L/ k/ W; m4 p
  64.     self.z = 100
    + F- B2 z. f' t/ I4 @
  65.     #HP Border -------------------------------------------------------------------
    - F  H, V  y. a+ q7 L1 S; {0 F2 S) ~
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    . q4 D8 D! C. \- [8 J
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    4 j- C) d0 ]' `& L
  68.     @layout_sprite = Sprite.new2 d2 Y$ X4 o# L. r
  69.     @layout_sprite.bitmap = @layout_bitmap
    ( F0 F) a3 g- D
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
      J3 m) f- p+ w2 C  v' b
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    : M" D& R) C7 P1 g2 v# z3 U, z
  72.     @layout_sprite.z = 5001
    6 t9 h& o/ ?, H' j( O; j
  73.     #HP Meter ---------------------------------------------------* }$ X( i9 ~- G$ d: K# T
  74.     @hp_flow = 0
    ' G4 ~. ?+ A& l
  75.     @hp_damage_flow = 00 r& ?8 X8 Y7 A1 J, x1 {3 e* p7 A5 ]( a8 Z
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")# F+ D7 C1 g! ~, K0 a& Q
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)) e) _7 [8 v, j& q! M# v
  78.     @hp_range = @hp_image.width / 35 G  C8 k9 v+ e) F
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    ' s6 C& R7 Z- C3 }! _" j2 Q% Q
  80.     @hp_width2 = @hp_range / 2! X/ U) B( I# ~" I- Y* l9 F7 k
  81.     @hp_height = @hp_image.height / 2" s- e& Q! u- Q8 m, Y% K7 E
  82.     @hp_width_old = @hp_width. I! h; q3 q* h! `7 H# L
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)0 z! H4 N% ~  G- K$ v
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    , h$ d& V* `  ^, o
  85.     @hp_sprite = Sprite.new
    . y4 |; P, ^5 \, X+ {
  86.     @hp_sprite.bitmap = @hp_bitmap! z1 b' f, a2 n7 V$ }% P1 m
  87.     @hp_sprite.z = 5002
    & y( M5 X4 e% u# e
  88.     #SP Border -------------------------------------------------------------------
      m/ v2 O6 ?6 Q2 l/ A( r+ C
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    3 l( J4 j) |+ l$ @
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)  d( f9 q- b. h) B" f
  91.     @layout2_sprite = Sprite.new
    1 s7 h7 l4 j( }5 N2 D& e
  92.     @layout2_sprite.bitmap = @layout2_bitmap7 a6 \$ A$ q6 T5 ^
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    ' b- f/ r( f+ B& c& E9 d4 V
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      ! v8 q; a7 Z* g7 P3 j4 s& k
  95.     @layout2_sprite.z = 5001   
    ' z( }8 T' ^# Y2 R# p! w% X1 ~- O
  96.     #SP Meter ------------------------------------------------------
    5 E  d2 n7 }) _
  97.     @sp_flow = 0% p. K7 I3 E' H+ d0 S
  98.     @sp_damage_flow = 0
    ; h+ @2 C: j8 `3 [6 L2 L
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    1 c3 o/ a& W3 r, b3 M! k
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    . a: f/ s! g- x7 U. R
  101.     @sp_range = @sp_image.width / 3
    * T' o, H) L! x8 I+ D# R3 R$ B
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    4 O0 x# }+ o; g: S. H0 G5 U
  103.     @sp_width2 = @sp_range / 2
    5 C) o! i, T7 c
  104.     @sp_height = @sp_image.height / 24 a. A/ e6 e: i  p
  105.     @sp_width_old = @sp_width) J3 t' K9 B& D" T1 m
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height): A8 _/ f2 `- H+ S/ g
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    , d5 N2 }+ @5 }" o1 I
  108.     @sp_sprite = Sprite.new
    . ^9 I) f* q5 |7 A+ a
  109.     @sp_sprite.bitmap = @sp_bitmap
    2 |1 F; D8 s% `% H
  110.     @sp_sprite.z = 5002' [" }& O' l0 x
  111.     update
    ) c% \2 U& O! ^: |
  112.   end3 ]! M6 p: ~5 `; |, [
  113.   #--------------------------------------------------------------------------5 h! s) B$ o3 y4 y- o
  114.   # * Refresh
    ' C+ W3 _$ C! m; p
  115.   #--------------------------------------------------------------------------" V/ U9 w" B* f' [; e' m- [
  116.   def refresh
    ; l5 [1 Q# e4 O& t1 ?* P7 s
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible4 L7 n+ K, |# x  S
  118.     self.bitmap.clear8 l1 i' D% U8 j" l$ e" e- v; i- U
  119.     @old_vis = self.visible. w  l  \! u9 `4 @7 r
  120.     @old_sp = @battler.sp8 Y. M- V9 `( }0 q: q% r7 m; d
  121.     @old_hp = @battler.hp
    ) H3 t, O0 F0 K7 ~7 x6 G4 v
  122.     hp_flow_update
    5 C6 y5 f% N7 ?0 `+ ]
  123.     sp_flow_update1 n) w6 n/ U- [# y, K$ E
  124.     hud_pos_update
    * Q! w; y) I7 e. j6 S: ~  P" Z; i1 M1 a
  125.     visible_update
    / ^  q4 [. _- r3 D
  126.   end
    4 g# p: e$ [3 C0 F7 c  z$ x/ l
  127.   #--------------------------------------------------------------------------
    3 C$ W! V$ M* D
  128.   # * Dispose5 g2 U' C2 g0 C  e% e1 W
  129.   #--------------------------------------------------------------------------
    : X0 Y( F5 }# N2 V. A2 w1 m" F
  130.   def dispose
    2 b8 N3 ?3 U( L; B$ Q4 [
  131.     #HP Meter Dispose, k3 d1 R* W5 s! N/ U" b
  132.     @hp_sprite.bitmap.dispose
    4 h" ~& k) m; I2 f" j1 @' d) U' k
  133.     @hp_sprite.dispose' x2 a$ F  n# l/ w
  134.     @hp_bitmap.dispose, {. _4 q! _' T: s& T! X. L* B
  135.     #HP Border Dispose
    * r# d+ k( Z8 o4 [
  136.     @layout_sprite.bitmap.dispose; I, f: R, j2 l  y% M* v2 ~
  137.     @layout_sprite.dispose
    . b. _& L% W, |/ W, ?$ m' o
  138.     @layout_bitmap.dispose
    : q' ~0 V% ]' m7 q
  139.     #SP Meter Dispose
    6 L0 O0 x( d0 l( |
  140.     @sp_sprite.bitmap.dispose; C! S8 `/ c; @3 w( n  q* }" w
  141.     @sp_sprite.dispose
    5 j+ u8 T( Z: L) ]
  142.     @sp_bitmap.dispose
    / t: k% Y) Y. U
  143.     #SP Border Dispose  ~- S; b' q6 h9 I, O
  144.     @layout2_sprite.bitmap.dispose
    - T, p; Y, F8 ~3 C6 d" V
  145.     @layout2_sprite.dispose
    ; z- Q) H7 f6 a/ f
  146.     @layout2_bitmap.dispose
    ( P1 M' A3 d$ d! C8 y- Y# z# y  e  b: d
  147.   end% K5 |# v& y3 R  _
  148.   #--------------------------------------------------------------------------  J9 p$ h6 `) E0 h
  149.   # * Update, r& ]/ i# p# Q$ Z
  150.   #--------------------------------------------------------------------------/ {2 b/ J9 S1 \" t
  151.   def update
    ; h+ H/ Y7 a5 U$ F. j0 g: l, \8 W( H
  152.      @battler = @enemy.battler
    ' o/ R, d: I* S; w( ^
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?. X& _8 P0 z$ y# F! [2 t
  154.      if self.visible
    # e; G4 P5 e+ i, }, Y; a: z1 B
  155.        refresh+ c# k# |- j: _0 g/ a& D
  156.      else' j5 Z/ Y7 }% j7 w# F
  157.        self.bitmap.clear
    9 i. M9 m' a  Q' Y/ E1 O9 h: _, W" u
  158.      end
    # _  Z1 ~/ }6 E* `( z! p9 f- a9 a
  159.   end! ^( W* p0 X  X
  160.   #--------------------------------------------------------------------------2 Q4 U+ T+ U* P0 M
  161.   # * Visible Update
    ) ]6 C, {& l9 {+ d- v$ n2 G
  162.   #--------------------------------------------------------------------------
    # f( l( |, y7 q# A! Z& J
  163.   def visible_update
    ; V4 [# d* L; v
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    ! }, b) t1 x  x9 z0 V, A2 B- r
  165.        @hp_sprite.visible = false
    ) a, L; k* A4 t- ?" {
  166.        @layout_sprite.visible = false; ~1 `& n* c% }/ ^- @' [
  167.        @sp_sprite.visible = false% z! j. T2 M; ]  J8 n, C8 Z& I
  168.        @layout2_sprite.visible = false
    , A; n, R9 r$ I
  169.     else# r( ~' v# [: [
  170.        if HP_HUD == true7 d1 o4 M4 E0 E0 l) ]4 y
  171.          @hp_sprite.visible = true
    + }+ b! a- L, Z
  172.          @layout_sprite.visible = true
    # |2 j# Z' {; D  j  I4 w. ^
  173.        else5 Q$ X/ z; g& T
  174.          @hp_sprite.visible = false
    ! D! {. s! `6 g. T
  175.          @layout_sprite.visible = false
      O: U/ G" k6 K' G1 U1 g( ]) b
  176.        end  
    8 _! i2 D! t% I$ E9 ~+ {. v6 H
  177.        if SP_HUD == true' c; M! N& ?  }+ ]
  178.          @sp_sprite.visible = true
    1 J8 b3 C% @5 O" c
  179.          @layout2_sprite.visible = true- R6 c% f3 [& c* O" O. ^
  180.        else
    ' M8 [3 v  _) |
  181.          @sp_sprite.visible = false! J& e& J0 G' p7 W( K& ~
  182.          @layout2_sprite.visible = false
    4 C1 |) {! I) K( C2 A1 J
  183.        end
    9 c1 Z3 G- d. H* I& ]; K
  184.      end  
    . }0 _5 C' R" l9 y. R
  185.    end
    % y+ J7 r6 P* R
  186.   #--------------------------------------------------------------------------
    9 W, k0 T/ N. i1 D- I
  187.   # * Hud Pos Update8 M$ z0 R* d7 }' V
  188.   #--------------------------------------------------------------------------# V+ o# P. Y- q; N
  189.   def hud_pos_update! ?  ~. u2 m6 `5 Z
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    9 A* x' l# |, M' t) o
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    " g2 E' g3 e  g  D. |/ Q
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    - M! p2 P$ e7 K5 R1 P& s9 ?
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y ( y4 ~2 v& |, J/ x
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    3 F) z) G: A& A2 z+ c; C
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    % I% k8 S5 N) p& j9 o
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    : |2 L+ M) b9 [
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     # F8 V+ \6 }* G9 K8 o! _
  198.   end  : o& k5 O, u% Y* C- t, l, ?5 d* ]
  199.   #--------------------------------------------------------------------------2 Q( Y" H8 a* Q
  200.   # * Hp Flow Update8 J, W4 a4 |/ H* q
  201.   #--------------------------------------------------------------------------
    ) E! m1 F$ H3 ?8 W
  202.   def hp_flow_update
    . W$ |+ }6 f3 V: e% w
  203.       @hp_sprite.bitmap.clear
    " t5 C/ b8 f# ]) {; p0 D
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    ! v8 ^( }5 S- G% c4 ^
  205.           #HP Damage---------------------------------/ a1 {) X: m. |9 j' Y/ s0 B
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    2 o$ O: T3 w* W9 ]9 c; V& G
  207.           valor = 0.5 if valor < 1          5 r" [* \- K5 M; v# A8 Q
  208.           if @hp_width_old != @hp_width  L( S$ I. l, o. {6 |1 _7 A( P- f
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  - p  l+ s! D6 K. W2 Z! N
  210.           if @hp_width_old < @hp_width
    " x' x9 }2 P/ @4 o' s
  211.              @hp_width_old = @hp_width
    # g! q( K9 L* C
  212.           end      
      k& k) _  g3 Z
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    2 A0 F* T& |0 M" i8 Y; j7 @
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    7 Q! a+ V6 s1 q. {8 n
  215.           end        # S/ C( N) b( u* R" I" m
  216.       #HP Real------------------------------------
    0 i2 o$ t& F# r! n
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    ) z. P& B( ~3 L: `) f9 r, ]1 j
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    0 B* K% q2 C  k  o5 y
  219.       @hp_flow += 2  & n* @7 a/ @" }5 m/ c0 C
  220.       if @hp_flow >= @hp_image.width - @hp_range
    ) Z) f3 p& |* q# H0 ]. ]
  221.          @hp_flow = 0  * b- {% k: I/ _; _8 c) x
  222.       end
    4 P% c% s- _* t9 f
  223.   end   
    9 q) f/ Q6 h) k/ B( E! L: T2 Y8 n
  224.   #--------------------------------------------------------------------------
    0 o' y  r4 ^8 B0 o. H3 f' }
  225.   # * Sp Flow Update2 z3 Q# |& P1 Y" g5 N: [
  226.   #--------------------------------------------------------------------------  n$ K, m6 o& Z. b0 R/ z1 _
  227.   def sp_flow_update
    ' ^4 t9 B7 O$ g
  228.       @sp_sprite.bitmap.clear
    1 i) b; d2 c0 X6 X9 c! O' ]- P# ]# G
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp # ~# z$ b- c3 l, m7 K7 d
  230.           #SP Damage---------------------------------
      f3 j: m' A& ?, {$ g2 S% i
  231.           if @sp_width_old != @sp_width
    + H1 W: T9 l5 s' k# f, j
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    7 X$ X. n! W* r$ ^
  233.           valor = 0.5 if valor < 1              # W4 V- _3 |* d1 K+ Z: P# n
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  0 F6 Y: q% r, P- M4 [
  235.           if @sp_width_old < @sp_width
    + f" v. _9 ?9 g3 w
  236.              @sp_width_old = @sp_width
    : m) |! m+ Q1 R3 e
  237.           end      7 |# u2 e+ d" Y  K2 ]- _8 u9 S7 a2 ]
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)- v( t* J. u9 I+ j1 S7 j
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    8 s! P/ L) z2 ^
  240.           end
    " E* v) ^1 ~) B8 P4 @
  241.       #SP Real------------------------------------
    ) ?8 w7 u, j8 ?6 B1 P
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    ! X$ n& v2 i: }, t; W7 Y
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    ) s6 c$ T+ e5 _: `" X' g
  244.       @sp_flow += 1  
    4 j- L& s' p. v2 m% d# h8 z
  245.       if @sp_flow >= @sp_image.width - @sp_range
      m7 h" B5 ]) ^, f" p
  246.          @sp_flow = 0  
    / F  @: p; V% Y0 N9 h" p
  247.       end
    5 C% n7 f% _5 }1 n' n' K
  248.     end            3 a5 i0 \  h  _. V& y
  249.   end* a& \- V/ s% A
  250. #===============================================================================
    / e* y) r9 C2 d( d  [+ G5 N
  251. class Sprite_Character < RPG::Sprite
    - t+ ~9 K$ o4 N  v4 w
  252. #-------------------------------------------------------------------------------
    * q3 u" A! R, a) G( s, }
  253.   alias :xas_emini_hud_init :initialize: p4 J8 R+ w. S5 S( g
  254.   include MOG' E* h/ g; {6 W$ ~# l' e, y
  255.   def initialize(viewport, character)2 _% f/ ?9 }7 M& ?; y! b
  256.     xas_emini_hud_init(viewport, character)  a" D/ D: ~/ O" H
  257.     @viewport = viewport
    ! _8 R3 L( a: N) n% \* ^+ g
  258.     return if @character.battler.nil?$ O+ g5 ?* l! }
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    0 O8 [9 j" F9 ?" O, M; l6 J
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)5 n( u; z2 B% n3 c
  261.     return if @character.battler.is_a?(Game_Actor)
    " N/ ~; T. @3 F! r6 X) e2 P' @
  262.     @bars = S_Hud.new(@character, @viewport)
    , J( w" p6 @. Z0 x, Y
  263.   end
    & d0 E% W* J& p% W
  264. #-------------------------------------------------------------------------------
    2 O) U+ p: e& _+ ^. ?# T) S! T& |
  265.   alias :xas_emini_hud_up :update, u* S+ c* ?: \% M0 g1 N
  266.   def update
    0 |8 Z* X' h2 p
  267.     xas_emini_hud_up
    - o' c7 P# O9 H1 ]
  268.     return if @bars.nil?
      T- R  s# o! m" |/ F
  269.     return if @bars.disposed?
    + J' @- C# Z) w. W3 y, Y
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    ) A' }( M( C5 I9 r- M& N
  271.     @bars.visible = (dis <= RANGE)
    3 C5 q. E: q' N) \8 P8 r5 K7 M( a
  272.     if @bars.visible
    : s( o0 z5 Y+ d, `4 P8 @
  273.       @bars.x = @character.screen_x# - @cw / 4: a$ D! y; c- I
  274.       @bars.y = @character.screen_y# - @ch / 4
      v: E6 p( {; X  b" z
  275.     end
    + i2 _  h. d' Q; A7 I1 [0 @& K
  276.     @bars.update& u! i4 n6 \/ J+ k
  277.   end
    8 t8 E# O; t4 N% l6 J
  278. #-------------------------------------------------------------------------------$ d- Q( B% S* s! C: t4 @
  279.   def dispose
    - M. _0 ]( J: d2 p3 |. m
  280.     super
    1 A1 v& R6 D( ?( I  @
  281.     @bars.dispose if [email protected]?
    5 @- d; I* ^0 ?: E2 E5 e( _' O- ^
  282.   end
    2 `& u7 `, h% d/ r3 C/ u% {
  283. end* h+ o3 {% T4 o. {5 d; V

  284. - U1 [" d; B% X. k# F  S3 o" M
  285. $mog_rgss_s_hud = true
复制代码

5 b8 D5 b9 a2 \4 K& q9 n; _) C
7 K$ A( p6 O! `7 P! j! T2 t- |! \  B
上面所說出錯的203行內容為
, }- l5 c8 Y  c0 ?@hp_sprite.bitmap.clear& Q/ T7 j, F& e$ f% O1 c

, L2 M, L' s+ S3 ^想知道怎麼解決7 e4 f8 t4 i& V& N: f

' K( L3 R4 \; Q' ]1 l1 _% T. ~6 h該腳本支持3.82
: d  }  F, ^% ]/ b+ a# m, T. Y: ~1 V/ @
下面是圖檔,要塞在Windowskin下
0 X- I! p8 y2 P  S+ C+ D+ Y6 `
6 X# Z4 f; E/ t* Q( `8 R% q S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
* E) B9 O1 J2 ^( G& Q
9 U# e' f' h5 O2 A, e  u. O: {/ e# g: ^- R( ^

$ L* Z' x# o; {: \2 Y
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适6 d& j( T0 u% E6 S/ z6 n8 Z
结果尝试刷新了一个已经释放的图形4 D" F9 z3 B" v

; g8 e) x! y( e. O# t# @6 o
3 f" F9 j9 _9 F; y8 q: U
5 Y6 r& R% e+ ^4 j4 l$ q/ g( i  ]虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?# c0 s* u6 c" A6 s
复制代码
不要后面那个条件貌似就没问题了。4 t% v5 d3 G- M7 |; P# r  \" r' _

; o4 a1 r' s$ }! r5 S+ [6 Q
  h) u, `" O: y; x: I2 J / l1 `$ O- ~, B$ x& j
- y  u# W+ Q, a# w7 y; j
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
562
在线时间
1796 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
. {1 [- T+ \: }$ I3 a5 k4 S5 y貌似是释放的条件不合适
) I/ ?) \5 n8 ]结果尝试刷新了一个已经释放的图形
) ?" _3 y9 W3 T* N! O% B
把後面那個條件弄掉後,的確沒問題了% B/ E8 ]2 `4 O
目前從關頭打到關尾結束都沒再彈什麼錯誤$ ?; `: J3 Y5 H7 y" z& k% [2 G
非常感謝/ e. A) g, g4 }& d+ B3 U, U& ~( y6 S
2 G+ W  Q! q' P, _
不過我是參照著別人腳本改的
9 ^. v/ x: T- B) O# R  P% ~他寫的條件式也是那樣,但我用他的沒什麼錯誤
7 j, F% J  S+ q' v不知道是怎麼回事- F; K" D3 }( o8 p( ~  O
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的9 T- a6 o5 m. v+ \6 [! v' r
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
$ f6 s8 \( C1 T! P; K! W嘛..这个数组吧..我在以前试写队友的时候关注过一点, ^# x& ~4 i3 z! @* m% o) u6 o
不知道XAS内部对它做了什么手脚还是为啥,& A1 @2 _: R' y& J
总有那么一瞬间,没有被消灭的敌人事件也变成了nil
+ J. l) \$ M1 P1 N. Q& |% j3 y) Z4 V$ I9 t' T
$game_map.events.values[@enemy.id].nil?
; `  H% l8 a4 F2 t. [因此自然而然的返回true并符合条件把图形释放掉了8 W6 v* P3 Q4 ]6 o/ o: T
8 e9 f1 z2 m6 i, g" |; ~
LZ应该有注意到吧,
1 }/ P& c0 z4 n; h: t我测试的时候发现报错前几帧,图形会消失,
7 Y* J4 m2 V1 B; z  V9 e3 Q应该就是“误以为敌人被消灭”了。5 _' O$ q% H) u) ^3 c

* R$ S6 s' h' p- R) u! t受限于个人水平,至今无法找出$game_map.events的真相..
% H3 p2 ?( E+ V8 `  n3 H! W
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
562
在线时间
1796 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 7 x2 K3 v8 ^! c
$game_map.events/ _0 [1 m6 [9 Z7 H  y( \" F
嘛..这个数组吧..我在以前试写队友的时候关注过一点2 h4 j( W1 p. @  }& k2 n
不知道XAS内部对它做了什么手脚还是 ...
+ Z8 X. G' I; C3 O. Z
當初我把那個條件式看了三遍,都不覺得他有什麼錯
5 O: t" s( Q3 ^4 ?3 V原來還有這麼深奧詭異的事XD( ~5 r* m4 H8 Q( j7 T, {% d; I% W
8 l; t1 z4 Y& [7 A) ~& \; S
錯誤發生前的確會有圖形沒顯示出來% e9 l# b% \3 @' C/ J
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
5 m5 `. j& ~9 D/ g5 [沒想到居然是詐屍了XD
& {3 a/ c- a7 b: C' k
5 L) j' R9 ~" x0 _" }不曉得3.91有沒有修正這問題...& y; d4 r5 V! O: K! @
不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
% Z/ B! ?; e: |. u9 D/ c+ g, J1 F2 A- Q. V5 _
的确
. f% G  O7 y; {8 R用惯3.82之后想去整3.91觉得压力甚大..
8 j1 w$ A  R: i9 V2 a' H: `干脆就等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”。
5 I& ^' _9 R6 g( Y# }4 P: y7 e
/ ]/ W; v; i4 Y! b8 w: h然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-10-31 12:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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