Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.php?sid=c43c67faff599d2f76302466351b1e7bMé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

Saut idéal en GUI
Aller à la page Précédente  1, 2, 3, 4, 5  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Tutoriels
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Rommstein60
MODÉRATEUR À LA RETRAITE


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

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

Bon ok...
Je dois mettre quoi comme titre alors? Sachant qu'il a été accepté en officiel en étant sois-disant parfait Sad

_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 kapoka
Membre a fort taux de post


Inscrit le: 21 Aoû 2007
Messages: 915
Sujets: 47
Spécialité en worldedit: Faire des maps avec 500 déclos en GUI alors que 2 en JASS suffisent
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 04/04/08 20:38    Sujet du message: Citer

Tu peux mettre

"Le saut sois-disant parfait" ou
"Le saut que je trouve parfait" ou
"Le saut presque parfait" ou
"Le saut parfait (ou presque)" ou
"Le super saut !" ou
"Le saut ultime" ou
"L'unique saut de la mort !" ou
"Tu est saucé par ce saut !"
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur MSN Messenger
 Rommstein60
MODÉRATEUR À LA RETRAITE


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

MessagePosté le: 04/04/08 20:39    Sujet du message: Citer

Laughing
Euh j'aime bien le "Tu est saucé par ce saut !" xD

_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 jk2pach
Invité








MessagePosté le: 18/12/08 16:17    Sujet du message: Citer

Juste pour remercie Rommstein. Ce tutorial est quand même génial. Bon j'ai passé deux heures à essayer de modifier le saut avant d'y arriver, mais merci!

(Maintenant j'ai un druide qui peut sauter en arrière tout en balancer des ours dans la tronche des ennemis situés sur le point de départ Rolling Eyes Et en Gui. Very Happy )
_________________
Revenir en haut
 Rommstein60
MODÉRATEUR À LA RETRAITE


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

MessagePosté le: 18/12/08 18:17    Sujet du message: Citer

Ravi de t'avoir aidé, et d'autant plus que tu ais compris le principe, c'est surtout ça que je souhaite en écrivant mes tutoriaux Smile
_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 SnowWolf
Anomalie floodiforme


Inscrit le: 06 Nov 2007
Messages: 1617
Sujets: 62
Spécialité en worldedit: Pourquoi pas ?
Médailles: 1 (En savoir plus...)
Auteur de la bannière (Quantité : 1)

MessagePosté le: 29/12/08 12:51    Sujet du message: Citer

Une petite question, comment faire pour que l'unité ne monte pas sur les falaises et ne passe pas à travers les arbres ? (Je sais que tu as fais le système sur AL mais il est pas dans ton tuto)
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 jk2pach
Invité








MessagePosté le: 29/12/08 13:14    Sujet du message: Citer

Ah oui ca c'est une bonne question, j'ai eu le même problème, et je vais en avoir besoin aussi. Surtout quand on se sert des hauteurs comme de "murs"
_________________
Revenir en haut
 Chaosium
Floodeur prématuré


Inscrit le: 31 Aoû 2007
Messages: 606
Sujets: 12
Spécialité en worldedit: Enchanteur des enchantements.


MessagePosté le: 29/12/08 14:58    Sujet du message: Citer

J'imagine que le problème vient du fait que l'unité devient volante donc elle peut franchir n'importe quoi. P'tet en supprimant juste sa collision sans lui ajouter Forme de corbeau ça passera =/
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Sithranduil
Membre honoraire


Inscrit le: 17 Déc 2008
Messages: 301
Sujets: 36
Spécialité en worldedit: escape


MessagePosté le: 21/01/09 20:52    Sujet du message: Citer

Moi,quand je vais sur l'écran je ne vois pas la souris Crying or Very sad .Pourquoi Question
_________________

Si un corps bouge, on le frappe, s'il ne bouge pas, on le frappe quand même, on ne sait jamais sur quoi on tombe.
Proverbe gobelin.

Si tu doute écoute ton estomac, c'est quelqu'un de confiance.
Proverbe Troll.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 jk2pach
Invité








MessagePosté le: 21/01/09 21:24    Sujet du message: Citer

C'est parce que dans les options de ton sort de saut (normalement fondé sur canaliser), tu as dû mettre "targeting image" pour un sort qui n'a pas d'effet de zone (stats- area effect = 0).
_________________
Revenir en haut
 Sithranduil
Membre honoraire


Inscrit le: 17 Déc 2008
Messages: 301
Sujets: 36
Spécialité en worldedit: escape


MessagePosté le: 21/01/09 21:29    Sujet du message: Citer

Merci beaucoup de ton aide sa marche.Honte à moi Embarassed .
_________________

Si un corps bouge, on le frappe, s'il ne bouge pas, on le frappe quand même, on ne sait jamais sur quoi on tombe.
Proverbe gobelin.

Si tu doute écoute ton estomac, c'est quelqu'un de confiance.
Proverbe Troll.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 jk2pach
Invité








MessagePosté le: 21/01/09 21:35    Sujet du message: Citer

En même temps si tu ne le savais pas, y'a pas à avoir honte. Quand j'ai commencé à me servir de canaliser, j'ai eu le même problème Wink
_________________
Revenir en haut
 jk2pach
Invité








MessagePosté le: 11/02/09 20:04    Sujet du message: Citer

@Rom' : très longtemps après, voilà une version de saut ressemblant au tiens, qui n'est autre qu'une version modifié de la fonction de recul de Rhadamante. Je profite d'un lifting de ma carte RC601 en vjass (ca fait 6 heures que j'améliore/débuggue etc...).

La seule distinction avec ton sort, c'est que tu peux personnaliser la hauteur du saut ainsi que sa vitesse.

Sinon c'est globalement le même principe. J'ai fait le test avec un sort sans cible et un sort avec cible.

Rappel: nécessite la librairie TimerUtils.

Secret:

Jass:
library Jump needs TimerUtils

//==========================================================================================

globals
    private constant real TIMEOUT = 0.02
    private constant integer TYPE = 'o00O'
    private unit TEST = null
    private constant integer RAVEN = 'Amrf'
endglobals

//==========================================================================================


private function IsPointPathableForUnit takes real x, real y, unit whichUnit returns boolean
    local real tx = 0
    local real ty = 0
   
    call ShowUnit(whichUnit, false)
    if TEST == null then
        set TEST = CreateUnit(Player(15), TYPE, 0.0, 0.0, 0.0)
    else
        call ShowUnit(TEST, true)
    endif
   
    call SetUnitPosition(TEST, x, y)
    set tx = GetUnitX(TEST)
    set ty = GetUnitY(TEST)
    call ShowUnit(TEST, false)
    call ShowUnit(whichUnit,true)
    return (x == tx and y == ty)
endfunction

//==========================================================================================

struct jumps
    unit target
    real angle
    integer distance
    integer vit
    integer i
    real imp
endstruct

//==========================================================================================

private function Action takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local jumps js = GetTimerData(t)
    local real newX = GetUnitX(js.target) + js.vit*Cos(js.angle)
    local real newY = GetUnitY(js.target) + js.vit*Sin(js.angle)
    local real z = GetUnitFlyHeight(js.target)
    local real newz = 0.00
   
    if (js.i < js.distance) and IsPointPathableForUnit(newX, newY, js.target) then
        set js.i = js.i + 1
        call SetUnitPosition(js.target, newX, newY)
            if (js.i < (js.distance * 0.5)) then
                set newz = z + (js.distance * js.imp)
            else
                set newz = z - (js.distance * js.imp)
            endif
            call SetUnitFlyHeight(js.target, newz, 0.00)
   
    else
        call SetUnitPathing( js.target, true)
       
        call UnitRemoveAbility( js.target, RAVEN
        call SetUnitAnimation(js.target, "Stand")
       
        call ReleaseTimer(t)
        call js.destroy()
    endif
endfunction

//==========================================================================================

function jump takes unit u, integer speed, real x1, real y1, real x2, real y2, real imp returns nothing
    local timer t = NewTimer()
    local jumps  js = jumps.create()
    call SetUnitAnimation(u, "Stand Defend")
    call SetUnitPathing( u, false)
    set js.target = u
    set js.angle = Atan2((y2 -y1), (x2 - x1))
    set js.distance = R2I(DistanceBetweenPoints(Location(x1,y1),Location(x2,y2)))/speed
    set js.vit = speed
    set js.i = 0
    set js.impimp
    call SetTimerData(t, js)
    call TimerStart (t, TIMEOUT, true, function Action )
    call UnitAddAbility(js.target, RAVEN
   
endfunction
endlibrary



Exemple de fonction
Secret:

Jass:
scope sautesquive initializer init

//=================================================


private function Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A003' ) ) then
        return false
    endif
    return true
endfunction

//=================================================

private function Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local location p1 = GetUnitLoc(u)
local real x1 = GetUnitX(u)
local real y1 = GetUnitY(u)
local real a = GetUnitFacing(u)
local location p = PolarProjectionBJ(Location(x1, y1), -400.00, a)
local real x2 = GetLocationX(p)
local real y2 = GetLocationY(p)

    call jump(u, 20,x1,y1,x2,y2, 1.00)

set u = null
call RemoveLocation(p)
set p = null

endfunction

//=================================================
public function init takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition(t, Condition(function Conditions))
    call TriggerAddAction(t, function Actions)
endfunction
   
endscope



_________________
Revenir en haut
 Rommstein60
MODÉRATEUR À LA RETRAITE


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

MessagePosté le: 11/02/09 20:16    Sujet du message: Citer

Ok, si tu le souhaite tu peux le mettre dans mon sujet en PS Smile . Même si ça colle pas trop avec le titre du sujet (en GUI) xD.

PS : C'est Romm Very Happy .

_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Rhadamante
Petit flooder


Inscrit le: 28 Aoû 2007
Messages: 1457
Sujets: 24
Spécialité en worldedit: Bêêh hé hé hé !
Médailles: 3 (En savoir plus...)
Créateur de race (Quantité : 1) Grand décorateur (Quantité : 2)

MessagePosté le: 11/02/09 20:25    Sujet du message: Citer

Jass:
private function Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local location p1 = GetUnitLoc(u)
local real x1 = GetUnitX(u)
local real y1 = GetUnitY(u)
local real a = GetUnitFacing(u)
local location p = PolarProjectionBJ(Location(x1, y1), -400.00, a)
local real x2 = GetLocationX(p)
local real y2 = GetLocationY(p)
// etc.


Tu as 2 coordonnées, une distance, un angle, pourquoi utiliser 2 points ? Les points c'est le mal, ne t'en sert que pour GetSpellTargetLoc().
En plus PolarProjectionBJ aurait du te mettre sur la voie :

Jass:
function PolarProjectionBJ takes location source, real dist, real angle returns location
    local real x = GetLocationX(source) + dist * Cos(angle * bj_DEGTORAD)
    local real y = GetLocationY(source) + dist * Sin(angle * bj_DEGTORAD)
    return Location(x, y)
endfunction


Remplace par :

Jass:
private function Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local real x1 = GetUnitX(u)
local real y1 = GetUnitY(u)
local real a = GetUnitFacing(u)
local real x2 = x1 - 400.0*Cos(a* bj_DEGTORAD)
local real y2 = y1 - 400.0*Sin(a* bj_DEGTORAD)
// etc.

_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Tutoriels Toutes les heures sont au format GMT + 1 Heure
Aller à la page Précédente  1, 2, 3, 4, 5  Suivante
Page 3 sur 5

 
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