Clan SliD Index du Forum
Clan SliD Index du ForumFAQRechercherS’enregistrerConnexion

Création de slide (non terminé)
Aller à la page: 1, 2  >
 
Poster un nouveau sujet   Répondre au sujet    Clan SliD Index du Forum -> Worldedit -> Tutorials
Sujet précédent :: Sujet suivant  
Auteur Message
MaiNGueT
Membres
Membres

Hors ligne

Inscrit le: 17 Déc 2010
Messages: 868
Localisation: Paris
Masculin
Point(s): 9

MessagePosté le: 18/12/2010, 14:45    Sujet du message: Création de slide (non terminé) Répondre en citant


Bonjour à tous, le but de ce tutoriel est de vous apprendre à créer un slide "potable" pouvant permettre de... slider comme un naab et de se planter a chaque coin du path slide/death. Mort de Rire: .





-1: Présentation du slide et de son mode de fonctionnement


Note: J'utiliserais "Easy slide escape" comme référence pour les exemples.


Le slide que vous voyez tous les jours, c'est à dire en général un Demon Hunter "glissant" sur de la glace n'est autre que la face supérieure de l'iceberg.
La face inérieure étant...
            Beaucoup plus légère?

Non non au contraire... Elle est beaucoup mais beaucoup plus lourde. Vous voyez, rien que pour le(s) trigger de slide et celui du terrain "assassin" eh bien il y en a pour entre 150 et 200 lignes.(Ce qui fait beaucoup je vous l'accorde.) Par exemple, je ne sais pas si vous avez remarqué dans "Easy slide escape" (by Maximaxou) les quelques triggers de slide. D'accord, vous me direz: Ce sont tous des doublons, mais quand même, ça donne de quoi avoir du compost pour les plantes.

Dans le cas de easy slide par exemple, chaque joueur possède son propre trigger de slide (pour éviter d'éventuellement en surcharger un et perdre certains évenements) qui permet d'avoir une plus grande flexibilité. Pour le trigger de "death" je pense que tout le monde ayant un minimum de capacitées en Jass voir même en GUI"!" pourrait le faire tout seul.

En shématisant le tout,

                       - sur terrain slide ==> lancer le trigger slide correspondant au joueur
Personnage:     - sur terrain death ==> lancer le trigger death correspondant au joueur et eventuellement désactivr le trigger slide correspondant.
                       - sur terrain "walk" ==> rien enfin si, désactiver si activé le trigger de slide correspondant au joueur.



Maintenant, passons au trigger de slide:[connaissances en radians nécesaires]


Vous saurez que pour trouver un point x dans un cercle trigonométrique par rapport à un angle choisi (en radian) on observe l'égalitée suivante:

cos(Ax)=x | Où Ax est l'angle et x le résultat.

On peut procéder de même par rapport à une valeur y (sur l'axe des ordonnées) tel que:

sin(Ay)=y | Où Ay est l'angle et y le résultat.


Et si l'on observe maintenant la distance par rapport à l'origine?

Nous allons pour celà utiliser le théorème de Pythagore:

Soit A l'angle, ox=cos(A), oy=sin(A) et R le résultat

sqrt(cos²(A)+sin²(A))=R
sqrt(1)=R
1=R

Ainsi, la distance d'un point issu du cosinus et du sinus d'un même angle sera toujours à une distance de 1 du centre.

Et si l'on multiplie ce résultat par le déplacement que nous voulons faire effectuer à notre unité par cycle d'utilisation?

Soit,

sqrt(cos²(A)+sin²(A))xdeplacement
1xdeplacement
deplacement

Donc, quels que soit l'angle choisi, elle se déplacera toujours de la distance choisie!

Soit, il ne reste à ajouterindividellement à la valeur en abscisse et en ordonnée du résultat a position initiale de l'unitée:

Soit Bx la valeur x de base, By la valeur y de base, dep la coefficient de déplacement, A l'angle, Fx la valeur finale de x et Fy la valeur finale de y.

Bx+cos(A)*dep=Fx
By+cos(A)*dep=Fy

Et nous obtenons ainsi le nouveau point décale exactement come il le faut par rapport au point de base.

Soit: (C sera le coefficient)

function Slide takes nothing returns nothing

local integer i=0
local unit u=udg_hero_j[i] //l'unité que vous allez déplacer (variable de type unité à déploiement pour chaque unité à déplacer (dans ce cas))
local real A=Deg2Rad(GetUnitFacing(u)) // on récupère l'angle
local real x=GetUnitX(u) // on récupère la valeur en x de l'unité
local real y=GetUnitY(u) // de même pour la valeur en y

call SetUnitX(u, x+cos(A)*C)
call SetUnitY(u, y+sin(A)*C)

endfunction

Ps: Voici un repère des valeurs en radians des angles. Merci Winnertony.




Maintenant, passons au sympathique: les monstres:

"mVoyez", un slide c'est bien avec les triggers de slide et de death mais... pensez pas que c'est mieux avec les monstres "mvoyez"?

Voila un point important a éclaircir. Ou vous êtes un connaisseur du jass et créez vos fonctions permettant d'automatiser la création de monstres (voir Easy Slide), ou vous vous acharnez à recopier les ordres sur l'interface Gui... "s'en va chercher un dico sur le Jass"



    // Bon allez on va dire que je suis dans un jour de bonne humeur: Prenez vos crayons
 
function CreateMonster takes integer monsterTypeId
, rect r1, rect r2 returns nothing  //ce que prend la fonction et retourne (ici elle prend l'id du type unité du monstre, deux régions et ne retourne rien)

    local unit monster = CreateUnit( Player( 12 ),
monsterTypeId, GetRectCenterX( r1 ), GetRectCenterY( r1 ), 0 ) // création de l'unité "monster" du type "monsterTypeId" à la région n°1
   
call IssuePointOrder( monster, "patrol", GetRectCenterX( r2 ), GetRectCenterY( r2 ) ) // ordre de patrouille à l'unité "monster" jusque la région n°2
    set monster = null

endfunction



Vous voyez, avec ce code là, il vous suffit de faire: "call CreateMonster(id, reg1, reg2)" pour avoir une création entièrement automatisée (ou presque... il vous restera à placer les régions et à les renommer)!
PS: les variables régions ont des noms commençant par gg_rct_





EDIT: Tutoriel obsolète depuis l’apparition du MEC. http://max.slid.free.fr/maxEscapeCreation


Dernière édition par MaiNGueT le 30/08/2012, 13:18; édité 13 fois
Revenir en haut
Publicité






MessagePosté le: 18/12/2010, 14:45    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Max
Membres
Membres

Hors ligne

Inscrit le: 15 Déc 2010
Messages: 770
Localisation: Bretagne
Masculin Vierge (24aoû-22sep)
Point(s): 7
Niveau de slide:

MessagePosté le: 18/12/2010, 21:46    Sujet du message: Création de slide (non terminé) Répondre en citant

Bien mainguet cette motivation à faire un tuto !
En référence une de mes maps, je suis flatté  8-)


petite rectification, sur terrain walk, pas rien -> éventuelle désactivation du déclencheur de slide (au même titre que sur terrain death)
_________________
Max Escape Creation : http://max.slid.free.fr/maxEscapeCreation


Revenir en haut
MaiNGueT
Membres
Membres

Hors ligne

Inscrit le: 17 Déc 2010
Messages: 868
Localisation: Paris
Masculin
Point(s): 9

MessagePosté le: 31/12/2010, 03:27    Sujet du message: Création de slide (non terminé) Répondre en citant

Bon, a la vue des dernier évènements récents m'arrivant, je n'aurai pas le temps de continuer ce "tuto" d'ici euh... longtemps. Donc si quelqu'un souhaite le modifier ou y ajouter quelque chose, qu'il le fasse.

Revenir en haut
Max
Membres
Membres

Hors ligne

Inscrit le: 15 Déc 2010
Messages: 770
Localisation: Bretagne
Masculin Vierge (24aoû-22sep)
Point(s): 7
Niveau de slide:

MessagePosté le: 31/12/2010, 13:09    Sujet du message: Création de slide (non terminé) Répondre en citant

L'idéal serait quelqu'un de vraiment bon en création d'escape pour continuer ce tuto. Mainguet tu étais la personne idéale . Sinon go embaucher nomor même s'il n'est pas très bon en français.  :mrgreen:
_________________
Max Escape Creation : http://max.slid.free.fr/maxEscapeCreation


Revenir en haut
Max
Membres
Membres

Hors ligne

Inscrit le: 15 Déc 2010
Messages: 770
Localisation: Bretagne
Masculin Vierge (24aoû-22sep)
Point(s): 7
Niveau de slide:

MessagePosté le: 11/01/2011, 21:56    Sujet du message: Création de slide (non terminé) Répondre en citant

Omg je n'avais pas vu ton histoire d'oisillon -_-
A la place de "id" il serait mieux un nom du style "unitTypeId".
Autrement tu as oublié de mettre à la fin de la fonction : "set monster = null". Si tu ne le mets pas il y a leak.
_________________
Max Escape Creation : http://max.slid.free.fr/maxEscapeCreation


Revenir en haut
MaiNGueT
Membres
Membres

Hors ligne

Inscrit le: 17 Déc 2010
Messages: 868
Localisation: Paris
Masculin
Point(s): 9

MessagePosté le: 12/01/2011, 06:29    Sujet du message: Création de slide (non terminé) Répondre en citant

ah ouais j'avais zapé ça Sinon max, si tu veux le modifier ou faire ce que tu veux d'autre, ne te gènes pas.

Revenir en haut
Max
Membres
Membres

Hors ligne

Inscrit le: 15 Déc 2010
Messages: 770
Localisation: Bretagne
Masculin Vierge (24aoû-22sep)
Point(s): 7
Niveau de slide:

MessagePosté le: 12/01/2011, 18:39    Sujet du message: Création de slide (non terminé) Répondre en citant

Attention ce n'est pas l'id du monstre mais l'id du type du monstre. Dans ce cas je verrais plutôt monsterTypeId.
C'est du détail mais ce genre de choses peut embrouiller.
_________________
Max Escape Creation : http://max.slid.free.fr/maxEscapeCreation


Revenir en haut
MaiNGueT
Membres
Membres

Hors ligne

Inscrit le: 17 Déc 2010
Messages: 868
Localisation: Paris
Masculin
Point(s): 9

MessagePosté le: 12/01/2011, 20:14    Sujet du message: Création de slide (non terminé) Répondre en citant

Changé.

Revenir en haut
MaiNGueT
Membres
Membres

Hors ligne

Inscrit le: 17 Déc 2010
Messages: 868
Localisation: Paris
Masculin
Point(s): 9

MessagePosté le: 11/08/2011, 02:33    Sujet du message: Création de slide (non terminé) Répondre en citant

Passons maintenant au trigger de slide :

[Attention, le passage suivant peut provoquer hallucinations et envies irrépressibles d’assassiner l’auteur. Veuillez vous abstenir.]

Si vous connaissez la trigonométrie, vous saurez que pour connaitre une valeur x associée au cosinus d'un angle sur un cercle trigonométrique, il faut appliquer la formule cos(angle) où angle est généralement exprimé en Radians (90°=Pi/2 – 180°=Pi – 270°= 3Pi/2 – 360°=2Pi).

On peut ainsi connaître la prochaine valeur de x à affecter à l’unité via la formule
Px=Cx+cos(Aunite)xRayon

Où Px exprime la prochaine valeur de x, Cx la valeur actuelle (current) de x, Aunite l’angle de l’unité, et Rayon la distance que devrait parcourir l’unité lorsque placée sur l’axe horizontal (0°-0Pi – 180° - Pi/2), ou sur l’axe vertical (90° - Pi/4 – 270° - 3Pi/2) par fraction de seconde (décidée par la récurrence du trigger (généralement entre 0.01 et 0.04 secondes))

On obtient de cette manière la prochaine valeur de x à venir. [Vous avez envie de me tuer maintenant ? ]

On procède exactement de la même manière pour la valeur de l’axe des ordonnées, mais en remplaçant "cos" par " sin ".


Au final vous devriez avoir quelque chose de semblable à ceci :

function slideJ0 takes nothing returns nothing
local integer n=0
local unit i=udg_hero_j[n]
local real x=Deg2Rad(GetUnitFacing(i))

call SetUnitX(i, GetUnitX(i)+Cos(x)*udg_slide_speed_j[n])
call SetUnitY(i, GetUnitY(i)+Sin(x)*udg_slide_speed_j[n])

set i=null
endfunction

[Certains penseront que le trigger ressemble à celui de Max, et ils auront raison, j’utilise la même méthode que lui.]

Vous voyez, ce n’est pas difficile :=) [Mais ça peut tuer des neurones et provoquer un fanatisme semblable à celui que fully a subit avec les variables.]




Suite plus tard!


Revenir en haut
fulldragon
Membres
Membres

Hors ligne

Inscrit le: 16 Déc 2010
Messages: 1 295
Point(s): 50
Niveau de slide:

MessagePosté le: 11/08/2011, 11:49    Sujet du message: Création de slide (non terminé) Répondre en citant

je peux je peux je peux ???
m'sieur il y a moyen de faire mieux !!!

call setunitXY(i, GetUnitX(i)+Cos(x)*udg_slide_speed_j[n], GetUnitY(i)+Sin(x)*udg_slide_speed_j[n])


et maintenant moi et les variables c'est pour la vie bébé 8)


Revenir en haut
Seiraw
Membres
Membres

Hors ligne

Inscrit le: 13 Déc 2010
Messages: 2 164
Localisation: Au sommet de ma connerie
Masculin Poissons (20fev-20mar)
Point(s): 71
Niveau de slide:

MessagePosté le: 11/08/2011, 15:46    Sujet du message: Création de slide (non terminé) Répondre en citant

Merci pour le trigger Main !
_________________
╭∩╮(︶︿︶)╭∩╮


Revenir en haut
MaiNGueT
Membres
Membres

Hors ligne

Inscrit le: 17 Déc 2010
Messages: 868
Localisation: Paris
Masculin
Point(s): 9

MessagePosté le: 11/08/2011, 16:33    Sujet du message: Création de slide (non terminé) Répondre en citant

Derien :) Sinon full, je pense que tu comprendras bien que l'une des versions est plus lisible (la mienne...). Je prévois d'upload une map avec triggers de slide, de facement (pour tourner) et de création rapide de monstres la prochaine fois que j'aurais accès à internet par un autre accès que la 3G. (En gros, tout ce qui devrait se voir dans ce tutoriel.) Cependant, tous les triggers seront présentés sous une forme en Vjass. (En gros je ne fait que rajouter l'encapsulation en scope). Voili-voilou!

Ps: tu vas être servi maintenant Darkounet :)


Revenir en haut
fulldragon
Membres
Membres

Hors ligne

Inscrit le: 16 Déc 2010
Messages: 1 295
Point(s): 50
Niveau de slide:

MessagePosté le: 11/08/2011, 16:42    Sujet du message: Création de slide (non terminé) Répondre en citant

vjass forever x)
nan mais c'est juste que max avait posté la fonction dans le cimetière sur worldedit.free.fr en disant "ça n'apporte rien donc direct cimetière" et ça me faisait tripper de la ressortir xD


Revenir en haut
fulldragon
Membres
Membres

Hors ligne

Inscrit le: 16 Déc 2010
Messages: 1 295
Point(s): 50
Niveau de slide:

MessagePosté le: 11/08/2011, 16:51    Sujet du message: Création de slide (non terminé) Répondre en citant

bon cependant j'ai quelques petites questions, (oui j'fais mon chieur x))

2 trucs que j'ai pas compris :
ta formule : (0°-0Pi – 180° - Pi/2) tombe un peu comme un cheveux sur la soupe, ça sort d'où ? tu dis que ça exprime la distance que parcour l'unit sur l'axe horizontale par fraction de seconde, mais moi déjà j'trouve que 0°-0Pi s't'inutile, ça fait toujours 0 alors pourquoi ça y est ? et comment des degrés - des radians font une distance ?

ensuite, local real x=Deg2Rad(GetUnitFacing(i)) pourquoi ? deg2rad c'est quoi ?

un 3è truc aussi, slide_speed_j[n] c'est quoi ? rien de tout ça n'est défini...

voila maintenant que j'ai bien fait le chieur j'peux aller faire la sieste


Revenir en haut
Vladadamm
Flooder n°1
Flooder n°1

Hors ligne

Inscrit le: 23 Juil 2011
Messages: 1 587
Localisation: Toulouse
Masculin
Point(s): 110
Niveau de slide:

MessagePosté le: 11/08/2011, 18:32    Sujet du message: Création de slide (non terminé) Répondre en citant

Bon, sinon, pour les adeptes du GUI, y a pas les déclos GUI + custom script dedans ?
_________________


Revenir en haut
Skype
fulldragon
Membres
Membres

Hors ligne

Inscrit le: 16 Déc 2010
Messages: 1 295
Point(s): 50
Niveau de slide:

MessagePosté le: 11/08/2011, 19:35    Sujet du message: Création de slide (non terminé) Répondre en citant

nan !
ça répond à ta question ? x)


Revenir en haut
MaiNGueT
Membres
Membres

Hors ligne

Inscrit le: 17 Déc 2010
Messages: 868
Localisation: Paris
Masculin
Point(s): 9

MessagePosté le: 12/08/2011, 10:17    Sujet du message: Création de slide (non terminé) Répondre en citant

oui, je veilleraiis à tout éclaircir. Sinon la var est explicite fully... de même, ma"formule" est un rapport entre radians et angles. 180°=Pi

Revenir en haut
fulldragon
Membres
Membres

Hors ligne

Inscrit le: 16 Déc 2010
Messages: 1 295
Point(s): 50
Niveau de slide:

MessagePosté le: 12/08/2011, 11:15    Sujet du message: Création de slide (non terminé) Répondre en citant

d'accord mais ça fait 90°, qu'elle es l'intérêt de cette formule ? écrit direct -270°

Revenir en haut
MaiNGueT
Membres
Membres

Hors ligne

Inscrit le: 17 Déc 2010
Messages: 868
Localisation: Paris
Masculin
Point(s): 9

MessagePosté le: 12/08/2011, 16:11    Sujet du message: Création de slide (non terminé) Répondre en citant

Mais... mais... J'indiquais juste pour ceux qui ne connaissaient rien à la trigo les valeurs de base... Bref... je suis assez occupé en ce moment, je travaille sur un nouveau slide :)

Préparez vous à parier (sur ce que vous voulez d'ailleurs)!


Revenir en haut
fulldragon
Membres
Membres

Hors ligne

Inscrit le: 16 Déc 2010
Messages: 1 295
Point(s): 50
Niveau de slide:

MessagePosté le: 12/08/2011, 16:38    Sujet du message: Création de slide (non terminé) Répondre en citant

si tu veux j'peux répondre à mes questions à ta place c'est pas grâve moi j'trouve juste que ton explication n'est pas très clair pour quelqu'un ayant peu de connaissance.

Revenir en haut
Seiraw
Membres
Membres

Hors ligne

Inscrit le: 13 Déc 2010
Messages: 2 164
Localisation: Au sommet de ma connerie
Masculin Poissons (20fev-20mar)
Point(s): 71
Niveau de slide:

MessagePosté le: 12/08/2011, 16:41    Sujet du message: Création de slide (non terminé) Répondre en citant

Non Main, inutile que tu renseignes les gens sur la trigo, si les gens croient que 90° = PI, alors ils ont rien à faire dans ce tuto, c'est apprendre à créer un slide, pas la trigo donc t'emmerdes pas à TOUT expliquer ...

Sinon la trigo c'est 90° = PI/2
180= PI
360= 2PI

Si vous conaissez pas ça, c'est assez honteux x)
_________________
╭∩╮(︶︿︶)╭∩╮


Revenir en haut
Vladadamm
Flooder n°1
Flooder n°1

Hors ligne

Inscrit le: 23 Juil 2011
Messages: 1 587
Localisation: Toulouse
Masculin
Point(s): 110
Niveau de slide:

MessagePosté le: 12/08/2011, 16:42    Sujet du message: Création de slide (non terminé) Répondre en citant

Je connais pas.

Je sais,

je pars
_________________


Revenir en haut
Skype
fulldragon
Membres
Membres

Hors ligne

Inscrit le: 16 Déc 2010
Messages: 1 295
Point(s): 50
Niveau de slide:

MessagePosté le: 12/08/2011, 16:43    Sujet du message: Création de slide (non terminé) Répondre en citant

bin si on connait pas ça déjà ça sert à rien de faire du mapping car c'est super utile u_u

Revenir en haut
Vladadamm
Flooder n°1
Flooder n°1

Hors ligne

Inscrit le: 23 Juil 2011
Messages: 1 587
Localisation: Toulouse
Masculin
Point(s): 110
Niveau de slide:

MessagePosté le: 12/08/2011, 16:51    Sujet du message: Création de slide (non terminé) Répondre en citant

Là, c'est du mapping de slide ^^ pas du mapping en général.
_________________


Revenir en haut
Skype
Seiraw
Membres
Membres

Hors ligne

Inscrit le: 13 Déc 2010
Messages: 2 164
Localisation: Au sommet de ma connerie
Masculin Poissons (20fev-20mar)
Point(s): 71
Niveau de slide:

MessagePosté le: 12/08/2011, 18:17    Sujet du message: Création de slide (non terminé) Répondre en citant

C'est quelque chose que l'on voit en 3eme, tout le monde ayant l'âge l'a vu.
_________________
╭∩╮(︶︿︶)╭∩╮


Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 01:10    Sujet du message: Création de slide (non terminé)

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Clan SliD Index du Forum -> Worldedit -> Tutorials Toutes les heures sont au format GMT + 2 Heures
Aller à la page: 1, 2  >
Page 1 sur 2

 
Sauter vers:  

Portail | Index | créer son forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
darkages Template © larme d'ange
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com