Day.png);">
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/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / News: Quoi de neuf sur Oniromancie (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

393 connectés actuellement

29378411 visiteurs
depuis l'ouverture

7778 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Maker Détente

Alex d'Or

Lumen

Offgame

RPG Maker - La Communauté

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [RM-MZ] Script pour une lanterne


Mononc Pirate - posté le 14/05/2023 à 21:44:16 (16 messages postés)

❤ 0

Domaine concerné: script
Logiciel utilisé: RM-MZ
Bonjour !
Me voilà avec mes premières questions ! Je prépare les mécaniques du jeux, je commence donc par me faire la dent sur le plus complexe.

Première question !

J'ai intégré le cycle jour/nuit à l'aide du plugin community_lights-master. Deux pichets de café plus tard je commence à comprendre le truc.

Je veux intégré un item, une lanterne à utilisé pour éclairé le personnage. Dans les ajustements du plugin, j'ai configuré "Player radius" à 100, pour qu'on sache un minimum où on se trouve dans un environnement sombre, la lanterne devrais offrir un radius de 300.

J'ai créé l'Item et incéré le script

Portion de code : Tout sélectionner

1
<cl: fire 80 #e87407 B5 D9>

qui fonctionne sur mon feu de foyer.

L'item reste non consommable :pense

Edit:

J'ai essayé de créé un "état" où "effet" lanterne. Donc l'item se consomme et donne l'effet. Sur la page des effet, j'ai essayé d'utilisé

Portion de code : Tout sélectionner

1
<cl:Flashlight r300 #e87407 B5>

Théoriquement ça devrais faire une lueur de feu autour du personnage... mais ça ne fonctionne pas :doute3

Edit 2: J'ai lié le retrait de l'effet au nombre de pas (300 pour l'instant)

Et remplacé le code dans la case "effet" par

Portion de code : Tout sélectionner

1
 <cl:fire r50 #ff8800 B5>

qui est le code de mes chandelles. Théoriquement ça devrais faire un effet de lumière autour du membre qui à consommé la lanterne... mais ça ne fonctionne pas non plus...


Deuxièmes question !

J'ai créé un event, une lanterne posé sur la table. Lorsqu'on clique dessus, on obtient notre première lanterne.

Portion de code : Tout sélectionner

1
$gameParty.gainItem($dataItems [2],1);



et j'efface l'évènement

Portion de code : Tout sélectionner

1
$gameMap.eraseEvent(3);



Ça fonctionne mais si on sort de la carte et qu'on y retourne la lanterne réapparait sur la table et peut être prise à nouveau :pense

Troisième question

Je veux donné une durée d'utilisation à la lanterne, ça pourrait être un chronomètre, une durée calculé en secondes peu importe. A la fin de celle-ci la lumière doit s'éteindre jusqu'à la prochaine utilisation.
Quelqu'un à une piste ? J'aurais besoin d'un indice sur où cherché.:doute6

Quatrième question

Je voulais vous intégré des captures d'écran mais ça fait tellement longtemps que je n'ai pas été sur un forum que je ne trouve plus comment faire :doute5

Merci d'avance !


Kisth - posté le 15/05/2023 à 07:16:18 (997 messages postés)

❤ 1

Yeoun, mage-archère-louve

Pourquoi tu passes par du code pour ton event lanterne ?
Les blocs commande pour donner un objet à l'équipe, effacer l'event et activer un self-switch (c'est ce qu'il te manque pour ta deuxième question, avec l'ajout d'une page vide) existent.

erase event ne fonctionne pas tout à fait comme on pourrait le penser : cela ne fonctionne que lorsqu'on ne quitte pas la map. Quand on revient sur la map, l'event se réinitialise.


Pour la troisième question, event parallèle, incrémentation de variable, dès que la variable dépasse une valeur, désactivation de la lumière, a priori.
Regarde du côté des tutos de minage ou de jardinage.
T'utilises quoi d'autre comme plugins ?


Quatrième question ; faut déjà trouver un hébergeur fiable...
Puis tu mets l'adresse de ton image entre les balises

Portion de code : Tout sélectionner

1
[img][/img]




Pour la première question, ça fait super longtemps que j'ai pas touché à Terrax Lighting sur MV, et pas du tout touché à son successeur sur MZ. En revanche, certains notetags, selon la façon dont ils sont parsés, sont sensibles aux espaces.
Du coup cl: fire peut fonctionner, mais cl:fire non.
Si ce n'est pas ça, pas d'idée, je ne me souviens plus de la documentation.

M.V.


Mononc Pirate - posté le 15/05/2023 à 23:17:58 (16 messages postés)

❤ 0

Ok merci des conseils !

Présentement je n'utilise que le plugin community_lights-master. Lorsque celui-ci seras bien maitrisé je passerai au suivant. Les prochains sur la liste seront "Visual Fogs" et "Quest journal system". Je veux monté les mécanique avant de trop m'avancé sur la composition des quêtes.

Pour l'instant je fait beaucoup de lecture :D


Roi of the Suisse - posté le 16/05/2023 à 11:46:55 (29810 messages postés) - honor -

❤ 0

Alerte neige !

Question 1

Citation:

L'item reste non consommable

Qu'un item soit consommable ou non, ça se règle dans l'onglet Items (Objets) de la base de données. Il y a une case à cocher généralement.


Comme dit Kitsch, quand tu peux utiliser une commande évènementielle plutôt qu'une ligne de script, préfère ça (quand c'est possible), par exemple la commande pour ajouter un objet à l'équipe.


Question 2

Pour qu'un évènement ne réapparaisse plus jamais sur la carte, il faut faire ainsi :

page 1 de l'évènement (déclenchement par la touche action) :
ajouter l'objet
activer l'interrupteur local A

page 2 de l'évènement (se déclenche par l'interrupteur local A, en processus parallèle) :
supprimer cet évènement


Quand tu reviendras sur la map, l'évent sera à sa page 2, donc l'objet ne sera pas ajouté à nouveau.


Question 3
Tu peux obtenir le temps en script en utilisant :

Portion de code : Tout sélectionner

1
Graphics.frameCount

mais attention : c'est potentiellement un nombre très grand, et tes variables sont peut-être limitées à 999 ! Tu devras donc probablement diviser le frameCount par 60 (le taux FPS de RPG Maker MZ, il me semble) pour travailler avec des nombres moins grands. Peut-être que tu devras faire un modulo 999 aussi, mais il faudra gérer les cas particulier où le chronomètre franchit le modulo ! durée négative d'utilisation de la torche => lui ajouter 999 pour avoir une durée positive.
Ne pas oublier de stocker dans une autre variable le frameCount auquel la torche est allumé, et faire la soustraction pour avoir la durée d'utilisation de la torche (en secondes).

Sur RPG Maker MZ, tu peux accéder à la valeur d'une variable / modifier la valeur d'une variable avec les commandes javascript suivantes :

Portion de code : Tout sélectionner

1
2
$gameVariables.value(id);
$gameVariables.setValue(id, value);



Sinon comme dit Kitsch, un évènement commun en parallèle qui incrémente une variable à chaque frame, qui se réinitialise à 0 au moment où la torche est allumée.
Si mes histoires de modulo ne t'évoquent rien du tout, c'est peut-être la solution la plus simple.

L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Mononc Pirate - posté le 17/05/2023 à 00:37:59 (16 messages postés)

❤ 0

Merci de vos réponses ! J'en ai encore beaucoup à apprendre mais y'à du progrès !

Pourquoi je n'y avais pas pensé, j'ai pris le démo du plugin et fait un peu d'ingénierie inversé :D Ça m'à permis de mieux comprendre comment utilisé le plugin et en même temps j'ai pu mettre la main sur des codes qui fonctionnent que je peut étudier.

J'ai réussi à faire fonctionné la lanterne, me reste plus qu'à trouvé comment l'éteindre. Je vais voir si je peut codé pour compté le nombre de pas, quitte à sortir notepad et ajouté la fonction directement dans le plugin :pense

Citation:

Pour qu'un évènement ne réapparaisse plus jamais sur la carte, il faut faire ainsi :

page 1 de l'évènement (déclenchement par la touche action) :
ajouter l'objet
activer l'interrupteur local A

page 2 de l'évènement (se déclenche par l'interrupteur local A, en processus parallèle) :
supprimer cet évènement



Lorsque je crée une seconde page, la fonction "modifié objet" cesse de fonctionné, y'à une case que je doit oublié de coché :pense

Citation:

Si mes histoires de modulo ne t'évoquent rien du tout, c'est peut-être la solution la plus simple.



Pour l'instant, c'est du chinois :rit2 Mais j'ai fait du modding en C++ et un peu de codage en visual Basic, côté patience je suis bon ! Je commence sur RM et sur Java. C'est pour ça que je travaille vraiment un seul élément à la fois. Lorsque je serais satisfait de ma lanterne, là je passerai au défi suivant ;)

Edit: Bon... je viens de réalisé que mon évènement s'efface le jour et réapparait à la tombé de la nuit :fou3 Avant de corrigé ça, il faut que je trouve comment j'ai fait, ça pourrais être utile :rit2:pense


Kisth - posté le 17/05/2023 à 06:57:58 (997 messages postés)

❤ 0

Yeoun, mage-archère-louve

Tu le sais probablement déjà si tu codes un peu, mais modulo (ou %) c'est juste un mot compliqué pour dire reste de la division euclidienne.

Exemple : 152 ÷ 10 ne tombe pas juste
152 = 10 x 15 + 2
Du coup, 152 % 10 = 2
(et au passage, 152 / 10 = 15)

En général, on s'en sert pour les compteurs (de frames entre autres) pour faire des actions à intervalle précis.
Là il s'en sert pour comparer les restes directement, ce qui ne change (presque) rien à la méthode.

La suite quand j'ai fini de bosser, je ne suis pas sur le bon ordi. Je ne vois pas trop dans quoi Rots s'embarque avec ses précautions, mais c'est sans doute parce que j'ai un truc à vérifier en tête.

M.V.


Roi of the Suisse - posté le 17/05/2023 à 10:30:29 (29810 messages postés) - honor -

❤ 0

Alerte neige !

Mononc Pirate a dit:


Citation:

Pour qu'un évènement ne réapparaisse plus jamais sur la carte, il faut faire ainsi :

page 1 de l'évènement (déclenchement par la touche action) :
ajouter l'objet
activer l'interrupteur local A

page 2 de l'évènement (se déclenche par l'interrupteur local A, en processus parallèle) :
supprimer cet évènement



Lorsque je crée une seconde page, la fonction "modifié objet" cesse de fonctionné, y'à une case que je doit oublié de coché :pense

T'as sûrement oublié l'interrupteur local A nécessaire pour activer la page 2. Tant que l'interrupteur local A est désactivé, il se contentera de la page 1, et ajoutera l'objet.

L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Mononc Pirate - posté le 17/05/2023 à 12:29:22 (16 messages postés)

❤ 0

C'est résolut !

J'allume la lanterne avec le module complémentaire et j'y démarre un chronomètre
Ensuite dans un coin discret de chaque carte, je cache un évènement en parallèle qui éteint la lanterne si le chronomètre est à 0.

Pour le coffre, c'était bien moi qui avait mal compris la différence entre les interrupteurs et les interrupteurs local.

Merci de votre aide !


Roi of the Suisse - posté le 17/05/2023 à 15:31:21 (29810 messages postés) - honor -

❤ 0

Alerte neige !

L'interrupteur local est propre à l'évènement. Chaque évènement a ses interrupteurs locaux A B C D.
Les interrupteurs normaux (numérotés) sont communs à tous les évènements.

L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko

Index du forum > Entraide > [RESOLU] [RM-MZ] Script pour une lanterne

repondre up

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