GeSHi (python): import es, wcs from wcs import wcs RaceName = 'Magician' race = wcs.Race(RaceName) race = wcs.Race('Magician') race.registerMinLevel(200) race.registerSkill('Fire Ball', 4, 2, 'Send a fireball at your enemy') race.registerSkill('Magic Aura' 3, 2, 'Make an aura that damages any enemy within range') race.registerSkill('Demonic powers' 1, 1 'Draw powers from the demonic realm') race.registerUltimate('Time Travel', 8, 1, 1, 'Save a moment in time and go back there later') PlayerDict = {} def player_spawn(ev): PlayerDict[ev['userid']] = {} userid = ev['userid'] a = wcs.Command(userid) fade = wcs.GetLevel(userid, RaceName, 'Demon powers') if face: a.Fade(50, 200) es.tell(userid, 'You are now drawing powers from the demonic realm. You will be stronger as time goes') def player_ultimate_on(ev): userid = ev['userid'] level = wcs.GetLevel(userid, RaceName, 'Time Travel') if level: key = PlayerDict[userid] if not len(PlayerDict[userid]): key['Health'] = int(es.getplayerprop(userid,'CBasePlayer.m_iHealth')) key['Armor'] = int(es.getplayerprop(userid,'CCSPlayer.m_ArmorValue')) key['X'], key['Y'], key['Z'] = es.getplayerprop(userid) key['Pitch'], key['Yaw'], key['Roll'] = wcs.Command(userid).GetViewAngles() player = playerlib.getPlayer(userid) key['Primary'], key['Secondary'] = player.get('primary'), player.get('secondary') key['Pri Ammo'], key['Sec Ammo'] = player.get('ammo','1'), player.get('ammo','2') key['Pri Clip'], key['Sec Clip'] = player.get('clip','1'), player.get('clip','2') else: health, armor, x, y, z, pitch, yaw, roll, primary, secondary, priamm, secamm, priclip, secclip = key['Health'], key['Armor'], key['X'], key['Y'], key['Z'], key['Pitch'], key['Pitch'], key['Roll'], key['Primary'], key['Secondary'], key['Pri Ammo'], key['Sec Ammo'], key['Pri Clip'], key['Sec Clip'] a = wcs.Command(userid) a.Health(health) a.Armor(armor) es.server.cmd('es_xsetpos %s %s %s %s'%(userid,x,y,z)) es.server.queuecmd('est_SetViewAngle %s %s %s %s'%(userid, pitch, yaw, roll)) es.server.cmd('est_removeweapon %s 1'%userid) es.server.cmd('est_removeweapon %s 2'%userid) es.server.cmd('es_xgive %s %s'%(userid,primary)) es.server.cmd('es_xgive %s %s'%(userid,secondary)) a.Clip(priclip,1) a.Clip(secclip,2) a.Ammo(priamm,1) a.Ammo(secamm,2) es.tell(userid,'You have reverted back to the past!') def player_hurt(ev): userid = int(ev['userid']) userTeam = int(ev['es_userteam']) attacker = int(ev['attacker']) fire = wcs.GetLevel(attacker,'RaceName','Fire Ball') a = wcs.Command(userid) dmg = wcs.GetLevel(attacker, 'RaceName', 'Fire Ball') *3 if fire: if random.randint(1,100) <= 50: if userTeam == 2: filter = '#c' elif userTeam == 3: filter = '#t' else: filter = '#a' #This uses our wcs.Command(userid).AreaDamage(team,distance,amount) to dealt the damage a.AreaDamage(filter,50,dmg) def player_ability_on(ev): userid = int(ev['userid']) aura = wcs.GetLevel(userid, RaceName, 'Magic aura') if aura: playeru = wcs.Command(userid) if not cash < 1000: AuraStatus = playeru.ReturnDict('AuraStatus') if immostatus == 0: playeru.UpdateDict('AuraStatus', 1) es.tell(userid, '#multi', '#lightgreenYou have turned #greenMagic Aura on!') aura_loop(userid) elif Aurastatus == 1: playeru.UpdateDict('AuraStatus', 0) name = 'aura_%s' % userid gamethread.canceldelayed(name) es.tell(userid, '#multi', '#lightgreenYou have turned #greenMagic aura off!') else: es.tell(userid, '#multi', "#lightgreenYou have turned #greenMagic Aura #lightgreenoff because you don't have enough mana") def force_ability_off(userid): wcs.Command(userid).UpdateDict('ImmoStatus', 0) name = 'aura_%s' % userid gamethread.canceldelayed(name) es.tell(userid, '#multi', '#lightgreenYour #greenMagic Aura #lightgreenhave been turned #greenoff!') def aura_loop(userid): if not cash < 1000: aura = wcs.GetLevel(userid, RaceName, 'Magic aura') irange = 60 + aura * 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) wcs.Command(userid).TakeCash(50) name = 'aura_%s' % userid gamethread.delayedname(1, name, immo_loop, userid) else: es.tell(userid, '#multi', "#lightgreenYou have turned #greenMagic Aura #lightgreenoff because you don't have enough mana") def round_end(ev): for player in es.getUseridList(): if wcs.Command(player).ReturnDict('ImmoStatus'): force_ability_off(player)