Foro especializado en Warcraft III y su editor
 
BuscarEntrar al ChatboxPortal del foroÍndiceSpellsRegistrarseConectarseGrupos de Usuarios
Eventos Actuales
¡ Bienvenido Invitado !

Editar Perfil

Tus temas
Tus Mensajes ()

Enlaces rápidos








Comparte | .
 

 Ayuda con una AI !

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
armando368
Caballero
avatar


Barra de Salud : Su salud está al 80% - Este usuario ha recibido una infracción

Mensajes Mensajes : 359
Reputación Reputación : 21
Monedas de oro : 1366
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Ayuda con una AI ! Jue Dic 20, 2018 10:44 pm

Hola ,estoy desarrollandole una AI a un Mapa ,los heroes se mueven a los puntos principales antes de Salir a la base .

Pero no sale de ahi ,hago lo posible pero nada .

Podrían echarle un Vistazo a la AI y ver que tiene ? por favor ; disculpen la Molestia es que llevo 5 dias en esto .

Link : https://www.epicwar.com/maps/287997/

[i]Propiedad de : Locodavid15[/

Por favor analizen el Problema y diganme como resolverlo por favor


Mis Spells

Arrow OMNISLASH: http://www.worldofeditors.net/t3778-omnislash#30794

Visita mi Canal de Youtube Wink

Arrow https://www.youtube.com/channel/UC1C1xPzx3-mNOTwC0RPikjg

Idea Subo contenido muy Interesante Idea
Volver arriba Ir abajo
Marcos_M

avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 3134
Reputación Reputación : 524
Monedas de oro : 9750
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Ayuda con una AI ! Vie Dic 21, 2018 8:54 pm

Pues lo que pasa es que

[gui]AI R Ir a Carril
Acontecimientos
Tiempo - Every 0.90 seconds of game time
Condiciones
Acciones
Grupo de jugadores - Pick every player in GrupoAIRebeldes and do (Actions)
Bucle: Acciones
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
AI_Is_Healing[(Player number of (Picked player))] Igual a False
AI_is_Ahuyentado[(Player number of (Picked player))] Igual a False
AI_is_Comprando[(Player number of (Picked player))] Igual a False
AI_Is_Creeping[(Player number of (Picked player))] Igual a False
AI_Orden_Actual[(Player number of (Picked player))] Igual a False
Entonces: Acciones
Set AI_Orden_Actual[(Player number of (Picked player))] = True
Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Mover a AI_PuntosCarrilR[(Random integer number between 1 and 1)]
Otros: Acciones
[/gui]

este detonador está corriendo una única vez, enviandolo a la lane de top y luego

Luego tu detonador AI R Movimiento en top no anda para nada, porque
[gui]((Region centered at AI_PuntosCarrilR[1] with size (200.00, 200.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a True
[/gui]

[gui](Number of units in (Units within 50.00 of AI_PuntosCarrilR[1] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a True))) Mayor que o igual a 3
[/gui]

Esas dos condiciones son un desastre, primero porque son leaks, si quieres hacer una región utiliza una región con variable, o sino revisa la distancia entre puntos que es más fácil.

Y no comprendo tu segunda condición, asumo que quieres que el heroe solo avance cuando está rodeado de aliados, pero usas un area de busqueda muy pequeña, y puedes acortar la condición revisando que sean aliados de "Picked player" en lugar de owner of unit
Pon esas cosas en variables, comprende las condiciones que planteas y tal vez funcionen tus detos de movimiento. También deberías inicializar todas esas variables booleanas en un detonador aparte, porque si su valor no está previamente colocado puede buguearse el if por ser booleanas sin valor asignado.
Volver arriba Ir abajo
armando368
Caballero
avatar


Barra de Salud : Su salud está al 80% - Este usuario ha recibido una infracción

Mensajes Mensajes : 359
Reputación Reputación : 21
Monedas de oro : 1366
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Ayuda con una AI ! Vie Dic 21, 2018 11:47 pm

@Marcos_M escribió:
Pues lo que pasa es que

[gui]AI R Ir a Carril
   Acontecimientos
       Tiempo - Every 0.90 seconds of game time
   Condiciones
   Acciones
       Grupo de jugadores - Pick every player in GrupoAIRebeldes and do (Actions)
           Bucle: Acciones
               If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                   Si: Condiciones
                       AI_Is_Healing[(Player number of (Picked player))] Igual a False
                       AI_is_Ahuyentado[(Player number of (Picked player))] Igual a False
                       AI_is_Comprando[(Player number of (Picked player))] Igual a False
                       AI_Is_Creeping[(Player number of (Picked player))] Igual a False
                       AI_Orden_Actual[(Player number of (Picked player))] Igual a False
                   Entonces: Acciones
                       Set AI_Orden_Actual[(Player number of (Picked player))] = True
                       Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Mover a AI_PuntosCarrilR[(Random integer number between 1 and 1)]
                   Otros: Acciones
[/gui]

este detonador está corriendo una única vez, enviandolo a la lane de top y luego

Luego tu detonador AI R Movimiento en top no anda para nada, porque
[gui]((Region centered at AI_PuntosCarrilR[1] with size (200.00, 200.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a True
[/gui]

[gui](Number of units in (Units within 50.00 of AI_PuntosCarrilR[1] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a True))) Mayor que o igual a 3
[/gui]

Esas dos condiciones son un desastre, primero porque son leaks, si quieres hacer una región utiliza una región con variable, o sino revisa la distancia entre puntos que es más fácil.

Y no comprendo tu segunda condición, asumo que quieres que el heroe solo avance cuando está rodeado de aliados, pero usas un area de busqueda muy pequeña, y puedes acortar la condición revisando que sean aliados de "Picked player" en lugar de owner of unit
Pon esas cosas en variables, comprende las condiciones que planteas y tal vez funcionen tus detos de movimiento. También deberías inicializar todas esas variables booleanas en un detonador aparte, porque si su valor no está previamente colocado puede buguearse el if por ser booleanas sin valor asignado.

Desactivé las 2 Condiciones que Dices,que se suponía que se iba a mover sin verificar ninguna posicion ,pero sin embargo sigue sin Moverse,ni seteando las Booleanas Vacias.


Mis Spells

Arrow OMNISLASH: http://www.worldofeditors.net/t3778-omnislash#30794

Visita mi Canal de Youtube Wink

Arrow https://www.youtube.com/channel/UC1C1xPzx3-mNOTwC0RPikjg

Idea Subo contenido muy Interesante Idea
Volver arriba Ir abajo
Marcos_M

avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 3134
Reputación Reputación : 524
Monedas de oro : 9750
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Ayuda con una AI ! Sáb Dic 22, 2018 1:14 am

Para estas situaciones donde hay MUUUCHAS condiciones, y etc. Tienes que usar las acciones para mostrar mensajes en pantalla, poniendo mensajes en el entonces o en el "otros" de cada if para saber hacia donde va tu detonador, y así vas a saber con exactitud que hace. Y cuando sepas que hace, podemos avanzar a la parte de "Por qué lo hace?".

También, recomendaría no usar ifs con tantas condiciones, sino hacer Ifs anidados de la siguiente manera:

[gui]AI R Movimiento en Top
Acontecimientos
Tiempo - Every 0.70 seconds of game time
Condiciones
Acciones
Grupo de jugadores - Pick every player in GrupoAIRebeldes and do (Actions)
Bucle: Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
AI_Orden_Actual[(Player number of (Picked player))] Igual a (==) True
AI_Is_Creeping[(Player number of (Picked player))] Igual a (==) False
AI_Listo[(Player number of (Picked player))] Igual a (==) True
AI_is_Comprando[(Player number of (Picked player))] Igual a (==) False
AI_Is_Healing[(Player number of (Picked player))] Igual a (==) False
AI_is_Ahuyentado[(Player number of (Picked player))] Igual a (==) False
AI_is_Atacando[(Player number of (Picked player))] Igual a (==) False
Entonces: Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
Entonces: Acciones
Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[2]
Otros: Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
Entonces: Acciones
Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[3]
Otros: Acciones
-------- VERIFICACION TORRE O NO --------
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
(Torre vigia|nBandida 0070 is alive) Igual a (==) True
Entonces: Acciones
Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[4]
Otros: Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
(Torre vigia|nBandida 0070 is alive) Igual a (==) False
Entonces: Acciones
Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[4]
Otros: Acciones
-------- ==NORMAL== --------
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
((Region centered at AI_Puntos_Rebelde[4] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
(Torre vigia|nBandida 0070 is alive) Igual a (==) False
(Number of units in (Units within 50.00 of AI_Puntos_Rebelde[4] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 3
Entonces: Acciones
Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[5]
Otros: Acciones
-------- VERIFICACION TORRE O NO 2 --------
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
((Region centered at AI_Puntos_Rebelde[5] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
(Torre vigia|nBandida 0069 is alive) Igual a (==) True
(Number of units in (Units within 50.00 of AI_Puntos_Rebelde[5] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 4
Entonces: Acciones
Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[6]
Otros: Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
((Region centered at AI_Puntos_Rebelde[5] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
(Torre vigia|nBandida 0069 is alive) Igual a (==) False
(Number of units in (Units within 50.00 of AI_Puntos_Rebelde[5] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 3
Entonces: Acciones
Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[6]
Otros: Acciones
-------- ==NORMAL== --------
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
((Region centered at AI_Puntos_Rebelde[6] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
(Torre vigia|nBandida 0069 is alive) Igual a (==) False
(Number of units in (Units within 50.00 of AI_Puntos_Rebelde[6] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 3
Entonces: Acciones
Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[7]
Otros: Acciones
-------- VERIFICACION TORRE O NO 3 --------
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
((Region centered at AI_Puntos_Rebelde[7] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
(Torre vigia|nBandida 0068 is alive) Igual a (==) True
(Number of units in (Units within 50.00 of AI_Puntos_Rebelde[7] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 4
Entonces: Acciones
Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[8]
Otros: Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
((Region centered at AI_Puntos_Rebelde[7] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
(Torre vigia|nBandida 0068 is alive) Igual a (==) False
(Number of units in (Units within 50.00 of AI_Puntos_Rebelde[7] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 4
Entonces: Acciones
Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[8]
Otros: Acciones
-------- ==FINAL== --------
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
(Torre vigia|nBandida 0068 is alive) Igual a (==) False
(Number of units in (Units within 50.00 of AI_Puntos_Rebelde[8] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 3
Entonces: Acciones
Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_PuntoRebeldeFinal
Otros: Acciones
Otros: Acciones
[/gui]

Así todas las condiciones que se comparten están en el mismo lugar, no entorpecen la lectura, no alargan las líneas de tu detonadores y eso es bueno. Como dato adicional, puedes evitar el uso de la condición "And", simplemente pon las condiciones una tras otra, ya que funcionará como si fuera un And.

Volver arriba Ir abajo
armando368
Caballero
avatar


Barra de Salud : Su salud está al 80% - Este usuario ha recibido una infracción

Mensajes Mensajes : 359
Reputación Reputación : 21
Monedas de oro : 1366
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Ayuda con una AI ! Lun Dic 24, 2018 2:14 pm

@Marcos_M escribió:
Para estas situaciones donde hay MUUUCHAS condiciones, y etc. Tienes que usar las acciones para mostrar mensajes en pantalla, poniendo mensajes en el entonces o en el "otros" de cada if para saber hacia donde va tu detonador, y así vas a saber con exactitud que hace. Y cuando sepas que hace, podemos avanzar a la parte de "Por qué lo hace?".

También, recomendaría no usar ifs con tantas condiciones, sino hacer Ifs anidados de la siguiente manera:

[gui]AI R Movimiento en Top
   Acontecimientos
       Tiempo - Every 0.70 seconds of game time
   Condiciones
   Acciones
       Grupo de jugadores - Pick every player in GrupoAIRebeldes and do (Actions)
           Bucle: Acciones
                Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                   Si: Condiciones
                       AI_Orden_Actual[(Player number of (Picked player))] Igual a (==) True
                       AI_Is_Creeping[(Player number of (Picked player))] Igual a (==) False
                       AI_Listo[(Player number of (Picked player))] Igual a (==) True
                       AI_is_Comprando[(Player number of (Picked player))] Igual a (==) False
                       AI_Is_Healing[(Player number of (Picked player))] Igual a (==) False
                       AI_is_Ahuyentado[(Player number of (Picked player))] Igual a (==) False
                       AI_is_Atacando[(Player number of (Picked player))] Igual a (==) False
                   Entonces: Acciones
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[2]
                           Otros: Acciones
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[3]
                           Otros: Acciones
                       -------- VERIFICACION TORRE O NO --------
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               (Torre vigia|nBandida 0070 is alive) Igual a (==) True
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[4]
                           Otros: Acciones
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               (Torre vigia|nBandida 0070 is alive) Igual a (==) False
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[4]
                           Otros: Acciones
                       -------- ==NORMAL== --------
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               ((Region centered at AI_Puntos_Rebelde[4] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
                               (Torre vigia|nBandida 0070 is alive) Igual a (==) False
                               (Number of units in (Units within 50.00 of AI_Puntos_Rebelde[4] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 3
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[5]
                           Otros: Acciones
                       -------- VERIFICACION TORRE O NO 2 --------
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               ((Region centered at AI_Puntos_Rebelde[5] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
                               (Torre vigia|nBandida 0069 is alive) Igual a (==) True
                               (Number of units in (Units within 50.00 of AI_Puntos_Rebelde[5] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 4
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[6]
                           Otros: Acciones
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               ((Region centered at AI_Puntos_Rebelde[5] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
                               (Torre vigia|nBandida 0069 is alive) Igual a (==) False
                               (Number of units in (Units within 50.00 of AI_Puntos_Rebelde[5] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 3
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[6]
                           Otros: Acciones
                       -------- ==NORMAL== --------
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               ((Region centered at AI_Puntos_Rebelde[6] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
                               (Torre vigia|nBandida 0069 is alive) Igual a (==) False
                               (Number of units in (Units within 50.00 of AI_Puntos_Rebelde[6] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 3
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[7]
                           Otros: Acciones
                       -------- VERIFICACION TORRE O NO 3 --------
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               ((Region centered at AI_Puntos_Rebelde[7] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
                               (Torre vigia|nBandida 0068 is alive) Igual a (==) True
                               (Number of units in (Units within 50.00 of AI_Puntos_Rebelde[7] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 4
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[8]
                           Otros: Acciones
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               ((Region centered at AI_Puntos_Rebelde[7] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
                               (Torre vigia|nBandida 0068 is alive) Igual a (==) False
                               (Number of units in (Units within 50.00 of AI_Puntos_Rebelde[7] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 4
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[8]
                           Otros: Acciones
                       -------- ==FINAL== --------
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               (Torre vigia|nBandida 0068 is alive) Igual a (==) False
                               (Number of units in (Units within 50.00 of AI_Puntos_Rebelde[8] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 3
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_PuntoRebeldeFinal
                           Otros: Acciones
                   Otros: Acciones
[/gui]

Así todas las condiciones que se comparten están en el mismo lugar, no entorpecen la lectura, no alargan las líneas de tu detonadores y eso es bueno. Como dato adicional, puedes evitar el uso de la condición "And", simplemente pon las condiciones una tras otra, ya que funcionará como si fuera un And.


Lo intentaré,pero no creo que solucione eso ,pero si tu dijiste que no use un And ,lo intentaré(r) entonces .


Mis Spells

Arrow OMNISLASH: http://www.worldofeditors.net/t3778-omnislash#30794

Visita mi Canal de Youtube Wink

Arrow https://www.youtube.com/channel/UC1C1xPzx3-mNOTwC0RPikjg

Idea Subo contenido muy Interesante Idea
Volver arriba Ir abajo
armando368
Caballero
avatar


Barra de Salud : Su salud está al 80% - Este usuario ha recibido una infracción

Mensajes Mensajes : 359
Reputación Reputación : 21
Monedas de oro : 1366
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Ayuda con una AI ! Lun Dic 24, 2018 9:23 pm

@Marcos_M escribió:
Para estas situaciones donde hay MUUUCHAS condiciones, y etc. Tienes que usar las acciones para mostrar mensajes en pantalla, poniendo mensajes en el entonces o en el "otros" de cada if para saber hacia donde va tu detonador, y así vas a saber con exactitud que hace. Y cuando sepas que hace, podemos avanzar a la parte de "Por qué lo hace?".

También, recomendaría no usar ifs con tantas condiciones, sino hacer Ifs anidados de la siguiente manera:

[gui]AI R Movimiento en Top
   Acontecimientos
       Tiempo - Every 0.70 seconds of game time
   Condiciones
   Acciones
       Grupo de jugadores - Pick every player in GrupoAIRebeldes and do (Actions)
           Bucle: Acciones
                Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                   Si: Condiciones
                       AI_Orden_Actual[(Player number of (Picked player))] Igual a (==) True
                       AI_Is_Creeping[(Player number of (Picked player))] Igual a (==) False
                       AI_Listo[(Player number of (Picked player))] Igual a (==) True
                       AI_is_Comprando[(Player number of (Picked player))] Igual a (==) False
                       AI_Is_Healing[(Player number of (Picked player))] Igual a (==) False
                       AI_is_Ahuyentado[(Player number of (Picked player))] Igual a (==) False
                       AI_is_Atacando[(Player number of (Picked player))] Igual a (==) False
                   Entonces: Acciones
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[2]
                           Otros: Acciones
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[3]
                           Otros: Acciones
                       -------- VERIFICACION TORRE O NO --------
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               (Torre vigia|nBandida 0070 is alive) Igual a (==) True
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[4]
                           Otros: Acciones
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               (Torre vigia|nBandida 0070 is alive) Igual a (==) False
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[4]
                           Otros: Acciones
                       -------- ==NORMAL== --------
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               ((Region centered at AI_Puntos_Rebelde[4] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
                               (Torre vigia|nBandida 0070 is alive) Igual a (==) False
                               (Number of units in (Units within 50.00 of AI_Puntos_Rebelde[4] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 3
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[5]
                           Otros: Acciones
                       -------- VERIFICACION TORRE O NO 2 --------
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               ((Region centered at AI_Puntos_Rebelde[5] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
                               (Torre vigia|nBandida 0069 is alive) Igual a (==) True
                               (Number of units in (Units within 50.00 of AI_Puntos_Rebelde[5] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 4
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[6]
                           Otros: Acciones
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               ((Region centered at AI_Puntos_Rebelde[5] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
                               (Torre vigia|nBandida 0069 is alive) Igual a (==) False
                               (Number of units in (Units within 50.00 of AI_Puntos_Rebelde[5] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 3
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[6]
                           Otros: Acciones
                       -------- ==NORMAL== --------
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               ((Region centered at AI_Puntos_Rebelde[6] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
                               (Torre vigia|nBandida 0069 is alive) Igual a (==) False
                               (Number of units in (Units within 50.00 of AI_Puntos_Rebelde[6] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 3
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[7]
                           Otros: Acciones
                       -------- VERIFICACION TORRE O NO 3 --------
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               ((Region centered at AI_Puntos_Rebelde[7] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
                               (Torre vigia|nBandida 0068 is alive) Igual a (==) True
                               (Number of units in (Units within 50.00 of AI_Puntos_Rebelde[7] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 4
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[8]
                           Otros: Acciones
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               ((Region centered at AI_Puntos_Rebelde[7] with size (10.00, 10.00)) contains AI_JugadorHeroe[(Player number of (Picked player))]) Igual a (==) True
                               (Torre vigia|nBandida 0068 is alive) Igual a (==) False
                               (Number of units in (Units within 50.00 of AI_Puntos_Rebelde[7] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 4
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_Puntos_Rebelde[8]
                           Otros: Acciones
                       -------- ==FINAL== --------
                        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               (Torre vigia|nBandida 0068 is alive) Igual a (==) False
                               (Number of units in (Units within 50.00 of AI_Puntos_Rebelde[8] matching (((Matching unit) belongs to an ally of (Owner of AI_JugadorHeroe[(Player number of (Picked player))])) Igual a (==) True))) Mayor que o igual a (>=) 3
                           Entonces: Acciones
                               Unidad - Order AI_JugadorHeroe[(Player number of (Picked player))] to Atacar-mover a AI_PuntoRebeldeFinal
                           Otros: Acciones
                   Otros: Acciones
[/gui]

Así todas las condiciones que se comparten están en el mismo lugar, no entorpecen la lectura, no alargan las líneas de tu detonadores y eso es bueno. Como dato adicional, puedes evitar el uso de la condición "And", simplemente pon las condiciones una tras otra, ya que funcionará como si fuera un And.


No funciona Neutral ,deberias primero probar el mapa .


Mis Spells

Arrow OMNISLASH: http://www.worldofeditors.net/t3778-omnislash#30794

Visita mi Canal de Youtube Wink

Arrow https://www.youtube.com/channel/UC1C1xPzx3-mNOTwC0RPikjg

Idea Subo contenido muy Interesante Idea
Volver arriba Ir abajo
Marcos_M

avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 3134
Reputación Reputación : 524
Monedas de oro : 9750
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Ayuda con una AI ! Miér Dic 26, 2018 8:22 am

Pusiste los carteles de texto que te dije?
Si ninguno se activa es porque ninguna condición se cumple, esto puede pasar porque el grupo de jugadores no funcione o porque la gran condición inicial nunca se cumple
Volver arriba Ir abajo
armando368
Caballero
avatar


Barra de Salud : Su salud está al 80% - Este usuario ha recibido una infracción

Mensajes Mensajes : 359
Reputación Reputación : 21
Monedas de oro : 1366
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Ayuda con una AI ! Jue Dic 27, 2018 6:29 am

@Marcos_M escribió:
Pusiste los carteles de texto que te dije?
Si ninguno se activa es porque ninguna condición se cumple, esto puede pasar porque el grupo de jugadores no funcione o porque la gran condición inicial nunca se cumple
Posiblemente,tendré que ver que anula esa Variable.


Mis Spells

Arrow OMNISLASH: http://www.worldofeditors.net/t3778-omnislash#30794

Visita mi Canal de Youtube Wink

Arrow https://www.youtube.com/channel/UC1C1xPzx3-mNOTwC0RPikjg

Idea Subo contenido muy Interesante Idea
Volver arriba Ir abajo
Contenido patrocinado




Mensaje(#) Tema: Re: Ayuda con una AI !

Volver arriba Ir abajo
 

Ayuda con una AI !

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

 Temas similares

-
» Ayuda con mazo verde rojo.
» AYUDA PC .
» Nueva Ayuda para Erepublik
» ¿me siento solo ayuda ?
» AYUDA!! Estoy sufriendo por un amor no correspondido

Permisos de este foro:No puedes responder a temas en este foro.
Warcraft III - WorldEditor :: Zona de Aprendizaje(Dudas) :: GUI (Detonadores)-