import wcs, es, random, gamethread, playerlib from wcs import wcs sw = 'Sacred Warrior' race = wcs.Race(sw) raceskill = wcs.Race(sw).registerSkill race.registerUltimate('Devastating View', 3, 2, 5, 'Look at a player to hurt them at the cost of your health') race.registerMinLevel(70) race.registerTeamLimit(2) raceskill('Inner Vitality', 4, 1, "Regen HP the lower your HP the higher the gain") raceskill('Burning Spear', 3, 2, "Burn enemy at the cost of your own health") raceskill("Berseker's Blood", 3, 1, "Your bullets gain power with every 16 hp missing") def load(): for userid in playerlib.getUseridList('#all'): gamethread.delayedname(3, 'heal_%s'%userid, heal, args=(userid)) def player_activate(event_var): userid = int(event_var['userid']) gamethread.delayedname(3, 'heal_%s'%userid, heal, args=(userid)) def player_disconnect(event_var): gamethread.cancelDelayed('heal_%s'%event_var['userid']) def heal(): for userid in es.getUseridList(): player = playerlib.getPlayer(userid) health = player.attributes['health'] if wcs.GetRace(userid) == 'Sacred Warrior': if wcs.GetLevel(userid, sw, 'Inner Vitality'): if health < 110 and health > 60: new_health = health + wcs.GetLevel(userid, sw, 'Inner Vitality') player.set('health', new_health) elif health < 60 and health > 40: new_health = health + wcs.GetLevel(userid, sw, 'Inner Vitality') * 1.5 player.set('health', new_health) elif health < 40: new_health = health + wcs.GetLevel(userid, sw, 'Inner Vitality') * 2 player.set('health', new_health) gamethread.delayed(3, heal, args=()) def prep_hurt(event_var): userid = int(event_var['userid']) attacker = int(event_var['attacker']) player_loc = es.getplayerlocation(userid) attacker_loc = es.getplayerlocation(attacker) health = playerlib.getPlayer(userid).get('health') damage_done = int(event_var['dmg_health']) bb_level = wcs.GetLevel(attacker, sw, "Berseker's Blood") if wcs.GetRace(attacker) == 'Sacred Warrior': if wcs.GetLevel(attacker, sw, 'Burning Spear') != 0: es.server.queuecmd('est_burn %s 0.01'%userid) wcs.Command(userid).Damage(wcs.GetLevel(attacker, sw, 'Burning Spear') + random.randint(1, 3), 32, attacker) if random.randint(1, 3) == 1: wcs.Effect().Beam1(attacker, userid, 5, 255, 0, 0) if wcs.GetLevel(attacker, sw, "Berseker's Blood") != 0: if health < 100 and health > 84: wcs.Command(userid).Damage(bb_level * (damage_done / 25), 32, attacker) elif health < 84 and health > 68: wcs.Command(userid).Damage(bb_level * (damage_done / 20) + random.randint(0, bb_level), 32, attacker) elif health < 68 and health > 52: wcs.Command(userid).Damage(bb_level * (damage_done / 17) + random.randint(1, bb_level), 32, attacker) elif health < 52 and health > 36: wcs.Command(userid).Damage(bb_level * (damage_done / 15) + random.randint(1, bb_level + 1), 32, attacker) elif health < 36 and health > 20: wcs.Command(userid).Damage(bb_level * (damage_done / 13) + random.randint(1, bb_level + 2), 32, attacker) elif health < 4 and health > 0: wcs.Command(userid).Damage(bb_level * (damage_done / 10) + random.randint(1, bb_level + 3), 32, attacker) def player_ultimate_on(event_var): userid = int(event_var['userid']) if wcs.GetRace(userid) == 'Sacred Warrior': es.ServerVar('player_point').set(0) es.server.cmd('est_getviewplayer %s player_point'%event_var['userid']) player_point = int(es.ServerVar('player_point')) dv_level = wcs.GetLevel(userid, sw, 'Devastating View') if player_point != 0: wcs.Command(userid).SetCoolDown('Devastating View', 15) if wcs.GetLevel(userid, sw, 'Devastating View') == 1: wcs.Command(player_point).Damage(random.randint(1, 40), 32, userid) wcs.Command(userid).Damage(random.randint(1, 30), 32, userid) elif wcs.GetLevel(userid, sw, 'Devastating View') == 2: wcs.Command(player_point).Damage(random.randint(20, 60), 32, userid) wcs.Command(userid).Damage(random.randint(1, 60), 32, userid) else: es.tell(userid, '#multi', '#greenYou fail!') wcs.Command(userid).SetCoolDown('Devastating View', 2) heal()