RPG-Forum: Script RMVX - RPG-Forum

Aller au contenu

Page 1 sur 1

Script RMVX accessoires permettant d'apprendre les competences de l'ennemi

#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:35

Nom : Script pour avoir des accessoires permettant d'apprendre les competences de l'ennemi ...
Auteur : ASHKA
Nombre de script : 1
Info : Alors, comment dire ...
Vous connaissez FF7 ? Vous connaissez la materia " Talent de l'ennemi " ?
Bah c'est ma source d'inspiration pour ce script ( avec un soupçon de Legend of Legaïa ... ).
Si un monstre attaque avec une certaine competence pouvant etre apprise un héros possedant un certain accessoire, celui ci a une certaine probabilité d'apprendre la dite competence et de pouvoir l'utiliser par la suite.
Contrairement à FF7 ( mais pas à Legend of legaïa ... ), le héros possedera la competence même s'il désequipe par la suite l'accessoire.

Créer un nouveau script dans " Materials " et collez y ceci :

#	Avoir des accessoires permettant d'apprendre les competences de l'ennemi


module TE
# ID de l'accessoire ( ou des ... ) permettant d'apprendre les competences ennemis
  ID_OBJ = [32]
# Associe l'ID d'un monstre aux competences pouvant etre apprise
  SKILL = {1 => [59, 60, 61, 62], 2 => [4], 3 => [],
  4 => [12], 5 => []}
# id monstre => [ id skill, id skill, id skill] 
# Pourcentage d'apprentissage de la competence
  PROBA = 40 # 40 % de chance d'apprendre la competence

end
################################################################################
class Game_Battler
  def make_obj_damage_value(user, obj)
	damage = obj.base_damage						# get base damage
	if damage > 0								   # a positive number?
	  damage += user.atk * 4 * obj.atk_f / 100	  # Attack F of the user
	  damage += user.spi * 2 * obj.spi_f / 100	  # Spirit F of the user
	  unless obj.ignore_defense					 # Except for ignore defense
		damage -= self.def * 2 * obj.atk_f / 100	# Attack F of the target
		damage -= self.spi * 1 * obj.spi_f / 100	# Spirit F of the target
	  end
	  damage = 0 if damage < 0					  # If negative, make 0
	elsif damage < 0								# a negative number?
	  damage -= user.atk * 4 * obj.atk_f / 100	  # Attack F of the user
	  damage -= user.spi * 2 * obj.spi_f / 100	  # Spirit F of the user
	end
	damage *= elements_max_rate(obj.element_set)	# elemental adjustment
	damage /= 100
	damage = apply_variance(damage, obj.variance)   # variance
	damage = apply_guard(damage)					# guard adjustment
	if user.actor? == false and self.actor? and obj.is_a?(RPG::Skill)
	  if TE::ID_OBJ.include?(self.equips[4].id) 
		if TE::SKILL[user.enemy_id].include?(obj.id)
		  if rand(101) < TE::PROBA
			unless $game_temp.learn.include?([self.id, obj.id])
			  unless self.skills.include?(obj)
				$game_temp.learn.push([self.id, obj.id]) 
			  end
			end
		  end
		end
	  end
	end
	if obj.damage_to_mp  
	  @mp_damage = damage						   # damage MP
	else
	  @hp_damage = damage						   # damage HP
	end
  end
end
################################################################################
class Scene_Battle < Scene_Base
  def start
	super
	$game_temp.learn = []
	$game_temp.in_battle = true
	@spriteset = Spriteset_Battle.new
	@message_window = Window_BattleMessage.new
	@action_battlers = []
	create_info_viewport
  end
  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_learn
	battle_end(0)
  end
  def display_learn
	for x in 0..($game_temp.learn.size - 1)
	  actor_id = $game_temp.learn[x][0]
	  skill_id = $game_temp.learn[x][1]
	  unless $game_actors[actor_id].skills.include?($data_skills[skill_id])
		$game_actors[actor_id].learn_skill(skill_id)
		text = $game_actors[actor_id].name.to_s + ' apprends le Talent " ' + $data_skills[skill_id].name.to_s + ' " !!'
		$game_message.texts.push(text)
	  end
	end
	wait_for_message
  end
end
################################################################################
class Game_Temp
  attr_accessor :learn
  alias new initialize
  def initialize
	@learn = []
	new
  end
end
################################################################################


Configuration en debut de script ...

ASHKA
FIGHT THE POWER !!
0

#2 L'utilisateur est hors-ligne   Tigre rouge Icône

  • Tigre Cagoulé
  • PipPipPipPipPipPip
  • Groupe : Membres ++
  • Messages : 2 154
  • Inscrit(e) : 15-mars 05
  • Gender:Male
  • Location:夜露死苦

Posté 17 juin 2008 - 17:13

Salut, je n'ai pas testé tout tes scripts mais merci pour le partage ;)
Je vais éditer le topic de ressources en post-it pour mettre de nouveau liens :)
Les Règles Du Forum Making !
DO NOT PM ME TO ASK ME TO GO ON MSN, post the query on the support forums!
Image IPB Image IPB Image IPB Image IPB
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)