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

Petites question diverses
Aller à la page 1, 2  Suivante
 
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
 Serial Bigouden
Membre actif


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


MessagePosté le: 06/11/07 19:57    Sujet du message: Petites question diverses Citer

J'ai plusieurs petites questions qui me turlupinent en ce moment ^^"

Tout d'abord, parlons chaines d'ordre... Quand on regarde les chaines d'ordre des sorts de type "flèches", on voit que ces chaines d'ordres sont étrangement assez différentes pour chaque sort.

Petit exemple : pour le sort flèches enflammées, les chaines sont :

Activer : Aucun
Utiliser/Allumer : flamingarrows
Désactiver : Aucun
Off : unflamingarrows

Alors que pour le sort flèches de glace, qui semble pourtant être un sort qui fonctionne exactement de la même façon, il n'y a par défaut aucune chaine d'ordre, pour aucun des 4 champs cités ci-dessus oO

C'est plutot embetant quand on essaye de controler par déclo l'utilisation de tels sorts (j'ai pas encore testé si le fait de donner une chaine d'ordre inutilisé permettait de le faire, d'ailleurs j'aimerais aussi savoir quelle valeur concrète ont les chaine d'ordre quand elles sont attribuées à des compétences avec lesquelles elles n'ont rien à voir, et si avoir deux compétences utilisant la même chaine d'ordre sur la même unité engendre des problèmes).

Deuxième problème, moins prise de tête : alors que j'ai enfin décidé de mettre quelques couleurs (pas trop flashy quand même) dans la description des sorts, je me rends compte que le code utilisé pour définir les couleurs n'est pas composé de 6 chiffres mais de 8 oO
J'aimerais donc savoir quel code de couleur il faut utiliser ^^"

Voilà ça sera tout pour le moment Razz

Merci d'avence ^^
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Bantas
Anomalie floodiforme


Inscrit le: 21 Aoû 2007
Messages: 1524
Sujets: 37

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

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

Pour les couleurs, c'est assez simple Wink Déjà il faut savoir que c'est de l'hexadécimal, et ensuite que les 2 premiers chiffres représentent la transparence (T). Donc en gros quand tu ouvres une balise couleur tu dois faire comme ça :
|cTTRRVVBB
(T = transparence ; R = Rouge ; V = Vert ; B = Bleu)

Pour le 1er problème et bien... elle est où la question ?
_________________
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: 06/11/07 21:55    Sujet du message: Citer

Merci bien pour les couleurs ^^"

Sinon pour mon premier problème je parle je parle mais j'oublie la question c'est malin x)

En clair (j'espère) j'aimerais savoir si pour controler l'action de passer la compétence en lancement automatique au moyen des chaines d'ordre, on peut donner à la compétence (qui à la base n'a aucune chaine d'ordre, comme flèches de glace) une chaine inutilisée par l'unité, et s'y réferer dnas le déclencheur.

Pis tant qu'à faire à quoi sert la chaine d'ordre Activer vu que la chaine Utiliser/Allumer semble remplir le même role ?
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Bantas
Anomalie floodiforme


Inscrit le: 21 Aoû 2007
Messages: 1524
Sujets: 37

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

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

1: Evidemment, je le fais tout le temps avec Canaliser Wink Par contre ça n'empêchera pas 2 sorts de s'emmêler si ils ont la même base (voir la FAQ).

2: Aucune idée.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Magus
Membre a fort taux de post


Inscrit le: 13 Oct 2007
Messages: 994
Sujets: 25
Spécialité en worldedit: Codeur


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

Activer et Desactiver servent pour des sorts que l'ont peut désactiver nous-même (exemple : Defendre des fantassins).
_________________
- La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
- Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Serial Bigouden
Membre actif


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


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

Ok merci pour la précision ^^

Sinon j'ai une autre question qui n'a rien à voir avec le reste :

Je suis en train de me mettre au Jass (ça fait tout drole *-*) et je me demandais si une variable locale était toujours valable dans une fonction appelée dans la fonction principale ?
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
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 16:54    Sujet du message: Citer

une variable locale n'est n'utilisable qu'au sein de sa fonction.
D'ailleurs on ne peut imbriquer des fonctions l'une dans l'autre non ?
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Gevans
Back


Inscrit le: 21 Aoû 2007
Messages: 1930
Sujets: 85

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

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

Je pense qu'il voulait demander si on pouvait faire
function machin
{
local x
call truc(x)
}

Et je dirais que oui dans ce cas.
_________________
Si vous recherchez quelque chose, il y a de très grandes chances que vous trouviez la réponse ici alors jetez y un oeil.
Topic indispensable
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
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
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 16:59    Sujet du message: Citer

c'est même certain si c'est bien ce qu'il voulait dire.
_________________
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 17:02    Sujet du message: Citer

Beh en fait c'est presque ça ^^"

J'ai un if dans ma fonction principale, et pour vérifier la condition, je fais appel à une autre fonction mais la variable locale ne fait malheureusement pas partie des arguments de cette fonction, donc je me demandais si dans ce cas ça pouvais fonctionner (j'ai l'impression que non ><).

Si ça peut pas marcher à la limite je pourrais remplir les conditions en copiant collant le contenu de la fonction ^^" (si ça marche aussi ><)
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
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 17:04    Sujet du message: Citer

l'exemple serait un peu plus clair qu'une suite de mots Smile
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Bantas
Anomalie floodiforme


Inscrit le: 21 Aoû 2007
Messages: 1524
Sujets: 37

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

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

Humpf, en gros tu as une fonction qui renvoie un booléen (comme une condition en GUI) ?

Il suffit donc de mettre un argument à cette fonction, qui sera la variable locale en question Wink
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
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 17:10    Sujet du message: Citer

ou passer par une globale, tout dépend de ce que tu veux faire.
si la fonction doit servir pour d'autres fonctions toussa toussa
_________________
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 17:11    Sujet du message: Citer

Je copie tout le trigger, fraichement converti en texte ^^"

Pour faire simple, ma question sera : quelles variables puis-je passer en local ?

Jass:
function Trig_ManaDrain_Copier_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A00Q' ) ) then
        return false
    endif
    return true
endfunction

function Trig_ManaDrain_Copier_Func004Func002Func001002003001 takes nothing returns boolean
    return ( GetOwningPlayer(GetFilterUnit()) == Player(11) )
endfunction

function Trig_ManaDrain_Copier_Func004Func002Func001002003002 takes nothing returns boolean
    return ( GetUnitStateSwap(UNIT_STATE_LIFE, GetFilterUnit()) >= 1.00 )
endfunction

function Trig_ManaDrain_Copier_Func004Func002Func001002003 takes nothing returns boolean
    return GetBooleanAnd( Trig_ManaDrain_Copier_Func004Func002Func001002003001(), Trig_ManaDrain_Copier_Func004Func002Func001002003002() )
endfunction

function Trig_ManaDrain_Copier_Func004Func002Func003Func004Func001C takes nothing returns boolean
    if ( not ( GetUnitStateSwap(UNIT_STATE_MANA, udg_ManaDrainCurrentTarget) > udg_ManaDrainManaDrained ) ) then
        return false
    endif
    if ( not ( ( GetUnitStateSwap(UNIT_STATE_MAX_MANA, udg_Manavore) - GetUnitStateSwap(UNIT_STATE_MANA, udg_Manavore) ) > udg_ManaDrainManaDrained ) ) then
        return false
    endif
    return true
endfunction

function Trig_ManaDrain_Copier_Func004Func002Func003Func004C takes nothing returns boolean
    if ( not ( GetLocationX(udg_ManaDrainPositionOfTarget) == GetLocationX(GetUnitLoc(udg_ManaDrainCurrentTarget)) ) ) then
        return false
    endif
    if ( not ( GetLocationY(udg_ManaDrainPositionOfTarget) == GetLocationY(GetUnitLoc(udg_ManaDrainCurrentTarget)) ) ) then
        return false
    endif
    return true
endfunction

function Trig_ManaDrain_Copier_Func004Func002C takes nothing returns boolean
    if ( not ( udg_ManavoreChanneling == true ) ) then
        return false
    endif
    return true
endfunction

function Trig_ManaDrain_Copier_Actions takes nothing returns nothing
    set udg_ManavoreChanneling = true
    call TriggerExecute( gg_trg_CanalisationOn )
    set udg_LoopManaDrain = 1
    loop
        exitwhen udg_LoopManaDrain > 2
        set udg_ManaDrainManaDrained = ( I2R(GetHeroStatBJ(bj_HEROSTAT_INT, udg_Manavore, true)) / 3.00 )
        if ( Trig_ManaDrain_Copier_Func004Func002C() ) then
            set udg_ManaDrainGroupTarget = GetUnitsInRangeOfLocMatching(( 200.00 + ( 10.00 * I2R(GetHeroStatBJ(bj_HEROSTAT_INT, udg_Manavore, true)) ) ), GetUnitLoc(udg_Manavore), Condition(function Trig_ManaDrain_Copier_Func004Func002Func001002003))
            set udg_ManaDrainNumberOfTarget = CountUnitsInGroup(udg_ManaDrainGroupTarget)
            set bj_forLoopAIndex = 1
            set bj_forLoopAIndexEnd = udg_ManaDrainNumberOfTarget
            loop
                exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
                set udg_ManaDrainCurrentTarget = GroupPickRandomUnit(udg_ManaDrainGroupTarget)
                set udg_ManaDrainPositionOfTarget = GetUnitLoc(udg_ManaDrainCurrentTarget)
                call TriggerSleepAction( ( 1.00 / I2R(udg_ManaDrainNumberOfTarget) ) )
                if ( Trig_ManaDrain_Copier_Func004Func002Func003Func004C() ) then
                    if ( Trig_ManaDrain_Copier_Func004Func002Func003Func004Func001C() ) then
                        call SetUnitManaBJ( udg_ManaDrainCurrentTarget, ( GetUnitStateSwap(UNIT_STATE_MANA, udg_ManaDrainCurrentTarget) - udg_ManaDrainManaDrained ) )
                        call SetUnitManaBJ( udg_Manavore, ( GetUnitStateSwap(UNIT_STATE_MANA, udg_Manavore) + udg_ManaDrainManaDrained ) )
                        set udg_ManaDrainTotalManaDrained = ( udg_ManaDrainTotalManaDrained + udg_ManaDrainManaDrained )
                        call CreateTextTagLocBJ( ( "-" + I2S(R2I(udg_ManaDrainManaDrained)) ), GetUnitLoc(udg_ManaDrainCurrentTarget), 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 )
                    else
                    endif
                else
                    call DoNothing(  )
                endif
                call GroupRemoveUnitSimple( udg_ManaDrainCurrentTarget, udg_ManaDrainGroupTarget )
                set bj_forLoopAIndex = bj_forLoopAIndex + 1
            endloop
            set udg_LoopManaDrain = 1
        else
            set udg_LoopManaDrain = 2
        endif
        call CreateTextTagLocBJ( ( "+" + I2S(R2I(udg_ManaDrainTotalManaDrained)) ), 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 )
        set udg_ManaDrainTotalManaDrained = 0.00
        set udg_LoopManaDrain = udg_LoopManaDrain + 1
    endloop
endfunction

//===========================================================================
function InitTrig_ManaDrain_Copier takes nothing returns nothing
    set gg_trg_ManaDrain_Copier = CreateTrigger(  )
    call TriggerAddCondition( gg_trg_ManaDrain_Copier, Condition( function Trig_ManaDrain_Copier_Conditions ) )
    call TriggerAddAction( gg_trg_ManaDrain_Copier, function Trig_ManaDrain_Copier_Actions )
endfunction

_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
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 17:14    Sujet du message: Citer

déjà tu pourrais nettoyer l'usine à gaz produite par le gui.
Jass:
    if ( not ( GetSpellAbilityId() == 'A00Q' ) ) then
        return false
    endif
    return true


donne le même résultat :
Jass:
return GetSpellAbilityId() == 'A00Q'


au lieu du
Jass:
GetBooleanAnd
utiliser tout simplement les fonctions avec un
Jass:
and
entre elles

Si ton déclencheur avait un événement du genre une unité est attaqué, tu pourrais utiliser les diiférents GetXUnit() dans toutes les fonctions.
Sinon dans ton exemple, tu ne peux en effet utiliser directement une varaiable locale déclarée dans le fonction actions de ton trigger.

tu passes donc comme tu l'as fait par une variable globale ou comme l'a dit Bantas tu rajoutes un
Jass:
takes unit u
dans ta fonction secondaire
_________________
Le violet, c'est moche.


Dernière édition par Troll-Brain le 09/11/07 17:22; édité 1 fois
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
Aller à la page 1, 2  Suivante
Page 1 sur 2

 
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