Scorching Ray

Discussion in 'General Modification' started by moebius2778, Sep 21, 2004.

Remove all ads!
  1. moebius2778

    moebius2778 Member Veteran

    Joined:
    Sep 19, 2004
    Messages:
    59
    Likes Received:
    0
    Okay, I've written a really basic implementation of Scorching Ray. It works. Kind of. So I'm sticking it on the forum in case anyone's interested.

    A couple notes that may or may not be in the readme:

    1. It lets you target <caster level> targets. This is bad. The spell is coded to only use the first min(3, <caster level> + 1 / 4) targets. This is good. It crashes if you assign more than five targets. This is bad. It doesn't crash until the particle affects hit the targets. This is weird.

    Fixing this will probably require modifying temple.dll, since I can't figure out where magic missile determines it's target count.

    2. The scorching ray is BLUE. I copied the particle affects from Ray of Frost. Also, it doesn't do that nifty multiple projectiles the way magic missile does.

    3. There's no way to actually get the spell - no scroll, no wand, no item creation feats, etc. I hex edited it into the spellbook of my wizard. If there's any interest whatsoever, I'll try hacking up the dev helper to get it to give you the spell.

    (edited: forgot the data\mes\spell.mes changes)
     

    Attached Files:

    Last edited: Sep 21, 2004
  2. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    Most excellent work!!
    Just tested and my Sorc (from a previous saved game) was able to pick the spell (Scorching Ray) on a level up. I think I miscoded partsys1.tab though because the spell wasn't working properly. Should have used a proper tab editor like Phalzyr's. As usual if I try to cut corners and use Wordpad (Notepad can't open big files) things get non-functional. Just downloaded Ultraedit to see how good an editor it is.
    Anyway if you could code in all files and include it in the attachment it would make it a bit easier for board members to test it.

    Regarding:
    1)Can't really help here. As you've mentioned, there probably needs to be some dll adjustments. Still, I'm very happy that we could actually implement a new spell and your implementation certainly sticks to the rules well.

    quoting 3.5e SRD:

    Scorching Ray
    Evocation [Fire]
    Level: Sor/Wiz 2
    Components: V, S
    Casting Time: 1 standard action
    Range: Close (25 ft. + 5 ft./2 levels)
    Effect: One or more rays
    Duration: Instantaneous
    Saving Throw: None
    Spell Resistance: Yes
    You blast your enemies with fiery rays. You may fire one ray, plus one additional ray for every four levels beyond 3rd (to a maximum of three rays at 11th level). Each ray requires a ranged touch attack to hit and deals 4d6 points of fire damage.
    The rays may be fired at the same or different targets, but all bolts must be aimed at targets within 30 feet of each other and fired simultaneously.

    2)Hmm... try copying the particle effects from Produce Flame (it's a druid spell). For starters, it's red in color. Might not be ideal but its an alternative.

    3)Well, Sorcs do get the spell on level up. That much I can confirm and that's with a previous saved game without starting anew.
    Once the spell works, making wands and scrolls for it shouldn't be too hard of a problem, I think. We just need to insert a new entry in protos.tab for it and refer the "san_use" field (I think) to call the proper py file. And you have already taken care of the py file and other accompanying details so I'm fairly certain it will work out well.

    Thanks again and hope we can clear up any remaining small issues. Really nice contribution and if we're fast enough getting everything smoothed out, we can even get it into our next mod pack update. ;)
     
  3. Nomad_Wanderer

    Nomad_Wanderer Established Member Veteran

    Joined:
    Sep 25, 2003
    Messages:
    305
    Likes Received:
    0
    Actually try NoteTab light.. It's free, does unicode, and has some cool features..

    let me know if you do like it though.. There's a hard to find option to turn off the navigator thing in the left.
     
  4. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    Made a few minor changes:

    Replaced:
    projectile.obj_set_int( obj_f_projectile_part_sys_id, game.particles( 'sp-Scorching Ray', projectile ) )

    with:
    projectile.obj_set_int( obj_f_projectile_part_sys_id, game.particles( 'sp-Produce Flame-proj', projectile ) )

    Replaced both lines of:
    game.particles( 'sp-Scorching Ray-Hit', target.obj )

    with:
    game.particles( 'sp-Ray of Frost-Hit', target.obj )

    This enabled me to forego any changes to partsys1.tab

    Tested and my level 9 Sorc casts it perfectly without problems. Being level 9, he gets 9+1/4 (rounded down) = 2 rays. Tried to target more (5) (could have 9 targets as you stated), cast it and still produced 2 rays. Checked on damage and it was 4d6 Fire damage as it should be. No crashing, no untoward effects.


    Was thinking of putting the following lines in SpellList.mes:
    // Scorching Ray
    {542000}{School: Evocation [Fire]}
    {542001}{Level: Sor (2), Wiz (2)}
    {542002}{CastComponents: V, S}
    {542010}{}
    {542011}{}
    {542015}{[Begin], Type: NoOp}

    But the spell seems to work Ok without it. Maybe I'll pose a couple of questions for Steve Moret later to clear up any last doubts.

    I've zipped up all the needed files into a forum attachment:
    "733 - Scorching Ray.txt"
    "Spell733 - Scorching Ray.py"
    "spell_enum.mes"
    "spell.mes"
     

    Attached Files:

  5. moebius2778

    moebius2778 Member Veteran

    Joined:
    Sep 19, 2004
    Messages:
    59
    Likes Received:
    0
    re: Targeting

    One thing you might try is setting the max_Target to 3 instead of 0. Since you won't get this spell until third level (when the code will give you "three" targets), and you can't go over three targets anyways, there doesn't seem to be any harm. And that way you can avoid whatever crashy bits I encountered when you select above five targets.

    As a second note, I've figured out where the magic missile max_Target is calculated, so I'm playing around with that.
     
Our Host!