← GeekServers.gg [DEBUG:1782456837]
⚠ Archive en lecture seule — Retour sur GeekServers.gg
Bonjour à tous !

Je suis surpris de ne pas trouver (à moins que je ne soit un peu manchot...) de poste sur les macro du démoniste. Il y a énormément de macro très intéressantes pour le démoniste et je suis un piètre codeur sur 1.12...

Si vous pouviez, Mesdames et Messieurs les warlock, posté ici vos macros avec leur description et fonction ça serait super cool !
Sur le moment je suis surtout à la recherche d'un macro équivalent à /castsequence dans les extensions suivantes.

Merci d'avance !
Laurelin


De même, sa m’intéresse d'avoir quelque macro sous le bras pour démo.
J'ai essayer d'en faire une qui lance deux dot mais marche pas ^^ j'y connais rien je laisse les connaisseurs nous éclairer ^^
Barbebrune


/cast sacrifice

pour le boubou du bleu

/lancer Dévorer la magie(Rang 4)
et
/cast Verrou Magique(Rang 2)

pour le chien

/script PetAttack(target)

le pet attaque

et sinon j'ai pas la macro pour claquer les 2 trinket en même temp, mais j'ai pas trop chercher
Lorea

<Dissection>


Le castsequence ne fonctionne pas sur vanilla, peut être avec super maccro mais castsequence c'est pas bien!
Je peux te proposer 2/3 maccros pvp sinon..

Pour te dispell avec ton fellhunter ( si tu remplacer player par le nom d'un pote tu peux avoir un bind pour le dispell )
/target player
/cast dévorer la magie
/cast bouclier de feu
/script TargetLastTarget();

Tu peux utiliser les maccros de Lorea ou les combiner pour n'avoir que deux bind sur les sort basiques de tes pets avec
/cast verrou magique
/cast séduction
et ( qui te permet de dispell un ennemi ou allié en le ciblant ou de buff un kop1 avec ton diablo)
/cast bouclier de feu
/cast dévorer la magie
/cast sacrifice


Pour annoncer le nom du type que tu tp
/s Je tp %t
/cast Rituel d'invocation

Pour finir par la maccro inutile donc indispensable -.-
/s (\(\
/s (**)
/s (")(")¤
Dirtyz


Merci pour vos réponses.
J'utilise déjà la majorité de ces macros.

La castsequence effectivement n'existe pas sur vanilla mais j'ai trouvé une condition qui peux vérifier les débuffs avant de cast. J'imagine une macro du genre :

/cast syphon de vie
/cast "si syphon de vie présent" malédiction d'agonie
/cast "si malédiction d'agonie présente" corruption
(à peu pres ^^)

Je test ca et je vous redis.
Laurelin


Hello ! Je me suis penché sur ta demande et voici ce que j'ai écrit :

Code: Tout sélectionner
/script ----[[

for i = 1, 16 do
  if (UnitDebuff("target", i) == "Interface\\Icons\\Spell_Shadow_Requiem") then
    if (UnitDebuff("target", i) == "Interface\\Icons\\Spell_Shadow_CurseOfSargeras") then
      CastSpellByName("Corruption");
    end

    CastSpellByName("Malédiction d'agonie");
  else
    CastSpellByName("Siphon de vie");
  end
end

----]]


Elle fait 348 caractères. Il faudra donc que tu télécharges SuperMacro pour qu'elle fonctionne.

Vérifie bien que ce sont les bons noms de sort. Il se peut qu'il manque une majuscule quelque part. Si jamais tu joues en anglais, il faudra mettre les noms en VO.
Anshey

<Carpe Diem>


Je suis Charlie !
Salut Anshey,

Merci pour ta réponse !

J'étais arrivé à un truc du genre :

/run if UnitDebuff("target", 1, "player") then CastSpellByName("Malédiction d'agonie") else CastSpellByName("Corruption")

Ca ca marche mais on se limite a savoir si j'ai deja posé un debuff... Autrement dit, si je pose immol avant de lancer la macro il me met Malédiction d'agonie...

La condition UnitDebuff ne fonctionne chez moi qu'avec cette syntaxe :
UnitDebuff("unit", index [,raidFilter])

par rapport à http://wowpedia.org/API_UnitDebuff, je ne peux pas mettre l'argument "name". Je ne comprend pas pourquoi et c'est bien dommage ^^.

La je vais analyser ta proposition voir si j'ai bien tout pigé.

for i = 1, 16 do : crée une nouvelle variable i qui est 1, 2, 3... => 16
(UnitDebuff("target", i) == "Interface\\Icons\\Spell_Shadow_Requiem") : recherche un débuff sur la cible à l'emplacement i (donc de 1 à 16) s'il y a l'icône shadow requiem, qui je pense correspond à Corruption ^^.

Pas bête comme technique ! Mais ça marche pas chez moi ^^.
Liste de tout ce qu'il ne va pas :

/script ----[[ : ça me met une erreur, il ne connais pas le ----[[
if (UnitDebuff("targ(...) : la syntaxe de UnitDebuff n'est pas respecter, il ne veut pas de la variable i.
"Interface\\Icons\\Spell_Shadow_Requiem" : t'as trouver ça comment ??? je suis intéressé, c'est une bonne technique ^^, meme si avec une syntaxe basique ça marche pas, mais il ne me met pas d'erreur...

Voila ou j'en suis.
Je vais test un truc un peu batard mais fonctionnel avec les index je mettrai les news ici ^^.

a+
Laurelin


J'aurai peut être du être plus précis quant à son installation sur SuperMacro.

Il faut donc avant tout que tu l'installes car le nombre de caractères dépasse la limite légale.

Ensuite, tu crées une SuperMacro où tu colles le contenu suivant :

Code: Tout sélectionner
/script ----[[

for i = 1, 16 do
  if (UnitDebuff("target", i) == "Interface\\Icons\\Spell_Shadow_Requiem") then
    if (UnitDebuff("target", i) == "Interface\\Icons\\Spell_Shadow_CurseOfSargeras") then
      CastSpellByName("Corruption");
    end

    CastSpellByName("Malédiction d'agonie");
  else
    CastSpellByName("Siphon de vie");
  end
end

----]]


Puis tu crées une macro tout ce qu'il y a de plus basique dans lequel tu écris :

Code: Tout sélectionner
/script RunSuperMacro("NomDeLaSuperMacro");


Ce sera cette dernière que tu vas déplacer dans ta barre des sorts.

La chaîne de caractères ----[[ permet juste un développement sur plusieurs lignes dans SuperMacro. Sinon, ce serait un sacré bordel pour s'y retrouver malgré l'expérience. ^^
Tu avais eu un message d'erreur parce que tu avais collé l'ensemble dans les macros classiques qui le reconnait pas cette chaîne de caractères.

Inutile d'affecter l'ensemble des valeurs générées par UnitDebuff dans des variables car la plupart ne nous servent pas et il est malheureusement impossible (ou alors c'est ailleurs) de récupérer le nom du buff. J'avais trouvé comme technique de relever le nom de l'icone vue que deux débuffs n'ont pas la même icone.

Pour connaître le nom de l'icone, il existe des banques sur le net qui les répertorient. Mais j'évite de m'y fier car les noms ont peut être changé au fil des extensions.

Pour relever le nom de l'icone, écrit la commande suivante dans le tchat en ciblant l'ennemi ayant le débuff dont tu aimerais analyser.

Code: Tout sélectionner
/script for i = 1, 16 do SendChatMessage(UnitBuff("target", i), "say") end


Normalement, ça devrait fonctionner.

N'hésite pas à me /w IG si tu as un soucis. Je serai présent en fin d'après-midi, début de soirée.

++
Anshey

<Carpe Diem>


Je suis Charlie !
C'est bon ! Macro fonctionnelle.

Le principe est de demander à UnitDebuff de contrôler si le débuff souhaité est présent sur la cible et lancer un sort en fonction de l'information

/script for i=1,16 do if UnitDebuff("target", i, "player") == "Interface\\Icons\\Spell_Shadow_AbominationExplosion" then CastSpellByName("Malédiction d'agonie") end end
/lancer Corruption

En langage commun :

i = 1, 2, 3... => 16 ; si un icone de débuff sur la cible dans le slot i lancé par le joueur est nommé AbominationExplosion alors lancer Malédiction d'agonie (AbominationExplosion est le nom de l'icone du débuff de Corruption)
(sinon) lancer corruption

(pour les connaisseurs) Je n'ai pas mis "else CastSpell(...)" à la suite de la macro pour lancer corruption parce que ca me déclenche une tentative de lancer je ne sais pas combien de corruption avec message/avertissement sonore un peu lourd.
Supermacro n'est pour le coups pas forcément utile (187 caract.) mais si on rajoute des sorts, il le devient vite !

Les noms des icones des sorts ne correspondent pas aux noms des sorts.
Pour les démo :
corruption = AbominationExplosion
malédiction d'agonie = CurseOfSargeras
siphon de vie = Requiem

Et oui, c'est un équivalent de la macro castsequence qui n'existait pas encore en 1.12, et que tout le monde me disait que c'était impossible...

Merci à Anshey
Laurelin


Il y avait une erreur au niveau des conditions. L'une d'elle n'avait jamais la possibilité d'être vérifier.

Maintenant, c'est théoriquement bon. Réessaye-la.

Elle suit scrupuleusement la séquence que tu avais décrit. Modifie la à ta guise.

++
Anshey

<Carpe Diem>


Je suis Charlie !
Bonjour,

J'ai une question concernant votre macro, est-ce que celle-ci est utilisable même si un autre démoniste a placé les même dots ?

Car personnellement j'utilise cette macro :

Code: Tout sélectionner
/script if not buffed("Corruption", 'target') then cast("Corruption") else if not buffed("Malédiction d'agonie", 'target') then cast("Malédiction d'agonie") else if not buffed("Siphon de vie", 'target') then cast("Siphon de vie") end end end


Et j'en constate 2 bémols :

- Si un autre démo a placé corruption, malédiction d'agonie ou siphon de vie, je ne peux plus poser les miennes.
- Le deuxième bémol n'est pas forcément très important, mais dans la barre de sort, l'icone de sort affiché pour la macro reste celle définie dans celle-ci et non celle du sort en qui va être lancé.
Lugdunum

<Sanctuary>


Salut Lugdunum,

La réponse à a ta question est oui :

UnitDebuff("target", i, "player") = contrôle des débuff("sur la cible", dans le slot i, "lancé par le joueur")

A+

Laurelin
Laurelin


Déterrage de topic :p, si l'auteur de la macro est toujours présent, ou que quelqu'un d'autre l'utilise, j'essaye d'utiliser cette macro pour cast mes malés ombre/elem en fonction des débuffs sur la cible mais cela ne fonctionne pas. Aucun message d'erreur mais je ne lance aucun sort.

Pour info j'ai trouvé que l'icône de malé des éléments était : spell_shadow_chilltouch et malé de l'ombre : spell_shadow_curseofarchimonde.
Okessa

<Zéro>


il faut passer par la création d'un script en lua que l'on met dans un addon genre
addon use zorlen:


macro : qui appel la fonction lua
Code: Tout sélectionner
/script castsmale(0,1)
ou /script castsmale(1,0)


dan un lua:
Code: Tout sélectionner
function castmale(coe,coa)


if UnitAffectingCombat("target") then
   if coe == 1  and cos == 0 and not Zorlen_checkDebuffByName("CurseOfTheElements", "target") and castCurseOfTheElements()  then
      return true
   elseif cos == 1  and coe == 0 and not Zorlen_checkDebuffByName("CurseOfShadow", "target") and castCurseOfShadow()  then
      return true   
end
end   
end
Sartiesh

<KTschisme>


Ça ne marche toujours pas, ça ne cast absolument rien. Peut-être que je l'ai mis au mauvais endroit dans le lua ?
Okessa

<Zéro>





Conditions générales d'utilisation et mentions légales - Code de conduite des forums - Contact