Podrías pasar un archivo de texto de tu laptop a tu celular con los detonadores así copies el texto directamente. (Si no sabes copiar un detonador como texto, debes ir al nombre del detonador que está arriba de "Acontecimientos", hacer click derecho y luego la opción copiar como texto)
Pero ya sé como lo tienes al menos, y lo mejor para una AI es trabajar todas las decisiones desde un mismo detonador, así te aseguras que no hay 2 detonadores al mismo tiempo diciendole que hacer a la AI, y controlas mejor las ordenes, porque como ya sabes, si tiras ordenes muy rápido, el héroe se empieza a volver loco.
Un arbol de decisiones se ve algo así:
[gui]AI DECISION TREE
Acontecimientos
Condiciones
Acciones
Custom script: local real x
Custom script: local real y
Set Entero = (Point-value of Heroes[ID])
Set Punto = (Position of Heroes[ID])
Set Punto2 = (Position of Vagoneta)
-------- AI_DECISION = 0 ==> Fase inicial del juego --------
-------- Los atacantes priorizan empezar a mover la carga --------
-------- Los defensores priorizan mantenerse juntos --------
-------- AI_DECISION = 1 ==> Pelear --------
-------- AI_DECISION = 2 ==> Reagrupar --------
-------- AI_DECISION = 3 ==> Retirada --------
-------- AI_DECISION = 4 ==> "Idle" --------
-------- ----------------------------------------------------------------- --------
-------- Valor de Punto: Lo uso para determinar el posicionamiento general del hÃ

roe --------
-------- 1 = Frontline, prioriza capturar el objetivo --------
-------- 2 = MelÃ

, prioriza el objetivo pero evita pelear contra los números --------
-------- 3 = Rango ofensivo, prioriza estar a rango máximo del enemigo más cercano --------
-------- 4 = Rango defensivo, prioriza usar sus hechizos sobre aliados --------
Set GrupoAtacante = (Units within 1200.00 of Punto matching ((((Matching unit) is Un hÃ

roe) Igual a (==) True) and (((Matching unit) belongs to an enemy of (Player(ID))) Igual a (==) True)))
Set GrupoDefensor = (Units within 1200.00 of Punto matching ((((Matching unit) is Un hÃ

roe) Igual a (==) True) and (((Matching unit) belongs to an enemy of (Player(ID))) Igual a (==) False)))
Grupo de unidad - Remove Heroes[ID] from GrupoDefensor
Set Real = 999999.00
Set Real2 = 999999.00
Set Real3 = (Distance between Punto and Punto2)
Grupo de unidad - Pick every unit in GrupoAtacante and do (Actions)
Bucle: Acciones
Set Punto3 = (Position of (Picked unit))
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
(Distance between Punto and Punto2) Menor que (<) Real
Entonces: Acciones
Set Real = (Distance between Punto and Punto2)
Set EnemigoCercano = (Picked unit)
Otros: Acciones
Custom script: call RemoveLocation(udg_Punto3)
Grupo de unidad - Pick every unit in GrupoDefensor and do (Actions)
Bucle: Acciones
Set Punto3 = (Position of (Picked unit))
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
(Distance between Punto and Punto3) Menor que (<) Real2
Entonces: Acciones
Set Real2 = (Distance between Punto and Punto3)
Set AliadoCercano = (Picked unit)
Otros: Acciones
Custom script: call RemoveLocation(udg_Punto3)
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
(Abs(((Number of units in GrupoAtacante) - (Number of units in GrupoDefensor)))) Menor que (<) 1
Entonces: Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
Real3 Menor que (<) 1200.00
Real3 Mayor que (>) 500.00
Entonces: Acciones
Set AI_Decision[ID] = 0
Set AI_WaitDecission[ID] = 2.50
Otros: Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
Real3 Mayor que (>) 1200.00
Entonces: Acciones
Set AI_Decision[ID] = 2
Set AI_WaitDecission[ID] = 3.00
Otros: Acciones
Set AI_Decision[ID] = 1
Set AI_WaitDecission[ID] = 6.00
Otros: Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
(Number of units in GrupoDefensor) Menor que (<) 1
Entonces: Acciones
Set AI_Decision[ID] = 2
Set AI_WaitDecission[ID] = 3.00
Set AI_PriorisizedUnit[ID] = AliadoCercano
Otros: Acciones
Set AI_Decision[ID] = 0
Set AI_WaitDecission[ID] = 6.00
Custom script: call DestroyGroup(udg_GrupoAtacante)
Custom script: call DestroyGroup(udg_GrupoDefensor)[/gui]
Este detonador no contiene ninguna acción real para la AI, solamente es su siguiente decisión, pero igualmente puedes colocar acciones ahí en vez de mis Set AI_Decision[ID]
En mi detonador el objetivo de esta AI es cubrir el objetivo que es "Punto", y la variable Real3 me indica la distancia entre el punto objetivo y el bot par ordenarle acorde, mi bot tratará de ir al objetivo siempre que esté cerca de un aliado, y evitará las peleas en desventaja, y una vez esté sin aliados cercanos, buscará el aliado más cercano sin importar su lejanía y se agrupará con el.