Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: Dread Mac Farlane - episode 4 / Sorties: Star Trek: Glorious Wolf - (...) / Sorties: Dread Mac Farlane - episode 3 / News: Plein d'images cools créées par (...) / Sorties: Star Trek: Glorious Wolf - (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

417 connectés actuellement

29191656 visiteurs
depuis l'ouverture

6707 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Maker Détente

Planète Glutko

Zarok

Eclipso

RPG Fusion

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [RPG Maker VX Ace] Problème position personnages


Nérylis - posté le 17/06/2016 à 19:49:42 (149 messages postés)

❤ 0

Domaine concerné: Script
Logiciel utilisé: RPG Maker VX Ace
Coucou,

J'essaie depuis quelques jours de résoudre un petit problème avec le script de Yanfly - Party System que voici : https://github.com/Archeia/YEARepo/blob/master/Menu/Party_System.rb

J'ai remarqué que lorsqu'on change un personnage combattant avec un autre personnage non combattant, le premier se place en tête de liste des personnages non combattants au lieu de prendre la place de son successeur. Compliqué à comprendre, pas vrai ? J'explique.

Admettons que j'ai 8 personnages comme c'est le cas sur ce screenshot : http://img11.hostingpics.net/pics/858422Capture.png
Les 4 premiers personnages en vert sont les combattants, les 4 autres sont les non combattants.
Si je décide par exemple de remplacer le personnage 2 (combattant) par le personnage 7 (non combattant), ce dernier va bien prendre la position 2. Par contre, le personnage 2 ne va pas se mettre en position 7. Il va se mettre en première position des personnages non combattants (en l’occurrence ici en position 5) et les autres personnages en position 5 et 6 vont se décaler en position 6 et 7.

Ce que je voudrais, c'est qu'il n'y ait pas ce décalage et que le personnage combattant se mettre en lieu et place du personnage qu'il le remplace. Au niveau du script, ça doit se faire entre les lignes 330 et 376 mais je n'ai pas trouvé comment faire. Pouvez-vous m'aider svp ?


zeus81 - posté le 17/06/2016 à 20:07:37 (11071 messages postés)

❤ 0

On te l'avait pas déjà corrigé ça ? :susp


Reivilo - posté le 17/06/2016 à 20:22:22 (163 messages postés)

❤ 0

Why not ?

Décidément, on dirait que je ne suis pas le seul à avoir des soucis avec les scripts/plugins de Yanfly x)

Travail assis, Travail réussi !


Nérylis - posté le 17/06/2016 à 20:32:15 (149 messages postés)

❤ 0

Non Zeus, c'était autre chose. ;)

Reivilo : Yanfly fait de sacrés scripts mais laisse de jolis bugs dedans. Le souvenir le plus notable que j'ai, c'est son script Adjust limits qui comportait un fameux bug qui est le suivant : lorsqu'on chargeait une partie, on se retrouvait avec des objets complètement aléatoires dans l'inventaire. Fun ! Mais bon, il fait quand même de belles choses, ça manque juste de tests.


arttroy - posté le 18/06/2016 à 15:19:51 (2394 messages postés)

❤ 0

Just working

Ca serait pas ça qui est en cause ? :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
  #--------------------------------------------------------------------------
  # alias method: add_actor
  #--------------------------------------------------------------------------
  alias game_party_add_actor_ps add_actor
  def add_actor(actor_id)
    game_party_add_actor_ps(actor_id)
    return if @battle_members_array.include?(actor_id)
    return unless @battle_members_array.include?(0)
    index = @battle_members_array.index(0)
    @battle_members_array[index] = actor_id
    $game_player.refresh
    $game_map.need_refresh = true
    rearrange_actors
end



ou ça :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  #--------------------------------------------------------------------------
  # new method: rearrange_actors
  #--------------------------------------------------------------------------
  def rearrange_actors
    initialize_battle_members if @battle_members_array.nil?
    array = []
    for actor_id in @battle_members_array
      next if [0, nil].include?(actor_id)
      next if $game_actors[actor_id].nil?
      array.push(actor_id)
    end
    for actor_id in @actors
      next if array.include?(actor_id)
      next if $game_actors[actor_id].nil?
      array.push(actor_id)
    end
    @actors = array
end



par contre je vois pas trop comment modifier ça...

Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?


Nérylis - posté le 18/06/2016 à 15:21:10 (149 messages postés)

❤ 0

Oui, c'est ce que je disais, entre les lignes 330 et 376.


arttroy - posté le 18/06/2016 à 15:31:15 (2394 messages postés)

❤ 0

Just working

en modifiant :

Portion de code : Tout sélectionner

1
2
    return unless @battle_members_array.include?(0)
    index = @battle_members_array.index(0)



par :

Portion de code : Tout sélectionner

1
2
    return unless @battle_members_array.include?(actor_id)
    index = @battle_members_array.index(actor_id)



Ça ne fonctionne pas ?

Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?


Nérylis - posté le 18/06/2016 à 15:52:46 (149 messages postés)

❤ 0

Non, ça ne marche pas.


Reivilo - posté le 18/06/2016 à 16:08:43 (163 messages postés)

❤ 0

Why not ?

Nérylis a dit:



Reivilo : Yanfly fait de sacrés scripts mais laisse de jolis bugs dedans. Le souvenir le plus notable que j'ai, c'est son script Adjust limits qui comportait un fameux bug qui est le suivant : lorsqu'on chargeait une partie, on se retrouvait avec des objets complètement aléatoires dans l'inventaire. Fun ! Mais bon, il fait quand même de belles choses, ça manque juste de tests.



Je ne dis pas le contraire ! Ils sont très bons !
Et j'ai rencontré peu de bug pour le moment ^^
J'ai juste certains soucis au niveau de la compréhension et l'utilisation de ses scripts/plugins, majoritairement les "Action Sequence pack 1 et 2"

Travail assis, Travail réussi !


arttroy - posté le 18/06/2016 à 17:32:36 (2394 messages postés)

❤ 0

Just working

essaie de remplacer le 0 par une autre valeur (3 par exemple).

Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?


zeus81 - posté le 18/06/2016 à 18:26:24 (11071 messages postés)

❤ 0

Je crois qu'il faut supprimer la fonction rearrange_actors dont la seule action est justement de mettre les combattants en début de liste.
Ou alors faut la modifier comme ça :

Portion de code : Tout sélectionner

1
2
3
4
5
  def rearrange_actors
    initialize_battle_members if @battle_members_array.nil?
    @actors.delete(0)
    @actors.compact!
  end




Nérylis - posté le 18/06/2016 à 21:16:44 (149 messages postés)

❤ 0

En testant les deux possibilités, on perd effectivement le positionnement des combattants en première position. Il faudrait garder cette fonctionnalité, et juste changer le positionnement des non combattants. Si c'est possible.

Edit : Arttroy, j'ai testé en mettant (3) mais je n'ai pas vu de différence.


zeus81 - posté le 18/06/2016 à 23:15:55 (11071 messages postés)

❤ 0

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
  def rearrange_actors
    initialize_battle_members if @battle_members_array.nil?
    @actors.reject! {|actor_id| !$game_actors[actor_id.to_i]}
    @battle_members_array.each_with_index do |actor_id, i|
      j = @actors.index(actor_id)
      @actors[i], @actors[j] = @actors[j], @actors[i] if i != j
    end
  end




Nérylis - posté le 19/06/2016 à 10:12:42 (149 messages postés)

❤ 0

Je viens de tester, ça a l'air de bien marcher. Merci. :)

Par contre, j'ai un petit souci sur un event. Sur mon donjon à plusieurs équipes, lors de la création des équipes, j'ai plusieurs appels de script. Et là en l'occurence, j'obtiens un message d'erreur qui est le suivant :

image

Ce message apparaît après avoir créé la première équipe après le script call_party qu'on peut voir dans mon event sur ce screenshot :

image

Je pense que ça doit être dû aux appels de scripts qui suivent puisque le plantage a lieu avant le message "Créez l'équipe 2". Est-ce que tu vois d'où vient le problème ? Sinon, au pire, je peux réécrire mon event sans faire d'appel de script mais pour l'avoir déjà fait, ça donne quelque chose de super long et quand on m'avait donné cette méthode avec les appels de script, j'étais content.^^

Edit : Je pense que ça sera peut-être plus facile pour toi avec la démo de ce mini projet pour corriger les appels de script : http://www.mediafire.com/download/d87ern13stlad81/Teams.exe


zeus81 - posté le 19/06/2016 à 18:25:38 (11071 messages postés)

❤ 0

Comme ça peut-être :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
  def rearrange_actors
    initialize_battle_members unless @battle_members_array
    @actors.select! {|actor_id| $game_actors[actor_id.to_i]}
    (@battle_members_array & @actors).each_with_index do |actor_id, i|
      j = @actors.index(actor_id)
      @actors[i], @actors[j] = @actors[j], @actors[i] if i != j
    end
  end




arttroy - posté le 19/06/2016 à 19:59:18 (2394 messages postés)

❤ 0

Just working

P.... T'es un fucking tueur Zeus...

Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?


zeus81 - posté le 19/06/2016 à 20:15:46 (11071 messages postés)

❤ 0

Bah oui tu savais pas ? :susp =>[]


Nérylis - posté le 19/06/2016 à 20:58:04 (149 messages postés)

❤ 0

Cette fois, ça marche bien. Merci Zeus, effectivement t'es un tueur pour ces trucs là.^^


arttroy - posté le 20/06/2016 à 16:55:15 (2394 messages postés)

❤ 0

Just working

Si je sais tout... =>[]

Non mais moi j'ai toujours trouvé que son pseudo lui allait bien, ce gars à un niveau irréel en script ^^.

Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?

Index du forum > Entraide > [RESOLU] [RPG Maker VX Ace] Problème position personnages

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers