Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
Posté le: 04/12/11 14:28 Sujet du message: Slide of Renewal
Bien le bonjour à tous, bienvenu dans mon topic.
I-Le slide.
Tout d'abord, le slide qu'est-ce que c'est ?
Et bien le slide est un jeu dans lequel, on contrôle un héros, généralement un dh, et on doit avec traverser plusieurs levels dans lesquels on "slide" en esquivant des "patrols" (des monstres qui exécutent des patrols, on appelle ça aussi mob). Il ne faut pas sortir du chemin, sinon no meurt. Le but est de terminer tout les levels.
II-Les composés commun à tout slide.
1) le trigger de slide.
Le trigger de slide est extrêmement complexe, il doit permettre de donner l'illusion au joueur de glisser et de pouvoir tourner seulement sur un path spécifique. C'est la magie du truc, et lorsqu'on n'est pas mappeur on croit après que c'est la glace qui a réellement une propriété de glisse
Bref, j'ai utilisé pour ça la fonction SetUnitX/Y. Un trigger par joueur, elle utilise l'angle de l'unité afin de la téléporté à courte distance et à grande fréquence devant elle.
Un autre trigger permet de faire tourner le héros. Il est cette fois ci commun à tout les joueurs, à chaque clique il change le facing unit du héros du joueur qui a cliqué, et permet avec le premier trigger de simuler un virage parfaitement fluide.
2) Le checkpath
En réalité, ce trigger n'est pas présent dans toutes les maps. Il existe d'innombrable façon de faire slider une unité, et en générale les gens utilise un système de région on/off avec un seul trigger pour tout les joueurs. Je n'aime pas trop, en plus ça provoque du delay... et pour tuer les héros sortant du slide, ils mettent des régions sur tout les bords... monstrueusement imprécie.... enfin il y a différente religion la dessus.
J'utilise personnellement, un système de checkpath. 1 trigger par joueur, il prend à grande fréquence la position de l'unité, vérifie ensuite si le type de path sur sa position est slide_path, death_path ou walk_path. En fonction de ce que c'est, il va turn on/off le trigger de slide.
Le désavantage, c'est que ça fait beaucoup de trigger marchant à grande fréquence, et certains disent que ça crée du lag (calomnie, en tout cas on ne le ressent pas)
Le seul défaut serait que l'on ne peut pas régler manuellement la tolérance du death path (c'est à dire si on peut déborder un peu ou non). d'où mon choix particulier de path.
3) différents paths, différents mobs.
Dans chaque map de slide, il existe au moins 3 types de paths. Chaque path a une propriété différente, et on le remarque avec le check path.
certain, à peine effleurer, font que ton héros a changé de path et te tuent. J'ai supposé que c'était du au côté graphique, en fonction de si un path superpose un autre... enfin rien de très intéressant, il faut juste savoir choisir en fonction de ce qu'on veut.
personnellement, j'en ai choisi un très tolérant :
-briques runiques pour walk path ;
-tuile de brique pour death path ;
-glace noire pour slide path.
l'intérêt est que le slide path, au contact de ce death path, a un contour différent. on voit donc mieux l'endroit précis où on va mourir.
4) système de life.
Pas indispensable, mais tout les slides utilisent des lifes quand même.
Le principe dans ma map, est qu'on a un certains nombre de life au départ, et on en gagne parfois en réussissant certains levels, ou certains bonus.
Quand tout les héros meurent, on perd une life et on résu au début du level en cour.
5) système de résurrection.
Indispensable, sans ça à chaque changement de lvl les héros ne respawneraient pas. (idem lorsqu'on perd une life).
Le principe, est qu'à chaque mort d'un héros, on retire le héros du groupe heros vivant et on turn off son trigger de check path, et de slide.
lorsque le nombre de heros dans le groupe heros_alive est égale à 0, on réssucite les héros et on les respawn à l'endroit voulu. on remet les héros dans le groupe, et on réactive checkpath.
Si un héros fini un lvl, on tue tout les héros encore en vie, et on les ressuscite tous au level suivant. même principe quand ils meurent.
Pour le moment mon système est bancale, je l'ai fait il y a longtemps en gui, il sera bientôt refait plus intelligemment, de plus qu'il bug actuellement donc bon...
II-) D'autres triggers personnel.
1) player in game ou pas.
afin d'optimiser ma map, je check au l'initialisation quels sont les players in game. Je crée un groupe avec eux dedans, et les actions sont uniquement exécutées pour eux. les checkpaths notamment, sont uniquement turn on pour les joueurs in game.
Une mise à jour est faite à chaque leave d'un joueur, et surtout, si le joueur appelé game master, celui qui peut utiliser les commandes tel "-kill" ou "-kick", celui ci change, et on passe au prochain joueur dans l'ordre de numéro de player in game.
Mon système actuel bug, encor eune fois il a été fait en gui il y a longtemps, et sera refait bientôt en jass.
2) Toutes autres idées optionnelles.
Voici la liste des idées optionnelles que je ferais dans ma map, afin de rajouter du "fun" et de la "surprise".
des "jumps" : Fait décoller le héros. (pas fait)
des transporteurs : transporte le héros, il faut faire attention aux monstre sur son chemin et le prendre au bon moment. (en cour, quelques bugs)
des trajectoires de units "fun" : restera à définir. (pas fait)
sort de projectile : on tire droit devant soi (facing unit) un projectil pouvant tuer un héros. (pas fait)
système de teamwork : quand on meurt, on peut être sauvé par un allié si il passe sur notre lieu de mort (marqué par un cercle) (pas fait)
levels bonus : ils resteront à déterminer, j'ai beaucoup d'idée et rien n'a encore été fait.
III- Les fonctions jass personnalisées.
1) Les patrols
Dans un slide, on a besoin de faire quelques centaines de patrols, et il y a un certains nombres d'action à exécuter en plus. C'est donc vachement long à faire, mais quelqu'un a eu l'idée de mettre tout ça dans une fonction et de presque automatiser la chose. La fonction prend un type unit et 2 régions, et nous crée une patrol.
L'idée est de supprimer le groupe de patrol créé lors d'un level à la fin de celui ci. ça évite qu'il y est trop de patrol en simultanée.
2) Le cercle
Comme vous l'avez vu, je m'adonne au jass et je trouve ça super pratique pour les mouvements automatisés d'unité que je veux faire.
Tout d'abord, je suis en train de créer une fonction me permettant de faire se déplacer une unité en cercle, en ayant juste à définir comme paramètre une unité et un rayon.
J'ai un peu de mal, j'aurais besoin d'un peu d'aide. Des bugs non résolus persistent.
3) Un allée retour
J'ai aussi décidé de faire une unité qui se déplacera en allée retour, mais pas en patrol, car j'en ai besoin pour un transporteur et il faut pas qu'il se dérithme.
Il prend uniquement une unité et une région recouvrant la totalité du parcour.
Encore une fois, ça bug. J'aurais aussi besoin d'aide.
4) généralisation de tout les déplacements en fonction mathématique
C'est en cour, c'est facile à faire, je suis en train de créer une fonction qui me permettra, en donnant juste une unité, une fonction mathématique et 2 régions, de créer perpétuellement une unité qui exécutera le déplacement sous la forme souhaitée.
5) création d'unité pour les déplacements spéciaux.
Comme je vous ai dit, les unités doivent être remove à la fin d'un lvl, et on les met toutes dans un même groupe afin de pouvoir le faire. J'aimerais donc, créer une fonction me permettant de créer une unité à un endroit voulu, spécialement pour être utilisé par un de mes déplacements automatisés.
Je manque de connaissance en un point pour le faire encore, car je ne sais pas utilisé le CreateTrigger.
6) Les commandes
Les commandes ne sont pas toutes indispensable, en général on retrouve :
-kill <color> ou -kl
-kick <color> ou -kc
-cameraField <value> ou -cf
voici la description des commandes actuellement faite :
le kill : utilisable uniquement par le game master, c'est à dire le joueur possédant le slot avec le plus petit numéro. Il kill le héros désigné. On l'utilise avec la couleur de la personne ciblé.
Si aucune personne n'est ciblé, c'est l'utilisateur qui voit son héros kill. et tout le monde peut l'utiliser de cette façon.
le kick : même principe que le kill, sauf qu'il kick le joueur de la partie.
Encor eune fois, l'utiliser sans cible kick l'utilisateur, et c'est utilisable par tous.
le cameraField : Cette commande règlera le zoom de la caméra. en fonction du chiffre rentré, le zoom sera plus ou moins important.
Utilisable par tous.
le afk : Cette commande est à utilisé lorsqu'un joueur doit afk. On doit suivre cette commande par le paramètre on/off en fonction de si on part ou on revient.
-en on : Elle s'occupera pour vous de share tout les joueurs de la game, qu'ils puissent ainsi profiter de votre absence.
-en off : elle retirera le share.
le changement de couleur : tout est dans le nom, on écrit - suivi du nom de la couleur visée et ça change celle du héros.
on peut aussi écrire le nom de la couleur par son raccourcie.
le invis : il va modifier la visibilité du héros, 0 = invis et 100 = visible. on peut aussi ne mettre aucune valeur, ça équivaut à 0.
le aoa : ça permet de modifier l'angle d'attaque de la caméra. même action que la molette de la souri, en plus précis, sans modification de zoom.
comme repère, je peux dire que 270° c'est l'angle plat.
le apm : on le retrouve sur les bots des joueurs de bnet, cette action va vous donner votre nombre de clic depuis le début de la game sur la glace, mais également le temps que vous avez passé dessus, et la division des deux votre apm, c'est à dire le nombre d'action moyen par minute.
le paramètre "a" ou "all" permet d'afficher celui des autres joueurs en plus du votre. vous pouvez ne rien mettre, et ainsi afficher uniquement votre apm.
raccourcie des couleurs :
red => rd
blue => be
teal => tl
purple => pe
orange => oe
yellow => yw
green => gn
pink => pk
gray => gy
lightblue => lb
drakgreen => dg
voici actuellement la liste de commande faite :
-kill/-kl <color>
-kick/-kc <color>
-cameraField/-cf <value>
-afk on/off
-<color>
-invis <value>
-aoa/angleOfAttack <value>
-apm/actionPerMinut a/all
7) les jumps et transporteurs
j'ai décidé, à défaut de ne plus avoir de place pour de nouveaux path, d'utiliser des units qui m'activeront les jumps et les transporteurs.
les transporteurs sont généralement représentés par des cercles de puissance, je en diffère pas de cette norme.
quand le héros entre en contact avec celui ci, il est alors locké sur sa position (celle au cercle) et suit ce cercle jusqu'à ce qu'il clique sur esc.
les jumps seront aussi des units, mais sans modèle on ne verra qu'une ombre sur la map (temporaire, je sais pas encore quoi mettre). ils feront décoler le héros sur une certaine distance et hauteur.
afin de pas m'emmerder plus que de placer une unité sur la carte, j'ai créé un checkunit (comme le checkpath mais avec des unités) qui différencie quelle unité je croise. si s't'un transporteur, j'active la fonction de transport, idem avec le jump.
Inscrit le: 11 Fév 2011 Messages: 2151 Sujets: 114 Spécialité en worldedit: Chasser le Dragon, puis l'exterminer proprement avec une petite cuillère et une poêle.
Posté le: 30/01/12 11:47 Sujet du message:
Moi, je dirais plutôt pendant les vacances de février (et encore, avec de la chance), car vu les tests qu'on a fait, entre hier aucune script de la map marchait correctement, et aujourd'hui la map fait un fatal error dès qu'on la sélectionnes dans la liste de maps. _________________
Inscrit le: 11 Mar 2011 Messages: 245 Sujets: 9 Spécialité en worldedit: rien... j'apprends
Posté le: 30/01/12 16:28 Sujet du message:
Citation:
... j'ai un p'tit problème avec ma map, je peux pas la tester.
j'utilise jngp, il faut savoir que la fonction tester dessus n'a jamais marché.
j'enregistre, je vais sur war3 pour tester, et soit j'ai fatal error en cliquant sur ma map, soit je ne peux pas l'ouvrir.
sur bnet, vlad a eu fatal error en l'ouvrant -_-"
c'est pas la première fois que ça me le fait, j'aimerais que ça soit la dernière. d'habitude en créant un nouveau fichier de sauvegarde, en quittant jngp avant de lancer war3 ça marche, mais pas cette fois ci.
quelqu'un a une idée ?
merci
Tu es sûr que la carte marche parfaitement ? _________________
Inscrit le: 13 Jan 2009 Messages: 550 Sujets: 47 Spécialité en worldedit: La partie déclencheurs sauf le GUI.
Posté le: 31/01/12 16:51 Sujet du message:
fulldragon a écrit:
Le trigger de slide est extrêmement complexe
Faut pas trop pousser mémé dans les orties non plus
fulldragon a écrit:
Si un héros fini un lvl, on tue tout les héros encore en vie, et on les ressuscite tous au level suivant. même principe quand ils meurent.
Que de sadisme, les tuer pour les ressusciter encore et encore ! On se croirait dans stargate avec leur technique de torture avec le sarcophage.
fulldragon a écrit:
Dans un slide, on a besoin de faire quelques centaines de patrols, et il y a un certains nombres d'action à exécuter en plus. C'est donc vachement long à faire, mais quelqu'un a eu l'idée de mettre tout ça dans une fonction et de presque automatiser la chose. La fonction prend un type unit et 2 régions, et nous crée une patrol.
Ah ? C'est qui ?
Bon en tous cas c'est cool de te voir dispo est motivé après tout ce temps pour mon retour. _________________
Inscrit le: 11 Fév 2011 Messages: 2151 Sujets: 114 Spécialité en worldedit: Chasser le Dragon, puis l'exterminer proprement avec une petite cuillère et une poêle.
Posté le: 31/01/12 18:29 Sujet du message:
fulldragon a écrit:
bon c'est décidé si j'veux pouvoir jouer avec vous va d'abord falloir que j'progresse !
Ou pas ^^
On joue déjà tous avec toi, sauf que tu n'est pas dans la même équipe que nous en fait.
Sinon, en reprenant un de tes posts d'il y a longtemps :
La prophétie disait donc vrai : Quand le codeur de slides reviendra, le dragon sera abattu.
Et bon, de toute façon, il faudrait que t'apprennes beaucoup de choses pour surprendre max... _________________
Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
Posté le: 11/02/12 12:26 Sujet du message:
et voila, première map sorti (version très baclé, comme j'l'ai dit c'est un premier test. et pi j'en ai un peu marre de bosser dessus, on verra dans quelques mois j'la reprendrais p't'être) _________________
22:27:43<Seiraw> Bah y a deux genre de personnes
22:27:57<Seiraw> les soumis et les soumises
Toutes les heures sont au format GMT + 1 Heure Aller à la page 1, 2, 3, 4, 5, 6Suivante
Page 1 sur 6
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum