RPG-Forum: Script RMVX - RPG-Forum

Aller au contenu

Page 1 sur 1

Script RMVX Script pour avoir des accessoires permettant d'acquerir des compet

#1 L'utilisateur est hors-ligne   ASHKA Icône

  • Ecuyer
  • PipPipPip
  • Groupe : Membres +
  • Messages : 136
  • Inscrit(e) : 12-novembre 07
  • Gender:Male
  • Location:Je suis le " LOGOS " donc je suis partout !!

Posté 17 juin 2008 - 11:33

Nom : Script pour avoir des accessoires permettant d'acquerir des competences
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
end


ASHKA

Ce message a été modifié par ASHKA - 21 juillet 2008 - 19:59 .

FIGHT THE POWER !!
0

Page 1 sur 1


Réponse rapide

  

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)