from __future__ import division import wcs, es, random, gamethread, playerlib from wcs import wcs info = es.AddonInfo() info['name'] = "Pistoleer" info['version'] = "2.1.02" info['author'] = "Largo Usagi" info['url'] = "bfs.myftp.org" info['description'] = "Pistoleer By Largo Usagi" es.ServerVar('PistoleerVersion',info.version,'Current Pistoleer Version').makepublic() RaceName = 'Pistoleer' wcs.Race(RaceName).registerSkill('Explosive Rounds', 5, 1, 'Heavier Bullets have a 16% chance of knocking your target around.') wcs.Race(RaceName).registerSkill('Clip Shot', 5, 1, "14-34% Chance of knocking 5 bullets out of your enemy's clip.") wcs.Race(RaceName).registerSkill('Armor Piercing Rounds', 5, 1, 'Armor piercing bullets have a 15-75% chance to tear off 20 points of armor.') wcs.Race(RaceName).registerSkill('Extended Clip', 5, 1, 'You spawn with an extended clip that is 20-100% larger.') wcs.Race(RaceName).registerSkill('Pistol Mastery', 4, 1, '5 Extra Pistol Damage Per Level.') wcs.Race(RaceName).registerUltimate('Showdown', 5, 5, 10, 'Force All Enimies in View To Drop Their Current Gun.(range is effected by level of this skill)') pistols = 'weapon_glock weapon_usp weapon_p228 weapon_deagle weapon_fiveseven weapon_elite' def round_start(ev): playerlist = es.getUseridList() for player in playerlist: if wcs.GetRace(player) == 'Pistoleer': ammoMod = 1 if wcs.GetLevel(player, RaceName, 'Extended Clip') >= 1: ammoMod = wcs.GetLevel(player, RaceName, 'Extended Clip') * .2 pistoleer = playerlib.getPlayer(player) ammo = pistoleer.get('clip', 'secondary') newAmmo = ammo * ammoMod newAmmo = int(newAmmo) wcs.Command(player).ClipAdd(newAmmo, 2) es.tell(player, "#green", "Extended Clip Activated") def prep_hurt(ev): userid = int(ev['userid']) attacker = int(ev['attacker']) if wcs.GetRace(attacker) == 'Pistoleer': if str(ev['weapon']) in pistols: effect = wcs.Effect() erChance = random.randint(1, 100) csChance = random.randint(1, 100) apChance = random.randint(1, 100) if erChance <= 16: mult = wcs.GetLevel(attacker, RaceName, 'Explosive Rounds') * 10 mult = int(mult) es.tell(attacker, "#green", "One of your explosive Rounds hit!") es.tell(userid, "#green", "You Where Hit with an explosive round!") effect.Smoke(userid) xForce = random.randint(0,2) * mult yForce = random.randint(0,2) * mult zForce = random.randint(1,15) * mult zForce = zForce * -1 wcs.Command(userid).Push(xForce,yForce,zForce) wcs.Command(userid).Shake(1, 15) if wcs.GetLevel(attacker, RaceName, 'Armor Piercing Rounds')!= 0: athresh = wcs.GetLevel(attacker, RaceName, 'Armor Piercing Rounds') * 15 athresh = int(athresh) aprob = 0 if apChance <= athresh: aprob = 1 if aprob == 1: wcs.Command(userid).ArmorAdd(-20) effect.Beam2(attacker, userid, 1, 0, 255, 0) es.tell(attacker, "#green", "An Armor Pearcing Round Hit!") es.tell(userid, "#green", "You Where Hit With An Armor Pearcing Round!") if wcs.GetLevel(attacker, RaceName, 'Clip Shot'): prob = 0 thresh = wcs.GetLevel(attacker, RaceName, 'Clip Shot') * 6.8 thresh = int(thresh) if csChance <= thresh: prob = 1 if prob == 1: player = playerlib.getPlayer(userid) ammo = player.get('clip', 'secondary') if ammo >= 5: wcs.Command(userid).ClipAdd(-5, 2) elif ammo <= 5: wcs.Command(userid).Clip(0, 2) ammo = player.get('clip', 'primary') if ammo >= 5: wcs.Command(userid).ClipAdd(-5, 1) elif ammo <= 5: wcs.Command(userid).Clip(0, 1) es.tell(attacker, "#green", "Knocked Ammo Out of Oponents Clip!") es.tell(userid, "#green", "You Had Ammo Knocked out of your Clip!") if wcs.GetLevel(attacker, RaceName, 'Pistol Mastery'): level = wcs.GetLevel(attacker,RaceName,'Pistol Mastery') damageMod = level * 5 wcs.Command(userid).Damage(damageMod,2,attacker) es.tell(attacker, "#green", "Hit target for Extra Damage.") def player_ultimate_on(event_var): userid = int(event_var['userid']) if wcs.GetRace(userid) == 'Pistoleer': filter = '#ct' if event_var['es_userteam'] == '3': filter = '#t' es.tell(userid, "#green", filter) dist = wcs.GetLevel(userid, RaceName, 'Showdown') * 250 wcs.Command(userid).ViewCone(filter,150,dist,draw) es.msg("#green", "DRAW!!!") wcs.Command(userid).SetCoolDown('Showdown',60) def draw(userid,attacker): ateam = es.getplayerteam(attacker) vteam = es.getplayerteam(userid) if ateam != vteam: wcs.Command(userid).Drop()