Partagez
Aller en bas
avatar
Nozvez
Membre

Nombre de messages : 354
Distinction : aucune
Date d'inscription : 16/03/2012

Créer un événement via les événements communs

le Mer 6 Mar 2013 - 19:27
Bonjour, je voulais savoir si ce que je cherchais à faire était possible.

Je voudrais que via l'appel d'un événement commun un événement soit crée sur la carte. Pour être plus clair je vous explique ce que j'ai fait déjà et ce qui me dérange.

Dans les événements commun j'ai crée "exemple" dans lequel j'ai mis :



Ceci fonctionne. Lorsque j'appelle l'événement commun "exemple" il se "crée" l'événement que je veux sur la carte à l'emplacement du héros.
Cependant il y a un problème : Lorsque je quitte la carte et que j'y retourne l'événement ainsi crée n'est plus là.

Savez-vous comment remédier à ce problème ?

EDIT : La variable ID de la carte ne sert à rien, je voulais faire un test qui n'a pas fonctionné.
avatar
Lunri
Membre

Nombre de messages : 673
Age : 28
Distinction : aucune
Date d'inscription : 31/07/2011

Re: Créer un événement via les événements communs

le Jeu 7 Mar 2013 - 6:37
Y faudrait activer un interrupteur à la fin pour que l'évent garde la même tronche.

Par contre pour qu'il reste à la même place je pense pas que c'est possible sans script à moins de le replacer à chaque fois qu'on se téléporte sur la map.
avatar
Zangther
Membre

Nombre de messages : 903
Distinction : aucune
Date d'inscription : 06/02/2013

Re: Créer un événement via les événements communs

le Jeu 7 Mar 2013 - 8:37
Utilise les interrupteurs locaux oour gérer l apparition de tes evenements. Smile
avatar
Nozvez
Membre

Nombre de messages : 354
Distinction : aucune
Date d'inscription : 16/03/2012

Re: Créer un événement via les événements communs

le Jeu 7 Mar 2013 - 11:06
@Lunri a écrit:Y faudrait activer un interrupteur à la fin pour que l'évent garde la même tronche.

Par contre pour qu'il reste à la même place je pense pas que c'est possible sans script à moins de le replacer à chaque fois qu'on se téléporte sur la map.

Pour qu'il garde la même tête c'est bon, avec l'interrupteur. Mais pour qu'il reste à la même place... Le but est que justement une fois qu'il est placé on ait plus besoin de le replacer.

@Zangther a écrit:Utilise les interrupteurs locaux oour gérer l apparition de tes evenements.

C'est-à-dire ? Tu veux dire qu'à chacun des emplacements possibles je pose un event avec en page 2 si interrupteur local activé l'apparence change ? Le problème c'est que dans ce cas il faudrait que je fasse ça sur chacun des carreaux passables de chacune des cartes. Donc ce ne serait pas du tout pratique.
avatar
Lunri
Membre

Nombre de messages : 673
Age : 28
Distinction : aucune
Date d'inscription : 31/07/2011

Re: Créer un événement via les événements communs

le Jeu 7 Mar 2013 - 15:55
Un Systeme D plutôt contraignant serait qu'une fois l'évent placé tu enregistre sa position dans 2 variables et à chaque fois tu reviens sur la map t'affiche un écran noir de quelques secondes tu replaces ton évent suivant ces variables et tu supprime l'écran noir :/

Sinon j'avais trouvé un script mais j'ai pas testé

Code:
#--------------------------------------------------
# Remember Event Position 1.0
#--------------------------------------------------
#
# Author: Shaz
#
# Description: This script lets you set the position and direction
#           where an event will appear next time the map is
#           loaded.  Events will appear in this new position
#           rather than the place they were put during design.
#
#--------------------------------------------------
#
# Installation: Copy into a new script slot in the Materials section
#
#--------------------------------------------------
#
# Use:
#
# To tell an event to move to its current position the next time
# the map is loaded, execute the following in a script call:
#  $game_map.events[event_id].save_pos()
#
# To tell an event to move to a particular position (not its
# current position) the next time the map is loaded,
# execute the following in a script call:
#  $game_map.events[event_id].save_pos(1, 2, 8)
# - the above will move the event to x=1, y=2, facing up
#
# To tell an event to forget its previously remembered position
# and go back to its default position the next time time map
# is loaded, execute the following in a script call:
#  $game_map.events[event_id].forget_pos()
#--------------------------------------------------

class Game_System
  alias shaz_mem_position_gs_init initialize

  attr_accessor :event_positions

  def initialize
   shaz_mem_position_gs_init
   @event_positions = {}
  end
end

class Game_CharacterBase
  attr_accessor
end

class Game_Event
  alias shaz_mem_position_gcb_init initialize

  def initialize(map_id, event)
   shaz_mem_position_gcb_init(map_id, event)

   if $game_system.event_positions.has_key?([map_id, @id])
     mvx, mvy, mvdir = $game_system.event_positions[[map_id, @id]]
     moveto(mvx, mvy)
     if mvdir != nil
      set_direction(mvdir)
     end
     @stop_count = 0
     refresh
   end
  end

  def save_pos(x = @x, y = @y, dir = @direction)
   $game_system.event_positions[[@map_id, @id]] = [x, y, dir]
  end

  def forget_pos
   $game_system.event_positions.delete([@map_id, @id])
  end
end
avatar
Nozvez
Membre

Nombre de messages : 354
Distinction : aucune
Date d'inscription : 16/03/2012

Re: Créer un événement via les événements communs

le Jeu 7 Mar 2013 - 17:02
Le système D n'irait pas je pense. Puisque que le joueur pourra placer cet événement sur plusieurs cartes (un par carte) et chaque fois il faudrait que l'événement reste sur chacune des cartes (ouais j'aime bien me compliquer la vie^^).

Je vais tester le script pour voir ce que ça donne. Et si ça ne fonctionne pas je laisserai ce sujet ouvert au cas où quelqu'un me trouverait une solution.

EDIT : bon ça ne fonctionne pas plus avec ce script. Le problème c'est que ce script est à utiliser directement dans un événement. Et là l'événement en lui-même ne bouge pas, c'est l'événement commun qui le fait.

Donc si quelqu'un arrive à trouver une solution je laisse ce sujet ouvert.
Contenu sponsorisé

Re: Créer un événement via les événements communs

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