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=0335490787f471ebb07399e4cc9cd460Mé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

Je suis devenu un vrai geek
Aller à la page 1, 2  Suivante
 
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
 jk2pach
Invité








MessagePosté le: 21/07/10 06:43    Sujet du message: Je suis devenu un vrai geek Citer

Secret:

Jass:
scope StartCinematic initializer init

globals
    private constant real WAIT = 0.01
    private constant string MASK = "ReplaceableTextures\\CameraMasks\\Black_mask.blp"
endglobals   

    private function InitializeCinematic takes nothing returns boolean
        local integer i = 0
        local integer random = GetRandomInt(0,100)
            set ChapterIntermission = true
            call CinematicModeBJ(true,bj_FORCE_ALL_PLAYERS)
            call CinematicFadeBJ( bj_CINEFADETYPE_FADEOUT, 0.,MASK,0,0,0,0)
            call SetMusicVolume(100)
            call SuspendTimeOfDay(true)
            call SetTimeOfDayScale(0.)
            call SetFloatGameState(GAME_STATE_TIME_OF_DAY, 0.)
            call SetSkyModel("Environment\\Sky\\FelwoodSky\\FelwoodSky.mdx")
            call SetDayNightModels("Environment\\DNC\\DNCDalaran\\DNCDalaranTerrain\\DNCDalaranTerrain.mdx","Environment\\DNC\\DNCDalaran\\DNCDalaranUnit\\DNCDalaranUnit.mdx")
            call MusicOff()
            call FogEnable(true)
            call FogMaskEnable(true)
            loop
                exitwhen i > MAXPLAYER
                call SetPlayerAllianceBJ( Player(i), ALLIANCE_SHARED_VISION, true, Player(10) )
                call SetPlayerAllianceBJ( Player(10), ALLIANCE_SHARED_VISION, true, Player(i) )
                set i = i + 1
            endloop
            call CinematicFadeBJ( bj_CINEFADETYPE_FADEIN, 4.,MASK,0,0,0,0)
            call MusicCinematic()
            if random <=25 then
                call StartCinematic1()
            elseif random >25 and random <=50 then
                call StartCinematic2()
            elseif random >50 and random <=75 then
                call StartCinematic3()
            elseif random >75 then
                call StartCinematic4()
            endif
            call BJDebugMsg("Random="+I2S(random))
            return false
    endfunction


    public function init takes nothing returns nothing
        local trigger t = CreateTrigger()
            call AbilityPreload(CINEM_UNIT)
            call AbilityPreload(BLOOD_FX)
            call CinematicModeBJ(true,bj_FORCE_ALL_PLAYERS)
            call CinematicFadeBJ( bj_CINEFADETYPE_FADEOUT, 0.,MASK,0,0,0,0)
            call TriggerRegisterTimerEvent(t, WAIT,false)
            call TriggerAddCondition(t, Condition(function InitializeCinematic))
    endfunction
 
endscope



Observez l'entier "random" (local integer random = GetRandomInt(0,100) ).
Ensuite, le BJDebugMsg"Random="+I2S(random))

En gros ce trigger permet d'enclencher une des 4 cinématiques pour le moment disponibles.

Devinez quoi? En 20 parties sur Batttle Net (donc carte widgetizée+optimisée), le seul et unique random affiché par le BJDebugMssg est:

42.
_________________
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: 21/07/10 10:13    Sujet du message: Citer

Amen mon gros, le WorldEditor ne se trompe jamais dans les signes qu'il envoie. Tu peux contacter des personnes et leur dire que tu as la preuve d'avoir trouvé la réponse sur le vie ! Mr. Green
_________________
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: 21/07/10 13:51    Sujet du message: Citer

En attendant je n'utilise pas l'option (préférences) pour avoir toujours le même entier, et quoi que je modifie, j'ai toujours le même entier.

Il va varier selon la portée que j'indique (entre 0 et 100, 0 et 10 etc) mais reste toujours le même. J'ai aussi regardé en lancant le déclencheur plus tard (constante WAIT). Rien ne change. J'ai systématiquement le même entier à chaque chargement de la carte oO.
_________________
Revenir en haut
 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: 21/07/10 15:30    Sujet du message: Citer

Peut-être que, sans le savoir, tu as touché aux fonctions de randomization?
Peut-être que t'as pas de chance?
Peut-être que c'est un bug du JNGP?
Peut-être qu'il faut mettre "GetRandomInt" après la déclaration des locales?
Peut-être que le continuum espace-temps s'effondrera sur lui-même si une autre valeur sort?
_________________
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é
 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: 21/07/10 16:17    Sujet du message: Citer

Faudrait regarder le script généré, mais ca m'étonnerait que ca ne soit pas correctement compilé.
Je pense plus à une improbable série.
Tu as réessayé depuis ?
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 jk2pach
Invité








MessagePosté le: 21/07/10 16:43    Sujet du message: Citer

J'ai refait des tonnes de tests. Rien. Même si le nombre peut changer, ça ne fonctionne pas.

Ça fait 5 releases de la carte depuis que j'ai ce problème, et je teste depuis ce matin en modifiant des trucs. Evidemment, selon le random que je demande, le nombre fixe varie (0 à 10? 10 à 100 etc.) Mais il n'en reste pas moins fixe. Là je suis passé de 42 à 73.

Me reste à tester avec des réels.

Edit

Lol/ 5 chargements de carte avec des réels. 5 fois le résultat: 47.958 qui s'affiche.

Bon...
_________________
Revenir en haut
 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: 21/07/10 18:10    Sujet du message: Citer

Hmm, je suis vraiment curieux de voir cette map.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 jk2pach
Invité








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

Allez comme je suis un drôle, j'ai modifié le code ainsi:
Secret:

Jass:
library StartCinematic initializer init needs TextDisplay, Cinematic1, Cinematic2, Cinematic3, Cinematic4, Cinematic5,CinematicSystem

globals
    private constant real WAIT = 0.1
    private constant string MASK = "ReplaceableTextures\\CameraMasks\\Black_mask.blp"
endglobals

    private function InitializeCinematic takes nothing returns boolean
        local integer k = 0
        local integer random = 0
        local integer i = 0
            set ChapterIntermission = true
            call CinematicModeBJ(true,bj_FORCE_ALL_PLAYERS)
            call CinematicFadeBJ( bj_CINEFADETYPE_FADEOUT, 0.,MASK,0,0,0,0)
            call SuspendTimeOfDay(true)
            call SetTimeOfDayScale(0.)
            call SetFloatGameState(GAME_STATE_TIME_OF_DAY, 0.)
            call SetSkyModel("Environment\\Sky\\FelwoodSky\\FelwoodSky.mdx")
            call SetDayNightModels("Environment\\DNC\\DNCDalaran\\DNCDalaranTerrain\\DNCDalaranTerrain.mdx","Environment\\DNC\\DNCDalaran\\DNCDalaranUnit\\DNCDalaranUnit.mdx")
            call MusicOff()
            call FogEnable(true)
            call FogMaskEnable(true)
            loop
                exitwhen i > MAXPLAYER
                call SetPlayerAllianceBJ( Player(i), ALLIANCE_SHARED_VISION, true, Player(10) )
                call SetPlayerAllianceBJ( Player(10), ALLIANCE_SHARED_VISION, true, Player(i) )
                set i = i + 1
            endloop
            call CinematicFadeBJ( bj_CINEFADETYPE_FADEIN, 4.,MASK,0,0,0,0)
            set k = 0
            loop
                exitwhen k > 10
                set random = GetRandomInt(0,100)
                call BJDebugMsg("k= "+I2S(k)+" Random= "+I2S(random))
                set k = k + 1
            endloop
            call BJDebugMsg(" Random= "+I2S(random))
            if random<=20 then
                call StartCinematic1()
            elseif random >20 and random <= 40 then
                call StartCinematic2()
            elseif random >40 and random <= 60 then
                call StartCinematic3()
            elseif random >60 and random <= 80 then
                call StartCinematic4()
            elseif random >80 then
                call StartCinematic5()
            endif
            call MusicCinematic()
            return false
    endfunction


    private function init takes nothing returns nothing
        local trigger t = CreateTrigger()
            call AbilityPreload(CINEM_UNIT)
            call AbilityPreload(BLOOD_FX)
            call CinematicModeBJ(true,bj_FORCE_ALL_PLAYERS)
            call CinematicFadeBJ( bj_CINEFADETYPE_FADEOUT, 0.,MASK,0,0,0,0)
            call TriggerRegisterTimerEvent(t, WAIT,false)
            call TriggerAddCondition(t, Condition(function InitializeCinematic))
    endfunction
 
endlibrary



En gros, en plus, j'ai ajouté une boucle pour régler le random.

Le résultat est toujours le même:
Secret:




Je t'envoie la map par MP.
_________________
Revenir en haut
 jk2pach
Invité








MessagePosté le: 21/07/10 18:53    Sujet du message: Citer

@Troll-Brain: ca sent le roussi:
Jass:
    private function InitializeCinematic takes nothing returns boolean
        local integer k = 0
        local integer random = 0
        local integer i = 0
            //set ChapterIntermission = true
            //call CinematicModeBJ(true,bj_FORCE_ALL_PLAYERS)
            //call CinematicFadeBJ( bj_CINEFADETYPE_FADEOUT, 0.,MASK,0,0,0,0)
            //call SuspendTimeOfDay(true)
            //call SetTimeOfDayScale(0.)
            //call SetFloatGameState(GAME_STATE_TIME_OF_DAY, 0.)
            //call SetSkyModel(SKY)
            //call SetDayNightModels(LIGHT_TERRAIN,LIGHT_UNIT)
            //call MusicOff()
            //call FogEnable(true)
            //call FogMaskEnable(true)
            //loop
                //exitwhen i > MAXPLAYER
                //call SetPlayerAllianceBJ( Player(i), ALLIANCE_SHARED_VISION, true, Player(10) )
                //call SetPlayerAllianceBJ( Player(10), ALLIANCE_SHARED_VISION, true, Player(i) )
                //set i = i + 1
            //endloop
            //call CinematicFadeBJ( bj_CINEFADETYPE_FADEIN, 4.,MASK,0,0,0,0)
            set k = 0
            loop
                exitwhen k > 10
                set random = GetRandomInt(0,100)
                call BJDebugMsg("k= "+I2S(k)+" Random= "+I2S(random))
                set k = k + 1
            endloop
            call BJDebugMsg(" Random= "+I2S(random))
            //if random<=20 then
                //call StartCinematic1()
            //elseif random >20 and random <= 40 then
                //call StartCinematic2()
            //elseif random >40 and random <= 60 then
                //call StartCinematic3()
            //elseif random >60 and random <= 80 then
                //call StartCinematic4()
            //elseif random >80 then
                //call StartCinematic5()
            //endif
            //call MusicCinematic()
            return false
    endfunction


Me donne la même suite de nombres à chaque fois :/ et pourquoi dans ce seul trigger :O
_________________
Revenir en haut
 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...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 21/07/10 19:40    Sujet du message: Citer

Essaye de le faire sans une action de trigger au lieu de condition.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Dj0z
Membre actif


Inscrit le: 05 Avr 2010
Messages: 114
Sujets: 8
Spécialité en worldedit: Faire des maps originales; déclencheurs; solutions.


MessagePosté le: 21/07/10 19:44    Sujet du message: Citer

Par "dans ce seul trigger", tu veux dire que GetRandomInt fonctionne correctement dans d'autres?
_________________
Pour tout ce qui concerne mes maps: http://dj0zmaps.goodforum.net/

"Avatar: L'Ennemi Imprévu": Avatar (de James Cameron) dans warcraft!
http://www.hiveworkshop.com/forums/maps-564/avatar-0-27b-164032/

Chaos Colossus: L'assaut des Colosses du Chaos!
http://www.hiveworkshop.com/forums/maps-564/chaos-colossus-0-83-ju-123911/

Rival Dynasties: Découvrez le vrai potentiel de warcraft, sur fond de guerres dynastiques!
http://www.hiveworkshop.com/forums/maps-564/rival-dynasties-0-99j-142287/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 jk2pach
Invité








MessagePosté le: 21/07/10 19:49    Sujet du message: Citer

Oui!
_________________
Revenir en haut
 Dj0z
Membre actif


Inscrit le: 05 Avr 2010
Messages: 114
Sujets: 8
Spécialité en worldedit: Faire des maps originales; déclencheurs; solutions.


MessagePosté le: 21/07/10 23:14    Sujet du message: Citer

Dans ton screenshot je vois plusieurs résultats différents pour "Random =",
Si ton problème est que le *premier* random est toujours le meme (73 si j'ai bien compris), mais que les autres sont vraiment randomizés, tu peux au pire en choisir un au pif parmi les autres générés?

EDIT:Oublie, j'avais pas tout lu :/

EDIT2: et en créant une fonction dédiée pour le GetRandomInt, que tu appelles depuis ce trigger? si y'a que celui-ça qui bug, ça devrait marcher?
_________________
Pour tout ce qui concerne mes maps: http://dj0zmaps.goodforum.net/

"Avatar: L'Ennemi Imprévu": Avatar (de James Cameron) dans warcraft!
http://www.hiveworkshop.com/forums/maps-564/avatar-0-27b-164032/

Chaos Colossus: L'assaut des Colosses du Chaos!
http://www.hiveworkshop.com/forums/maps-564/chaos-colossus-0-83-ju-123911/

Rival Dynasties: Découvrez le vrai potentiel de warcraft, sur fond de guerres dynastiques!
http://www.hiveworkshop.com/forums/maps-564/rival-dynasties-0-99j-142287/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 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: 22/07/10 12:26    Sujet du message: Citer

Je sais pas si ça peut fonctionner, mais moi dans ton cas ce que j'aurais fait c'est ça :

recréer le déclencheur dans un nouveau, et au lieu de mettre un random sur 100, en mettre un sur 5 (après tout, tu n'as besoin que de 5 possibilités).

Dis-nous si ça change quelque chose, mais de toute manière c'est vrai que ce bug (?) est assez étrange. :s

P'tet que c'est une farce de Bliz². Rolling Eyes

_________________
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: 22/07/10 13:10    Sujet du message: Citer

J'ai, quoi que je change, toujours la même suite d'entiers (elle sera différente selon le calcul que je demande, mais, une fois enregistré, j'ai toujours le même ordre/les mêmes nombres).

J'ai résolu le problème de façon temporaire en demandant un à autre trigger de me calculer un GetRandomInt(0,100) et en le stockant dans une variable globale.
_________________
Revenir en haut
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
Aller à la page 1, 2  Suivante
Page 1 sur 2
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