Aller au contenu

Photo

Caster level of spell like abilities from feats


  • Veuillez vous connecter pour répondre
8 réponses à ce sujet

#1
Loki_999

Loki_999
  • Members
  • 430 messages

I'm looking to add a crapload of new races to SCoD, and one thing that has me thinking is innate abilities.

 

For example, Efreet can do Scorching Ray with a caster level of 12.  So, i give them a new feat that calls the scorching ray script.

 

Now when thet Scorching Ray script runs, i guess one of several things will happen when it calls GetCasterLevel().  It will either error and return 0, it will return the total level of the character, or it will return the caster level of the last spell cast (assuming they have cast a regular spell recently).

 

Unless.... you can set a feat's caster level?  And if so, how?

 

The other alternatives i can think of:

 

1) Modify the Scorching Ray script to do a GetFeatID() and if this feat then fix the caster level, otherwise execute normally.

2) Copy the scorching ray script and make a new entry in spells.2da and then fix the caster level in the new script.

 

Thoughts?



#2
Morbane

Morbane
  • Members
  • 1 883 messages

option 1 sounds the most robust - and simplest to modify with certainty of intent.



#3
kevL

kevL
  • Members
  • 4 074 messages

first I'd copy the Scorching Ray script to override (or somewhere) and output the CasterLevel to chat w/ SendMessageToPC + IntToString(GetCasterLevel)

 

run it through some situations and find out what yer working with ...



#4
Loki_999

Loki_999
  • Members
  • 430 messages

Kev - fair enough suggestion, but regardless, its not going to net me that level 12 CL unless by an amazing coincidence. :D

 

However, i misremembered the function that i thought i could use. Its not GetFeatID, its GetSpellFeatId, and that returns the feat that is mapped to the spell (that's the Feat column is spells.2da), so that isn't going to work.

 

Guess the only real option then is to create a new entry in spells.2da and clone the script and modify that.



#5
kevL

kevL
  • Members
  • 4 074 messages

just another thought then:

GetHitDice() as a substitute for CasterLevel



#6
Loki_999

Loki_999
  • Members
  • 430 messages

That can work nicely if i want to scale the damage with the Efreet caster.  Still requires a separate spells.2da and feat.2da entry, but could go that way, if only to balance the ability a bit.

 

A lot of these races i'm looking at have unlimited uses per day (at will). This is going to be scary unless they are limited in some way. Of course, they take a hefty level adjustment, but still don't want a level one creature being able to spam large damage every round.



#7
kevL

kevL
  • Members
  • 4 074 messages

Are these exclusively (more or less) player races? Or monsters (thinking, as monsters *may* not have the AI to handle some stuff like this.. hm, Companions..)

 

Limiting uses (arbitrarily, at your discretion) shouldn't be too difficult: doesn't Feat.2da have an entry for that, plus cooldown,

And, actually, i agree going with custom scripts and rows in Feat&Spells.2da's -- checking and, if this is public, reserving space at the wiki ofc. ( It's less of a mind-spin to have things blocked out separately for a large project. )



#8
Dann-J

Dann-J
  • Members
  • 3 161 messages

There is an 'innate' column in spells.2DA that determines the spell level when used as a feat. You might need to make a copy of the existing spell entry specifically for the feat. Or you could just change the existing entry, since it's unlikely there are any other feats that are using it.



#9
Loki_999

Loki_999
  • Members
  • 430 messages

Yeah, i think innate will be useful for setting the spell level. It won't affect any DCs, but they can be handled through the custom script then (although no saves in the case of scorching ray anyway).

 

@kevL - I think i'm going to avoid making any existing races playable, because i may be wanting to change their abilities and stuff, so this would then affect any monster NPCs on the server.  Instead in those cases, ill clone the entry, tweak it, and make it a player race.

 

I'd rather make a little duplication rather than risk upsetting existing things.

 

And yes, liming uses or cooldowns are all settable via feat.2da