JVLIVS CAESAR MODS FORUM
Estimado usuario invitado: Si se registra/conecta podrá tener la mejor ventaja, postear en el foro, ya que los invitados solo pueden leer.

JVLIVS CAESAR MODS FORUM

Imperium III Mods Forvm. Último Mod - MCI 9.0!
 
ÍndiceÍndice  FAQFAQ  BuscarBuscar  RegistrarseRegistrarse  ConectarseConectarse  

Comparte | 
 

 Prueba de creatividad

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Ferónidas
Pretoriano
Pretoriano
avatar

Cantidad de envíos : 55
Reputación : 3
Fecha de inscripción : 02/01/2011

MensajeTema: Prueba de creatividad   Miér Ago 19, 2015 6:18 pm

Tengo un "paso por las montañas" en el que hay 8 héroes enemigos. A cierta distancia del héroe hay un area que al pisarla hará que el héroe enemigo avance hacia tí. Tu irás acompañado de otros tres héroes aliados (con su ejército). Dicho esto, lo que quiero es que cuando una unidad (ya sea aliada o propia) entre en ese área, el héroe enemigo avance.
Lo primero que se me ocurrió fue:

while(!WaitUnitsInArea >>cuando una unidad del grupo pise el area
detonador.IsAlive >>si la unidad "detonador" está viva
AttackArea >>heroe enemigo se mueve
detonador.Damage  >>matamos al "detonador"

(perdonar pero no tengo los códigos delante ahora mismo)


Esto sería una sola secuencia, la cual debería repetir otras tres veces (las de los tres aliados), y al ser 8 heroes enemigos te queda un total de 32 secuencias muy ricas, que funcionar funcionan, pero creo que hay formas mas elegantes de hacerlo.
Y ahí es donde entra la creatividad y talento de nuestros queridos programadores Very Happy
¿Alguna idea?
Volver arriba Ir abajo
molerotoni
General
General
avatar

Cantidad de envíos : 94
Edad : 22
Location : Valencia, España
Reputación : 25
Fecha de inscripción : 03/07/2015

MensajeTema: Re: Prueba de creatividad   Dom Ago 23, 2015 2:40 pm

Usa esto, a mi me funcionó bien. Eso si, ten en cuenta que el jugador 15 es enemigo de cualquier jugador, incluido los pájaros.

ol = Intersect(EnemyObjs(jugador al que pertenecen los héroes, "Unit"), AreaObjs("area", "Unit")).GetObjList();

Más o menos quedaría así:

while(1){
ol = Intersect(EnemyObjs(jugador al que pertenecen los héroes, "Unit"), AreaObjs("area", "Unit")).GetObjList();
if(ol.count>0)
 AttackArea 
Sleep(100);
}
Volver arriba Ir abajo
Ferónidas
Pretoriano
Pretoriano
avatar

Cantidad de envíos : 55
Reputación : 3
Fecha de inscripción : 02/01/2011

MensajeTema: Re: Prueba de creatividad   Dom Ago 23, 2015 6:04 pm

¿Pero con eso me seguirían quedando muchas secuencias no? Un heróe es del jugador 1 y los otros tres del jugador 2. Pero estuve pensando y ¿no hay algún codigo para que cuando una unidad, sea cual sea, pise un área pase algo?
Volver arriba Ir abajo
Harenor
Pretoriano
Pretoriano
avatar

Cantidad de envíos : 62
Location : Ninguna
Reputación : 18
Fecha de inscripción : 26/03/2015

MensajeTema: Re: Prueba de creatividad   Miér Ago 26, 2015 7:18 pm

Yo lo acabo de probar y también funciona.

A ver:

ObjList ol; //Una ObjList, esto tiene que ir al principio
while(1){//Abre un while
ol = Intersect(EnemyObjs(jugador al que pertenecen los héroes, "Unit"), AreaObjs("area", "Unit")).GetObjList();// esto dice que ol son todas las unidades enemigas del jugador de los héroes en el área area.
if(ol.count>0)//si ol tiene más de una unidad
AttackArea(Nombre del grupo o la unidad, "area"); //Las unidades atacan el área.
Sleep(100);//Espera 0,1 s
}//Cierra el while
No entiendo qué significa lo de detonador, pero este script se activa si una unidad enemiga, sea cual sea, la pise, hace que los héroes enemigos (mete a todos en un grupo) ataquen.
Volver arriba Ir abajo
Ferónidas
Pretoriano
Pretoriano
avatar

Cantidad de envíos : 55
Reputación : 3
Fecha de inscripción : 02/01/2011

MensajeTema: Re: Prueba de creatividad   Jue Ago 27, 2015 7:27 am

Vale, va perfecto jeje. No había entendido lo de Intersect(EnemyObjs... Pensaba que se refería al héroe mío o al aliado. Muchas gracias.
Volver arriba Ir abajo
molerotoni
General
General
avatar

Cantidad de envíos : 94
Edad : 22
Location : Valencia, España
Reputación : 25
Fecha de inscripción : 03/07/2015

MensajeTema: Re: Prueba de creatividad   Jue Ago 27, 2015 10:36 pm

Lo siento si no te aclaré mucho, estaba respondiendo desde el móvil y se me hace difícil, por que además lo tengo para que se vea como el ordenador. Crying or Very sad
Volver arriba Ir abajo
Contenido patrocinado




MensajeTema: Re: Prueba de creatividad   

Volver arriba Ir abajo
 
Prueba de creatividad
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» Prueba Project CARS
» Fay... 1, 2, 3... ¡Probando! {Post de prueba a Fay}
» Prueba Assetto Corsa Tech Preview
» Prueba de vehiculos clase B
» Prueba en War Z

Permisos de este foro:No puedes responder a temas en este foro.
JVLIVS CAESAR MODS FORUM :: Modding en General :: Modding en General :: Edición de Scripts-
Cambiar a: