RPG-Forum: [SCRIPT] Inventaire different pour chaque catégories !! - RPG-Forum

Aller au contenu

Page 1 sur 1

[SCRIPT] Inventaire different pour chaque catégories !! Objets, armes, armures, quetes, chacun le sien !!!

#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é 15 février 2008 - 17:54

Bonsoir !!
Je vous presente ici un petit script tres simple pour avoir un inventaire different pour chaque catégories d'objets !!
Objet, arme, armure, quetes, ... Chacun son inventaire !!

Tout d'abord, allez dans le script " Scene_Menu ", ligne 128, que vous allez remplacer par ceci :

		$scene = Scene_Objet.new


Ensuite, crée un nouveau script juste au dessus de " Main " et collez y ceci :

class Scene_Objet

  def initialize(menu_index = 0)
	@menu_index = menu_index
  end

  def main
	$catg = 0
	s1 = "Objets"
	s2 = "Armes"
	s3 = "Armures"
	s4 = "Quetes"
	s5 = "Special"
	s6 = "Retour"
	@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
	@command_window.index = @menu_index
	@playtime_window = Window_PlayTime.new
	@playtime_window.x = 0
	@playtime_window.y = 224
	@steps_window = Window_Steps.new
	@steps_window.x = 0
	@steps_window.y = 320
	@gold_window = Window_Gold.new
	@gold_window.x = 0
	@gold_window.y = 416
	@status_window = Window_MenuStatus.new
	@status_window.x = 160
	@status_window.y = 0
	Graphics.transition
	loop do
	  Graphics.update
	  Input.update
	  update
	  if $scene != self
		break
	  end
	end
	Graphics.freeze
	@command_window.dispose
	@playtime_window.dispose
	@steps_window.dispose
	@gold_window.dispose
	@status_window.dispose
  end

  def update
	@command_window.update
	@playtime_window.update
	@steps_window.update
	@gold_window.update
	@status_window.update
	if @command_window.active
	  update_command
	  return
	end
  end

  def update_command
	if Input.trigger?(Input::B)
	  $game_system.se_play($data_system.cancel_se)
	  $scene = Scene_Menu.new(0)
	  return
	end

	if Input.trigger?(Input::C)
	  case @command_window.index
	  when 0
		$game_system.se_play($data_system.decision_se)
		$catg = 1
		$scene = Scene_Item.new
	  when 1 
		$game_system.se_play($data_system.decision_se)
		$catg = 2
		$scene = Scene_Item.new
	  when 2  
		$game_system.se_play($data_system.decision_se)
		$catg = 3
		$scene = Scene_Item.new
	  when 3  
		$game_system.se_play($data_system.decision_se)
		$catg = 4
		$scene = Scene_Item.new
	  when 4  
		$game_system.se_play($data_system.decision_se)
		$catg = 5
		$scene = Scene_Item.new
	  when 5 
		$game_system.se_play($data_system.decision_se)
		$scene = Scene_Menu.new(0)
	  end
	  return
	end
  end

end


Il s'agit d'un simple calque de " Scene_Menu " qui vous permettra de choisir quels inventaire ouvrir !!

Une fois ceci fait, allez dans le script " Window_Item " et remplacez les lignes 39 à 56 par ceci :

	for i in 1...$data_items.size # Modifie les valeurs 17 et 18 selon les attributs que vous avais choisit 
	  if $game_party.item_number(i) > 0 and $catg == 1 and ($data_items[i].element_set[0] != 17) and ($data_items[i].element_set[0] != 18) 
		@data.push($data_items[i])
	  end
	  if $game_party.item_number(i) > 0 and $catg == 4 and ($data_items[i].element_set[0] == 17) # N'autorise que l'attribut 17 soit "Quetes"
		@data.push($data_items[i])
	  end
	  if $game_party.item_number(i) > 0 and $catg == 5 and ($data_items[i].element_set[0] == 18) # N'autorise que l'attribut 18 soit "Special"
		@data.push($data_items[i])
	  end
	  if $game_party.item_number(i) > 0 and $game_temp.in_battle # Autorise tout les objets en combats
		@data.push($data_items[i])
	  end

	end

	unless $game_temp.in_battle
	  for i in 1...$data_weapons.size
		if $game_party.weapon_number(i) > 0 and $catg == 2 # N'autorise que les armes
		  @data.push($data_weapons[i])
		end
	  end
	  for i in 1...$data_armors.size
		if $game_party.armor_number(i) > 0 and $catg == 3 # N'autorise que les armures 
		  @data.push($data_armors[i])
		end
	  end
	end


Voila, le plus gros du travail est fait !!
Reste quelques details !!

Allons maintenant dans l'onglet " Systeme " de la base de donnée !!
Creez deux nouveaux attributs " Quetes " et " Special " ( 17 et 18 pour le script !! )
Tant qu'on y est, modifier le nom du menu pour " Inventaire ", par exemple !!
Derniere petite modification :
Remplacer la ligne 71 du script " Scene_Item " par ceci :

	  $scene = Scene_Objet.new


Les attributs que vous avez crée ( " Quetes " et "Special" ) servent à differencier les objets !!
Pour qu'un objet apparaissent dans l'inventaire " Quetes ", donnez lui l'attribut " Quetes " !!
Même principe pour les objets speciaux !!

Voila, je crois que tout y est !!
Tout ceci est bien sur configurable selon vos souhaits !!
Si vous avez des difficultés à le faire vous même, faite moi signe !!

ASHKA
FIGHT THE POWER !!
0

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

  • Chevalier
  • PipPipPipPip
  • Groupe : Membres ++
  • Messages : 337
  • Inscrit(e) : 06-mai 07
  • Gender:Male
  • Location:66

Posté 17 février 2008 - 10:16

Bon faudras que le je teste en entier, mais sa c'est cool.

Je voudrais savoir si en même temps tu avais pas un script pour limiter le nombre d'objet de chaque type que on peut posséder (en script seul, car le faire en modifiant tout les script 1 après l'autre sa va je sais faire)

Et par la même occation 1 limitant le nombre d'objet possible dans l'inventaire (style FF4) en gros que on poisse pas avoir plus de X objets différant dans l'inventaire, si on en trouve un nouveau on peu pas le prendre aussi (sa serait bête de perdre des armes comme sa), j'en avais trouvé 1 mais l'auteur voulait pas que on l'utilise donc voilà si jamais tu veux que je te le passe pour éventuelle modifiactions.
0

#3 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 février 2008 - 11:47

Ca ne fait pas tres longtemps que je " scripte " et je suis surtout capable de faire des modifications ou des petits scripts assez simple !!
( Mais je progresse vite !! )
Et je crois qu'il existe des scripts " libres " pour ce qui t'interesse !!
Je vais voir pour te trouver ça, sinon je le ferais peut-etre moi même.

ASHKA
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)