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

Apprendre
RPG Maker

Guides
Tutoriels
Making-of

Dans le
Forum

Section Entraide

Jeux: Cure Seekers / Jeux: Princesse Emmentale / Interviews: Ccd-Tof / Sorties: dans mon quartier, remasterisé (...) / News: Alex d'Or 2020 : Les résultats ! / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

172 connectés actuellement

10837122 visiteurs
depuis l'ouverture

885 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

RPG Maker Détente

ConsoleFun

Offgame

New RPG Maker

Lunae - le bazar d'Emz0

Tous nos partenaires

Devenir
partenaire



Formules de compétences (event scripting)

Exploration des possibilités des formules de compétences pour VX Ace.
Traduction d'un tutoriel de Fomar0153.

Ecrit par kvk

Ces astuces sont issus d'un tutoriel de Fomar0153, ici : https://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).

Aucun commentaire n'a été posté pour le moment.

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 | Articles perso | 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 | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Jeux complets | Tous les jeux | 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