Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Making new spells for ToEE - Discussion

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
Hey, Greater Shout was already added by Co8 in a tragically obscure addon for 8.1.0:
http://www.co8.org/community/index.php?threads/im-participating.11736/page-6#post-140577

That said there was some visual deficiency in the Stun effect when applied to party members (see here), so you if you have the patience to learn something new, you can create a new Stun Effect using Python Modifiers.
I'll have to get back to you on sound.

Oh right, Rudy's Item Mod adds Great Shout - thanks for the link! But, but... it is SO different from 3.5E. At least I was able to incorporate stun effect (one round, as per rules, but it probably shows duration of deafened condition 4d6 rounds - how can I make two durations on one spell?), but still no bonus damage to earth elementals (would be nice to have in Earth node) and no sound on casting (that's a big one).

moJY1yT.jpg

You can set the spell's duration to 1 instead of 4d6, and apply the sp-Shout condition with 4d6 instead of spell.duration. This will take care of the display issue for the Stunned condition.

Note that you won't get the Deafness indicator this way however (only the character tooltip).
 

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
Added Sirocco to Fire 6 as it's empty. I'm also redoing the way it applies exhausted and fatigued conditions now. Sitra Achara Do you know how exactly fire spells check for the web effect? I'm primarily looking for the condition check as Sirocco is a fire damage-dealing spell so I'd like to make sure it interacts with web properly.

It's automatic - whenever a character with the 'sp-Web On' condition takes Fire damage, it ignites the web.
I see. That's good. Do you know what the proper name for the fatigued condition is within the code so that I can add it to Sirocco? It's not 'fatigued' apparently.
There's Barbarian_Fatigued
Does it apply the same penalties as a regular fatigued? I'll assume that's a yes and that applying it a second time will cause the exhausted condition?
It doesn't. There's no regular fatigured in ToEE, nor an Exhausted condition.

You can find a list of conditions contained in vanilla ToEE here:
https://github.com/GrognardsFromHell/DllDocumentation/wiki/Conditions-(List)

Spell modders of yore used Spell Object tricks as a workaround for creating new effects, but I advise against using it as it's prone to bugging out and leaving characters stuck with permanent effects. As mentioned you can create new effects with Python modifiers.
 

Etharil

Novice
Joined
Oct 16, 2016
Messages
63
Location
Ulcaster Ruins
Added Sirocco to Fire 6 as it's empty. I'm also redoing the way it applies exhausted and fatigued conditions now. Sitra Achara Do you know how exactly fire spells check for the web effect? I'm primarily looking for the condition check as Sirocco is a fire damage-dealing spell so I'd like to make sure it interacts with web properly.

It's automatic - whenever a character with the 'sp-Web On' condition takes Fire damage, it ignites the web.
I see. That's good. Do you know what the proper name for the fatigued condition is within the code so that I can add it to Sirocco? It's not 'fatigued' apparently.
There's Barbarian_Fatigued
Does it apply the same penalties as a regular fatigued? I'll assume that's a yes and that applying it a second time will cause the exhausted condition?
It doesn't. There's no regular fatigured in ToEE, nor an Exhausted condition.

You can find a list of conditions contained in vanilla ToEE here:
https://github.com/GrognardsFromHell/DllDocumentation/wiki/Conditions-(List)
Awww, shame. Is it something that can be added?

EDIT: Using Barbarian_Fatigued for Sirocco CTDs the game. Want a log?
 

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
Added Sirocco to Fire 6 as it's empty. I'm also redoing the way it applies exhausted and fatigued conditions now. Sitra Achara Do you know how exactly fire spells check for the web effect? I'm primarily looking for the condition check as Sirocco is a fire damage-dealing spell so I'd like to make sure it interacts with web properly.

It's automatic - whenever a character with the 'sp-Web On' condition takes Fire damage, it ignites the web.
I see. That's good. Do you know what the proper name for the fatigued condition is within the code so that I can add it to Sirocco? It's not 'fatigued' apparently.
There's Barbarian_Fatigued
Does it apply the same penalties as a regular fatigued? I'll assume that's a yes and that applying it a second time will cause the exhausted condition?
It doesn't. There's no regular fatigured in ToEE, nor an Exhausted condition.

You can find a list of conditions contained in vanilla ToEE here:
https://github.com/GrognardsFromHell/DllDocumentation/wiki/Conditions-(List)
Awww, shame. Is it something that can be added?

You ninjad a reply just before my edit :)

Yes, you can add brand new conditions yourself using Python modifiers.
 

Etharil

Novice
Joined
Oct 16, 2016
Messages
63
Location
Ulcaster Ruins
Added Sirocco to Fire 6 as it's empty. I'm also redoing the way it applies exhausted and fatigued conditions now. Sitra Achara Do you know how exactly fire spells check for the web effect? I'm primarily looking for the condition check as Sirocco is a fire damage-dealing spell so I'd like to make sure it interacts with web properly.

It's automatic - whenever a character with the 'sp-Web On' condition takes Fire damage, it ignites the web.
I see. That's good. Do you know what the proper name for the fatigued condition is within the code so that I can add it to Sirocco? It's not 'fatigued' apparently.
There's Barbarian_Fatigued
Does it apply the same penalties as a regular fatigued? I'll assume that's a yes and that applying it a second time will cause the exhausted condition?
It doesn't. There's no regular fatigured in ToEE, nor an Exhausted condition.

You can find a list of conditions contained in vanilla ToEE here:
https://github.com/GrognardsFromHell/DllDocumentation/wiki/Conditions-(List)
Awww, shame. Is it something that can be added?

You ninjad a reply just before my edit :)

Yes, you can add brand new conditions yourself using Python modifiers.
Nice! I'll see if I can do it, I think adding Fatigued and Exhausted could open up an entirely new repertoir of spells for some classes. By the way check my edit regarding Barbarian_Fatigued.
 

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
Added Sirocco to Fire 6 as it's empty. I'm also redoing the way it applies exhausted and fatigued conditions now. Sitra Achara Do you know how exactly fire spells check for the web effect? I'm primarily looking for the condition check as Sirocco is a fire damage-dealing spell so I'd like to make sure it interacts with web properly.

It's automatic - whenever a character with the 'sp-Web On' condition takes Fire damage, it ignites the web.
I see. That's good. Do you know what the proper name for the fatigued condition is within the code so that I can add it to Sirocco? It's not 'fatigued' apparently.
There's Barbarian_Fatigued
Does it apply the same penalties as a regular fatigued? I'll assume that's a yes and that applying it a second time will cause the exhausted condition?
It doesn't. There's no regular fatigured in ToEE, nor an Exhausted condition.

You can find a list of conditions contained in vanilla ToEE here:
https://github.com/GrognardsFromHell/DllDocumentation/wiki/Conditions-(List)
Awww, shame. Is it something that can be added?

EDIT: Using Barbarian_Fatigued for Sirocco CTDs the game. Want a log?

I'm taking a guess here, but: don't apply it with 3 args, it's enough to do .condition_add('Barbarian_Fatigued'). Barbarian_Fatigued has 2 args and they are internally modified to hold the amount of rounds remaining (calculated based on your Con Score modifier + 5) and the particle system ID.

When applied thusly it worked fine for me.

upload_2016-11-4_0-34-39.png
 
Last edited:

Kosiciel

Novice
Joined
Oct 28, 2016
Messages
34
Location
Poland
Remember that with Temple+ the range of spell enums has been expanded, so you can use ones from above 813.
How about I reserve the range 850-900 for your spells, and 901-950 for you Kosiciel?

Okay, so please reserve 901 for Greater Shout, I will try messing with the sp-Shout condition. Excuse me asking again, but how important is that deafened condition and does it have an effect in actual combat (-4 initiative at least)? Strangely, Soundburst uses spell.duration = 0, not 1 (for hint icon/display purposes?), but puts actual condition duration to 1 - target_item.obj.condition_add_with_args( 'sp-Sound Burst', spell.id, 1, 0 ).

I also encountered same problem like Etharil - after moving to 797 (soon to be 901), I couldn't get the message in combat log/history rolls "x casts Greater Shout!".
 

Etharil

Novice
Joined
Oct 16, 2016
Messages
63
Location
Ulcaster Ruins
Sitra Achara That's possible - I'll try my hand at creating the modifiers though and see what I can brew up. By the way does ToEE have a function to check for a condition in order to replace it with another one?
Moved Sirroco to 850 and Regenerate to 851.
 
Last edited:

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
Remember that with Temple+ the range of spell enums has been expanded, so you can use ones from above 813.
How about I reserve the range 850-900 for your spells, and 901-950 for you Kosiciel?

Okay, so please reserve 901 for Greater Shout, I will try messing with the sp-Shout condition. Excuse me asking again, but how important is that deafened condition and does it have an effect in actual combat (-4 initiative at least)? Strangely, Soundburst uses spell.duration = 0, not 1 (for hint icon/display purposes?), but puts actual condition duration to 1 - target_item.obj.condition_add_with_args( 'sp-Sound Burst', spell.id, 1, 0 ).

I also encountered same problem like Etharil - after moving to 797 (soon to be 901), I couldn't get the message in combat log/history rolls "x casts Greater Shout!".

Ah, looks like the game is set to show these message only for spell enums < 600. I'll have to fix that!

Deafened indeed gives a -4 on initiative rolls, and it also creates a spell failure chance.
 

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
Sitra Achara That's possible - I'll try my hand at creating the modifiers though and see what I can brew up.
Great! Let me know if you need help or adding new facilities.
By the way does ToEE have a function to check for a condition in order to replace it with another one?
Nothing general, though you can check some effects with a d20_query.
I think what you'll want to do with Fatigued and Exhausted is to make applications of Fatigued check if the character is already fatigued, and if so cancel the process. This would be done in the PreAdd stage. In that case you would add an Exhausted condition instead.
Alternately you can just create a new query for Fatigued, and also add a "Fatigue_Ended" signal handler.
 

Etharil

Novice
Joined
Oct 16, 2016
Messages
63
Location
Ulcaster Ruins
Sitra Achara That's possible - I'll try my hand at creating the modifiers though and see what I can brew up.
Great! Let me know if you need help or adding new facilities.
By the way does ToEE have a function to check for a condition in order to replace it with another one?
Nothing general, though you can check some effects with a d20_query.
I think what you'll want to do with Fatigued and Exhausted is to make applications of Fatigued check if the character is already fatigued, and if so cancel the process. This would be done in the PreAdd stage. In that case you would add an Exhausted condition instead.
Alternately you can just create a new query for Fatigued, and also add a "Fatigue_Ended" signal handler.
Would adding the same sort of query like the one for alignment (example: if (alignment & ALIGNMENT_LAWFUL) which would translate to if (condition & CONDITION_FATIGUED) in this particular case) be possible in the future so that others could have it easier in the next versions of Temple+?
 

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
Sitra Achara That's possible - I'll try my hand at creating the modifiers though and see what I can brew up.
Great! Let me know if you need help or adding new facilities.
By the way does ToEE have a function to check for a condition in order to replace it with another one?
Nothing general, though you can check some effects with a d20_query.
I think what you'll want to do with Fatigued and Exhausted is to make applications of Fatigued check if the character is already fatigued, and if so cancel the process. This would be done in the PreAdd stage. In that case you would add an Exhausted condition instead.
Alternately you can just create a new query for Fatigued, and also add a "Fatigue_Ended" signal handler.
Would adding the same sort of query like the one for alignment (example: if (alignment & ALIGNMENT_LAWFUL) which would translate to if (condition & CONDITION_FATIGUED) in this particular case) be possible in the future so that others could have it easier in the next versions of Temple+?

No, that's not appropriate since there can be a huge number of conditions.

What you should instead do, is create a Python Modifier for Fatigued that answers a query with the key "Is Fatigued".

You can then query for Fatigued status via
Code:
obj.d20_query("Is Fatigued")

And it'll return 1 if obj has the Fatigued condition.

There's a similar method for Barbarian Fatigued,
Code:
obj.d20_query(Q_Barbarian_Fatigued)
 

Etharil

Novice
Joined
Oct 16, 2016
Messages
63
Location
Ulcaster Ruins
Sitra Achara Yeah I'm somewhat aware of that, I was merely asking if implementing such a condition would be possible in the future for those, who wouldn't be good enough to do the Python Modifiers, so that they could pick from a pool of conditions like how right now Chaos Hammer can pick from a pool of alignments to apply its effects.
 

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
What would be the best way to put all those changes in some easy to use fix/update? Those are at least 5 (.py, .txt., .tab, 2 x .mes) files changed/added...
You can pack additive contributions into .dat files.

See here for more info.

Note that the additions to snd_spells.mes and spells.mes still have to be made modular, but let's assume it'll be done soon - so you can use the format

Code:
mes\spells\*.mes
for spell strings, and

Code:
sound\spells\*.mes
for spell sounds.
 
Last edited:

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
Sitra Achara Yeah I'm somewhat aware of that, I was merely asking if implementing such a condition would be possible in the future for those, who wouldn't be good enough to do the Python Modifiers, so that they could pick from a pool of conditions like how right now Chaos Hammer can pick from a pool of alignments to apply its effects.

I don't see a significant benefit here...
 

Etharil

Novice
Joined
Oct 16, 2016
Messages
63
Location
Ulcaster Ruins
Sitra Achara Yeah I'm somewhat aware of that, I was merely asking if implementing such a condition would be possible in the future for those, who wouldn't be good enough to do the Python Modifiers, so that they could pick from a pool of conditions like how right now Chaos Hammer can pick from a pool of alignments to apply its effects.

I don't see a significant benefit here...
Ease of use for effects that detect conditions in order to apply new ones?
 

Endarire

Scholar
Joined
Feb 28, 2016
Messages
395
Could we use acid fog but renamed as prudent to allow it to actually work?
 

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
Bad news: the engine doesn't recognise fatigued as a condition (is it named differently? I used fatigued as a name) and I cannot add a clause for water elementals and water-type creatures to have a -4 to saving throws as well as receive double damage because ToEE doesn't have the water subtype added. Sitra Achara could you have that subtype added / provide me with specific protos for water creatures so that I can give this special effect to Sirocco?

Yeah looks like Troika added mc_subtype_water at the last minute and forgot to update some of the data. Or something like that. Fixed for 1.0.30.
 

Kosiciel

Novice
Joined
Oct 28, 2016
Messages
34
Location
Poland
See here for more info.

Note that the additions to snd_spells.mes and spells.mes still have to be made modular, but let's assume it'll be done soon - so you can use the format

Code:
mes\spells\*.mes
for spell strings, and

Code:
sound\spells\*.mes
for spell sounds.

No packed .dat yet - just an overrides folder.Hope I did it right (but nope). Does extender files work for all .tab and .mes, or just the four mentioned in wiki (I included file for mes\help.tab, which is mes\help\GS_help.tab)? There is help_extensions.tab file in tpdata\tpmes (TemplePlus folders) - which I also included with added Greater Shout line - but if this is the way to expand help.tab, it means every modder need to have the same help.extensions.tab, which defeats the purpose; what is the proper way to do it?

Also, something is borked - I can't get Greater Shout to work now, being number 901 (it worked while 580, and almost worked as 797, except "x casts spell" info. Please, if you have a minute or two, look at it.

Here it is:
http://www12.zippyshare.com/v/yxNwaX95/file.html

And sorry for my english, there is a possibility I didn't say exactly what I wanted to.
 

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
See here for more info.

Note that the additions to snd_spells.mes and spells.mes still have to be made modular, but let's assume it'll be done soon - so you can use the format

Code:
mes\spells\*.mes
for spell strings, and

Code:
sound\spells\*.mes
for spell sounds.

No packed .dat yet - just an overrides folder.Hope I did it right (but nope). Does extender files work for all .tab and .mes, or just the four mentioned in wiki (I included file for mes\help.tab, which is mes\help\GS_help.tab)? There is help_extensions.tab file in tpdata\tpmes (TemplePlus folders) - which I also included with added Greater Shout line - but if this is the way to expand help.tab, it means every modder need to have the same help.extensions.tab, which defeats the purpose; what is the proper way to do it?

Also, something is borked - I can't get Greater Shout to work now, being number 901 (it worked while 580, and almost worked as 797, except "x casts spell" info. Please, if you have a minute or two, look at it.

Here it is:
http://www12.zippyshare.com/v/yxNwaX95/file.html

And sorry for my english, there is a possibility I didn't say exactly what I wanted to.

The *_extensions.* files were just ad-hoc solutions to compatibility with Co8 and its addons. I've recently started adding modularity to ToEE files.

help.tab isn't yet supported this way, but yeah the pattern should be the same - I'll try to add it shortly :thumbsup:

As for the spell, you had this type of error:

Code:
obj.condition_add_with_args( 'sp-Shout', spell.id, 4d6, 0 )
Typing 4d6 in this way is meaningless, you have to input a number there.

You should instead do
Code:
obj.condition_add_with_args( 'sp-Shout', spell.id, dice_new( '4d6' ).roll(), 0 )

You can easily catch that sort of error if you use PyCharm.
 

Kosiciel

Novice
Joined
Oct 28, 2016
Messages
34
Location
Poland
The *_extensions.* files were just ad-hoc solutions to compatibility with Co8 and its addons. I've recently started adding modularity to ToEE files.

help.tab isn't yet supported this way, but yeah the pattern should be the same - I'll try to add it shortly :thumbsup:

Thanks, it will make things easier and logical :bravo:


As for the spell, you had this type of error:

Code:
obj.condition_add_with_args( 'sp-Shout', spell.id, 4d6, 0 )
Typing 4d6 in this way is meaningless, you have to input a number there.

You should instead do
Code:
obj.condition_add_with_args( 'sp-Shout', spell.id, dice_new( '4d6' ).roll(), 0 )

You can easily catch that sort of error if you use PyCharm.

Thanks, I will install that program shortly. I thought it was too easy to just input xdy without anything else - but I will have to check if it won't bork condition tooltip display again (stun with deafened duration).

EDIT: Looks good so far, condition icon duration tooltip shows 0 (it means it will expire next turn, I hope), there is sound, only that line "x casts spell" is missing, like expected.

http://www2.zippyshare.com/v/BZ8GuEQA/file.html
 
Last edited:

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
EDIT: Looks good so far, condition icon duration tooltip shows 0 (it means it will expire next turn, I hope), there is sound, only that line "x casts spell" is missing, like expected.

http://www2.zippyshare.com/v/BZ8GuEQA/file.html

Alrighty, spells above enum 699 will show up in the D20 Rolls History too as of next version.
Likewise for support for mes\spell.mes, rules\spell_enums.mes and mes\help.tab.

Untitled.jpg


Also, I changed the spell enum to 797. Otherwise if someone uses both Rudy's mod and your mod, they'll have a duplicate spell with the same name.

Attached the file with my changes. (some of them won't work obviously unless you have the dev build - you can grab it off github).

Just remember, I still have plenty of suggestions.

Main post.

Lots of spell requests starting on this page.

Endarire, why don't you start modding too? It's ok if you're not a technical person, there's still plenty of things you can do that are simple text edits (like the shop vendor inventories for example).
 

Attachments

  • overrides.zip
    4.3 KB · Views: 292

Kosiciel

Novice
Joined
Oct 28, 2016
Messages
34
Location
Poland
Alrighty, spells above enum 699 will show up in the D20 Rolls History too as of next version.
Likewise for support for mes\spell.mes, rules\spell_enums.mes and mes\help.tab.
Also, I changed the spell enum to 797. Otherwise if someone uses both Rudy's mod and your mod, they'll have a duplicate spell with the same name.

Okay, back to 797, which is logical :) Nicely done. I will check dev version tonight.
What about sound\snd_spells.mes? I guess it's still needed?
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom