Informatikai Barkács Fórum

WORLD OF WARCRAFT SZERVER => Core/Mag Modifikációk => A témát indította: ramizz Dátum 2013 szeptember 17, 07:13:47 DÉLUTÁN

Cím: Spell Nerfelés
Írta: ramizz Dátum 2013 szeptember 17, 07:13:47 DÉLUTÁN
Sziasztok!

Egy spellt szeretnék le gyengíteni, mert hatalmasakat üt, és a Spell_bonus_data táblába nem lehet rajta módosítani, azaz hiába módosítok, ugyanolyan erős marad, mert direct_bonus, dot_bonus, ap_bonus, és a ap_dot_bonus 0-n van.
Kérdésem az lenne, hogy Core-n belül hogyan tudom gyengíteni a spellt? Illetve DBC-ben lehetséges nerfelni?

Cím: Re:Spell Nerfelés
Írta: Anubisss Dátum 2013 szeptember 17, 08:11:15 DÉLUTÁN
Hat sokat segitene ha elarulnad, hogy mi a spell es milyen verzioju a WoW. :)
Cím: Re:Spell Nerfelés
Írta: ramizz Dátum 2013 szeptember 17, 08:28:30 DÉLUTÁN
Trinitycore 3.3.5.

Spell: http://www.wowhead.com/spell=53595/hammer-of-the-righteous
Cím: Re:Spell Nerfelés
Írta: Anubisss Dátum 2013 szeptember 17, 08:33:51 DÉLUTÁN
https://github.com/TrinityCore/TrinityCore/blob/master/src/server/game/Spells/SpellEffects.cpp#L625

Itt kene probalkoznod.
Cím: Re:Spell Nerfelés
Írta: ramizz Dátum 2013 szeptember 17, 08:45:29 DÉLUTÁN
Nekem ez így le írás nélkül Kínai  :'(
Cím: Re:Spell Nerfelés
Írta: Anubisss Dátum 2013 szeptember 18, 03:59:16 DÉLUTÁN
:)
Ha bug miatt akarod javitani, akkor annak a normalis javitasaba inkabb nem mennek bele, mert ugy sem ertened szerintem. :)

Ellenben ha csak nerfelni akarod, vagy esetleg igy szeretned/probalod javitani a bugot, akkor a damage valtozot allitgasd.


// Hammer of the Righteous
if (m_spellInfo->SpellFamilyFlags[1]&0x00040000)
{
    // Add main hand dps * effect[2] amount
    float average = (m_caster->GetFloatValue(UNIT_FIELD_MINDAMAGE) + m_caster->GetFloatValue(UNIT_FIELD_MAXDAMAGE)) / 2;
    int32 count = m_caster->CalculateSpellDamage(unitTarget, m_spellInfo, EFFECT_2);
    damage += count * int32(average * IN_MILLISECONDS) / m_caster->GetAttackTime(BASE_ATTACK);
    break;
}



pl. ha azt szeretned, hogy a mostani sebzesnek csak a 85%-at sebezze akkor a kovetkezot hasznald: damage *= 0.85f;

azaz a teljes kod:

// Hammer of the Righteous
if (m_spellInfo->SpellFamilyFlags[1]&0x00040000)
{
    // Add main hand dps * effect[2] amount
    float average = (m_caster->GetFloatValue(UNIT_FIELD_MINDAMAGE) + m_caster->GetFloatValue(UNIT_FIELD_MAXDAMAGE)) / 2;
    int32 count = m_caster->CalculateSpellDamage(unitTarget, m_spellInfo, EFFECT_2);
    damage += count * int32(average * IN_MILLISECONDS) / m_caster->GetAttackTime(BASE_ATTACK);
    damage *= 0.85f;
    break;
}


UI.: Persze az is elofordulhat, hogy ez nem pont 85% lesz, mert ezt a damage valtozot kesobb meg mas is modosithatja, sot nagyon eselyes, hogy fogja is. Probalgatni kell, hogy neked mikor lesz szimpatikus a sebzes. Azt hiszem a semminel az boven jobb nerfelesre es meg egyszeru is. :)
Cím: Re:Spell Nerfelés
Írta: ramizz Dátum 2013 szeptember 21, 08:19:38 DÉLELŐTT
Kösz tesó  ;D