Sujet n°13569
Posté par Malwolf le 1 Fév - 17:46 (2014)
Titre : [Résolu PSP4G+] Empêcher la fuite, dans un combat déterminé.
Bonjour, à toute la communauté PSP.

Lors du making de mon projet, j'ai remarqué que je ne pouvais pas faire en sorte que dans un combat pokémon déterminé, la fuite soit impossible.
Si elle est possible c'est un vrai problème pour mon projet, car le héros doit se forcer de se battre contre ces pokémons.

Exemple :
Magmar Niveau.30 devant une entrée de grotte, il veut m'empêcher de passer et lance l'affrontement !
-> Je peux fuir, c'est un problème.

Description de l’évent :
- Je crée l'évent.
- J'utilise la fonction "insérer un script".
- J'ajoute ceci -> demarrer_combat("MAGMAR", 30, false, false)
- Le combat se lance, normalement sans aucun problème.
- Je peux fuir, normal, comme si de rien n'était ! Qwerty

Peut être que la solution pour empêcher la fuite et très simple, mais j'aimerais bien la connaitre.
J'ai bien lu le manuel, pour les conditions, mais je n'en vois pas une qui interdit la fuite, j'ai aussi chercher sur google, et le forum.
Que le making soit avec vous.

Cordialement, Malwolf.

Posté par Valken le 1 Fév - 18:30 (2014)
Tu fais une combat de dresseur avec le nom Magmar. Enfin je pense qu'il y à des solution plus faciles mais bon x').

Posté par Malwolf le 1 Fév - 19:14 (2014)
Indigodaironik a écrit:
Tu fais une combat de dresseur avec le nom Magmar. Enfin je pense qu'il y à des solution plus faciles mais bon x').


Ce n'est pas un dresseur, mais un combat "Pokémon" déterminé via le script, que j'ai énoncé.
Ta solution aurait pu être crédible, cependant elle est complètement en échec total.

Merci d'avoir voulu, m'aider tout de même.

Cordialement, Malwolf.

Posté par Valken le 1 Fév - 20:21 (2014)
Dans Pokémon battle core 1, après le ligne 1604 ( Après une commentaire comme ceci : "Fuite"), tu remplace :

Code:

                 if run_able?(@actor, @enemy)
        $battle_var.run_count += 1
        @action_window.active = false
        @action_window.visible = false
        end_battle_flee
      else
        $battle_var.run_count += 1
        fail_flee
        @phase = 2
        @actor_action = 0
        $battle_var.action_id = 0
      end
    end

Par ça :

Code:

    if $game_variables[50]==1
              $battle_var.run_count += 1
        fail_flee
        @phase = 2
        @actor_action = 0
        $battle_var.action_id = 0
              elsif run_able?(@actor, @enemy)
        $battle_var.run_count += 1
        @action_window.active = false
        @action_window.visible = false
        end_battle_flee
      else
        $battle_var.run_count += 1
        fail_flee
        @phase = 2
        @actor_action = 0
        $battle_var.action_id = 0
      end
    end


Et après avant de lancer le combat contre Magmar, tu rends égale le variable 50 à 1. Tant que cette variable sera 1, tu ne pourras pas t'enfuir. Evidemment, il doit y avoir une moyen encore plus simple mais je ne sais faire que des trucs classiques comme ça :/.

Posté par Malwolf le 1 Fév - 22:00 (2014)
Bonsoir,

Ta solution est très simple, ne t'en fais pas c'est opérationnel !
Je te remercie pour m'avoir retirer cet épine du pied, j'espère que sa en aidera plus d'un !

Quand à toi, je te souhaite une bonne fin de week end, t'as l'air de t'y connaitre en script, sa intéresse si t'as aucun projet en cours.

Cordialement, Malwolf.