################### # 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",,,"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(ev): userid = ev['userid'] if wcs.GetLevel(userid,RaceName,'Metamorphosis') and wcs.Command(userid).ReturnDict('transformed'): gamethread.cancelDelayed('meta_%s'%userid) TransformBack(userid)