from __future__ import division import wcs, playerlib, es, random, gamethread from wcs import wcs info = es.AddonInfo() info['name'] = "Zeus Race" info['version'] = "1.0" info['author'] = "Bonbon AKA: Bonbon367" info['url'] = "http://www.notimplementedyet.com" info['description'] = "A completely origional race for those of you who like Greek Mythology Race #2" z = 'Zeus' race = wcs.Race(z) raceskill = wcs.Race(z).registerSkill raceskill('Allied Gods', 6, 1, "A random god will help you in your time of need") raceskill('Ichor Of Gods', 5, 1, "The ichor of the gods flows through your blood weak attacks don't effect you and you have god powers") raceskill("Pandora's Box", 4, 3, "Send a plague of evil upon a 100-400 unit Radius +ability to use") raceskill('Lightning Strike', 4, 2, "You strike your enemies with Thunder chance 5-20%") race.registerUltimate("Golden Scale", 4, 3, 4, "You can chose a heros fate, be warned though The Golden Scale takes no sides") race.registerMinLevel(55) def player_ultimate_on(event_var): userid = int(event_var['userid']) if wcs.GetRace(userid) == 'Zeus': if wcs.GetLevel(userid, z, 'Golden Scale'): wcs.Command(userid).SetCoolDown('Golden Scale', 25) if random.randint(1, 3 + wcs.GetLevel(userid, z, 'Golden Scale')) != 1: es.tell(userid, '#multi', '#greenSuccess!') if playerlib.getPlayer(userid).attributes['teamid'] == 2: # T: random_ct = random.choice(playerlib.getUseridList('#ct,#alive')) wcs.Command(random_ct).Damage(random.randint(1, 10) + wcs.GetLevel(userid, z, 'Golden Scale') * random.randint(1, 13), 32, userid) wcs.Effect().Misc2(userid, 1, 1) wcs.Effect().Misc3(userid, 1, 1) wcs.Effect().Misc2(random_ct, 1, 1) wcs.Effect().Misc3(random_ct, 1, 1) elif playerlib.getPlayer(userid).attributes['teamid'] == 3: # CT random_t = random.choice(playerlib.getUseridList('#t,#alive')) wcs.Command(random_t).Damage(random.randint(1, 10) + wcs.GetLevel(userid, z, 'Golden Scale') * random.randint(1, 13), 32, userid) wcs.Effect().Misc2(userid, 1, 1) wcs.Effect().Misc3(userid, 1, 1) wcs.Effect().Misc2(random_t, 1, 1) wcs.Effect().Misc3(random_t, 1, 1) else: es.msg('#multi', '#green%s tempted fate, and lost'%playerlib.getPlayer(userid).attributes['name']) if playerlib.getPlayer(userid).attributes['teamid'] == 2: # T: random_t = random.choice(playerlib.getUseridList('#t,#alive')) wcs.Command(random_t).Damage(wcs.GetLevel(userid, z, 'Golden Scale') * 8, 32, random_t) wcs.Effect().Misc2(userid, 1, 1) wcs.Effect().Misc3(userid, 1, 1) wcs.Effect().Misc2(random_t, 1, 1) wcs.Effect().Misc3(random_t, 1, 1) elif playerlib.getPlayer(userid).attributes['teamid'] == 3: # CT random_ct = random.choice(playerlib.getUseridList('#ct,#alive')) wcs.Command(random_ct).Damage(wcs.GetLevel(userid, z, 'Golden Scale') * 8, 32, random_ct) wcs.Effect().Misc2(userid, 1, 1) wcs.Effect().Misc3(userid, 1, 1) wcs.Effect().Misc2(random_ct, 1, 1) wcs.Effect().Misc3(random_ct, 1, 1) def player_ability_on(event_var): userid = int(event_var['userid']) if wcs.GetRace(userid) == 'Zeus': if wcs.GetLevel(userid, z, "Pandora's Box"): if not wcs.Command(userid).GetCoolDown("Pandora's Box"): wcs.Command(userid).SetCoolDown("Pandora's Box", 20) player_time = wcs.GetLevel(userid, z, "Pandora's Box") * 3 player_loc = es.getplayerlocation(userid) es.server.queuecmd('es_prop_dynamic_create %s props/de_dust/du_crate_64x64'%userid) gamethread.delayed(0.1, prop, args=(userid, player_time, player_loc)) else: es.tell(userid, '#multi', '#greenSorry, you have to wait a little while longer for your skill to regenerate') def prop(userid, player_time, player_loc): prop = int(es.ServerVar('eventscripts_lastgive')) gamethread.delayed(3, es.server.queuecmd, 'est_entteleport %s %s %s %s'%(prop, player_loc[0], player_loc[1], player_loc[2])) gamethread.delayedname(3, 'pandora_loop_%s'%userid, pandora_box_loop, args=(userid, player_time, player_loc, prop)) def pandora_box_loop(userid, player_time, player_loc, prop): if player_time >= 0: gamethread.delayedname(1, '_pandora_loop_%s'%userid, wcs.Command(userid).NearCoord, args=(player_loc[0], player_loc[1], player_loc[2], wcs.GetLevel(userid, z, "Pandora's Box") * 100, wcs.GetLevel(userid, z, "Pandora's Box") * 100, wcs.GetLevel(userid, z, "Pandora's Box") * 100, pandora_box, '#alive')) player_time -= 1 gamethread.delayedname(1, 'pandora_loop_%s'%userid, pandora_box_loop, args=(userid, player_time, player_loc, prop)) wcs.Effect().RingCustom('#all', 0, 'sprites/purpleglow1.vmt', player_loc[0], player_loc[1], player_loc[2], 100, 300, 0.8, 10, 10, 10, 255, 0, 0, 255, 10) else: for a in es.createentitylist(): if a == prop: es.server.queuecmd('es_xremove %s'%prop) def pandora_box(userid, attacker): wcs.Effect().Misc3(userid, 1, 1) es.server.queuecmd('est_freeze %s 1'%userid) gamethread.delayed(0.5, es.server.queuecmd, 'est_freeze %s 0'%userid) gamethread.delayed(0.5, wcs.Effect().Misc2, args=(userid, 1, 1)) def prep_hurt(event_var): userid = int(event_var['userid']) attacker = int(event_var['attacker']) random_number = random.randint(1, 4) if event_var['weapon'] != 'point_hurt': if wcs.GetRace(attacker) == 'Zeus': if wcs.GetLevel(attacker, z, 'Lightning Strike'): if random.randint(1, 100) <= wcs.GetLevel(attacker, z, 'Lightning Strike') * 5: wcs.Command(userid).Damage(wcs.GetLevel(attacker, z, 'Lightning Strike') * 2, 32, attacker) if wcs.GetLevel(attacker, z, 'Lightning Strike') == 1: wcs.Effect().Beam1(attacker, userid, 1, 0, 255, 255) elif wcs.GetLevel(attacker, z, 'Lightning Strike') == 2 or wcs.GetLevel(attacker, z, 'Lightning Strike') == 3: wcs.Effect().Beam1(attacker, userid, 1, 0, 255, 255) gamethread.delayed(0.2, wcs.Effect().Beam2, args=(attacker, userid, 1, 128, 255, 255)) elif wcs.GetLevel(attacker, z, 'Lightning Strike') == 4: wcs.Effect().Beam1(attacker, userid, 1, 0, 255, 255) gamethread.delayed(0.2, wcs.Effect().Beam2, args=(attacker, userid, 1, 128, 255, 255)) gamethread.delayed(0.4, wcs.Effect().Beam4, args=(attacker, userid, 1, 100, 255, 255)) if wcs.GetRace(userid) == 'Zeus': if wcs.GetLevel(userid, z, 'Ichor Of Gods'): if int(event_var['dmg_health']) <= wcs.GetLevel(userid, z, 'Ichor Of Gods') * 5: playerlib.getPlayer(userid).set('health', playerlib.getPlayer(userid).get('health') + int(event_var['dmg_health'])) if random.randint(1, 2) == 2: wcs.Effect().Misc3(userid, 1, 2) if wcs.GetLevel(userid, z, 'Allied Gods'): if playerlib.getPlayer(userid).get('health') <= wcs.GetLevel(userid, z, 'Allied Gods') * 5: if playerlib.getPlayer(userid).attributes['teamid'] == 2: filter = '#ct' elif playerlib.getPlayer(userid).attributes['teamid'] == 3: filter = '#t' if random_number == 1: es.tell(userid, '#multi', '#greenPosideon has helped you by sending a flood against your enemies') wcs.Command(attacker).Near(wcs.GetLevel(userid, z, 'Allied Gods') * 80, flood, filter) wcs.Effect().Ring4(userid, 100, 200, 1, 40, 100, 0, 0, 255) elif random_number == 2: es.tell(userid, '#multi', '#greenHades has sent a swarm of Deatheaters on your enemies') wcs.Command(attacker).Near(wcs.GetLevel(userid, z, 'Allied Gods') * 70, deatheaters, filter) wcs.Effect().Ring4(userid, 100, 200, 1, 40, 100, 255, 0, 255) elif random_number == 3: es.tell(userid, '#multi', '#greenDionysus has gotten your enemies drunk on wine!') wcs.Command(attacker).Near(wcs.GetLevel(userid, z, 'Allied Gods') * 100, drunk, filter) wcs.Effect().Ring4(userid, 100, 200, 1, 40, 100, 255, 0, 0) def flood(userid, attacker): es.server.queuecmd('es_fire %s !self DispatchEffect WaterSurfaceExplosion'%userid) wcs.Command(userid).Damage(wcs.GetLevel(attacker, z, 'Allied Gods') * 2, 32, attacker) es.server.queuecmd('est_physpush %s %s %s %s'%(userid, random.randint(wcs.GetLevel(attacker, z, 'Allied Gods') * -100, wcs.GetLevel(attacker, z, 'Allied Gods') * 100), random.randint(wcs.GetLevel(attacker, z, 'Allied Gods') * -100, wcs.GetLevel(attacker, z, 'Allied Gods') * 100), random.randint(wcs.GetLevel(attacker, z, 'Allied Gods') * -100, wcs.GetLevel(attacker, z, 'Allied Gods') * 100))) def deatheaters(userid, attacker): wcs.Command(userid).Drain(wcs.GetLevel(attacker, z, 'Allied Gods'), 1, 3, attacker) wcs.Effect().Ring3(userid, 100, 3, 255, 0, 255) def drunk(userid, attacker): wcs.Effect().Ring3(userid, 100, 1, 255, 0, 0) es.server.queuecmd('est_drunk %s %s'%(userid, wcs.GetLevel(attacker, z, 'Allied Gods') / 2.0)) def player_spawn(event_var): userid = int(event_var['userid']) if wcs.GetRace(userid) == 'Zeus': if wcs.GetLevel(userid, z, 'Ichor Of Gods'): playerlib.getPlayer(userid).set('health', 100 + (wcs.GetLevel(userid, z, 'Ichor Of Gods') * random.randint(1, wcs.GetLevel(userid, z, 'Ichor Of Gods')))) def player_spawn(ev): wcs.Command(ev['userid']).SetCoolDown('Golden Scale', 10)