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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
% ^' n/ ?" g* ]+ A# c& ^會在每隻事件怪物的腳下顯示
! G. F2 O- s- l! x7 c& o( x問題是不知道為什麼
' ^1 I7 V  ]7 V# _- a" {' Z/ {6 V" K! c5 V有時打怪打一打會跳出0 |& ]% {9 U; {
---------------------------
* J( h5 Q' s2 _+ D1 [. xXAS- j& ]6 i) E7 C, B$ u) E
---------------------------6 T8 F0 p9 s( T7 j  g( b: n
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
' W+ v0 J) f7 r- b( Q6 j, w- {" j8 r' m
disposed bitmap/ M! x  M& N, s* J% i8 H
---------------------------
! F6 l$ L3 f: C+ H4 r; b7 z) H確定   % X, W% n: L: j! b% I; _: z
---------------------------2 d( t! g7 U5 _% B$ W
! p8 ^1 r( x: `
這是腳本& L# k% h4 L* Y0 I& f% }/ c

: V, C1 w' U7 y% o( p; g
  1. #===============================================================================
    # `' @- P- w, _5 [' v( X
  2. # MOG - s Hud 1.0      
    ) D. l8 |& ^$ X) U2 \- ~' w8 |& p
  3. #===============================================================================- t; Y- |& C2 v& X" g
  4. # By Moghunter : Q  \3 g6 N: q) z4 ?
  5. # http://www.atelier-rgss.com* e* A: V8 N8 \  C) K$ @
  6. #===============================================================================0 i9 v8 J; y% x9 q% e- h/ e/ N. X
  7. # Translated by Calvin624
    ) o* B  U; h7 M$ i1 E5 m! E
  8. # http://www.xasabs.wordpress.com
    + s+ r7 G5 }/ s. m8 E* A# ]
  9. #===============================================================================6 q: L& P- O% v# a* y
  10. ###############################-DESCRIPTION-####################################. \: d# G7 s& [7 K4 M; K6 J
  11. #===============================================================================
    % Y5 l2 X: K- N6 T' [* C
  12. # Personal HUD – displays the HP and SP below the hero.6 A, H+ ?+ l8 `
  13. #===============================================================================
    1 M# B$ D0 u0 A! e5 ]. J7 b
  14. #+ D$ B* h7 K1 C- w. E2 e- G
  15. # Graphics required:
    # j* H  F5 `1 G) n4 K; O6 l8 B( |0 Z
  16. # + e9 w4 s4 N3 i, [
  17. # S_Border_HP_Meter.png) A' _& ^, }0 Z( I' n* l( {  v# i
  18. # S_Border_SP_Meter.png6 ~) r' o1 y; ]/ S
  19. # S_HP_Meter.png
    ( t% M- r3 D& }
  20. # S_SP_Meter.png9 {: k) j, ?  u: p
  21. #
    2 E" E& _; n# V1 J* U# z  {
  22. # All images must be in the Windowskin folder.
    # w, `* l! A' @" T4 p5 v2 |8 P
  23. #
    7 b2 o9 V1 R/ j6 L
  24. #===============================================================================
    % a0 @% A! m8 f- s+ d' h3 R- G
  25. module MOG
    2 F/ y% y: i" C8 r
  26. VISIBLE_DEF = false  
    7 t4 }# y  _$ \( [
  27. # Show HP meter?% a3 x/ c& P$ @* y
  28. HP_HUD = true
    + U: S4 o# w7 Q( k" y, f0 W
  29. # Position of the HP border
    - s' d6 n* _  \0 E6 P
  30. S_BORDER_HP_METER_X = -2
    3 ?7 y5 |, f$ G2 l5 P9 c  {
  31. S_BORDER_HP_METER_Y = -2  & z- k- }, m( ^; M: v5 D
  32. # Position of the HP meter
    " l- i1 ~  o# z; x- q
  33. S_HP_METER_X = 0
    " F0 \, Q* h6 D: f2 v1 y
  34. S_HP_METER_Y = 0! g% R1 d% x3 U& G* k" n
  35. # Show SP meter?
    $ }$ N; G  h& o
  36. SP_HUD = true
    , C( m- l# C6 E% D% v
  37. # Position of the SP border, _  ~0 M1 X+ N4 ^/ C9 ?
  38. S_BORDER_SP_METER_X = 0# B6 m/ H' d( ~
  39. S_BORDER_SP_METER_Y = 10
    ; ^5 h* b7 I' l. @; X3 _) W
  40. # Position of the SP meter
    ; ^& [) ?2 a; o, H
  41. S_SP_METER_X = 0
    - ]& l: \" a4 `$ o8 R: G8 d
  42. S_SP_METER_Y = 10' u2 e) H. ^' Q8 g+ O- [
  43. # Switch to disable the HUD
    ' J4 z: j/ {: l; y9 z
  44. DISABLE_SHUD_SWITCH = 5
    - o0 }+ S5 r! G; g6 u) W" _9 _7 k+ Q
  45. RANGE = 20
    % y, j. r2 H  V7 e2 z3 l; j
  46. end
      T( `5 _, b  T5 D7 O
  47. #===============================================================================! b2 r' n: y, Z
  48. # S Hud
    ) ^. l5 }, X) }" X# l4 r2 C1 ~0 E
  49. #===============================================================================
    . R% {1 b0 m9 F
  50. class S_Hud < RPG::Sprite
    6 |3 F" W0 Q" }5 q; ^
  51.   include MOG
    . H( T% x3 L( Y# H; W3 h/ G
  52.   #--------------------------------------------------------------------------
    , O) H( a! P8 r& U) t
  53.   # * Initialize4 ?% N0 Y* T) x% R6 z
  54.   #--------------------------------------------------------------------------
    6 \8 A1 V1 A2 h; g: s+ h2 Q
  55.   def initialize(enemy,viewport), j+ _1 m9 Y" P; |
  56.     super(viewport) + q" e1 U  l7 A8 P. a5 ^
  57.     @enemy  = enemy8 W9 Q4 K- M; f( L
  58.     @battler = @enemy.battler" a3 _. I( a8 o+ V
  59.     @old_hp  = 04 ^, s1 I. K+ w) o- j1 x* _
  60.     @old_sp  = 0
    ( k* }* e7 }1 @8 [3 Q
  61.     @old_vis = false
    # f6 w" t3 s  O/ ~
  62.     self.bitmap = Bitmap.new(100, 100)
    1 Y! t( S3 ^) S
  63.     self.visible = (VISIBLE_DEF)#false8 m6 ?' G; s' g6 n  a( b7 l
  64.     self.z = 100
    " P1 S, M  V$ ~0 U, ^+ p  m
  65.     #HP Border -------------------------------------------------------------------) S2 K/ k- f, ]9 [6 C8 a$ e1 m
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter"): K2 {' Z# i6 ]- [: U$ N  }
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    * o: M3 F$ Z- @( {4 A- M( m# ~* U
  68.     @layout_sprite = Sprite.new
    ; S: s; i6 O, ^2 q5 H! `
  69.     @layout_sprite.bitmap = @layout_bitmap5 r+ U1 W6 w& t# F8 C
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)7 m( b/ g7 }; b2 j0 N
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      ; y3 W& x- w7 c9 x1 o% J
  72.     @layout_sprite.z = 50017 e1 b& m; n) Q) b0 \  e3 C$ d
  73.     #HP Meter ---------------------------------------------------
    % b/ a% Z# N; C! X! j4 k, v5 l
  74.     @hp_flow = 0# ?* o: U0 P# }0 w/ ?
  75.     @hp_damage_flow = 0. ?( \- x9 y+ r! x4 A- x% C
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")5 U% G" d, U* u( x& s
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)# V8 b( p3 U/ S, B, E
  78.     @hp_range = @hp_image.width / 3
    / c0 V% f/ f8 c2 L
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  ) v; d) Y, B' e$ R8 n
  80.     @hp_width2 = @hp_range / 2
    8 X$ t% \' [6 P; Y9 D
  81.     @hp_height = @hp_image.height / 2
    * u) T. @, e' E
  82.     @hp_width_old = @hp_width6 n. o- \' l" w, Z2 {
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)* M9 P6 R1 c4 R4 ]2 [! ^) w
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    ( K! |9 V1 W" i6 I! h3 j3 L! V( U; F
  85.     @hp_sprite = Sprite.new" X$ X( r6 H6 N& V$ u
  86.     @hp_sprite.bitmap = @hp_bitmap
    ' ^; j& P) }" U1 }* Y  z' r
  87.     @hp_sprite.z = 5002* |# S$ `" b& J8 ?2 r4 Z+ P
  88.     #SP Border -------------------------------------------------------------------2 k. x5 L7 E- T. Y# e
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    3 x3 T+ B# o; {( y8 j; h
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)# _% E7 U) }2 n# X
  91.     @layout2_sprite = Sprite.new/ {9 f4 b3 [$ \& f3 [
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    9 v& O- `. e0 P, o+ _4 ?0 o6 [' E, G8 e% Y
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height): B/ W- p" Y4 ?  {. D
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      ( d9 A/ G! `* ]- s
  95.     @layout2_sprite.z = 5001    . R  l$ k! P! d
  96.     #SP Meter ------------------------------------------------------
    6 i& v- Y# R3 h- j$ F3 K9 ^
  97.     @sp_flow = 0
    0 f% e, |' g6 z6 {) D! o5 [- b5 L
  98.     @sp_damage_flow = 0: W4 s; l+ G- _
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    ( h& d: t8 {) C- s; ?
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)0 [# D) J" k: b( v6 S1 K1 B
  101.     @sp_range = @sp_image.width / 3
    6 v9 [7 f4 N: g
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    * n  z" ^4 P  {% {* N- s5 w& s) |
  103.     @sp_width2 = @sp_range / 2
    / y# s* o0 V9 S6 d3 Q
  104.     @sp_height = @sp_image.height / 2: j! Z# ?+ D1 C9 H6 {- P5 \
  105.     @sp_width_old = @sp_width( v+ s4 D) j5 }6 g
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)- a# t0 {( }/ j
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    % R6 k' Q4 W  T) _8 D
  108.     @sp_sprite = Sprite.new6 p# g9 _0 l) W/ ?+ d: P
  109.     @sp_sprite.bitmap = @sp_bitmap+ q( m( D$ z* I1 W: K5 I
  110.     @sp_sprite.z = 50022 y* }, z. l7 a( N! G5 [2 @
  111.     update
    3 K9 {; y( x, S: O
  112.   end
    & a, x% g: K. W0 p2 }( J: r/ b5 g, d0 n& G
  113.   #--------------------------------------------------------------------------  B4 [1 h; |8 y' Z" ~
  114.   # * Refresh
    / \0 W  n2 m; k3 ]9 a
  115.   #--------------------------------------------------------------------------
    ' r; f9 e* C7 n
  116.   def refresh' [4 P: W' z! O! M* d7 V
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible4 |( e  T5 B; x7 O
  118.     self.bitmap.clear
    3 d5 v% O1 X3 o1 k0 I$ c
  119.     @old_vis = self.visible% u9 x! ]) \( N3 w7 _9 d+ |
  120.     @old_sp = @battler.sp
    7 T" m" @# E9 t, k0 C
  121.     @old_hp = @battler.hp
    / ~/ n  j2 Z& z
  122.     hp_flow_update& {9 C+ C# z& G1 M$ k! l" `
  123.     sp_flow_update
    + L% B5 o, o3 C, Q: p9 \5 X
  124.     hud_pos_update7 [* o0 F, b7 A
  125.     visible_update
    ' Q, v" O( r# O! u# v5 m
  126.   end9 \0 F: ]" }# K: X  \. e
  127.   #--------------------------------------------------------------------------+ Y- w7 b, m) R) h7 ^0 J& v) z: \
  128.   # * Dispose$ r1 M4 Y" Q7 x2 _, \0 W* I4 w2 T1 @
  129.   #--------------------------------------------------------------------------# |. M) F8 m- P9 q( E& o& Y" U
  130.   def dispose; J" r) W+ z1 R. J+ V2 Z
  131.     #HP Meter Dispose" R3 e; r3 Y6 s! s1 k
  132.     @hp_sprite.bitmap.dispose
    ) r  @- s+ f" K3 |
  133.     @hp_sprite.dispose
    1 t$ p4 t2 m  G& b0 G+ n6 t
  134.     @hp_bitmap.dispose
    4 n2 b1 b9 T2 `# q! B
  135.     #HP Border Dispose( a; k; u: z6 B6 _' |
  136.     @layout_sprite.bitmap.dispose
    9 l0 t' g  Z# I, h1 B1 }+ y$ Z
  137.     @layout_sprite.dispose. m# \4 H4 K; Y) n7 Q4 c
  138.     @layout_bitmap.dispose5 x3 G9 _! e' E- _# e# Z  C
  139.     #SP Meter Dispose
    2 v' U' c+ C4 M  |) B# C
  140.     @sp_sprite.bitmap.dispose# Q. h, {$ n' S
  141.     @sp_sprite.dispose/ C: r/ @8 Q/ j1 R2 j: T2 j. U
  142.     @sp_bitmap.dispose: M- h' x* u+ t6 ]+ [
  143.     #SP Border Dispose% h5 o) g. v, }) }
  144.     @layout2_sprite.bitmap.dispose: ~7 Y# p, a5 N% S! W( {$ I* E8 M
  145.     @layout2_sprite.dispose& s) K8 @1 s; R" _% X
  146.     @layout2_bitmap.dispose( y" {) U6 ]8 a8 N( ]! e
  147.   end6 X4 z$ u' {0 U4 Z9 w
  148.   #--------------------------------------------------------------------------% u' ?- [) j) }$ n! ~
  149.   # * Update
    + ^6 d" g% {8 [
  150.   #--------------------------------------------------------------------------
    ) U% H6 y4 |, d; t1 n  K
  151.   def update/ S; O- f/ \2 D5 Z
  152.      @battler = @enemy.battler . g3 I# [+ F1 D, S; o
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?/ T) T. j* d' W6 e/ Z* k
  154.      if self.visible) ?8 B% f& p- p9 [
  155.        refresh
    / w! I% j' H. k5 B2 H+ G2 q
  156.      else2 ]) G9 j# }: e2 U
  157.        self.bitmap.clear0 E2 d) M- Y& f& `9 h  Z
  158.      end6 Z; M5 a& J+ @0 }" q, D( a& l+ S
  159.   end
    " a$ S: d$ ^2 l/ }. i. y* t5 e, z
  160.   #--------------------------------------------------------------------------
    9 \: l, D& g4 n3 k$ p, R4 S/ Y8 y
  161.   # * Visible Update
    " k( P* b5 h+ z" `. h
  162.   #--------------------------------------------------------------------------: A# B4 L. I! d! f/ V4 b
  163.   def visible_update
      E' H1 e6 u, j" j
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true6 n5 a3 O  W0 g; M, H2 R( C  j& ^
  165.        @hp_sprite.visible = false) p4 F" @6 c, D* a/ Y
  166.        @layout_sprite.visible = false$ d9 x" ^# p$ v: C4 u- ~
  167.        @sp_sprite.visible = false( |0 d) K* e/ e) y
  168.        @layout2_sprite.visible = false: q) y% c5 @) K
  169.     else
    7 ~  u: u; ^# P/ D" `) [7 ~( o. b" M
  170.        if HP_HUD == true
    % ^1 m- C# r# p7 f$ G
  171.          @hp_sprite.visible = true/ z6 C7 `2 t6 |1 a
  172.          @layout_sprite.visible = true* m- N9 s$ F3 {# W
  173.        else3 L4 w/ {9 K  p' g! E2 l- Z  \, Q
  174.          @hp_sprite.visible = false
    ! v- ]6 c# V, l  M; z8 |
  175.          @layout_sprite.visible = false
    2 o4 b. R% L# n+ [3 d  [9 ^
  176.        end  8 j& [& _2 n1 t
  177.        if SP_HUD == true# }" `) E: w( g% b6 f4 \
  178.          @sp_sprite.visible = true
    5 i: z9 I, e( I8 j; \/ b1 T
  179.          @layout2_sprite.visible = true
    ; u# m7 m1 w+ H( C
  180.        else
    / N& _0 C# X- F4 t* `2 l' _
  181.          @sp_sprite.visible = false
    / q( I0 j' E5 @0 t8 \# n  l. D2 s
  182.          @layout2_sprite.visible = false
    / ]1 v/ D) ^! ?0 @6 d7 K* [6 E6 [
  183.        end
    % j- w/ \8 \: V4 C( m6 q
  184.      end  0 W: m; M4 |* A
  185.    end $ J, r6 J/ f  s0 h5 a  B6 v% i  m
  186.   #--------------------------------------------------------------------------+ v$ h" ?# A: N/ H( {! |  {, ~
  187.   # * Hud Pos Update2 u. g: t7 o8 i/ O
  188.   #--------------------------------------------------------------------------8 Q1 x  H) o6 q0 E* O  M/ y
  189.   def hud_pos_update8 S' c: }& Q+ W4 A+ l5 I! D2 b
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X0 S2 H- v3 y  c
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  8 b" p& u" Z/ i' F
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    ) k: i- z8 i- T7 ]
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y 4 @0 {6 F) ^7 z2 g3 e# I
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    . p; b6 r! y" z( Y- j0 h3 _/ p$ t2 x6 C
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  4 V* d  e. x5 `! p
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X
    1 z5 X6 ~8 Q/ l/ r* ]. ?8 q
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    - r$ d7 m8 k7 k. Q; {6 V
  198.   end  , t7 ^  S) `- v1 ]8 o
  199.   #--------------------------------------------------------------------------+ B% h4 n0 ]# C. \; e8 b7 i# A
  200.   # * Hp Flow Update
    7 v% c' K- n% ]7 F9 A
  201.   #--------------------------------------------------------------------------
    ) q3 P$ `' k/ c7 z  E
  202.   def hp_flow_update7 l/ [* ~' O8 ~
  203.       @hp_sprite.bitmap.clear$ Z+ t2 \  M' B- d3 s4 K
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  ) H/ z( H* r' [2 [
  205.           #HP Damage---------------------------------
    , _2 R7 v8 I; W/ @
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100* Y% L$ q0 j! E9 W; m
  207.           valor = 0.5 if valor < 1          / I% J7 l- E% o5 y. n9 ]/ p3 T5 H
  208.           if @hp_width_old != @hp_width! ^  p( t9 t) |9 }  t& I
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  2 S* h! W& A9 ~8 c
  210.           if @hp_width_old < @hp_width ! d" ^" U0 v. N1 Y& l' r3 J
  211.              @hp_width_old = @hp_width
    % r8 L8 Q' n! B9 g0 v2 O) y
  212.           end      
    8 u, [/ z7 b0 G( J+ ?
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)+ U  b5 a% J3 I
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       ( y  |6 K6 o! k* q7 D& U8 M/ q
  215.           end        
    2 `; w) y6 U; E( u4 v; Q3 o
  216.       #HP Real------------------------------------
    8 H& w+ g) t0 @& B" v9 u
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    ( f0 b3 T. b+ w( ]
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    ) H& ^7 r( M9 ?/ q0 _6 O& x" Z
  219.       @hp_flow += 2  
      t+ B9 ^" n; v! g; ?8 H
  220.       if @hp_flow >= @hp_image.width - @hp_range
    ( x% ~, s/ Y* r8 X4 G! C, I( }- W
  221.          @hp_flow = 0  3 p; u, N7 B+ u5 M2 ^$ V" @# J
  222.       end
    / M" G( o4 B* T' R; E
  223.   end   
    + \0 E) @. [0 p5 y# }! ]
  224.   #--------------------------------------------------------------------------
      i' m3 @0 E1 E0 W) @
  225.   # * Sp Flow Update# Y4 ?, U+ o1 S, G) A* v% K
  226.   #--------------------------------------------------------------------------3 B( h- S! l  V
  227.   def sp_flow_update
    ; ^: r4 e0 b( X  v0 b3 U0 G/ j
  228.       @sp_sprite.bitmap.clear
    # g* ~7 b; \) D/ e6 {
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp
    + ]6 L: E: M! P
  230.           #SP Damage---------------------------------# ]# z$ E* S4 O  ~; }, E9 F2 \
  231.           if @sp_width_old != @sp_width
    ; x" i, Z, F# W
  232.           valor = (@sp_width_old - @sp_width) * 3 / 1001 i) B1 `4 f' ]
  233.           valor = 0.5 if valor < 1              & j# C5 {6 {8 d- Z$ V
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  ! l: N3 S' E" c6 u
  235.           if @sp_width_old < @sp_width 7 ^$ o0 N/ \9 K6 t: B8 ^+ i& ]
  236.              @sp_width_old = @sp_width
    : }, T+ x0 P5 u8 _1 [2 g
  237.           end      
    3 X5 W6 ^. X. w2 j/ w
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)2 C4 K: S8 I0 H
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) / v1 Q8 I) y  O0 S7 u! E
  240.           end
    " T  X1 {, L5 f# h; S4 V$ A
  241.       #SP Real------------------------------------
    2 o" b$ u& m7 K6 j- @) Y
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)+ X0 @5 w# a" @& x# Q, I
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    2 M, W* J% z3 k2 \/ p2 R# N
  244.       @sp_flow += 1  1 M* I3 a: k1 c6 {- ?
  245.       if @sp_flow >= @sp_image.width - @sp_range; G1 ^: E: C" y+ M; ~
  246.          @sp_flow = 0  
    , G# Q% T9 x: b# ~# w
  247.       end9 d2 H  \5 s6 V  s1 B( l
  248.     end            - h! I8 n" [! `! P/ m
  249.   end
    0 f5 O  y, Y/ J0 w- n* K& I
  250. #===============================================================================5 P' W+ }; I& F0 T% I. Z6 I
  251. class Sprite_Character < RPG::Sprite) i0 n% u" X$ v" v
  252. #-------------------------------------------------------------------------------
    1 t# }" ~8 t7 `5 v4 n5 ]" x; R' o
  253.   alias :xas_emini_hud_init :initialize2 |" T, v/ ]; K) @& n5 R
  254.   include MOG
    9 P7 G6 s* [3 I  T! A" k% w# v5 e
  255.   def initialize(viewport, character)
    1 h! t" t! I9 h+ J+ K  q
  256.     xas_emini_hud_init(viewport, character)+ j4 T5 k! ?$ l3 s" a
  257.     @viewport = viewport& X/ I5 V  R, `. [
  258.     return if @character.battler.nil?
    5 U4 x0 P+ G' J" R- m
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)3 t, [6 |9 w8 p9 Y
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id). T1 y6 `! s8 i% T6 R0 c
  261.     return if @character.battler.is_a?(Game_Actor)" M5 u. ^; X! ^  B1 W
  262.     @bars = S_Hud.new(@character, @viewport). A1 p: ?: t0 H2 f9 ~% q) k/ G
  263.   end/ P* T. C) X5 q; N' d* r$ u  w
  264. #-------------------------------------------------------------------------------
    1 e- l& Y1 C/ `
  265.   alias :xas_emini_hud_up :update3 o( J* d4 Y2 J& k) p) ?. q: e
  266.   def update
    ) W- @! W5 m* M: B
  267.     xas_emini_hud_up
    " F" T% B+ r) y7 o; i: v
  268.     return if @bars.nil?
    ; p+ V. S& n7 v- U1 H$ c
  269.     return if @bars.disposed?% s6 H( @% O5 Q$ v  q) ~0 }0 O
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    & Q  c4 p9 X1 F1 h* P( P( E' G, H
  271.     @bars.visible = (dis <= RANGE)
    6 c4 O, ^* F7 G  \
  272.     if @bars.visible
    8 d% ^# t2 s* z4 H( Y  I0 k/ M) m' ?- [
  273.       @bars.x = @character.screen_x# - @cw / 45 @- s# f! J0 b, \# c2 e
  274.       @bars.y = @character.screen_y# - @ch / 4
    * U2 ]6 J: I1 e* E* X# d# T% _1 _" }
  275.     end
    7 C* t; z  V2 T/ k# `. J; i
  276.     @bars.update# S0 w& M" f: B" |
  277.   end
    : R' R* @, a9 F- B
  278. #-------------------------------------------------------------------------------' ^& {& O0 u9 i
  279.   def dispose
    * X/ V% W1 d, R, N" q) [
  280.     super
    . @, F' u/ i* I# u" a( B8 c  m/ e
  281.     @bars.dispose if [email protected]?+ ]& ]& e5 t1 P. Z& {
  282.   end, z" w2 Q& U  {: c9 H2 p
  283. end
    : \4 t6 l" m. N( ]' k

  284. ; D3 E; q" p' `+ B* a& t
  285. $mog_rgss_s_hud = true
复制代码

' I$ L) Z  w- P8 z+ Q" j+ f
- O4 |+ a7 p  k' M( `1 n; }8 `
$ X5 k* O( A& ^: z% t' S5 K2 X上面所說出錯的203行內容為
$ \+ j. n# l) h! Z8 [* l' D$ I. ^@hp_sprite.bitmap.clear/ Z$ Y4 [3 O+ K

, e( P0 g0 o! T0 K想知道怎麼解決
4 d) q: E( L1 Q) Z( k1 F& @2 v4 A# e/ E9 r
該腳本支持3.82
% [# U; n! {; ]- R& T) ]
' G" R$ I( U( w' t8 T) G! m4 J' K1 E下面是圖檔,要塞在Windowskin下; ~, k) c) K" I" P: Z
+ S0 ?1 R1 R. V! o# S; \, P
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
3 w, `2 I+ J! b7 w5 Y
+ q3 J4 L3 s: x7 q' a1 y6 p* D; M2 D+ B, n8 U
3 g9 j! @% p/ {+ P
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
' Q: f" e# U4 j, h* O6 y" r结果尝试刷新了一个已经释放的图形
" B5 a5 O, c" l/ c9 E* \' y& z( B4 g2 l, L0 T

& R' n: G& d; v. ]5 u* ^9 s
  `3 X1 ~% i5 P- k; I  s+ h虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    8 t! z8 c# x& j' v
复制代码
不要后面那个条件貌似就没问题了。5 p% h7 K! c8 t) d% d
+ `) X+ b9 {1 m. {( N$ Z( [
) k- E8 i6 `. V% W0 _' x9 ^

' C/ D  ]# {$ f% J+ t9 k2 R5 a  N1 e0 `" C/ b( [9 k( O
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
627
在线时间
1803 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
. U2 X1 X, S1 g! x4 K( d貌似是释放的条件不合适9 ?4 p% l/ G, b
结果尝试刷新了一个已经释放的图形
  t1 {, \, o" n& B3 M- E1 q1 o) h
把後面那個條件弄掉後,的確沒問題了
! l+ f+ T$ T3 V! Z. K2 E" @3 Q6 p目前從關頭打到關尾結束都沒再彈什麼錯誤  c/ M5 `( Q  O2 Z
非常感謝/ V) Z# Y4 Y: P9 F

. r% F* |5 z: O不過我是參照著別人腳本改的, I& p, i( x3 M) l- G" ~6 o% Q
他寫的條件式也是那樣,但我用他的沒什麼錯誤* d" p+ e; B; @5 b: |0 P
不知道是怎麼回事( A- c4 F7 E$ a1 g. K
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的8 i; D# [( O- L. M7 |+ T
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events8 e1 @8 ]" p' O1 R
嘛..这个数组吧..我在以前试写队友的时候关注过一点+ Q) r$ {$ E. r. H" E$ L- i4 ~% h+ C
不知道XAS内部对它做了什么手脚还是为啥,
, L& U/ W$ @4 f0 S2 I, h/ m总有那么一瞬间,没有被消灭的敌人事件也变成了nil
, v: a# T" S3 L/ R+ W' J0 P! G
7 [' W! ?: m$ ~8 E/ T$game_map.events.values[@enemy.id].nil?
3 k$ M( Z7 I2 H2 r/ P, N因此自然而然的返回true并符合条件把图形释放掉了
1 K0 \& x5 Y. O
) x% l7 S, D7 M# N! P/ ?4 aLZ应该有注意到吧,
- h+ W$ r3 ?7 e4 ]1 z我测试的时候发现报错前几帧,图形会消失,# Z1 x$ |& s* B, c9 }2 B
应该就是“误以为敌人被消灭”了。( E! f+ a0 N+ p7 N7 X( l
: l, I) o1 F) P
受限于个人水平,至今无法找出$game_map.events的真相../ x( l% V8 M! m8 K: `' E) k: t0 a
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
627
在线时间
1803 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 - }5 _" x% j# q/ Y" t: A
$game_map.events
- |$ g1 {2 V4 {3 j) X* T- [嘛..这个数组吧..我在以前试写队友的时候关注过一点
0 n- O4 p- t! D0 m不知道XAS内部对它做了什么手脚还是 ...

. x4 v, P# t: j( g當初我把那個條件式看了三遍,都不覺得他有什麼錯
9 M7 A& Z+ x  P* `& M! X原來還有這麼深奧詭異的事XD
/ s4 i  D, a$ ^, K& X8 v- B' d; g9 @4 w
錯誤發生前的確會有圖形沒顯示出來! P# U( \0 u/ Y+ G* Q, V  w# I
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪..., V% K( b0 M* q
沒想到居然是詐屍了XD: F; c4 l7 T# s6 m* ]
7 q7 w! V- [# O2 P8 G2 U) e; J
不曉得3.91有沒有修正這問題...* @' e: [& w) X( g0 {3 H2 X! R7 S
不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
- E0 x% o2 K" Q% N8 M. B7 d
. p# F- F) M0 V/ \$ p+ P9 R0 v的确
, @. ?: R& G8 p2 Y* K; J7 I用惯3.82之后想去整3.91觉得压力甚大..
  s" `) n( G4 g6 D: A& W干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
13059
在线时间
21887 小时
注册时间
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”。
% J& |- n) s6 {. a6 y( G0 E: g$ R: M7 ]$ Z2 _. d7 Q- j7 l+ N, k
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-11-28 17:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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