Mystiq.org - forum: Ebon plaguebringer -> DeathKnight -> Bugreport

Jump to content

Report ID 7933 Title Ebon plaguebringer
Product DeathKnight Status Opravené (Severity 2 - Fair)

  • 2 Pages +
  • 1
  • 2

Report ID #7933: Ebon plaguebringer

#1 User is offline  
Nerris 

  • Daemonica CT - Death Knight
  • Group: WoW Tester
  • Posts: 792
  • Joined: 10-August 08

Posted 30 March 2012 - 10:47 AM

Ebon plaguebringer

Popis problému: V prípade, že je v raide ďalší DeathKnight s týmto talentom tak si túto disease navzájom prepisujú. A jeden z nich prichádza o 13% z magic damage done. V prípade, že ich je viac má ebon plague stále len jeden DeathKnight a každý by mal mať vlastnú ale NEMAJÚ SA STACKOVAŤ !

Prosím o opravu.


  • 2 Pages +
  • 1
  • 2
 

Replies (1 - 19)

#2 User is offline  
Ladis 

  • Daemonica Team
  • Group: Developer
  • Posts: 540
  • Joined: 29-June 10

Posted 30 March 2012 - 01:51 PM

Ahoj,

Myslím, že těch 13% Magic DMG Taken dostávají všechny DK (i ostatní hráči), co na nakažený target útočí, ale problém je hlavně u Scourge Striku, Blood Striku a dalších spellů, které si zvedají DMG v závislosti na počtu Death Knightových Diseasů na targetu...


S pozdravem Ladis.

#3 User is offline  
Nerris 

  • Daemonica CT - Death Knight
  • Group: WoW Tester
  • Posts: 792
  • Joined: 10-August 08

Posted 30 March 2012 - 03:26 PM

Ladis, on 30 March 2012 - 03:51 PM, said:




Keď sa tak dá nastaviť frost fever, blood plague a kopa ďalších kravín tak táto úprava rozhodne nezabere veľa času. Aspoň si myslím.
Nepočítal som to ale včera som bol hyjal s randomom na repku a bol tam jeden zelený dk a furt mi EP prepisoval a keď náhodou afkoval mal som zázračne vyššie dps na single target aj o 1,5k aoe asi 5-7 takže by som si funkčnosťou nebol dva krát istý.

#4 User is offline  
Nerris 

  • Daemonica CT - Death Knight
  • Group: WoW Tester
  • Posts: 792
  • Joined: 10-August 08

Posted 31 March 2012 - 09:33 AM

Mg zase som klikol delete miesto edit ;) No nenapísal si tam nič nové akurát, že mi tretia disease zvýši dmg niektorých abilít a to mi fakt vravieť nemusíš. :)

#5 User is offline  
Greon 

  • Group: Registrovaný člen
  • Posts: 37
  • Joined: 21-July 10

Posted 04 July 2012 - 05:42 PM

Prosím o opravu, ten 3 deseas se opravdu nebere v potaz co se SS a BS týče a to Unholy dk opravdu bolí, je to rána min za 1k co se tímhle sráží u SS a to je docela podstatný. Stackovat se to samozřejmě nemá, ale mají tam být za každý Unholy DK v raidu! Je to něco podobného jako stormstrike effect u enha shamana, taky tam nemá být jenom jeden, ale mají tam za každýho enha v raidu.

#6 User is offline  
Ladis 

  • Daemonica Team
  • Group: Developer
  • Posts: 540
  • Joined: 29-June 10

Posted 03 November 2012 - 08:48 PM

Updating status to: Převzaté
Updating severity to: 2 - Fair

No...
Zrovna jsem vymyslel opravu pro Scourge Strike (ten má totiž v jádře skript), ale třeba Blood Strike ho nemá a tam to asi tedy neopravím...
Ještě musím otestovat ten SS, jestli na tom třeba nebude padat server a hlavně zda to vůbec bude fungovat =o)

EDIT: Tak jsem přišel na to, jak to pořešit i u Blood Striku a talentu Blood-Caked Blade... Jen to otestuju...

#7 User is offline  
Greon 

  • Group: Registrovaný člen
  • Posts: 37
  • Joined: 21-July 10

Posted 03 November 2012 - 09:41 PM

Počky trochu nechápu? ty to jako opravuješ pro každej ten útok zvlášť? To je sranda?

#8 User is offline  
Ladis 

  • Daemonica Team
  • Group: Developer
  • Posts: 540
  • Joined: 29-June 10

Posted 03 November 2012 - 09:59 PM

Ne, není to sranda, protože ikdyž jsem docílil toho, že měl target na sobě Ebon Plague od dvou DKček současně, stejně se bonus počítal jen tomu, kdo ho tam dal později...
Tak to teď řeším takhle... Jestli s tím máš nějakej problém nebo to dokážeš líp, staň se developerem a pořeš to...

Ladis, on 03 November 2012 - 08:48 PM, said:

EDIT: Tak jsem přišel na to, jak to pořešit i u Blood Striku a talentu Blood-Caked Blade... Jen to otestuju...


#9 User is offline  
Ladis 

  • Daemonica Team
  • Group: Developer
  • Posts: 540
  • Joined: 29-June 10

Posted 03 November 2012 - 10:19 PM

Updating status to: Opraví nová revize

Viz Twitter:

#10 User is offline  
Jamik 

  • Group: Developer
  • Posts: 475
  • Joined: 12-June 11

Posted 03 November 2012 - 10:33 PM

What kind of sorcery is that :)

#11 User is offline  
Greon 

  • Group: Registrovaný člen
  • Posts: 37
  • Joined: 21-July 10

Posted 03 November 2012 - 10:35 PM

A máš to pojištěný, tak že to bude fungovat u DK co maj ten talent? Já se jen ujišťuju.
A nemám s tím problém jen zírám jak složitě to řešíš.

#12 User is offline  
Ladis 

  • Daemonica Team
  • Group: Developer
  • Posts: 540
  • Joined: 29-June 10

Posted 03 November 2012 - 10:38 PM

Ona nějak nefunguje metoda GetDiseasesByCaster, nebo spíš funguje, ale hledá jen funkční efekty... A to Ebon Plague nesplňoval, protože těch 30% a 13% bonus dával jen jednou...
Tak jsem to předělal a teď to hledá vyloženě auru Ebon Plague aplikovanou na targetu od daného DK... Metoda GetAura(spellId, casterGUID)

Jednodušeji to snad ani řešit nešlo =o)

#13 User is offline  
Ladis 

  • Daemonica Team
  • Group: Developer
  • Posts: 540
  • Joined: 29-June 10

Posted 03 November 2012 - 10:42 PM

Kdyby tě to nějak víc zajímalo, tak třeba pro SS to vypadá takto:

Quote

#define EBON_PLAGUE_1 51726 // Ebon Plague (Rank 1)
#define EBON_PLAGUE_2 51734 // Ebon Plague (Rank 2)
#define EBON_PLAGUE_3 51735 // Ebon Plague (Rank 3)
#define FROST_FEVER 55095 // Frost Fever
#define BLOOD_PLAGUE 55078 // Blood Plague

uint32 diseaseCount;
diseaseCount = unitTarget->GetDiseasesByCaster(caster->GetGUID());

Aura* frostFeverByCaster = unitTarget->GetAura(FROST_FEVER, caster->GetGUID());
Aura* bloodPlagueByCaster = unitTarget->GetAura(BLOOD_PLAGUE, caster->GetGUID());
Aura* ebonPlague1ByCaster = unitTarget->GetAura(EBON_PLAGUE_1, caster->GetGUID());
Aura* ebonPlague2ByCaster = unitTarget->GetAura(EBON_PLAGUE_2, caster->GetGUID());
Aura* ebonPlague3ByCaster = unitTarget->GetAura(EBON_PLAGUE_3, caster->GetGUID());

if (diseaseCount && diseaseCount == 2 && (ebonPlague1ByCaster || ebonPlague2ByCaster || ebonPlague3ByCaster) && (frostFeverByCaster && bloodPlagueByCaster))
diseaseCount = 3;
else if (diseaseCount && diseaseCount == 1 && (ebonPlague1ByCaster || ebonPlague2ByCaster || ebonPlague3ByCaster) && (frostFeverByCaster || bloodPlagueByCaster))
diseaseCount = 2;
else
diseaseCount = diseaseCount;

int32 bp = caster->SpellDamageBonusDone(unitTarget, GetSpellInfo(), CalculatePctN(GetHitDamage(), GetEffectValue() * diseaseCount), SPELL_DIRECT_DAMAGE);
caster->CastCustomSpell(unitTarget, DK_SPELL_SCOURGE_STRIKE_TRIGGERED, &bp, NULL, NULL, true);


#14 User is offline  
Greon 

  • Group: Registrovaný člen
  • Posts: 37
  • Joined: 21-July 10

Posted 03 November 2012 - 10:43 PM

No si vem že vlastně BCB bude přeboostěnej když tam bude unholy DK a dejme tomu frost bude davat vetsi rany, sice asi špatnej příklad bo frost si většina nedáva BCB.

#15 User is offline  
Ladis 

  • Daemonica Team
  • Group: Developer
  • Posts: 540
  • Joined: 29-June 10

Posted 03 November 2012 - 10:45 PM

Nevím, zda rozumíš tomu skriptu, co jsem poslal...

Ale boostuje to jen to DKčko, které nahodí na target Ebon Plague, takže Frosťák určitě boostnutej nebude...

#16 User is offline  
Ladis 

  • Daemonica Team
  • Group: Developer
  • Posts: 540
  • Joined: 29-June 10

Posted 03 November 2012 - 10:51 PM

Quote

Aura* ebonPlague1ByCaster = unitTarget->GetAura(EBON_PLAGUE_1, caster->GetGUID());
Aura* ebonPlague2ByCaster = unitTarget->GetAura(EBON_PLAGUE_2, caster->GetGUID());
Aura* ebonPlague3ByCaster = unitTarget->GetAura(EBON_PLAGUE_3, caster->GetGUID());

Každý z těch řádků se ptá na to, zda hráč s GUIDem caster->GetGUID() má na targetu unitTarget auru Ebon Plague (jeden z těch ranků)...
Pokud má na targetu rank 1, tak to vrátí ebonPlague1ByCaster jako TRUE a ostatní dva jako FALSE... Pokud má na targetu rank 3, tak to vrátí ebonPlague3ByCaster jako TRUE a ostatní dva jako FALSE...

Quote

if (diseaseCount && diseaseCount == 2 && (ebonPlague1ByCaster || ebonPlague2ByCaster || ebonPlague3ByCaster) && (frostFeverByCaster && bloodPlagueByCaster))
else if (diseaseCount && diseaseCount == 1 && (ebonPlague1ByCaster || ebonPlague2ByCaster || ebonPlague3ByCaster) && (frostFeverByCaster || bloodPlagueByCaster))

Na těchto řádcích se pak v úseku (ebonPlague1ByCaster || ebonPlague2ByCaster || ebonPlague3ByCaster) ptá, jestli je některý z nich TRUE a pokud ano, pak se podle přítomnosti Frost Feveru a/nebo Blood Plague vrátí nová hodnota diseaseCount... A pokud ne, je hodnota diseaseCount vypočítána jako diseaseCount = unitTarget->GetDiseasesByCaster(caster->GetGUID());

#17 User is offline  
Greon 

  • Group: Registrovaný člen
  • Posts: 37
  • Joined: 21-July 10

Posted 03 November 2012 - 10:59 PM

Ladis, on 03 November 2012 - 10:51 PM, said:

Na těchto řádcích se pak v úseku (ebonPlague1ByCaster || ebonPlague2ByCaster || ebonPlague3ByCaster) ptá, jestli je některý z nich TRUE a pokud ano, pak se podle přítomnosti Frost Feveru a/nebo Blood Plague vrátí nová hodnota diseaseCount... A pokud ne, je hodnota diseaseCount vypočítána jako diseaseCount = unitTarget->GetDiseasesByCaster(caster->GetGUID());



Todle mně trochu líp objasni jak to funguje prosím :)

This post has been edited by Greon: 03 November 2012 - 10:59 PM


#18 User is offline  
Ladis 

  • Daemonica Team
  • Group: Developer
  • Posts: 540
  • Joined: 29-June 10

Posted 03 November 2012 - 11:09 PM

Quote

if (diseaseCount && diseaseCount == 2 && (ebonPlague1ByCaster || ebonPlague2ByCaster || ebonPlague3ByCaster) && (frostFeverByCaster && bloodPlagueByCaster))
. . . . diseaseCount = 3;

...
diseaseCount je jen pojistka, aby nepadal server...
diseaseCount == 2 se ptá na to, zda metoda unitTarget->GetDiseasesByCaster(caster->GetGUID()); vrátila hodnotu 2...
(ebonPlague1ByCaster || ebonPlague2ByCaster || ebonPlague3ByCaster) se ptá, zda jedna z těch 3 hodnot zmíněných v předchozí odpovědi byla TRUE...
(frostFeverByCaster && bloodPlagueByCaster) se ptá, zda naše DKčko má na targetu Frost Fever a Blood Plague současně...
... Pokud všechny tyhle věci platí, přejde to na řádek diseaseCount = 3;... To tedy znamená, že se původní hodnota diseaseCount = 2 změnila na diseaseCount = 3;...


if znamená "za podmínky, že"
else if znamená "jinak za podmínky, že"
else znamená "jinak"

&& znamená totiž "a současně"...
|| znamená "nebo"...

#19 User is offline  
Greon 

  • Group: Registrovaný člen
  • Posts: 37
  • Joined: 21-July 10

Posted 03 November 2012 - 11:13 PM

Dobře nebudu to rozebirat, shrnu dotazy a at to je nejak u konce :)
Kontrola aby se to pocitalo jen pro unholy DK s prislusnym talentem tam je?
A bude to fungovat tak jak ma?

#20 User is offline  
Ladis 

  • Daemonica Team
  • Group: Developer
  • Posts: 540
  • Joined: 29-June 10

Posted 03 November 2012 - 11:15 PM

Psal jsem ti to už několikrát... Kontroluje to, kdo na target nahodil Ebon Plague a tomu to dá ten bonus, nikomu jinému...
A ano, bude to fungovat jak má... Dokonce by to ani nemuselo shazovat server =o)


  • 2 Pages +
  • 1
  • 2

0 User(s) are reading this issue
0 Guests and 0 Anonymous Users


Powered by IP.Tracker 1.3.4 © 2024  IPS, Inc.

TOPlist