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

Project1

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

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

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

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

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

x
這是我將官網的S_HUD修該而成的怪物血條, d4 ^! q4 n+ h- t# J8 z. q4 C
會在每隻事件怪物的腳下顯示
  i! x* E' l/ n# C問題是不知道為什麼* O; Y) r$ W3 n, |
有時打怪打一打會跳出
! O5 z3 M# W: p5 K---------------------------
( }1 A6 v0 S2 y1 l* e+ V3 eXAS
) D5 r3 n5 G/ R/ g2 d---------------------------% I, Q0 J! S5 {) ]$ Q! O5 T
脚本 'MOG - S HUD' 的 203 行 发生了 RGSSError。
6 J! [! J% E& R$ [1 N
/ E* a' z7 O- P* C' B- W+ i4 vdisposed bitmap% P% ?) Z3 o+ C7 R8 m) F% Y, Z3 e* T
---------------------------
- H& u: m9 y( q) m: u確定   " s; J( j" p% ~0 \
---------------------------+ \- y- t& y9 C  n4 Y% C4 p

0 K; ]2 H/ S& M8 A. h. Y% o這是腳本
5 d9 Y  F/ ^( p7 J; b6 [" q9 Q3 z
$ M! ]6 T4 Y7 \- p
  1. #===============================================================================& |2 V# X4 [2 o$ n8 x
  2. # MOG - s Hud 1.0      
    ' ]. m, O* x1 R; K; D
  3. #===============================================================================
    * q; C1 n! t$ {/ H3 L; r9 G
  4. # By Moghunter 8 f* M  W/ }! D- B$ m. v
  5. # http://www.atelier-rgss.com: v7 ^7 m: y3 c4 Z% J3 R' {4 ]
  6. #===============================================================================6 k8 {: ]3 w9 v$ E+ v, ^# F2 D' J/ F/ \
  7. # Translated by Calvin624 : R- f' t5 V) I
  8. # http://www.xasabs.wordpress.com
    + x& W5 w- f8 @) Q& @) t" w! f
  9. #===============================================================================1 j1 o4 _1 j0 T
  10. ###############################-DESCRIPTION-####################################) L2 r5 s' m' Y1 H
  11. #===============================================================================% v' ~/ _* Z6 b/ |" M
  12. # Personal HUD – displays the HP and SP below the hero.
    , g! n' f9 i" ^+ T: q* Y6 O: ~
  13. #===============================================================================" G8 K+ @; {% T6 ]
  14. #
    / y( z( p2 I; N/ r0 }
  15. # Graphics required:/ A8 c' B8 C; A# b8 q+ F
  16. # " ^/ v' @5 L" s7 t5 A' ^
  17. # S_Border_HP_Meter.png& R0 G' Y8 O: Q7 l6 e
  18. # S_Border_SP_Meter.png
    8 `+ E2 G1 d8 @% \9 M  e+ z9 B
  19. # S_HP_Meter.png
    1 _: c2 l1 v) G) O: ^+ x
  20. # S_SP_Meter.png
    6 K. {0 w3 d1 b
  21. #
    0 Z8 `  n+ u6 |5 k7 n
  22. # All images must be in the Windowskin folder.
    - J( J2 H8 n  x" G7 m% D
  23. #
    0 ~9 D3 K' Q' B! K
  24. #===============================================================================; C1 H5 h) I" F# n5 y
  25. module MOG
    1 G8 Z: D4 S- Q+ B' x
  26. VISIBLE_DEF = false  9 i6 p/ m2 I3 a& S  j
  27. # Show HP meter?+ d, I6 }% E5 T$ k- {7 H4 O- E3 J% v
  28. HP_HUD = true
    " j4 i( _, ~$ ^1 ]) I0 k5 T& Y- C
  29. # Position of the HP border
    ; F" @; a! N8 I6 L5 w7 o
  30. S_BORDER_HP_METER_X = -2
    3 t: F8 r& n" b# ]2 s. F, v
  31. S_BORDER_HP_METER_Y = -2  
    & R* V8 y: A; t9 L6 O8 X$ o
  32. # Position of the HP meter5 F: a7 M  O5 q* K/ x/ ]8 ^
  33. S_HP_METER_X = 0
    1 W: u9 X0 X; F: x
  34. S_HP_METER_Y = 07 D% Y& M. @- ~3 c: ?8 ]
  35. # Show SP meter?! k% j4 f3 [4 N; ]; c6 F+ s
  36. SP_HUD = true
    8 u! e0 U* K- l5 U9 F" Q
  37. # Position of the SP border$ k# j5 T  U" h, E) m) D
  38. S_BORDER_SP_METER_X = 0
    9 U5 H% u$ o3 f! Q( |1 V
  39. S_BORDER_SP_METER_Y = 10 " u4 j. g1 ]2 v6 b: w
  40. # Position of the SP meter0 ]$ w" ]2 k! j4 ^
  41. S_SP_METER_X = 0, |! ?- R3 T! z* d- z
  42. S_SP_METER_Y = 108 `& W$ I+ u' E- }. B
  43. # Switch to disable the HUD5 [$ t0 \1 ]: w  {; g( ]
  44. DISABLE_SHUD_SWITCH = 5
    . M0 T  ]: M/ M6 ]- ]) l: L1 M
  45. RANGE = 204 m7 H4 K! K; P; S  q8 ^, ]2 w
  46. end4 ]  }$ q/ r/ ~' r: Y* z# F& {
  47. #===============================================================================
    ' u( m* b8 ?+ q5 l* m* ^  m
  48. # S Hud
    0 e4 l) }3 B8 O
  49. #===============================================================================$ R0 |8 f* x) A9 [# I
  50. class S_Hud < RPG::Sprite$ O" M9 p' q+ c- i4 i8 y3 @
  51.   include MOG
    , N6 D) n* X8 b! ~
  52.   #--------------------------------------------------------------------------, j' k/ t& X. w7 x
  53.   # * Initialize
    # O$ J' t$ P6 }. J
  54.   #--------------------------------------------------------------------------
    , [$ o9 F& \! e
  55.   def initialize(enemy,viewport)7 [2 o0 v3 i- d# b9 O* g
  56.     super(viewport)
    ( m3 ^7 I- _! E* Q% n! u
  57.     @enemy  = enemy3 X7 |  j" w: Y4 C' O  U# D
  58.     @battler = @enemy.battler
    3 f+ K. N! {, v" W% |4 `
  59.     @old_hp  = 08 l- D4 [1 a9 j5 {& q
  60.     @old_sp  = 0
    1 Z4 i; z4 @% I# p7 D
  61.     @old_vis = false: o8 c* d7 t" n* Q  A7 G) S
  62.     self.bitmap = Bitmap.new(100, 100)  D! M2 \  B; o( F' @7 q1 B
  63.     self.visible = (VISIBLE_DEF)#false7 j. g* k) O3 p' R+ s
  64.     self.z = 100
    ( ]: K3 x& }/ e" u- l8 Z) U( O/ @/ e1 a
  65.     #HP Border -------------------------------------------------------------------
    - r4 S6 y& Y5 t+ c& ~
  66.     @layout_image = RPG::Cache.windowskin("S_Border_HP_Meter")9 {! H& x' n2 r0 J
  67.     @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    8 \+ f+ L5 r4 f
  68.     @layout_sprite = Sprite.new; v/ @" w' c. Z5 _& I
  69.     @layout_sprite.bitmap = @layout_bitmap* e- b8 s  v! b" j
  70.     @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    " C' u$ T- q) U6 b/ I- O
  71.     @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
    % ~0 `0 j" g1 }( V
  72.     @layout_sprite.z = 50014 n$ C$ P& {; }. j9 R9 k* \
  73.     #HP Meter ---------------------------------------------------
    8 k% L8 {0 @* J/ W3 g+ M' a
  74.     @hp_flow = 0  a9 m" A: s! s& T5 k
  75.     @hp_damage_flow = 0; W2 ?$ a* w2 `8 E/ [
  76.     @hp_image = RPG::Cache.windowskin("S_HP_Meter")' n2 C, E# ^' u" }
  77.     @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)/ J( M) B5 b9 p
  78.     @hp_range = @hp_image.width / 3
    * J: Y! ?7 j& }: h6 ^1 L! z
  79.     @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    # g; G0 y8 @- C+ b" Q; p/ f8 C
  80.     @hp_width2 = @hp_range / 2
    9 U: f& N2 r/ e( h3 v7 b
  81.     @hp_height = @hp_image.height / 2
    " d+ x4 D$ i5 D2 Z- q
  82.     @hp_width_old = @hp_width9 R( v0 B( l) K: O( r& s# m& M
  83.     @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    & X$ t% X( Q; @3 z. I
  84.     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect) 1 ~+ g9 U2 O3 Z' @
  85.     @hp_sprite = Sprite.new
    6 x" p  S6 q% R
  86.     @hp_sprite.bitmap = @hp_bitmap+ L( R4 w" e8 v, {
  87.     @hp_sprite.z = 5002
    9 F: G$ v( j5 e+ x. d% p
  88.     #SP Border -------------------------------------------------------------------
    & G9 O! G, A! n" j. D
  89.     @layout2_image = RPG::Cache.windowskin("S_Border_SP_Meter")
    ) m6 E; \* Y; _
  90.     @layout2_bitmap = Bitmap.new(@layout2_image.width,@layout2_image.height)* K6 p8 g8 [8 m! D% I0 f+ ]
  91.     @layout2_sprite = Sprite.new) h4 d, [' v1 ^( {$ t  A
  92.     @layout2_sprite.bitmap = @layout2_bitmap( i% {4 d; O+ p
  93.     @layout2_src_rect_back = Rect.new(0, 0,@layout2_image.width, @layout2_image.height)/ F0 s* P2 e# t; J2 t- _( j9 b
  94.     @layout2_bitmap.blt(0,0, @layout2_image, @layout2_src_rect_back)      6 J( I- ?; _( g4 ^7 ]4 A
  95.     @layout2_sprite.z = 5001   
    & W  B& _* _7 V" \
  96.     #SP Meter ------------------------------------------------------+ _. u# `+ u% ^% x4 j
  97.     @sp_flow = 0
    * H$ `7 q* Z( j3 o4 c2 J6 q5 o% K7 C
  98.     @sp_damage_flow = 0
    * g" _3 o' p' s( n& C9 |' t0 u
  99.     @sp_image = RPG::Cache.windowskin("S_SP_Meter")+ T$ _! `3 d/ h; i, ^- `! |
  100.     @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    8 ?+ k2 }# l- W0 I% |$ e
  101.     @sp_range = @sp_image.width / 3
    . O) J, D9 w, v& r1 |; P' Q
  102.     @sp_width = @sp_range  * @battler.sp / @battler.maxsp  1 U3 `* Y3 c9 U; z7 n7 g
  103.     @sp_width2 = @sp_range / 2  k: v% G( Z  \9 |- i$ ?7 C1 R: v
  104.     @sp_height = @sp_image.height / 2% k. [4 {3 ]) D# [9 P8 B
  105.     @sp_width_old = @sp_width
    3 s6 [" i' t. U$ ?" L- ~* I
  106.     @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    5 m0 o. G4 m  h- w! u5 M0 i
  107.     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)1 F9 s/ [/ m/ Q: Y- f: L, N+ M
  108.     @sp_sprite = Sprite.new
    . }- \9 g& ^) z) _! H
  109.     @sp_sprite.bitmap = @sp_bitmap+ T$ P3 C5 D/ [/ o6 B
  110.     @sp_sprite.z = 5002- D/ T" c" z2 E5 M& K; z2 t! s
  111.     update0 x' q8 o0 \, _( c) \
  112.   end' O" H4 Z; \3 M) `# B# B, t
  113.   #--------------------------------------------------------------------------
    , u  e' @. a4 C- q+ `+ p2 q
  114.   # * Refresh
    % L- \1 q$ R4 x
  115.   #--------------------------------------------------------------------------4 W+ z# L3 G8 P/ p1 l7 n
  116.   def refresh
    8 H1 H. A* P* s0 @+ \2 g
  117.     return if @old_hp == @battler.hp and @old_vis != self.visible. `- B: J3 F+ `% j( z2 @8 o
  118.     self.bitmap.clear+ n; ^6 R& j" y: Y) j" o' f/ y3 M
  119.     @old_vis = self.visible" m  ^; p9 O  M+ w) T; S7 M: B
  120.     @old_sp = @battler.sp
    1 j7 v8 c/ f  a1 C9 E, Q  _& S+ ]- R6 W
  121.     @old_hp = @battler.hp& D! V7 q, c: s; B$ \
  122.     hp_flow_update
    : d: |& G+ T5 t
  123.     sp_flow_update
    3 c6 U+ k# I* |7 p9 j. z5 F2 o
  124.     hud_pos_update
    2 R* C0 }% B- Q: `
  125.     visible_update
    ! d8 i# K- Z* s
  126.   end7 _3 b4 b/ w! x" L4 a3 ]
  127.   #--------------------------------------------------------------------------
    . @* L7 f+ N5 ?1 A. x
  128.   # * Dispose
    3 U; Y$ c- g2 [- f3 v2 `
  129.   #--------------------------------------------------------------------------
    3 l- W7 v3 C0 ~2 z& e
  130.   def dispose' Y! v* `8 Z0 h6 D4 V4 _0 E
  131.     #HP Meter Dispose1 r* S$ W6 Y- \
  132.     @hp_sprite.bitmap.dispose
    2 y" }, X5 m2 F5 Q$ {; e* i& x  N) z6 y
  133.     @hp_sprite.dispose9 p; Y) B* o% ?6 N
  134.     @hp_bitmap.dispose
    ' l5 P- G; M7 x% P# `+ F
  135.     #HP Border Dispose
    % M) k# I1 x3 G; u+ l
  136.     @layout_sprite.bitmap.dispose6 v- N- x3 g( z3 g  a
  137.     @layout_sprite.dispose+ ?- g! z2 R+ e! v' p# o
  138.     @layout_bitmap.dispose
    % X8 ~3 @1 a3 e/ W) I
  139.     #SP Meter Dispose4 t1 h; p* Y( }, Z5 V
  140.     @sp_sprite.bitmap.dispose
    - q0 c& c6 s5 e. d& T
  141.     @sp_sprite.dispose
    % }( R2 Z& P) m( M0 @
  142.     @sp_bitmap.dispose& V6 J/ P7 ~8 S
  143.     #SP Border Dispose
    + Q: u7 V( p+ W3 X4 K2 n+ h
  144.     @layout2_sprite.bitmap.dispose+ M+ J) k, b' E. D2 O  F
  145.     @layout2_sprite.dispose0 \* t5 \( L0 Y9 g1 M
  146.     @layout2_bitmap.dispose
    # p9 p6 u6 Y$ t* V3 z" t7 G$ P
  147.   end
    $ N" P4 ^$ W9 `: d' s7 Z2 l& z+ E
  148.   #--------------------------------------------------------------------------" V9 s# o6 K. r/ t+ t2 r9 T3 K' L
  149.   # * Update
      M& ?! p0 s, s2 n1 q- @. h: R
  150.   #--------------------------------------------------------------------------+ c; R0 Q! i5 e- ]+ f! [; T: u  Q
  151.   def update
    ( ~" S! s7 V1 n8 C
  152.      @battler = @enemy.battler
    ) t5 o* x  U8 \2 ]/ j$ S* U
  153.      return dispose if @enemy.dead? or $game_map.events.values[@enemy.id].nil?/ A1 q! `* P  C6 c2 J
  154.      if self.visible$ C- X5 I& j1 s$ Q7 }9 y
  155.        refresh
    * U4 p: h+ b2 j8 j5 Y8 n1 F
  156.      else
    + H9 K5 v: p1 Y
  157.        self.bitmap.clear
    3 r9 J2 s" H0 V
  158.      end; O0 e( `' G4 l- _( T, r. J6 N* t
  159.   end
    % _6 X+ M: t  H6 g
  160.   #--------------------------------------------------------------------------
    $ B  K* E  g" e" U
  161.   # * Visible Update5 F! ~  `5 I% X" z
  162.   #--------------------------------------------------------------------------
    3 d" t/ p; e. F5 _6 X/ m  `
  163.   def visible_update
    # t9 Q+ x, u2 F8 F
  164.     if $game_switches[MOG::DISABLE_SHUD_SWITCH] == true
    6 {( z. u0 H) Q& ^! Z, W
  165.        @hp_sprite.visible = false
    ' [, \+ e8 ~2 L) _
  166.        @layout_sprite.visible = false
    3 V2 x5 A4 ~' W/ A
  167.        @sp_sprite.visible = false9 u% i. H% w5 J9 J9 g
  168.        @layout2_sprite.visible = false- G% W- n- t3 _6 h3 p
  169.     else
    4 j- y- g7 J# C
  170.        if HP_HUD == true
    7 F% @" S1 b1 O, b& N& p
  171.          @hp_sprite.visible = true* t5 e. x# k3 T/ B1 W2 I1 a- S
  172.          @layout_sprite.visible = true) g! K' ~, ]' b7 p5 Y1 q4 ^/ C
  173.        else" {/ Z" b) y8 l* Y) m
  174.          @hp_sprite.visible = false$ Y+ J: q+ X" Z$ `
  175.          @layout_sprite.visible = false; m6 _4 K8 {9 h; \- `6 D6 ]0 \
  176.        end  ; M0 h  @- b# `, }7 p4 K6 M
  177.        if SP_HUD == true# c  L. q+ S& [- _
  178.          @sp_sprite.visible = true: L  z$ ]  ]9 v, e# i" x
  179.          @layout2_sprite.visible = true% O; t# O( U) g- }, i+ H* z3 D" \
  180.        else
    1 L. i3 H/ w' W3 Q5 Y' M
  181.          @sp_sprite.visible = false
    0 Y/ t8 k4 U$ ?' }2 V
  182.          @layout2_sprite.visible = false5 f1 i8 L! l: y$ s5 g
  183.        end
    ' U/ V0 f2 }  a+ C8 r& g
  184.      end  
    $ l) N: T7 a  s) b
  185.    end
    # {3 J, L& ?$ e( \4 c! `1 N, ~
  186.   #--------------------------------------------------------------------------
    5 H/ r8 K' i" q6 B" ~
  187.   # * Hud Pos Update: f# a: J4 d2 r, z5 F- M9 x
  188.   #--------------------------------------------------------------------------3 v; n3 H0 ~# o6 Y9 T  }  p0 J! H. `
  189.   def hud_pos_update
    & `7 y$ g6 Z2 r8 B
  190.     @hp_sprite.x = self.x - @hp_width2 + S_HP_METER_X8 q/ t& N; y3 Z+ x: S
  191.     @hp_sprite.y = self.y + S_HP_METER_Y  
    7 s3 o5 s  E* M* I2 K  V2 e
  192.     @layout_sprite.x = self.x - @hp_width2 + S_BORDER_HP_METER_X
    0 e* S4 p# O- B7 R6 b8 @- r
  193.     @layout_sprite.y = self.y + S_BORDER_HP_METER_Y
    $ ?* d2 ]& r, z9 A$ V  |
  194.     @sp_sprite.x = self.x - @sp_width2 + S_SP_METER_X2 h) ?3 Z; @6 S! w* W
  195.     @sp_sprite.y = self.y + S_SP_METER_Y  2 n: Z+ ^9 E3 ]
  196.     @layout2_sprite.x = self.x - @sp_width2 + S_BORDER_SP_METER_X6 F" o& w" B! E  O
  197.     @layout2_sprite.y = self.y + S_BORDER_SP_METER_Y     # H" P2 a. e/ O
  198.   end  
    4 C; L# t9 r% m( S! V- k
  199.   #--------------------------------------------------------------------------4 v, i" ]6 `( b5 R6 `! u0 \
  200.   # * Hp Flow Update
    9 b# }4 a+ W3 ^( ]
  201.   #--------------------------------------------------------------------------9 [8 M/ ~6 S" f0 q
  202.   def hp_flow_update, e8 O  P& z7 ]/ r( U+ k
  203.       @hp_sprite.bitmap.clear0 R# Y$ {, z% l+ L5 t! S7 E
  204.       @hp_width = @hp_range  * @battler.hp / @battler.maxhp  
    + h# t* y9 A; P( k4 u, H
  205.           #HP Damage---------------------------------0 b' g, D: J  R- `8 @( U2 p
  206.           valor = (@hp_width_old - @hp_width) * 3 / 100) @, N' u# A4 O4 q' C8 x( E& P0 Z# E' \
  207.           valor = 0.5 if valor < 1          / e1 d% b4 G  z+ D* {9 F
  208.           if @hp_width_old != @hp_width
    8 B% e( k( F+ e+ f! B
  209.           @hp_width_old -= valor if @hp_width_old > @hp_width  ) F8 b- f$ [0 c7 Z7 s/ ?
  210.           if @hp_width_old < @hp_width
    * G6 R3 ^. N% k/ n' W0 C0 o  o
  211.              @hp_width_old = @hp_width2 t, n% n! v* J
  212.           end      ; |5 f* }4 H/ [) p' I, [! v
  213.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)5 Y: d8 w" u/ e* H$ O$ L
  214.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       4 d3 i$ D3 ^: @  D, x3 U
  215.           end        
    / f2 V9 s# P$ }( V
  216.       #HP Real------------------------------------& h  \  T, u7 L/ `( {- V. F. z+ \
  217.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
    8 O1 l* W4 G# R5 o4 S
  218.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)          % h7 B! r5 t9 S; t  `" ?
  219.       @hp_flow += 2  
    & _% w& _/ Q  ?4 p, j5 K: v
  220.       if @hp_flow >= @hp_image.width - @hp_range2 c  @. t6 Y/ j) E
  221.          @hp_flow = 0  
    1 r1 b0 F% z  {" H2 Y+ b
  222.       end7 J+ R! U8 W; W1 a0 x& e
  223.   end    0 Q+ r, p3 D, v" ?4 [9 W
  224.   #--------------------------------------------------------------------------- N8 V/ `$ A+ W2 e. M9 v  G
  225.   # * Sp Flow Update  m4 F7 \; M" h' ?9 O1 c
  226.   #--------------------------------------------------------------------------* e9 ~7 [4 R0 q7 E. X: p
  227.   def sp_flow_update
    4 u: j6 i7 b( M. u' N& Q8 N
  228.       @sp_sprite.bitmap.clear5 z" H" Y2 e, L1 b1 T% s; Z
  229.       @sp_width = @sp_range  * @battler.sp / @battler.maxsp 5 D# F$ z+ i% k' M- g) r
  230.           #SP Damage---------------------------------
    9 _0 S- X7 Y! V
  231.           if @sp_width_old != @sp_width
    2 ]  h. I9 I$ M/ w0 s
  232.           valor = (@sp_width_old - @sp_width) * 3 / 100
    , T) p+ k- ?" [% v2 i
  233.           valor = 0.5 if valor < 1              
    " N9 {- Y8 U3 W+ g4 q* V2 [1 z! C
  234.           @sp_width_old -= valor if @sp_width_old > @sp_width  + w" \. \) S9 j" `! s/ J* |0 I8 Q9 I* z
  235.           if @sp_width_old < @sp_width
    0 W1 w9 J# k; ^5 _1 [  S
  236.              @sp_width_old = @sp_width
    4 q3 f2 h) f/ U( k1 i
  237.           end      # V6 Q- d) x  V4 P
  238.           @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
    / b! }1 K% C% z. I
  239.           @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
    & v' H) W% r! B, ^0 h1 x
  240.           end
    7 D2 n" g5 G7 m/ M
  241.       #SP Real------------------------------------4 Q, P3 B7 _) H" Y5 x: B( W! N, x
  242.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height). q& E7 Z$ ~: n; L, B# G2 y
  243.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)$ K- g& _" f3 n/ y
  244.       @sp_flow += 1  
    9 X0 a5 x% T+ y* c
  245.       if @sp_flow >= @sp_image.width - @sp_range; S$ H4 v, W/ [0 y' D8 C3 U
  246.          @sp_flow = 0  
    9 z9 h1 e: c' T! A
  247.       end1 }6 O7 s: H- N& U, E
  248.     end            4 D$ Y3 j. z; L  j
  249.   end2 l0 t5 D6 d* c8 o: w# a5 f
  250. #===============================================================================
      o. R* S: Y" I% H) V7 q6 r
  251. class Sprite_Character < RPG::Sprite1 {% ]6 e. K5 p# \' s( }% x0 s
  252. #-------------------------------------------------------------------------------
    / T* c7 X9 \! V% p
  253.   alias :xas_emini_hud_init :initialize
    1 }: x- v' p. e/ W
  254.   include MOG4 w7 q+ L: X% U2 r' b" ]- x& N
  255.   def initialize(viewport, character)7 f9 g1 u$ X- \( y; u
  256.     xas_emini_hud_init(viewport, character)! c9 w5 h# O; x! T3 s$ W
  257.     @viewport = viewport
    3 z/ c3 R# B- u. }" I- C
  258.     return if @character.battler.nil?" ^6 H2 K# U! @0 |
  259.     return if XAS_BA_ENEMY::ENEMY_OBJECT.include?(@character.battler.id)
    ) E' k: {9 y$ H5 N
  260.     return if XAS_BA_ENEMY::ITEM_ENEMY.include?(@character.battler.id)* c( c. V+ d8 \. e/ G' y6 a+ s  [# o
  261.     return if @character.battler.is_a?(Game_Actor)
    9 l+ l8 X9 ^$ T1 D8 A- `# h
  262.     @bars = S_Hud.new(@character, @viewport)
    . s/ z+ w7 z+ @
  263.   end
    ) \' J0 l, K' t) X, j5 P
  264. #-------------------------------------------------------------------------------; ~. T3 Z+ ^6 q
  265.   alias :xas_emini_hud_up :update
    9 k8 t% `3 J  V" V6 D6 h
  266.   def update
    $ t* J. a" v+ d- H3 c' Y# `
  267.     xas_emini_hud_up
    5 [# f' w  X/ B' y. T+ ]& s! R: _
  268.     return if @bars.nil?, D7 d4 Q" f  |0 S7 ?( T$ d7 b$ |- f
  269.     return if @bars.disposed?
    # `! U2 j0 u( U- f
  270.     dis = ($game_player.x - @character.x).abs + ($game_player.y - @character.y).abs$ A9 O2 d; x# f( v8 Q4 t4 a
  271.     @bars.visible = (dis <= RANGE). b: o: f7 W8 H( s% r/ l3 J
  272.     if @bars.visible/ D+ [, j( [2 G" q2 P* Q
  273.       @bars.x = @character.screen_x# - @cw / 4
    + q1 E/ F. J1 G
  274.       @bars.y = @character.screen_y# - @ch / 43 p8 S3 \- R7 a: U0 `3 f
  275.     end6 h+ U6 y2 I; b, p8 f' ?2 O. z
  276.     @bars.update. ]( y  a9 l2 M
  277.   end% _. r5 B7 R3 Y7 u( Y) i
  278. #-------------------------------------------------------------------------------
    : d* z' J. `9 x7 H
  279.   def dispose4 r& e. |6 `% `/ s/ _+ l
  280.     super* C+ t: b& X) D# O4 A( P# z
  281.     @bars.dispose if [email protected]?4 ~" c: B! }, u* o& L
  282.   end7 z4 H- p' m( P* _4 o
  283. end
    - z) ^+ R) g) B- C8 v6 {1 M# [
  284. ' {# E. r; a2 A# M0 {4 C/ _* R; H
  285. $mog_rgss_s_hud = true
复制代码

/ P/ r7 X- W  n0 C. J* Y$ _4 N. i  D" v( N0 w/ S/ M7 t

$ Q9 f9 V& M5 j上面所說出錯的203行內容為
& t) M0 t2 e' w! J. F7 B@hp_sprite.bitmap.clear
8 v2 Z1 m5 T0 U* A, p4 h6 r$ P( {$ l+ [) k
想知道怎麼解決
" C/ r% C( u' @( H: Y4 K4 p) [5 ]' {4 H) V2 I+ _3 {
該腳本支持3.82
1 r) ~! `  ~- @9 j# b/ ~3 `- f8 D3 @6 q# Y6 w
下面是圖檔,要塞在Windowskin下
& B" ^' ?# F9 e* g4 A( W
8 `; ?) ]- g  g1 l* K# r0 I: X7 y S_HUD_Graphic.rar (12.36 KB, 下载次数: 49) , q/ z' V' t: g7 |
: e% a5 Z  g  X

. y1 A" u  P/ N/ J. l: k7 {' h" a1 m5 N2 Q! j9 X
梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-10-14 18:55:09 | 只看该作者
貌似是释放的条件不合适
/ Y& d! o8 E" U, X结果尝试刷新了一个已经释放的图形2 ]3 s/ e+ I" I) k6 i* Q
. w% E# O2 D$ h3 q6 E, Q) ~* n

8 ]% X9 K2 [% t$ @* ^' V
9 Q( {+ t  Y$ S% Z! X虽然没有仔细测试,但是把153行左右那个
  1.      return dispose if @enemy.dead?# or $game_map.events.values[@enemy.id].nil?& k* t; h, ]4 k2 T/ T
复制代码
不要后面那个条件貌似就没问题了。" U% V8 P7 s) n* {& z

" h( v8 c3 U2 Z0 ~5 T) {; d! k" [0 Y0 [1 g

2 E7 V- z! r" _& O1 Z1 [$ Y2 X4 c3 |# ?* u/ M: p
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
542
在线时间
1794 小时
注册时间
2009-7-12
帖子
443
3
 楼主| 发表于 2012-10-14 19:12:00 | 只看该作者
ML4455739 发表于 2012-10-14 18:55
$ a" i; u& F6 Q$ a0 a6 I8 h貌似是释放的条件不合适% ]! x0 M3 E. W# z" T) c7 p5 A
结果尝试刷新了一个已经释放的图形

' P" `( E- q3 G- R把後面那個條件弄掉後,的確沒問題了+ t, |0 W% q' ]: O. i
目前從關頭打到關尾結束都沒再彈什麼錯誤: q# o+ Z  Y% ?! u3 K( L9 ^
非常感謝
/ s2 r/ d1 z3 B: T$ b( e! W/ N2 }" i, U6 z! R
不過我是參照著別人腳本改的
0 k) ?3 M# W, U9 X他寫的條件式也是那樣,但我用他的沒什麼錯誤- J8 l5 K* Y4 y+ t8 D- o
不知道是怎麼回事
& X9 x1 ^% V; m( F+ y, |是跟描繪方法有關嗎?因為他的版本都是用fill_rect描繪的+ b& h9 R, g. {  u' J& K
我是嫌那樣太卡+不夠美觀才打算用S HUD的方法
回复 支持 反对

使用道具 举报

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

开拓者

4
发表于 2012-10-14 19:19:14 | 只看该作者
$game_map.events; p7 o8 k+ ^+ k" [
嘛..这个数组吧..我在以前试写队友的时候关注过一点
* p3 G" R  ?5 y" v$ Q0 ?/ ?+ ?不知道XAS内部对它做了什么手脚还是为啥,
2 Q( S3 r; y, C3 l1 ~/ B总有那么一瞬间,没有被消灭的敌人事件也变成了nil; H/ G+ ^* o1 T3 z6 p
* A9 `! X6 }* S5 R4 b3 ~
$game_map.events.values[@enemy.id].nil?/ T7 L, G/ r% `# ^4 ?: v
因此自然而然的返回true并符合条件把图形释放掉了
2 t1 x) `5 r7 T- _" F
/ g: g8 [* ?- l) Q* k2 {% w$ ELZ应该有注意到吧,
* J- }. i/ w1 c9 ^" d& ]& t我测试的时候发现报错前几帧,图形会消失," ?; H: W) Z2 N  }& _3 |
应该就是“误以为敌人被消灭”了。! H/ W& @  M7 `

6 D! p" k: Q% O  o/ s( n受限于个人水平,至今无法找出$game_map.events的真相..  }5 n- q- _. D/ M  \
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
542
在线时间
1794 小时
注册时间
2009-7-12
帖子
443
5
 楼主| 发表于 2012-10-14 20:06:40 | 只看该作者
ML4455739 发表于 2012-10-14 19:19 ; @6 ~! J5 [- P. l4 f
$game_map.events6 z: i$ M0 i2 V9 q( ^
嘛..这个数组吧..我在以前试写队友的时候关注过一点1 h  L+ H4 |+ [& x( ], U
不知道XAS内部对它做了什么手脚还是 ...

) R% s# Z' H) x3 Q& ]. u1 I9 e當初我把那個條件式看了三遍,都不覺得他有什麼錯0 N' N# w+ `* e' ]" V& a. |- |
原來還有這麼深奧詭異的事XD: ^  o2 n. w! ^8 s' S4 q( \' h1 M
  B' |* e- c6 a) ?1 F# j
錯誤發生前的確會有圖形沒顯示出來. Y6 k' v8 ^/ S& ~" X. b( ]2 p, n
不過我單純以為是他把已經死的同類型敵人當對象了(因為前一張地圖都是同樣的怪...
/ |0 J( F! \4 X2 W" v! V$ g沒想到居然是詐屍了XD& i6 V) z- f3 K# `2 W8 |* ^/ x3 D
3 ^  E/ E% l+ c7 J" n8 P+ @
不曉得3.91有沒有修正這問題...2 V5 p3 L/ {( N0 {: S
不過3.91改太多,實在有點沒動力去剖析他...=___=
回复 支持 反对

使用道具 举报

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

开拓者

6
发表于 2012-10-14 20:09:57 | 只看该作者
恩。。没问题的话姑且这样吧。
+ ]0 `  Y- H- D4 F+ n/ D( _$ A% C5 t4 I4 H
的确% s1 s5 H" l7 u
用惯3.82之后想去整3.91觉得压力甚大..
7 B  O/ K0 a  u% U5 ^+ S干脆就等XAS4了。我知道那是天坑。
往事简直不堪回首,稍微做点想做的事吧
回复 支持 反对

使用道具 举报

梦石
0
星屑
12879
在线时间
21866 小时
注册时间
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”。
! ]" P& A5 H2 N  t2 ^8 @. x  x- U" C
然后加一个判断处理的。(我记得有一个disposed?)
回复 支持 反对

使用道具 举报

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

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

GMT+8, 2025-10-21 17:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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