[STOCK] create_beamspot
#1
Descripción:
Esta vez me puse a debugear un efecto que me gustó mucho del Half-Life Singleplayer y preparé un Stock un poco limitado pero funcional.

[Imagen: npgfp0.jpg]

Video:
Imagen del efecto hecho con el plugin de ejemplo:
[Imagen: 2cg302.jpg]

Video (El stock no incluye los efectos de ScreenFade ni ScreenShake)
http://youtu.be/BQKD6V1aBPU

Modulos requeridos:
- Engine

Sintaxis:
stock create_beamspot( Float:origin[3], color[3], const classname[] )

  1. origin: Es punto centro del efecto.
  2. color: Color RGB del efecto.
  3. classname: Classname asignado al info_target centro que pueden utilizar en otras funciones o plugins
Stock:

Código PHP:
stock create_beamspotFloat:origin[3], color[3], const classname[] )
{
    
#define MAX_CORNERS 8
    
static const Float:cornersMAX_CORNERS ][ ] =
    {
        
// 3 top corners
        
{  36.00.0,  51.0 },
        {   
0.00.0,  51.0 },
        { -
36.00.0,  51.0 },
        
// 3 bottom corners
        
{ -36.00.0, -51.0 },
        {   
0.00.0, -51.0 },
        {  
36.00.0, -51.0 },
        
// left - right
        
{  51.00.0,   0.0 },
        { -
51.00.0,   0.0 }
    };
    
    static 
j;
    
    new 
tname] = "t";
    
formatextname[1], charsmax(tname) - 1"%i", ++);
    
    new 
cname10 ];
    new 
pos formatexcnamecharsmax(cname), "%s_spin1"tname ) - 1;
    
    new 
main create_entity"info_target" );
    
DispatchKeyValuemain"targetname"tname );
    
entity_set_stringmainEV_SZ_classnameclassname );
    
entity_set_sizemainFloat:{-16.0,-16.0,-16.0}, Float:{16.0,16.0,16.0} );
    
entity_set_intmainEV_INT_solidSOLID_TRIGGER );
    
entity_set_originmainorigin );
    
    new 
Float:vcolor];
    
vcolor] = floatcolor[0] );
    
vcolor] = floatcolor[1] );
    
vcolor] = floatcolor[2] );
    
    new 
entity;
    new 
Float:corner];
    
    for( new 
iMAX_CORNERSi++ )
    {
        
corner] = origin] + corners][ ];
        
corner] = origin] + corners][ ];
        
corner] = origin] + corners][ ];
        
        
entity create_entity"info_target" );
        
DispatchKeyValueentity"targetname"cname );
        
entity_set_originentitycorner );
        
        
entity create_entity"env_beam" );
        
DispatchKeyValueentity"Radius""255" );
        
DispatchKeyValueentity"StrikeTime""1" );
        
DispatchKeyValueentity"TextureScroll""10" );
        
DispatchKeyValueentity"texture"spr_lgtning );
        
DispatchKeyValueentity"NoiseAmplitude""2" );
        
DispatchKeyValueentity"BoltWidth""200" );
        
DispatchKeyValueentity"renderamt""255" );
        
DispatchKeyValueentity"LightningEnd"cname );
        
DispatchKeyValueentity"LightningStart"tname );
        
entity_set_vectorentityEV_VEC_rendercolorvcolor );
        
entity_set_intentityEV_INT_spawnflagsSF_BEAM_STARTON SF_BEAM_SHADEOUT );
        
DispatchSpawnentity );    

        
cnamepos ] = 50 i;
    }
    
    return 
main;


En este stock, el valor de spr_lgtning es:
Código PHP:
new const spr_lgtning[ ] = "sprites/lgtning.spr" 

NOTAS:
  • Si deseas cambiar el ángulo del efecto en conjunto, será necesario jugar con los valores de corners. Pensaba hacerlo más dinámico, pero lamentablemente no sé cómo :/.


Archivos adjuntos
.sma   Descargar AMXX / beamspot_ejemplo.sma (Tamaño: 3.87 KB / Descargas: 182)
Hi [R]ak CrabCrab
Responder
#2
Disculpa mi ignorancia es cs ? en el video parece HL
Todos los MODS VHL totalmente gratuitos  Descarga Aqui

Mis plugins:
STEAM: https://steamcommunity.com/id/Metrikcz/
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
Responder
#3
(25/07/2014, 09:19 PM)Metrikcz escribió: Disculpa mi ignorancia es cs ? en el video parece HL

Para cualquier mod que soporte env_beam e info_target
Hi [R]ak CrabCrab
Responder
#4
Esta muy bueno, seguramente le dare una utilidad.

Gracias

Saludos,
cLAANS.-
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#5
Bonísimo! Gracias por aportarlo.
Responder
#6
Muy bueno, además de que esta hecho con engine :3

Saludos Cansado
BB 6.5 + Clases de humano * Zombie Plague 4.3 Fix5a + Clases de humano * Sistema de cuentas (Advanced Vault)

Steam

(28/07/2014, 01:23 PM)Neeeeeeeeeel.- escribió:
(28/07/2014, 01:20 PM)Marito escribió: la fuerza de tu envidia es la velocidad de mi progreso y la garantía de mi prosperidad...
Osea que si nadie te envidia la velocidad de tu progreso es 0 y sin garantía Crab

01101101 escribió:me hago la paja pensando en l//
Responder
#7
me encanto jeje, porque decis que es algo limitado tu stock?
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#8
(26/07/2014, 02:17 PM)roccoxx escribió: me encanto jeje, porque decis que es algo limitado tu stock?

Como ves en la imagen:
[Imagen: 2cg302.jpg]
La entidad esta en direccion hacia a mi, se podria decir que esta "mirandome", pero si quiero que mire a la pared de la izquierda o derecha, tendria que modificar los corners del stock :/
Hi [R]ak CrabCrab
Responder
#9
deberias retornar el id de la entidad y dejarle el classname con el name que le pasas;

btw.. buen aporte Lengua
Hi Milashkasiya CrabCrab

Soy un #Panda.. Soy solo un tipo que parece #común pero soy todo lo contrario; alguien #atípico en esta sociedad actual

[Imagen: xl0jvd-5.png]
Link
Responder
#10
(26/07/2014, 03:53 PM)[R]ak escribió: deberias retornar el id de la entidad y dejarle el classname con el name que le pasas;

btw.. buen aporte Lengua

si porque para removerlos se complica jajaja, son muchas entidades.
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#11
Stock y Plugin de ejemplo actualizado.

Ahora el stock devuelve la entidad principal (centro del efecto).
El color es RGB simple (ya no en Float)
Si quieren remover todas las entidades, no podran Crab asi que tendran que armar su propia funcion Crab
Hi [R]ak CrabCrab
Responder
#12
(28/07/2014, 02:54 PM)Milashkasiya escribió: Stock y Plugin de ejemplo actualizado.

Ahora el stock devuelve la entidad principal (centro del efecto).
El color es RGB simple (ya no en Float)
Si quieren remover todas las entidades, no podran Crab asi que tendran que armar su propia funcion Crab

y yo que queria ahorrarme el trabajo Proud
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#13
Muy bueno!
Responder
#14
Quiero hacer un efecto de aparición en el portal, los creo y los hago invisibles, lo que quiero es que paresca que algo sale del portal entonces lo hago visible y quiero que se vaya haciendo mas grande, osea lo hago visible, lo hago chiquito, lo hago mediano, lo hago ya normal y respawneo ya la entidad o player y vuelvo a hacer invisible el portal, pero como hago lo de chiquito a mas grande ?
Todos los MODS VHL totalmente gratuitos  Descarga Aqui

Mis plugins:
STEAM: https://steamcommunity.com/id/Metrikcz/
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
Responder
#15
(28/08/2014, 03:34 PM)Metrikcz escribió: Quiero hacer un efecto de aparición en el portal, los creo y los hago invisibles, lo que quiero es que paresca que algo sale del portal entonces lo hago visible y quiero que se vaya haciendo mas grande, osea lo hago visible, lo hago chiquito, lo hago mediano, lo hago ya normal y respawneo ya la entidad o player y vuelvo a hacer invisible el portal, pero como hago lo de chiquito a mas grande ?

Prueba con pev_scale
Hi [R]ak CrabCrab
Responder
#16
i think this better, it can be created in anytime.
https://forums.alliedmods.net/showthread...light=beam
Código:
stock create_beamspot2( Float:origin[3] )
{
#define MAX_CORNERS 8
static const Float:corners[ MAX_CORNERS ][ 3 ] =
{
// 3 top corners
{  36.0, 0.0,  51.0 },
{  0.0, 0.0,  51.0 },
{ -36.0, 0.0,  51.0 },
// 3 bottom corners
{ -36.0, 0.0, -51.0 },
{  0.0, 0.0, -51.0 },
{  36.0, 0.0, -51.0 },
// left - right
{  51.0, 0.0,  0.0 },
{ -51.0, 0.0,  0.0 }
};

new Float:corner[ 3 ];

for( new i; i < MAX_CORNERS; i++ )
{
new beam = Beam_Create(spr_lgtning, 200.0)
if(beam == FM_NULLENT)
continue

corner[ 0 ] = origin[ 0 ] + corners[ i ][ 0 ];
corner[ 1 ] = origin[ 1 ] + corners[ i ][ 1 ];
corner[ 2 ] = origin[ 2 ] + corners[ i ][ 2 ];

Beam_SetColor(beam, {155.0, 0.0, 155.0})
Beam_SetNoise(beam, 2)
Beam_SetBrightness(beam, 255.0)
Beam_SetScrollRate(beam, 10.0)
Beam_SetFlags(beam, BEAM_FSHADEOUT)
Beam_PointsInit(beam, origin, corner)
}
}
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)