Mana Burn - Have a chance to burn the enemies money
Evasion - Have a chance to evade shots fired at you
Immolation - Give yourself a burning aura that damages any enemy inside it, but you lose a lot money. +ability / -ability
Metamorphosis - Transform into a demon for a while. While you are a demon, you deal more damage and have more health and speed

Demon Hunters are dark, shadowy warriors who are shunned by the greater Night Elf society. They made a pact, long ago, to fight against the forces of chaos using its own terrible powers against it. These mysterious warriors ritually blind themselves so that they develop 'spectral sight' that enables them to see demons and undead with greater clarity. They wield demonically charged warblades in battle and even call upon demonic energies to augment their formidable combat skills. Although they are counted as some of the mightiest warriors within the Night Elves' society, the Demon Hunters are always maligned and misunderstood for making their selfless pact with darkness.
Code
GeSHi (python):###################
# Made by Espeladden a.k.a Noobzard
# Thanks to Freddukes for helping me
# And Rotgutts have to get some credit too. He came with the ideas, and what everything should do
# Thank you The_Last_ghost or as I call u Hawk for helping me with the ability
# Import module
import es
import random
import gamethread
import wcs
from wcs import wcs
###################
# PUBLISH INFO
info = es.AddonInfo()
info.name = 'Demon Hunter'
info.author = 'Espeladden'
###################
# RACE INFO
#
RaceName = 'Demon Hunter'
race = wcs.Race(RaceName)
race.registerMinLevel(70)
###################
# SKILL INFO
# Syntax: registerSkill("skill name",<amount of levels>,<skill points to buy>,"description")
race.registerSkill('Mana burn',5,2,'Burn your enemies mana')
race.registerSkill('Evasion',6,2,'Have a chance to evade shots')
race.registerSkill('Immolation',4,2,'Set yourself on fire and deal damage to nearby enemies')
##################
# Ultimate Info
# Syntax: registerUltimate(ultiName, ultiRequiredLevel, ultiMaxLevel, ultiLevelInterval, ultiDescription)
race.registerUltimate("Metamorphosis",8,1,1,'Transform into a demon')
def player_hurt(ev):
userid = int(ev['userid'])
attacker = int(ev['attacker'])
damage = int(ev['dmg_health'])
evasion = wcs.GetLevel(attacker, RaceName, 'Evasion') * 5
mana = wcs.GetLevel(attacker, RaceName, 'Mana burn') * 5
metamorphosis = wcs.GetLevel(attacker,RaceName, 'Metamorphosis')
amount = int(damage * 0.15)
effect = wcs.Effect()
if evasion:
if evasion > random.randint(1,100):
wcs.Command(userid).Heal(damage)
es.tell(userid, '#multi', '#lightgreenEvasion #default- #greenYou have evaded a shot')
effect.Ring3(userid, 150, 5, 255, 0, 0)
if metamorphosis:
if wcs.Command(userid).ReturnDict('transformed'):
wcs.Command(userid).Damage(amount, 32, attacker)
es.tell(userid, '#multi', '#lightgreenMetamorphosis #default- #greenYou have dealt %s extra damage as a beast!'%amount)
if mana:
if mana > random.randint(1,100):
amount = es.setplayerprop('CCSPlayer.m_iAccount',int(es.getplayerprop(userid,'CCSPlayer.m_iAccount')) - 400)
es.tell(userid,'#multi', '#lightgreenMana Burn #default- #greenYou have stole 400 mana from your victim.')
wcs.Effect().Beam4(userid, attacker, 2, 234, 167, 48)
def player_ability_on(ev):
userid = int(ev['userid'])
immolation = wcs.GetLevel(userid, RaceName, 'Immolation')
if immolation:
playeru = wcs.Command(userid)
cash = es.getplayerprop(userid, 'CSSPlayer.m_iAccount')
if not cash < 1000:
immostatus = playeru.ReturnDict('ImmoStatus')
if immostatus == 0:
playeru.UpdateDict('ImmoStatus', 1)
es.tell(userid, '#multi', '#lightgreenYou have turned #greenImmolation on!')
immo_loop(userid)
elif immostatus == 1:
playeru.UpdateDict('ImmoStatus', 0)
name = 'immolation_%s' % userid
gamethread.canceldelayed(name)
es.tell(userid, '#multi', '#lightgreenYou have turned #greenImmolation off!')
else:
es.tell(userid, '#multi', "#lightgreenYou have turned #greenImmolation off #lightgreenbecause you don't have enough mana")
def force_ability_off(userid):
wcs.Command(userid).UpdateDict('ImmoStatus', 0)
name = 'immolation_%s' % userid
gamethread.canceldelayed(name)
es.tell(userid, '#multi', '#lightgreenYour #greenImmolation #lightgreenhave been turned #greenoff!')
def immo_loop(userid):
cash = es.getplayerprop(userid, 'CSSPlayer.m_iAccount')
if not cash < 1000:
immolation = wcs.GetLevel(userid, RaceName, 'Immolation')
irange = 60 + immolation * 10
userteam = es.getplayerteam(userid)
if userteam == 2:
targets = '#ct'
elif userteam == 3:
targets = '#t'
wcs.Effect().Misc5(userid,5,1)
wcs.Command(userid).DamageArea(irange, 2, targets)
es.setplayerprop(userid, 'CCSPlayer.m_iAccount', cash - 50)
name = 'immolation_%s' % userid
gamethread.delayedname(1, name, immo_loop, userid)
else:
es.tell(userid, '#multi', "#lightgreenYou have turned #greenImmolation off #lightgreenbecause you don't have enough mana")
def player_spawn(ev):
meta = wcs.GetLevel(ev['userid'],RaceName, 'Metamorphosis')
if meta:
wcs.Command(ev['userid']).UpdateDict('transformed',0)
def player_death(ev):
userid = ev['userid']
if wcs.GetLevel(userid,RaceName,'Metamorphosis') and wcs.Command(userid).ReturnDict('transformed'):
gamethread.cancelDelayed('meta_%s'%userid)
TransformBack(userid)
def player_ultimate_on(ev):
userid = ev['userid']
player = wcs.Command(userid)
level = wcs.GetLevel(userid,RaceName,'Metamorphosis')
player.SetCoolDown('Metamorphosis',40)
effect = wcs.Effect()
if level:
player.HealthAdd(50)
player.SpeedAdd(0.4)
player.UpdateDict('transformed',1)
gamethread.delayedname(10,'meta_' + str(userid),TransformBack, userid)
effect.Ring1(userid, 150, 5, 255, 0, 255)
def round_end(ev):
for player in es.getUseridList():
if wcs.Command(player).ReturnDict('transformed'):
TransformBack(player)
def round_start(ev):
for player in es.getUseridList():
if wcs.Command(player).ReturnDict('ImmoStatus'):
force_ability_off(player)
def TransformBack(uid):
player = wcs.Command(uid)
if player.ReturnDict('transformed'):
player.HealthAdd(-50)
player.SpeedAdd(-0.4)
player.UpdateDict('transformed',0)
wcs.Effect().Ring4(uid, 50, 300, 4, 25, 10, 255, 0, 0)
es.tell(uid,'#multi','#greenMetamorphosis #default- #lightgreenYou have reverted back to your former self')
def round_end
userid = ev['userid']
if wcs.GetLevel(userid,RaceName,'Metamorphosis') and wcs.Command(userid).ReturnDict('transformed'):
gamethread.cancelDelayed('meta_%s'%userid)
TransformBack(userid)
Well here is my first shot at a python race
Dukes helped me a lot with it and Rotgutts came in handy too 
If you find any bugs let me know, then ill try to fix them.
Come with any feedback u might have








Logged

Canada
France
United States
And what do u mean by the other stuff? Explain more? 


