Aura in DB eintragen

Hallo erstmal,

ich möchte gerne eine Aura in die DB (character_aura) eintragen, welche über einen Zeitraum heilt…

Alle anderen Auren gehen wie z.B. Angriffskraft, Ausdauererhöhung usw.

Ich denke mal, das bei einem Buff wie z.B. “Verjüngung” vom Dudu ein Skript ebenfalls gespeichert wird… Aber ich habe die kompletten DBs durchgeguckt und bin auch seit 8 Stunden am dauer-source-code-durchgucken… Ohne Erfolg…

Nun hoffe ich, dass ihr mir helfen könnt.

Also nochmal zusammengefaster:

Ich möchte eine Aura, sagen wir mal Spell=“Regeneration”(38325) in die “characters_aura” table eintragen.

gemacht habe ich das nun so:

INSERT INTO … VALUES(guid, guid, 0,38325,1,1,1,325,0,0,324,0,0,60000,60000,0);

Was muss ich also noch machen, damit ich um x HP geheilt werde (in diesem Fall 325/sec) ?

Danke für die Hilfe.

Die Tabelle Characters_aura versteht sich als eine Temporäre Tabelle, für den Fall das sich jemand ausloggt, oder der Realm abschmiert. Damit beim wieder einloggen noch alle Auren auf dem Spieler sind, die er vorm Ausloggen hatte. Es macht wenig Sinn, dort eine Aura einzutragen. Es wäre so, dass der Char, mit der GUID die du einträgst, diese dann auch hätte, wenn er einloggt, aber eben nur für den normalen Zeitraum und auch nur wenn du die Aura einträgst, wenn der Spieler gerade nicht eingeloggt ist.

Aber genau das möchte ich ja.

Ich will eine Art temp_aura haben, was ja auch funktioniert… Und selbst wenn man z.B. “Verjüngung” castet und sich dann ausloggt, dann wieder einloggt, hat man auch den Heileffekt. Und auch wenn man den Heilwert ändert, wird dieser übernommen (statt 99/sec dann z.b. 9999/sec).

Das muss doch zu schaffen sein, ohne das man die Aura ingame casten muss, sondern nur eintragen braucht, was ja auch, wie schon gesagt, mit anderen auren geht…

Warum also nicht mit einer Aura mit, sagen wir mal “Skript”?

Kommt sicherlich darauf an, was du da genau einzutragen versuchst. Ohne das zu wissen, wirds schwer dir zu helfen. Als nächstes stellt sich mir dann die Frage, wo da der Sinn dahinter stecken soll. Aber wenn du mit deinem Vorhaben ein wenig genauer werden würdest, könnte man dir auch besser helfen.

Also,

ich bin gerade dabei einen Launcher für meinen Server zu schreiben, mit dem man sich Auren kaufen kann.

Das heißt z.B. kaufe ich die Aura “Regeneration”, welche mich um 50.000 HP/sec heilt (Beispiel).

  • Das geht ja, da man den Heilungswert der Aura in der DB verändern kann.

Dann verbindet der Launcher mit dem, dafür ebenfalls programmierten, Server und dieser trägt dann den neuen Entry ein.

Beispiel, wie schon, teils, in einem früheren Post gennant, wäre das hier:


## Regeneration(38325) ##

## guid == guid vom char ##

INSERT INTO `characters`.`character_aura` VALUES(guid, guid, 0, 38325, 1, 1, 1, 0, 0, 0, (Heilung pro Sekunde - 1), 0, 0, 60000, 60000, 0);

Trage ich eben dieses ein, dann habe ich zwar die Aura und auch die “Lichteffekte” der Aura, wenn diese normalerweise heilen sollte, aber eben die Heilung bleibt aus.

Ich habe sozusagen nur das Aussehen, aber nicht den Effekt.

Also schließe ich daraus, dass der dementsprechende Effekt in einer anderen Tabelle eingetragen werden muss, damit auch dieses abläuft und alles funktionieren kann.

Ich habe also alle Tabellenstrukturen durchgesehen, von denen ich denke, dass sie etwas mit Auren/Spells zutun haben.

Leider aber ohne Erfolg.

Also dachte ich, dass ich aus dem Sourcecode der Trinitycore die Zeilen Code finde, die die Heilauren eintragen… Aber nach vielen Stunden der Suche, kein Erfolg.

Dann wirst du die falsche Effekt Mask gesetzt haben. Eine Aura besteht immer aus mehreren, deswegen gibt es diesen Eintrag überhaupt. In der Regel sind das drei Stück. Meist ein Visuel, eben das was du gesehen hast, einen Effekt selbst und noch irgendwas. Wenn du auf Nummer sicher gehen möchtest, sollte es reichen, wenn du jedes mal drei Einträge machst. Alle drei sind identisch nur die Effekt Mask ist einmal 0, einmal 1 und einmal 2.

Danke für deine Hilfe,

ich habe nun das Problem gefunden und schäme mich fast dafür /emoticons/default_biggrin.png

Die effekt_mask war es nicht, konnte es auch eigentlich nicht sein, da ich ingame die Aura gebufft habe um dann den Eintrag zu haben, um dann abschreiben zu können.

Das heißt, wenn es eine falsche effekt_mask wäre, dann hätte der Server ebenfalls eine falsche effekt_mask eingebaut.

Trotzdem muss ich dir für die Infrmation der Aufteilung der Auren danken, denn wie heißt es so schön: “Wissen ist Macht!”.

Nun der Fehler:

Es war simpel und ich bin durch Zufall darauf gestoßen.

Ich habe bei “guid” die normale playerguid (bspw. 3) eingegeben und bei “caster_guid” nicht die selbe, sondern die vom Launcherchar (bspw. 4).

Dies geht scheinbar nicht und als ich “guid” und “casterguid” identisch eingetragen habe, dann ging es auf einmal /emoticons/default_wink.png

Ich danke dir trotzdem für deinen tollen Support /emoticons/default_biggrin.png

“Solved” gibt es wohl nicht und ein “Thanks” scheinbar auch nicht,

sonst hätte ich dessen Funktionen genutzt.

Nun gut…

Dann halt so:

http://freesmileys.smiliesuche.de/lachende/lachende-smilies-0101.gif

Du kannst Beiträge über das kleine “Plus” “Minus” unten rechts bewerten.

Gut zu wissen /emoticons/default_smile.png

Ich habe noch eine Frage:

Wie kann ich die Aura nach dem Tod bestehen lassen, sowie die Alchemie-Fläschchen?

Geht das auch in der Datenbank?

Oder doch nur im Core.

Sowohl als auch. Zum einen könntest du das Attribut dafür in den SpellManager hacken zum andern könntest du den Spell mit Custom Werten in die Spelldbc Tabelle eintragen. Um das entsprechende Attribut heraus zu bekommen, müsstest du dir das Wiki zu den DBC’s anschaun.

Das einzige was ich gefunden habe an DBs ist die table “spell_dbc”,

doch da ist fast nichts kommentiert /emoticons/default_sad.png

edit*

Was du nun mit Spellmanager meinst, kA.

Die Datei spellmgr.cpp im Spell Ordner. Dort werden unter anderem Custom Werte für bestimmte Spells vergeben, um zie zu einem bestimmten verhalten zu zwingen.

Danke für die Antwort.

Ich habe mir den kompletten code reingezogen und das einzig, für mich, verwendbare wäre:

[SPOILER]

[CODE]switch (i)

    {

    case 36350: //They Must Burn Bomb Aura (self)

        spellInfo->EffectTriggerSpell[0] = 36325; // They Must Burn Bomb Drop (DND)

        ++count;

        break;

    case 49838: // Stop Time

        spellInfo->AttributesEx3 |= SPELL_ATTR3_NO_INITIAL_AGGRO;

        ++count;

        break;

    case 61407: // Energize Cores

    case 62136: // Energize Cores

    case 54069: // Energize Cores

    case 56251: // Energize Cores

        spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_AREA_ENTRY_SRC;

        ++count;

        break;

    case 50785: // Energize Cores

    case 59372: // Energize Cores

        spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_AREA_ENEMY_SRC;

        ++count;

        break;

    case 3286:  // Bind

        spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_TARGET_ENEMY;

        spellInfo->EffectImplicitTargetA[1] = TARGET_UNIT_TARGET_ENEMY;

        ++count;

        break;

    case 8494: // Mana Shield (rank 2)

        // because of bug in dbc

        spellInfo->procChance = 0;

        ++count;

        break;

    case 32182: // Heroism

        spellInfo->excludeCasterAuraSpell = 57723; // Exhaustion

        ++count;

        break;

    case 2825:  // Bloodlust

        spellInfo->excludeCasterAuraSpell = 57724; // Sated

        ++count;

        break;

    case 20335: // Heart of the Crusader

    case 20336:

    case 20337:

    case 63320: // Glyph of Life Tap

    // Entries were not updated after spell effect change, we have to do that manually :/

        spellInfo->AttributesEx3 |= SPELL_ATTR3_CAN_PROC_TRIGGERED;

        ++count;

        break;

    case 16007: // Draco-Incarcinatrix 900

        // was 46, but effect is aura effect

        spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_NEARBY_ENTRY;

        spellInfo->EffectImplicitTargetB[0] = TARGET_DST_NEARBY_ENTRY;

        ++count;

        break;

    case 26029: // Dark Glare

    case 37433: // Spout

    case 43140: // Flame Breath

    case 43215: // Flame Breath

    case 70461: // Coldflame Trap

        mSpellCustomAttr[i] |= SPELL_ATTR0_CU_CONE_LINE;

        ++count;

        break;

    case 24340: // Meteor

    case 26558: // Meteor

    case 28884: // Meteor

    case 36837: // Meteor

    case 38903: // Meteor

    case 41276: // Meteor

    case 57467: // Meteor

    case 26789: // Shard of the Fallen Star

    case 31436: // Malevolent Cleave

    case 35181: // Dive Bomb

    case 40810: // Saber Lash

    case 43267: // Saber Lash

    case 43268: // Saber Lash

    case 42384: // Brutal Swipe

    case 45150: // Meteor Slash

    case 64688: // Sonic Screech

    case 72373: // Shared Suffering

    case 71904: // Chaos Bane

    case 70492: // Ooze Eruption

    case 72505: // Ooze Eruption

    case 72624: // Ooze Eruption

    case 72625: // Ooze Eruption

        // ONLY SPELLS WITH SPELLFAMILY_GENERIC and EFFECT_SCHOOL_DAMAGE

        mSpellCustomAttr[i] |= SPELL_ATTR0_CU_SHARE_DAMAGE;

        ++count;

        break;

    case 59725: // Improved Spell Reflection - aoe aura

        // Target entry seems to be wrong for this spell :/

        spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_PARTY_CASTER;

        spellInfo->EffectRadiusIndex[0] = 45;

        ++count;

        break;

    case 27820: // Mana Detonation

    //case 28062: case 39090:             // Positive/Negative Charge

    //case 28085: case 39093:

    case 69782: // Ooze Flood

    case 69796: // Ooze Flood

    case 69798: // Ooze Flood

    case 69801: // Ooze Flood

    case 69538: // Ooze Combine

    case 69553: // Ooze Combine

    case 69610: // Ooze Combine

    case 71447: // Bloodbolt Splash

    case 71481: // Bloodbolt Splash

    case 71482: // Bloodbolt Splash

    case 71483: // Bloodbolt Splash

    case 71390: // Pact of the Darkfallen

        mSpellCustomAttr[i] |= SPELL_ATTR0_CU_EXCLUDE_SELF;

        ++count;

        break;

    case 44978: case 45001: case 45002: // Wild Magic

    case 45004: case 45006: case 45010: // Wild Magic

    case 31347: // Doom

    case 41635: // Prayer of Mending

    case 44869: // Spectral Blast

    case 45027: // Revitalize

    case 45976: // Muru Portal Channel

    case 39365: // Thundering Storm

    case 41071: // Raise Dead (HACK)

    case 52124: // Sky Darkener Assault

    case 42442: // Vengeance Landing Cannonfire

    case 45863: // Cosmetic - Incinerate to Random Target

    case 25425: // Shoot

    case 45761: // Shoot

    case 42611: // Shoot

    case 62374: // Pursued

    case 61588: // Blazing Harpoon

        spellInfo->MaxAffectedTargets = 1;

        ++count;

        break;

    case 52479: // Gift of the Harvester

        spellInfo->MaxAffectedTargets = 1;

        // a trap always has dst = src?

        spellInfo->EffectImplicitTargetA[0] = TARGET_DST_CASTER;

        spellInfo->EffectImplicitTargetA[1] = TARGET_DST_CASTER;

        ++count;

        break;

    case 41376: // Spite

    case 39992: // Needle Spine

    case 29576: // Multi-Shot

    case 40816: // Saber Lash

    case 37790: // Spread Shot

    case 46771: // Flame Sear

    case 45248: // Shadow Blades

    case 41303: // Soul Drain

    case 54172: // Divine Storm (heal)

    case 29213: // Curse of the Plaguebringer - Noth

    case 28542: // Life Drain - Sapphiron

    case 66588: // Flaming Spear

    case 54171: // Divine Storm

        spellInfo->MaxAffectedTargets = 3;

        ++count;

        break;

    case 38310: // Multi-Shot

    case 53385: // Divine Storm (Damage)

        spellInfo->MaxAffectedTargets = 4;

        ++count;

        break;

    case 42005: // Bloodboil

    case 38296: // Spitfire Totem

    case 37676: // Insidious Whisper

    case 46008: // Negative Energy

    case 45641: // Fire Bloom

    case 55665: // Life Drain - Sapphiron (H)

    case 28796: // Poison Bolt Volly - Faerlina

    case 5484:  // Howl Of Terror (Warlock)

        spellInfo->MaxAffectedTargets = 5;

        ++count;

        break;

    case 40827: // Sinful Beam

    case 40859: // Sinister Beam

    case 40860: // Vile Beam

    case 40861: // Wicked Beam

    case 54835: // Curse of the Plaguebringer - Noth (H)

    case 54098: // Poison Bolt Volly - Faerlina (H)

        spellInfo->MaxAffectedTargets = 10;

        ++count;

        break;

    case 50312: // Unholy Frenzy

        spellInfo->MaxAffectedTargets = 15;

        ++count;

        break;

    case 38794: case 33711: //Murmur's Touch

        spellInfo->MaxAffectedTargets = 1;

        spellInfo->EffectTriggerSpell[0] = 33760;

        ++count;

        break;

    case 17941: // Shadow Trance

    case 22008: // Netherwind Focus

    case 31834: // Light's Grace

    case 34754: // Clearcasting

    case 34936: // Backlash

    case 48108: // Hot Streak

    case 51124: // Killing Machine

    case 54741: // Firestarter

    case 57761: // Fireball!

    case 39805: // Lightning Overload

    case 64823: // Item - Druid T8 Balance 4P Bonus

    case 44401: // Missile Barrage

        spellInfo->procCharges = 1;

        ++count;

        break;

    case 44544: // Fingers of Frost

        spellInfo->EffectSpellClassMask[0] = flag96(685904631, 1151048, 0);

        ++count;

        break;

    case 74396: // Fingers of Frost visual buff

        spellInfo->procCharges = 2;

        spellInfo->StackAmount = 0;

        ++count;

        break;

    case 28200: // Ascendance (Talisman of Ascendance trinket)

        spellInfo->procCharges = 6;

        ++count;

        break;

    case 47201: // Everlasting Affliction

    case 47202:

    case 47203:

    case 47204:

    case 47205:

        // add corruption to affected spells

        spellInfo->EffectSpellClassMask[1][0] |= 2;

        ++count;

        break;

    case 49305: // Teleport to Boss 1 DND

    case 64981: // Summon Random Vanquished Tentacle

        spellInfo->EffectImplicitTargetB[0] = TARGET_UNIT_CASTER;

        ++count;

        break;

    case 51852: // The Eye of Acherus (no spawn in phase 2 in db)

        spellInfo->EffectMiscValue[0] |= 1;

        ++count;

        break;

    case 52025: // Cleansing Totem Effect

        spellInfo->EffectDieSides[1] = 1;

        ++count;

        break;

    case 51904: // Summon Ghouls On Scarlet Crusade (core does not know the triggered spell is summon spell)

        spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_CASTER;

        ++count;

        break;

    case 29809:  // Desecration Arm - 36 instead of 37 - typo? :/

        spellInfo->EffectRadiusIndex[0] = 37;

        ++count;

        break;

    // Master Shapeshifter: missing stance data for forms other than bear - bear version has correct data

    // To prevent aura staying on target after talent unlearned

    case 48420:

        spellInfo->Stances = 1 << (FORM_CAT - 1);

        ++count;

        break;

    case 48421:

        spellInfo->Stances = 1 << (FORM_MOONKIN - 1);

        ++count;

        break;

    case 48422:

        spellInfo->Stances = 1 << (FORM_TREE - 1);

        ++count;

        break;

    case 47569: // Improved Shadowform (Rank 1)

        // with this spell atrribute aura can be stacked several times

        spellInfo->Attributes &= ~SPELL_ATTR0_NOT_SHAPESHIFT;

        ++count;

        break;

    case 30421: // Nether Portal - Perseverence

        spellInfo->EffectBasePoints[2] += 30000;

        ++count;

        break;

    // some dummy spell only has dest, should push caster in this case

    case 62324: // Throw Passenger

        spellInfo->Targets |= TARGET_FLAG_UNIT_CASTER;

        ++count;

        break;

    case 16834: // Natural shapeshifter

    case 16835:

        spellInfo->DurationIndex = 21;

        ++count;

        break;

    case 51735: // Ebon Plague

    case 51734:

    case 51726:

        spellInfo->AttributesEx3 |= SPELL_ATTR3_STACK_FOR_DIFF_CASTERS;

        spellInfo->SpellFamilyFlags[2] = 0x10;

        ++count;

        break;

    case 41013: // Parasitic Shadowfiend Passive

        spellInfo->EffectApplyAuraName[0] = 4; // proc debuff, and summon infinite fiends

        ++count;

        break;

    case 27892: // To Anchor 1

    case 27928: // To Anchor 1

    case 27935: // To Anchor 1

    case 27915: // Anchor to Skulls

    case 27931: // Anchor to Skulls

    case 27937: // Anchor to Skulls

        spellInfo->rangeIndex = 13;

        ++count;

        break;

    case 48743: // Death Pact

        spellInfo->AttributesEx &= ~SPELL_ATTR1_CANT_TARGET_SELF;

        ++count;

        break;

    // target allys instead of enemies, target A is src_caster, spells with effect like that have ally target

    // this is the only known exception, probably just wrong data

    case 29214: // Wrath of the Plaguebringer

    case 54836: // Wrath of the Plaguebringer

        spellInfo->EffectImplicitTargetB[0] = TARGET_UNIT_AREA_ALLY_SRC;

        spellInfo->EffectImplicitTargetB[1] = TARGET_UNIT_AREA_ALLY_SRC;

        ++count;

        break;

    case 31687: // Summon Water Elemental

        // 322-330 switch - effect changed to dummy, target entry not changed in client:(

        spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_CASTER;

        ++count;

        break;

    case 18500: // Wing Buffet

    case 33086: // Wild Bite

    case 49749: // Piercing Blow

    case 52890: // Penetrating Strike

    case 53454: // Impale

    case 59446: // Impale

    case 62383: // Shatter

    case 64777: // Machine Gun

    case 65239: // Machine Gun

    case 65919: // Impale

    case 67858: // Impale

    case 67859: // Impale

    case 67860: // Impale

    case 69293: // Wing Buffet

    case 74439: // Machine Gun

        mSpellCustomAttr[i] |= SPELL_ATTR0_CU_IGNORE_ARMOR;

        ++count;

        break;

    case 63675: // Improved Devouring Plague

        spellInfo->AttributesEx3 |= SPELL_ATTR3_NO_DONE_BONUS;

        ++count;

        break;

    case 33206: // Pain Suppression

        spellInfo->AttributesEx5 &= ~SPELL_ATTR5_USABLE_WHILE_STUNNED;

        ++count;

        break;

    case 8145: // Tremor Totem (instant pulse)

    case 6474: // Earthbind Totem (instant pulse)

        spellInfo->AttributesEx5 |= SPELL_ATTR5_START_PERIODIC_AT_APPLY;

        ++count;

        break;

    case 53241: // Marked for Death (Rank 1)

    case 53243: // Marked for Death (Rank 2)

    case 53244: // Marked for Death (Rank 3)

    case 53245: // Marked for Death (Rank 4)

    case 53246: // Marked for Death (Rank 5)

        spellInfo->EffectSpellClassMask[0] = flag96(423937, 276955137, 2049);

        ++count;

        break;

    case 70728: // Exploit Weakness

    case 70840: // Devious Minds

        spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_CASTER;

        spellInfo->EffectImplicitTargetB[0] = TARGET_UNIT_PET;

        ++count;

        break;

    case 70893: // Culling The Herd

        spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_CASTER;

        spellInfo->EffectImplicitTargetB[0] = TARGET_UNIT_MASTER;

        ++count;

        break;

    case 54800: // Sigil of the Frozen Conscience - change class mask to custom extended flags of Icy Touch

                // this is done because another spell also uses the same SpellFamilyFlags as Icy Touch

                // SpellFamilyFlags[0] & 0x00000040 in SPELLFAMILY_DEATHKNIGHT is currently unused (3.3.5a)

                // this needs research on modifier applying rules, does not seem to be in Attributes fields

        spellInfo->EffectSpellClassMask[0] = flag96(0x00000040, 0x00000000, 0x00000000);

        ++count;

        break;

    case 19970: // Entangling Roots (Rank 6) -- Nature's Grasp Proc

    case 19971: // Entangling Roots (Rank 5) -- Nature's Grasp Proc

    case 19972: // Entangling Roots (Rank 4) -- Nature's Grasp Proc

    case 19973: // Entangling Roots (Rank 3) -- Nature's Grasp Proc

    case 19974: // Entangling Roots (Rank 2) -- Nature's Grasp Proc

    case 19975: // Entangling Roots (Rank 1) -- Nature's Grasp Proc

    case 27010: // Entangling Roots (Rank 7) -- Nature's Grasp Proc

    case 53313: // Entangling Roots (Rank 8) -- Nature's Grasp Proc

        spellInfo->CastingTimeIndex = 1;

        ++count;

        break;

    case 61719: // Easter Lay Noblegarden Egg Aura - Interrupt flags copied from aura which this aura is linked with

        spellInfo->AuraInterruptFlags = AURA_INTERRUPT_FLAG_HITBYSPELL | AURA_INTERRUPT_FLAG_TAKE_DAMAGE;

        ++count;

        break;

    // ULDUAR SPELLS

    //

    case 63342: // Focused Eyebeam Summon Trigger (Kologarn)

        spellInfo->MaxAffectedTargets = 1;

        ++count;

        break;

    case 62716: // Growth of Nature (Freya)

    case 65584: // Growth of Nature (Freya)

    case 64381: // Strength of the Pack (Auriaya)

        spellInfo->AttributesEx3 |= SPELL_ATTR3_STACK_FOR_DIFF_CASTERS;

        ++count;

        break;

    case 63018: // Searing Light (XT-002)

    case 65121: // Searing Light (25m) (XT-002)

    case 63024: // Gravity Bomb (XT-002)

    case 64234: // Gravity Bomb (25m) (XT-002)

        spellInfo->MaxAffectedTargets = 1;

        ++count;

        break;

    case 62834: // Boom (XT-002)

    // This hack is here because we suspect our implementation of spell effect execution on targets

    // is done in the wrong order. We suspect that EFFECT_0 needs to be applied on all targets,

    // then EFFECT_1, etc - instead of applying each effect on target1, then target2, etc.

    // The above situation causes the visual for this spell to be bugged, so we remove the instakill

    // effect and implement a script hack for that.

        spellInfo->Effect[EFFECT_1] = 0;

        ++count;

        break;

    case 64386: // Terrifying Screech (Auriaya)

    case 64389: // Sentinel Blast (Auriaya)

    case 64678: // Sentinel Blast (Auriaya)

        spellInfo->DurationIndex = 28; // 5 seconds, wrong DBC data?

        ++count;

        break;

    case 63278: // Mark of the Faceless (General Vezax)

        mSpellCustomAttr[i] |= SPELL_ATTR0_CU_IGNORE_ARMOR;

        ++count;

        break;

    case 64422: // Sonic Screech (Auriaya)

        mSpellCustomAttr[i] |= SPELL_ATTR0_CU_SHARE_DAMAGE;

        mSpellCustomAttr[i] |= SPELL_ATTR0_CU_IGNORE_ARMOR;

        ++count;

        break;

    case 64321: // Potent Pheromones (Freya)

        // spell should dispel area aura, but doesn't have the attribute

        // may be db data bug, or blizz may keep reapplying area auras every update with checking immunity

        // that will be clear if we get more spells with problem like this

        spellInfo->AttributesEx |= SPELL_ATTR1_DISPEL_AURAS_ON_IMMUNITY;

        ++count;

        break;

    // ENDOF ULDUAR SPELLS

    //

    // ICECROWN CITADEL SPELLS

    //

    // THESE SPELLS ARE WORKING CORRECTLY EVEN WITHOUT THIS HACK

    // THE ONLY REASON ITS HERE IS THAT CURRENT GRID SYSTEM

    // DOES NOT ALLOW FAR OBJECT SELECTION (dist > 333)

    case 70781: // Light's Hammer Teleport

    case 70856: // Oratory of the Damned Teleport

    case 70857: // Rampart of Skulls Teleport

    case 70858: // Deathbringer's Rise Teleport

    case 70859: // Upper Spire Teleport

    case 70860: // Frozen Throne Teleport

    case 70861: // Sindragosa's Lair Teleport

        spellInfo->EffectImplicitTargetA[0] = TARGET_DST_DB;

        ++count;

        break;

    case 69055: // Saber Lash (Lord Marrowgar)

    case 70814: // Saber Lash (Lord Marrowgar)

        spellInfo->EffectRadiusIndex[0] = 8;    // 5yd

        ++count;

        break;

    case 69075: // Bone Storm (Lord Marrowgar)

    case 70834: // Bone Storm (Lord Marrowgar)

    case 70835: // Bone Storm (Lord Marrowgar)

    case 70836: // Bone Storm (Lord Marrowgar)

    case 72864: // Death Plague (Rotting Frost Giant)

    case 72378: // Blood Nova (Deathbringer Saurfang)

    case 73058: // Blood Nova (Deathbringer Saurfang)

    case 71160: // Plague Stench (Stinky)

    case 71161: // Plague Stench (Stinky)

    case 71123: // Decimate (Stinky & Precious)

        spellInfo->EffectRadiusIndex[0] = 12;   // 100yd

        ++count;

        break;

    case 72385: // Boiling Blood (Deathbringer Saurfang)

    case 72441: // Boiling Blood (Deathbringer Saurfang)

    case 72442: // Boiling Blood (Deathbringer Saurfang)

    case 72443: // Boiling Blood (Deathbringer Saurfang)

        spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_TARGET_ENEMY;

        spellInfo->EffectImplicitTargetB[0] = 0;

        ++count;

        break;

    case 70460: // Coldflame Jets (Traps after Saurfang)

        spellInfo->DurationIndex = 1;   // 10 seconds

        ++count;

        break;

    case 71413: // Green Ooze Summon (Professor Putricide)

    case 71414: // Orange Ooze Summon (Professor Putricide)

        spellInfo->EffectImplicitTargetA[0] = TARGET_DEST_DEST;

        ++count;

        break;

    // THIS IS HERE BECAUSE COOLDOWN ON CREATURE PROCS IS NOT IMPLEMENTED

    case 71604: // Mutated Strength (Professor Putricide)

    case 72673: // Mutated Strength (Professor Putricide)

    case 72674: // Mutated Strength (Professor Putricide)

    case 72675: // Mutated Strength (Professor Putricide)

        spellInfo->Effect[1] = 0;

        ++count;

        break;

    case 70911: // Unbound Plague (Professor Putricide)

    case 72854: // Unbound Plague (Professor Putricide)

    case 72855: // Unbound Plague (Professor Putricide)

    case 72856: // Unbound Plague (Professor Putricide)

        spellInfo->EffectImplicitTargetB[0] = TARGET_UNIT_TARGET_ENEMY;

        ++count;

        break;

    case 71518: // Unholy Infusion Quest Credit (Professor Putricide)

    case 72934: // Blood Infusion Quest Credit (Blood-Queen Lana'thel)

    case 72289: // Frost Infusion Quest Credit (Sindragosa)

        spellInfo->EffectRadiusIndex[0] = 28;   // another missing radius

        ++count;

        break;

    case 71708: // Empowered Flare (Blood Prince Council)

    case 72785: // Empowered Flare (Blood Prince Council)

    case 72786: // Empowered Flare (Blood Prince Council)

    case 72787: // Empowered Flare (Blood Prince Council)

        spellInfo->AttributesEx3 |= SPELL_ATTR3_NO_DONE_BONUS;

        ++count;

        break;

    case 71266: // Swarming Shadows

    case 72890: // Swarming Shadows

        spellInfo->AreaGroupId = 0; // originally, these require area 4522, which is... outside of Icecrown Citadel

        ++count;

        break;

    case 70588: // Suppression

    case 70602: // Corruption

        spellInfo->AttributesEx |= SPELL_ATTR1_STACK_FOR_DIFF_CASTERS;

        ++count;

        break;

    case 70715: // Column of Frost (visual marker)

        spellInfo->DurationIndex = 32; // 6 seconds (missing)

        ++count;

        break;

    case 71085: // Mana Void (periodic aura)

        spellInfo->DurationIndex = 9; // 30 seconds (missing)

        ++count;

        break;

    case 70936: // Summon Suppressor

        spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_TARGET_ANY;

        spellInfo->EffectImplicitTargetB[0] = 0;

        ++count;

        break;

    case 71357: // Order Whelp

        spellInfo->EffectRadiusIndex[0] = 22;

        ++count;

        break;

    case 70598: // Sindragosa's Fury

        spellInfo->EffectImplicitTargetA[0] = TARGET_DST_CASTER;

        ++count;

        break;

    case 69846: // Frost Bomb

        spellInfo->speed = 10;

        spellInfo->EffectImplicitTargetA[0] = TARGET_DEST_TARGET_ANY;

        spellInfo->EffectImplicitTargetB[0] = TARGET_UNIT_TARGET_ANY;

        spellInfo->Effect[1] = 0;

        ++count;

        break;

    default:

        break;

    }[/CODE][/SPOILER]

Also habe ich mal “spellInfo->” eingegeben um die Autoverfolständigung zu bekommen und habe mir mal alles durchgelesen…

Aber keines der properties passt zu meinem Anliegen.

sowas wie:

spellInfo->DispelAtDeath = false;

gibt es leider nicht.

Wüsste jetzt auch nichtmal zu 100% das es der richtige switch ist…

Die anderen Methoden sehen für mich aber, schon alleine des Namens, nicht brauchbar, für meine Zwecke, aus.

Schau dir doch einfach mal den Zauber eines Buffs an, der auch nach dem Tod noch aktiv ist. Gibt da ja diverse Flächschen. Nimm den Spell davon und schau in den DBC’s nach, was du dort finden kannst.

Klar habe ich vor meinem Post schon in der SpellMrg.cpp gesucht und nicht eines der Fläschchen gefunden, leider…

Wegen der DBC meinst du jetzt die “Item.dbc” vom Server?

oder die “DBCStores.cpp”, denn in der ist nichts drinne.

Nur so nebenbei gesagt, ich habe mich bis jetzt weder mit der Core, noch mit den DBC auseinander gesetzt.

Ich werde mich morgen mal mit den .dbc-Files auseinandersetzen, nachdem ich ein passendes Tool zum öffnen gefunden habe.

ich denke jedoch nicht, dass ich dort viel rauserkennen werde /emoticons/default_smile.png

Man wird morgen mehr sehen.

Du leistest einen tollen Support (Und das nicht nur bei mir, wie ich sehe), Danke dafür /emoticons/default_smile.png

Naja man tut, was man kann und da du mir lernwillig scheinst, helfe ich auch gerne.

Was die DBC’s angeht. Das sind im Grunde nur einfache Tabellen. Tools findet man schnell, wenn man ein wenig Googlet. Eine Erklärung der DBC’s findest du im Trintiy Wiki

http://www.trinitycore.info/Files:DBC

Ich nehme mal an, dass die Spell.dbc für dich entscheident sein wird. Das du im SpellMgr nichts findest, hatte ich erwartet. Da das eine generelle Mechanik ist, die so ja auch bereits implementiert ist, wird deren Handling irgnedwo in einer der spell_*.cpp zu finden sein. Eventuell auch der unit.cpp. Es könnte helfen, wenn du nach gewissen Schlagworten in der Source suchst. Also alle Projektdateien nach dem Wort “flask” “after death” und dergleichen durchsuchst.

Nun hab ich mal eben selbst geschaut. Das ganze nennt sich DEATH_PERSISTANT und ist ein Spell Attribut. In dem Fall Ex3. Ein Hack im SpellMgr könnte so aussehen:


case 12345: // 12345 ist mit der Spell ID zu ersetzen, die du nutzen möchtest

	spellInfo->AttributesEx3 |= SPELL_ATTR3_DEATH_PERSISTENT;

	++count;

	break;

Erstmal Danke für deine Antwort,

Ich habe mir deinen Code mal angesehen und in die Core eingebaut und der Code schmeißt keine Syntaxfehler raus und das ist toll, aber ich wollte erstmal sehen, ob es auch ohne neuer Core funktioniert, nämlich mit der besagten “spell.dbc”.

Ich habe also ein Tool zum öffnen der DBC’s ausm Internet geholt (DBC_Tool von TRX) und habe die spell.dbc nach einen der “Fläschchen-Aura-Entrys” durchsuchen lassen und dort habe ich dann das attr3 kopiert (von dem Wiki weiß ich, dass es Spalte 7 ist) und nach dem Spellentry des eigentlichen Spells bzw. Aura gesucht und auch gefunden.

Ich habe dann Spalte 7, welches vorher attr3 == 0 hatte, in das zuvor kopierte attr3 geändert.

Habe den Server restartet und mir die Aura in der Db gegeben und eingeloggt, dann mit .die gekillt und es ging! Es war nach dem Tod immernoch aktiv.

Jedoch habe ich, vorsichtshalber, alles auf Fehler kontrolliert und habe dann bei “.lookup spell #ID” festellen müssen, dass die worldserver.exe crasht…

Kann es sein, dass es durch das falsche Eintragen kommen kann?

Doch außer dem einen Wert von attr3 habe ich nichts verändert…

Ich habe natürlich ein backup der spell.dbc gemacht und wollte sicher gehen, dass es an dem liegt.

Ich habe also die backup_Spell.dbc und die Spell.dbc getauscht und erneut “.lookup spell #ID” probiert und es ging.

Es liegt also 100% an diesem einem verändertem Wert.

Oder MUSS ich sowohl in der “Spell.dbc” als auch in der “Spell.cpp” dies ändern (Also deinen Code beim Customswitch einfügen)?

edit*

Es klingt für mich jedoch nicht logisch.

Es sollte eine der beiden Varianten reichen. Um heraus zu bekommen, wieso das Ganze bei dir Crasht, solltest du mal im Debug kompilieren, dann den Crash provozieren und anschließend das Crash Log hier posten.

Ansonsten schön zu sehen, dass du es geschafft hast und das gar nicht mal soo langsam.

Ja, ich bin halt ein blutiger Anfänger /emoticons/default_biggrin.png

Wie gesagt, habe mich damit noch nie wirklich beschäftigt und kann daher “fast bis gar-” nichts, außer der Programmiersprache, welche ich schon vorher konnte…

Ich habe leider keine Zeit mehr jetzt, aber ich werde nachher mal versuchen das ganze im Debug-Mode zu kompilieren, dankeschön /emoticons/default_smile.png