Domaine concerné: Script, Combat
Logiciel utilisé: XP
Bonjour à tous !
Il m'est arrivé un bug très bizzare que je n'avais pas dans des versions plus anciennes de mon projet alors que ce sont les même scripts. Le problème est que ce script est très vieux donc je ne sais plus à quoi il sert donc peut-être l'un d'entre vous comprendras la fonction de ce script.
A la fin d'un combat cette erreur est apparue :
Voici le script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
| # ¥£¥ XRXS_BP 9. ƒgƒ‹[ƒvƒGƒlƒ~[”z’uEY‚’á¨Z‰œs•ÏŠ· ver.2 ¥£¥
# by ÷‰ë Ý“y
#==============================================================================
# ¡ Game_Battler
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# › ŒöŠJƒCƒ“ƒXƒ^ƒ“ƒX•Ï”
#--------------------------------------------------------------------------
attr_reader :z # ƒoƒgƒ‹ƒtƒB[ƒ‹ƒh‰œs‚«ˆÊ’u(+‚ªŽè‘O)
attr_accessor :zoom # Œ»Ý‚̃Y[ƒ€”{—¦
#--------------------------------------------------------------------------
# › ƒoƒgƒ‹ƒtƒB[ƒ‹ƒhã‚É‹‚é‚©H
#--------------------------------------------------------------------------
def in_battlefield?
return false
end
end
#==============================================================================
# ¡ Game_Enemy
#==============================================================================
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# › ƒoƒgƒ‹ƒtƒB[ƒ‹ƒhã‚É‹‚é‚©H
#--------------------------------------------------------------------------
def in_battlefield?
return true
end
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
#--------------------------------------------------------------------------
alias xrxs_bp9_initialize initialize
def initialize(troop_id, member_index)
@z = $data_troops[troop_id].members[member_index].y - 304
xrxs_bp9_initialize(troop_id, member_index)
end
end
#==============================================================================
# --- ƒoƒgƒ‰[ƒXƒvƒ‰ƒCƒgE‰Â“®ƒJƒƒ‰“K—p ---
#==============================================================================
module XRXS_Cam_Deal
def update
# ŒÄ‚Ñ–ß‚·
super
# ƒoƒgƒ‰[‚ªƒoƒgƒ‹ƒtƒB[ƒ‹ƒh‚É‚¢‚È‚¢ê‡‚ÍI—¹
return if @battler == nil or not @battler.in_battlefield?
# ƒJƒƒ‰ Z À•W‚̎擾
cam_z = $xcam == nil ? 185 : $xcam.z
#
# ƒY[ƒ€—¦‚Ì•ÏX
# ( ƒXƒvƒ‰ƒCƒgÀ•W‚ÌÄÝ’è‚ÍŒ³‚̃ƒ\\ƒbƒh‚É”C‚¹‚é )
#
zoom = 1.00 * 185 / (cam_z - @battler.z)
self.zoom_x = zoom
self.zoom_y = zoom
@battler.zoom = zoom
end
end
class Sprite_Battler < RPG::Sprite
include XRXS_Cam_Deal
end
|
En supprimant le script, cette erreur apparait
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
| #==============================================================================
# ■ Sprite_Battler
#------------------------------------------------------------------------------
# バトラー表示用のスプライトです。Game_Battler クラスのインスタンスを監視し、
# スプライトの状態を自動的に変化させます。
#==============================================================================
class Sprite_Battler < RPG::Sprite
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :battler # バトラー
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# viewport : ビューポート
# battler : バトラー (Game_Battler)
#--------------------------------------------------------------------------
def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
end
#--------------------------------------------------------------------------
# ● 解放
#--------------------------------------------------------------------------
def dispose
if self.bitmap != nil
self.bitmap.dispose
end
super
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
super
# バトラーが nil の場合
if @battler == nil
self.bitmap = nil
loop_animation(nil)
return
end
# ファイル名か色相が現在のものと異なる場合
if @battler.battler_name != @battler_name or
@battler.battler_hue != @battler_hue
# ビットマップを取得、設定
@battler_name = @battler.battler_name
@battler_hue = @battler.battler_hue
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
# 戦闘不能または隠れ状態なら不透明度を 0 にする
if @battler.dead? or @battler.hidden
self.opacity = 0
end
end
# アニメーション ID が現在のものと異なる場合
if @battler.damage == nil and
@battler.state_animation_id != @state_animation_id
@state_animation_id = @battler.state_animation_id
loop_animation($data_animations[@state_animation_id])
end
# 表示されるべきアクターの場合
if @battler.is_a?(Game_Actor) and @battler_visible
# メインフェーズでないときは不透明度をやや下げる
if $game_temp.battle_main_phase
self.opacity += 3 if self.opacity < 255
else
self.opacity -= 3 if self.opacity > 207
end
end
# 明滅
if @battler.blink
blink_on
else
blink_off
end
# 不可視の場合
unless @battler_visible
# 出現
if not @battler.hidden and not @battler.dead? and
(@battler.damage == nil or @battler.damage_pop)
appear
@battler_visible = true
end
end
# 可視の場合
if @battler_visible
# 逃走
if @battler.hidden
$game_system.se_play($data_system.escape_se)
escape
@battler_visible = false
end
# 白フラッシュ
if @battler.white_flash
whiten
@battler.white_flash = false
end
# アニメーション
if @battler.animation_id != 0
animation = $data_animations[@battler.animation_id]
animation(animation, @battler.animation_hit)
@battler.animation_id = 0
end
# ダメージ
if @battler.damage_pop
damage(@battler.damage, @battler.critical)
@battler.damage = nil
@battler.critical = false
@battler.damage_pop = false
end
# コラプス
if @battler.damage == nil and @battler.dead?
if @battler.is_a?(Game_Enemy)
$game_system.se_play($data_system.enemy_collapse_se)
else
$game_system.se_play($data_system.actor_collapse_se)
end
collapse
@battler_visible = false
end
end
# スプライトの座標を設定
self.x = @battler.screen_x
self.y = @battler.screen_y
self.z = @battler.screen_z
end
end
|
Ca ne le fait pas à tous les combats. J'ai fait qq tests sur un combat où j'ai remarqué ce bug. Si le héro est seul ça le fait mais si je rajoute un allié, plus de bug. J'ai également changé le battler mais ça n'a rien fait. J'ai aussi copié le héro sur un autre ID avec les même stats et tout mais toujours le même bug donc je comprends vraiment pas.
Aussi, si à un combat je met Tour 0 : PV Equipe -9999 ce me le fait également.
J'espère que vous trouverez ce dont il s'agit.
|