[Combat]Les monstres donnent plusieurs objets

La section pour les scripts de RPG Maker XP !

[Combat]Les monstres donnent plusieurs objets

Message par Amathlog » 18 Juin 2007, 20:20

Vient de la factory (je ne met plus le lien vous le connaissez maintenant)
Créateur : Krazplay

e base un ennemi ne peut donner qu'un seul objet, ceci permet donc qu'un ennemi puisse donner d'autres objets en + de celui qui est configuré dans la database.
Tout d'abord dans votre scrîpt Scene_Battle 2 (à l'origine) chercher ces lignes-là:
Code : Tout sélectionner
       if rand(100) < enemy.treasure_prob
          if enemy.item_id > 0
            treasures.push($data_items[enemy.item_id])
          end
          if enemy.weapon_id > 0
            treasures.push($data_weapons[enemy.weapon_id])
          end
          if enemy.armor_id > 0
            treasures.push($data_armors[enemy.armor_id])
          end

Vous les avez trouvé ? Bien alors rajouter tout de suite après ces ligne-là:
Code : Tout sélectionner

          trésorsup = trésorsup(enemy)  #Krazplay
          if trésorsup != nil
            for i in 0...trésorsup.size
              treasures.push(trésorsup[i])
            end
          end


Voilà maintenant créer un nouveau scrîpt au-dessus de main et coller ceci dedans :
Code : Tout sélectionner
# Pour permettre à un monstre de donner plusieurs objets
# par Krazplay
class Scene_Battle
     
  def trésorsup(enemy)
    @trésorsup = []
    objet = 0
    arme = 1
    armure = 2
   
   
    case enemy.id     # C'est à partir de là que vous devez
    when 1            # effectuer vos modifications
      trésor( 2, armure, 30)
      trésor( 2, arme, 15.5)
    when 2
      trésor( 3, arme, 20)
    when 3
      trésor( 7, objet, 100)
    when 4
      trésor( 18, objet, 35)
      trésor( 23, objet, 17.325)
    end
   
    #Vous n'avez pas à toucher à ce qui suit
    if @trésorsup == []
      return nil
    else
      return @trésorsup
    end
  end
 
  def trésor(t_id, t_type, proba)
    if rand(100) < proba
      case t_type
      when 0
        @trésorsup.push($data_items[t_id])
      when 1
        @trésorsup.push($data_weapons[t_id])
      when 2
        @trésorsup.push($data_armors[t_id])
      end
    end
  end
 
end


Comment l'utiliser ? très simple, dans le scrîpt que vous venez d'ajouter, chercher les lignes qui ressemblent à cela :
Code : Tout sélectionner
when 1
      trésor( 2, armure, 30)
      trésor( 3, arme, 15.5)

Ce qui veut dire : lorsque je tue le monstre avec l'id 1 dans ma database, il a 30% de chance de me donner la 2ème armure dans ma database, il a aussi 15,5 % de chance de me donner la 3ème arme de ma database.
Vous l'aurez compris cela marche donc comme cela :
when id_du_monstre_qui_doit_lacher_des_objets_supplémentaires
trésor( id_de_l'objet, type_de_l'objet, probabilité_qu'il_donne_l'objet)


Note : le jeu refuse qu'on puisse obtenir + de 6 objets en même temps dans un combats, pour modifier cela, chercher la ligne : (tjs ds le script Scene_battle 2)
treasures = treasures[0..5]
et remplacer là par
treasures = treasures[0..8]
Vous pouvez mettre + que 8 mais la fênetre sortira de l'écran.
Avatar de l’utilisateur
Amathlog
Modérateur
Modérateur
 
Message(s) : 1510
Inscription : 14 Jan 2007, 19:53
Meilleurs scores: 2

Retour vers Scripts (RGSS)

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité

cron