RPG Creator : créez votre MMORPG ou RPG sans aucune connaissance en programmation


Disponible le 4 Juin !




- Jouez à votre jeu sur tablettes tactiles, Smartphones et navigateurs Web
- Personnalisez vos menus
- Dessinez facilement et rapidement vos cartes
- Créez des actions pour le combat A-RPG


www.rpgcreator.net


Heures au format UTC + 1 heure [ Heure d’été ]


Règles du forum


Consultez la liste des Scripts : cliquez ici



Publier un nouveau sujet Répondre au sujet  [ 4 messages ] 
Auteur Message
 Sujet du message: Variables locales
MessagePublié: 19 Aoû 2011, 09:56 
Villageois (Nv 2)
Avatar de l’utilisateur

Inscrit le: 16 Juin 2009, 00:00
Messages: 24
Localisation: Bruxelles Belgique
Niveau RPG Maker: Moyen
Logiciel(s) préféré(s): VX
Sexe: Masculin
Points d'aide: 17/60

Créations :

- Variables locales

- QuickSave

- Petit utilitaire de manipulation du Panorama


Voir ses créations

Description
Ce script permet de greffer une fonctionnalité complémentaire aux évenements de RPGMAKERVX, en parallèle avec les Interrupteurs locaux, il permet la manipulation de variables locales. Variables propre l'évènement dans laquelle elle est créée.

Installation
Il suffit de coller le script au dessus de la portion de code Main .

Utilisation
Toutes les fonctions sont décrites dans le haut du script. Il suffit de les appeler pour effectuer une action sur une variable locale.

Code POUR RPG MAKER VX
Code: Tout sélectionner
#Ajout de la gestion des variables locales aux evenement
#Auteur: Nuki
#Liste des méthodes utilisables
#=============================================================

# get(map_id, evt_id, id) -> retourne la variable n°id de l'evenement n°evt_id de la map n°map_id
# => Alias : get_by_map(map_id, evt_id, id)

# get(evt_id, id) -> retourne la variable n°id de l'evenement n°evt_id de la map courante
# => Alias : get_by_event(evt_id, id)

# get(id) -> retourne la variable n°id de l'evenement courant
# => Alias : get_by_id(id)

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# set(map_id, evt_id, id, valeur) -> attribue valeur à la variable n°id de l'evenement n°evt_id de la map n°map_id
# => Alias : set_by_map(map_id, evt_id, id, valeur)

# set(evt_id, id, valeur) -> attribue valeur à la variable n°id de l'evenement n°evt_id de la map courante
# => Alias : set_by_event(evt_id, id, valeur)

# set(id, valeur) -> attribue valeur à la variable n°id de l'evenement courant
# => Alias : set_by_id(id, valeur)

#=============================================================

class Self_Var
  attr_accessor :map_id
  attr_accessor :event_id
  attr_accessor :id
  attr_accessor :value
  def initialize(map_id, event_id, id, value)
    @map_id = map_id
    @event_id = event_id
    @id = id
    @value = value
  end
end

class Scene_Title
  alias var_main main
  def main
    var_main
    $game_self_var = Array.new
  end
end

class Game_Interpreter
  # Récupère une variable en fonction de toute ces données
  def get_by_map(map_id, event_id, id)
    local = $game_self_var.find{
      |variable|
        variable.map_id == map_id && variable.event_id == event_id && variable.id == id
    }
    return local.value if local.instance_of?(Self_Var)
    return 0 if local == nil
  end
  # Récupère une variable en fonction de son ID d'event et de son idée sur la map courante
  def get_by_event(event_id, id)
    return get_by_map(@map_id, event_id, id)
  end
  # Récupère la variable de l'evenement courant en fonction d'une ID
  def get_by_id(id)
    return get_by_map(@map_id, @event_id, id)
  end
  # Attribue une variable en fonction de toutes les données
  def set_by_map(map_id, event_id, id, value)
    index = $game_self_var.index(
      $game_self_var.find{
        |variable|
          variable.map_id == map_id && variable.event_id == event_id && variable.id == id
      })
      if index == nil
        $game_self_var << Self_Var.new(map_id, event_id, id, value)
      else
        $game_self_var[index].value = value
      end
  end
  # Attribue une variable en fonction de l'evenement ID et de l'ID de la variable
  def set_by_event(event_id, id, value)
    set_by_map(@map_id, event_id, id, value)
  end
   # Attribue une variable en fonction de l'ID de la variable dans l'evenement courant
  def set_by_id(id, value)
    set_by_map(@map_id, @event_id, id, value)
  end
  #Utilisation GET générique
  def get(*args)
    if args.length == 3
      return get_by_map(args[0], args[1], args[2])
    elsif args.length == 2
      return get_by_event(args[0], args[1])
    elsif args.length == 1
      return get_by_id(args[0])
    else
      return 0
    end
  end
  #Utilisation SET générique
  def set(*args)
    if args.length == 4
      set_by_map(args[0], args[1], args[2], args[3])
      return true
    elsif args.length == 3
      set_by_event(args[0], args[1], args[2])
      return true
    elsif args.length == 2
      set_by_id(args[0], args[1])
      return true
    else
      return false
    end
  end
end

class Scene_File
  alias var_write_save_data write_save_data
  alias var_read_save_data read_save_data
  def write_save_data(file)
    var_write_save_data(file)
    Marshal.dump($game_self_var,file)
  end
  def read_save_data(file)
    var_read_save_data(file)
    $game_self_var = Marshal.load(file)
  end

end


code pour RPGMAKER XP
Code: Tout sélectionner
#Ajout de la gestion des variables locales aux evenement
#Auteur: Nuki
#Liste des méthodes utilisables
#=============================================================

# get(map_id, evt_id, id) -> retourne la variable n°id de l'evenement n°evt_id de la map n°map_id
# => Alias : get_by_map(map_id, evt_id, id)

# get(evt_id, id) -> retourne la variable n°id de l'evenement n°evt_id de la map courante
# => Alias : get_by_event(evt_id, id)

# get(id) -> retourne la variable n°id de l'evenement courant
# => Alias : get_by_id(id)

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# set(map_id, evt_id, id, valeur) -> attribue valeur à la variable n°id de l'evenement n°evt_id de la map n°map_id
# => Alias : set_by_map(map_id, evt_id, id, valeur)

# set(evt_id, id, valeur) -> attribue valeur à la variable n°id de l'evenement n°evt_id de la map courante
# => Alias : set_by_event(evt_id, id, valeur)

# set(id, valeur) -> attribue valeur à la variable n°id de l'evenement courant
# => Alias : set_by_id(id, valeur)

#=============================================================

class Self_Var
  attr_accessor :map_id
  attr_accessor :event_id
  attr_accessor :id
  attr_accessor :value
  def initialize(map_id, event_id, id, value)
    @map_id = map_id
    @event_id = event_id
    @id = id
    @value = value
  end
end

class Scene_Title
  alias var_main main
  def main
    $game_self_var = Array.new
    var_main
  end
end

class Interpreter
  # Récupère une variable en fonction de toute ces données
  def get_by_map(map_id, event_id, id)
    local = $game_self_var.find{
      |variable|
        variable.map_id == map_id && variable.event_id == event_id && variable.id == id
    }
    return local.value if local.instance_of?(Self_Var)
    return 0 if local == nil
  end
  # Récupère une variable en fonction de son ID d'event et de son idée sur la map courante
  def get_by_event(event_id, id)
    return get_by_map(@map_id, event_id, id)
  end
  # Récupère la variable de l'evenement courant en fonction d'une ID
  def get_by_id(id)
    return get_by_map(@map_id, @event_id, id)
  end
  # Attribue une variable en fonction de toutes les données
  def set_by_map(map_id, event_id, id, value)
    index = $game_self_var.index(
      $game_self_var.find{
        |variable|
          variable.map_id == map_id && variable.event_id == event_id && variable.id == id
      })
      if index == nil
        $game_self_var << Self_Var.new(map_id, event_id, id, value)
      else
        $game_self_var[index].value = value
      end
  end
  # Attribue une variable en fonction de l'evenement ID et de l'ID de la variable
  def set_by_event(event_id, id, value)
    set_by_map(@map_id, event_id, id, value)
  end
   # Attribue une variable en fonction de l'ID de la variable dans l'evenement courant
  def set_by_id(id, value)
    set_by_map(@map_id, @event_id, id, value)
  end
  #Utilisation GET générique
  def get(*args)
    if args.length == 3
      return get_by_map(args[0], args[1], args[2])
    elsif args.length == 2
      return get_by_event(args[0], args[1])
    elsif args.length == 1
      return get_by_id(args[0])
    else
      return 0
    end
  end
  #Utilisation SET générique
  def set(*args)
    if args.length == 4
      set_by_map(args[0], args[1], args[2], args[3])
      return true
    elsif args.length == 3
      set_by_event(args[0], args[1], args[2])
      return true
    elsif args.length == 2
      set_by_id(args[0], args[1])
      return true
    else
      return false
    end
  end
end

class Scene_Save
  alias var_write_save_data write_save_data
  def write_save_data(file)
    var_write_save_data(file)
    Marshal.dump($game_self_var,file)
  end
end

class Scene_Load
  alias var_read_save_data read_save_data
  def read_save_data(file)
    var_read_save_data(file)
    $game_self_var = Marshal.load(file)
  end
end

_________________


2 PA donné(s) par Samarium le 19 Août 2011


Dernière édition par nuki le 20 Aoû 2011, 12:37, édité 1 fois au total.

Haut
 Profil  
 
 Sujet du message: Re: Variables locales
MessagePublié: 19 Aoû 2011, 15:27 
Bourgeois (Nv 3)
Avatar de l’utilisateur

Inscrit le: 19 Déc 2010, 17:05
Messages: 251
Niveau RPG Maker: Ze sais pas :3
Logiciel(s) préféré(s): RMXP
Point(s) Fort(s): Graphisme
Sexe: Masculin
Points d'aide: 12/60

Créations :

- [Photoshop CS5] Créer un logo tout simplement

- Créer une table custom façon Shika


Voir ses créations

Humm, j'ai l'impression que j'ai déja vu ce tuto ;)

Encore merci du partage Nukii !

Dommage que tu ne fasse pas de script pour XP.

_________________
Image
Image
Image


Haut
 Profil  
 
 Sujet du message: Re: Variables locales
MessagePublié: 20 Aoû 2011, 12:38 
Villageois (Nv 2)
Avatar de l’utilisateur

Inscrit le: 16 Juin 2009, 00:00
Messages: 24
Localisation: Bruxelles Belgique
Niveau RPG Maker: Moyen
Logiciel(s) préféré(s): VX
Sexe: Masculin
Points d'aide: 17/60

Créations :

- Variables locales

- QuickSave

- Petit utilitaire de manipulation du Panorama


Voir ses créations

Merci beaucoup.

AJout d'une version RPG MAKER XP


Haut
 Profil  
 
 Sujet du message: Re: Variables locales
MessagePublié: 20 Aoû 2011, 13:13 
Bourgeois (Nv 3)
Avatar de l’utilisateur

Inscrit le: 19 Déc 2010, 17:05
Messages: 251
Niveau RPG Maker: Ze sais pas :3
Logiciel(s) préféré(s): RMXP
Point(s) Fort(s): Graphisme
Sexe: Masculin
Points d'aide: 12/60

Créations :

- [Photoshop CS5] Créer un logo tout simplement

- Créer une table custom façon Shika


Voir ses créations

Ah ça c'est cool, un script de Nuki pour XP ! Merci encore une fois :D !

_________________
Image
Image
Image


Haut
 Profil  
 
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 4 messages ] 

Heures au format UTC + 1 heure [ Heure d’été ]


Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 2 invités


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Rechercher pour:
Sauter vers:  
cron
RPG Creative Forum version 5 ; Tous droits réservés
phpBB Group (Traduit par Xaphos)
Optimisé pour une résolution 1024*728