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=2392789e8e92b93aae875d3c1cef3215Mé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 avec une compétence objet

 
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: 03/12/07 18:55    Sujet du message: Problème avec une compétence objet Citer

Bon ben vlà qu'les compétences objet font des siennes =P

Je code un cri de bataille pour l'un de mes héros, qui est sensé augmenter la force et l'agilité des héros alliés pour 20s, le bonus dépendant de l'intelligence.

J'ai donc créé une compétence objet en me basant sur la compétence objet "objet bonus caractéristiques du héros", et je lui ai mis une dizaine de lvl, de quoi prendre en compte tout les cas possibles.

Ensuite viens ce trigger :

Jass:
function BattleCry_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A015'
endfunction

function BattleCry_Actions takes nothing returns nothing
    local group g = CreateGroup()
    local group gt = CreateGroup()
    local unit u = null
    local location l = GetUnitLoc(udg_Ravageur)
    local integer lvl = R2I(GetHeroInt(udg_Ravageur, true)/5)
   
    if lvl == 0 then
        set lvl = 1
    endif
   
    call GroupEnumUnitsInRangeOfLoc(g, l, 500, null)
    loop
        set u = FirstOfGroup(g)
    exitwhen u == null
        if (IsUnitAlly(u, GetOwningPlayer(udg_Ravageur))) and (GetUnitState(u, UNIT_STATE_LIFE) > 0) then
            call UnitAddAbility(u, 'A010')
            call SetUnitAbilityLevel(u, 'A010', lvl)
            call GroupAddUnit(gt, u)
        endif
        call GroupRemoveUnit(g, u)
    endloop
       
   
    call DestroyGroup(g)
    set g = null
    set lvl = 0
       
    call TriggerSleepAction(20)
   
    loop
        set u = FirstOfGroup(gt)
    exitwhen u == null
        call UnitRemoveAbility(u, 'A010')
        call GroupRemoveUnit(gt, u)
    endloop
   
   
    call DestroyGroup(gt)
    set gt = null
endfunction

//===========================================================================
function InitTrig_BattleCry takes nothing returns nothing
    set gg_trg_BattleCry = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_BattleCry, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_BattleCry, Condition( function BattleCry_Conditions ) )
    call TriggerAddAction( gg_trg_BattleCry, function BattleCry_Actions )
endfunction


Le problème : le niveau de la compétence n'est jamais augmenté, il reste toujours à 1 =/

Jme suis dit que c'était ptet le cas de toutes les compétences objet, alors je l'ai transformée en compétence unité : même résultat.
Ptet que c'est du à une erreur de codage qui m'aurait échappée, je sais pas du tout Confused si quelqu'un trouve le problème ça m'arrangerai ^^"

Et sinon :
Jass:

call DestroyGroup(gt)
    set gt = null


C'est inutile ? J'ai testé l'inverse ça fait un joli message d'erreur rouge (ça se conçoit ^^")
_________________
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: 03/12/07 19:08    Sujet du message: Citer

affiche le level:
Jass:
call BJDebugMsg ( I2S ( lvl ) )


Tu es sûr d'avoir sépcifier le nombre de niveaux dans l'éditeur d'objet ?

sinon oui le set null est utile pour toutes les variables de type handle (et les sous classes de ce type ), sinon ca leak.

D'ailleurs je viens d'appendre un autre truc incroyable.
ca leak quand on met null en paramètre pour un boolexpr >.<

http://wc3campaigns.net/showthread.php?t=98114
_________________
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: 03/12/07 19:38    Sujet du message: Citer

J'ai rajouté ta ligne de code, et ça m'affiche bien 2 (le héros a 10 d'intell), sinon oui j'ai bien spécifié les 10 niveaux de la compétence =/

Et pour le leak des null tant pis jcompte pas me mettre au vjass avant les vac de noel x)

Mmh par contre j'ai une question : ya un champ pour la compétence que j'utilise => Masquer bouton true/false, elle est par défaut sur false donc je dois mal interpréter sa fonction (jpensais à montrer/masquer l'icone mais sur false on la voit pas donc bon --")
_________________
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...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 03/12/07 19:43    Sujet du message: Citer

euh là ya que la déclaration de la globale en Vjass et y'a vraiment rien de méchant.
sans lire la doc j'ai compris tout de suite Smile
Edit : ah nan mais si ca te gêne tu peux supprimer la première ligne, endlibrary et les private
Tu parles de quelle compétence ?
_________________
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: 03/12/07 19:50    Sujet du message: Citer

j'sais pas j'ai arrêté dès que j'ai vu global Laughing
Mais il suffit de mettre une fonction qui retourne toujours true non ?

Sinon je parle de la compétence objet qui s'appelle "bonus caractéristiques du héros"
_________________
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...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 03/12/07 19:53    Sujet du message: Citer

oui bien sûr si tu regardes le code tu vois que c'est cela.

T'as pas l'id plutôt du spell (Ctrl + D) ?
_________________
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: 03/12/07 19:59    Sujet du message: Citer

Alx4 ^^
_________________
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: 03/12/07 20:03    Sujet du message: Citer

ton option sert à ne pas voir la croix jaune sur l'unité.
sinon étant donné que les niveaux n'étaient pas prévu peut être que ca bug, et peut être que les effets se stockent, au lieu de set le level rajoute x fois la compétence pour voir
_________________
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: 03/12/07 21:24    Sujet du message: Citer

J'ai remplacé un morceau de la fonction par ça :

Jass:
call GroupEnumUnitsInRangeOfLoc(g, l, 500, null)
    loop
        set n = lvl
        set u = FirstOfGroup(g)
    exitwhen u == null
        if (IsUnitAlly(u, GetOwningPlayer(udg_Ravager))) and (GetUnitState(u, UNIT_STATE_LIFE) > 0) then
            call GroupAddUnit(gt, u)
            loop
                call UnitAddAbility(u, 'A010')
                set n = n - 1
            exitwhen n == 0
            endloop
        endif
        call GroupRemoveUnit(g, u)
    endloop


Mais ça marche toujours pas :/
Soit jme suis planté dans la fonction, soit ya un bug zarb :s
_________________
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...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 03/12/07 21:39    Sujet du message: Citer

Peut être que c'est le même bug que la compétence objet bonus de vie supérieur ('AIl2)
Pour rajouter des points de vie il faut que ca soit négatif et inversement.
Y'a une map de démo sur wc3campaigns (SetUnitMaxState).

En fait ta compétence c'est 'AIx4' et non 'Alx4' sale naab Razz
_________________
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: 03/12/07 21:42    Sujet du message: Citer

Mmh jviens de voir qu'en fait c'est exactement la même compétence que "bonus de caractéristiques" 'Aamk', jvais test en masquant le bouton ^^

EDIT: hé ho personne n'est parfait j'ai déjà vérifié que c'était pas A1x4 c'est suffisant xD

EDIT²: bon beh ça marche impecc ^^
Encore un bug qui échappe à tes filets ? ><
_________________
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...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 03/12/07 22:01    Sujet du message: Citer

Hmm c'est à toi de découvrir pourquoi ca bug mais j'ai émit l'hypothèse que plusieurs niveaux n'avaient pas été prévus pour cette compétence Very Happy
_________________
Le violet, c'est moche.
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