AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



Le Deal du moment :
Pokémon EV06 : où acheter le Bundle Lot ...
Voir le deal

Partagez
 

 [VX] Competences via accessoires

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
ASHKA
Voyageur Lv.10
Voyageur Lv.10
avatar


Masculin Age : 41
Inscrit le : 04/12/2008
Messages : 383

[VX] Competences via accessoires Empty
MessageSujet: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeVen 5 Déc 2008 - 11:27

Nom : Competences via accessoires
Auteur : ASHKA
Info : Ce script est à la fois une mise à jour et un regroupement de mes scripts "Cristaux de competences".

Au programme :
- Pas de bugs ( enfin, j'espere ... Sad ).
- Plus de possibilité de configuration.
- Peu de risque d'imcompatibilité.
- Deux scripts en un !!

Code:
###################################
#
#      Competences via accessoires
#                      ( Version 2.0 )
#
###################################
=begin        MODE D'EMPLOI
Ce script est à la fois une mise à jour et un regroupement des scripts :
- "Accessoires permettant d'acquerir des comptences"
- "Accessoires permettant d'utiliser des competences"
Dans le premier, à l'instar de FF9, les competences etaient toujours utilisables
même apres avoir retiré l'accessoire.
Dans le second, à l'instar de FF7 ( matéria ), les competences n'etaient plus utilisables
apres avoir retiré l'accessoire.
Dans ce script, il est possible d'avoir des accessoires des deux types.
Par defaut, les accessoires sont de type "FF9".
Pour avoir un accessoires de type "FF7", il suffit d'inscrire      USE_SLT      dans la note.
Les accessoires de type "FF7" doivent etre des exemplaires uniques !!
( Pour en avoir plusieurs identiques, créez en plusieurs dans la base de donnée )
Pour le reste, les deux types d'accessoires se configurent de la même façon.
L'experience accumulé par les accessoires depend des ennemis rencontrés.
Pour determiner le montant d'experience donné par un monstre, il suffit d'inscrire :
#        PSA=2      ( tout collé ) dans la note ( il donnera ici deux points ).
=end
###################################
module HK_skillacc
# Nom donné aux points d'experience pour accessoires.
  Name = "PC"
# Indiquer ici le montant de PSA par defaut ( si rien n'est indiqué dans la base de donnée )
# A noter : mettre PSA=0 dans la note n'entraine pas l'utilisation de la valeur par defaut !!
Defaut_PSA = 2
# Configurer ici les differents accessoires qui permettent d'obtenir des competences.
#                ID ACC  EXP/ID skill ...    EXP/ID skill
  Tab_skill = { 32 => [[10, 59], [25, 60], [50, 61], [100, 62]], 
                        33 => [[0, 63], [150, 64], [200, 65], [250, 66]],
# L'accessoire 33 offre directement 1 competences ( mais chez moi, il est de type USE_SLT )
                        34 => [[50, 67], [100, 68], [150, 69], [200, 70]],
                        35 => [[250, 71], [500, 72]]
                        }
# Inscrivez ici le message qui apparaitra à la fin des combats
  Battle_message = "Vous recevez" # la suite est le nombre et le nom des PSA obtenu
# Emplacement X/Y des informations complementaires de l'option "Status"
  Coord_win = [290, 305]
# Mettre sur "true" si vous voulez une barre pour indiquer l'exp plutôt qu'un simple affichage
  Barre = false # reglage des couleurs à la ligne 260
# Mettre sur "true" si vous voulez des icones pour indiquer le niveau plutôt qu'un simple affichage
  Icone = false
# Indiquez ici le nom du fichier où se trouve les icones
  Nom_icone = "etoile" # Repertoire system
end                              # Modif in script "Game_Actor" methode "skills" !!!
###################################
class String
  def decoupe
    bloc = []
    self.split(/[\r\n]+/).each { |line| bloc.push(line) }
    return bloc
  end
end
###################################
class Game_Troop < Game_Unit
  def total_psa
    num = 0
    for enemy in dead_members
      num += enemy.psa unless enemy.hidden
    end
    return num
  end
end
###################################
class Game_Party < Game_Unit
  attr_accessor :skillacc_exp
  alias hk_skillacc_init initialize
  def initialize
    hk_skillacc_init
    @skillacc_exp = Hash.new(0)
  end
end
###################################
class Game_Enemy < Game_Battler
  def psa
    return enemy.psa
  end
end
###################################
class Game_Actor < Game_Battler
  attr_accessor :skillacc_exp
  alias hk_skillacc_setup setup
  def setup(actor_id)
    @skillacc_exp = {}
    hk_skillacc_setup(actor_id)
    if @armor4_id != 0
      acc = $data_armors[@armor4_id]
      @skillacc_exp[@armor4_id] = 0 if acc.acquisition?
      if acc.utilisation?
        $game_party.skillacc_exp[@armor4_id] = 0
      end
    end
  end
  def add_skillacc
    result = []
    for id in @skillacc_exp.keys
      result |= get_skillacc(id, "skill", false)
    end
    acc = $data_armors[@armor4_id]
    if @armor4_id != 0 and acc.utilisation?
      result |= get_skillacc(@armor4_id, "skill", true)
    end
    return result
  end
  def get_skillacc(acc_id, type, use)
    if use
      exp = $game_party.skillacc_exp[acc_id]
    else
      exp = @skillacc_exp[acc_id]
    end
    tab = HK_skillacc::Tab_skill[acc_id]
    max_lv = tab.size - 1
    skill = []
    lv = 0
    ref = tab[lv]
    while exp >= ref[0]
      exp -= ref[0]
      skill.push($data_skills[ref[1]])
      break if lv == max_lv
      lv += 1
      ref = tab[lv]
    end
    case type
    when "lv"
      return lv + 1
    when "max_lv"
      return max_lv + 1
    when "skill"
      return skill
    when "exp"
      return exp
    when "next_lv"
      return ref[0]
    when "til_next_lv"
      return ref[0] - exp
    end
  end
  alias hk_skillacc_change_equip change_equip
  def change_equip(equip_type, item, test = false)
    hk_skillacc_change_equip(equip_type, item, test)
    if @armor4_id != 0 and not test
      acc = $data_armors[@armor4_id]
      if acc.utilisation?
        $game_party.skillacc_exp[@armor4_id] = 0 unless $game_party.skillacc_exp.keys.include?(@armor4_id)
      else
        @skillacc_exp[@armor4_id] = 0 unless @skillacc_exp.keys.include?(@armor4_id)
      end
    end
  end
  def skill_learn?(skill)
    return skills.include?(skill)
  end
end
###################################
class Scene_Battle < Scene_Base
  alias hk_skillacc_display_exp display_exp_and_gold
  def display_exp_and_gold
    hk_skillacc_display_exp
    psa = $game_troop.total_psa
    if psa > 0
      text = HK_skillacc::Battle_message + " #{psa} #{HK_skillacc::Name}."
      $game_message.texts.push('\.' + text)
      for actor in $game_party.existing_members
        if actor.armors[3] != nil
          if actor.armors[3].utilisation?
            $game_party.skillacc_exp[actor.armors[3].id] += psa
          else
            actor.skillacc_exp[actor.armors[3].id] += psa
          end
        end
      end
    end
    wait_for_message
  end
end
###################################
module RPG
  class Armor < BaseItem
    def utilisation?
      text = @note.decoupe
      for line in text
        return true if line.include?("USE_SLT")
      end
      return false
    end
    def acquisition?
      return false if utilisation?
      return true
    end
  end
  class Enemy
    def psa
      text = @note.decoupe
      for line in text
        if line.include?("PSA=")
          num = line.delete("PSA=")
          return num.to_i
        end
      end
      return HK_skillacc::Defaut_PSA
    end
  end
end
###################################
class Window_Skillacc < Window_Base
  def initialize(actor)
    x = HK_skillacc::Coord_win[0]
    y = HK_skillacc::Coord_win[1]
    super(x, y, 250, 2*24 + 32)
    @actor = actor
    refresh
  end
  def refresh
    self.contents.clear
    acc = @actor.armors[3]
    if acc != nil
      if acc.utilisation?
        draw_skillacc_info(true)
      else
        draw_skillacc_info(false)
      end
    end
  end
  def draw_skillacc_info(use)
    acc = @actor.armors[3]
    lv = @actor.get_skillacc(acc.id, "lv", use)
    max_lv = @actor.get_skillacc(acc.id, "max_lv", use)
    exp = @actor.get_skillacc(acc.id, "exp", use)
    til_next_lv = @actor.get_skillacc(acc.id, "til_next_lv", use)
    if HK_skillacc::Icone
      bitmap = Cache.system(HK_skillacc::Nom_icone)
      self.contents.draw_text(0, 0, 150, 24, "Nv.")
      for x in 0..(lv-1)
        self.contents.blt(50+x*24, 0, bitmap, Rect.new(0, 0, 24, 24))
      end
      if max_lv > lv
        for x in (lv-1)..(max_lv-1)
        self.contents.blt(50+x*24, 0, bitmap, Rect.new(24, 0, 24, 24))
        end
      end
    else
      text = "Nv. #{lv} / #{max_lv}"
      self.contents.draw_text(0, 0, self.width-32, 24, text, 1)
    end
    if HK_skillacc::Barre
      self.contents.draw_text(0, 24, self.width-32, 24, "Exp.")
      self.contents.fill_rect(50, 24, 154, 24, Color.new(0, 0, 0, 255))
      if lv != max_lv
        num = (exp * 150) / til_next_lv
      else
        num = 150
      end
      self.contents.gradient_fill_rect(52, 26, num, 20, Color.new(255, 255, 0, 255), Color.new(255, 0, 0, 255))
    else
      if lv != max_lv
        text = "Exp. : #{exp} / #{til_next_lv}"
      else
        text = "Exp. : -/-"
      end
      self.contents.draw_text(0, 24, self.width-32, 24, text, 1)
    end
  end
end
###################################
class Scene_Status < Scene_Base
  alias hk_skillacc_start start
  def start
    hk_skillacc_start
    @win_info = Window_Skillacc.new(@actor)
    @win_info.opacity = 0
  end
  alias hk_skillacc_terminate terminate
  def terminate
    hk_skillacc_terminate
    @win_info.dispose
  end
end
###################################

Il y a une petite modification à faire dans les scripts de base ( Game_Actor ) :

Code:
    result |= add_skillacc


[VX] Competences via accessoires Endroit_skillacc-8b2811

Visuellement, pas grand chose à montrer ...
Juste une petite modification dans l'option "Status" :

[VX] Competences via accessoires Screen_skillacc-8b2864

Vous avez le choix : comme à gauche, comme à droite, ou mix des deux.

Voila le fichier pour les "étoiles" :

[VX] Competences via accessoires Etoile-8b28c1

Je le mets pour montrer le placement mais quelque chose me dit que vous ne l'utiliserais pas !! Laughing

ASHKA
Revenir en haut Aller en bas
alexansre
Poulet carnivore Lv.2
Poulet carnivore Lv.2
alexansre


Masculin Age : 28
Inscrit le : 25/10/2008
Messages : 29

[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeDim 19 Avr 2009 - 20:15

Merci pour le script!

Citation :
Je le mets pour montrer le placement mais quelque chose me dit que vous ne l'utiliserais pas !!
Je ne l'utiliserait pas pour mon projet actuel mais je promet de l'utiliser pour mon projet suivant!
Juré!
Revenir en haut Aller en bas
Elezia
Roi des Lapinous
Roi des Lapinous
Elezia


Masculin Age : 33
Inscrit le : 11/10/2008
Messages : 2291

[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeDim 19 Avr 2009 - 20:21

Hum je te pardonne de ce nécropost car j'avais pas vu ce superbe script o_O M'enfin par la suite fait attention on ne repost pas sur des vieux sujets à part si on à des choses très importantes, comme une question à poser!
Revenir en haut Aller en bas
alexansre
Poulet carnivore Lv.2
Poulet carnivore Lv.2
alexansre


Masculin Age : 28
Inscrit le : 25/10/2008
Messages : 29

[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeLun 20 Avr 2009 - 15:48

Désolé Elezia...
Mais je n'avait pas vu ce magnifique script, et je l'ai remarqué bien plus tard que le moment où il a été posté
Revenir en haut Aller en bas
gagay
Va-nu-pieds Lv.4
Va-nu-pieds Lv.4
gagay


Age : 34
Inscrit le : 04/05/2009
Messages : 51

[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeDim 31 Mai 2009 - 15:59

Bonjours ^^
Petit problème chez moi. Crying or Very sad

Ce sript a un problème quand on l'utilise avec le script formation du sbs :
https://rpg-maker-vx.bbactif.com/partage-de-scripts-f24/add-on-sbs-tankentai-option-formation-t2769.htm

Le problème est que le sort qu'on obtient par l'accessoire ne s'affiche pas dans la liste des compétences.

Voila je voulais savoir si il y avait possibilité de faire une modification pour regler ce problème.
Revenir en haut Aller en bas
http://gbproduction.wordpress.com/
Naruzozo
Vagabond Lv.5
Vagabond Lv.5
Naruzozo


Masculin Age : 28
Inscrit le : 20/04/2009
Messages : 88

[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeLun 1 Juin 2009 - 10:27

Salut,
Je suis désolé mais j'ai un probleme... les barres d'xp et de level pour le sort ne s'affichent pas chez moi sur le menu statuts... pas comme sur ton screen enfait silent
Pourtant j'ai bien mis la portion de script dans Game_Actor et j'ai mis les "étoiles" dans "pictures"mais rien n'y fait...
J'ai meme essayé sur un projet vierge... je pige pas la Sad
s'il vous plait aidez moi !

EDIT : En fait, le script ne marche PAS DU TOUT chez moi Sad
Revenir en haut Aller en bas
Raitosan
† Fondateur du forum †
† Fondateur du forum †
Raitosan


Masculin Age : 31
Inscrit le : 09/02/2008
Messages : 1974

[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeDim 22 Aoû 2010 - 10:12

Salut, Je fais un beau nécro-post pour signaler un problème avec le script:

Quand je vais dans le menu compétence, après avoir équiper un accessoire, voici ce que ça donne:

[VX] Competences via accessoires Sans_t12

Je possède les scripts:

SBS V3
Multislots(de DerWulfman)
Forge de Jebbou
Bestiare de Krazplay
Résolution 640*480 de Krazplay
et bien sur ce script.

Merci d'avance pour votre aide.
Revenir en haut Aller en bas
http://www.zeforiu.fr
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 31
Inscrit le : 29/07/2009
Messages : 7840

[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeDim 22 Aoû 2010 - 10:55

Tu peux aussi fournir la ligne qui merde ?
Revenir en haut Aller en bas
ASHKA
Voyageur Lv.10
Voyageur Lv.10
avatar


Masculin Age : 41
Inscrit le : 04/12/2008
Messages : 383

[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeDim 22 Aoû 2010 - 10:58

Apres verif rapide, pas de souci de mon coté.
Le hash qui te pose probleme "@skillacc_exp" est initialisé dans la methode "setup" du script Game_Actor.
Verifie qu'il n'y ai aucun de tes scripts qui redefinissent cette methode au lieu d'utiliser un alias.
Au pire, place mon script en bas de ta liste.
Revenir en haut Aller en bas
Raitosan
† Fondateur du forum †
† Fondateur du forum †
Raitosan


Masculin Age : 31
Inscrit le : 09/02/2008
Messages : 1974

[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeDim 22 Aoû 2010 - 11:00

"for id in @skillacc_exp.keys"

Il est déjà en bas de la liste :/

Sinon tampis, je trouverais un moyen de contrer ça.

Merci quand même Wink
Revenir en haut Aller en bas
http://www.zeforiu.fr
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 31
Inscrit le : 29/07/2009
Messages : 7840

[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeDim 22 Aoû 2010 - 11:26

Essaye de voir si y'a pas une incompatibilité en désactivant tes autres scripts.
Pour faire ça tu vas dans l'éditeur de script, tu sélectionne un script puis tu vas la dans partie avec le code. Dedans tu fais Ctrl + A puis Ctrl + Q.
Tu fais ça avec tous tes scripts.

Si ça marche tu les réactives un par un afin de voir lequel pose problème.
Sinon, puisque le script n'a pas de problème, regarde si t'aurais pas fait une erreur de copier / coller.
Revenir en haut Aller en bas
Raitosan
† Fondateur du forum †
† Fondateur du forum †
Raitosan


Masculin Age : 31
Inscrit le : 09/02/2008
Messages : 1974

[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeDim 22 Aoû 2010 - 11:28

Arf, apparement ça viens du script d'extension d'équipements... Je vais faire un systèmes avec des événements communs, ce n'est pas grave.

Merci pour ton aide Zang Smile
Revenir en haut Aller en bas
http://www.zeforiu.fr
darkolive
Poulet Lv.1
Poulet Lv.1
darkolive


Masculin Age : 33
Inscrit le : 06/08/2010
Messages : 5

[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeJeu 7 Oct 2010 - 8:19

Merci pour le script, mais où est donc cet option "status" et la modification à y faire ?
Parce que FF9 m'as beaucoup plus convaincu que FF7!
Merci d'avance et pardon pour la question idiote.
Revenir en haut Aller en bas
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 31
Inscrit le : 29/07/2009
Messages : 7840

[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeJeu 7 Oct 2010 - 8:22

Le menu statuts, c'est le menu statuts de base dans RPG maker.

LA modification est à faire dans les scripts de base. C'est tout simplement indiqué et en plus avec du image. Que demande le peuple ? x)
Revenir en haut Aller en bas
Dynamo
Poulet carnivore Lv.2
Poulet carnivore Lv.2
Dynamo


Masculin Age : 34
Inscrit le : 15/12/2010
Messages : 17

[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeSam 15 Jan 2011 - 17:09

Bonjour, désolé du necropost mais etant un fan du système de compétence de final fantasy 9 je veux absolument utiliser ce script!

Mon problème est très simple (je pense), mais j'ai beau inspecter le script je vois pas ce que je doit changer pour que ça marche!

Je précise, le script marche, à partir d'un accessoire je peux apprendre une technique une fois que le nombre de PC nécéssaire est atteint. Le seul petit hic, c'est que l'on ne voit pas l'évolution de l'experience de l'objet comme le montre cette image:
[VX] Competences via accessoires Exempl11

Donc j'aimerais juste savoir comment faire pour afficher l'experience actuelle sur l'experience totale.
Et aussi j'aimerais que l'on puisse voir la compétence que l'on va apprendre à partir du status (sous l'accessoire si possible.)
De plus je ne sais pas utiliser les niveaux de l'arme donc si on pouvait m'expliquer ça (ou me dire comment supprimer cette option non nécessaire à mon projet) ça serais cool.

Voila, d'avance merci a ceux qui s'attarderons sur mon cas! Wink
Revenir en haut Aller en bas
shriukan
Va-nu-pieds Lv.4
Va-nu-pieds Lv.4
shriukan


Masculin Age : 29
Inscrit le : 26/07/2010
Messages : 50

[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitimeMer 26 Jan 2011 - 17:07

Salut , voila je vien pour pour demander comment on configure le script mais quand don arrive ici :
Spoiler:

Y a-t-il quelquechose a configurer ? Si oui , comment ?

Donc bon malgré sa je lance le jeu , tout beigne quand je decide de changé d'equipement , c'est le drame !
Spoiler:

L'ecran se noirci alors et affiche sa . Le jeu s'arrete et la ligne responsable serait celle ci :
Spoiler:

Comment puis-je l'utiliser ce script ? Sad
Revenir en haut Aller en bas
Contenu sponsorisé




[VX] Competences via accessoires Empty
MessageSujet: Re: [VX] Competences via accessoires   [VX] Competences via accessoires Icon_minitime

Revenir en haut Aller en bas
 

[VX] Competences via accessoires

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» Accessoires
» Plusieurs accessoires
» Effets d'ambiances et accessoires

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Scripts VX - RGSS2 :: Objets et compétences-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit