GUIA DE EDUKE
 • ¿Qué es Eduke?
 • Estructura del puerto
LAS VARIABLES
 • Fundamentos
 • Comandos generales
 • Operaciones Lógicas
 • Variables actualizadas
 • Variables predefinidas
ESTRUCTURAS
 • Introducción
 • Sector
 • Wall
 • Sprite
 • El jugador
 • Userdef
 • Comandos alternativos
NUEVOS ELEMENTOS
 • Switch
 • Eventloadactor
 • Bucles
OTROS COMANDOS
 • Display
 • Proyectiles
 • Otros comandos
EVENTOS
 • Introducción
 • Listado de eventos
MAS INFORMACION
 • Eduke32 Wiki
 • Eduke 2.0 - Oficial
 • Eduke 2.1.1
 • RTCM - Eduke FAQ
 • RTCM - Eduke Guide

Comandos para proyectiles


Comandos para proyectiles


En otras palabras: uno de los grandes sueños de todo programador de CON que tenga grandes ambiciones en sus proyectos.

 addweaponvar < var1 > < var2 >


Añade al jugador más cercano un arma. El comando funciona de forma similar que addweapon pero con la diferencia de que se usan variables. var1 es la id del arma y var2 es la cantidad de munición.

 defineprojectile < tilenum > < function > < value >


Define un proyectil para ser disparado con el comando shoot y sus variantes. Para usar este comando es necesario que tengas en cuenta las siguientes definiciones:

define PROJ_WORKSLIKE 1
define PROJ_SPAWNS 2
define PROJ_SXREPEAT 3
define PROJ_SYREPEAT 4
define PROJ_SOUND 5
define PROJ_ISOUND 6
define PROJ_VEL 7
define PROJ_EXTRA 8
define PROJ_DECAL 9
define PROJ_TRAIL 10
define PROJ_TXREPEAT 11
define PROJ_TYREPEAT 12
define PROJ_TOFFSET 13
define PROJ_TNUM 14
define PROJ_DROP 15
define PROJ_CSTAT 16
define PROJ_CLIPDIST 17
define PROJ_SHADE 18
define PROJ_XREPEAT 19
define PROJ_YREPEAT 20
define PROJ_PAL 21
define PROJ_EXTRA_RAND 22
define PROJ_HITRADIUS 23
define PROJ_VEL_MULT 24
define PROJ_OFFSET 25
define PROJ_BOUNCES 26
define PROJ_BSOUND 27
define PROJ_RANGE 28


De todas estas definiciones nos interesara conocer las siguientes:

PROJ_WORKSLIKE : Esta propiedad nos indica una serie de flags de los proyectiles que indicaran una serie de características del mismo, como por ejemplo, ser sangre o una bala. Recuerda que estas flags se pueden combinar sumando sus valores:

Las posibles flags son:

     - define WORKSLIKEBULLET 1
     - define WORKSLIKERPG 2
     - define WORKSLIKEBOUNCESOFFWALLS 4
     - define WORKSLIKEBOUNCESOFFMIRRORS 8
     - define WORKSLIKEKNEE 16
     - define WORKSLIKEWATERBUBBLES 32
     - define WORKSLIKENOENEMYHITS 128
     - define WORKSLIKESPIT 256
     - define WORKSLIKECOOLEXPLOSION1 512
     - define WORKSLIKEBLOOD 1024
     - define WORKSLIKELOSESVELOCITY 2048
     - define WORKSLIKENOAIM 4096
     - define WORKSLIKERANDDECALSIZE 8192

Por el momento no han sido explicadas aunque sus nombres son lo bastante descriptivo como para saber que hacen.

PROJ_SPAWNS : Es el actor que aparece cuando el proyectil choca, es decir, lo que aparece.

PROJ_SXREPEAT : Es la dimensión "x" del sprite aparecido (el del spawn).

PROJ_SYREPEAT : Es la dimensión "y" del sprite aparecido (el del spawn).

PROJ_SOUND : Es el sonido que se reproduce cuando el proyectil es disparado.

PROJ_ISOUND : Es el sonido que se reproduce cuando el proyectil impacta en una pared o cara (ignorado en proyectiles con la propiedad de bala (bullet)).

PROJ_VEL : Velocidad del proyectil. No configurar con valores superiores a 1000. Si quieres más velocidad usa la aceleración.

PROJ_EXTRA : Propiedad usada para configurar la fuerza del daño del proyectil.

PROJ_DECAL : Propiedad usada para definir que imagen sale cuando el proyectil impacta, por ejemplo, los agujeros de bala.

PROJ_TRAIL : Es una propiedad para definir que sprite aparece como cola del proyectil, por ejemplo, en el misil cuando aparecen las explosiones detrás.

PROJ_DROP : Es la velocidad con la que cae el proyectil, por ejemplo, las granadas. Con números negativos va hacia el suelo.

PROJ_CSTAT : Propiedades de los sprites: cstat.

PROJ_PAL : Color del proyectil.

PROJ_VEL_MULT : Causa una aceleración en el proyectil.

PROJECTILE_FLAG_RPG_IMPACT : Definido como 32768. Hace que un proyectil tipo RPG cause daño no solo con el impacto directo sino también con el radio (onda expansiva).


EJEMPLO

defineprojectile 1653 PROJ_WORKSLIKE 6150
defineprojectile 1653 PROJ_SPAWNS EXPLOSION2
defineprojectile 1653 PROJ_VEL 1000
defineprojectile 1653 PROJ_EXTRA 300
defineprojectile 1653 PROJ_DROP -200
defineprojectile 1653 PROJ_ISOUND PIPEBOMB_EXPLODE
defineprojectile 1653 PROJ_HITRADIUS 2560
defineprojectile 1653 PROJ_BOUNCES 5
defineprojectile 1653 PROJ_OFFSET 224
defineprojectile 1653 PROJ_CLIPDIST 24
defineprojectile 1653 PROJ_TRAIL SMALLSMOKE

En este ejemplo configuramos el WORKSLIKE como:
PROJECTILE_FLAG_NOAIM
PROJECTILE_FLAG_LOSESVELOCITY
PROJECTILE_FLAG_RPG
PROJECTILE_FLAG_BOUNCESOFFWALLS


Es una granada al estilo de las que lanza el enemigo Battlelord.
No apunta automáticamente a enemigos y jugadores.



 eshoot < projectilenumber >


Trabaja igual que el comando shoot pero con la diferencia que este pone lo que dispara en la variable interna RETURN. projectilenumber es una constante.

 eshootvar < gamevar >


Identico a eshoot pero con una variable.

 hitscan < var1 > < var2 > < var3 > < var4 > < var5 > < var6 > < var7 > < var8 > < var9 > < var10 > < var11 > < var12 > < var13 > < var14 >


Es un comando muy complejo que sirve para obtener mucha informacion. Observa el siguiente ejemplo:

hitscan HITSCAN_X HITSCAN_Y HITSCAN_Z HITSCAN_SECT HITSCAN_VECTX HITSCAN_VECTY HITSCAN_VECTZ HITSCAN_HITSECT HITSCAN_HITWALL HITSCAN_HITSPR HITSCAN_HITX HITSCAN_HITY HITSCAN_HITZ HITSCAN_CLIPDIST

Para obtener los resultados tenemos que calcular primero HITSCAN_X, HITSCAN_Y, HITSCAN_Z, HITSCAN_SECT, HITSCAN_VECTX, HITSCAN_VECTY, HITSCAN_VECTZ y nos devuelve el resto de variables.

Lo que hace este comando es, según los datos, devolvernos en que posiciones x,y,z impactaria, y si impacta contra un pared, un sector o un sprite y con que clipdist lo haría. Tenemos que tener en cuenta a la hora de usar los resultados:

Cuando nos devuelve si impacta contra un sprite, pared o sector nos devuelve unas ID's. La siguiente tabla es bastate intuitiva:

IMPACTA CONTRA... ID DEL SECTOR ID DE LA PARED ID DEL SPRITE SI EL VECTOR Z (HITSCAN_VECTZ) ES...
Un Sprite ID del sector -1 ID del sprite No nos interesa su valor
Una pared ID del sector ID de la pared -1 No nos interesa su valor
El techo ID del sector -1 -1 Su valor es negativo
El suelo ID del sector -1 -1 Su valor es positivo

Un ejemplo completo seria el siguiente

EJEMPLO

getactor[THISACTOR].x HITSCAN_X
getactor[THISACTOR].y HITSCAN_Y
getactor[THISACTOR].z HITSCAN_Z
getactor[THISACTOR].sectnum HITSCAN_SECT
getactor[THISACTOR].ang ACTOR_ANG


setvar HITSCAN_VECTZ 3200
cos HITSCAN_VECTX ACTOR_ANG
sin HITSCAN_VECTY ACTOR_ANG


hitscan HITSCAN_X HITSCAN_Y HITSCAN_Z HITSCAN_SECT HITSCAN_VECTX HITSCAN_VECTY HITSCAN_VECTZ HITSCAN_HITSECT HITSCAN_HITWALL HITSCAN_HITSPR HITSCAN_HITX HITSCAN_HITY HITSCAN_HITZ HITSCAN_CLIPDIST


En este ejemplo calculamos las primeras variables. Para obtener los vectores "x" e "y" usamos cosenos y senos. Por último, como nuestro proyectil va a tener una velocidad en el eje "Z" constante la configuramos directamente para ahorrarnos problemas (ese valor se corresponde con move MIMOVE -200)



 getprojectile [ < variable1 > ].< variable2 > < variable3 > < variable4 >


 setprojectile [ < variable1 > ].< variable2 > < variable3 > < variable4 >



Son usados con el evento definido como 64 (EVENT_GAME). Sirven para acceder al sistema de proyectiles. Afecta a todos los proyectiles del tipo especificado.

 getthisprojectile [ < variable1 > ].< variable2 > < variable3 > < variable4 >


 setthisprojectile [ < variable1 > ].< variable2 > < variable3 > < variable4 >


Son usados con el evento definido como 64 (EVENT_GAME). Sirven para acceder al sistema de proyectiles. Solo afectan al proyectil actual.

 shootvar < variable1 >



Funciona de la misma forma que el comando shoot de Duke Nukem 3D pero con una variable.

 zshoot < zvel > < projectile >


Dispara un proyectil con una velocidad zvel. El valor de zvel puede ser calculado con ldist. Este comando puede ser útil para hacer que los actores disparen apuntando verticalmente a objetos distintos del jugador.

 gmaxammo < var1 > < var2 >


Obtiene la munición máxima especificada para el arma con la ID "var1" y devuelve el resultado en "var2". Las ID's de las armas son los WORKSLIKE de las armas (mira las definiciones de las armas).

 smaxammo < var1 > < var2 >


Configura la munición máxima especificada para el arma con la ID "var1" y con el valor de "var2". Las ID's de las armas son los WORKSLIKE de las armas (mira las definiciones de las armas).

Política de privacidad
© Copyright - 2003 - 2013 Dukespana.com
Todos los derechos reservados.