Auteur : ASHKA
Nombre de script : 1
Info : Avec ce script, certains accessoires " enseignent " des competences aux héros qui les portent.
Plus il est porté, plus le nombre de competence acquise augmente.
Une fois le niveau max atteint, le héros peut equiper un autre accessoire et acquerir d'autres competences.
L'apprentissage lie un accessoire et un héros.
Chaque héros doit faire son propre apprentissage avec chaque accessoire.
Créer un nouveau script dans " Materials " et collez y ceci :
# Avoir des accessoires permettant d'acquerir des competences
# Un accessoire, une fois equipé, permet au porteur d'acquerir certaines competences.
# Le nombre de competence augmente plus le porteur combat avec l'accessoire equipé.
# Une fois déséquipé, il conserve l'usage des competences.
# Les competences " debloqué " par un porteur sont pas transmise au second porteur.
# Chacun devra alors porté l'accessoire pour debloqué toute les competences qu'il contient.
################################################################################
module Cskill
# Ce tableau stocke l'ID de tous les " cristaux "
ID_CRISTAL = [32, 33, 34, 35]
# Regrouper ici toutes les infos pour les cristaux
# Lv 1 Lv 2 Lv 3 Lv 4 .....
# ID cristal Exp / ID Exp / ID Exp / ID Exp / ID competence
INFO_CRISTAL = {32 => [[20, 59], [25, 60], [30, 61], [35, 62]],
33 => [[30, 63], [40, 64], [75, 65], [250, 66]],
34 => [[50, 67], [100, 68], [150, 69], [200, 70]],
35 => [[25, 71], [50, 72]]
}
# Montant d'exp reçu à chaque combat si l'accessoire est equipé
EXP = 5
end
################################################################################
class Window_Status < Window_Base
def draw_equipments(x, y)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, WLH, Vocab::equip)
for i in 0..4
draw_item_name(@actor.equips[i], x + 16, y + WLH * (i + 1))
end
acc = @actor.equips[4].id
if Cskill::ID_CRISTAL.include?(acc)
test = $cristal_skill[[@actor.id, acc]]
lv = 0
ref = Cskill::INFO_CRISTAL[acc]
while test >= ref[lv][0]
test -= ref[lv][0]
lv += 1
break if lv == ref.size
end
num = Cskill::ID_CRISTAL.index(acc)
max = ref.size
self.contents.draw_text( x + 16, y + WLH * 5 + 20, 150, 32, "Apprentissage : ")
if lv < max
self.contents.draw_text(x + 16 + 150, y + WLH * 5 + 20, 100, 32, lv.to_s + " / " + max.to_s)
else
self.contents.draw_text(x + 16 + 150, y + WLH * 5 + 20, 100, 32, "MAX")
end
end
end
end
################################################################################
class Scene_Equip < Scene_Base
def update_item_selection
if Input.trigger?(Input::B)
Sound.play_cancel
@equip_window.active = true
@item_window.active = false
@item_window.index = -1
elsif Input.trigger?(Input::C)
Sound.play_equip
@actor.change_equip(@equip_window.index, @item_window.item)
if @equip_window.index == 4
item_id = @item_window.item.id
if Cskill::ID_CRISTAL.include?(item_id)
test = $cristal_skill[[@actor.id, item_id]]
lv = 0
ref = Cskill::INFO_CRISTAL[item_id]
while test >= ref[lv][0]
test -= ref[lv][0]
skill_id = ref[lv][1]
if skill_id != nil #
@actor.learn_skill(skill_id)
end #
lv += 1
break if lv == ref.size
end
end
end
@equip_window.active = true
@item_window.active = false
@item_window.index = -1
@equip_window.refresh
for item_window in @item_windows
item_window.refresh
end
end
end
end
################################################################################
class Scene_Battle < Scene_Base
def process_victory
@info_viewport.visible = false
@message_window.visible = true
RPG::BGM.stop
$game_system.battle_end_me.play
unless $BTEST
$game_temp.map_bgm.play
$game_temp.map_bgs.play
end
display_exp_and_gold
display_drop_items
display_level_up
display_skill_up
battle_end(0)
end
def display_skill_up
for actor in $game_party.existing_members
if Cskill::ID_CRISTAL.include?(actor.armor4_id)
$cristal_skill[[actor.id, actor.armor4_id]] += Cskill::EXP
end
end
for actor in $game_party.members
item_id = actor.armor4_id
if Cskill::ID_CRISTAL.include?(item_id)
test = $cristal_skill[[actor.id, item_id]]
lv = 0
ref = Cskill::INFO_CRISTAL[item_id]
while test >= ref[lv][0]
test -= ref[lv][0]
skill_id = ref[lv][1]
unless actor.skill_learn?($data_skills[skill_id])
actor.learn_skill(skill_id)
$game_message.new_page
text = actor.name.to_s + " apprends " + $data_skills[skill_id].name.to_s + " !!"
$game_message.texts.push(text)
end #
lv += 1
break if lv == ref.size
end
end
end
wait_for_message
end
end
################################################################################
class Scene_Title < Scene_Base
alias old_command command_new_game
def command_new_game
old_command
$cristal_skill = Hash.new
for actor in 1..($data_actors.size - 1)
for id in Cskill::ID_CRISTAL
key = [actor,id]
$cristal_skill[key] = 0
end
end
end
end
################################################################################
class Scene_File < Scene_Base
def write_save_data(file)
characters = []
for actor in $game_party.members
characters.push([actor.character_name, actor.character_index])
end
$game_system.save_count += 1
$game_system.version_id = $data_system.version_id
@last_bgm = RPG::BGM::last
@last_bgs = RPG::BGS::last
Marshal.dump(characters, file)
Marshal.dump(Graphics.frame_count, file)
Marshal.dump(@last_bgm, file)
Marshal.dump(@last_bgs, file)
Marshal.dump($game_system, file)
Marshal.dump($game_message, file)
Marshal.dump($game_switches, file)
Marshal.dump($game_variables, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_party, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)
Marshal.dump($cristal_skill, file)
end
def read_save_data(file)
characters = Marshal.load(file)
Graphics.frame_count = Marshal.load(file)
@last_bgm = Marshal.load(file)
@last_bgs = Marshal.load(file)
$game_system = Marshal.load(file)
$game_message = Marshal.load(file)
$game_switches = Marshal.load(file)
$game_variables = Marshal.load(file)
$game_self_switches = Marshal.load(file)
$game_actors = Marshal.load(file)
$game_party = Marshal.load(file)
$game_troop = Marshal.load(file)
$game_map = Marshal.load(file)
$game_player = Marshal.load(file)
$cristal_skill = Marshal.load(file)
if $game_system.version_id != $data_system.version_id
$game_map.setup($game_map.map_id)
$game_player.center($game_player.x, $game_player.y)
end
end
endASHKA
Ce message a été modifié par ASHKA - lundi 21 juillet 2008 à 19:59.

Aide
Ajouter une réponse



Multi-citation









