Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

News: Les actualités de fin d'année / Jeux: Glixel en version complète / Jeux: Izac 1 / News: Des jeux d'hiver sous la couette / Scripts: Système de vol pour RPG Maker (...) / Chat

Bienvenue
visiteur !





Désactiver
la neige


publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

290 connectés actuellement

30835181 visiteurs
depuis l'ouverture

2448 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Eclipso

RPG Maker - La Communauté

Level Up!

Lumen

Tous nos partenaires

Devenir
partenaire



[RGSS3] Formules de compétences (VX Ace)

Exploration des possibilités des formules de compétences pour VX Ace en event-scripting.

Ecrit par kvk


❤ 0

Ces astuces sont issues d'un tutoriel de Fomar0153, ici : How to Make the Most of Custom Formulae. #Part 1 (qu'on peut traduire à la louche par "Comment tirer le meilleur parti des formules maison ?")

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 boîte 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 écrire la formule ainsi :

Portion de code : Tout sélectionner

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



Contraintes.

La boîte de script a une limite en nombre de caractères.
S'il y a une erreur dans la formule, la compétence échouera systématiquement.



Quelques scénarios.


1. Certains membres du groupe, dû à leur race, ne peuvent bénéficier de certains effets.

La moitié du groupe est humaine, l'autre robotique. 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 états (buff ou debuff) à des personnages à travers les formules.


3. Un sort de Foudre qui inflige plus de dégâts en extérieur qu'en intérieur.

Pour savoir si l'on est en intérieur ou extérieur, 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 numéro 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 numéro de votre variable.
Les dégâts infligés seront égaux à 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èses pour que l'addition soit faite 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" .




Source :
- Fomar0153, "How to make the most of custom formulae. #Part 1", Rpgmakervxace.net, posté le 2 avril 2012 [consulté le 5 juillet 2021], https://web.archive.org/web/20120407114537/https://www.rpgmakervxace.net/topic/2340-how-to-make-the-most-of-custom-formulae-part-1/ ou http://cobbtocs.co.uk/wp/?p=271


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 | 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