PP Plus et PP Max PSP0.7

6 Réponses • 881 Vues

Bonjour,

Par hasard j'ai testé les objets PP Plus et PP Max et ceux-ci ne sont pas configurés.
Pour ceux qui ne les aurais pas encore configurés, voici une méthode simple en event commun et qui ne nécessite que deux petits rajouts dans un script.

Alors rendez-vous tout d'abord dans le script Pokemon_Skill.
Vers les lignes 540-550 vous trouverez ceci:

  class Skill
    attr_reader :id
    #attr_reader :target
    attr_reader :ppmax
    #attr_reader :effect
    #attr_reader :effect_chance
    attr_reader :physical #Type physique
    attr_reader :special  #Type special
    attr_accessor :pp
    attr_accessor :usable

Rajoutez simplement ceci à la suite:

attr_reader :ppinit

Toujours dans le script Pokemon_Skill au environs des lignes 580 vous trouverez:

    def initialize(id)
      @id = id
      @ppmax = $data_skills_pokemon[id][4]
      @pp = @ppmax.to_i

Rajoutez en dessous de "@pp = @ppmax.to_i":

@ppinit = $data_skills_pokemon[id][4]

Ensuite, toujours dans Pokemon_script au lignes 730 localisez ceci:

    def raise_ppmax
      if @ppmax < $data_skills_pokemon[id][4]*8/5
        @ppmax += $data_skills_pokemon[id][4]/5
      end
    end

et rajoutez ceci juste en dessous :

    def def_ppinit
      @ppinit = @ppmax
    end

C'est fini pour les scripts.
Créez maintenant un nouvel event commun nommé "PPPLUS" et ajoutez lui ceci:

Script: skill_selection(pokemon_numero(appel_menu_equipe))
Condition: Si la variable [0004: INDEX POKEMON] est supérieure ou égale à 0
Condition: Si la variable [0005: INDEX SKILL] est différente de -1

Script: if pokemon_numero(var(4)).ss(var(5)).ppinit == nil
pokemon_numero(var(4)).ss(var(5)).def_ppinit
end

Script: @ppplus = (pokemon_numero(var(4)).ss(var(5)).ppinit * 0.2).round

Script: @pppmax = (pokemon_numero(var(4)).ss(var(5)).ppinit * 0.6).round
@pppmax += pokemon_numero(var(4)).ss(var(5)).ppinit

Condition: Si Script: pokemon_numero(var(4)).ss(var(5)).ppmax >= @pppmax
Objets: [PP PLUS] + 1
Message: Les PP MAX n'iront pas plus haut!
Sinon
Script: pokemon_numero(var(4)).ss(var(5)).add_ppmax(@ppplus)
Message: Les PP MAX augmentent!
Fin
Sinon
Objets: [PP PLUS] + 1
Fin
Sinon
Objets: [PP PLUS] + 1
Fin

Et un second event commun nommé cette fois "PPMAX" contenant ceci:

Script: skill_selection(pokemon_numero(appel_menu_equipe))
Condition: Si la variable [0004: INDEX POKEMON] est supérieure ou égale à 0
Condition: Si la variable [0005: INDEX SKILL] est différente de -1

Script: if pokemon_numero(var(4)).ss(var(5)).ppinit == nil
pokemon_numero(var(4)).ss(var(5)).def_ppinit
end

Script: @pppmax = (pokemon_numero(var(4)).ss(var(5)).ppinit * 0.6).round
@ppplus = @pppmax + pokemon_numero(var(4)).ss(var(5)).ppinit

Condition: Si Script: pokemon_numero(var(4)).ss(var(5)).ppmax != pokemon_numero(var(4)).ss(var(5)).ppinit
Condition: Si Script: @ppplus > pokemon_numero(var(4)).ss(var(5)).ppmax

Objets: [PP MAX] + 1
Message: Les PP MAX n'iront pas plus haut
avec un PP MAX!
Message: Vous pouvez cependant utiliser PP PLUS!
Sinon
Objets: [PP MAX] + 1
Message: Les PP MAX n'iront pas plus haut!
Fin
Sinon
Script: pokemon_numero(var(4)).ss(var(5)).add_ppmax(@pppmax)
Message: Les PP MAX augmentent!
Fin
Sinon
Objets: [PP MAX] + 1
Fin
Sinon
Objets: [PP MAX] + 1
Fin

Et voila le système complet.
Il vous indique en prime si vous ne pouvez pas utilisé un PP Max (car vous avez déjà utilisé un/plusieurs PP Plus) et si à la place vous pouvez encore utiliser des PP Plus.

EDIT: ah oui, n'oubliez surtout pas de relier vos event commun à vos objets "PP Plus" et "PP Max" décochez aussi les cases "usage sur pokémon"

« Modifié: 18 septembre 2018, 19:31:11 par Aerun »

PSP

Bonne initiative, mais c'est PPPLUS -1, vu que tu l'utilise. Sinon, il pleut des PP PLUS. :ahde:

Regarde mieux, c'est bien +1.
C'est pour rendre l'objet si les PP sont déjà au max.
Merci !
Pour avoir essayé, ce script fonctionne aussi sur PSP 0.8 ;)
Salut ! Je suis sur PSP 0.9.1 et malheureusement, ça ne marche pas chez moi. Quand je les teste, ça m'affiche "Ca n'aura aucun effet."
Je pense avoir bien suivi les instructions :

Le script : http://fdoc.fr/K5g0/

PP MAX

PP PLUS

Vous auriez une solution ? Encore merci !
Salut,

Désolé pour mon inactivité depuis un moment déjà mais je suis sur un projet non PSP, difficile de concilier les deux :p

Si tu as toujours le souci, je pense que ça pourrait venir du fait que tes objets ne pointent pas vers tes event communs PPMAX et PPPLUS.
Sinon le reste semble correcte.
Dis nous si c'est bon sinon je prendrais le temps de regarder en détail.
Bonjour, bonjour, bonsoir  :)

Je travaille sur la version 0.9.2 de PSP et cette méthode pour faire fonctionner l'objet PP PLUS ne fonctionne pas. Peut-être que j'ai mal compris une étape mais je crois avoir tout bien fait ...
Le message d'erreur dit qu'il y a une erreur de Syntaxe dans l’événement commun PPPLUS ... Pourtant la syntaxe est claire, il ne semble pas y avoir de boulette !
Quelqu'un a-t'il eu ce problème et l'a-t'il réglé ? Ou alors connait une autre façon de faire fonctionner l'objet PP PLUS ?

Merci beaucoup de m'avoir lu !  :3

EDIT :
Il y a une petite coquille dans le post de base, il faut enlever le "[/color]" en fin de ligne du script de la 5ème commande de l'événement commun PPPLUS.
Tout marche maintenant pour moi, sur la version 0.9.2, super !

« Modifié: 18 septembre 2018, 18:19:57 par MonCapichef »

Aerun

Modérateur

Merci pour ta vigilance MonCapichef, j'ai corrigé la coquille ;)

There was an error while thanking
Thanking...