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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
) y: A9 Z& j5 F7 p會在每隻事件怪物的腳下顯示3 }) a; c% B- w- c# @, {
問題是不知道為什麼
% m8 L' p2 e8 f9 l( s0 Y' a; ~有時打怪打一打會跳出# T* W! y; Y' E+ h' s. B
---------------------------: \( d7 U+ `, n, a1 x! x
XAS8 `  Z( J0 Z* m
---------------------------
: k6 u, u6 I9 W+ u脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。7 z& p& t, f+ |  D! n
2 s4 |% g1 c- K# w
disposed bitmap- B, D: c" I. ~4 C
---------------------------
7 n7 N8 _5 w. ]' g5 T6 U0 X確定   ) i! L8 O6 _& Q4 x6 {6 G. a2 c
---------------------------
/ Y2 ^4 i  j1 f* s4 P& m6 V
% C. M& t2 L7 S4 W! f& z, _這是腳本
! ]2 A: Q' R; M+ @; V) ]
& h+ e( H! {0 U: K2 y  w0 H
  1. #===============================================================================8 n4 z: H3 U1 B: \6 g( q/ m2 L
  2. # MOG - s Hud 1.0      ( V, V' _0 p" G- C- U$ D
  3. #===============================================================================* I; I2 {3 Z8 g  }
  4. # By Moghunter
    : Y$ }# u  k: A# S. u0 D
  5. # http://www.atelier-rgss.com, @3 h: |: @1 Y# d6 X. Q. k) }
  6. #===============================================================================: p' h0 O5 y4 X  A' n
  7. # Translated by Calvin624 3 p8 F) y7 \5 z. O: `
  8. # http://www.xasabs.wordpress.com
    ! d, N) W; b: Q0 m7 B
  9. #===============================================================================
    4 R6 L# w" H+ `+ d6 W& {+ V# C
  10. ###############################-DESCRIPTION-####################################& R" L0 B6 R/ m8 p/ V# D
  11. #===============================================================================
    % W7 G6 {% I/ w3 O9 N- L2 K
  12. # Personal HUD – displays the HP and SP below the hero.
    ( b6 B& U4 n4 n8 H5 T$ J* V, o: Y
  13. #===============================================================================
    8 b$ M% r8 p1 `) x! |
  14. #1 }0 E# M7 Y. j. c
  15. # Graphics required:
    ' f$ r7 y2 g/ o6 P. I( k$ }
  16. # + r8 u6 L4 ]8 Y9 q1 \4 Y
  17. # S_Border_HP_Meter.png/ }2 _' F7 Z1 l% R, \
  18. # S_Border_SP_Meter.png$ X( U$ [% U& t. m* a- Y( |" D0 a' }
  19. # S_HP_Meter.png( ~. j+ e- }& Y9 ]' T$ n; j
  20. # S_SP_Meter.png
    0 S' f7 K: a3 Q+ D6 L" |
  21. #
    3 }7 Z: ]: }9 |; |: K
  22. # All images must be in the Windowskin folder.
    2 N2 {4 l+ w: E
  23. #
    2 R, D2 M3 N& R8 P" S- `
  24. #===============================================================================" M  E( d, F. L4 Z
  25. module MOG. K8 T& E  l9 ~4 R# l2 X
  26. VISIBLE_DEF = false    x9 }$ B4 V& X# O0 p% }1 b! x
  27. # Show HP meter?5 U" q# g/ a4 N, D3 O1 d5 h$ y
  28. HP_HUD = true
    9 K, ~, C* e% u# N% {! a9 P' ^' Y
  29. # Position of the HP border" i0 {, ~4 e; _! S/ o
  30. S_BORDER_HP_METER_X = -2  D9 e0 P7 F# ]9 R7 C
  31. S_BORDER_HP_METER_Y = -2  
    / T; D' d9 U( A5 N- _
  32. # Position of the HP meter
    5 G% H- [; M& ^: k+ H- m% o  |
  33. S_HP_METER_X = 0
    0 R; c7 z0 G- \7 g( o$ U
  34. S_HP_METER_Y = 08 D6 l$ ^  g' N2 m
  35. # Show SP meter?
    $ Z9 O( u& r# y. s$ w0 N
  36. SP_HUD = true% p  L1 n5 Z- B: M  [2 Y  R1 v: M; R% `
  37. # Position of the SP border
    5 v) N$ h% y# e8 ]9 W+ H9 y
  38. S_BORDER_SP_METER_X = 0
    . p: M, J/ q3 q
  39. S_BORDER_SP_METER_Y = 10
    # M: W1 f6 }, ]  i% V
  40. # Position of the SP meter
    1 C0 E; q0 U3 a7 a4 u
  41. S_SP_METER_X = 0
    " I8 d1 Y3 b9 G2 I% o
  42. S_SP_METER_Y = 10
    $ L, y" Y" V! M# Q
  43. # Switch to disable the HUD
    0 K; Q3 n3 J# d1 P0 i3 z
  44. DISABLE_SHUD_SWITCH = 5
    . T2 i/ c3 U! a5 Z2 l6 _
  45. RANGE = 20
    $ U! h! _: t( K1 C; L
  46. end7 F9 `2 g( y, R! W9 c/ R* f
  47. #===============================================================================
    4 Z/ y3 g9 k/ n3 E$ L8 ?1 r
  48. # S Hud* \: u- D* t6 _
  49. #===============================================================================
    # B$ |( v. X' U4 P- H' [
  50. class S_Hud < RPG::Sprite- Y; ^# A7 E' \- Q/ o8 _
  51.   include MOG8 N1 X" E7 o0 j, s6 J
  52.   #--------------------------------------------------------------------------$ ^7 Z8 w& Z7 O/ i7 c6 w/ o2 F: X
  53.   # * Initialize
    % }9 y+ g$ b6 R" C" E* J
  54.   #--------------------------------------------------------------------------, a9 [  t9 m3 T. Q! x
  55.   def initialize(enemy,viewport)- E' O6 s" D. ^
  56.     super(viewport)
    * l+ l) F; D) e1 i
  57.     @enemy  = enemy4 g0 f' P$ m& N2 a& e$ h* h
  58.     @battler = @enemy.battler
    " R- v- j: K: J, f/ Y3 L: w
  59.     @old_hp  = 0* j  ^, _" e6 w, _+ e8 g
  60.     @old_sp  = 04 j8 c' P& y& M  P6 S1 I9 K
  61.     @old_vis = false# p3 V, d! H4 y$ i; F
  62.     self.bitmap = Bitmap.new(100, 100)
    ! y, E) f2 q' l6 c+ _; x1 r! M( ^
  63.     self.visible = (VISIBLE_DEF)#false: K" d: }" L) H8 a0 K  I# C, w
  64.     self.z = 100
    8 v/ [/ T. m3 X' H$ I! t1 Q5 N, L
  65.     #HP Border -------------------------------------------------------------------. B7 J* Y+ o0 ~
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    1 J3 R9 m  e+ R* J
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)+ V& f6 I0 I- e8 O9 j. ]1 q1 m
  68.     @layout_sprite = Sprite.new" V  z2 Y; W8 r5 W$ S# ]$ G
  69.     @layout_sprite.bitmap = @layout_bitmap
    7 P1 n6 N5 B6 J; Y6 r0 U
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)1 V, j  l! z* S' m2 |* R8 S! y
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    % g, c) a  M$ f9 A, D! a
  72.     @layout_sprite.z = 5001
    . ?& c, v' O. h: ~6 n2 D
  73.     #HP Meter ---------------------------------------------------4 `2 N% Q& D+ }6 B
  74.     @hp_flow = 0
    , ]8 j/ c% T' w0 w- o$ _
  75.     @hp_damage_flow = 0
    - v! v) h- w/ c& n+ v
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")8 t( A7 [* Q0 s
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)+ B! o/ p6 B* Z1 W0 z  j+ S
  78.     @hp_range = @hp_image.width / 3" H" z2 {* u! g4 M
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  9 s7 j8 H; n. H9 s/ v# F
  80.     @hp_width2 = @hp_range / 2
    ' m7 b' J3 T! n5 t" e4 U+ L% P8 c
  81.     @hp_height = @hp_image.height / 2
    - @/ W. m- A  P4 {( g4 J
  82.     @hp_width_old = @hp_width
    # N) _8 M9 A& w
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)! d* a1 t+ ^" D8 ], z) @& h
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) 3 Z% W3 O( k# l' e' C
  85.     @hp_sprite = Sprite.new. `) g' Q, s! N' G/ {1 ?
  86.     @hp_sprite.bitmap = @hp_bitmap; W3 q+ L; U0 n
  87.     @hp_sprite.z = 5002+ m9 K! ?- z" r4 w9 o
  88.     #SP Border -------------------------------------------------------------------. ^- z8 i; S) r
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter"), {  ?2 v! L% Y9 Q  c
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)
    : ?2 ?+ ?$ D* ~' x7 h0 f  w
  91.     @layout2_sprite = Sprite.new6 c1 p! o* q- |3 \4 q6 J# S3 b
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    ; M4 B8 G' K+ E! D
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)
    : ~, U) a5 s+ R$ ^
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    + l& n" R4 |# F' O2 T  Q9 l
  95.     @layout2_sprite.z = 5001    7 l8 B  Q1 T9 g- \
  96.     #SP Meter ------------------------------------------------------& j3 P1 ]* _  y* x- J
  97.     @sp_flow = 0
    4 u* ]9 }7 z  y" E7 f# t
  98.     @sp_damage_flow = 0
    0 }" ~! v' N# l7 E3 Q) c
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")1 [- @1 b+ z: t, @2 d7 c8 b/ c
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    3 b/ c& d0 p" e2 ]0 W
  101.     @sp_range = @sp_image.width / 3
    , ^2 N) B4 [$ B5 K) i
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    4 [4 p0 i$ S3 y
  103.     @sp_width2 = @sp_range / 2: o4 p$ p7 q4 i9 w
  104.     @sp_height = @sp_image.height / 2" k, {% w5 F# s0 U
  105.     @sp_width_old = @sp_width
    7 V, O& o0 }% X- ^
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    : {- D) V6 v4 m: e. }4 T4 O& u
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    0 g4 Z% H. [8 M
  108.     @sp_sprite = Sprite.new3 _: x0 L- D6 K8 w, F
  109.     @sp_sprite.bitmap = @sp_bitmap" i9 s) v& T* o9 z* r
  110.     @sp_sprite.z = 5002
    ( R- q7 C' R' i" G6 ]0 e9 e2 M0 E
  111.     update
    9 h# M& ^! D3 g9 A" P! C8 }
  112.   end; u! c0 Q1 D1 B) @$ Q( r
  113.   #--------------------------------------------------------------------------
    7 g  y, A: }" U4 V4 Y1 R
  114.   # * Refresh
    ( g" ]3 X) f, ?( W3 |
  115.   #--------------------------------------------------------------------------2 t, v1 ^8 ]. O$ E3 R# g# b
  116.   def refresh
    ! q, ?& Z+ }, M" o2 F
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    ! j( y# A' n7 j% c( h% j4 l7 u- h; j
  118.     self.bitmap.clear
    3 [* w( i3 q/ i; Q& O: L
  119.     @old_vis = self.visible
    * u* U6 u1 ~6 W$ L, B
  120.     @old_sp = @battler.sp
    9 _$ w( w1 N$ {- G( R0 l; l, q3 C
  121.     @old_hp = @battler.hp
      C$ G6 ]% P/ B0 g2 q4 j$ C. j
  122.     hp_flow_update
    0 A. z5 n( i" s8 G
  123.     sp_flow_update2 ~4 B" D% ?" B
  124.     hud_pos_update0 E* T; U4 t" j8 I, B4 v9 w1 F; U. o
  125.     visible_update5 u7 W) K1 d9 d, v% j
  126.   end
    ; O) \1 Z5 _4 c0 A( ~' e3 Z
  127.   #--------------------------------------------------------------------------
    ( A9 i8 x) J" `# A) y
  128.   # * Dispose
    & q4 w9 P2 e3 ^: v& t. }/ q
  129.   #--------------------------------------------------------------------------
    - A9 P% F3 R$ }! G; z: V- f. c
  130.   def dispose
    % L( K4 M2 N  C" R( v6 G3 H8 [' J
  131.     #HP Meter Dispose
    . t. |  K0 g( G' |; K
  132.     @hp_sprite.bitmap.dispose
    $ Z( p% G1 g' _" B0 t: j7 A$ S- C
  133.     @hp_sprite.dispose
    7 T" ~, M; [6 d. B; L3 l
  134.     @hp_bitmap.dispose
    ( ~2 G# w5 u- |" y& |) W% K
  135.     #HP Border Dispose, Q6 d3 \! F# o6 y* q: r3 I
  136.     @layout_sprite.bitmap.dispose
    6 l2 S7 \# Z: {
  137.     @layout_sprite.dispose* ?1 M  i) b5 K. @4 |: n
  138.     @layout_bitmap.dispose" N1 ~. j: s1 h9 p/ {. o
  139.     #SP Meter Dispose/ G. @9 x4 B& `0 r& h/ |
  140.     @sp_sprite.bitmap.dispose7 k* X2 W% W* k+ W% p
  141.     @sp_sprite.dispose  l  t/ J; V& ?; a3 m5 E: I- `
  142.     @sp_bitmap.dispose+ T6 t$ v9 ~' w9 R# p4 e
  143.     #SP Border Dispose" l  }6 `2 e- U. F) t
  144.     @layout2_sprite.bitmap.dispose8 X6 `) n0 J/ t6 T) ?: T
  145.     @layout2_sprite.dispose0 r1 C) @0 N. X- [
  146.     @layout2_bitmap.dispose
    0 E2 e) G3 h) Q
  147.   end  l; F9 e2 w2 l% M0 b
  148.   #--------------------------------------------------------------------------6 e* y/ d, N' S/ F% d7 Z8 a
  149.   # * Update+ F/ a% e5 X: ~& c  Y5 \
  150.   #--------------------------------------------------------------------------
    - B" f% H( v: Y+ k, z1 v
  151.   def update0 u- D1 R7 H! @/ I
  152.      @battler = @enemy.battler 8 f, y+ C( n* g# A
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?1 B4 r2 `; W5 {" `& z
  154.      if self.visible
    + H4 X" I' r) s' K7 ?( e) N
  155.        refresh
    1 K  u+ r( R7 d- m9 K9 H3 K7 m8 D
  156.      else1 N" ^/ i# d! H. I! y% p( k, k
  157.        self.bitmap.clear" l* i& J$ s. C) X( M% E' K
  158.      end  F4 q) |+ T$ q, ]
  159.   end
    8 [8 z& J9 ~! r- V
  160.   #--------------------------------------------------------------------------
    : h2 {2 _3 c. U/ s
  161.   # * Visible Update8 f* \; Y$ v- x+ o5 A4 }
  162.   #--------------------------------------------------------------------------
    7 Z) Z6 |/ Q0 P+ e7 b8 K
  163.   def visible_update% s9 ^* W! x  w* G1 N: L
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    7 L! V6 l$ `7 m2 ~( _( c3 }
  165.        @hp_sprite.visible = false2 N3 }+ E3 B% C  N
  166.        @layout_sprite.visible = false) ]& `# [+ ?; d3 b- O! B* S
  167.        @sp_sprite.visible = false7 s2 H) t3 Q+ V: z
  168.        @layout2_sprite.visible = false: @1 I( h4 H* @6 G
  169.     else
    4 W8 i( X, N. |: P9 l' s
  170.        if HP_HUD == true
    ! U6 O0 t: Z' N5 b3 N, q
  171.          @hp_sprite.visible = true) Z% T9 P0 w% ]% Q- W7 d) I% M
  172.          @layout_sprite.visible = true
    ! k0 P: [3 W+ h: H
  173.        else
    ' c1 J+ L4 @9 w0 A- z
  174.          @hp_sprite.visible = false8 h# X& {: R; M5 P  w
  175.          @layout_sprite.visible = false3 ?1 z8 s' [# l& G4 ?9 L
  176.        end  + |7 l5 j5 N' Z% l
  177.        if SP_HUD == true* Z% o: b- M$ S; M( D' z$ j4 X
  178.          @sp_sprite.visible = true9 W0 k; \! _$ q2 ~% Y# J& a
  179.          @layout2_sprite.visible = true* T, b- o6 ]0 Z3 W4 V- l' Y6 r
  180.        else
    & J1 K. N3 e1 Q/ n1 `
  181.          @sp_sprite.visible = false+ R) \# y8 O; i2 {* Z
  182.          @layout2_sprite.visible = false. _& A' w2 u  v0 |: B; \
  183.        end
    / E( p% {% @! ]
  184.      end  
    6 P4 m& S  i4 @1 Y4 Q  ~! j( ^* R% ^* q9 {
  185.    end , d; l/ Y2 _: {3 [1 T4 x1 @/ y
  186.   #--------------------------------------------------------------------------
    # s8 S1 i- w. V# \1 s8 n. l4 Y
  187.   # * Hud Pos Update. a1 u" ~2 |3 r5 f# V* S2 L/ K0 L/ k
  188.   #--------------------------------------------------------------------------! F" y+ J& b& f; {( z2 V* r  Y
  189.   def hud_pos_update9 H% c- @4 U+ q: {, T7 y/ {
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    + R; R; d( s# c2 t' W
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  5 s; n# e* Y  y' B* R7 g8 U8 m/ n. a
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    3 J+ A8 A  U% N6 S, K5 S
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    % `; ^5 b  w6 m; M' e5 v: M& e
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    7 y+ ?% M1 L# y7 i& G
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  3 s1 H$ v% d- W% u7 a, {6 Q
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X0 L2 ]7 U6 U- v9 F
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     
    5 {# h5 y/ z" H2 f
  198.   end  3 O, {$ w9 I4 v3 ~
  199.   #--------------------------------------------------------------------------; s5 E4 ~# J* D- j) B& J( N4 l
  200.   # * Hp Flow Update1 E# a$ U, l& R6 g% }* Z, i
  201.   #--------------------------------------------------------------------------
    * x% |5 d: b2 x! X( p
  202.   def hp_flow_update4 w2 \2 B( m& v1 N: H/ d4 S
  203.       @hp_sprite.bitmap.clear/ {% g/ p0 f/ z( O. x( S
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    1 ^5 p; o7 i$ a9 q6 R+ x3 l; |
  205.           #HP Damage---------------------------------7 F6 |9 }/ @- H6 f; x5 [0 {
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    : T" R# D, h& j6 W% Y1 O
  207.           valor = 0.5 if valor < 1          / i1 C1 p7 ]; m$ Y' Q
  208.           if @hp_width_old != @hp_width
    6 x6 e$ `2 v  E/ N1 ?
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    ! a& A1 P! ~0 n
  210.           if @hp_width_old < @hp_width , a* p; L* B7 a' T, Y" P
  211.              @hp_width_old = @hp_width
    $ B  E- C. ?/ _3 t
  212.           end      4 v6 p8 [( S5 a
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    $ n1 S2 Q: x0 I+ E
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       , x7 e' j# i- q# b' j  s' h$ r
  215.           end        ) R/ ~- |. i% i- i* x
  216.       #HP Real------------------------------------
    3 r4 U' k/ M- b1 O" p% z* y
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height): D" P1 H% h& q0 ^4 k3 m* |: j
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    3 h3 y6 K6 H9 Y
  219.       @hp_flow += 2  . e# @& I* Z+ M7 o  s! T- y
  220.       if @hp_flow >= @hp_image.width - @hp_range! ?3 l* q' s  n3 e  ]2 Q" H
  221.          @hp_flow = 0  $ \* h) _8 V4 L  k
  222.       end+ |8 h( A7 }4 o0 ?% ~, |7 O. g
  223.   end      `/ C1 a  o9 e+ ?) U9 o- U6 L  y
  224.   #--------------------------------------------------------------------------
    + s( _0 i, N! s% w( M
  225.   # * Sp Flow Update4 b* \0 @0 ?8 v5 z  H; m0 o
  226.   #--------------------------------------------------------------------------" Z( w# v! B+ R* i
  227.   def sp_flow_update2 u* r) Y3 [1 ^6 ~1 `. K
  228.       @sp_sprite.bitmap.clear
    1 N/ ]% R4 a* K6 b2 v
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp 6 c1 f) W8 k8 G
  230.           #SP Damage---------------------------------4 u% B5 W& }3 _- h& w
  231.           if @sp_width_old != @sp_width& S, p& r7 h$ i
  232.           valor = (@sp_width_old - @sp_width) * 3 / 1002 Q2 Y0 K, L& ~$ p7 @
  233.           valor = 0.5 if valor < 1              
    # A) f  P, t) S/ K
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    ( K' k% S! [: l% L
  235.           if @sp_width_old < @sp_width
    : T2 j- R( ?% o2 r9 O
  236.              @sp_width_old = @sp_width
    : Z) R3 _! _% Z( W0 B
  237.           end      
    6 Z5 H9 P$ o$ o2 ]
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    ! C6 }0 U5 D; H2 _$ X0 B
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old) + F% H* @5 B* ]
  240.           end) G* X+ D# {- B+ p7 R( H* {, y* b. }6 ?
  241.       #SP Real------------------------------------
    , u2 `" q5 P! _% f- x9 n
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)! J. B- y  W9 o9 z* S% I
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    " N, x0 ?0 K$ F6 k/ {/ |+ O
  244.       @sp_flow += 1  
    9 C/ b, T' w2 w0 m  J
  245.       if @sp_flow >= @sp_image.width - @sp_range
    6 U" T- g3 n  ?+ j- K
  246.          @sp_flow = 0  & K! P, N0 [" v% {8 v, [+ _, _
  247.       end; L% H# p: x+ A. O# @
  248.     end            + V7 u, N0 p6 \& w: g# [( ?7 b9 v
  249.   end
    8 t9 U; O! p( G
  250. #===============================================================================9 o3 ?$ g& E6 H4 m+ ]
  251. class Sprite_Character < RPG::Sprite
    / x6 v5 h8 ?% z9 Y" Y4 B' g- y6 q( c" r
  252. #-------------------------------------------------------------------------------
    " f: F# {" b/ I" s! L( \+ P
  253.   alias :xas_emini_hud_init :initialize% K( B! Q0 v. j" k: v9 B, x" |
  254.   include MOG
    , a7 Z) ^$ d: K4 Q) D" T6 H
  255.   def initialize(viewport, character)( U; \3 Z3 r# p+ f# ^% @8 q$ Y6 ^
  256.     xas_emini_hud_init(viewport, character)4 u! g; q- t& `/ M' D
  257.     @viewport = viewport
    7 l# ~' X* Y# j. z5 ]
  258.     return if @character.battler.nil?% |/ b' c8 Y- d2 ]$ f, j
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    7 k  ]2 {# l; z3 y2 O. z  N
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)
    9 v, h/ ^: L. e3 X% R. ~: {
  261.     return if @character.battler.is_a?(Game_Actor)
    9 |( H3 A* N7 t* I, }
  262.     @bars = S_Hud.new(@character, @viewport)( n' k5 C; T+ B6 P8 Z. J8 x
  263.   end
    8 T" M3 Z' s' j( r* \; B0 s8 I
  264. #-------------------------------------------------------------------------------! H' U  p. G4 L' K
  265.   alias :xas_emini_hud_up :update% S: e* q) y2 a5 l1 t+ c
  266.   def update* q; [6 G% A9 e8 T% [
  267.     xas_emini_hud_up
    6 ~$ d& O: A3 R! ?2 H& j: G$ Z. z
  268.     return if @bars.nil?
    5 a4 Z- ]0 B  H& X9 _
  269.     return if @bars.disposed?+ B9 u. ^2 {$ J, x
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs* T& D; t6 J( F
  271.     @bars.visible = (dis <= RANGE)1 R9 I3 `/ ]/ g5 q
  272.     if @bars.visible$ M$ c2 r: t5 H. ^7 g+ n! t$ X4 t' a
  273.       @bars.x = @character.screen_x# - @cw / 40 X; C$ Z+ I1 X- M4 j5 t8 I+ G  E
  274.       @bars.y = @character.screen_y# - @ch / 4
    ! x- {" a5 r, O0 O& ^8 W8 Z% y
  275.     end; O  e8 Z% ]% k& p/ m
  276.     @bars.update$ N, y9 u* y0 o4 a: }8 B
  277.   end
    8 W1 q8 Q4 V* d7 K
  278. #-------------------------------------------------------------------------------
    ! a/ I9 c) h. o8 }" k$ `. M/ @
  279.   def dispose
    + i4 |4 ~/ F$ F4 Y  {* v1 ^9 S
  280.     super" M! s1 b3 W4 U0 @
  281.     @bars.dispose if [email protected]?, S, T6 v1 n  i3 H2 P
  282.   end6 V0 F( T1 P1 ?9 j& @- Q9 B: n0 G
  283. end' Y" Y4 Q4 V: M% V6 ^
  284. ; M5 z; f* Q! e' y# S2 J( {2 y
  285. $mog_rgss_s_hud = true
复制代码

, `( P) E$ s1 }* R. y1 m, e
' w, e5 h  M7 ~& A+ E& E( [- W4 I5 a0 A) w( Z" p5 j7 e: ^
上面所說出錯的203行內容為
( f) `  U$ `! t1 z$ n8 n4 |/ f) X@hp_sprite.bitmap.clear5 S3 k; a/ ?" _7 k* h' M' B! d: w
  G! F* v. t7 ]7 o' v. X
想知道怎麼解決
" F' n! x; `" c& m5 v) e( Y3 z& j! ^
該腳本支持3.82
, b% e. s/ B5 B4 e# ]
9 |4 P, D! X& [5 M* }6 d& F下面是圖檔,要塞在Windowskin下
, Q) v: o/ {# I( a3 ^) x6 B* E5 _' o5 I6 r7 G  U
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
2 ~3 g0 S: i  `
: l, m/ t8 N* E% C, h9 O
1 S" c+ @1 q% `3 P2 ^9 e& |9 z* b: J

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
& l( x1 f5 M/ s9 _# y% g" j1 m* G结果尝试刷新了一个已经释放的图形
5 p. f) @( e! R
( g# Y7 T$ A3 f1 x% I
  n  D( K. L& a3 S) U" g/ |+ X; b
虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    0 L; X: N2 H, \9 }$ G* n
复制代码
不要后面那个条件貌似就没问题了。
6 [2 @4 }; [7 O* D. _8 m, O& W- [/ _5 Z

! X- r+ g' O  |: C1 [! L% ? 5 t9 S  o- O" F, u" u+ K- l) R1 |
" O' I; o' Q$ e$ U; i6 T
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
395
在线时间
1777 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 ! h  h" }3 _, U2 l
貌似是释放的条件不合适
2 f5 H4 \; e- u) q( F  E* l$ ~# ^结果尝试刷新了一个已经释放的图形
0 ]! F- r4 p3 S& P7 e7 w" L
把後面那個條件弄掉後,的確沒問題了3 ^2 {. E( h6 k8 a% b, D$ k$ m
目前從關頭打到關尾結束都沒再彈什麼錯誤
# M0 D& h7 Y. W2 S$ s% t+ I7 X非常感謝) E+ `9 q8 E( J9 c5 E
% _0 l- g" e( y
不過我是參照著別人腳本改的/ S& n* t) Q$ \0 V( g9 u! g
他寫的條件式也是那樣,但我用他的沒什麼錯誤
. E# C1 k( ^1 O, h不知道是怎麼回事7 @( I+ b3 H* P) D
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
1 Q8 B2 V* r) C6 c8 s. [! R我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events" d$ O. S; T& @% Q, z
嘛..这个数组吧..我在以前试写队友的时候关注过一点- H5 b8 x, I; h9 _/ d/ Z
不知道XAS内部对它做了什么手脚还是为啥,
" T! t6 n: X% J9 c总有那么一瞬间,没有被消灭的敌人事件也变成了nil
7 s  S+ }5 [3 h! Y9 Z# d' S- ^/ m/ h, {1 g5 f+ k, U# ?4 M. o) |
$game_map.events.values[@enemy.id].nil?
2 T) c4 @3 }% Z% x3 X0 F) |: M- j因此自然而然的返回true并符合条件把图形释放掉了
  ^  Q% [3 h( P5 K
1 h; r) p, [' O1 z5 V* V9 c/ MLZ应该有注意到吧,
& \1 A1 W" l6 z. B4 o我测试的时候发现报错前几帧,图形会消失,
0 F- e- |; n) k6 j3 V: K3 z应该就是“误以为敌人被消灭”了。: a: l4 }( ~; W1 K6 \! @( W. o
6 E$ E! o/ H4 b. T/ N' w1 r
受限于个人水平,至今无法找出$game_map.events的真相..# z& g8 L0 l. g! E- K& W: }
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
395
在线时间
1777 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
- f. H9 w3 c1 H, q& t$game_map.events
& e4 s% a5 v! J1 i9 h嘛..这个数组吧..我在以前试写队友的时候关注过一点
9 _/ N* [* L0 Y3 [: r  D; C不知道XAS内部对它做了什么手脚还是 ...
& x% Z- n, b: i) F) E! Z& ^$ T
當初我把那個條件式看了三遍,都不覺得他有什麼錯
2 G( \7 K6 ~7 }8 d原來還有這麼深奧詭異的事XD
* N3 t1 P1 ]/ ^& r% [& G4 l
5 q. D. u0 u3 j. V8 b6 x$ }5 K( n3 k錯誤發生前的確會有圖形沒顯示出來+ ~4 \4 _, O7 Z
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
1 @  q0 F0 T' H4 W# |) h2 |5 T沒想到居然是詐屍了XD& s* O. o7 [6 Z
  ]3 M- v/ a% X
不曉得3.91有沒有修正這問題...
3 n6 u' n; ]# H7 b1 _7 x不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
' e. ?( R) `4 `% l; D; r& p1 {  O- H
的确
& l, E. A5 U- u. B+ e6 J2 W9 H用惯3.82之后想去整3.91觉得压力甚大..
! i. ?% g6 ~# l0 R! I: U干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12289
在线时间
21800 小时
注册时间
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”。
/ l  S+ V/ _" @7 Q5 A5 V# [- N( A& ^! r3 c/ i( U: J; t; N
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-6-15 16:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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