RMEx
RMEx

Community

Le Deal du moment : -21%
LEGO® Icons 10329 Les Plantes Miniatures, ...
Voir le deal
39.59 €

Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

Entrainement pour RME/Script

Voir le sujet précédent Voir le sujet suivant Aller en bas  Message [Page 1 sur 1]

Celestiel


Un peu différent des ateliers classiques. Je propose de regrouper, dans ce sujet divers, petits énoncés pour permettre à ceux qui veulent s’entraîner avec RME de pratiquer.

Le glaçon

Le problème de la glace, c'est qu'elle fond...
Créer un événement détruisant un objet lorsque certaines conditions sont remplies.
Exemple de condition: écoulement du temps, se trouver dans une région,...

Le superficiel

Quoi que l'on puisse dire l’apparence a toujours un rôle plus ou moins important.
Créer un PNJ accordant de l’intérêt au héros uniquement si il porte sur lui des équipements dont le prix est supérieure a une certaine somme.

Entrainement Pokémon

Les hautes herbes cache souvent de nombreuses surprises.
Dissimuler le héros lorsqu'il entre dans des hautes herbes.

Saut de l'ombre

Permettre au héros de se téléporté depuis et vers n'importe qu'elle zone d'ombre.

Aléatoire I : Coffre

Crée des coffres dont les loots sont aléatoire.
supplement: securité contre le try&retry devant le coffre

Aléatoire II : Les ressources

Faire apparaitre des ressources sur la map. les resources doivent apparaitre dans des endroit cohérant, ne pas bloquer le chemin, persister avec le changement de map, se regenerer, et avoir une limite maximun facilement modifiable.

Aléatoire III : 7 Boule de crystal

Certaine chose sont plus rare que d'autre, comme les 7 boules de cristal .
Structure une méthode d'ajout d'objet pour gérer des objets en édition limité avec l'aléatoire.

Combat I : Instinct

Crée une aptitude prévenant le personnage d’éventuels ennemis invisibles.

Combat II : Pyromanie

crée une compétence passive, qui augmente les dégâts de feu infligé uniquement si sous l'effet d'une altération d’état Brulure.

Participation

Ergo:Le superficiel
Ulis:Le superficiel
Ulis: Le glaçon



Dernière édition par Celestiel le Jeu 4 Juin - 21:09, édité 8 fois

Ergo

Ergo

Le superficiel

Je trouve cet exercice très intéressant! Merci ! Après avoir dit des bétises avec Ulis, Cantarelle et Ely...quelquechose (+ Chevalier Noir), j'ai décidé de tenter de participer à l'atelier de Celestiel !

Voici le rendu :
Entrainement  pour RME/Script Rmeatelier-4b4b75d

Je me suis fortement aidé de ce tutoriel : Wiki de RME

J'utilise un événement commun pour calculer facilement le total des équipements :

CommonEvent - Calc-equip-sum
| > Commentaire : /!\ place le coût total de l'équipement dans la variable globale 999
| > Commentaire : -
| > Commentaire : Calcul du coût des armures
| > Appeler Script : V[999] = 0
| > Appeler Script : SV[2] = actor_armors(1)
| > Appeler Script : SV[3] = 0
| > Appeler Script : SV[4] = length(SV[2])
| > Boucle
| >| > Condition : Script : SV[3] == SV[4]
| >| >| > Sortir de la Boucle
| >| >| >
| >| > Fin - Condition
| >| > Appeler Script : V[999] += armor_price(SV[2][SV[3]])
| >| > Appeler Script : SV[3] += 1
| >| >
| > Fin - Boucle
| > Commentaire : -
| > Commentaire : Calcul du coût des Armes
| > Appeler Script : SV[2] = actor_weapons(1)
| > Appeler Script : SV[3] = 0
| > Appeler Script : SV[4] = length(SV[2])
| > Boucle
| >| > Condition : Script : SV[3] == SV[4]
| >| >| > Sortir de la Boucle
| >| >| >
| >| > Fin - Condition
| >| > Appeler Script : V[999] += weapon_price(SV[2][SV[3]])
| >| > Appeler Script : SV[3] += 1
| >| >
| > Fin - Boucle
| > Commentaire : -
| > Commentaire : Calcul du coût de l'accessoire
| > Condition : Script : actor_accessory(1) > 0
| >| > Appeler Script : V[999] += item_price(actor_accessory(1))
| >| >
| > Fin - Condition
| >
Ensuite je peux faire ça  (ici c'est l'événement de la fille !)

Event - EV003
| > Appeler Événement Commun : [Calc-equip-sum]
| > Condition : Variable [0999] >= 5000
| >| > Message : Ø, Ø, Normal, Haut
| >| > Message : Oh ! Tu es parfaitement mon type !
| >| > Afficher une émoticône : Cible - Cet événement, Coeur
| >| >
| > Sinon
| >| > Message : Ø, Ø, Normal, Haut
| >| > Message : Désolé, tu n'es pas assez bien équipé pour  
| >| > Message : me plaire... (ton équipement ne vaut que \V[999])
| >| >
| > Fin - Condition
| >
Voila Smile

Pour le glaçon

Je ne sais pas trop quoi faire... Il me semble que les Déclencheurs personnalisés suffisent simplement à réaliser cet atelier ? Qu'en dis-tu Celestiel?

Celestiel


Ergo: Le superficiel

Code:
actor_armors(ID)
Une petite remarque sur la commande: l’accessoire est aussi une armure du coup tu ajoutes deux fois la valeur de l’accessoire.

Ergo: Le glaçon

En effet, un simple déclencheur personnalisé suffit, ces exercices n'ont pas seulement pour objectif de servir d'entrainement à RME mais aussi de montrer des exemples d'utilisation diverse pour donner un peu plus de de vie au jeu. Il y a de nombreuse possibilité très courte a réalisées qui peuvent toute avoir des impacts différant sur le jeu. la première étape pour réellement commencer cet le glaçon est de se fixer une condition et un contexte dans lequel, le glaçon disparait.



Dernière édition par Celestiel le Jeu 4 Juin - 20:01, édité 2 fois

Ergo

Ergo
Merci, j'ai corrigé

Ulis

Ulis
Celestiel, j'ai fait ça pour le superficiel :

Code:

beauty = 0
(0..4).each do |slot|
   if $game_actors[$game_party.leader.id].equips[slot]
    beauty += $game_actors[$game_party.leader.id].equips[slot].price
  end
end
$game_message.add(beauty >= 5000 ? "Bonjour !" : "Dégage !")

Placé dans l'event du superficiel, la fin simule une réponse. S'il doit y avoir plus de 5 slots d'équipement, je veux bien rechercher comment faire.

Merci à ma triche.

Ergo

Ergo
Yo. Je pense répondre en deux points.

A propos de ta participation
Je trouve ça hors propos de répondre avec une solution "full" script et je trouve qu'il faudrait éventuellement une section destiné aux snippets de code.

A propos de ta proposition
N'hésite pas à regarder "Array#sum". et mieux vaudrait modifier un interrupteur que d'ajouter directement le message.

Ulis

Ulis
Ergo, mes exercices sont en ruby, j'y réponds en ruby dans le but de partager quelque chose et d'animer le sujet. sum n'existe pas : / Pour le suivant, je le fais dans les deux versions :

Glaçon :

sans RME (+une variante)
https://2img.net/image.noelshack.com/fichiers/2015/23/1433255585-glace.png



avec RME
Code:
items_possessed.each do |id|
  give_item(id,-item_count(id)) if item_name(id)== "glaçon"
end

La condition en dialogue, c'est le minimum, je me suis intéressée à la partie faire disparaître les glaçons. Pour le ruby, je fais disparaître le maximum car je n'ai pas trouvé comment rendre égale à 0 une quantité d'item.

Pour le RME, je retire le nombre existant, comme la documentation rassemble tout sur les objets dans une page, la partie de recherche désagréable disparaît : )

Celestiel


Ulis: Le superficiel

Code:
beauty = 0
(0..4).each do |slot|
   if $game_actors[$game_party.leader.id].equips[slot]
    beauty += $game_actors[$game_party.leader.id].equips[slot].price
  end
end
each peux être utiliser directement sur le tableau, mais le tableau d’équipement contient des case vide.
compact permet d'obtenir le tableau sans les valeurs nil (case vide)
Code:

  beauty = 0
  $game_actors[$game_party.leader.id].equips.compact.each do |equip|
  beauty += equip.price
end
arr.reduce(memo){|memo , elt| code }
mémo est la valeur de départ
elt un élément du tableau
pour chaque élément elt

si arr contient des entiers

Code:
arr.reduce(:+)
Code:
arr.reduce(0){ |memo,elt| memo+elt}
pour chaque élément de array elt va être ajouté a mémo.

si arr contient des objets

Code:
arr.reduce(0){ |memo,elt| memo+elt.variable}
pour chaque élément de array la valeur contenue dans elt.variable va être ajouté a mémo.
Code:
beauty = $game_actors[$game_party.leader.id].equips.compact.reduce(0){|s,equip| s+equip.price}

Ulis: Le glaçon

Pas grand chose a dire

Ajout

Entrainement Pokémon
Saut de l'ombre
Aléatoire I : Coffre
Aléatoire II : Les ressources
Aléatoire III : 7 Boule de crystal
Combat I : Instinct
Combat II : Pyromanie

Ellyalael

Ellyalael
Voici ce que j'ai fait pour le coffre.
Code:
CommonEvent - butin
| > Opération : Variable [0016:niveau] = [Zeld] : Niveau
| > Déplacer évènement : Cet événement (Attendre la fin)
| > Déplacer évènement  : > Direction fixe OFF
| > Déplacer évènement  : > Regarde vers la Gauche
| > Déplacer évènement  : > Attendre : 3 Frames
| > Déplacer évènement  : > Regarde vers la Droite
| > Déplacer évènement  : > Attendre : 3 Frames
| > Opération : Interrupteur local A = Activé
| > Opération : Variable [0015:butin] = (valeur aléatoire entre 1 et 5)
| > Condition : Variable [0015:butin] == 1
| > | > Modifier Objet : [Potion] + 1
| > | >
| > Sinon
| > | >
| > Fin - Condition
| > Condition : Variable [0015:butin] == 2
| > | > Modifier Objet : [Éther] + 1
| > | >
| > Fin - Condition
| > Condition : Variable [0015:butin] == 3
| > | > Modifier Objet : [Queue de phénix] + 1
| > | >
| > Fin - Condition
| > Condition : Variable [0015:butin] == 4
| > | > Modifier Objet : [Antidote] + 1
| > | >
| > Fin - Condition
| > Condition : Variable [0015:butin] == 5
| > | > Modifier Objet : [Élixir] + 1
| > | >
| > Fin - Condition
| >
Et pour un coffre avec un nombre aléatoire d'argent.
Code:
CommonEvent - coffre
| > Déplacer évènement : Cet événement (Attendre la fin)
| > Déplacer évènement  : > Direction fixe OFF
| > Déplacer évènement  : > Regarde vers la Gauche
| > Déplacer évènement  : > Attendre : 3 Frames
| > Déplacer évènement  : > Regarde vers la Droite
| > Déplacer évènement  : > Attendre : 3 Frames
| > Opération : Interrupteur local A = Activé
| > Opération : Variable [0012:coffre] = (valeur aléatoire entre 1 et 5000)
| > Modifier Argent : + Variable [0012:coffre]
| > Message :  Ø, Ø, Normal, Haut
| > Message  :  \V[12]Argent obtenus !
| >

Voilà Very Happy

tfkmaster

tfkmaster
Sympa d'avoir une série d'ateliers Razz

Pour ma part, j'essaye de faire un projet qui regroupe le plus d'ateliers proposé ici, histoire d'avoir quelque chose d'assez regroupé (et pas des morceaux d'atelier un peu partout comme j'ai l'habitude de faire :v )

Progression Ateliers
  • Le Glaçon (En partie)
  • Superficiel (Fait)
  • Coffre aléatoire avec poids (Fait)
Explications Ateliers:
Hésitez pas à faire un retour sur mes scripts (tout pourris), y'a pas de petits profits Razz
Ci-dessous vous trouverez une archive contenant le projet RPG Maker VXACE, avec tout les ateliers que j'ai fait (et en bonus, vous pouvez être simple spectateur, tout est jouable Very Happy)
Download Project Archive (Last Update : 20.07.15 02:21)

EventreurDeLycans


Quelques choses que je n'ai pas saisi à propos de "l'Aléatoire II" : faut-il comprendre le terme de "ressources" comme désignant l'élément graphique au sens de celui utilisé en mapping, donc directement inclu dans la map, ou comme n'importe quel élément affiché en événement ?
De même, qu'est-il question lorsqu'il s'agit de "se régénérer" ?

Joke

Joke
Admin
Je pense qu'il s'agit de ressources dans le sens "collectable", comme des fleurs, des champignons, du bois, des pierres, des objets qu'on peut ramasser, et qui mettront un certain temps avant de réapparaître au même endroit ou ailleurs. (donc se régénérer)

13Entrainement  pour RME/Script Empty

Contenu sponsorisé


Voir le sujet précédent Voir le sujet suivant Revenir en haut  Message [Page 1 sur 1]

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum