Night.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: Star Trek: Glorious Wolf - (...) / Sorties: Dread Mac Farlane - episode 3 / News: Plein d'images cools créées par (...) / Sorties: Star Trek: Glorious Wolf - (...) / Jeux: Final Fantasy 2.0 / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

215 connectés actuellement

29185146 visiteurs
depuis l'ouverture

5411 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Alex d'Or

Lunae - le bazar d'Emz0

Le Temple de Valor

Zarok

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [RMXP] Réduire l'équipe


Kasbak - posté le 27/06/2018 à 03:30:34 (34 messages postés)

❤ 0

Domaine concerné: SCript
Logiciel utilisé: RMXP
Bonjour à tous. Quelqu'un serait-il comment faire pour retirer tout les membres de l'équipe au delà d'un certain nombre.
Exemple j'ai 5 ou 6 personnages dans l'équipe, je lance un event qui fait que automatiquement l'équipe sera réduite à 2 membres et gardera les 2 premiers en retirant tout les autres de l'équipe. J'ai essayer ce genre de code script mais j'arrive pas.



Portion de code : Tout sélectionner

1
2
3
4
5
6
7
def add_actor(actor_id)
actor = $game_actors[actor_id]
if $game_party.actors.size > 8 
@actors.push(actor)
$game_player.refresh
end
end



Voilà j'espère quelqu'un sait comment faire, meme si c'est en event sa m'ira aussi.


Roi of the Suisse - posté le 27/06/2018 à 09:18:58 (29764 messages postés) - honor -

❤ 0

Alerte neige !

L'interpréteur fait comme ça pour ajouter ou retirer un gusse :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  #--------------------------------------------------------------------------
  # ● アクターの入れ替え
  #--------------------------------------------------------------------------
  def command_129
    # アクターを取得
    actor = $game_actors[@parameters[0]]
    # アクターが有効の場合
    if actor != nil
      # 操作で分岐
      if @parameters[1] == 0
        if @parameters[2] == 1
          $game_actors[@parameters[0]].setup(@parameters[0])
        end
        $game_party.add_actor(@parameters[0])
      else
        $game_party.remove_actor(@parameters[0])
      end
    end
    # 継続
    return true
  end


@parameters[0] est le numéro du gusse. Donc ça donnerait quelque chose comme :

Portion de code : Tout sélectionner

1
2
3
for gusse in 2...10
    $game_party.remove_actor(gusse)
end

J'ai pas testé, mais c'est une piste honorable.


Attention à ne pas confondre savoir et être : il sera/il saura.



L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Kasbak - posté le 27/06/2018 à 22:42:30 (34 messages postés)

❤ 0

Merci pour ton aide. J'ai essayer mais y'a un souci, c'est que cela retire les membres dans l'odre de la base de données, si par exemple je n'ai débloquer que le héros numéro 5 et que le script remove de 2...10 j'ai plus du tout de joueur dans l'équipe et le jeu plante, et si je met le heros numéro 7 en premier position il sera remove et le script laissera toujours le joueur 1 et 2 dans l'équipe.


Roi of the Suisse - posté le 27/06/2018 à 23:49:06 (29764 messages postés) - honor -

❤ 0

Alerte neige !

Ah je ne savais pas que le joueur pouvait choisir d'arranger les héros dans l'ordre qu'il préfère.

C'est pas forcément difficile à faire si tu t'y connais en programmation en général.

J'ai l'impression que moi je te parlais de l'id du héros (son numéro dans la base) et toi tu parles de l'index du héros (son ordre dans la partie).

Portion de code : Tout sélectionner

1
2
3
4
5
for actor in $game_actors
    if actor.index > 2
        $game_party.remove_actor(actor.id)
    end
end

J'ai toujours pas testé, j'écris ça en aveugle, mais je pense que c'est une bonne base de travail. À toi de gérer les éventuels cas nuls avec des conditions if.



L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Kasbak - posté le 28/06/2018 à 00:49:32 (34 messages postés)

❤ 0

sa m'affiche un message d'erreur 'undefined method 'each' for #<Game_Actors>

Mais sinon j'ai pensé peut-etre pour faire plus simple jsute une ligne code qui réduit l'équipe maximum à 2, comme ça tout les heros supplémentaire seront kicker automatiquement.

J'ai essayé :
@actors.size = 2
et :
$game_party.actors.size = 2

Mais sa fontionne pas, peut-etre tu as une idée à ce niveau là ?


Roi of the Suisse - posté le 28/06/2018 à 08:44:29 (29764 messages postés) - honor -

❤ 0

Alerte neige !

size est un accesseur, pas un mutateur. Il te donne une information sur ton tableau (sa taille). Tu ne peux pas l'utiliser pour modifier le contenu du tableau !!!


Essaie en remplaçant

Portion de code : Tout sélectionner

1
for actor in $game_actors

par

Portion de code : Tout sélectionner

1
for actor in $game_party.actors

car $game_actors est un piège : il se fait passer pour un tableau, mais c'est juste un objet avec une méthode [], donc on ne peut pas itérer dessus. Ça c'est la viciosité inhérente aux rubistes.

Et arrête de confondre "sa" et "ça" wallah espèce de sacripant :feu Ça me donne juste envie de partir en courant très loin.
"sa" c'est pour une appartenance : "sa chaussure", "sa bicyclette". "sa" est devant un nom commun, dont il précise le possesseur.
"ça" c'est un pronom qui remplace quelque chose : "ça vend du rêve", "ça s'en va et ça revient". "ça" n'est pas devant un nom commun.


Il me semble que tu peux aussi extraire une portion de tableau en faisant :

Portion de code : Tout sélectionner

1
$game_party.actors = $game_party.actors[0..1] # premier element et dernier element

ou encore

Portion de code : Tout sélectionner

1
$game_party.actors = $game_party.actors[0, 2] # premier element et taille de portion

Et ça va garder le deux premiers éléments. Je ne garantie pas que ça marchera.



L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Kasbak - posté le 28/06/2018 à 10:59:52 (34 messages postés)

❤ 0

C'est parfait, merci pour ton aide !

Index du forum > Entraide > [RESOLU] [RMXP] Réduire l'équipe

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