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

Apprendre
RPG Maker

Guides
Tutoriels
Astuces
Making-of

Dans le
Forum

Section Entraide


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Nylu
Par NanakyTim

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

Jeux: Listhère / Jeux: Ach'Tegeach / Début des Alex d'Or 2020 / Jeux: Kitrinos / News: Bonne année 2020 ! /

Chat  

Bienvenue
visiteur !





Désactiver
la neige


publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

143 connectés actuellement

10378572 visiteurs
depuis l'ouverture

1672 visiteurs
aujourd'hui



Barre de séparation

Partenaires





Les 5 plus
visités

Akademiya RPG Maker

Alex d'Or

BloGecko

ConsoleFun

Eclipso

Au hasard

Akademiya RPG Maker

Le Temple de Valor

Le Comptoir Du clickeur

Les deux derniers

Le Comptoir Du clickeur

Zarok

Nos autres partenaires

Devenir
partenaire




Exploiter les formules de competences.
Ecrit par kvk

Ces astuces sont issus d'un tutoriel de Fomar0153, ici : http://www.rpgmakervxace.net/topic/2340-how-to-make-the-most-of-custom-formulae-part-1/

Ce que vous pouvez faire avec les formules sans passer par des scripts complexes.


Introduction

Exemple : un personnage précis régénère mieux que les autres s'il mange des pommes.

Dans la fenêtre "Damage", choisir HP Recover comme Type.
Comme formule :

Portion de code : Tout sélectionner

1
b.id == 1 ? 500 : 100



Explication.
De façon plus compréhensible, cette formule se traduit par :
"L'ID de B est-elle égale à 1? Si oui, donner 500 pv, sinon 100 pv."

Dans la boite de formule "a" représente l'attaquant ou l'utilisateur et "b" le défendeur ou le bénéficiaire (Sort de soins par exemple).

Une autre façon d’écrire cette formule serait :

Portion de code : Tout sélectionner

1
 if b.id == 1; 500; else; 100; end;



Les ";" est l'équivalent d'un retour à la ligne. Ce serait comme ecrire la formule ainsi :

Portion de code : Tout sélectionner

1
2
3
4
5
if b.id == 1
500
else
100
end



Contraintes.

La boite de formule a une limite en nombre de caractères.
S'il y a une erreur dans la formule, la competence echouera systematiquement.



Quelques scenarios.


1. Certains membres du groupe, du à leur race, ne peuvent beneficier de certains effets.

La moitié du groupe est humain, l'autre robot. Un robot ne se soigne pas comme un humain, comment faire?

Portion de code : Tout sélectionner

1
b.id==1 or b.id==3 or b.id==4 ? 500 : 0



Où les personnages avec l'ID 1,3 et 4 seraient humains, et 2 serait un robot.
Noter l'absence d'espace entre "id" et "==". C'est pour des raisons d’économie de caractères, que nous avons en nombre limité.


2. Personnage 1 est mieux nourri par la lasagne de cheval, le personnage 2 y est allergique (Poison) et 3 et 4 s'en foutent.

Portion de code : Tout sélectionner

1
if b.id==1;200;elseif b.id==2;b.add_state(2);0;else;100;end



Ce qui se lit "Si personnage 1 mange, donner 200 pv, mais si personnage 2 mange, il recoit le state 2 (Poison) et 0 pv. Sinon (Ni perso 1 ou 2), donner 100 pv."
Nous pouvons donc infliger des etats (buff ou debuff) à des personnages à travers les formules.


3. Un sort de Foudre qui inflige plus de degats en exterieur qu'en interieur.

Pour savoir si l'on est en interieur ou exterieur, il faut utiliser un switch (J'entre dans une maison, switch "Exterieur"==off. Je sors : switch exterieur = on par exemple).

Portion de code : Tout sélectionner

1
$game_switches[x] ? a.mat *8 - b.mdf *2 : a.mat *4 - b.mdf * 2



Où x est le numero du switch.
"$game_switches[x] ?" signifie "Est ce que le switch est ON?".


4. J'ai une compétence dans le niveau se trouve dans une variable.

Portion de code : Tout sélectionner

1
$game_variables[x] * 10



Où x est le numero de votre variable.
Les degats infligés seront egaux à la valeur de cette variable * 10.


5. J'ai un personnage aimant le hasard et je le veux utiliser deux dés dans sa formule.

Compliqué, suivez bien !

Portion de code : Tout sélectionner

1
c=1+rand(6);d=1+rand(6);if c==1 and d==1;10000;elsif c==d;c*400;else;(c+d)*100;end;



Regardons en detail.

Portion de code : Tout sélectionner

1
c=1+rand(6);d=1+rand(6)



"c" & "d" sont des variables locales, c'est à dire une variable dans laquelle on enregistre une information (comme n'importe quelle variable) mais qui sera effacée une fois le calcul fini.
Ne pas utiliser a et b, puisqu'ils correspondent aux attaquants et defendeurs.

Dans cette formule, c et d représentent les deux dés à 6 faces.

rand(6) signifie que l'on choisi un nombre aléatoire entre 0 et 5. L'on ajoute donc 1 pour avoir l'équivalent d'un dé à 6 faces (1 à 6 pour resultat).

Portion de code : Tout sélectionner

1
if c==1 and d==1;10000



Si chaque dé fait 1, alors le personnage fera 10 000 de degats !

Portion de code : Tout sélectionner

1
elsif c==d;c*400;



Si les dés font le même score, excepté 1, alors le personnage infligera le score du premier dé multiplié par 400 (Double 6 = 6 * 400 = 2400).

Portion de code : Tout sélectionner

1
else;(c+d)*100;



Sinon, le personnage infligera l’addition des deux dés multiplié par 100.
L'on mets c + d entre parenthèse pour que l'addition soit faites avant la multiplication.


6. Comment faire le sort "Demi" de Final Fantasy ?

Ce sort divise par 4 les points de vie de la cible.

Portion de code : Tout sélectionner

1
b.hp / 4



Facile : on divise les points de vie actuels de celui qui recoit le sort par 4.


7. Je veux que l'attaque prenne en compte les statistiques d'un personnage particulier.

Par exemple l'attaque de la gentille princesse est en fait une attaque par son garde du corps.

Portion de code : Tout sélectionner

1
$game_actors[1].atk * 4 - b.def * 2



Où 1 est le garde du corps en question.


8. Je veux que mon attaque fasse plus de dommages si la cible est empoisonnée (ou autre).

Portion de code : Tout sélectionner

1
c=a.atk*4-b.def*2;b.state?(2) ? c=(c*110)/100 : c=(c*90)/100 ; c



On enregistre la formule de base dans "c" (variable locale).
On regarde si la cible a le state (2).
Si c'est le cas, on augmente c de 10%.
Sinon, on lreduit les dommages de 10%.
Enfin, on donne pour résultat de la formule "c" .



(Tout le thread n'est pas traduit, je m'y remettrais plus tard).


yvyxfray - posté le 03/02/2017 à 16:55:41 (20 messages postés)

❤ 0

C'est génial, exactement ce qu'il me fallait, clair et simple à comprendre ! J'avais trop de mal avec l'anglais.
Merci beaucoup ! :sourit

J'ai tout de même une question, j'ai essayé ta méthode avec le statut "coup critique" mais cela donne l'état au tour suivant même si je mets :
a.add_state(27); a.atk

Y a moyen de donner l'état avant l'attaque (pour que le coup critique se passe dans le tour même) ? ou s'il y a un autre moyen de pouvoir infligé un coup critique (à 100% sûr) avec une compétence ?

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 | News | Forum | Flash-news | Sorties | Chat | Commentaires | Galerie | Blogs | Articles perso | Screen de la semaine | Palmarès | Livre d'or | Recherche | Interviews | OST | L'Annuaire | Divers
Apprendre: Le Wiki | Tutoriels | Guides | Gaming-Live | Tests | Making-of
Télécharger: Programmes | Scripts | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Index jeux séparés | Notre sélection | Sélection des membres | Les autres | Collection Oniro | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Hébergés: Aëdemphia | Fighting Robots Quest | Geex | Inexistence | La Légende d'Ibabou | Nylu | Sarcia | Super Mario RPG - Lost Souls
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