Team SO Quest
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Team SO Quest

Voici, le forum, des créations de quêtes pour SO. Participez vous aussi !
 
AccueilDernières imagesRechercherS'enregistrerConnexion
Le Deal du moment : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

 

 [Tutorial-Editeur]Générer des PNJ aléatoirement :

Aller en bas 
AuteurMessage
Invité
Invité




[Tutorial-Editeur]Générer des PNJ aléatoirement : Empty
MessageSujet: [Tutorial-Editeur]Générer des PNJ aléatoirement :   [Tutorial-Editeur]Générer des PNJ aléatoirement : Icon_minitimeDim 30 Mar - 5:13

Dans ce tutorial je vais vous expliquer comment placer aléatoirement un PNJ sur une carte.
Mais pour cela il faudra que nous distinguions deux cas très différents: le premier cas étudié sera celui d'une carte simple où le joueur peut marcher partout, donc le PNJ aussi.
L'autre cas, plus compliqué est celui où le joueur ne peut pas allé partout, il y a par exemple un obstacle qui empêche le joueur d'être sur une certaine case.



Premier Cas :
Dans le premier cas créons une carte simple, par exemple, d'une taille de 10*10.
Sur cette carte placons maintenant notre PNJ à un emplacement initial qui n'importe pas, et le point d'apparition du personnage Test.

Nous obtenons quelque chose de semblable à ceci :
[Vous devez être inscrit et connecté pour voir cette image]

Maintenant occupons-nous de la partie événement de notre PNJ:
J'ai décider pour simplifier les choses que se sera le joueur qui lancera lui même le déplacement du PNJ, en allant appuyer sur la touche action (espace) pour lancer l'événement.
[Vous devez être inscrit et connecté pour voir cette image]

Explication :
Tout d'abord regardons se qu'il se passe dans la partie haute de la page d'événement.
On peut voir 2 choses; la première c'est que j'ai nommé l'événement "PNJ".
Cela va permettre de l'utiliser (ou l'appeler) avec un autre événement.
La seconde chose c'est que j'ai coché la case "Suis le sprite".

Cette case permet d'affecter le même événement que l'actuel sous vos yeux, à l'événement PNJ, même après un déplacement de cet événement sur une autre case :
[Vous devez être inscrit et connecté pour voir cette image]

Ensuite dans CD appuie sur bouton que je n'ai pas besoin de vous expliquer, et dans CE vous pouvez voir les commandes :
"Variable[13]=%rand(10)%+1"
"Variable[14]=%rand(10)%+1"
Ces deux commandes vont permettre de stocker dans la variable 13 une valeur choisie au hasard entre 1 et 11, en effet la commande %rand(X)% choisit au hasard une valeur entre 0 et X, donc ici grâce au " +1 " la valeur du tirage est augmenté de 1, soit "0+1" et "X+1", de même chose pour la variable 14.


Passons maintenant à l'événement en haut à gauche de la carte, un événement automatique.
[Vous devez être inscrit et connecté pour voir cette image]

Dans la première page de cette événement les CD ne sont pas trop compliquées.
En faite on peut traduire l'événement par :
Tant que les variables 13, et 14 n'ont aucune valeur en mémoire il ne se passe rien.

Puis dans le CE vous voyez les commandes :
" %PNJ.CaseX%=Variable[13]-1 "
" %PNJ.CaseY%=Variable[14]-1 "
" Variable[13]=0 "
" Variable[14]=0 "

Vous comprennez maintenant à quoi servent nos deux variables utilisées initialement, elles permettent de définir la case X et la case Y de notre PNJ qui sera automatiquement téléporté à la nouvelle position grâce aux commandes :
%PNJ.CaseX/Y%
J'utilise ici les valeurs d'affectations " -1 ", afin que la position du PNJ respecte les grandeurs de la carte.
En effet comme la carte mesur 10*10 le PNJ ne peut se trouver avec une valeur de X égale à 11, pareil pour Y.

Ensuite je met à zéro les deux variables pour ne pas que l'événement renvoie en boucle le PNJ sur la même position se qui bloquerait le jeu.


Sur la seconde page de l'événement automatique vous ne mettez rien !
Cette page représentant toutes les autres conditions de déclenchement, à savoir si la variable 13 ou/et 14 avaient une valeur différente de 0 que se passerait-il, donc ici rien.



Seconde Partie :

Maintenant placons par exemple sur la case X=7 et Y=7 quelque chose qui normalement empêche le joueur de marcher, sauf un suicidaire ici mais bon ce n'est qu'un exemple...
Voici donc la nouvelle map :
[Vous devez être inscrit et connecté pour voir cette image]

Pour faire ceci vous n'aurez qu'à modifier votre événement automatique, dont voici la nouvelle première page.
[Vous devez être inscrit et connecté pour voir cette image]

Cette nouvelle première page ne ressemble en rien à l'ancienne, mais ne vous hâtez pas de supprimer l'ancienne il faut en effet la garder !
Dans cette nouvelle page nous indiquons à l'événement automatique se qu'il doit se passer lorsque nous déplacons notre PNJ sur la case X=7 et Y=7 repectivement si Variable[13]=7 et Variable[14]=7.
Eh bien, nous relancons un autre tirage eu hasard pour une valeur comprise entre 0 et 10 pour X se qui permettra de placer le PNJ sur une case :
de %PNJ.CaseX%= (valeur comprise entre 0 et 10)
De même sur "l'axe des Y".

Vous vous demandez se qu'est devenu l'ancienne page 1, elle est simplement passé sur la page 2.
Pour faire comme indiqué dans ce tutorial créé une troisième page où vous mettrez les commandes indiquées plus haut puis utiliser le flèche " < " [Vous devez être inscrit et connecté pour voir cette image], pour qu'ainsi votre troisième page passe première et décale toutes les autres.

Pourquoi faire ceci ?
C'est simple : Les événements sont lu page par page, on teste en faite si l'une des pages correspond à notre cas.
Ici si on n'avait gardé en page 1 l'ancienne page (1) l'événement ne serait jamais passé à la page 3 notre nouvelle page, puisque la première page fonctionne.
En procédant ainsi la première page est toujours vérifiée, et si Variable[13]=7 et Variable[14]=7
l'événement execute la page sinon il il execute la suivant.

Pour vos test vous pouvez faire en sorte de forcer le PNJ à allé sur les cases non voulu en faisant sur l'événement PNJ qu'en appuyant sur la touche action, Variable[13]=7, et Variable[14]=7.


Si vous avez la moindre question n'ésitez pas !
a++
Revenir en haut Aller en bas
Invité
Invité




[Tutorial-Editeur]Générer des PNJ aléatoirement : Empty
MessageSujet: Re: [Tutorial-Editeur]Générer des PNJ aléatoirement :   [Tutorial-Editeur]Générer des PNJ aléatoirement : Icon_minitimeDim 30 Mar - 9:20

Merci beaucoup c'est très bien expliquer et je pense que ça servira a pas mal de personne ^^
Revenir en haut Aller en bas
 
[Tutorial-Editeur]Générer des PNJ aléatoirement :
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Tutorial-Editeur] Faire une cinématique :
» [Tutorial-Editeur] Meilleur chasseur et compteur de victimes
» FAQ de l'éditeur :
» Aide pour l'éditeur
» Demande de tutorial

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Team SO Quest :: Accueil :: ♣ Organisation ; Règles & Cie :: ♠ Questions & Suggestions-
Sauter vers: