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

Et un déclencheur qui plante, un ! ><

 
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
 Serial Bigouden
Membre actif


Inscrit le: 31 Oct 2007
Messages: 142
Sujets: 23
Spécialité en worldedit: Boarf


MessagePosté le: 09/11/07 20:47    Sujet du message: Et un déclencheur qui plante, un ! >< Citer

Bon beh voilà je viens de finir mon premier trigger en Jass :°
Comme je m'y attendais ça marche pas, mais je comprends pas trop pourquoi. Quand je fais vérifier la syntaxe, j'ai une série de messages bizarres :

Code:
ligne 6 : undeclared variable : udg_Manavore
ligne 45 : undeclared variable : udg_ManavoreChanneling
ligne 46 : undeclared variable : gg_trg_CanalisationOn
ligne 49 : comparing two variables of different primitive types (exept real and integer) is not allowed
ligne 61 : undeclared variable : gg_trg_ManaDrain2


Pourtant les variables citées existent, sont de même nature que celles auquelles je les compare et les triggers existent aussi =/

Jass:
function Trig_ManaDrain2_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A00Q'
endfunction

function Trig_ManaDrain2_Loop takes nothing returns nothing
    local real MaxManaDrained = ( I2R(GetHeroStatBJ(bj_HEROSTAT_INT, udg_Manavore, true)) / 3.00 )
    local real ManaDrained = 0
    local group GroupTarget = CreateGroup()
    local player Owner = GetOwningPlayer(udg_Manavore)
    local unit Target = null
    local real TotalManaDrain = 0
    local location TargetPosition = null
    call GroupEnumUnitsInRangeOfLoc(GroupTarget, GetUnitLoc(udg_Manavore), 200.00 + ( 10.00 * I2R(GetHeroStatBJ(bj_HEROSTAT_INT, udg_Manavore, true)) ), null )
    loop
        set Target = FirstOfGroup(GroupTarget)
    exitwhen Target == null
        if (IsUnitEnemy(Target, Owner)) then
            set TargetPosition = (GetUnitLoc(Target))
            call TriggerSleepAction(0.10)
            if TargetPosition == (GetUnitLoc(Target)) then
                set ManaDrained = RMinBJ(RMinBJ(MaxManaDrained, GetUnitState(Target, UNIT_STATE_MANA)), (GetUnitState(udg_Manavore, UNIT_STATE_MAX_MANA) - GetUnitState(udg_Manavore, UNIT_STATE_MANA)))
                call SetUnitState(Target, UNIT_STATE_MANA, (GetUnitState(Target, UNIT_STATE_MANA) - ManaDrained))
                call SetUnitState(udg_Manavore, UNIT_STATE_MANA, (GetUnitState(udg_Manavore, UNIT_STATE_MANA) + ManaDrained))
                set TotalManaDrain = TotalManaDrain + ManaDrained
                call CreateTextTagLocBJ( ( "-" + I2S(R2I(ManaDrained)) ), GetUnitLoc(Target), 10.00, 10, 0.00, 0.00, 100.00, 10.00 )
                call SetTextTagPermanentBJ( GetLastCreatedTextTag(), false )
                call SetTextTagVelocityBJ( GetLastCreatedTextTag(), 96.00, 90 )
                call SetTextTagFadepointBJ( GetLastCreatedTextTag(), 2.00 )
                call SetTextTagLifespanBJ( GetLastCreatedTextTag(), 4.00 )
                call GroupRemoveUnit(GroupTarget, Target)
            endif
        endif
    endloop
    call CreateTextTagLocBJ( ( "+" + I2S(R2I(TotalManaDrain)) ), GetUnitLoc(udg_Manavore), 10.00, 10, 0.00, 0.00, 100.00, 10.00 )
    call SetTextTagPermanentBJ( GetLastCreatedTextTag(), false )
    call SetTextTagVelocityBJ( GetLastCreatedTextTag(), 96.00, 90 )
    call SetTextTagFadepointBJ( GetLastCreatedTextTag(), 2.00 )
    call SetTextTagLifespanBJ( GetLastCreatedTextTag(), 4.00 )
    call TriggerSleepAction(1 - I2R(CountUnitsInGroup(GroupTarget)) * 0.10)
 
 endfunction

function Trig_ManaDrain2_Actions takes nothing returns nothing
    local integer ManaDrainLoop = 1
    set udg_ManavoreChanneling = true
    call TriggerExecute( gg_trg_CanalisationOn )
    loop
        exitwhen ManaDrainLoop > 2
        if (udg_ManavoreChanneling == true) then
            call Trig_ManaDrain2_Loop()
            set ManaDrainLoop = 1
        else
            set ManaDrainLoop = 2
        endif
       
       
    endloop
endfunction
//===========================================================================
function InitTrig_ManaDrain2 takes nothing returns nothing
    set gg_trg_ManaDrain2 = CreateTrigger(  )
    call TriggerAddCondition( gg_trg_ManaDrain2, Condition( function Trig_ManaDrain2_Conditions ) )
    call TriggerAddAction( gg_trg_ManaDrain2, function Trig_ManaDrain2_Actions )
endfunction

_________________
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...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 09/11/07 21:09    Sujet du message: Citer

ligne 6 : undeclared variable : udg_Manavore
ligne 45 : undeclared variable : udg_ManavoreChanneling
ligne 46 : undeclared variable : gg_trg_CanalisationOn
ligne 49 : comparing two variables of different primitive types (exept real and integer) is not allowed
ligne 61 : undeclared variable : gg_trg_ManaDrain2

Tu as bien déclaré dans l'éditeur de variable la variable unité Manavore, le booleen ManavoreChanneling (sans le udg_) et tu as un trigger qui se nomme CanalisationOn ?

Car c'est ce que te réclame l'éditeur.

sinon pour tes fonctions tu n'es pas obligé d'y mettre _Trig, excepté pour l'initialisation du trigger qui doit respecter cette syntaxe :
InitTrig_nomDuTrigger
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Serial Bigouden
Membre actif


Inscrit le: 31 Oct 2007
Messages: 142
Sujets: 23
Spécialité en worldedit: Boarf


MessagePosté le: 09/11/07 21:30    Sujet du message: Citer

Hélas oui j'ai bien toutes ces variables dans l'éditeur de variables =/

Je vois vraiment pas ce qui peut clocher Confused
_________________
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: 09/11/07 21:32    Sujet du message: Citer

pourtant c'est cela le problème et pour m'en assurer j'ai testé moi même.
tu as bien nommé ces variables sans le udg_ ?
tu utilises quel éditeur ?
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Serial Bigouden
Membre actif


Inscrit le: 31 Oct 2007
Messages: 142
Sujets: 23
Spécialité en worldedit: Boarf


MessagePosté le: 09/11/07 21:38    Sujet du message: Citer

Oui après avoir vérifié 5 ou 6 fois je suis sur et certain d'avoir bien nommé les variables. Sinon j'utilise le jassnewgenpack dernière version.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Serial Bigouden
Membre actif


Inscrit le: 31 Oct 2007
Messages: 142
Sujets: 23
Spécialité en worldedit: Boarf


MessagePosté le: 09/11/07 22:42    Sujet du message: Citer

Bon après une tite discussion il s'avèrait qu'il manquait l'event au trigger xD

Mais une fois le problème résolu, j'en recontre un nouveau...

Quand je tente de lancer le sort, le seul résultat c'est un message de type limite ><

Il semblerait que ça soit du au fait que les boucles durent plus que le temps réglementaire... J'aimerais donc savoir comment contourner cette limitation autrement que par un wait (pas assez précis)

Pis ya ptet un problème de boucle infinie aussi (faut savoir que le trigger lancé avant de débuter la boucle principale est sensé, au bout de 5 secondes, faire passer le boléen ManavoreChanneling à false, ce qui arrête la boucle)
Si c'est le cas, même question : comment faire ? ><

Merci d'avance ^^"
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Brissou de Mourièssou
Créateur de sorts, depuis 1936.


Inscrit le: 30 Aoû 2007
Messages: 1510
Sujets: 26
Spécialité en worldedit: Développer des jeux vidéos pour le fun, donc world edit c'est comme faire une addition.
Médailles: 2 (En savoir plus...)
Concours de sorts amusants (Quantité : 1) Créateur de héros (Quantité : 1)

MessagePosté le: 11/11/07 11:23    Sujet du message: Citer

Voilà ce que tu dois savoir faire pour bien réaliser ton sort:
Tuto rustinage GameCache + Exemple d'application = Sort Roxxor++
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
 Serial Bigouden
Membre actif


Inscrit le: 31 Oct 2007
Messages: 142
Sujets: 23
Spécialité en worldedit: Boarf


MessagePosté le: 11/11/07 14:32    Sujet du message: Citer

Guhuhuhaha merci oui je sens que ça va bien m'aider :P

*se frotte les mains*
_________________
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 -> Aide sur les déclencheurs 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