Aller au contenu

Photo

Smite Good/Evil/Infidel script?


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

#1
Axe_Edge

Axe_Edge
  • Members
  • 278 messages
Hi.  Essentially, I'm creating a new class "Anti-Paladin" and I need to get this class in on "Smite good".  I'm wondering if someone can point me the way to a smite script, or to a script similar enough to me customized.  

I think a clean way to do change "Smite Good" is to create a complete smite script for the feat "Smite Good".  Next, disable the original Smite good feat for Clerics and Blackguards and have them gain the new version.  I figure this may be the easiest way to allow the stacking of classes (Anti-Paladin and Blackguard) and possibly stack "Smite Infidel" with it.

From the get go, I'm not sure how to go about coding smite to only be eligible for melee and only on the first attack in a round.

Unfortunately, the smites are hardcoded.

I have a basic background in coding, but very rusty.  I am ready to roll up my sleeves and work at it, with guidance.

Can't wait for Hellfire's horse pack so I can include a proper summoned mount B).

(Anti-paladins are different from Blackguards)

#2
Morbane

Morbane
  • Members
  • 1 883 messages
Here is the spell description from Players Handbook 3.5:
Smite Evil (Su): Once per day, a paladin may attempt to smite
evil with one normal melee attack. She adds her Charisma bonus (if
any) to her attack roll and deals 1 extra point of damage per paladin
level. For example, a 13th-level paladin armed with a longsword
would deal 1d8+13 points of damage, plus any additional bonuses for
high Strength or magical affects that would normally apply. If the
paladin accidentally smites a creature that is not evil, the smite has
no effect, but the ability is still used up for that day.
At 5th level, and at every five levels thereafter, the paladin may
smite evil one additional time per day, as indicated on Table 3–12:
The Paladin, to a maximum of five times per day at 20th level.

#3
Morbane

Morbane
  • Members
  • 1 883 messages
pseudo code:

void main()
int nCha = GetAbilityBonus(Charisma)
int nHD = GetPaladinHitDice(...)

GetIsEnemy(oTarget)
GetAllignmentGoodEvil(...)
int nBonus = nCha + nHD

Something like that would be a place to start anyway - I dont have the tool set open right now

#4
Axe_Edge

Axe_Edge
  • Members
  • 278 messages
Thanks Morbane. That will give me a good start.  I've already listed "FEAT_SMITE_GOOD_1"  through "FEAT_SMITE_GOOD_10" in feat.2da, which is the easy part.  For the scripting, I'll most likely utilize the switch "case".  Will have to work in adding a smite level for stacking with Blackguard and adding Smite Infidel for stacking Divine Champion.

I'll try to think of a clean way so that other custom classes can be added easily.  I've recently read several threads created over the years by people asking how to add a class which smites.  Might be time to do it.

Relating more to "Custom Content", I'm trying to decide how I'm going to add a new feat "FEAT_NEGATIVE_HEALING".  The easiest way is to modify "x0_i0_spells.NSS".  I'd do something similar as adding "if has FEAT_NEGATIVE_HEALING" where ever the race "UNDEAD" was either healed or hurt.

It would be cool for the Anti-Paladin to cast "mass inflict serious wounds", hurting enemies, but healing himself and his undead minions.

Modifié par Axe_Edge, 07 juin 2011 - 02:48 .


#5
Morbane

Morbane
  • Members
  • 1 883 messages

Axe_Edge wrote...
It would be cool for the Anti-Paladin to cast "mass inflict serious wounds", hurting enemies, but healing himself and his undead minions.


Divine casters can already do it with mass_cure***wounds vs udead. might take a look at that for reference aye?

#6
MasterChanger

MasterChanger
  • Members
  • 686 messages

Axe_Edge wrote...
From the get go, I'm not sure how to go about coding smite to only be eligible for melee and only on the first attack in a round.


As far as actually getting the end result of an attack with a bonus to AB and damage, I'd say there are two major routes you could go:

1) Apply a bonus to attack and damage to the character (or the weapon as an item property) for the duration of one attack. Functionally, this may have to become for one "flurry", which only becomes an issue when there are more than three attacks per round. In this case, it would be an instant feat and you'd probably leave actually clicking "attack" up to the player (not an issue if they are already in combat).

2) Use re-created attack and damage rolls for that round entirely. That way you can specify exactly what bonus goes on which attack, maybe play a special animation for the smite if you want to, and so on. This sounds quite complicated, except that the basis for it already exists in the Tome of Battle code. You just include the proper definition files and call the attack functions contained in there; they accept various kinds of bonuses.

#7
Axe_Edge

Axe_Edge
  • Members
  • 278 messages

Morbane wrote...

Axe_Edge wrote...
It would be cool for the Anti-Paladin to cast "mass inflict serious wounds", hurting enemies, but healing himself and his undead minions.


Divine casters can already do it with mass_cure***wounds vs udead. might take a look at that for reference aye?


The "FEAT_NEGATIVE_ENERGY_HEALING" (I incorrectly typed FEAT_NEGATIVE_HEALING above) I'm working on isn't intended to allow a divine caster to heal the undead.  The new feat causes the caster to lose hit points by healing spells and receives hit points when an inflicting spell is cast upon him/her.  At second level, anti-paladins receive the feat :

Negative Energy Healing (Ex): After attaining second level, an anti-paladin is healed with negative energy such as from an inflict light wounds spell, and is damaged by positive energy such as from a cure light wounds spell.


MasterChanger...Boy, does smite get a little complicated quick.  Smite has been an irritant for me for quite some time.  I'll stick with it and try to work it out.

Thanks for input from you both.  You're helping my confidence.