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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
- ~3 x! C, T' N5 Y! F會在每隻事件怪物的腳下顯示$ |! H. w, E  E! T
問題是不知道為什麼
' Q' Q7 E' [9 ?0 i有時打怪打一打會跳出8 S* E1 v: b4 ^+ o# L
---------------------------9 [7 a1 h+ Z$ B6 _2 Z
XAS
: K5 i" H4 D; @; P/ i$ \6 h---------------------------8 j7 O. v8 r! T+ {# G- S# @, A3 D
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。8 m+ Y% U& N& G+ g* r2 C

3 p: H0 D4 p/ ]& |# Udisposed bitmap) n( \, k4 M. F5 l( ]; D
---------------------------- L1 A$ f( ?' F; B, y. g
確定   
7 Z9 i% J; V! I5 k---------------------------" F5 `9 H6 ^- j6 m* g: O
9 {5 D; A# \  i1 C: P( x4 m
這是腳本
. s0 N2 H) ]; @" ?9 |( T0 n" {7 \3 W5 p! }
  1. #===============================================================================& F0 ~% y$ S  x! n1 b- Y$ n
  2. # MOG - s Hud 1.0      
    ; p" b$ k, {( _0 L. w
  3. #===============================================================================
    $ N4 r! U2 W% V" c* _' n, ^
  4. # By Moghunter ' L- l4 P0 D" c8 B% l5 T7 z8 l% B% k5 v
  5. # http://www.atelier-rgss.com: ?+ a; Z. r) _8 r1 P0 d
  6. #===============================================================================9 G$ b: p' h3 W0 J1 H7 n( N2 I
  7. # Translated by Calvin624
    5 R' K8 K6 B5 X# T, E
  8. # http://www.xasabs.wordpress.com  w$ A9 d5 \% G
  9. #===============================================================================
    . S$ r2 N  `8 Z6 }+ l9 Y9 K
  10. ###############################-DESCRIPTION-####################################
    - g2 d4 B& N8 y+ i2 X% ^
  11. #===============================================================================4 k# H4 R; g5 u" `, n0 Y* j
  12. # Personal HUD – displays the HP and SP below the hero.- n+ y; L5 o. g9 O6 u+ I/ L
  13. #===============================================================================: I5 Z/ M8 \4 d$ @# ^" P  g
  14. #6 v5 l. Y  M. O8 W. d3 _! H
  15. # Graphics required:. j, ?# z6 U  \9 R- }/ w
  16. #
    / Z0 \$ U" y/ i" l& J0 |( h
  17. # S_Border_HP_Meter.png
    : Q# M7 i! X. v2 g5 k! B
  18. # S_Border_SP_Meter.png/ n' r( |% F' s& X! w+ ~
  19. # S_HP_Meter.png
    6 K" H9 c" q2 Q; _  O) M: s
  20. # S_SP_Meter.png* u% l7 w7 _  b2 @0 u! o
  21. #
    5 X) {, R8 s: `' I7 x3 L
  22. # All images must be in the Windowskin folder./ h6 u& s3 n" \; f5 y
  23. #$ |/ X# K) {9 Q$ B
  24. #===============================================================================
    ) A! A1 c+ S( G+ y& V' p$ B- T  S
  25. module MOG5 M% J# ^! W' b* m( j4 v  k
  26. VISIBLE_DEF = false  & P7 F/ J3 {% E; t- t9 l& [5 x* m
  27. # Show HP meter?  ^" x6 @- V2 j0 y+ u, E
  28. HP_HUD = true1 k  m6 a+ I, }2 h, m8 ]
  29. # Position of the HP border# \* h9 v6 d0 ]
  30. S_BORDER_HP_METER_X = -20 K* Y0 `7 a& f8 n& `5 m
  31. S_BORDER_HP_METER_Y = -2  8 m7 g8 z( u) E7 ?, O4 M' |! d) h; [
  32. # Position of the HP meter
    + Y" y/ s% t; i& P: I# x9 y5 v
  33. S_HP_METER_X = 03 ]7 @: q' T3 C. c6 m5 ^
  34. S_HP_METER_Y = 08 W8 L0 }2 [' ]: G4 G4 U! v
  35. # Show SP meter?
    . Z& e7 R9 R! x7 U; n) }
  36. SP_HUD = true# Q' U) u0 f9 }! N, B' d! Y' ~
  37. # Position of the SP border
    ; o/ ?% V* h& i$ ^+ E- s
  38. S_BORDER_SP_METER_X = 0, W, d$ h/ i) K0 E* H' `
  39. S_BORDER_SP_METER_Y = 10
    2 T. O6 }: `& ^
  40. # Position of the SP meter
    , V& f& r' w* C! R# g0 ^8 w
  41. S_SP_METER_X = 04 [. U- O1 p+ @3 @6 {
  42. S_SP_METER_Y = 103 u) t2 h# @; \% ?( m3 r6 \
  43. # Switch to disable the HUD
    / d6 `* T9 X8 z, b
  44. DISABLE_SHUD_SWITCH = 5) h( ^1 e/ a. a; o% y: w
  45. RANGE = 208 u( C' A  T% w5 y2 T" F# @
  46. end
    / S" V/ o* I8 q
  47. #===============================================================================5 R0 T7 o# j' K- o$ E) w
  48. # S Hud& G* \6 G# ]+ N2 h" Y1 B3 c8 R8 r
  49. #===============================================================================
    9 l) [3 S' ]' j, Z# o8 {" E
  50. class S_Hud < RPG::Sprite+ I7 O  H' U2 l6 f7 k! O" P: {
  51.   include MOG
    . F+ k+ D; [: d; A) w1 U3 v
  52.   #--------------------------------------------------------------------------, ]# u0 q# v: v: Z3 s8 h& b
  53.   # * Initialize
    # k4 b5 V7 L+ ?/ S# l
  54.   #--------------------------------------------------------------------------9 l/ U1 M% X, L2 Y" H% O- d# r
  55.   def initialize(enemy,viewport)
    , `# x3 n* g% L1 `: `/ z% a- u! E
  56.     super(viewport)
    : z2 j2 d6 C0 Y
  57.     @enemy  = enemy
    + I& u. Z, A1 H/ f2 X: R7 ~
  58.     @battler = @enemy.battler+ z1 G+ c1 d& d9 H6 @
  59.     @old_hp  = 0
    8 X8 o& B* d1 R1 I8 T
  60.     @old_sp  = 0
    $ o( p3 L- v" C0 Y) p) n# Y
  61.     @old_vis = false
    0 _* X6 i$ _# W  n+ y: q+ M, K2 ^
  62.     self.bitmap = Bitmap.new(100, 100)
    7 b  a: P0 n  O; T$ m% ^
  63.     self.visible = (VISIBLE_DEF)#false
    ' r. {, I/ p! o, L) v
  64.     self.z = 100
    3 X  i- {6 D. t0 k# c8 n2 |
  65.     #HP Border -------------------------------------------------------------------
    % V; K& @; z& {# b9 w" z
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    . W7 Q: Z! }1 R" h2 g1 s$ M
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    8 v9 l  E' ]; A4 e. l, p2 I
  68.     @layout_sprite = Sprite.new) D. R; S& Z4 G# A% d' |# ~
  69.     @layout_sprite.bitmap = @layout_bitmap( D( ~' d, u( t2 ~( U: A
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)/ i# P# q; e3 \1 q; y4 q
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    0 u( l. q# V, V* v3 X* d7 k
  72.     @layout_sprite.z = 50019 r+ ~, Q4 i1 ^6 |
  73.     #HP Meter ---------------------------------------------------
    * }* j6 R* A7 U. F7 q6 N
  74.     @hp_flow = 0
    0 p5 p; @) v' ~' C8 A2 `
  75.     @hp_damage_flow = 0
    ! p  W- e0 K+ I' K+ I  K2 H
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")
    ; R$ j5 c6 |' V( a7 Y  i
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height); Z! ]( [" W2 m3 b: _8 X
  78.     @hp_range = @hp_image.width / 3
    ' `+ v; j& w+ o0 r0 Q
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    ; {  V- |* d1 m9 e5 i- |) d
  80.     @hp_width2 = @hp_range / 23 F& Y+ f" S* [. V1 C
  81.     @hp_height = @hp_image.height / 27 |3 U8 v1 \5 q# B
  82.     @hp_width_old = @hp_width, E0 J5 M! O, h: T4 y: w
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    # [2 p" V9 w% M# L/ t
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) * b8 h3 c0 b2 ]; _4 I
  85.     @hp_sprite = Sprite.new2 G1 h1 l8 \8 X* O8 m& \6 j( ?
  86.     @hp_sprite.bitmap = @hp_bitmap1 e! u. n' G# u# i, K, ?+ P
  87.     @hp_sprite.z = 5002& H6 J& b) G0 l7 t
  88.     #SP Border -------------------------------------------------------------------5 {( b1 ?  E! K
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    6 p6 ~$ x) G' I7 `" g
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)" f& p: E4 [0 b
  91.     @layout2_sprite = Sprite.new
    7 u4 ?" K, V) e5 p8 o
  92.     @layout2_sprite.bitmap = @layout2_bitmap
    ' L5 v/ ^- {# }4 B# e& K
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)+ Z- T0 ?) u9 O' [6 ^/ J$ J$ \
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      ) |2 S! P# n" R( P6 t' k+ b
  95.     @layout2_sprite.z = 5001   
    2 A7 y) s( v+ W
  96.     #SP Meter ------------------------------------------------------
    ( ^7 A- ?6 P$ _; j! N; c
  97.     @sp_flow = 0% c+ Z* E1 P) A: B
  98.     @sp_damage_flow = 06 B4 i! x; O* s. i( I$ M' ~: H; `
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    : i3 a7 w! o% D
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)! W! q8 I7 T6 [8 T. C' D, V) u2 m7 M3 \
  101.     @sp_range = @sp_image.width / 3
    * y$ ?8 r* s! }7 z& i- p
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    & L5 y* p$ D* q. I+ Q4 c
  103.     @sp_width2 = @sp_range / 2
    ' T, S# o! L6 g' ~) |
  104.     @sp_height = @sp_image.height / 2
    / o8 T, ?1 A9 R
  105.     @sp_width_old = @sp_width
    ' u  [) }  c& }" c
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    5 b/ y) \0 V# D9 D: c3 u0 M
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    3 R. r* f+ E4 C, S' o
  108.     @sp_sprite = Sprite.new$ f1 j+ O) A% k
  109.     @sp_sprite.bitmap = @sp_bitmap) d! _( ^5 e1 Q( C
  110.     @sp_sprite.z = 50025 k  o2 Y/ n4 k9 t' G6 a% Z
  111.     update
    % p& [& |7 K1 N# J" f# H
  112.   end
    9 U& a5 D+ }$ ]& T$ P
  113.   #--------------------------------------------------------------------------" w* q$ W' v7 g8 v% M6 X
  114.   # * Refresh$ U7 U- b, l2 o* }. X: `' d' ~. @
  115.   #--------------------------------------------------------------------------
    : p) F% R0 }9 }- Z0 t! q8 Y8 H) j
  116.   def refresh
      n/ \! I8 m/ J" H
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    8 |" `5 l+ u) v: L5 w; c7 w( q
  118.     self.bitmap.clear: z* m2 x1 O) a/ P, t; ]. ]
  119.     @old_vis = self.visible7 X9 c2 K2 P2 s  X  I# T
  120.     @old_sp = @battler.sp5 L! q5 ~1 S8 h7 y) P* E: K
  121.     @old_hp = @battler.hp# _, g/ ]6 Q9 b+ Y
  122.     hp_flow_update2 x/ q: _* n( t
  123.     sp_flow_update) q- M/ b2 ~7 ?( F7 U0 Q( ?& D
  124.     hud_pos_update
    * d* B8 k4 x: [7 ]
  125.     visible_update, m5 _( }; h! j9 T! Q$ E
  126.   end, B" Y, ?  ~4 l4 a* F
  127.   #--------------------------------------------------------------------------
    5 h7 ]8 p2 v* g2 i
  128.   # * Dispose
    ' U$ H% q' Y2 t- N( n: L) W
  129.   #--------------------------------------------------------------------------. |( m0 f7 T# o5 T
  130.   def dispose
    # _. z) m1 f* Y+ ^% \
  131.     #HP Meter Dispose, B; ?& c7 K/ E5 \& n: s. Q, w
  132.     @hp_sprite.bitmap.dispose
    & l. H) k4 H5 i2 r9 u
  133.     @hp_sprite.dispose
    . V! n8 @6 y8 l: H3 g( H4 H+ D
  134.     @hp_bitmap.dispose
    4 c& t+ W' t2 y, ^8 J
  135.     #HP Border Dispose
    8 |8 |/ ]. F0 {! O/ R6 r2 E) `
  136.     @layout_sprite.bitmap.dispose0 ~8 k) v; i, C6 l. g0 s6 K
  137.     @layout_sprite.dispose
    5 k* c1 h3 v% W8 b
  138.     @layout_bitmap.dispose7 {. S- `( c5 a7 _* T
  139.     #SP Meter Dispose, I6 v5 A& N4 J% p
  140.     @sp_sprite.bitmap.dispose  c0 x% S9 C$ |% s. x
  141.     @sp_sprite.dispose
    . L& p8 E7 j4 c  A
  142.     @sp_bitmap.dispose
    - R" m* w! B& X. y% c- G5 j9 e
  143.     #SP Border Dispose
    3 c; g  I* T) y4 O; h
  144.     @layout2_sprite.bitmap.dispose( ^# P1 m$ v+ o
  145.     @layout2_sprite.dispose
    4 d# C9 l6 q8 |; I( p/ T
  146.     @layout2_bitmap.dispose
    ) Z$ a  F$ o$ D
  147.   end
    3 x7 S+ j( u- y6 H
  148.   #--------------------------------------------------------------------------
    . c7 ]  |5 S* l
  149.   # * Update
    $ J" D) I) H5 T8 s' R
  150.   #--------------------------------------------------------------------------
    6 j! l/ G/ R0 Z4 S' G/ p
  151.   def update
    6 Z+ j9 f: z1 M$ U# u
  152.      @battler = @enemy.battler
    1 v$ k( I! N! r& f
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?' P: q6 B: L, P: b& t4 |+ L
  154.      if self.visible
    ( j; }% e0 e; v6 w9 a6 `2 C
  155.        refresh2 E; l% n* _; A) S6 o; \! J/ X
  156.      else  n# ^, D' `6 S, U* R7 [# Y: |5 \
  157.        self.bitmap.clear
    ; s2 i4 F# l+ X9 a5 F( u7 y
  158.      end8 |/ g  ?+ Y$ K
  159.   end
    3 @. C6 z  u  P
  160.   #--------------------------------------------------------------------------6 e* I8 K5 [( ^. V; _: D
  161.   # * Visible Update2 P4 `9 Q" w; P
  162.   #--------------------------------------------------------------------------! s9 r! E( E' o+ J& A9 c! \, s2 s
  163.   def visible_update
    * V5 U+ e% P( `
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    6 V6 c! B% Y* d: S/ ?: ?& m. |, q. @3 B
  165.        @hp_sprite.visible = false& U, R* g3 i# Y* W
  166.        @layout_sprite.visible = false
    ' r4 Q2 a) t" v/ _3 q
  167.        @sp_sprite.visible = false
    ' v; Q5 S* K% |; {
  168.        @layout2_sprite.visible = false
    6 `. {, S* E2 Z6 `( B$ d$ A
  169.     else1 w0 V0 L" V0 j! Z3 U3 p
  170.        if HP_HUD == true
    9 n! c2 f- `/ h2 k* T( m' K( q
  171.          @hp_sprite.visible = true( t; D3 ?& R- ]6 I) L
  172.          @layout_sprite.visible = true& D/ p# H- x: T3 N4 T
  173.        else2 D  e$ v" P. y: U! H, z
  174.          @hp_sprite.visible = false& |7 Y* t- s+ A- f+ s* |! \' y
  175.          @layout_sprite.visible = false
    % k$ o3 {0 F2 A! Y, j; {8 u* {' F  Z
  176.        end  # Q2 m7 m, q  U3 m5 z( S% D, y
  177.        if SP_HUD == true
    3 B8 I* I6 o5 R
  178.          @sp_sprite.visible = true5 p6 K# ]) Z) p6 u( P* \, u# R: A
  179.          @layout2_sprite.visible = true
    9 g+ Z* e) g& u& \0 v
  180.        else( x2 B& o: F% ^, @' ]1 q% E
  181.          @sp_sprite.visible = false: z) F7 n4 v0 T% p
  182.          @layout2_sprite.visible = false3 G7 x, l7 @, \" ^. Y" B2 F4 ~8 d7 J7 K
  183.        end 8 Z* @$ Y' f) ~7 a  v6 X
  184.      end  5 }6 M9 Q* u1 d' W2 a
  185.    end
    3 }$ L2 o5 ~- Q" o  x
  186.   #--------------------------------------------------------------------------* X, ]% u" g9 H) F
  187.   # * Hud Pos Update' D" X6 B+ j! v* o) r' p  J' F" _
  188.   #--------------------------------------------------------------------------4 E7 X" ]1 `7 W1 F/ e+ P
  189.   def hud_pos_update
    5 [0 G/ y" F: H+ b7 W
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X
    6 r1 r7 e' L& C$ m5 q8 g, z
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    1 R9 @1 n3 a# e: ~4 `
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    , `& Z3 t& ^. q7 j* ^# E
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y . A; }: Z- c+ T: K1 q
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X7 _4 S1 e9 P) {6 {2 \9 |; ~
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    ' p% m! z# p4 `2 c+ ?7 r7 t
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X& Z' Z3 N8 V5 E9 _
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     % W; J* y  ^5 `7 {
  198.   end  
    . K( A, D7 v$ O5 @& q
  199.   #--------------------------------------------------------------------------
    + ~9 R* s: c' a
  200.   # * Hp Flow Update
    & ?1 q: n# T, @( h/ T
  201.   #--------------------------------------------------------------------------
    & \' `( U' ~- p/ Q/ t$ R8 m7 l" D# X
  202.   def hp_flow_update
    ! f* {7 v& V! _/ o
  203.       @hp_sprite.bitmap.clear2 F3 M( K- q2 L! W3 @% T
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  . d3 D' m% \# ?4 l% C% s! m
  205.           #HP Damage---------------------------------
    ' X) y# Q; O1 O4 o7 J: v7 R
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100' n0 _1 h0 @+ l4 f
  207.           valor = 0.5 if valor < 1         
    " n/ y' o7 P6 A  R3 R4 P# r
  208.           if @hp_width_old != @hp_width; a) }) c! H# M1 i* \
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  8 D* u0 n0 s% y5 Y
  210.           if @hp_width_old < @hp_width ' l0 {( L' f: g3 f5 W5 m  l
  211.              @hp_width_old = @hp_width- j& q3 F; D" N% r$ @
  212.           end      & V+ d- L) R7 l* k
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    6 h9 V! |, ]: `8 W" H
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       8 g  O9 m1 q  f% W
  215.           end        
    / _" s- V3 j& A2 ~& f, T( H5 h: I& N
  216.       #HP Real------------------------------------$ ~! h+ m" ?4 }
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)# V& `; T" W1 i( I
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
    1 Y* u$ C  v* d6 b% g" }( `
  219.       @hp_flow += 2  
    ( s$ u7 x; O) F% U2 A( }! f
  220.       if @hp_flow >= @hp_image.width - @hp_range
    4 ^5 t, y% Z- Q/ b- L0 Q
  221.          @hp_flow = 0  . q( Q2 i/ U" ?- C' {$ K! q3 d
  222.       end
    ; \) p1 p3 Y6 Y  }' m, G) `+ `
  223.   end   
    ( }& G, M1 ^- v; A1 |$ ~. [9 @
  224.   #--------------------------------------------------------------------------+ ]; Y+ E7 R: X
  225.   # * Sp Flow Update' [. e! x& w3 c+ `
  226.   #--------------------------------------------------------------------------
    # \! ?, G. N; V- Z. ^! n6 f
  227.   def sp_flow_update
    : V  K" K; w1 e- L  p# S* s
  228.       @sp_sprite.bitmap.clear$ |. E( t0 r- Y9 ~+ c
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp / u- q5 \4 y' z
  230.           #SP Damage---------------------------------
    3 k  f. o9 ~! D$ d; b4 M! [2 d
  231.           if @sp_width_old != @sp_width
    0 `/ {7 b- k  ^& h
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100$ h  l& M* f3 P& B+ W4 N
  233.           valor = 0.5 if valor < 1              
    - l! M: y' V/ m% Y) z
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    ) Z/ P; F: Q. z/ T1 ?
  235.           if @sp_width_old < @sp_width
    " W8 P# ~# V3 ?  d9 C( M; F) o% G
  236.              @sp_width_old = @sp_width" Z% x' c; I6 {& C- K0 a" t
  237.           end      ( e% ?* P" N. A3 M+ O, H
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)$ X$ r. j' I' T9 ?% ^
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    - r; I8 }3 N4 C* O( a: r$ B
  240.           end4 J8 m  z. y$ O
  241.       #SP Real------------------------------------3 k1 E% h5 Z/ z
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)6 J7 f) o4 F- _0 z$ B" ~/ S
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    ! d0 n5 |( x; {+ r6 h
  244.       @sp_flow += 1  
    " k$ }' U# \" k3 H) m$ m, y- w
  245.       if @sp_flow >= @sp_image.width - @sp_range& _' L* c5 s9 `& e+ O1 Q% U
  246.          @sp_flow = 0  
    ; N* ?0 v: D8 j$ l
  247.       end
    3 T: s( w6 \& O' @7 n6 g
  248.     end            , b1 y$ ?, [  a* ~9 I
  249.   end: o/ j/ o. M1 E* y$ y9 c
  250. #===============================================================================
    " U. z- v% L( V
  251. class Sprite_Character < RPG::Sprite% Z; n0 H( \- C" H+ W; M8 a
  252. #-------------------------------------------------------------------------------5 |' k7 z3 ?3 f6 u2 D* m# j* |
  253.   alias :xas_emini_hud_init :initialize& Y" e$ l$ B' v, l2 |
  254.   include MOG( m5 _( B6 ^+ r7 _& f; [+ f
  255.   def initialize(viewport, character)) Z+ c2 o8 _/ r! d
  256.     xas_emini_hud_init(viewport, character)8 j4 }2 ?3 U1 q* X% f  R
  257.     @viewport = viewport8 f% }! {/ M" L) A9 m: ]
  258.     return if @character.battler.nil?* P' C' [! t+ _  ~+ X) O
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)6 ^# t# s& }+ U7 ~) x$ @% i
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)  O" p$ c. Y, o& ]- I& Z
  261.     return if @character.battler.is_a?(Game_Actor)
    & s( P& @; p* f; u, |: P
  262.     @bars = S_Hud.new(@character, @viewport)' Q/ ]4 k6 m: q1 m" {# _4 ]
  263.   end! C5 E, I! v$ V3 ]# u, c) Y9 S" s2 S
  264. #-------------------------------------------------------------------------------" ~3 X7 g" A/ @4 [
  265.   alias :xas_emini_hud_up :update
    / [% D7 ?8 c6 i% ]3 ^
  266.   def update
      _4 i+ I5 h1 h( y# P
  267.     xas_emini_hud_up% s4 q$ n/ ^+ k8 S5 Z' Z
  268.     return if @bars.nil?
    $ o) K" N( B8 ^
  269.     return if @bars.disposed?$ b7 k. b5 r8 ?- A1 K0 u
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs
    : V: N! m: s, Z# q0 p
  271.     @bars.visible = (dis <= RANGE)
    " H# G' A0 ~. g: A! w, ~
  272.     if @bars.visible
    1 n7 i9 v; x: Y5 z2 R% L# o
  273.       @bars.x = @character.screen_x# - @cw / 4
    ' J: V2 f! v7 v: f3 g
  274.       @bars.y = @character.screen_y# - @ch / 4
    # q/ k6 i2 d1 Q$ Q, [
  275.     end4 f7 `, K0 K- j: a
  276.     @bars.update1 r6 d+ o" @, t5 T5 m& u
  277.   end
    + i9 d: w# B/ E2 J6 I8 A4 y5 W
  278. #-------------------------------------------------------------------------------% u; k; w. l3 ]( G  v  e" _
  279.   def dispose, d. g4 V$ E1 b: n/ F5 C4 V  c
  280.     super: t8 Y# m2 i5 x* a5 _
  281.     @bars.dispose if !@bars.nil?
    : x. f. @8 p# O+ r6 F# W
  282.   end8 g- ]) \8 l& F+ c9 ]4 l6 ?+ Q
  283. end; {6 p( j5 j3 ~& Z+ w: w

  284. 8 [2 f  a) N( G. P& V, z4 Q
  285. $mog_rgss_s_hud = true
复制代码
8 z& t- a( R; Y7 W! c

9 ]$ s, a2 _# |7 q4 I2 P% B, E9 w/ U8 [
上面所說出錯的203行內容為/ a- J( u, K4 }# H; E
@hp_sprite.bitmap.clear
% f* j( B' n3 Q/ X  _
& G. }7 K4 a# h0 z: P9 K0 X* l$ [想知道怎麼解決: X* Y7 S/ U6 x. ^& V

. F0 S; F- I2 A8 n4 \該腳本支持3.82
) O2 w7 G1 I0 b  U% }1 g1 [6 A8 Y' U, p! g
下面是圖檔,要塞在Windowskin下
+ w- j8 t, @5 {& I/ w5 F" _9 }/ ?0 f+ T
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) * J. g) ^9 \- F, v
3 |" c1 c4 n6 V: }# \; G

( g- Z( ~" c) ]7 G, y3 x) t# f0 @, i0 h$ _

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

双子人

梦石
0
星屑
3190
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。
+ Q' C, E5 c$ j4 V" k( ~! k/ e8 _/ e. R  P4 n: c* l
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

梦石
0
星屑
12559
在线时间
21828 小时
注册时间
2010-10-24
帖子
309
7
发表于 2012-10-14 22:09:20 | 只看该作者
LZ是触手,鉴定完毕。
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
8 G" N* {; N0 l9 t/ _
" r. n* C: P/ r6 R的确
; {" P, T' e  j+ L2 @6 c+ M- u) m用惯3.82之后想去整3.91觉得压力甚大..; v, R/ t. [8 b* J( W7 a* ~0 w7 p
干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
502
在线时间
1787 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 3 a! m5 p" p9 y! y8 X1 d- S
$game_map.events
9 W  ]# b9 M" s+ N1 d+ `4 X嘛..这个数组吧..我在以前试写队友的时候关注过一点
+ p/ Q9 u! @1 k* ~不知道XAS内部对它做了什么手脚还是 ...

9 N' V) }  `  y! z5 Z" l' u, q6 @當初我把那個條件式看了三遍,都不覺得他有什麼錯
; T6 }$ u1 z  R, x- t; Z+ [9 m$ Q原來還有這麼深奧詭異的事XD
9 c4 H, N% P3 F
, U! j  |3 i5 H- Y+ @錯誤發生前的確會有圖形沒顯示出來
  k) `0 d) W3 N8 D- B- f$ `不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...! ]( U$ }# {- |/ \6 N$ p+ e" i; Y
沒想到居然是詐屍了XD
7 |2 F* n  w  Y9 s' ]9 I8 C: ^: z# C" U- A/ J3 D
不曉得3.91有沒有修正這問題...
& x1 c* ?/ e( v6 X- X4 t' T不過3.91改太多,實在有點沒動力去剖析他...=___=

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

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
3 j4 g9 X5 _, }/ e( A% F# H) D4 _嘛..这个数组吧..我在以前试写队友的时候关注过一点
) z2 A/ X. x. S不知道XAS内部对它做了什么手脚还是为啥,
8 a/ ]: w2 W. t6 ?, y) j6 q  B8 }总有那么一瞬间,没有被消灭的敌人事件也变成了nil! ~: u: ]5 v3 G, {* f

( W1 H6 e$ T% }0 s$game_map.events.values[@enemy.id].nil?
  d+ ~& f- K; t$ X0 p因此自然而然的返回true并符合条件把图形释放掉了
. y1 x  y) f7 N* n; W( s7 G! A& X+ R
LZ应该有注意到吧,. y3 u3 y* @. }& X3 y% ?
我测试的时候发现报错前几帧,图形会消失,
2 W9 e) \& y! c% k; J% o1 e7 i应该就是“误以为敌人被消灭”了。, ?2 C9 J  {' E# D2 |( I
2 ^0 S9 O8 r* W
受限于个人水平,至今无法找出$game_map.events的真相..! g7 G7 U& G! X) g) ~( c. ^- t
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
502
在线时间
1787 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55 ' _3 ~7 {0 Q/ m% P, J8 f
貌似是释放的条件不合适. a; F$ O3 Z; ^# B
结果尝试刷新了一个已经释放的图形
, I  S6 y. l: v
把後面那個條件弄掉後,的確沒問題了
6 _* i! v$ r2 l' u3 |; V1 v目前從關頭打到關尾結束都沒再彈什麼錯誤
% j. b- N3 n" m9 S6 h非常感謝( M7 H9 ?- _! }) P
1 r* r/ b8 ~1 _0 ]3 A
不過我是參照著別人腳本改的
1 J8 l7 h7 Y( Z; `6 s, F他寫的條件式也是那樣,但我用他的沒什麼錯誤4 O# l8 @5 S3 g' g4 ]
不知道是怎麼回事
7 H7 J& j  Z: \是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的: x3 j0 J. b" _( E! y! `) S5 i( F0 }
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法

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

使用道具 举报

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
% W0 c+ J7 M+ P/ k! _结果尝试刷新了一个已经释放的图形- J0 p* r; ]' @' _7 e, T

7 J( k% B" P/ |# Q9 `3 _* G, L. o
  t( Q4 R5 n4 v1 _% S
: H' q4 D- X1 o0 D- h. _# B虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?
    7 Q! D  E1 z6 D9 [' S+ T8 f6 K* y
复制代码
不要后面那个条件貌似就没问题了。
  e' W+ Z& g4 G/ N  \4 h, _% O, {$ B* S- u. o
% x( }3 ~) X; F* y& V. r2 [; l! l

/ U& C! n8 v8 l2 d
7 q/ Y+ @: x" i# u) g4 E$ v+ I8 {
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-8-11 22:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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