def spellDivineRetribution(caster):
iDemon = gc.getInfoTypeForString('PROMOTION_DEMON')
iUndead = gc.getInfoTypeForString('PROMOTION_UNDEAD')
for iPlayer in range(gc.getMAX_PLAYERS()):
player = gc.getPlayer(iPlayer)
if player.isAlive():
py = PyPlayer(iPlayer)
for pUnit in py.getUnitList():
if (pUnit.getRace() == iDemon or pUnit.getRace() == iUndead):
pUnit.doDamage(75, 100, caster, gc.getInfoTypeForString('DAMAGE_HOLY'), false)
def spellDivineRetribution(caster):
iDemon = gc.getInfoTypeForString('PROMOTION_DEMON')
iUndead = gc.getInfoTypeForString('PROMOTION_UNDEAD')
iHero = gc.getInfoTypeForString('PROMOTION_HERO')
for iPlayer in range(gc.getMAX_PLAYERS()):
player = gc.getPlayer(iPlayer)
if player.isAlive():
py = PyPlayer(iPlayer)
for pUnit in py.getUnitList():
if (pUnit.getRace() == iDemon or pUnit.getRace() == iUndead):
if (pUnit.getPromotion() != iHero):
pUnit.doDamage(75, 100, caster, gc.getInfoTypeForString('DAMAGE_HOLY'), false)
4)Save it and it should prevent all undead and demonic heroes from dying (and unfortunatly from damage).
if (pUnit.getRace() == iDemon or pUnit.getRace() == iUndead):
if (pUnit.isHasPromotion(iHero)):
pUnit.doDamage(75, 75, caster, gc.getInfoTypeForString('DAMAGE_HOLY'), false)
else:
pUnit.doDamage(75, 100, caster, gc.getInfoTypeForString('DAMAGE_HOLY'), false)
Edit: I just read your (Vehem's) post in the other thread and it looks like the first two numbers are base damage and maximum damage (i.e. (50, 75,...) would do 50 damage but not going over 75 damage). Still, your code would always bring the heroes to 75%: 75 damage with a 75 damage cap. I'd rather see it like (75, 99,...) to never kill them, but able to leave them very crippled.