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.

Temple+ Modding Discussion

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
1. I think you may need to do .MapToFeat(), because right now the game will map the Smite Evil feat to the pre-existing vanilla condition.

2. Yes.

3. You can make a pull request to the github, inside \tpdatasrc\. Or you can post it here or on the mod submissions thread.
 

IPDT_FE

Novice
Joined
Feb 16, 2018
Messages
13
That fixed extra smiting, thank you, although it appears someone already added an even more complete version to github already.

I'll be making a pull to upload Extra Music then, although I didn't manage to modify the max bardic music uses available in the radial menu the feat still works anyway (e.g. at third level it shows 7/3 bardic music uses available).

I was wondering if the wild shape ability is still unaccessible from python and if it's possible to make pull requests on the c++ part of the github as well.

I was also wondering if it was possible to somehow modify this part of conditions.cpp to also query for bonus sneak attack damage rather than only extra sneak attack dice, or if there are any workarounds possible.
auto sneakDmgDice = Dice(sneakAttackDice, 6, 0);
if (feats.HasFeatCountByClass(args.objHndCaller, FEAT_DEADLY_PRECISION)) {
sneakDmgDice = Dice(sneakAttackDice, 5, 1*sneakAttackDice);
}
dispIo->damage.AddDamageDice(sneakDmgDice.ToPacked(), DamageType::Unspecified, 106);
floatSys.FloatCombatLine(args.objHndCaller, 90); // Sneak Attack!
histSys.CreateRollHistoryLineFromMesfile(26, args.objHndCaller, tgt);
d20Sys.D20SignalPython(args.objHndCaller, "Sneak Attack Damage Applied");
// crippling strike ability loss
if (feats.HasFeatCountByClass(args.objHndCaller, FEAT_CRIPPLING_STRIKE)){
histSys.CreateRollHistoryLineFromMesfile(47, args.objHndCaller, tgt);
conds.AddTo(tgt, "Damage_Ability_Loss", { 0, 2 }); // note: vanilla had a bug (did 1 damage instead of 2)
floatSys.FloatCombatLine(args.objHndCaller, 96); // Ability Loss
}
The reason why I ask for this is because I wanted to implement the feat craven but it appears to me that the only parameter I can send is the number of dice given by a certain condition.

Finally I wanted to ask how feasible it is to add a race to the game both through python and c++. I've seen a few tutorials on it through hex-editing in the Co8 forum and I was curious regarding the correct way to implement them with temple+.
 

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
That fixed extra smiting, thank you, although it appears someone already added an even more complete version to github already.

I'll be making a pull to upload Extra Music then, although I didn't manage to modify the max bardic music uses available in the radial menu the feat still works anyway (e.g. at third level it shows 7/3 bardic music uses available).

I was wondering if the wild shape ability is still unaccessible from python and if it's possible to make pull requests on the c++ part of the github as well.

I was also wondering if it was possible to somehow modify this part of conditions.cpp to also query for bonus sneak attack damage rather than only extra sneak attack dice, or if there are any workarounds possible.
auto sneakDmgDice = Dice(sneakAttackDice, 6, 0);
if (feats.HasFeatCountByClass(args.objHndCaller, FEAT_DEADLY_PRECISION)) {
sneakDmgDice = Dice(sneakAttackDice, 5, 1*sneakAttackDice);
}
dispIo->damage.AddDamageDice(sneakDmgDice.ToPacked(), DamageType::Unspecified, 106);
floatSys.FloatCombatLine(args.objHndCaller, 90); // Sneak Attack!
histSys.CreateRollHistoryLineFromMesfile(26, args.objHndCaller, tgt);
d20Sys.D20SignalPython(args.objHndCaller, "Sneak Attack Damage Applied");
// crippling strike ability loss
if (feats.HasFeatCountByClass(args.objHndCaller, FEAT_CRIPPLING_STRIKE)){
histSys.CreateRollHistoryLineFromMesfile(47, args.objHndCaller, tgt);
conds.AddTo(tgt, "Damage_Ability_Loss", { 0, 2 }); // note: vanilla had a bug (did 1 damage instead of 2)
floatSys.FloatCombatLine(args.objHndCaller, 96); // Ability Loss
}
The reason why I ask for this is because I wanted to implement the feat craven but it appears to me that the only parameter I can send is the number of dice given by a certain condition.

Finally I wanted to ask how feasible it is to add a race to the game both through python and c++. I've seen a few tutorials on it through hex-editing in the Co8 forum and I was curious regarding the correct way to implement them with temple+.
Re Extra Smiting, yeah it was probavly the same guy who did Extra Rage. Sorry, it slipped my mind.

Pull requests for c++ code are equally welcome of course! I haven't exposed Wild Shape to python.

As for sneak attack bonus damage, you can add a query for plain extra damage, but try to see if you can add a hook for a regular damage event using the same logic as sneak attack bonus damage first.

Adding races is certainly possible. Adding the necessary Modifiers that grant various bonuses should be fairly straightforward. I guess the laborious part is hooking the chargen and levelup UIs, although it shouldn't be too hard to follow the examples of the Class panel. I think some races would require modifying ECL too, which could impact various calculations in the game. If you're interested I think it merits its own thread.
 

IPDT_FE

Novice
Joined
Feb 16, 2018
Messages
13
Hi

I believe as per 3.5ed rules this line should have a >= since the attack roll wins on a draw.

I've also made a pull request for extra music, and I'll soon send another for Vexing Flanker. Maybe I'll do one more feat before sleeping, I will see.
 

qed

Novice
Joined
May 13, 2017
Messages
5
So I was thinking about adding some new classes to the game. Starting with warlock. Could somebody give me basic directions on where to start?
 

IPDT_FE

Novice
Joined
Feb 16, 2018
Messages
13
Hello, is adding a random encounter beyond the scope of simple modding? Would dll hacking be required?
 

IPDT_FE

Novice
Joined
Feb 16, 2018
Messages
13
I've found an old tutorial of yours on the Co8 forums regarding random encounters and I would like to expand my question. Would you be interested in expanding the random encounters for the game? I was thinking of creating some high-level random encounters for high level parties (from 15 to 20) if it's an acceptable addition.
 

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
That is more suitable for an addon rather than a Temple+ mod, since it's very content oriented.
Temple+ could be used as a platform to add user content modularity, e.g. read the encounter definitions from a data file.

Other than that, go ahead, I'm sure many would appreciate it.
 

Endarire

Scholar
Joined
Feb 28, 2016
Messages
395
IPDT_FE: I'd like more random encounters for ToEE and would appreciate those added to T+ when ready.

Thankee!
 

IPDT_FE

Novice
Joined
Feb 16, 2018
Messages
13
The modding I've done so far required me to make a pull request to edit or add existing files in the templeplus project and I was wondering how I would go about this one. The central file to this project would certainly be the random_encounters.py. Wouldn't it be reasonable to add an option to have higher level encounters just like prestige classes and non-core materials in the temple+ configuration which I would check before rolling my new encounters? After all extra content is already one of the aims of temple+ considering that tab in the configuration and I believe dispersing further the availability of content would only make its accessibility plummet. That said I imagine random_encounters could be edited in order to access files in a certain locations in order to load up encounters from different file sources, although I don't have the faintest idea how that could be implemented.
 

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
I prefer not to directly edit random_encounters.py since it's highly module specific. It's different in co8, vanilla toee, kotb and iwd, due to the special random encounters, which monsters spawn in which zones, etc.
I'll have to get back to you on the best approach.
 

IPDT_FE

Novice
Joined
Feb 16, 2018
Messages
13
I also have another question, is it no longer possible to add new protos to the game? It seems Co8 has filled the range between 14000 and 15000 and the game CTDs whenever I try and start an encounter with a proto npc saved in a different number range.
 

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
NPCs currently have to be between 14k and 15k, it's hardcoded in many places. Expanding this could be a real bitch, not sure.
There should be a few slots available in the 14900's i think.
 
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
I'll have to get back to you on the best approach.
Ok, my thoughts:
I think you'd want to add a random encounter extender script that gets called before (or maybe after, or both) the "normal" script and modifies the result. It could be similarly structured to the current random_encounter.py from co8, which already has a sort of RE definition class that is defined by a tuple of (monster proto id, number) or sthg like that. It should be fairly straightforward to read such a list from file, possibly with a script attachment for more complex logic (such as monster types varying by map or area id, game state flags, etc).
 

IPDT_FE

Novice
Joined
Feb 16, 2018
Messages
13
Alright there's a bunch of slots around where you said, great! I'll try messing around with a separate script that accesses random_encounter and modifies the encounter list, that would be fine, right?

I think it might be necessary to alter random_encounter so it can check for these add-ons, but I won't know until I try
 
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
Alright there's a bunch of slots around where you said, great! I'll try messing around with a separate script that accesses random_encounter and modifies the encounter list, that would be fine, right?
Yes.
I think it might be necessary to alter random_encounter so it can check for these add-ons, but I won't know until I try
No.
 

IPDT_FE

Novice
Joined
Feb 16, 2018
Messages
13
How can I call my new script if I can't alter random_encounter at all? I'm confused
 

IPDT_FE

Novice
Joined
Feb 16, 2018
Messages
13
Yeah thanks, I was still confused on what I was allowed to edit and whatnot.
 

Sitra Achara

Arcane
Joined
Sep 1, 2003
Messages
1,859
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
You can do a general font replacement, see the FAQ.
If you're interested in actually deeper let me know.
 

Zelnorack

Novice
Joined
Oct 29, 2016
Messages
13
Help me understand the Drow race, and level adjustment in general.

So, a level 1 Drow Rogue needs 6000 EXP to reach level 2, but does the Drow also count as being level 3 for the purpose of EXP gain because of their +2 level adjustment? Or does a Drow count as level 1 with their party when it comes to EXP rewards, then level 2 when the rest (assuming they are not also level adjusted) are level 2? And so on until the party is level 4, and the drow level 2, and then do EXP adjustments happen normally, such as when a level 5 wizard gain EXP with a level 7 party, or would the Drow just gain the same EXP as the party?

Maybe I'm explaining this poorly, so I'll give a, hopefully, comprehensible example. Let's say a level 6 wizard and level 8 fighter take down a large group of bugbears. The wizard would gain something like 1200 exp, while the fighter might only gain 600. Should a level 6 Drow be earning 1200 EXP while their level 8 fighter is earning 600, or would the Drow be earning 600 like the fighter?
 

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