Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.phpMédailles   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
  FAQFAQ World Editor   UploadUploader une map ou une image    UploadAjouter sa map à l'annuaire   UploadConsulter l'annuaire

Sort de Saut en GUI/JASS
Aller à la page 1, 2  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Les sorts
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Elric
Ptit Nouveau


Inscrit le: 13 Déc 2007
Messages: 35
Sujets: 7



MessagePosté le: 19/12/07 01:33    Sujet du message: Sort de Saut en GUI/JASS Citer

Alors voila j'ai un peu cherché sur le forum mais je n'ai pas trouvé de sort de saut fini. J'ai donc pris la liberté d'en créer un en GUI exclusivement et de le poster pour tous ceux qui ne savent pas comment le créer.
Ce sort peut être optimisé de façon a réduire le nombre de variable mais j'ai la flemme...


il vous faudra créer plusieures choses avant de commencer :

-un sort qui permet de cibler le sol, n'importe lequel (ex : choc de flamme, blizzard et autres le mieux étant canaliser) (ici nommé Jump)

-4 variables de type "réel" (ici nommées Jump1, Jump2, Jump3 et Jump4)

-une variable de type point avec déploiement (cochez la case au moment de la création de la variable) (ici nommée point_Jump)

-une variable de type entier (ici nommée integer_Jump)

-2 scripts dont un dont on décochera la case "on au départ"


voila ensuite à quoi ressemblent les scripts :

le script lanceur :
Secret:

Gui:
Trigger:
Collapse Evénements
Unité - A unit Initie l'effet d'une compétence
Collapse Conditions
(Ability being cast) Egal à  Jump
Collapse Actions
Set cible_Jump = (Casting unit)
Set point_Jump[0] = (Target point of ability being cast)
Set point_Jump[1] = (Position of cible_Jump)
Set real_Jump4 = (Distance between point_Jump[0] and point_Jump[1])
Set real_Jump = (real_Jump4 / 4.00)
Set real_Jump2 = (-1.00 x (Square root(real_Jump)))
Set integer_Jump = 2
Unité - Add Forme de corbeau to cible_Jump
Unité - Remove Forme de corbeau from cible_Jump
Unité - Pause cible_Jump
Unité - Turn collision for cible_Jump Off
Unité - Move cible_Jump instantly to (Position of cible_Jump), facing point_Jump[0]
Déclencheur - Turn on Jump periodique <gen>



ainsi que le script off au départ :
Secret:

Gui:
Trigger:
Jump periodique
Collapse Evénements
Temps - Every 0.01 seconds of game time
Conditions
Collapse Actions
Set real_Jump3 = (real_Jump - (Power(real_Jump2, 2.00)))
Animation - Change cible_Jump flying height to real_Jump3 at 0.00
Set real_Jump2 = (real_Jump2 + ((Square root(real_Jump)) / 50.00))
Set point_Jump[integer_Jump] = ((Position of cible_Jump) offset by (real_Jump4 / 100.00) towards (Facing of cible_Jump) degrees)
Unité - Move cible_Jump instantly to point_Jump[integer_Jump]
Set integer_Jump = (integer_Jump + 1)
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
integer_Jump Supérieur ou égal à  101
Collapse Alors - Actions
Déclencheur - Turn off (This trigger)
Animation - Change cible_Jump flying height to 0.00 at 0.00
Unité - Reprendre cible_Jump
Unité - Turn collision for cible_Jump On
Collapse Sinon - Actions
Do nothing



il vaut mieux améliorer ce dernier script afin de supprimer le Leak :
Secret:

Gui:
Trigger:
Jump periodique
Collapse Evénements
Temps - Every 0.01 seconds of game time
Conditions
Collapse Actions
Set real_Jump3 = (real_Jump - (Power(real_Jump2, 2.00)))
Animation - Change cible_Jump flying height to real_Jump3 at 0.00
Set real_Jump2 = (real_Jump2 + ((Square root(real_Jump)) / 50.00))
Set point_Jump[integer_Jump] = ((Position of cible_Jump) offset by (real_Jump4 / 100.00) towards (Facing of cible_Jump) degrees)
Unité - Move cible_Jump instantly to point_Jump[integer_Jump]
Set integer_Jump = (integer_Jump + 1)
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
integer_Jump Supérieur ou égal à  101
Collapse Alors - Actions
Déclencheur - Turn off (This trigger)
Animation - Change cible_Jump flying height to 0.00 at 0.00
Collapse For each (Integer A) from 0 to integer_Jump, do (Actions)
Collapse Boucle - Actions
Custom script:   call RemoveLocation(udg_point_Jump[GetForLoopIndexA()])
Unité - Reprendre cible_Jump
Unité - Turn collision for cible_Jump On
Collapse Sinon - Actions
Do nothing




évidemment ce skill peut encore etre amélioré mais je pense que c'est déja une bonne base Wink

pour les fénients qui n'ont pas envie de tout refaire à la main voici la version JASS (il n'y à qu'a la copier-coller) :

Secret:

Jass:
function Trig_Jump_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A068' ) ) then
        return false
    endif
    return true
endfunction

function Trig_Jump_Actions takes nothing returns nothing
    set udg_cible_Jump = GetSpellAbilityUnit()
    set udg_point_Jump[0] = GetSpellTargetLoc()
    set udg_point_Jump[1] = GetUnitLoc(udg_cible_Jump)
    set udg_real_Jump4 = DistanceBetweenPoints(udg_point_Jump[0], udg_point_Jump[1])
    set udg_real_Jump = ( udg_real_Jump4 / 4.00 )
    set udg_real_Jump2 = ( -1.00 * SquareRoot(udg_real_Jump) )
    set udg_integer_Jump = 2
    call UnitAddAbilityBJ( 'Amrf', udg_cible_Jump )
    call UnitRemoveAbilityBJ( 'Amrf', udg_cible_Jump )
    call PauseUnitBJ( true, udg_cible_Jump )
    call SetUnitPathing( udg_cible_Jump, false )
    call SetUnitPositionLocFacingLocBJ( udg_cible_Jump, GetUnitLoc(udg_cible_Jump), udg_point_Jump[0] )
    call EnableTrigger( gg_trg_Jump_periodique )
endfunction

//===========================================================================
function InitTrig_Jump takes nothing returns nothing
    set gg_trg_Jump = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Jump, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Jump, Condition( function Trig_Jump_Conditions ) )
    call TriggerAddAction( gg_trg_Jump, function Trig_Jump_Actions )
endfunction



et celui qui doit etre off au depart :

Secret:

Jass:
function Trig_Jump_periodique_Func007C takes nothing returns boolean
    if ( not ( udg_integer_Jump >= 101 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Jump_periodique_Actions takes nothing returns nothing
    set udg_real_Jump3 = ( udg_real_Jump - Pow(udg_real_Jump2, 2.00) )
    call SetUnitFlyHeightBJ( udg_cible_Jump, udg_real_Jump3, 0.00 )
    set udg_real_Jump2 = ( udg_real_Jump2 + ( SquareRoot(udg_real_Jump) / 50.00 ) )
    set udg_point_Jump[udg_integer_Jump] = PolarProjectionBJ(GetUnitLoc(udg_cible_Jump), ( udg_real_Jump4 / 100.00 ), GetUnitFacing(udg_cible_Jump))
    call SetUnitPositionLoc( udg_cible_Jump, udg_point_Jump[udg_integer_Jump] )
    set udg_integer_Jump = ( udg_integer_Jump + 1 )
    if ( Trig_Jump_periodique_Func007C() ) then
        call DisableTrigger( GetTriggeringTrigger() )
        call SetUnitFlyHeightBJ( udg_cible_Jump, 0.00, 0.00 )
        set bj_forLoopAIndex = 0
        set bj_forLoopAIndexEnd = udg_integer_Jump
        loop
            exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
            call RemoveLocation(udg_point_Jump[GetForLoopIndexA()])
            set bj_forLoopAIndex = bj_forLoopAIndex + 1
        endloop
        call PauseUnitBJ( false, udg_cible_Jump )
        call SetUnitPathing( udg_cible_Jump, true )
    else
        call DoNothing(  )
    endif
endfunction

//===========================================================================
function InitTrig_Jump_periodique takes nothing returns nothing
    set gg_trg_Jump_periodique = CreateTrigger(  )
    call DisableTrigger( gg_trg_Jump_periodique )
    call TriggerRegisterTimerEventPeriodic( gg_trg_Jump_periodique, 0.01 )
    call TriggerAddAction( gg_trg_Jump_periodique, function Trig_Jump_periodique_Actions )
endfunction




Voila voila, servez vous c'est gratuit Razz
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 19/12/07 19:54    Sujet du message: Citer

Je tient à préciser que cela ne fonctionnera que pour une seule unité à la fois
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Elric
Ptit Nouveau


Inscrit le: 13 Déc 2007
Messages: 35
Sujets: 7



MessagePosté le: 19/12/07 20:45    Sujet du message: Citer

certes, ceci dit si quelqu'un se sent le courage de le changer en multi instanciable libre a lui de le faire Wink
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Elric
Ptit Nouveau


Inscrit le: 13 Déc 2007
Messages: 35
Sujets: 7



MessagePosté le: 20/12/07 19:25    Sujet du message: Citer

une petite question : ce genre de sort fait ramer une partie ?
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4767
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 21/12/07 18:14    Sujet du message: Citer

Normalement non, cela dit le jeu peut ramer si trop d'unités sont concernées par ce sort, ou que l'ordi est pas assez puissant.
_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 22/12/07 20:51    Sujet du message: Citer

Rommstein60 a écrit:
Normalement non, cela dit le jeu peut ramer si trop d'unités sont concernées par ce sort, ou que l'ordi est pas assez puissant.


Problème inexistant, le sort n'est pas multi instanciable Razz
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Elric
Ptit Nouveau


Inscrit le: 13 Déc 2007
Messages: 35
Sujets: 7



MessagePosté le: 23/12/07 12:03    Sujet du message: Citer

en fait je voudrai savoir quelles actions font ramer l'ordi et dans quelle mesure (nombre de sort ... etc)
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 23/12/07 14:46    Sujet du message: Citer

Créer des points plutôt que d'utiliser des fonctions qui utilisent directement les coordonnées X/Y est plus lent
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 PyroMal
Membre actif


Inscrit le: 02 Déc 2007
Messages: 102
Sujets: 13



MessagePosté le: 13/03/08 16:56    Sujet du message: Citer

1) Est-ce normal qu'on soit si lent? c'est pas très réaliste
2) On frôle le sol, pas très réaliste pour un saut non plus!!

J'ai changé le 101 par 201, pour des sauts plus longs... mais même avec 101 je touche le sol et suis lent...
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4767
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 13/03/08 17:19    Sujet du message: Citer

Heu j'ai commencé un tuto pour un saut en Gui parfait (je l'ai dit à mouton il me semble Wink). Si j'ai le temps je vais essayer de le finir Smile
_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 PyroMal
Membre actif


Inscrit le: 02 Déc 2007
Messages: 102
Sujets: 13



MessagePosté le: 13/03/08 17:22    Sujet du message: Citer

Okay Smile merci beaucoup Smile, de mon côté rien ne presse, de toute façon je pars samedi pour une semaine ^^

++


EDIT: fautes corrigées Rolling Eyes mais avouez que c'est plus beau des fautes comme ça que d'écrire en SMS Wink
++
_________________


Dernière édition par PyroMal le 14/03/08 09:08; édité 1 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 profet
Instanton Gravitationnel Singulier


Inscrit le: 21 Aoû 2007
Messages: 1633
Sujets: 53
Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...)
Médailles: 2 (En savoir plus...)
Profet (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 13/03/08 22:24    Sujet du message: Citer

PyroMal a écrit:
Okay Smile merci beaucoup Smile, de mon côté rien ne presse, de toute fasson je part samedi pour une semaine ^^

++
Evil or Very Mad
_________________

Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70%
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 super_mouton
Floodozaurus


Inscrit le: 21 Aoû 2007
Messages: 2072
Sujets: 51
Spécialité en worldedit: Harceller vos maps de critiques !! ';..;'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 14/03/08 18:26    Sujet du message: Citer

Rommstein60 a écrit:
Heu j'ai commencé un tuto pour un saut en Gui parfait (je l'ai dit à mouton il me semble Wink). Si j'ai le temps je vais essayer de le finir Smile


Nan sa tu as oublié de me le dire. Tu veux dire faire une courbe parfaite lorsqu'on saute ?
_________________
Dessine moi un Bizzardbizzare ! Very Happy
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4767
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 14/03/08 18:39    Sujet du message: Citer

Qu'appelles-tu une courbe parfaite lol?
_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 14/03/08 19:46    Sujet du message: Citer

Rommstein60 a écrit:
Qu'appelles-tu une courbe parfaite lol?

celle de Monica Belluci ?
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Les sorts Toutes les heures sont au format GMT + 1 Heure
Aller à la page 1, 2  Suivante
Page 1 sur 2

 
Sauter vers:  
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


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com