EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Bug Reports (https://www.eqemulator.org/forums/forumdisplay.php?f=591)
-   -   Resurrection Effects: (https://www.eqemulator.org/forums/showthread.php?t=26228)

So_1337 09-19-2008 05:47 PM

Resurrection Effects:
 
Heya.

Just thought I'd make a quick post about two spells that I've noticed issues with. It seems that both Customer Service Resurrect and Divine Resurrect give Resurrection Effects as a debuff once the rez is accepted. Hadn't ever noticed this before because it was only recently that Derision's handy dandy pop-up windows made Rezzing worth paying attention to.

Both give the correct text in the pop-up window (100% XP and the right spell name), so they aren't getting crossed anywhere. I'd imagine that there's some part of the code that deals with people being rezzed, and automatically slaps Resurrection Effects on them when it happens. Sometime down the line, this will have to have an exception put into place.

Oh, and I know it's already been reported, but Resurrection Effects can be dispelled, which severely lessens its intended affect. Is that something that's dealt with in the spell file that we can't easily touch? Or is it code-based somewhere?

Thanks for any feedback on either of these issues, anyone.

Derision 09-19-2008 06:18 PM

Quote:

Originally Posted by So_1337
Heya.

It seems that both Customer Service Resurrect and Divine Resurrect give Resurrection Effects as a debuff once the rez is accepted.


If these spells shouldn't give Rez effects:

in zone/client_process.cpp, void Client::OPRezzAnswer(const EQApplicationPacket* app),

around line 943, try changing

Code:

SpellOnTarget(756,this);
to:

Code:

// No Rez effects for Customer Service Rez, or Divine Rez
if((ra->spellid != 994) && (ra->spellid != 2738))
                        SpellOnTarget(756,this);

Untested.

ChaosSlayer 09-19-2008 09:41 PM

I think it would be nice if server code could recognize these spells by some OTHER value rather than the spell id#.
What if I want to have OTHER spell wihout rezurection sickness effect?
What if I am using a totaly diffirent spell file where these id correspand to nuke and levitation?

IMHO we should have a Rule to turn rez sickness effects on and off for all spells (so i can make all rez spells on my server sickness free)

AndMetal 09-19-2008 10:31 PM

Quote:

Originally Posted by ChaosSlayer (Post 156383)
I think it would be nice if server code could recognize these spells by some OTHER value rather than the spell id#.

I was doing some digging into this, but it looks like there really isn't much that sets those spells apart from the regular rezzes in the spells_us.txt file:
Code:

id        name        player_1        teleport_zone        you_cast        other_casts        cast_on_you        cast_on_other        spell_fades        range        aoerange        pushback        pushup        cast_time        recovery_time        recast_time        buffdurationformula        buffduration        AEDuration        mana        effect_base_value1        effect_base_value2        effect_base_value3        effect_base_value4        effect_base_value5        effect_base_value6        effect_base_value7        effect_base_value8        effect_base_value9        effect_base_value10        effect_base_value11        effect_base_value12        effect_limit_value1        effect_limit_value2        effect_limit_value3        effect_limit_value4        effect_limit_value5        effect_limit_value6        effect_limit_value7        effect_limit_value8        effect_limit_value9        effect_limit_value10        effect_limit_value11        effect_limit_value12        max1        max2        max3        max4        max5        max6        max7        max8        max9        max10        max11        max12        icon        memicon        components1        components2        components3        components4        component_counts1        component_counts2        component_counts3        component_counts4        NoexpendReagent1        NoexpendReagent2        NoexpendReagent3        NoexpendReagent4        formula1        formula2        formula3        formula4        formula5        formula6        formula7        formula8        formula9        formula10        formula11        formula12        LightType        goodEffect        Activated        resisttype        effectid1        effectid2        effectid3        effectid4        effectid5        effectid6        effectid7        effectid8        effectid9        effectid10        effectid11        effectid12        targettype        basediff        skill        zonetype        EnvironmentType        TimeOfDay        classes1        classes2        classes3        classes4        classes5        classes6        classes7        classes8        classes9        classes10        classes11        classes12        classes13        classes14        classes15        classes16        CastingAnim        TargetAnim        TravelType        SpellAffectIndex        field124        field125        deities1        deities2        deities3        deities4        deities5        deities6        deities7        deities8        deities9        deities10        deities11        deities12        deities13        deities14        deities15        deities16        field142        field143        new_icon        spellanim        uninterruptable        ResistDiff        dot_stacking_exempt        deleteable        RecourseLink        field151        field152        field153        short_buff_box        descnum        typedescnum        effectdescnum        field158        field159        field160        field161        bonushate        field163        field164        field165        EndurCost        EndurTimerIndex        field168        field169        field170        field171        field172        HateAdded        EndurUpkeep        field175        numhits        pvpresistbase        pvpresistcalc        pvpresistcap        spell_category        field181        field182        field183        field184        can_mgb        nodispell        npc_category        npc_usefulness        field189        field190        field191        field192        field193        field194        field195        field196        field197        field198        field199        field200        field201        field202        field203        field204        field205        field206        spellgroup        field208        field209        field210        field211        field212        field213        field214
388        Resuscitate        PLAYER_1                                                        200        0        0        0        6000        2250        20000        0        0        0        500        60        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        2510        2051        -1        -1        -1        -1        1        1        1        1        -1        -1        -1        -1        100        100        100        100        100        100        100        100        100        100        100        100        0        1        0        0        81        254        254        254        254        254        254        254        254        254        254        254        15        15        5        -1        0        0        255        37        255        255        255        255        255        255        255        255        255        255        255        255        255        255        43        0        0        1        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        101        209        0        0        0        1        0        0        0        0        0        388        42        82        0        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        5        101        49        27        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        1        0        0        0        0        0        -1        0        0        0        1        0        0        1        1
391        Revive        PLAYER_1        0                                                200        0        0        0        6000        2250        20000        0        0        0        300        35        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        2510        2051        -1        -1        -1        -1        1        1        1        1        -1        -1        -1        -1        100        100        100        100        100        100        100        100        100        100        100        100        0        1        0        0        81        254        254        254        254        254        254        254        254        254        254        254        15        25        5        -1        0        0        255        27        39        255        255        255        255        255        255        255        255        255        255        255        255        255        43        0        0        1        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        101        209        0        0        0        1        0        0        0        0        0        391        42        82        0        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        5        101        24        27        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        1        0        0        0        0        0        -1        0        0        0        1        0        0        1        1
392        Resurrection        PLAYER_1                                                        200        0        0        0        6000        2250        20000        0        0        0        700        90        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        2510        2051        -1        -1        -1        -1        1        1        1        1        -1        -1        -1        -1        100        100        100        100        100        100        100        100        100        100        100        100        0        1        0        0        81        254        254        254        254        254        254        254        254        254        254        254        15        0        5        -1        0        0        255        47        59        255        255        255        255        255        255        255        255        255        255        255        255        255        43        0        0        1        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        101        209        0        0        0        1        0        0        0        0        0        392        42        82        0        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        -42        133        -57        27        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        1        0        0        0        0        0        -1        0        0        0        1        0        0        1        1
994        Customer Service Resurrect        PLAYER_1                                                        100        0        0        0        0        0        0        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        2510        2051        -1        -1        -1        -1        1        1        1        1        -1        -1        -1        -1        100        100        100        100        100        100        100        100        100        100        100        100        0        1        0        0        81        254        254        254        254        254        254        254        254        254        254        254        15        25        5        -1        0        0        255        255        255        255        255        255        255        255        255        255        255        255        255        255        255        255        43        0        0        1        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        161        73        0        0        0        0        0        0        0        0        0        994        0        0        0        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        -99        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        1        0        0        0        0        1        -1        0        0        0        1        0        0        1        1
1524        Reviviscence        PLAYER_1                                                        200        0        0        0        7000        2250        15000        0        0        0        600        96        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        2510        2051        -1        -1        -1        -1        1        1        1        1        -1        -1        -1        -1        100        100        100        100        100        100        100        100        100        100        100        100        0        1        0        0        81        254        254        254        254        254        254        254        254        254        254        254        15        0        5        -1        0        0        255        56        255        255        255        255        255        255        255        255        255        255        255        255        255        255        43        0        0        1        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        101        209        0        0        0        1        0        0        0        0        0        1524        42        82        0        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        -62        135        -78        27        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        1        0        0        0        0        0        -1        0        0        0        1        0        0        1        1
1733        Convergence        PLAYER_1                                                        200        0        0        0        6000        2250        20000        0        0        0        700        93        -90        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        2510        2051        9963        -1        -1        -1        1        1        1        1        -1        -1        -1        -1        100        100        100        100        100        100        100        100        100        100        100        100        0        1        0        0        81        254        254        254        254        254        254        254        254        254        254        254        15        0        5        -1        0        0        255        255        255        255        255        255        255        255        255        255        53        255        255        255        255        255        43        0        0        13        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        101        290        0        0        0        0        0        0        0        0        0        1733        42        82        0        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        -47        134        -70        27        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        1        0        0        0        0        0        -1        0        0        0        1        0        0        1        1
2168        Reanimation        PLAYER_1                                                        200        0        0        0        6000        2250        20000        0        0        0        150        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        2510        2051        -1        -1        -1        -1        1        1        1        1        -1        -1        -1        -1        100        100        100        100        100        100        100        100        100        100        100        100        0        1        0        0        81        254        254        254        254        254        254        254        254        254        254        254        15        0        5        -1        0        0        255        12        22        255        255        255        255        255        255        255        255        255        255        255        255        255        43        0        0        1        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        101        209        0        0        0        1        0        0        0        0        0        2168        42        82        0        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        5        101        17        27        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        1        0        0        0        0        0        -1        0        0        0        1        0        0        1        1
2169        Reconstitution        PLAYER_1                                                        200        0        0        0        6000        2250        20000        0        0        0        200        10        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        2510        2051        -1        -1        -1        -1        1        1        1        1        -1        -1        -1        -1        100        100        100        100        100        100        100        100        100        100        100        100        0        1        0        0        81        254        254        254        254        254        254        254        254        254        254        254        15        0        5        -1        0        0        255        18        30        255        255        255        255        255        255        255        255        255        255        255        255        255        43        0        0        1        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        101        209        0        0        0        1        0        0        0        0        0        2169        42        82        0        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        5        101        20        27        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        1        0        0        0        0        0        -1        0        0        0        1        0        0        1        1
2170        Reparation        PLAYER_1                                                        200        0        0        0        6000        2250        20000        0        0        0        250        20        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        2510        2051        -1        -1        -1        -1        1        1        1        1        -1        -1        -1        -1        100        100        100        100        100        100        100        100        100        100        100        100        0        1        0        0        81        254        254        254        254        254        254        254        254        254        254        254        15        0        5        -1        0        0        255        22        31        255        255        255        255        255        255        255        255        255        255        255        255        255        43        0        0        1        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        101        209        0        0        0        1        0        0        0        0        0        2170        42        82        0        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        5        101        22        27        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        1        0        0        0        0        0        -1        0        0        0        1        0        0        1        1
2171        Renewal        PLAYER_1                                                        200        0        0        0        6000        2250        20000        0        0        0        400        50        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        2510        2051        -1        -1        -1        -1        1        1        1        1        -1        -1        -1        -1        100        100        100        100        100        100        100        100        100        100        100        100        0        1        0        0        81        254        254        254        254        254        254        254        254        254        254        254        15        0        5        -1        0        0        255        32        49        255        255        255        255        255        255        255        255        255        255        255        255        255        43        0        0        1        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        101        209        0        0        0        1        0        0        0        0        0        2171        42        82        0        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        5        101        47        27        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        1        0        0        0        0        0        -1        0        0        0        1        0        0        1        1
2172        Restoration        PLAYER_1                                                        200        0        0        0        6000        2250        20000        0        0        0        600        75        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        2510        2051        -1        -1        -1        -1        1        1        1        1        -1        -1        -1        -1        100        100        100        100        100        100        100        100        100        100        100        100        0        1        0        0        81        254        254        254        254        254        254        254        254        254        254        254        15        0        5        -1        0        0        255        42        55        255        255        255        255        255        255        255        255        255        255        255        255        255        43        0        0        1        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        101        209        0        0        0        1        0        0        0        0        0        2172        42        82        0        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        5        101        52        27        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        1        0        0        0        0        0        -1        0        0        0        1        0        0        1        1
2738        Divine Resurrection        PLAYER_1                                                        200        0        0        0        0        2250        2250        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        2510        2051        -1        -1        -1        -1        1        1        1        1        -1        -1        -1        -1        100        100        100        100        100        100        100        100        100        100        100        100        0        1        0        0        81        254        254        254        254        254        254        254        254        254        254        254        15        0        98        -1        0        0        255        254        255        255        255        255        255        255        255        255        255        255        255        255        255        255        43        0        0        1        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        101        73        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        999        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        1        0        0        0        0        0        -1        0        0        0        1        0        0        1        1
7207        Soulmend        PLAYER_1                                                        200        0        0        0        6000        2250        15000        0        0        0        600        96        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        2510        2051        -1        -1        -1        -1        1        1        1        1        -1        -1        -1        -1        100        100        100        100        100        100        100        100        100        100        100        100        0        1        0        0        81        254        254        254        254        254        254        254        254        254        254        254        15        0        98        -1        0        0        255        255        255        255        255        255        255        255        255        255        255        255        255        255        255        255        43        0        0        1        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        101        209        0        0        0        0        0        0        0        0        0        0        82        0        0        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        0        100        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        1        0        0        0        0        0        -1        0        0        0        1        0        0        1        1

Quote:

What if I want to have OTHER spell wihout rezurection sickness effect?
What if I am using a totaly diffirent spell file where these id correspand to nuke and levitation?
Well, if you're going through all the trouble to create a spell file, you could just make the changes in the source (and make sure to change it again if/when you update the server code).

Quote:

IMHO we should have a Rule to turn rez sickness effects on and off for all spells (so i can make all rez spells on my server sickness free)
Flexibility is good, so I can agree to that. Adding the check is easy:
Code:

if (RuleB(Spells,RezEffectOn) && (ra->spellid != 994) && (ra->spellid != 2738))
        SpellOnTarget(756,this);

Then you just need to add the rule in the code, which isn't hard.

In common/ruletypes.h, around line 117, add:
Code:

RULE_CATEGORY( Spells )
RULE_INT (Spells, AutoResistDiff, 15)
RULE_REAL (Spells, ResistChance, 2.0) //chance to resist given no resists and same level
RULE_REAL (Spells, ResistMod, 0.40) //multiplier, chance to resist = this * ResistAmount
RULE_REAL (Spells, PartialHitChance, 0.7) //The chance when a spell is resisted that it will partial hit.
RULE_REAL (Spells, PartialHitChanceFear, 0.25) //The chance when a fear spell is resisted that it will partial hit.
RULE_BOOL (Spells, RezEffectOn, 1) //Cast rez effect on rez spells, 0 to turn off
RULE_CATEGORY_END()

Then, you can add the rule into the database:
Code:

INSERT INTO rule_values VALUES (0, Spells:RezEffectOn, 1)
And now you have the option to turn rez effects off.

ChaosSlayer 09-19-2008 11:35 PM

Great work Andmetal! I hope the new rule would ne added to the code =)


BUT I have an idea how to make those spells stand out.

we need to make rule: Special Rez spell Id: (x,x,x)

how about that?

them wihout altering the code the special spells can be listed in rules and code can adress them by whatever ID numbers entered there rather than have spell ID hard coded into the source

I belive that all AA and discplines also have hard coded spell ids?
I think we should make a separate table which would store ID to ABility/AA corespandance so in a custom spell file I coudl set for exmaple soem monk special discipline to point to some other spell wihout touching the code itself

this woudl give me option fo complitly wiping the original spell file and build a new one where say all heals go one by one rather than been scatered all over the file, wihout having to go around hard coded spells cuase I can't touch their ID#

think about this one =)

spoon 09-22-2008 04:27 PM

I took a look at this and noticed something. There is a difference between the spells with Resurrection Effects and those that don't. However they are currently in "spacing158" fields.

If you look in spdat.h at the SPDat_Spell_Struct:
Code:

/* 157 */  int                        effectdescnum; // eqstr of effect description
/* 158 */ int spacing158[4];
/* 162 */  int                        bonushate;

Which probably means we don't know what they are.

In spells_us.txt those fields are:
Code:

ID        Name        Nameeffectdescnum        spacing158_1        spacing158_2        spacing158_3        spacing158_4        bonushate
2169        Reconstitution        0        2169        42        82               
2172        Restoration        0        2172        42        82               
2168        Reanimation        0        2168        42        82               
1733        Convergence        0        1733        42        82               
392        Resurrection        0        392        42        82               
391        Revive        0        391        42        82               
388        Resuscitate        0        388        42        82               
1524        Reviviscence        0        1524        42        82               
2171        Renewal        0        2171        42        82               
994        Customer Service Resurrect        0        994                               
2738        Divine Resurrection        0        0

The spells with spacing158_1 set to 42 are:
Code:

8106        Perfected Heal
1523        Word of Redemption
8007        Desperate Renewal
3232        Karana's Renewal
6140        Ancient: Hallowed Light
5265        Pious Light
7206        Shadowmend
5270        Word of Vivification
4880        Holy Light
6141        Ancient: Chlorobon
2179        Tunare's Renewal
5355        Chlorotrope
7413        Heal Wounds XIV
3480        Supernal Light
6142        Ancient: Wilslik's Mending
3471        Word of Replenishment
5395        Yoppa's Mending
4883        Sylvan Infusion
7412        Heal Wounds XIII
4901        Daluda's Mending
7411        Heal Wounds XII
3443        Nature's Infusion
2182        Ethereal Light
5251        Pious Remedy
2435        Kragg's Mending
1521        Word of Restoration
3233        Tnarg`s Mending
6929        Healing Potion X
5282        Touch of Piety
1291        Nature's Touch
7410        Heal Wounds XI
3465        Supernal Remedy
1519        Divine Light
5296        Wave of Piety
6928        Healing Potion IX
1520        Word of Vigor
3429        Touch of Nife
5289        Light of Piety
5304        Sylvan Water
5528        Muada's Mending
4893        Wave of Trushar
4894        Light of Order
1290        Chloroblast
7409        Heal Wounds X
2462        Ethereal Remedy
3427        Wave of Marr
6927        Healing Potion VIII
3430        Light of Nife
6878        Greater Healing Light
4875        Trushar's Mending
4896        Sylvan Light
6919        Elixir of Healing X
136        Word of Healing
2589        Healing Wave of Prexus
7408        Heal Wounds IX
6876        Forest's Renewal
6877        Kragg's Salve
6926        Healing Potion VII
9        Superior Healing
6875        Healing Light
7171        Fungal Refreshment
7407        Heal Wounds VIII
1455        Wave of Healing
135        Word of Health
1518        Remedy
7406        Heal Wounds VII
6873        Nature's Renewal
6874        Spirit Salve
3834        Healing Water
6925        Healing Potion VI
3684        Light of Life
15        Greater Healing
6918        Elixir of Healing IX
1522        Celestial Elixir
2180        Ethereal Elixir
7405        Heal Wounds VI
6924        Healing Potion V
6917        Elixir of Healing VIII
3577        Wave of Life
5573        Corporeal Empathy Recourse
1413        Corporeal Empathy
6916        Elixir of Healing VII
7404        Heal Wounds V
1444        Celestial Healing
1283        Celestial Cleansing
12        Healing
6923        Healing Potion IV
6915        Elixir of Healing VI
7403        Heal Wounds IV
2175        Celestial Health
3683        Ethereal Cleansing
6914        Elixir of Healing V
7402        Heal Wounds III
6922        Healing Potion III
17        Light Healing
2502        Celestial Remedy
6913        Elixir of Healing IV
7401        Heal Wounds II
6912        Elixir of Healing III
6921        Healing Potion II
200        Minor Healing
7400        Heal Wounds I
6911        Elixir of Healing II
3682        Aria of Asceticism
6920        Healing Potion I
5011        Salve
6910        Elixir of Healing I
203        Cure Poison
213        Cure Disease
417        Extinguish Fatigue
97        Abolish Poison
98        Abolish Disease
2742        Purify Soul
222        Invigor
5283        Crusader's Purity
8327        Pure Water IV
3190        Crusader`s Touch
7509        Cure Poison IV
7513        Cure Disease IV
7517        Remove Curse IV
8326        Pure Water III
1525        Antidote
3299        Radiant Cure3
3298        Radiant Cure2
722        Jaxan`s Jig o` Vigor
2526        Disinfecting Aura
2880        Remove Greater Curse
3297        Radiant Cure1
3693        Pure Blood
3842        Blood of Nadox
7508        Cure Poison III
7512        Cure Disease III
7516        Remove Curse III
8325        Pure Water II
95        Counteract Poison
96        Counteract Disease
2946        Remove Curse
4057        Remove Lesser Curse
8324        Pure Water I
7507        Cure Poison II
7511        Cure Disease II
7515        Remove Curse II
3681        Aria of Innocence
4056        Remove Minor Curse
7506        Cure Poison I
7510        Cure Disease I
7514        Remove Curse I
694        Pact of Shadow
1510        Shadow Compact
1514        Rapacious Subvention
1515        Covetous Subversion
1717        Shadowbond
1718        Sedulous Subversion
2168        Reanimation
2520        Nature's Recovery
4704        Blood Scream
212        Cure Blindness
1744        Harvest
5410        Pure Spirit
2169        Reconstitution
2170        Reparation
357        Dark Empathy
391        Revive
2171        Renewal
7199        Soothing Remedy
388        Resuscitate
2172        Restoration
392        Resurrection
1733        Convergence
1524        Reviviscence
3338        Harvest of Druzzil
3694        Stoicism
8329        Fungal Regrowth I
1576        Torpor
3485        Supernal Cleansing
8330        Fungal Regrowth II
3398        Quiescence
8331        Fungal Regrowth III
5293        Pious Cleansing
3475        Supernal Elixir
8009        Skin of the Rep. Trigger
4899        Breath of Trushar
8332        Fungal Regrowth IV
5416        Spiritual Serenity
8333        Fungal Regrowth V
4882        Holy Elixir
1734        Infusion
4997        Arrow of Renewal
5259        Pious Elixir
5060        Discordant Light
13        Complete Healing
7204        Complete Refreshment

But the spells with spacing158_3 set to 82 are:
Code:

ID        Name
2169        Reconstitution
2172        Restoration
2168        Reanimation
1733        Convergence
392        Resurrection
391        Revive
388        Resuscitate
1524        Reviviscence
2171        Renewal

which look to be the ones we want.

My guess is spacing158_3 is a super class of beneficial spells and spacing158_4 is a subclass.

However, the rule you are looking for is:
Code:

if(spacing158[3] == 82) {
    .. Resurrection Effects ..
}


spoon 09-22-2008 05:31 PM

The completely untested code

In /zone/spdat.h
~line 388
Code:

+ #define SUBCLASS_REZZ_EFFECTS                82
~ line 453
Code:

- /* 158 */ int spacing158[4];
+ /* 158 */ int spacing158[3];
+ /* 161 */ int        spellSubclass;  //82 = Reserection Effects

and in /zone/net.cpp
~line 984
Code:

-                for(y = 0; y < 3;y++)
-                        sp[tempid].spacing158[y]=atoi(sep.arg[158+y]);
+                for(y = 0; y < 3;y++)
+                        sp[tempid].spacing158[y]=atoi(sep.arg[158+y]);
+                       
+                sp[tempid].spellSubclass=atoi(sep.arg[161]);

and then in /zone/client_process.cpp
~ line 943
Code:

- SpellOnTarget(756,this);
+ if( ra->spellSubclass == SUBCLASS_REZZ_EFFECTS) {
+        SpellOnTarget(756,this);
+ }


spoon 09-22-2008 05:40 PM

Quote:

Originally Posted by spoon (Post 156613)
The completely untested code

and in /zone/net.cpp
~line 984
Code:

-                for(y = 0; y < 3;y++)
-                        sp[tempid].spacing158[y]=atoi(sep.arg[158+y]);
+                for(y = 0; y < 3;y++)
+                        sp[tempid].spacing158[y]=atoi(sep.arg[158+y]);
+                       
+                sp[tempid].spellSubclass=atoi(sep.arg[161]);


There was a typo (although it probably wouldn't have effected anything):

and in /zone/net.cpp
~line 984
Code:

-                for(y = 0; y < 3;y++)
-                        sp[tempid].spacing158[y]=atoi(sep.arg[158+y]);
+                for(y = 0; y < 2;y++)
+                        sp[tempid].spacing158[y]=atoi(sep.arg[158+y]);
+                       
+                sp[tempid].spellSubclass=atoi(sep.arg[161]);


AndMetal 09-22-2008 08:30 PM

I would like to make a somewhat major clarification: those values are actually in fields 156 (typedescnum) & 157 (effectdescnum), not 160 & 161 (still unknown, and all 0's for the resurrection spells).

However, they could definitely be used to separate out normal rez spells from ones that don't have a rez effect, since the ones without rez effects don't use either.

For reference, here are the IDs, from dbstr_us.txt, that correspond to both:
Code:

id        text
1        Aegolism
2        Agility
3        Alliance
4        Animal
5        Antonica
6        Armor Class
7        Attack
8        Bane
9        Blind
10        Block
11        Calm
12        Charisma
13        Charm
14        Cold
15        Combat Abilities
16        Combat Innates
17        Conversions
18        Create Item
19        Cure
20        Damage Over Time
21        Damage Shield
22        Defensive
23        Destroy
24        Dexterity
25        Direct Damage
26        Disarm Traps
27        Disciplines
28        Discord
29        Disease
30        Disempowering
31        Dispel
32        Duration Heals
33        Duration Tap
34        Enchant Metal
35        Enthrall
36        Faydwer
37        Fear
38        Fire
39        Fizzle Rate
40        Fumble
41        Haste
42        Heals
43        Health
44        Health/Mana
45        HP Buffs
46        HP type one
47        HP type two
48        Illusion: Other
49        Illusion: Player
50        Imbue Gem
51        Invisibility
52        Invulnerability
53        Jolt
54        Kunark
55        Levitate
56        Life Flow
57        Luclin
58        Magic
59        Mana
60        Mana Drain
61        Mana Flow
62        Melee Guard
63        Memory Blur
64        Misc
65        Movement
66        Objects
67        Odus
68        Offensive
69        Pet
70        Pet Haste
71        Pet Misc Buffs
72        Physical
73        Picklock
74        Plant
75        Poison
76        Power Tap
77        Quick Heal
78        Reflection
79        Regen
80        Resist Buff
81        Resist Debuffs
82        Resurrection
83        Root
84        Rune
85        Sense Trap
86        Shadowstep
87        Shielding
88        Slow
89        Snare
90        Special
91        Spell Focus
92        Spell Guard
93        Spellshield
94        Stamina
95        Statistic Buffs
96        Strength
97        Stun
98        Sum: Air
99        Sum: Animation
100        Sum: Earth
101        Sum: Familiar
102        Sum: Fire
103        Sum: Undead
104        Sum: Warder
105        Sum: Water
106        Summon Armor
107        Summon Focus
108        Summon Food/Water
109        Summon Utility
110        Summon Weapon
111        Summoned
112        Symbol
113        Taelosia
114        Taps
115        Techniques
116        The Planes
117        Timer 1
118        Timer 2
119        Timer 3
120        Timer 4
121        Timer 5
122        Timer 6
123        Transport
124        Undead
125        Utility Beneficial
126        Utility Detrimental
127        Velious
128        Visages
129        Vision
130        Wisdom/Intelligence
131        Traps
132        Auras
133        Endurance
134        Serpent's Spine
135        Corruption
136        Learning

Anyways, as long as you change the code to check if spells.effectdescnum == 82, it should be fine. The only thing I'm not sure about is the best way to pull the spell data using ra->spellid.

spoon 09-23-2008 09:37 AM

Thanks AndMetal, good catch. I managed to add some columns in my spreadsheet throwing everything off. And I don't know what I was thinking with the OPRezzAnswer bit. I obviously didn't have enough coffee yesterday. Wish I could go back and edit/delete those old posts.

Quote:

Anyways, as long as you change the code to check if spells.effectdescnum == 82, it should be fine. The only thing I'm not sure about is the best way to pull the spell data using ra->spellid.
You could add to spdat.h something like:
Code:

int GetSpellEffectDescNum(int16 spell_id);
and to spdat.cpp
Code:

int GetSpellEffectDescNum(int16 spell_id)
{
        if( (spell_id > 0) && (spell_id < SPDAT_RECORDS) ){
                return spells[spell_id].effectdescnum;
        } else {
                return -1;
        }
}


and then just use that in the client_process.cpp. However, if I were to rewrite this chunk of code, I would make a SpellFactory, which would have a method "getSpellById( int16 spell_id)" and have that return an instance of a class Spell. The class Spell would have accessor methods for things like GetEffectDescNum(). The laundry list of "IsWhatever(int spell_id)" is getting out of control.

Derision 10-04-2008 05:35 AM

Quote:

Originally Posted by So_1337 (Post 156363)
Heya.

Just thought I'd make a quick post about two spells that I've noticed issues with. It seems that both Customer Service Resurrect and Divine Resurrect give Resurrection Effects as a debuff once the rez is accepted.

I will have a look at implementing the changes discussed on this thread today. Should CSR and Divine Resurrect Rez the player with 100% HP and Mana as well as no Rez effects ?

steve 10-04-2008 09:57 AM

Quote:

Originally Posted by Derision (Post 157660)
Should CSR and Divine Resurrect Rez the player with 100% HP and Mana as well as no Rez effects ?

If you want it to match Live, then yes. CSR Res stores 100% hp and mana.


All times are GMT -4. The time now is 08:51 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.