from __future__ import division import wcs, playerlib, es, random, gamethread from wcs import wcs info = es.AddonInfo() info['name'] = "Hunter" info['version'] = "1.0.0" info['author'] = "Schubaal" info['url'] = "http://addons.eventscripts.com/addons/view/WCS_Hunter" info['description'] = "Hunter race" z = 'Hunter' race = wcs.Race(z) raceskill = wcs.Race(z).registerSkill raceskill("Aspect of the Hawk", 4, 1, "Increases the damage you deal by [2..8]") raceskill("Survivalist", 4, 1, "Increases your health by [5..20]") raceskill("Viper Sting", 2, 5, "Your attacks drain [1..2] (pistols) or [2..4] (other) bullets from your opponents' clips", 5) raceskill("Concussive Barrage", 3, 2, "Your attacks have a [4..12]% chance of dazing your opponent for 3s", 2) raceskill("Master Marksman", 5, 2, "Your attacks have a [1..5]% chance of being a critical hit", 4) uName = "Bestial Wrath" race.registerUltimate(uName, 6, 1, 1, "The hunter goes into a rage, dealing 20% extra damage for 18s (1m cooldown)") race.registerMinLevel(1) isDazed = {} def player_ultimate_on(event_var): userid = int(event_var['userid']) if wcs.GetLevel(userid, z, uName): if not wcs.Command(userid).GetCoolDown(uName): wcs.Command(userid).SetCoolDown(uName,60) wcs.Command(userid)[uName] = 1 gamethread.delayed(18,wcs.Command(userid)[uName] = 0) def player_hurt(event_var): userid = int(event_var['userid']) attacker = int(event_var['attacker']) extraDamage = 0 level = wcs.GetLevel(attacker, z, "Aspect of the Hawk") if level: extraDamage = extraDamage + level*2 if wcs.Command(attacker)[uName]: extraDamage = extraDamage * 1.2 + event_var['dmg_health'] * 0.2 level = wcs.GetLevel(attacker, z, "Master Marksman") if level: randint(1,100) randNum = randint(1,100) if randNum <= level: extraDamage = int(extraDamage * 2 + event_var['dmg_health']) if extraDamage: wcs.Command(userid).Damage(extraDamage, 2, attacker) level = wcs.GetLevel(attacker, z, "Viper Sting") if level: wcs.Command(userid).ClipAdd(-level,1) wcs.Command(userid).ClipAdd(level*-2) level = wcs.GetLevel(attacker, z, "Concussive Barrage") if level: if not isDazed[userid]: maxRand = level*4 randNum = randint(1,100) if randNum <= maxRand: isDazed[userid] = 1 wcs.Command(userid).Shake(1,5) wcs.Command(userid).SpeedAdd(-0.5) gamethread.delayed(3, wcs.Command(userid).SpeedAdd(0.5)) gamethread.delayed(3, del isDazed[userid]) def player_spawn(event_var): userid = int(event_var['userid']) level = wcs.GetLevel(userid, z, 'Survivalist') wcs.Command(userid).HealthAdd(level*5)