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=f8c43ae1844ba3310520c12f18e4b0fbMé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

Problème de sélection

 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 23/09/12 12:51    Sujet du message: Problème de sélection Citer

Problème relatif au slide. En mode reverse (où il faut cliquer derrière soi pour aller tout droit) le héros se tourne dos à la route (dans ma map). Au passage du slide normal au slide reverse ou inversement, le héros fait instantanément un 180°. Pour faire ce 180° j'ai utilisé la méthode de la suppression puis recréation de l'unité.

Recréation de l'unité implique sélection automatique de cette unité.
Le problème est que plus il y a de passage reverse --> slide / slide --> reverse en peut de temps, plus il arrive que la sélection ne se fasse pas.

Est-ce que la fonction de sélection de wc3 est foireuse ?


Par ailleurs j'envisage une solution alternative à la recréation de l'unité.
J'ai retrouvé ce topic : changer le facing angle d'une unité instantannément ? (avec une grosse faute d'orthographe faite par un noob).
Dans ce topic TB me conseille d'utiliser ce tutoriel.
Quelqu'un l'a-t-il déjà utilisé ? Il m'a l'air d'y avoir une grosse limitation qui se situe au niveau des animations : il me semble qu'on ne peut pas exécuter les animations d'un modèle attaché à une unité. Quelqu'un peut-il me le confirmer ?


Au cas où si ça vous intéresse voici comment je tourne l'unité instantanément :
Jass:
method turnInstantly takes real angle returns nothing
    local TerrainType lastTerrainType = .lastTerrainType
    local real x = GetUnitX(.hero)
    local real y = GetUnitY(.hero)
    local player array playersSelectingHero
    local integer playersSelectingHeroLastId = -1
    local integer i = 0
    loop
        exitwhen i > 11
            if (IsUnitSelected(.hero, Player(i))) then
                set playersSelectingHeroLastId = playersSelectingHeroLastId + 1
                set playersSelectingHero[playersSelectingHeroLastId] = Player(i)
            endif
        set i = i + 1
    endloop
    call RemoveUnit(.hero)
    set .hero = CreateUnit(.p, HERO_TYPE_ID, x, y, angle)
    set i = 0
    loop
        exitwhen i > playersSelectingHeroLastId
            call SelectUnitAddForPlayer(.hero, playersSelectingHero[i])
        set i = i + 1
    endloop
endmethod


Merci de votre aide.
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 23/09/12 14:18    Sujet du message: Citer

Ben il y a bien ce bug, mais je suis pas persuadé à 100% que ton problème vient de là.

Pour la solution du dummy, en effet, c'est pas possible de choisir l'animation que doit jouer un attachement (ça joue automatiquement "birth" puis "stand" lors de la création et "death" lors de la destruction, sous réserve que ces animations existent).

Sinon, essaies avec une variable booléenne (à déploiement ou même avec des GetLocalPlayer) qui remplace la condition "IsUnitSelected" : ça permettra d'ignorer le petit laps de temps pendant lequel l'unité n'est pas considérée comme sélectionnée (si c'est vraiment ça le problème).

Dernière solution : tu sélectionnes tout le temps le héros pour son propriétaire lorsque tu le recréés.

Par contre, qu'est-ce que tu entends par "plus il y a de passage reverse en peut de temps" (avec une grosse faute d'orthographe faite par un noob, au passage Razz ). Est-ce que le "peu de temps" est de l'ordre d'un Wait 0.00 seconds?
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 kungfu-sheep
Anomalie floodiforme


Inscrit le: 14 Avr 2011
Messages: 1846
Sujets: 119
Spécialité en worldedit: fonctions paramétriques, équation de mouvement.


MessagePosté le: 23/09/12 14:56    Sujet du message: Citer

je pense plutôt (d'après l'utilisation des gens que j'ai vu) de l'ordre de 0.1 ou 0.2 seconde.
_________________
22:27:43<Seiraw> Bah y a deux genre de personnes
22:27:57<Seiraw> les soumis et les soumises
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7143
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: 23/09/12 15:10    Sujet du message: Citer

Ouai de cet ordre là il me semble, même si c'est instantané ou presque en solo, si je m'en rappelle bien et que cela n'a pas changé avec un patch.
Ça augmente probablement avec un temps de latence élevé entre les joueurs.

D'ailleurs même la méthode expliquée sur wc3c.net n'est pas instantané non plus il me semble mais c'est déjà beaucoup mieux.

Sinon reste peut être (je ne connais rien aux modèles) la possibilité de modifier le modèle utilisé pour l'unité "slide" pour rajouter X animations, pour X angles de rotation :p
Bonjour la taille du modèle je présume ...
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 24/09/12 00:53    Sujet du message: Citer

fulldragon a écrit:
je pense plutôt (d'après l'utilisation des gens que j'ai vu) de l'ordre de 0.1 ou 0.2 seconde.

Oui c'est de cet ordre, voire même plus, mais plus on descend plus la désélection est fréquente.

[quote="tirlititi']Sinon, essaies avec une variable booléenne (à déploiement ou même avec des GetLocalPlayer) qui remplace la condition "IsUnitSelected" : ça permettra d'ignorer le petit laps de temps pendant lequel l'unité n'est pas considérée comme sélectionnée (si c'est vraiment ça le problème). [/Quote]
Je pensais que le problème venait de l'action de sélection, pas de "IsUnitSelected", mais tu as tout à fait raison... si je court-circuite le filtre "IsUnitSelected" la sélection ne foire JAMAIS c'est imba Very Happy.


J'essaye donc avec des booléens car ça a l'air efficace et facile, comme avec le problème des sons de l'autre fois.

Je rencontre un problème, mon trigger de détection de la désélection de l'unité ne fonctionne pas :
Jass:
function Trig_Unselect_hero_Actions takes nothing returns nothing
    call KillUnit(GetTriggerUnit())
    if (IsHero(GetTriggerUnit())) then
        call Hero2Escaper(GetTriggerUnit()).setIsHeroSelectedForPlayer(GetTriggerPlayer(), false)
    endif
    call BJDebugMsg("deselect")
endfunction

//===========================================================================
function InitTrig_Unselect_hero takes nothing returns nothing
    set gg_trg_Unselect_hero = CreateTrigger(  )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Select_hero, Player(0), false )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Select_hero, Player(1), false )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Select_hero, Player(2), false )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Select_hero, Player(3), false )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Select_hero, Player(4), false )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Select_hero, Player(5), false )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Select_hero, Player(6), false )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Select_hero, Player(7), false )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Select_hero, Player(8), false )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Select_hero, Player(9), false )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Select_hero, Player(10), false )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Select_hero, Player(11), false )
    call TriggerAddAction( gg_trg_Unselect_hero, function Trig_Unselect_hero_Actions )
endfunction

L'unité ne meurt pas et le message ne s'affiche pas. Le trigger opposé (sélectionne) par contre, fonctionne.

Une idée ?
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 24/09/12 04:36    Sujet du message: Citer

Oh my god quel noob !

J'ai fait un copier-coller des events du trigger de détection de sélection et j'ai oublié de renommer le trigger dans ces events.

Bon ben nikel ça marche parfaitement maintenant. Merci Tirlitity Smile
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 kungfu-sheep
Anomalie floodiforme


Inscrit le: 14 Avr 2011
Messages: 1846
Sujets: 119
Spécialité en worldedit: fonctions paramétriques, équation de mouvement.


MessagePosté le: 24/09/12 19:20    Sujet du message: Citer

Max a écrit:
Oh my god quel noob !

J'ai fait un copier-coller des events du trigger de détection de sélection et j'ai oublié de renommer le trigger dans ces events.

Bon ben nikel ça marche parfaitement maintenant. Merci Tirlitity Smile



knew it x)
_________________
22:27:43<Seiraw> Bah y a deux genre de personnes
22:27:57<Seiraw> les soumis et les soumises
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1
La question posée dans ce topic a été résolue !

 
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