def ball(recipients, center, radius, steps=15, upper_half=True, lower_half=True, **kwargs): """Create a ball by using the remporary effect ``BeamRingPoint``. :param RecipientFilter recipients: Players that should see the beam. :param Vector center: The center location of the ball. :param float radius: The radius of the ball. :param int steps: Number of rings that should be used to create the ball. :param bool upper_half: If False, the upper half of the ball isn't created. :param bool lower_half: If False, the lower half of the ball isn't created. .. note:: The number of steps is used for the lower and upper half. So, if you define 15 steps, 29 rings are created (the center ring is shared by both halves). """ # Make sure that at least one argument is True assert not (upper_half == lower_half == False) step = float(radius) / steps for x in range(steps): dist = step * x org = Vector(*center) org.z += dist rad = 2 * radius * (1 - (float(x) / steps)**2)**0.5 if upper_half: entity = TempEntity('BeamRingPoint') entity.center = org entity.start_radius = rad entity.end_radius = rad - 0.1 for attr, value in kwargs.items(): setattr(entity, attr, value) entity.create(recipients) if x and lower_half: org.z -= 2 * dist entity = TempEntity('BeamRingPoint') entity.center = org entity.start_radius = rad entity.end_radius = rad - 0.1 for attr, value in kwargs.items(): setattr(entity, attr, value) entity.create(recipients)
def ball(recipients, center, radius, steps=15, upper_half=True, lower_half=True, **kwargs): """Create a ball by using the remporary effect ``BeamRingPoint``. :param RecipientFilter recipients: Players that should see the beam. :param Vector center: The center location of the ball. :param float radius: The radius of the ball. :param int steps: Number of rings that should be used to create the ball. :param bool upper_half: If False, the upper half of the ball isn't created. :param bool lower_half: If False, the lower half of the ball isn't created. .. note:: The number of steps is used for the lower and upper half. So, if you define 15 steps, 29 rings are created (the center ring is shared by both halves). """ # Make sure that at least one argument is True assert not (upper_half == lower_half == False) step = float(radius) / steps for x in range(steps): dist = step * x org = Vector(*center) org.z += dist rad = 2 * radius * (1 - (float(x) / steps) ** 2) ** 0.5 if upper_half: entity = TempEntity('BeamRingPoint') entity.center = org entity.start_radius = rad entity.end_radius = rad - 0.1 for attr, value in kwargs.items(): setattr(entity, attr, value) entity.create(recipients) if x and lower_half: org.z -= 2 * dist entity = TempEntity('BeamRingPoint') entity.center = org entity.start_radius = rad entity.end_radius = rad - 0.1 for attr, value in kwargs.items(): setattr(entity, attr, value) entity.create(recipients)
def effect108(model, center, start_radius, end_radius, frame_rate, life_time, width, fade_length, amplitude, red, green, blue, alpha, speed, flags): """ est_effect_08 <player filter> <delay> <model> <middle x y z> <start radius> <end radius> <framerate> <life> <width> <spread> <amplitude> <red> <green> <blue> <alpha> <speed> <flags> """ if not isinstance(model, Model): model = Model(model) if not isinstance(center, Vector): center = Vector(*center) te = TempEntity('BeamRingPoint') te.model = model te.halo = model te.center = center te.start_radius = start_radius te.end_radius = end_radius te.frame_rate = frame_rate te.life_time = life_time te.start_width = width te.end_width = width te.fade_length = fade_length te.amplitude = amplitude te.red = red te.green = green te.blue = blue te.alpha = alpha te.speed = speed te.flags = flags return te
def effect10(model, x, y, z, start_radius, end_radius, life_time, width, fade_length, amplitude, red, green, blue, alpha, speed): """ est_effect 10 <player filter> <delay> <model> <x> <y> <z> <start radius> <end radius> <life> <width> <spread> <amplitude> <red> <green> <blue> <alpha> <speed> """ if not isinstance(model, Model): model = Model(model) te = TempEntity('BeamRingPoint') te.model = model te.halo = model te.center = Vector(x, y, z) te.start_radius = start_radius te.end_radius = end_radius te.life_time = life_time te.start_width = width te.end_width = width te.fade_length = fade_length te.amplitude = amplitude te.red = red te.green = green te.blue = blue te.alpha = alpha te.speed = speed return te
def _est_effect(command): todo = str(command[1]) filter = str(command[2]) delay = float(command[3]) if todo == "1": te = TempEntity('Armor Ricochet') te.position = Vector(float(command[4]), float(command[5]), float(command[6])) te.direction = Vector(float(command[7]), float(command[8]), float(command[9])) te.create() if todo == "2": te = TempEntity('BeamEntPoint') te.alpha = int(command[13]) te.blue = int(command[12]) te.green = int(command[11]) te.end_width = float(command[9]) te.life_time = float(command[7]) te.start_width = float(command[8]) te.end_entity_index = Player.from_userid(int(command[6])).index te.halo_index = Model(str(command[4])).index te.model_index = Model(str(command[4])).index te.start_entity_index = Player.from_userid(int(command[5])).index te.red = int(command[11]) te.create() if todo == "3": te = TempEntity('BeamPoints') model = Model(str(command[4])) x1 = float(command[5]) y1 = float(command[6]) z1 = float(command[7]) x2 = float(command[8]) y2 = float(command[9]) z2 = float(command[10]) life = float(command[11]) width = int(command[12]) end_width = int(command[13]) red = int(command[14]) green = int(command[15]) blue = int(command[16]) alpha = int(command[17]) te.alpha = alpha te.green = green te.blue = blue te.red = red te.end_width = end_width te.life_time = life te.start_width = width te.halo_index = model.index te.model_index = model.index te.end_point = Vector(x1, y1, z1) te.start_point = Vector(x2, y2, z2) te.create() if todo == "4": te = TempEntity('BeamFollow') te.alpha = int(command[13]) te.blue = int(command[12]) te.green = int(command[11]) te.end_width = int(command[8]) te.life_time = float(command[6]) te.start_width = int(command[7]) te.entity_index = Player.from_userid(int(command[5])).index te.fade_length = int(command[9]) te.halo_index = Model(str(command[4])).index te.model_index = Model(str(command[4])).index te.red = int(command[10]) te.create() if todo == "5": te = TempEntity('BeamRing') te.alpha = int(command[14]) te.blue = int(command[13]) te.green = int(command[12]) te.amplitude = float(command[10]) te.end_width = int(command[8]) te.life_time = float(command[7]) te.start_width = int(command[8]) te.end_entity_index = int(command[6]) te.halo_index = Model(str(command[4])).index te.model_index = Model(str(command[4])).index te.speed = int(command[15]) te.start_entity_index = Player.from_userid(int(command[5])).index te.red = int(command[11]) #est_effect [BeamRing] <player Filter> <delay> <model> <userid> <end index> <life> <width> <spread> <amplitude> <Red> <Green> <Blue> <Alpha> <speed> if todo == "6": te = TempEntity('Large Funnel') te.model_index = Model(str(command[4])).index te.reversed = int(command[8]) te.origin = Vector(float(command[5]), float(command[6]), float(command[7])) te.create() #est_effect [LargeFunnel] <player Filter> <delay> <model> <x> <y> <z> <reversed> if todo == "7": te = TempEntity('Smoke') te.scale = float(command[8]) te.frame_rate = int(command[9]) te.model_index = Model(str(command[4])).index te.model = Model(str(command[4])) te.origin = Vector(float(command[5]), float(command[6]), float(command[7])) te.create() if todo == "8": te = TempEntity('Metal Sparks') te.direction = Vector(float(command[8]), float(command[9]), float(command[10])) te.position = Vector(float(command[5]), float(command[6]), float(command[7])) te.create() #est_effect [MetalSparks] <player Filter> <delay> <model> <x> <y> <z> (towards <x> <y> <z>) + if todo == "9": te = TempEntity('GaussExplosion') te.type = int(command[11]) te.direction = Vector(float(command[8]), float(command[9]), float(command[10])) te.origin = Vector(float(command[5]), float(command[6]), float(command[7])) te.create() #est_effect [GaussExplosion] <player Filter> <delay> <model> <x> <y> <z> (towards <x> <y> <z>) <type> if todo == "10": te = TempEntity('BeamRingPoint') te.alpha = int(command[17]) te.blue = int(command[16]) te.green = int(command[15]) te.amplitude = float(command[13]) te.end_width = float(command[11]) te.life_time = float(command[10]) te.start_width = float(command[11]) te.end_radius = float(command[9]) te.start_radius = float(command[8]) te.fade_length = int(command[12]) te.halo_index = Model(str(command[4])).index te.model_index = Model(str(command[4])).index te.speed = int(command[18]) te.center = Vector(float(command[5]), float(command[6]), float(command[7])) te.red = int(command[14]) te.create() if todo == "11": te = TempEntity('GlowSprite') te.life_time = float(command[8]) te.scale = float(command[9]) te.brightness = int(command[10]) te.model_index = Model(str(command[4])).index te.origin = Vector(float(command[5]), float(command[6]), float(command[7])) te.create()