def beam(recipients, start, end, parent=False, **kwargs):
    """A simple wrapper for the temporary effect ``BeamEntPoint``.

    :param RecipientFilter recipients:
        Players that should see the beam.
    :param int/BaseEntity/Vector start:
        The start location of the beam.
    :param int/BaseEntity/Vector end:
        The end location of the beam.
    :param bool parent:
        If True, the beam will be parented to the given entities.
    :param kwargs:
        Additional attributes that will be send to the effect.
    """
    _entity = kwargs.pop('_entity', None)
    if _entity is None:
        entity = TempEntity('BeamEntPoint')
        for attr, value in kwargs.items():
            setattr(entity, attr, value)
    else:
        entity = _entity

    def get_vec(value):
        if isinstance(value, int):
            return Entity(value).origin
        elif isinstance(value, BaseEntity):
            return Entity(value.index).origin
        else:
            return value

    if parent:
        if isinstance(start, int):
            entity.start_entity_index = start
        elif isinstance(start, BaseEntity):
            entity.start_entity_index = start.index
        else:
            entity.start_point = start
    else:
        entity.start_point = get_vec(start)

    if parent:
        if isinstance(end, int):
            entity.end_entity_index = end
        elif isinstance(end, BaseEntity):
            entity.end_entity_index = end.index
        else:
            entity.end_point = end
    else:
        entity.end_point = get_vec(end)

    for attr, value in kwargs.items():
        setattr(entity, attr, value)

    entity.create(recipients)
Ejemplo n.º 2
0
def beam(recipients, start, end, parent=False, **kwargs):
    """A simple wrapper for the temporary effect ``BeamEntPoint``.

    :param RecipientFilter recipients:
        Players that should see the beam.
    :param int/BaseEntity/Vector start:
        The start location of the beam.
    :param int/BaseEntity/Vector end:
        The end location of the beam.
    :param bool parent:
        If True, the beam will be parented to the given entities.
    :param kwargs:
        Additional attributes that will be send to the effect.
    """
    _entity = kwargs.pop('_entity', None)
    if _entity is None:
        entity = TempEntity('BeamEntPoint')
        for attr, value in kwargs.items():
            setattr(entity, attr, value)
    else:
        entity = _entity

    def get_vec(value):
        if isinstance(value, int):
            return Entity(value).origin
        elif isinstance(value, BaseEntity):
            return Entity(value.index).origin
        else:
            return value

    if parent:
        if isinstance(start, int):
            entity.start_entity_index = start
        elif isinstance(start, BaseEntity):
            entity.start_entity_index = start.index
        else:
            entity.start_point = start
    else:
        entity.start_point = get_vec(start)

    if parent:
        if isinstance(end, int):
            entity.end_entity_index = end
        elif isinstance(end, BaseEntity):
            entity.end_entity_index = end.index
        else:
            entity.end_point = end
    else:
        entity.end_point = get_vec(end)

    for attr, value in kwargs.items():
        setattr(entity, attr, value)

    entity.create(recipients)
Ejemplo n.º 3
0
def effect105(model, start_entity_index, end_entity_index, frame_rate,
              life_time, start_width, end_width, fade_length, amplitude, red,
              green, blue, alpha, speed):
    """
    est_effect_05 <player filter> <delay> <model> <start entity> <end entity> <framerate> <life> <start width> <end width> <fade distance> <amplitude> <red> <green> <blue> <alpha> <speed>
    """
    if not isinstance(model, Model):
        model = Model(model)

    te = TempEntity('BeamLaser')
    te.model = model
    te.halo = model
    te.start_entity_index = start_entity_index
    te.end_entity_index = end_entity_index
    te.frame_rate = frame_rate
    te.life_time = life_time
    te.start_width = start_width
    te.end_width = end_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
Ejemplo n.º 4
0
def effect102(model, start_entity_index, start_point, end_entity_index,
              end_point, frame_rate, life_time, start_width, end_width,
              fade_length, amplitude, red, green, blue, alpha, speed):
    """
    est_effect_02 <player filter> <delay> <model> <start entity> <start position x y z> <end entity> <end position x y z> <framerate> <life> <start width> <end width> <fade distance> <amplitude> <red> <green> <blue> <alpha> <speed>
    """
    if not isinstance(model, Model):
        model = Model(model)

    if not isinstance(start_point, Vector):
        start_point = Vector(*start_point)

    if not isinstance(end_point, Vector):
        end_point = Vector(*end_point)

    te = TempEntity('BeamEntPoint')
    te.model = model
    te.halo = model
    te.start_entity_index = start_entity_index
    te.start_point = start_point
    te.end_entity_index = end_entity_index
    te.end_point = end_point
    te.frame_rate = frame_rate
    te.life_time = life_time
    te.start_width = start_width
    te.end_width = end_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
Ejemplo n.º 5
0
def effect5(model, start_userid, end_entity_index, life_time, width,
            fade_length, amplitude, red, green, blue, alpha, speed):
    """
    est_effect 5 <player filter> <delay> <model> <userid> <end index> <life> <width> <spread> <amplitude> <red> <green> <blue> <alpha> <speed>
    """
    if not isinstance(model, Model):
        model = Model(model)

    te = TempEntity('BeamRing')
    te.model = model
    te.halo = model
    te.start_entity_index = index_from_userid(start_userid)
    te.end_entity_index = end_entity_index
    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
Ejemplo n.º 6
0
def effect2(model, start_userid, end_userid, life_time, start_width, end_width,
            red, green, blue, alpha):
    """
    est_effect 2 <player filter> <delay> <model> <start userid> <end userid> <life> <width> <end width> <red> <green> <blue> <alpha>
    """
    if not isinstance(model, Model):
        model = Model(model)

    te = TempEntity('BeamEntPoint')
    te.model = model
    te.halo = model
    te.start_entity_index = index_from_userid(start_userid)
    te.end_entity_index = index_from_userid(end_userid)
    te.life_time = life_time
    te.start_width = start_width
    te.end_width = end_width
    te.red = red
    te.green = green
    te.blue = blue
    te.alpha = alpha

    return te
Ejemplo n.º 7
0
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()