from __future__ import division import wcs, playerlib, es, random from wcs import wcs en = 'Enchantress' race = wcs.Race(en) raceskill = wcs.Race(en).registerSkill raceskill('Impetus', 5, 2, "Deal extra damage based on the distance between you and your victim") raceskill('Enchant', 5, 1, "Freeze your victim 3-7% chance") raceskill('Untouchable' , 5, 3, "Dodge bullets chance 2-10%") race.registerUltimate("Nature's Attendents", 3, 3, 5, "Heal nearby teammates and yourself for your level * 10 hp") race.registerMinLevel(90) race.registerTeamLimit(2) def player_ultimate_on(event_var): userid = int(event_var['userid']) if wcs.GetRace(userid) == en: if wcs.GetLevel(userid, en, "Nature's Attendents"): player_loc = es.getplayerlocation(userid) es.ServerVar('Heal').set(0) health_range = wcs.GetLevel(userid, en, "Nature's Attendents") * 100 health_to_give = wcs.GetLevel(userid, en, "Nature's Attendents") * 10 wcs.Effect().Ring1(userid, wcs.GetLevel(userid, en, "Nature's Attendents") * 150, 2, 0, 0, 255) # es.msg('7') if playerlib.getPlayer(userid).attributes['teamid'] == 2: es.server.queuecmd('nearcoord Heal #alive#t %s %s %s %s %s %s "es playerset healthadd server_var(Heal) %s"'%(player_loc[0], player_loc[1], player_loc[2], health_range, health_range, health_range, health_to_give, userid)) # es.msg('8') elif playerlib.getPlayer(userid).attributes['teamid'] == 3: es.server.queuecmd('nearcoord Heal #alive#ct %s %s %s %s %s %s "es playerset healthadd server_var(Heal) %s"'%(player_loc[0], player_loc[1], player_loc[2], health_range, health_range, health_range, health_to_give, userid)) # es.msg('9') def player_hurt(event_var): if event_var['weapon'] != 'point_hurt': userid = int(event_var['userid']) attacker = int(event_var['attacker']) distance = playerlib.getPlayer(userid).get('distance', [attacker, 'xyz']) if wcs.GetRace(attacker) == en: if wcs.GetLevel(attacker, en, 'Impetus'): wcs.Command(userid).Damage(int(((wcs.GetLevel(attacker, en, 'Impetus') + ((3 * wcs.GetLevel(attacker, en, 'Impetus')))) / 2000) * distance), 32, attacker) if random.randint(1, 4) == 4: wcs.Effect().Misc5(userid, 1, 1) if wcs.GetLevel(attacker, en, 'Enchant'): if random.randint((wcs.GetLevel(attacker, en, 'Enchant') + wcs.GetLevel(attacker, en, 'enchant')), 100) > 50: wcs.Command(userid).Freeze(wcs.GetLevel(userid, en, 'Enchant') * 0.2) if random.randint(1, 4) == 1: wcs.Effect().Misc2(userid, 1, 1) if wcs.GetRace(userid) == en: if wcs.GetLevel(userid, en, 'Untouchable'): if random.randint(wcs.GetLevel(userid, en, 'Untouchable') * 2, 100) > 50: health = int(event_var['dmg_health']) + playerlib.getPlayer(userid).get('health') playerlib.getPlayer(userid).set('health', health) if random.randint(1, 4) == 4: # es.msg('16') wcs.Effect().Misc2(userid, 1, 1) wcs.Effect().Misc3(userid, 1, 1) # es.msg('17')