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

Sorties: Les Chroniques de Katura - TAO (...) / Sorties: Star Trek: Glorious Wolf / Jeux: Pillar Town / Sorties: Dread Mac Farlane - Complet / Sorties: "Dread Mac Farlane", (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

703 connectés actuellement

29891926 visiteurs
depuis l'ouverture

8271 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Maker - La Communauté

Lumen

RPG Maker VX

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RMXP] Lanterne ? Grotte ?


Lambda - posté le 11/12/2013 à 18:26:55 (15 messages postés)

❤ 0

Domaine concerné: Evenement / script
Logiciel utilisé: RMXP
Bonjour,

Je suis en train de faire une grotte. J'ai essayer les événements communs pour faire un système de lampe. Pas très convainquant !

J'ai dans l'idée de faire ceci:
- un script dans lequel il y a un tableau avec les id des maps qui doivent être noircie.
- mettre ces maps à 255 avant la téléportation
- si le joueur possède une lanterne, si on appuie sur "A" du clavier ou "A" du paddle, utiliser une image 960 x 720 px avec un rond blanc au centre en suivant le héros.

Voila, maintenant, je ne sait pas si c'est faisable, j'aimerais bien découvrir déjà comment faire le tableau.

Je pense que la première étape, ça sera de faire un script au dessus de main. Le renommer Gestion_Lanterne.

Créer la lanterne, l'ajouter dans les inventaire (enfin en base de donnée). Je pense qu'un coffre contiendra la lanterne. A voir si je ne vais pas en profiter pour mettre une jauge :)

Il faudra régulièrement acheter des recharges de pétrole. Ce sera une amélioration du script initial.

Voila, je veux bien un peu d'aide la dessus. :grossourire

Merci beaucoup.


Cortez - posté le 11/12/2013 à 21:23:01 (523 messages postés)

❤ 0

Tout ce que tu souhaites est réalisable en event.

1- Avant de téléporter le joueur sur une map "sombre" il suffit de
placer la commande "modifier le ton de la map".

2- Un event commun parallèle pour tester l'appui de la touche A.
Tu te sers alors de pictures afin d'afficher une jauge (que tu crée).
image

3- La jauge doit être lié à une variable qui contient la "quantité"
de pétrole que tu as. Il est aussi possible d'ajouter des icones
près de la jauge afin de dire au joueur combien de baril il lui reste
voire même comme dans un metroid de remplir automatiquement
la jauge si il possède des barils (tout en enlevant 1 baril de l'inven-
taire).
image

Voici en bref ce qu'il faut faire pour que tout fonctionne comme tu
le souhaites SANS script :D


Lambda - posté le 11/12/2013 à 21:45:45 (15 messages postés)

❤ 0

Non, en évenement c'est trop le bord** !

J'ai essayé, et 1 ça ne fonctionne pas comme je le désire.
Je suis bien plus à l'aise avec de la programmation.

Je pense faire cela :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
class LanternPlayer
        
        # INITIALISATION
        def initialize
                @map_black = [005, 006] #Les maps qui seront à noircir
        end
        
        # SELECT
        def  select
                
                # Si le joueur entre dans une des cartes à noircir
                # C'est ici que j'ai besoin d'aide !
        end
end
 



Bon, ok, j'ai mis que la base. Maintenant, il faut que je fasse le test entre le tableau et l'endroit ou est le joueur.

Si quelqu'un à une idée. Je suis prenenur. :grossourire


Cortez - posté le 11/12/2013 à 22:06:54 (523 messages postés)

❤ 0

J'ai édité mon message avec les event tous fait. Ya plus qu'a copier.

Pour quelqu'un qui est à l'aise dans le codage, tu demandes de
l'aide pour ça...
M'enfin c'est pas grave, essaye ma solution et si tu t'en sors pas
là au moins tu auras essayé et tu pourras demander l'aide d'un
scripteur.

Sache aussi qu'un script n'est pas la solution à tout, et que les
scripteurs qui voient ta demande ne répondent sans doute pas à
cause du fait que tu peux le faire par toi-même.


Dyeel - posté le 11/12/2013 à 22:54:05 (200 messages postés)

❤ 0

Cortez a dit:

Sache aussi qu'un script n'est pas la solution à tout, et que les
scripteurs qui voient ta demande ne répondent sans doute pas à
cause du fait que tu peux le faire par toi-même.



C'est vrai. Et ce que tu demandes, Lambda, est réalisable en event.

Après c'est vrai que niveau rendu ce sera pas aussi bien que ce que permettent les scripts.
Après c'est bien de vouloir te lancer dans le ruby avec des idées, mais les idées ça te suffira pas et je doute que "passer une commande" d'un script que tu veux portera ses fruits. Mais je veux en aucun cas te décourager.
Le truc c'est que dans ton script il faut pas juste gérer une map qui va se noircir, mais aussi chaque lumière, son rayon, son intensité, sa position par rapport à l'écran, etc...

Par contre, tu peux jeter un oeil sur ce projet rmxp, le mec qui l'a fait a codé un système de lumière vraiment joli. Si ça peut te donner une piste...

Mais si tu veux commencer le ruby pour coder ton système, commence par la base, tu n'apprendras que mieux ;)

Bon courage!


Lambda - posté le 12/12/2013 à 06:27:32 (15 messages postés)

❤ 0

Oui, bon, alors, vue comme ça j'ai pas été adroit ! En effet !

Non, à l'évent, sauf en dernier recours.

Là ou je pose ma question, en fait j'aurais du dire. Il doit existé une variable pour le player. Je cherche à la répérer dans les scripts et à la tester. Je pourrait afficher à l'écran le contenu de cette variable. Sorte de débug, mais je vais trouver par moi-même !

Ensuite, je pense faire une sorte de scan à tableau. En php c'est un foreach, je cherche l'équivalent en ruby. Mais là encore, à bien y regarder, je vais googoler un peu et ça sera vite trouvé !

Si je comprends bien, du fait de poser une question avec un début de code, c'est qu'on ne sait pas coder. C'est bien malheureux mais ça vous permet de faire le tris. Et c'est parfait !

Merci de votre aide en event, mais là, je n'y songe même plus par ce que ça ne corresponds pas à ma demande. Mais je garde sous le coude au cas ou.

Finalement, le scripting, c'est quand même très sympa. J'aime bien pour le peu que j'ai déjà coder dedans. Il me reste à approfondir.

Ok pour le lien du gars qui a tout coder. Je vais regarder de plus prêt.

Merci. :sonic


Dyeel - posté le 12/12/2013 à 12:46:18 (200 messages postés)

❤ 0

Citation:

Si je comprends bien, du fait de poser une question avec un début de code, c'est qu'on ne sait pas coder.


C'est pas du tout ce que j'ai voulu dire, désolé!

Sous ruby, tu fais un tableau et tu le parcoures comme ceci :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
tab = []
tab2 = [1, 4, 6]
tab3 = [Sprite.new, Sprite.new]
 
for element in tab
 #tes commandes
end
 
for spr in tab3
 #tes commandes pour les sprites par exemple
end
 



Ensuite pour le joueur, il y a la variable $game_player. Tu as les attributs x, y, screen_x, screen_y entre autres.

Tu peux aussi capturer la position de l'écran : $game_map.display_x et display_y ^^

Rubydoc est très complet, et pour les variables de RM et leurs attributs ($game_player par exemple) tu as le fichier d'aide de RMXP qui est vraiment bien !


Lambda - posté le 12/12/2013 à 13:23:42 (15 messages postés)

❤ 0

Effectivement ! C'est ce que j'ai été cherché ce matin sur Stackoverflow

Pour la petite histoire, j'ai retrouvé la trace de cela dans le code du coup. Et c'est là que j'ai compris une chose ! Mon tableau n'étais pas bon.

Ensuite, je pense qu'il manque quelque-chose dans mon code. En effet, rien ne lance la méthode... Du coup, je pense que ça compilera mais qu'il ne se passera rien. Je travaille la dessus maintenant pour faire un code simple, clair, optimisé et propre. :grossourire

Oui, par ce que voila, j'aime le beau code simple à lire et à reproduire. Et plus c'est simple, plus c'est dépanable. C'est le but ! Si en plus ça sert aux autres, c'est que mieux.

Voyons maintenant ce que ça donne dans le code :clindoeil2

Ah voila, je savait bien... Bon, alors j'ai renommé mes maps tel que "Diwa", "Diwa-Grotte-01" et "Diwa-grotte-02". Et là les chiffres ne tiennent plus !

Donc je ais déjà modifier le tableau de sorte que:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
class LanternPlayer
  
  # INITIALISATION
  def initialize
    #Les maps qui seront à noircir
    @tMapBlack = ["Diwa-Grotte-01", "Diwa-Grotte-02"]
    @heroCurrentMap = hero.current_map
  end
  
  # SELECT
  def  select
  
    # Pour chaque valeur de map à noircir
    for @heroCurrentMap in @tMapBlack
      if @heroCurrentMap
        # Eteindre la map
      end
    end
  end
end
 



Bon, il me reste à tester ce que ça donne, ajouter le noircissement. J'espère que je trouverais.


Dyeel - posté le 12/12/2013 à 16:17:07 (200 messages postés)

❤ 0

Je comprends pas bien où tu veux en venir avec ta liste de maps.

Tu as besoin de noircir celle qui est actuellement à l'écran si elle fait partie de ta liste.

Alors plutôt que de rentrer des noms dans un tableau, rentre les ids des maps à noircir et teste en jeu si tu es dans une map dont l'ID est dans le tableau.

Pour obtenir l'ID de la map dans laquelle tu es : $game_map.map_id

Pour tester si c'est dans le tableau, tu utilises @tMapBlack.include?($game_map.map_id)

Puis c'est pour ça que je te disais de commencer par des choses basiques plutôt que par un script de lumières. Pas pour te dire que t'es une bille et que tu sais pas coder, mais pour te dire que tu as des choses à maîtriser avant de te lancer là-dedans.

Une liste rapide :

Portion de code : Tout sélectionner

1
@heroCurrentMap = hero.current_map


C'est quoi le "hero.current_map" ? hero c'est une variable locale que tu n'as pas déclarée.

Portion de code : Tout sélectionner

1
for @heroCurrentMap in @tMapBlack


Tu vas gérer toutes les maps en même temps sans qu'elles soient à l'écran?

Puis c'est bien de créer une classe LanternPlayer, mais tu as créé quelque part une variable qui va l'instancier?

Si tu veux agir sur un éclairage dans une grotte par exemple, ce sera juste un calque sur ta map à l'écran.
Alors va plutôt modifier les scripts Scene_Map ou Spriteset_Map.

Comprends bien que je dis tout ça pour orienter tes recherches et je ne te dénigre pas donc pas de mauvaise interprétation. =)


Lambda - posté le 12/12/2013 à 17:51:51 (15 messages postés)

❤ 0

Oui, c'est justement là ou je voulais en venir ;)

Tu a bien vue sur le fait que j'ai utiliser hero non déclarer pour le moment.

Remarque, j'aurais certainement du me faire un appel de méthode qui me retournais des infos à l'écran. Mais c'est encore possible.

Alors, si je reprends, je casse ce que j'ai fait, en parti. Mais c'est voulue à ce stade. J'aime refaire. Déjà, comment puis-je instancier ma classe ? Oui, là tu va me traité d'abruti. Mais je préfère en passer par là, par petit bon, en sachant exactement ce que je veux faire plutôt que de m'en remettre à du tout fait bêtement.

Et oui, perdu le coup du copier collé et basta. Ce qui m'amuse le plus c'est d'apprendre ! Alors, go, pour l'instanciation.

Je vais devoir créer une def info quelque part. Elle se chargera de me retourner, provisioirement l'id de map sur laquelle on est.

Genre en haut de l'écran un truc du stype:
Id Map : 1
Heros : Nom héros

Je sait, c'est la base. Mais patience, je compte bien apprendre avec ce script et poursuivre ensuite. Mais de grâce, ne te fâche pas :)

Bon, aller, c'est bien par ce que j'aime bien oniro que je vais en parler hein ! Je me suis taper, déjà en c++ des softs et même de l'embarqué. Mais effectivement le Ruby j'apprends. Ya du mal à ça ?

Bref, on papote; j'aime papoter ! Mais j'aime encore plus apprendre et expérimenté, quitte à me tromper et à refaire. :grossourire


Mack - posté le 12/12/2013 à 18:04:03 (2292 messages postés) - staff
Une erreur est survenue, si le problème persiste merci de le signaler à un administateur.

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