Partagez
Aller en bas
avatar
Neresis
Membre

Nombre de messages : 402
Age : 28
Distinction : Un bonhomme, un vrai ! [Hashel]
Date d'inscription : 11/02/2014

Résolu [résolu]VXAce- limite de 150 objets

le Mar 18 Fév 2014 - 1:10
Bonjour !

J'aimerais que le joueur ne puisse pas porter plus de 150 objets (encore une référence à Mass Effect ^^') ça fait quelques heures que j'essai de faire ça par évents mais c'est très très très long et fatiguant :/
J'aimerais un script où une modification de script pour cela si vous en connaissez Smile

Précision : J'aimerais que les objets clef ne soient pas affecter par cette limite.

NB : Si ça doit se modifier par Script, j'utilise le "Galv's Menu Themes Engine" je ne sais pas si ça change quoi que se soit mais je préfère le préciser.
Lien du Script : http://galvs-scripts.com/2013/04/14/menu-themes-engine/

Merci d'avance Smile

Résolu par Vincent26 :
Mettre un nouveau script en dessous de "▼ Materials"

Code:
#Pour savoir le nombre d'item total du héros :
#$game_party.max_item_number_total
NBR_MX_ITEM = 150
TEXTE_INVENTAIRE_PLEIN = "Inventaire plein"

class Game_Party < Game_Unit
  alias max_item_number_2 max_item_number
  def max_item_number(item)
    return (NBR_MX_ITEM - max_item_number_total)
  end
 
  def max_item_number_total
    total = 0
    for i in 0..(all_items.length-1)
      test = true
      test = !all_items[i].key_item? if all_items[i].class == RPG::Item
      a = item_number(all_items[i]) if test
      a = 0 if !test
      total = total + a
    end
    return total
  end
  alias gain_item_2 gain_item
  def gain_item(item, amount, include_equip = false)
    container = item_container(item.class)
    return unless container
    last_number = item_number(item)
    new_number = last_number + amount
    a = [amount,max_item_number(item)].min
    container[item.id] = [last_number + a,0].max
    test = false
    test = item.key_item? if item.class == RPG::Item
    container[item.id] = new_number if test
    container.delete(item.id) if container[item.id] == 0
    if include_equip && new_number < 0
      discard_members_equip(item, -new_number)
    end
    $game_message.add(TEXTE_INVENTAIRE_PLEIN) if (max_item_number_total == 150)&&(!$game_message.has_text?)&&!test
  $game_map.need_refresh = true
  end
end


Dernière édition par Neresis le Jeu 20 Fév 2014 - 17:09, édité 2 fois
avatar
vincent26
Membre

Nombre de messages : 766
Age : 22
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]VXAce- limite de 150 objets

le Mar 18 Fév 2014 - 18:11
Je regarde par contre il faudrait faire en sorte que le héros puisse choisir de jeter des objet non ?
avatar
Neresis
Membre

Nombre de messages : 402
Age : 28
Distinction : Un bonhomme, un vrai ! [Hashel]
Date d'inscription : 11/02/2014

Résolu Re: [résolu]VXAce- limite de 150 objets

le Mar 18 Fév 2014 - 18:25
Oui si possible, sinon au moins un message pour dire que les objets sont pas ramasser parce que l'inventaire est plein Smile
avatar
vincent26
Membre

Nombre de messages : 766
Age : 22
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]VXAce- limite de 150 objets

le Mar 18 Fév 2014 - 18:36
oki sinon j'ai fait un appel de script qui te donne le nombre d'objet total
Code:

#Pour savoir le nombre d'item total du héros :
#$game_party.max_item_number_total
NBR_MX_ITEM = 150
TEXTE_INVENTAIRE_PLEIN = "Inventaire plein"

class Game_Party < Game_Unit
  alias max_item_number_2 max_item_number
  def max_item_number(item)
    return (NBR_MX_ITEM - max_item_number_total)
  end
  
  def max_item_number_total
    total = 0
    for i in 0..(all_items.length-1)
      test = true
      test = !all_items[i].key_item? if all_items[i].class == RPG::Item
      a = item_number(all_items[i]) if test
      a = 0 if !test
      total = total + a
    end
    return total
  end
  alias gain_item_2 gain_item
  def gain_item(item, amount, include_equip = false)
    container = item_container(item.class)
    return unless container
    last_number = item_number(item)
    new_number = last_number + amount
    a = [amount,max_item_number(item)].min
    container[item.id] = [last_number + a,0].max
    test = false
    test = item.key_item? if item.class == RPG::Item
    container[item.id] = new_number if test
    container.delete(item.id) if container[item.id] == 0
    if include_equip && new_number < 0
      discard_members_equip(item, -new_number)
    end
    $game_message.add(TEXTE_INVENTAIRE_PLEIN) if (max_item_number_total == 150)&&(!$game_message.has_text?)&&!test
   $game_map.need_refresh = true
  end
end

voila j’espère que ça te va si il y a un bug non prévu prévient moi
avatar
Neresis
Membre

Nombre de messages : 402
Age : 28
Distinction : Un bonhomme, un vrai ! [Hashel]
Date d'inscription : 11/02/2014

Résolu Re: [résolu]VXAce- limite de 150 objets

le Mar 18 Fév 2014 - 19:07
Pour les coffres j'y fait appel après ou avant de donner l'objet ?
Et pour les mobs je fait comment ? :/

Il me faut un minimum d'explication :/
avatar
vincent26
Membre

Nombre de messages : 766
Age : 22
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]VXAce- limite de 150 objets

le Mar 18 Fév 2014 - 19:14
He bien tu n'a rien a faire tout est fait automatiquement même l'affichage du texte d'inventaire plein
l'appel de script permet juste de récuperer si tu le souhaite le nombre total d'objet que tu as (si tu veut utiliser cette valeur pour des event)
avatar
Neresis
Membre

Nombre de messages : 402
Age : 28
Distinction : Un bonhomme, un vrai ! [Hashel]
Date d'inscription : 11/02/2014

Résolu Re: [résolu]VXAce- limite de 150 objets

le Mar 18 Fév 2014 - 20:13
Le test est fait ! Il marche très bien mais j'ai un problème.
Quand l'inventaire est plein et je j'ouvre un coffre le coffre s'ouvre et le contenu est perdu :/
ça me gène ...
tu pense qu'il y a moyen de faire une variable via ton script que je puisse mettre une condition genre :
-si la variable objet est = 150
---message : Votre inventaire est plein, ouvrir un coffre est inutile
avatar
vincent26
Membre

Nombre de messages : 766
Age : 22
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]VXAce- limite de 150 objets

le Mar 18 Fév 2014 - 21:31
tu creer un condition script (4éme onglet de la condition) avec ceux-ci :
$game_party.max_item_number_total == 150
ou un autre nombre
avatar
Neresis
Membre

Nombre de messages : 402
Age : 28
Distinction : Un bonhomme, un vrai ! [Hashel]
Date d'inscription : 11/02/2014

Résolu Re: [résolu]VXAce- limite de 150 objets

le Mar 18 Fév 2014 - 21:48
Ok super !! Merci !

Franchement ça fait deux fois que tu me donne un gros coup de main ! Merci beaucoup ! Smile
avatar
vincent26
Membre

Nombre de messages : 766
Age : 22
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]VXAce- limite de 150 objets

le Mar 18 Fév 2014 - 21:51
ya pas de quoi vraiment ça me fait plaisir  geek 
Contenu sponsorisé

Résolu Re: [résolu]VXAce- limite de 150 objets

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum