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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條
2 _% Y' h& O# {( x, ^% A! N會在每隻事件怪物的腳下顯示
& c# o$ }! O5 P+ _9 y; x問題是不知道為什麼
7 ?- E: M! s+ v/ {+ _有時打怪打一打會跳出
1 R9 Y4 Z% T) _) i---------------------------3 T5 b, p% W  ~; g
XAS
5 G0 b) i5 Z' g0 Z---------------------------
2 O3 F6 d' L/ d" b! o; i脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
; g& Z& U8 e2 N3 \+ F
6 R! D- U5 _0 sdisposed bitmap8 m7 k& ?+ B3 ~5 u3 M1 Z# `, p
---------------------------$ Y9 R. e4 k) T  c. w; x
確定   - s# g! `6 z& b# n5 N  T: T
---------------------------
4 g1 R9 D- s8 `% E3 V; U( d2 n  U2 [7 h. B
這是腳本, M! W4 V& d$ \" M1 V& V
6 F5 d# ]$ z7 h' F' ]. @. X: K
  1. #===============================================================================- @+ e/ }0 G7 E3 t* Q
  2. # MOG - s Hud 1.0      
    3 ]2 z0 d. ~! ~1 a9 p
  3. #===============================================================================
    ' G0 p  T3 t7 t' j
  4. # By Moghunter
    # K, g0 I( g2 @* Y4 h2 |# }: Z! a
  5. # http://www.atelier-rgss.com
    $ d/ `) E; J8 L0 p  Q' `7 e
  6. #===============================================================================' q9 E7 u8 ^% n  Y9 I6 s
  7. # Translated by Calvin624 - `- e& z  J( i! t9 I
  8. # http://www.xasabs.wordpress.com& J+ a& B* j: D# @' R9 w' M
  9. #===============================================================================
    ; T$ n- j; X( x6 _6 n+ u  f4 b
  10. ###############################-DESCRIPTION-####################################" S4 e, n8 {/ z; ^5 j  V
  11. #===============================================================================
    * h& x( s& Y' F, t. V& [
  12. # Personal HUD – displays the HP and SP below the hero.7 h! ]6 l/ W' c9 E2 p" Y
  13. #===============================================================================
    6 `! H2 o8 V1 f2 {
  14. #, F. a+ g$ d( I+ ?2 q, @6 \. A
  15. # Graphics required:
    1 s0 r2 K5 m8 l  P
  16. # 4 @( U0 n' V9 U% w
  17. # S_Border_HP_Meter.png
    : t+ F8 }) e0 z/ K: H) P; ^
  18. # S_Border_SP_Meter.png. d" E' a4 E0 Z7 A% s2 k0 B+ h
  19. # S_HP_Meter.png5 w3 Z$ H- x9 ]# U) b3 r! T( C
  20. # S_SP_Meter.png
      `( `" G  z6 O: ]
  21. #
      L* }6 Q$ C$ J0 a8 R' a
  22. # All images must be in the Windowskin folder.2 n! g. y- x) I9 n6 Z8 @% ?0 ?3 q
  23. #6 V8 V* u1 B! _$ I* Y0 B  R0 n0 B6 p0 k
  24. #===============================================================================
    + a; p: C8 M, h) u3 J4 y  W
  25. module MOG# G% r! F! t; x
  26. VISIBLE_DEF = false  
    - n0 W, k2 c: v! l1 j$ `
  27. # Show HP meter?( `' \3 W5 {4 z) q# A
  28. HP_HUD = true1 d" V3 \( e$ [  O
  29. # Position of the HP border9 W: p% C, N! H0 s/ J
  30. S_BORDER_HP_METER_X = -2
    + l% n( g$ [- f  Y& c& D
  31. S_BORDER_HP_METER_Y = -2  ' x* h1 C- R" _3 O/ W
  32. # Position of the HP meter
    7 z% u& t6 T7 R2 j
  33. S_HP_METER_X = 0: z6 T: N. v% X
  34. S_HP_METER_Y = 0/ E! ^6 x7 a7 _9 _# y( J+ V
  35. # Show SP meter?9 @$ Y6 J4 }/ G/ `+ D3 P( H+ I) M
  36. SP_HUD = true
    + f: i8 S$ N! I1 h
  37. # Position of the SP border
    " R: i) [" |! S7 ^! ]/ q
  38. S_BORDER_SP_METER_X = 0
    ; N# v6 G( a% p. ?8 r+ ?
  39. S_BORDER_SP_METER_Y = 10
    ( Q4 |5 [" l6 L+ w
  40. # Position of the SP meter7 q$ y# u% S6 r* R5 R
  41. S_SP_METER_X = 0: y+ m0 i  k" h8 Q0 f/ ]
  42. S_SP_METER_Y = 10
    ' I4 E9 K/ d8 N8 U8 x- f& I2 X. o5 L
  43. # Switch to disable the HUD  Z. v  Q& `* h) Z( t
  44. DISABLE_SHUD_SWITCH = 59 w, d2 n9 w+ \' R5 {7 o6 o
  45. RANGE = 20
    4 z# y. C; q$ O! w- _; @
  46. end
    " D7 C5 \3 g* A: W
  47. #===============================================================================
    " y; o+ c: [# o) ^5 u' @% e
  48. # S Hud
    # q  a0 m: H7 J( ~: l4 Z4 K
  49. #===============================================================================
    . q  X- a4 M, B4 U! [2 }
  50. class S_Hud < RPG::Sprite0 c7 n0 p  ~& i
  51.   include MOG4 G( ]* j6 H* U7 }
  52.   #--------------------------------------------------------------------------* N5 A/ S0 e/ F, j4 [
  53.   # * Initialize
    % A! l0 W6 R4 U# u
  54.   #--------------------------------------------------------------------------" _# S2 s5 p. T5 g8 u% e
  55.   def initialize(enemy,viewport)
    0 n- n& ?0 Z' T  d( g
  56.     super(viewport) 0 k; a% i( a& t) J3 f. f+ h
  57.     @enemy  = enemy
    # ]# |, ~7 S" }
  58.     @battler = @enemy.battler/ z7 Y! s, q! i1 o
  59.     @old_hp  = 0; Q! k8 e6 ?- N* x6 p, J; H/ o5 f+ {( z
  60.     @old_sp  = 0
    1 P2 G. ~" @" ^
  61.     @old_vis = false( |# p7 ]. ]2 d
  62.     self.bitmap = Bitmap.new(100, 100)% R& B0 p' I4 w: [4 u
  63.     self.visible = (VISIBLE_DEF)#false
    4 C9 u3 ^# d! h9 V
  64.     self.z = 100
    , y( c% ?! Q5 K) c
  65.     #HP Border -------------------------------------------------------------------
    . Q4 n; l1 c( m! x: e  }8 [* U8 X
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")
    : ^$ S" f; m3 R2 C8 e. s( X( B  ?5 r
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)' F4 c+ X: d$ \5 `) p- v
  68.     @layout_sprite = Sprite.new
    8 ?  H- z" t4 C' I# W$ i( Q
  69.     @layout_sprite.bitmap = @layout_bitmap
    & M& Y9 e3 z2 x$ l! ?- N! L
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    1 z/ ^  d5 k5 ~1 n- p
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    " J) w5 G1 w5 x9 d# A* w+ g
  72.     @layout_sprite.z = 5001/ e* @& s! }) Y) Z& p+ i
  73.     #HP Meter ---------------------------------------------------, S4 d  S; k2 T" u5 x7 O6 V0 `
  74.     @hp_flow = 03 J, |! b1 {8 H$ e
  75.     @hp_damage_flow = 0
    . n4 o/ Y5 X1 p# W* N, M* ?
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")9 W7 i- p$ Y5 t
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    % A) g; Z4 Y- {) u% D, V% C* c* X0 n
  78.     @hp_range = @hp_image.width / 39 h3 H* S, |3 `7 K
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    9 r8 U' n1 F( Y+ b7 L
  80.     @hp_width2 = @hp_range / 2
    $ N" v( N7 n0 L! H; s
  81.     @hp_height = @hp_image.height / 2
    . D. `$ c1 I9 L
  82.     @hp_width_old = @hp_width. m  t5 Y1 l1 d8 W2 o
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)0 F( I1 |+ l* \) ]7 f
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) 4 N2 V$ k+ @* i- v% W* h+ `1 e3 |
  85.     @hp_sprite = Sprite.new" M" ~# [& m$ d8 G- B
  86.     @hp_sprite.bitmap = @hp_bitmap
    5 ~6 [0 K9 ?! E, r
  87.     @hp_sprite.z = 50021 c) S. @6 l8 \" b
  88.     #SP Border -------------------------------------------------------------------
    2 c# Y' A) L; T
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    ! s9 }4 L2 a8 _4 b: K
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)0 v3 \$ L# F; D3 `/ z, F) H
  91.     @layout2_sprite = Sprite.new
    8 J5 b2 }( Z) k$ R3 O8 b
  92.     @layout2_sprite.bitmap = @layout2_bitmap  T0 G* p5 F/ x, I* ^3 a9 l
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)$ c) }( ?6 F2 f* }! i
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      
    2 M' T1 E7 I4 l8 a$ r# |
  95.     @layout2_sprite.z = 5001    5 u/ R0 u% Y2 M2 }% L! C% F1 W, t2 ]! G
  96.     #SP Meter ------------------------------------------------------  U5 T, K5 `; V
  97.     @sp_flow = 0
    7 t' C7 C/ a0 q! w! d# K, b
  98.     @sp_damage_flow = 0
    3 \0 w- s& A1 o- `; V5 [
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")
    , {, J, W; g" G  z9 k0 {: b+ N
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    " @9 e. ?2 N8 n  A9 u
  101.     @sp_range = @sp_image.width / 33 f/ X: p* K) k3 @% o
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  
    / C8 q8 J* f/ i; v& q7 q
  103.     @sp_width2 = @sp_range / 2/ z( g" O: d6 @5 A, A) z; |
  104.     @sp_height = @sp_image.height / 23 {0 y  _% Y* ~, E9 o2 }3 Y) {
  105.     @sp_width_old = @sp_width5 W6 o1 |1 O2 j, h1 y
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    ( [! M6 |  t7 w  k
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    9 |. `6 X2 J- v9 h
  108.     @sp_sprite = Sprite.new' V* Z4 J) `2 l
  109.     @sp_sprite.bitmap = @sp_bitmap8 H, ]- Q' l3 Z0 u* b8 i7 g8 a
  110.     @sp_sprite.z = 5002! W9 }' v  G& x4 k" T
  111.     update6 Y2 o( `4 a; N" L+ Z- J) o
  112.   end
    0 D" U8 q* P8 g8 o
  113.   #--------------------------------------------------------------------------
    5 i1 x6 U, T' M# G! P( N) H- q
  114.   # * Refresh
      b, ], l2 n- w5 T
  115.   #--------------------------------------------------------------------------
    $ J2 Z* B% m3 s5 S
  116.   def refresh. U6 P8 w4 M* `6 C) [
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible
    : L! l0 z$ ?1 H9 N" n/ K
  118.     self.bitmap.clear0 p7 k) O" J+ W" C* h; D
  119.     @old_vis = self.visible0 K3 I8 k6 H' g+ x. g1 c- U
  120.     @old_sp = @battler.sp
    ' ]1 W  X% c- B4 Q* `: C8 S
  121.     @old_hp = @battler.hp. I5 j8 p. a5 k
  122.     hp_flow_update
    6 O/ k( Y2 n$ v1 k
  123.     sp_flow_update1 R3 ~$ G% J" L2 E) m; p3 A
  124.     hud_pos_update
    + x: `- j, A$ b* P
  125.     visible_update! ?9 a7 B) Z! \8 p. v
  126.   end  c6 T9 [  k) A$ l' S
  127.   #--------------------------------------------------------------------------
    3 l9 x. j4 Z1 X1 S4 Y
  128.   # * Dispose
    0 {4 Q, S9 t. \! [# N8 J
  129.   #--------------------------------------------------------------------------
    ! {1 w- N' G. X" Z" f
  130.   def dispose
    + k$ m5 A# a2 \$ W+ S" v
  131.     #HP Meter Dispose5 c; k8 s# h' ~/ n4 s8 {; l
  132.     @hp_sprite.bitmap.dispose; y7 b9 o) V# U' z$ [- j  C8 R
  133.     @hp_sprite.dispose
    % x1 O9 J# f5 N8 n6 L8 N+ r
  134.     @hp_bitmap.dispose
    # v, H) M2 O4 j6 ?  k
  135.     #HP Border Dispose1 d8 f; c' c* d$ P
  136.     @layout_sprite.bitmap.dispose) a7 u# S9 D+ r
  137.     @layout_sprite.dispose7 ~0 I: a( p+ D) h6 ?! e& b  K# x
  138.     @layout_bitmap.dispose
    - ]3 b3 q, ^! J8 U! j
  139.     #SP Meter Dispose
    5 z4 o0 d4 y; O5 c
  140.     @sp_sprite.bitmap.dispose
    ; w* v/ L! ~" A" g& x* |
  141.     @sp_sprite.dispose! A* d% C- o/ o' d2 ]: Y
  142.     @sp_bitmap.dispose+ e: Q8 c: @9 t$ n5 J
  143.     #SP Border Dispose+ w2 y: o% }" B$ F4 V
  144.     @layout2_sprite.bitmap.dispose' B3 M8 m5 K% @  t$ l
  145.     @layout2_sprite.dispose
    6 {" ]& a8 T4 b4 t
  146.     @layout2_bitmap.dispose6 j" C+ l$ O# L  b( i
  147.   end. J8 H- A7 e# G, B
  148.   #--------------------------------------------------------------------------
    % V% [# X2 F9 B. b6 ]$ `  Z2 E
  149.   # * Update
    $ N3 W2 \% F3 O  q. Q% ~% K0 V
  150.   #--------------------------------------------------------------------------, ]/ T, G3 M" E- W. K6 r4 t
  151.   def update) K* J9 H% f$ ^5 w7 a+ u
  152.      @battler = @enemy.battler " I4 T; A3 W1 m7 i
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?
    , q! n2 P$ R# x1 T' U+ }* }& V# A+ ?. w
  154.      if self.visible8 a% _3 P7 m0 w' ~/ K: _
  155.        refresh
    2 h9 q. v9 i' ~& I& c) J) ]9 C
  156.      else6 i" l0 L) ?/ P3 K5 b2 }
  157.        self.bitmap.clear5 I; x: k1 `4 e0 N8 z# B
  158.      end
    3 M, R3 n$ T3 {# V: Q
  159.   end5 ?  M  U! Y4 P7 _5 Z4 t9 v
  160.   #--------------------------------------------------------------------------+ ?' v- T6 c0 o
  161.   # * Visible Update
      y2 t" k: W  v4 P5 ]( ]3 V
  162.   #--------------------------------------------------------------------------3 X' J& |  w' s$ f  i! M
  163.   def visible_update
    . k$ m* o" ~" ]
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    7 [5 H9 C- V; a" V6 y6 R: M8 i) M
  165.        @hp_sprite.visible = false
    ' f4 O1 s- b" e3 X" m" Q) M' V; J$ w
  166.        @layout_sprite.visible = false0 q" G* S- ^; g
  167.        @sp_sprite.visible = false
    % n: M. ]' A7 a: m
  168.        @layout2_sprite.visible = false
    ' c: Q8 u3 ~9 K) q) t2 A$ N1 O: s0 L
  169.     else& c- y3 |8 u& P; y
  170.        if HP_HUD == true
    & N6 F  k0 L9 P% c: S' Y  Z  r
  171.          @hp_sprite.visible = true
    5 S' q: e. _. L% T8 X! y
  172.          @layout_sprite.visible = true5 `* [; E: P  H3 W5 {
  173.        else% Y7 Q+ ]; j. i- G0 ^
  174.          @hp_sprite.visible = false( _/ j3 G3 N. S4 R; C6 V/ z3 ^
  175.          @layout_sprite.visible = false3 R! ?8 L3 W3 N
  176.        end  
    0 r( W% N3 G) ~
  177.        if SP_HUD == true/ [1 l" w! U9 U: V" T! E
  178.          @sp_sprite.visible = true2 P' z3 w8 ?$ M% c! O# N7 k
  179.          @layout2_sprite.visible = true
    1 c7 H! r' J1 m4 `3 u! d" o' }" s
  180.        else
    * p& z/ I# f; K; G9 s  o
  181.          @sp_sprite.visible = false
      i5 `7 ~/ x  w6 _8 f' b
  182.          @layout2_sprite.visible = false- [$ X/ v" n6 f
  183.        end ( Q/ P8 P# J- H; S' \
  184.      end  
    9 ?2 Y' M& r+ [$ l( w9 T
  185.    end   o- ?, g& Z- X4 K5 y3 i  ~
  186.   #--------------------------------------------------------------------------( ^* u5 M, \( }
  187.   # * Hud Pos Update
    $ b: i5 }7 {$ D, _
  188.   #--------------------------------------------------------------------------
    - j) R* @' U* M$ l* [' A$ ^
  189.   def hud_pos_update
    ; |" Q3 g1 t* B. L& J: m
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X- Y& ^4 {" f- }0 E! ?# |5 T
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
      P' T" `* L5 ^3 S& f5 p+ B
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X& z. a$ g0 p  Q& {% o* `& u3 N
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y ! M" B% I6 ~7 ^  W& @
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X
    ; W% W* G6 y9 s9 A. }
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  
    ! U& d" D8 }+ r( \& u
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X/ M2 ?8 C9 V- z/ `- b- @
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     7 a4 D. C( ]) M% d; R+ D# ~2 u' ^
  198.   end  
    ( v% _2 N! v1 Q# I
  199.   #--------------------------------------------------------------------------1 o, U4 I0 ~( C, ?7 T
  200.   # * Hp Flow Update+ ]/ \$ T. a$ j% E) e
  201.   #--------------------------------------------------------------------------1 ^" t9 a* s' z
  202.   def hp_flow_update- c9 m8 a. B/ G
  203.       @hp_sprite.bitmap.clear2 J- ~" U4 g6 I# R( d8 _
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  / z8 R4 o: C8 S
  205.           #HP Damage---------------------------------
    $ T4 ?! V: X) Z# F- U2 y) w0 g1 v
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100
    ! r8 g! y' c  }) s" z
  207.           valor = 0.5 if valor < 1         
    ( p& _" ~9 O) X6 m. k# Q2 `) A
  208.           if @hp_width_old != @hp_width
      ]: |; p! y1 g& @' A8 i5 N9 A- M
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  
    & y+ t" @7 X) T) a" K' W
  210.           if @hp_width_old < @hp_width
    0 o) l2 ?$ G8 H2 I
  211.              @hp_width_old = @hp_width, Z# A. o6 N& [  d5 Z% q: I
  212.           end      / B% X' c  o2 j4 v
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
    5 `+ E0 a0 S1 N8 @; S
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
    3 U0 q$ l& S1 {+ W
  215.           end        
    4 ~( `" j% X, q% T' @/ X( B3 o
  216.       #HP Real------------------------------------+ ~  ]* l. }- C% @7 G% G: p
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    ; e* L6 e. c1 N9 X/ B5 t6 v
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          * v9 _9 j  P  z
  219.       @hp_flow += 2  + k1 u  c: ^! I  E+ J6 i
  220.       if @hp_flow >= @hp_image.width - @hp_range/ i1 w$ o0 s% T- Z$ P
  221.          @hp_flow = 0  $ R2 ?2 d" E5 l( m3 Y
  222.       end. B( q; B; t' X3 J* ~- b7 u
  223.   end   
    9 L) t% }8 N& [
  224.   #--------------------------------------------------------------------------
    , \7 K" I5 N6 c/ c0 [0 e
  225.   # * Sp Flow Update9 |" b/ R0 I% K- C9 B6 @3 `
  226.   #--------------------------------------------------------------------------
    / S9 b5 @5 \8 X6 a2 [  _' I  ]
  227.   def sp_flow_update3 l/ |) j2 i4 z, `- p9 N% n
  228.       @sp_sprite.bitmap.clear
    + ^7 Z0 y6 |4 U6 ?: R9 Y4 g, y8 N
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp - y) q7 _- |4 @4 e$ a7 }5 T3 M
  230.           #SP Damage---------------------------------( d& f, E1 B" w& x' q+ R/ l
  231.           if @sp_width_old != @sp_width
    / V# R/ p2 R( A* ]$ E, ]" [
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    ( [7 ?' g, D4 g7 V5 W; f
  233.           valor = 0.5 if valor < 1              
    * ]* e' Z1 O8 t) K1 z2 g: c0 @
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  
    ( {, y. K' {. z: }1 ^; S+ G; {
  235.           if @sp_width_old < @sp_width " m% }+ @+ S  Q0 X
  236.              @sp_width_old = @sp_width' ]' J: `' Q8 {! e5 o7 ]( C
  237.           end      
    2 O& `9 M6 z3 o: M8 w+ D1 P) G
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    / X4 u, O, f3 C* ~3 ]
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)   \0 B2 k" ?" R
  240.           end
    ; F- B6 v" r/ f! t3 b: R7 W& b. U/ R
  241.       #SP Real------------------------------------
    7 U5 b' I$ H. ?" q: r# u
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
    $ e/ q" u% _3 |/ h6 _5 s2 ?+ @0 W1 r
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    . V: E3 U1 j  g. I, g; d* r
  244.       @sp_flow += 1  4 C( q2 Y7 z2 }2 O
  245.       if @sp_flow >= @sp_image.width - @sp_range2 `1 d* t& T+ y/ r/ t) G7 ?
  246.          @sp_flow = 0  
    2 Q* G  F$ e* i9 K: \' f
  247.       end- O8 \; y2 m- U  f7 I6 b! ?9 I# U2 w
  248.     end            
    0 x- _6 B+ m6 [- \
  249.   end
    + l9 }% V- u% D5 l1 U6 n+ c3 M
  250. #===============================================================================$ _- [3 l# S1 e" N$ U6 C
  251. class Sprite_Character < RPG::Sprite
    * u8 \  V: J- f- M6 ~
  252. #-------------------------------------------------------------------------------- A) R2 J. _4 A5 j
  253.   alias :xas_emini_hud_init :initialize
    7 Z, @& o3 ^: G6 X
  254.   include MOG
    2 B. s8 t% A3 k) V7 _' T) I5 T
  255.   def initialize(viewport, character); H  B$ E4 n8 m9 u
  256.     xas_emini_hud_init(viewport, character)
    7 |+ l- W$ B; x5 K. J, G/ @& X
  257.     @viewport = viewport
    # k+ Q$ }- p6 h7 R& U  E
  258.     return if @character.battler.nil?
    * r* R/ R5 n! v, s9 k6 u. h
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    . t+ |$ B1 M! Y2 P4 r' u
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id), c) Z: h5 X$ l& J. l  P( w2 V
  261.     return if @character.battler.is_a?(Game_Actor)
    # R, o0 B4 S5 L; J% D7 U
  262.     @bars = S_Hud.new(@character, @viewport)
    1 [8 G  X" `- l9 R, V9 _9 ?
  263.   end4 e8 |- b- i& v) y; F$ z% X
  264. #-------------------------------------------------------------------------------$ N+ i% u6 V: t( F
  265.   alias :xas_emini_hud_up :update) d- s3 Z7 h- R) w' y5 b
  266.   def update
    7 x) Q, Z; r6 l. [, H) s5 j% D
  267.     xas_emini_hud_up. `5 m" p7 o3 X1 T/ [& D1 D
  268.     return if @bars.nil?
    $ v4 u) L: o- T" Q% I
  269.     return if @bars.disposed?' l- `7 v. f+ S! \  {5 V/ C
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs% O2 b! `( g# ~/ ]/ p% Y; u1 O
  271.     @bars.visible = (dis <= RANGE)
    # G- ^* }, w) \. a
  272.     if @bars.visible( Q$ G0 w( v6 ^+ A
  273.       @bars.x = @character.screen_x# - @cw / 4
      {9 C: v8 O7 V" l6 O
  274.       @bars.y = @character.screen_y# - @ch / 4
    7 L' P) C" J8 w- p
  275.     end
    ( l& R* p. V* y/ N% y# R6 m
  276.     @bars.update8 N& I8 [8 V5 n$ V2 e9 Z) k. E
  277.   end5 ~' _6 ^" E. x% X0 a; a
  278. #-------------------------------------------------------------------------------4 }& \' {9 j& {3 B% M
  279.   def dispose) }3 t$ Z' r5 ?5 F9 d2 [, `
  280.     super
    ( C3 @* O2 s% l
  281.     @bars.dispose if [email protected]?
    7 G9 N% v1 g+ j4 T% Z! h, }* m
  282.   end& Q( p2 {- L/ R6 h
  283. end8 a5 N3 j4 t5 V& J7 {

  284. 1 K! g: j2 G; d6 s. u- p1 q( D6 P
  285. $mog_rgss_s_hud = true
复制代码
- d/ ^6 f% A; n( t+ d

0 W0 d0 o" E) K5 u# L
! f; \, x- o1 M上面所說出錯的203行內容為
1 H8 h$ h# Q8 H& p+ D7 w/ A@hp_sprite.bitmap.clear
! ?9 u& O! T& U
8 Y1 C7 |4 N" L6 l; F+ f想知道怎麼解決. S+ G" {& L' o4 \
  K, V$ f' K( B; ~: ^: @" X
該腳本支持3.82/ {! V9 T1 q5 \& h* H6 E1 V

) [3 J3 B; q6 c- o( l' b下面是圖檔,要塞在Windowskin下" x1 H) E  V3 t" S1 B0 d7 U$ X
* p( W% ]6 I0 v( t2 j4 _
S_HUD_Graphic.rar (12.36 KB, 下载次数: 49)
4 m# b. B2 {0 {4 [% A: {4 A' ?# i7 l5 X- `8 S8 Q& h+ \/ K2 y4 {; d

$ I7 F7 C  T1 E/ m6 Q! ~1 z7 G, H9 M. n* L, W/ g

双子人

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

开拓者

8
发表于 2012-10-16 12:37:42 | 只看该作者
在那个脚本里面找一下“dispose”。
$ l; U  A; D: v$ Y# J
5 s* F5 W+ b; ~# P2 N然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

梦石
0
星屑
12929
在线时间
21871 小时
注册时间
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 | 只看该作者
恩。。没问题的话姑且这样吧。% P- h) g7 I% p: V0 O7 z  Z8 _
- @( d5 T  s+ s
的确
0 W' t: w; E" p9 H用惯3.82之后想去整3.91觉得压力甚大..
  y4 |& ]' A0 R) T# \干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
562
在线时间
1796 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19
: `9 z6 ?) b' M" w3 @! ]; v6 w. }$game_map.events( S$ Z$ ~- y' \/ }, @
嘛..这个数组吧..我在以前试写队友的时候关注过一点4 j: t* _# U4 }6 G- v( a" |2 D8 t
不知道XAS内部对它做了什么手脚还是 ...

- w; d4 v. y/ V; X' t0 o( E9 y當初我把那個條件式看了三遍,都不覺得他有什麼錯/ V' V5 G; Z; n/ L( v5 z6 q# p- j0 n
原來還有這麼深奧詭異的事XD
: u  S5 ~8 O4 E7 Z; |& n: X  g  |/ E$ t; i8 R7 r
錯誤發生前的確會有圖形沒顯示出來4 C. a9 i5 H, ~! U! z
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
5 e, H3 Y, q/ J1 A沒想到居然是詐屍了XD: K' A. w, ?+ h
; ?; a5 \* \; o' g$ W3 H1 K" E
不曉得3.91有沒有修正這問題...9 G* e" [4 P: ?' a- k
不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events
. G, v* b+ x$ r+ z! e嘛..这个数组吧..我在以前试写队友的时候关注过一点# C- S$ f% B( i
不知道XAS内部对它做了什么手脚还是为啥,
' ~0 G- B& s# w* n& v) f* ]总有那么一瞬间,没有被消灭的敌人事件也变成了nil* r' Y5 P9 L, Y

7 t+ J8 |% i+ O. H$game_map.events.values[@enemy.id].nil?& g, t$ K* ~0 n  j8 |, {5 y
因此自然而然的返回true并符合条件把图形释放掉了4 P% j% S# q# X; }
6 ]" }0 K6 I4 Y+ @( p
LZ应该有注意到吧,$ P$ g. c9 L* N
我测试的时候发现报错前几帧,图形会消失,, L+ B# a3 O# \, `7 o& Y
应该就是“误以为敌人被消灭”了。, p, w+ Q0 H3 {, v9 {
* ~  ~! K) h' i  F+ Y
受限于个人水平,至今无法找出$game_map.events的真相..% \* }% L7 V) |) }  p: t
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
562
在线时间
1796 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
, S" B/ x- P9 \, q, y. ^; y貌似是释放的条件不合适
% ]4 e- t1 X" ?! c. c( d( S结果尝试刷新了一个已经释放的图形

& o8 K+ D" H0 N% D/ Z+ z9 N! F把後面那個條件弄掉後,的確沒問題了
, p. m2 T# m9 k; B/ w5 ]目前從關頭打到關尾結束都沒再彈什麼錯誤2 K( z6 B  M8 h4 n& _0 S
非常感謝
, A$ y" D7 }  ?; c" }; U5 e9 `# V. ^! U: Q7 L" ^! f1 @0 S& L! h
不過我是參照著別人腳本改的
# Q- ^# H, t6 z% r9 N$ p他寫的條件式也是那樣,但我用他的沒什麼錯誤- U7 ~& q. R3 D0 i' Y* J
不知道是怎麼回事2 a6 ?3 w% I/ t3 G; L
是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的
3 `3 X8 G' o1 l5 ?* E我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
, A5 K- ]; Z* r! V  f结果尝试刷新了一个已经释放的图形$ M2 g! s# a: K2 t; F, P2 E

7 j$ _4 x$ r7 e6 s8 `8 g
- C/ s. n* [4 j9 H
' h$ t3 r- |+ L. h. J* Q5 E7 b+ ~$ _虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?2 G6 \2 ]  A& Q* c6 ]8 x: n
复制代码
不要后面那个条件貌似就没问题了。9 S6 l( f7 V7 I: a& c/ M4 x

: Z. k, U8 E3 P% E, {! R% I! e! P2 c9 C, z, d& p# l
0 m. B' G! k6 o/ \( C

- D3 R, Q3 ^9 m% T3 l
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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