Total rpg maker XP
 
Retour au forum
 

Ajouter une réponse

Pseudo :    S'inscrire ?
Mot de passe :    Mot de passe perdu ?
Icône :
                                
                                
Message :
 
 
 
Smilies personnalisés
 
Options :
Notification par email en cas de réponse
Désactiver les smilies
Activer votre signature
 
 
Dernières réponses
gregory

gregory
Créer deux nouveaux scripts avant Main. Lisez les instructions dans le script pour des informations supplémentaires. Par exemple, appellez les Partie1 et Partie2.

Dans Partie1 collez ceci:

Code
#==============================================================================
# ■ Nouvelle fenêtre d'exp par Krazplay Partie 1
#------------------------------------------------------------------------------
# Ce scrîpt remplace les définitions main et start_phase5 des scripts
# Scene_Battle 1 et Scene_Battle 2. Si vous avez déjà des scripts modifiant ces
# scripts il faut copier-coller mes ajouts qui sont précisés dans mes
# commentaires dans votre scrîpt.
# Note : il n'y a que 2 lignes à ajouter dans start_phase5, cf ligne 139 et 146
# Sinon il suffit de créer un nouveau scrîpt au-dessus de Main et de copier celui
# là dedans.
#==============================================================================

class Scene_Battle
def main
$game_temp.in_battle = true
$game_temp.battle_turn = 0
$game_temp.battle_event_flags.clear
$game_temp.battle_abort = false
$game_temp.battle_main_phase = false
$game_temp.battleback_name = $game_map.battleback_name
$game_temp.forcing_battler = nil
$game_system.battle_interpreter.setup(nil, 0)
@troop_id = $game_temp.battle_troop_id
$game_troop.setup(@troop_id)
s1 = $data_system.words.attack
s2 = $data_system.words.skill
s3 = $data_system.words.guard
s4 = $data_system.words.item
@actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
@actor_command_window.y = 160
@actor_command_window.back_opacity = 160
@actor_command_window.active = false
@actor_command_window.visible = false
@party_command_window = Window_PartyCommand.new
@help_window = Window_Help.new
@help_window.back_opacity = 160
@help_window.visible = false
@status_window = Window_BattleStatus.new
@message_window = Window_Message.new
@spriteset = Spriteset_Battle.new
@wait_count = 0
if $data_system.battle_transition == ""
Graphics.transition(20)
else
Graphics.transition(40, "Graphics/Transitions/" +
$data_system.battle_transition)
end
start_phase1
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
$game_map.refresh
Graphics.freeze
@actor_command_window.dispose
@party_command_window.dispose
@help_window.dispose
@status_window.dispose
@message_window.dispose
if @skill_window != nil
@skill_window.dispose
end
if @item_window != nil
@item_window.dispose
end
if @result_window != nil
@result_window.dispose
end
@spriteset.dispose
### Début de l'ajout par Krazplay pour sa nouvelle fenêtre d'exp ###
@fond = Window_Base.new(0,0,640,480)
coordx = [5,320, 5,320]
coordy = [12, 12, 248, 248]
@window = []
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
@window[i] = Window_Result.new(coordx[i], coordy[i])
@window[i].refresh(actor,0)
if @levelup[i] != nil #correction d'un bug, n'oubliez pas le end plus bas
if @levelup[i] > 0
@window[i].refresh(actor, @levelup[i])
@window[i].showlvlup(actor)
end
end #voila le end qui va avec la correction
end
if $data_system.battle_transition == ""
Graphics.transition(20)
else
Graphics.transition(20, "Graphics/Transitions/" + $data_system.battle_transition)
end
loop do
Graphics.update
Input.update
if Input.trigger?(Input::C)
break
end
end
for i in 0...$game_party.actors.size
@window[i].dispose
end
@fond.dispose
### Fin de l'ajout par Krazplay pour sa nouvelle fenêtre d'exp ###
if $scene.is_a?(Scene_Title)
Graphics.transition
Graphics.freeze
end
if $BTEST and not $scene.is_a?(Scene_Gameover)
$scene = nil
end
end

def start_phase5
@phase = 5
$game_system.me_play($game_system.battle_end_me)
$game_system.bgm_play($game_temp.map_bgm)
exp = 0
gold = 0
treasures = []
for enemy in $game_troop.enemies
unless enemy.hidden
exp += enemy.exp
gold += enemy.gold
if rand(100) < enemy.treasure_prob
if enemy.item_id > 0
treasures.push($data_items[enemy.item_id])
end
if enemy.weapon_id > 0
treasures.push($data_weapons[enemy.weapon_id])
end
if enemy.armor_id > 0
treasures.push($data_armors[enemy.armor_id])
end
end
end
end
treasures = treasures[0..5]
@levelup = [] # Cette ligne-là est à ajouter si vous ne voullez pas copier
# tout le scrîpt
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
if actor.cant_get_exp? == false
last_level = actor.level
actor.exp += exp
@levelup[i] = actor.level - last_level # Cette ligne-là aussi #
if actor.level > last_level
@status_window.level_up(i)
end
end
end
$game_party.gain_gold(gold)
for item in treasures
case item
when RPG::Item
$game_party.gain_item(item.id, 1)
when RPG::Weapon
$game_party.gain_weapon(item.id, 1)
when RPG::Armor
$game_party.gain_armor(item.id, 1)
end
end
@result_window = Window_BattleResult.new(exp, gold, treasures)
@phase5_wait_count = 100
end

end


Et dans Partie2 cela:



Code
#==============================================================================
# ■ Nouvelle fenêtre d'exp par Krazplay Partie 2
#------------------------------------------------------------------------------
# Créer un nouveau scrîpt au-dessus de main et copier celui-là dedans.
# Tout ce qui est sous la définition refresh est ce qui apparait tout le temps
# Tout ce qui est sous la définition showlvlup est ce qui n'apparait qu'en
# cas de level up
#==============================================================================

class Window_Result < Window_Base
def initialize(x,y)
super(x, y, 315, 220)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.back_opacity = 255
end

def refresh(actor,levelenmoins)
self.contents.clear
self.contents.font.color = Color.new(255, 50, 50, 255)
self.contents.font.size = 24
draw_actor_battler(actor,50,90,30)
draw_actor_battler(actor,110,90,60)
draw_actor_battler(actor,170,90,90)
if levelenmoins == 0
draw_actor_battler(actor,230,90,250)
end
largeur_nom = contents.text_size(actor.name).width
self.contents.draw_text(width/2 - largeur_nom/2 -16, 0, 99, 24, actor.name)
self.contents.font.color = Color.new(100, 255, 100, 255)
self.contents.font.size = 19
self.contents.draw_text(0,25, 99, 24, "Level")
self.contents.font.color = normal_color
self.contents.draw_text(10, 45, 99, 24, "HP")
self.contents.draw_text(10, 63, 99, 24, "MP")
self.contents.font.size = 18
self.contents.draw_text(0, 83, 99, 24, "Force")
self.contents.draw_text(0, 103, 99, 24, "Dexterité")
self.contents.draw_text(0, 123, 99, 24, "Agilité")
self.contents.draw_text(0, 143, 99, 24, "Intelligence")
self.contents.font.color = Color.new(125, 255, 125, 255)
self.contents.draw_text(60, 170, 99, 24, "NEXT")
@levelenmoins = levelenmoins
@lvl = actor.level-levelenmoins
self.contents.font.color = normal_color
self.contents.draw_text(80, 25, 30, 24, @lvl.to_s,2)
self.contents.draw_text(60, 45, 50, 24, $data_actors[actor.id].parameters[0, @lvl].to_s,2)
self.contents.draw_text(60, 63, 50, 24, $data_actors[actor.id].parameters[1, @lvl].to_s,2)
self.contents.draw_text(80, 83, 30, 24, $data_actors[actor.id].parameters[2, @lvl].to_s,2)
self.contents.draw_text(80, 103, 30, 24, $data_actors[actor.id].parameters[3, @lvl].to_s,2)
self.contents.draw_text(80, 123, 30, 24, $data_actors[actor.id].parameters[4, @lvl].to_s,2)
self.contents.draw_text(80, 143, 30, 24, $data_actors[actor.id].parameters[5, @lvl].to_s,2)
self.contents.draw_text(140, 170, 70, 24, actor.next_rest_exp_s.to_s,1)
end

def showlvlup(actor)
hpgagne = $data_actors[actor.id].parameters[0, actor.level] - $data_actors[actor.id].parameters[0, @lvl]
mpgagne = $data_actors[actor.id].parameters[1, actor.level] - $data_actors[actor.id].parameters[1, @lvl]
forcegagne = $data_actors[actor.id].parameters[2, actor.level] - $data_actors[actor.id].parameters[2, @lvl]
dexgagne = $data_actors[actor.id].parameters[3, actor.level] - $data_actors[actor.id].parameters[3, @lvl]
agigagne = $data_actors[actor.id].parameters[4, actor.level] - $data_actors[actor.id].parameters[4, @lvl]
intgagne = $data_actors[actor.id].parameters[5, actor.level] - $data_actors[actor.id].parameters[5, @lvl]
self.contents.font.color = Color.new(100, 255, 100, 255)
self.contents.font.size = 19
self.contents.draw_text(50, 25, 99, 24, "UP !")
self.contents.font.color = Color.new(20, 255, 20, 255)
self.contents.font.size = 18
self.contents.draw_text(210, 25, 99, 24, actor.level.to_s)
self.contents.draw_text(190, 45, 40, 24, $data_actors[actor.id].parameters[0, actor.level].to_s,2)
self.contents.draw_text(190, 63, 40, 24, $data_actors[actor.id].parameters[1, actor.level].to_s,2)
self.contents.draw_text(200, 83, 30, 24, $data_actors[actor.id].parameters[2, actor.level].to_s,2)
self.contents.draw_text(200, 103, 30, 24, $data_actors[actor.id].parameters[3, actor.level].to_s,2)
self.contents.draw_text(200, 123, 30, 24, $data_actors[actor.id].parameters[4, actor.level].to_s,2)
self.contents.draw_text(200, 143, 30, 24, $data_actors[actor.id].parameters[5, actor.level].to_s,2)
self.contents.font.color = Color.new(100, 255, 255, 255)
self.contents.draw_text(140, 25, 20, 24, @levelenmoins.to_s,2)
self.contents.draw_text(130, 45, 40, 24, hpgagne.to_s,2)
self.contents.draw_text(130, 63, 40, 24, mpgagne.to_s,2)
self.contents.draw_text(140, 83, 30, 24, forcegagne.to_s,2)
self.contents.draw_text(140, 103, 30, 24, dexgagne.to_s,2)
self.contents.draw_text(140, 123, 30, 24, agigagne.to_s,2)
self.contents.draw_text(140, 143, 30, 24, intgagne.to_s,2)
self.contents.font.color = Color.new(255, 100, 100, 255)
h = [25,45,63,83,103,123,143]
for i in 0...7
self.contents.draw_text(120, h[i], 20, 24, "+")
end
for i in 0...7
self.contents.draw_text(180, h[i], 20, 24, "=")
end
end

def draw_actor_battler(actor, x, y, transparence=255)
bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch / 2, bitmap, src_rect, transparence)
end
end

 
Retour au forum
 
créer forum