|
6 registered members (AndrewAMD, madpower2000, Quad, VoroneTZ, TipmyPip, 1 invisible),
1,674
guests, and 3
spiders. |
|
Key:
Admin,
Global Mod,
Mod
|
|
|
Explosionsgröße ändern?
#395528
02/24/12 12:38
02/24/12 12:38
|
Joined: Feb 2012
Posts: 16
MODinCLite
OP
Newbie
|
OP
Newbie
Joined: Feb 2012
Posts: 16
|
#include <acknex.h> // Cabecera LiteC
// Imágenes BMAP* IMG_Particula = "particula.tga"; BMAP* IMG_Metralla = "metralla.tga";
// Variables VECTOR vtemp; VECTOR POSICION;
// Efecto metralla al inicio de la explosión function ContFX_Metralla ( PARTICLE *p ) { p.alpha += 6 *time_step; if(p.alpha > 30) p.lifespan = 0; } //schwarzer Rauch function FX_Metralla ( PARTICLE *p ) { p.bmap = IMG_Metralla; p.vel_x = random( 32 ) - 16; // Dirección aleatoria p.vel_y = random( 32 ) - 16; p.vel_z = random( 32 ) - 16; p.size = 5 ; p.alpha = 0 ;
p.flags |= MOVE | TRANSLUCENT;
p.event = ContFX_Metralla; }
// grauer Rauch function ContFX_Particulas ( PARTICLE *p ) { p.alpha -= random(4) * time_step; if( p.alpha < 0 ) p.lifespan = 0; p.vel_x += random(0.6)-0.3; p.vel_y += random(0.6)-0.3; } //grauer Rauch function FX_Particulas ( PARTICLE *p ) { p.bmap = IMG_Particula; p.angle = random (360); // Coloco las particulas en un plano paralelo a la pantalla vec_for_angle ( vtemp, vector( p.angle, 0, 0 ) ); vec_rotate ( vtemp, vector(camera.pan, camera.tilt-90, 0 ) ); vec_normalize ( vtemp, 10+random(50) ); vec_add ( p.x, vtemp ); // Unas suben y otras se quedan donde están if ( random(2) > 1) { vec_set ( vtemp, vector( 1, 0, 0 ) ); vec_rotate ( vtemp, vector(camera.pan, camera.tilt+90, 0 ) ); vec_normalize ( vtemp, 10+random(5) ); vec_set ( p.vel_x, vtemp ); } p.vel_z *= random(1); // Velocidad vertical aleatoria
p.alpha = 50 ;
p.flags |= TRANSLUCENT | MOVE;
p.event = ContFX_Particulas; }
// function Flecha_Humo () { set ( me, TRANSLUCENT | PASSABLE | LIGHT ); my.roll = random (360); my.alpha = 100; my.scale_x = 4; my.scale_y = 7; my.skill1 = random(3)+2; vec_fill ( my.blue, 30 ); while ( my.alpha > 0 ) { if ( my.alpha > 93 ) // Al principio aumenta rápidamente { vec_for_angle ( vtemp, vector( my.roll, 0, 0 ) ); vec_rotate ( vtemp, vector(camera.pan, camera.tilt+90, 0 ) ); vec_normalize ( vtemp, time_step * (my.alpha/my.skill1) * 0.4 ); vec_add ( my.x, vtemp ); my.scale_y += vec_length( vtemp )/46; my.alpha -= time_step * 3; } else // y después se desvanece { vec_for_angle ( vtemp, vector( my.roll, 0, 0 ) ); vec_rotate ( vtemp, vector(camera.pan, camera.tilt+90, 0 ) ); vec_normalize ( vtemp, time_step * (my.alpha/(my.skill1*2))); vec_add ( my.x, vtemp ); my.scale_y += vec_length( vtemp ) / 500; my.alpha -= time_step * 9; } wait(1); } ent_remove ( me ); return; }
// Onda expansiva function Onda () { set ( me, TRANSLUCENT | DECAL | PASSABLE ); my.alpha = 70; vec_fill ( my.scale_x, 100 ); my.tilt = 90; my.pan = random ( 360 ); vec_fill ( my.blue, 0 ); while( my.alpha > 0 ) { vec_fill ( vtemp, time_step * 2 ); vec_add ( my.scale_x, vtemp ); my.alpha -= time_step * 7; wait (1); } ent_remove ( me ); }
// Humo tras el fuego function Humo () { set ( me, TRANSLUCENT | LIGHT | ZNEAR | PASSABLE ); vec_set ( my.blue, vector ( 200,255,255 ) ); my.alpha = 40; my.roll = random (360);
vec_fill ( my.scale_x, 0.4 ); while ( my.alpha > 0 ) { my.alpha -= time_step * 2; my.roll += time_step * sign(ang(my.roll))*1; vec_fill ( vtemp, time_step *0.01); vec_add ( my.scale_x, vtemp ); wait(1); } ent_remove ( me ); }
// Segunda ronda de fuego function Cont_Fogonazo () { set ( me, BRIGHT | TRANSLUCENT | ZNEAR | PASSABLE ); my.blue = 150; my.green = 235; my.red = 255;
my.alpha = 0; my.roll = random (360); vec_fill ( my.scale_x, 10 );
// Lo coloco en un plano paralelo a la pantalla vec_for_angle ( vtemp, vector( my.roll, 0, 0 ) ); vec_rotate ( vtemp, vector(camera.pan, camera.tilt+90, 0 ) ); vec_normalize ( vtemp, 40 ); vec_add ( vtemp, POSICION ); vec_set ( my.x, vtemp ); while ( my.alpha < 100 ) // Al principio aumenta su tamaño y luminosidad { if (my.lightrange < 1000 ) my.lightrange += 2000 * time_step; my.alpha += time_step * (random(20)+20); my.roll += time_step * sign(ang(my.roll)); vec_normalize ( my.blue, 150 + random(105) ); wait(1); } ent_create ( "humo02.tga", my.x, Humo ); // en el cenit se crea el humo while ( my.alpha > 0 ) // y disminuye su tamaño y luminosidad { if (my.lightrange > 0 ) my.lightrange -= 500 * time_step; my.alpha -= time_step * 20; my.roll += time_step * sign(ang(my.roll))*5; wait(1); } while ( my.lightrange > 0 ) // Se apaga suavemente { my.lightrange -= 500 * time_step; wait(1); } ent_remove(me); }
// Primera ronda de fuego function Fogonazo () { var i; set ( me, BRIGHT | TRANSLUCENT | LIGHT | ZNEAR | PASSABLE ); my.alpha = 50; my.roll = random (360); while ( my.alpha < 100 ) // Al principio aumenta su tamaño { my.alpha += time_step * (random(20)+20); my.roll += time_step * sign(ang(my.roll)); vec_fill ( my.scale_x, my.alpha / 13 ); wait(1); } for ( i=0; i<4; i++) // En el zenit crea la segunda ronda de fuego { ent_create ( "flash01.tga", POSICION, Cont_Fogonazo ); you = ent_create ( "flash02.tga", POSICION, Cont_Fogonazo ); if (i == 0) set ( you, LIGHT ); // Solo ilumina la primera } for ( i = 0; i < 5; i ++) // Crea las coletas de la explosión { ent_create ( "humo01.tga", POSICION, Flecha_Humo ); } effect( FX_Particulas, 200, POSICION, NULL ); // Particulas suspendidas vec_add ( my.scale_x, vector(3,3,3) ); // Pequeño salto estético ent_create ( "humo02.tga", my.x, Humo ); // Humo residual
while ( my.alpha > 0 ) // se desvanece { my.alpha -= time_step * 25; my.roll += time_step * sign(ang(my.roll)); wait(1); } ent_remove(me); }
function Crear_Explosion (int posX, int posY, int posZ) { vec_set(POSICION, vector(posX,posY,posZ)); vec_set(vtemp, vector(0, 0, 0)); ent_create ( "flash01.tga", POSICION, Fogonazo ); // Fuego ent_create ( "flash02.tga", POSICION, Fogonazo ); ent_create ( "onda01.tga", POSICION, Onda ); // Onda expansiva effect ( FX_Metralla, 1500, POSICION, NULL ); // Metralla
}
diesen Code habe ich aus dem Internet wie kann ich hier die Größe der kommpleten Explosion ändern? Sei sollte ca. 3x so groß sein.
LG MODinCLite
|
|
|
Re: Explosionsgröße ändern?
[Re: Espér]
#395559
02/24/12 17:13
02/24/12 17:13
|
Joined: Feb 2012
Posts: 16
MODinCLite
OP
Newbie
|
OP
Newbie
Joined: Feb 2012
Posts: 16
|
Danke. Die haben nur Ausländische Namen weil ich den Code aus dem Internet habe. Hätte ich das selber gemacht wüsste ich ja wie sie vergrößern könnte.
Lg
Last edited by MODinCLite; 02/24/12 17:15.
|
|
|
Re: Explosionsgröße ändern?
[Re: MODinCLite]
#395564
02/24/12 18:05
02/24/12 18:05
|
Joined: Feb 2009
Posts: 2,154
Damocles_
Expert
|
Expert
Joined: Feb 2009
Posts: 2,154
|
Hier in Deutsch
während( meine.durchdichtig > 0 )
{
meine.durchdichtig -= zeit_schritt * 2;
meine.rolle += zeit_schritt * vorzeichenbehaftet(winkel(meine.rolle)*1;
wecker_füllen ( geschw_geradeebend , zeit_schritt *0.01);
wecker_zusammenzählen( meine.größe_x, geschw_geradeebend );
warte(1);
}
Orinal:
while ( my.alpha > 0 )
{
my.alpha -= time_step * 2;
my.roll += time_step * sign(ang(my.roll))*1;
vec_fill ( vtemp, time_step *0.01);
vec_add ( my.scale_x, vtemp );
wait(1);
}
|
|
|
|