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

Bug Map

 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Autre
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 florianlenecro
Floodeur prématuré


Inscrit le: 12 Nov 2009
Messages: 711
Sujets: 50
Spécialité en worldedit: Vétéran


MessagePosté le: 27/11/13 19:23    Sujet du message: Bug Map Citer

Salut,
Aujourd'hui même j'ai host une des cartes que j'ai modifié et la le big bug:
-En solo tout va bien aucun problème et quand on est plusieurs les unités répondent plus, elles avancent qquand elles veulent, elles se déselectionnent automatiquement ect... Comme si la map etait en overcharge d'unité :/
Map
Je pense que ca vient de mon système de sélection mais j'aimerai avoir votre avis
_________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon"
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 florianlenecro
Floodeur prématuré


Inscrit le: 12 Nov 2009
Messages: 711
Sujets: 50
Spécialité en worldedit: Vétéran


MessagePosté le: 01/12/13 09:49    Sujet du message: Citer

Personne ne sait pourquoi?

Secret:

Jass:
function Trig_Selection_Actions takes nothing returns nothing
    local integer i = GetConvertedPlayerId(GetTriggerPlayer())
    local player p = GetTriggerPlayer()
    call DestroyGroup(udg_UnitSelectionner[i])
    if ( GetOwningPlayer(GetTriggerUnit()) == p ) then
        set udg_UnitSelectionner[i] = GetUnitsSelectedAll(p)
    endif
    set i = 0
    set p = null
endfunction

//===========================================================================
function InitTrig_Selection takes nothing returns nothing
    set gg_trg_Selection = CreateTrigger(  )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(0), true )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(1), true )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(2), true )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(3), true )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(4), true )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(5), true )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(6), true )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(7), true )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(8), true )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(9), true )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(10), true )
    call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(11), true )
    call TriggerAddAction( gg_trg_Selection, function Trig_Selection_Actions )
endfunction

Voila le système de sélection, je pense que c'est le coupable mais je comprend pas pourquoi
_________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon"
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ectelion
Membre reconnu


Inscrit le: 12 Nov 2011
Messages: 1062
Sujets: 107
Spécialité en worldedit: Inactif(Enfin presque)
Médailles: 1 (En savoir plus...)
Créateur d'unité (Quantité : 1)

MessagePosté le: 01/12/13 17:01    Sujet du message: Citer

C'est une désynchronisation je dirais.

Au niveau de l'optimisation, retires les BJ, ensuite, si tu détruis le groupe, tu ne peux le réattribuer je crois, donc retire juste le DestroyGroup pour voir.

Edit: ouais, upload sur epicwar, mon ordi refuse de télécharger ta map =(
(En même temps, ma co n'a jamais été exceptionnelle, mais là on atteint des sommets ces temps-ci.)
_________________
Inactif(Enfn presque)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Sapeur-Goblin
Floodeur prématuré


Inscrit le: 14 Oct 2009
Messages: 719
Sujets: 40
Spécialité en worldedit: Les bugs
Médailles: 1 (En savoir plus...)
Créateur d'unité (Quantité : 1)

MessagePosté le: 01/12/13 18:27    Sujet du message: Citer

Hmm personnellement je ne vois pas où il y a de désynchronisation.

Je pense que ça vient du fait que tu détruis le groupe avant de faire le test conditionnel. Du coup tu peux parfois te retrouver avec un groupe null. Il faudrait mettre cette destruction dans la condition.

Sinon je ne suis pas sûr que ce déclencheur soit vraiment très utile. Simplement utiliser la fonction renvoyant les unités sélectionnées serait probablement plus efficace.

Concernant le code lui-même,
- Il est inutile de nullifier les entiers
- GetConvertedPlayerId va de 1 à 12, fait attention. GetPlayerId est plus approprié en jass je pense.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 florianlenecro
Floodeur prématuré


Inscrit le: 12 Nov 2009
Messages: 711
Sujets: 50
Spécialité en worldedit: Vétéran


MessagePosté le: 01/12/13 19:23    Sujet du message: Citer

mais justement, j'y avais pensé mais si le joueur sélectionne des unités ne lui appartenant pas il pourra utiliser certaines commandes qui sont lié à la sélection, ducoup j'ai fait ce déclo pour faire en sorte que les unités leur appartenant pas ne puissent être affecté.

Je vais essayé vos infos
_________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon"
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 florianlenecro
Floodeur prématuré


Inscrit le: 12 Nov 2009
Messages: 711
Sujets: 50
Spécialité en worldedit: Vétéran


MessagePosté le: 03/12/13 18:44    Sujet du message: Citer

Aucun cas ne fonctionne, en déplaçant le destroygroup ou bien en le supprimant
http://www.epicwar.com/maps/236704/
Rahh, sur epicwar c'est public, ( une map buggué ajouté dans la liste xD )
_________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon"
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 florianlenecro
Floodeur prématuré


Inscrit le: 12 Nov 2009
Messages: 711
Sujets: 50
Spécialité en worldedit: Vétéran


MessagePosté le: 08/12/13 21:02    Sujet du message: Citer

Aucune autre idée?
_________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon"
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2009
Sujets: 49

Médailles: 2 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1) Ayane (Quantité : 1)

MessagePosté le: 09/12/13 08:42    Sujet du message: Citer

Jass:
function GetUnitsSelectedAll takes player whichPlayer returns group
    local group g = CreateGroup()
    call SyncSelections()
    call GroupEnumUnitsSelected(g, whichPlayer, null)
    return g
endfunction

http://wiki.thehelper.net/wc3/jass/Blizzard.j/GetUnitsSelectedAll

SyncSelections qui sert à synchroniser la liste de sélection peut avoir des effets bizarres. Tu effectue également une synchronisation à chaque fois qu'un joueur effectue une sélection. Et si le joueur sélectionne plusieurs unités à la fois?
Je ne comprends pas pourquoi tu as besoin que chaque joueur connaisse la liste des sélections de chaque autre joueur.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 florianlenecro
Floodeur prématuré


Inscrit le: 12 Nov 2009
Messages: 711
Sujets: 50
Spécialité en worldedit: Vétéran


MessagePosté le: 09/12/13 17:46    Sujet du message: Citer

Donc si j'ai bien compris, on a pas besoin de mettre l'event A unit is Selected
pour que le groupe GetAllUnitSelected fonctionne alors?
_________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon"
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 -> Autre Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
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