Ayuda: script para activar

Sección para misiones y edición ArmA III

Moderador: C. Misiones & Noticias

Responder
Avatar de Usuario
<A2>Valium.T
Soldado A2
Soldado A2
Mensajes: 570
Registrado: 09 Ene 2018, 01:32

Ayuda: script para activar

Mensaje por <A2>Valium.T »

Buenos días neskas. Necesito la ayuda de algún supereditor :OK:
Tengo puesto esto en una unidad para que ponga en marcha un activador:

Código: Seleccionar todo

call{this addaction ["<t color='#ffff11'>Unidad1</f>", "deletevehicle Unidad1;"];}
Funciona bien, hasta ahora lo he usado con objetos. Lo que pasa que ahora lo quiero usar con una unidad, y claro, no queda bien cuando interactúas con la unidad y te la zampas igual que un Gargantúa. Quisiera que hiciese la misma función pero que no desaparezca el objeto o la unidad.
“La cerveza es la mejor prueba de que Dios nos ama y quiere que seamos felices”
Imagen

Avatar de Usuario
<A2>AbueloCeboleta
Soldado A2
Soldado A2
Mensajes: 1658
Registrado: 03 Sep 2018, 23:24

Re: Ayuda: script para activar

Mensaje por <A2>AbueloCeboleta »

Déjame revisar mi libro de conjuros... Ah sí, página 37.
Tienes que emplear el comando removeAllActions ( https://community.bistudio.com/wiki/removeAllActions ).

Para ello, tienes que poner a la unidad un nombre de variable (Unidad1 en este caso), para poder así ejecutar, primero, el script que quieras (he puesto, de ejemplo, que el explosivoBomba explota), y, segundo, borrar todos los addActions de dicha unidad. Así el addAction ya no se puede volver a ejecutar y se habrá ejecutado la línea de comando que gustes una sola vez, sin borrar a la pobre Unidad1.

Código: Seleccionar todo

call{Unidad1 addaction ["<t color='#ffff11'>Texto que aparecerá en el AddAction</f>", "explosivoBomba setDamage 1; removeAllActions Unidad1;"];};
« HACIA EL ENEMIGO » - Inscripción de la mina M18 Claymore.

Avatar de Usuario
<A2>Valium.T
Soldado A2
Soldado A2
Mensajes: 570
Registrado: 09 Ene 2018, 01:32

Re: Ayuda: script para activar

Mensaje por <A2>Valium.T »

Gracias Abuelo.
Casi prefiero que desaparezca :-D... ahora cae desplomada a mis pies la pobre IA :lloris:
He puesto en 0 eso del setDamage y no hace nada. He desmarcado la casilla de activar daño y se sigue desmayando la condenada.
Pero que conste en acta que funcionar funciona :OK:
... solo que me gustaría que la IA siguiese viva a ser posible. ¿Algún comandito molón de esos mágicos?
“La cerveza es la mejor prueba de que Dios nos ama y quiere que seamos felices”
Imagen

Avatar de Usuario
<A2>AbueloCeboleta
Soldado A2
Soldado A2
Mensajes: 1658
Registrado: 03 Sep 2018, 23:24

Re: Ayuda: script para activar

Mensaje por <A2>AbueloCeboleta »

<A2>Valium.T escribió: 14 Feb 2022, 13:43 Gracias Abuelo.
Casi prefiero que desaparezca :-D... ahora cae desplomada a mis pies la pobre IA :lloris:
He puesto en 0 eso del setDamage y no hace nada. He desmarcado la casilla de activar daño y se sigue desmayando la condenada.
Pero que conste en acta que funcionar funciona :OK:
... solo que me gustaría que la IA siguiese viva a ser posible. ¿Algún comandito molón de esos mágicos?
Lo de setDamage lo he puesto como ejemplo Valium. Tienes que quitar eso y poner el comando que quieras que se ejecute con el addAction (un hint, un script, etc.).

Lo que tienes que dejar es el removeAllActions, lo demás a tu gusto.
« HACIA EL ENEMIGO » - Inscripción de la mina M18 Claymore.

Avatar de Usuario
<A2>Valium.T
Soldado A2
Soldado A2
Mensajes: 570
Registrado: 09 Ene 2018, 01:32

Re: Ayuda: script para activar

Mensaje por <A2>Valium.T »

Código: Seleccionar todo

call{civil addaction ["<t color='#ffff11'>civil</f>", "removeAllActions civil;"]; hint "texto a escribir"};
Lo he puesto así y sale "civil" en la IA pero el mensaje del hint sale en cuanto empieza la misión.
¿Cómo hay que ponerlo para que salga solo cuándo interactúe con la IA?
“La cerveza es la mejor prueba de que Dios nos ama y quiere que seamos felices”
Imagen

Avatar de Usuario
<A2>Pescadorr
Soldado A2
Soldado A2
Mensajes: 6569
Registrado: 09 Sep 2011, 03:28

Re: Ayuda: script para activar

Mensaje por <A2>Pescadorr »

Pero que es lo que quieres hacer exactamente? Explicate y te ayudaremos.
<A2>Valium.T escribió: 14 Feb 2022, 17:56

Código: Seleccionar todo

call{civil addaction ["<t color='#ffff11'>civil</f>", "removeAllActions civil;"]; hint "texto a escribir"};
Lo he puesto así y sale "civil" en la IA pero el mensaje del hint sale en cuanto empieza la misión.
¿Cómo hay que ponerlo para que salga solo cuándo interactúe con la IA?
Has puesto el hint fuera del addaction.
Caja: DEEP COOL MATREXX 70 3F CPU: Ryzen 7 5800X P. Base: Gigabyte X570 Aorus Elite RAM:Team Group T-Force Dark Z Alpha 2x16 gb ddr4 3600 Mhz CL18
Disipador cpu: Corsair H-100 Hydro series Pasta termica: Thermalright TF8 13.8 W/MK + Coollaboratory Liquid Pro GPU: Asus GeForce TUF Gaming RTX 4070 Ti 12GB GDDR6X
Discos: M2 samsung 970 512 mb 3.0 + M2 Samsung 980 PRO 1 Tb 4.0 + HDD Barracuda 4 Tb Vent: 4 x deep cool RGB pwm + 3 x corsair pwm + 2 x Noctua nf-p12 + controladora rgb + pwm
disipador M2: GLOTRENDS M.2 Alfombrilla: MARSGAMING MMPRGB2 XXL RGB 80x30 Auriculares: Audio-Technica M50x Peines cableado: Uphere 24 pz
Microfono: Boya BY-M1 Raton: Logitech G602 Teclado: Razer Huntsman Elite Switches Optomecánicos Purple
Monitor: Philips 436M6VBPAB 43" 4K HDR1000 AmbiGlow Gsync low input Silla: Diablo X-Horn XL


Avatar de Usuario
<A2>Pescadorr
Soldado A2
Soldado A2
Mensajes: 6569
Registrado: 09 Sep 2011, 03:28

Re: Ayuda: script para activar

Mensaje por <A2>Pescadorr »

Código: Seleccionar todo

civil addaction ["<t color='#ffff11'>Hablar con civil</f>", "removeAllActions civil;hint 'haz caso a lo que te dice pescadorr.';"]; 
Con este código te saldrá el mensaje al darle, pero solo al que ejecuta el addaction, el resto no verá nada. Si lo que quieres es que lo lea todo el mundo por esto:

Código: Seleccionar todo

civil addaction ["<t color='#ffff11'>Hablar con civil</f>", "removeAllActions civil; 'haz caso a lo que te dice pescadorr.' remoteexec ['hint'];"]; 
Puedes usar el removeactions para quitarlas acciones de civil, yo prefiero por ejemplo usar la propia condición para que se muestre el addaction, pero eso mejor para cuando necesites algo más complicado, el addaction es el comando con diferencia más difícil de usar, sobretodo si te metes al 100% con su complejidad.
Caja: DEEP COOL MATREXX 70 3F CPU: Ryzen 7 5800X P. Base: Gigabyte X570 Aorus Elite RAM:Team Group T-Force Dark Z Alpha 2x16 gb ddr4 3600 Mhz CL18
Disipador cpu: Corsair H-100 Hydro series Pasta termica: Thermalright TF8 13.8 W/MK + Coollaboratory Liquid Pro GPU: Asus GeForce TUF Gaming RTX 4070 Ti 12GB GDDR6X
Discos: M2 samsung 970 512 mb 3.0 + M2 Samsung 980 PRO 1 Tb 4.0 + HDD Barracuda 4 Tb Vent: 4 x deep cool RGB pwm + 3 x corsair pwm + 2 x Noctua nf-p12 + controladora rgb + pwm
disipador M2: GLOTRENDS M.2 Alfombrilla: MARSGAMING MMPRGB2 XXL RGB 80x30 Auriculares: Audio-Technica M50x Peines cableado: Uphere 24 pz
Microfono: Boya BY-M1 Raton: Logitech G602 Teclado: Razer Huntsman Elite Switches Optomecánicos Purple
Monitor: Philips 436M6VBPAB 43" 4K HDR1000 AmbiGlow Gsync low input Silla: Diablo X-Horn XL


Avatar de Usuario
<A2>Valium.T
Soldado A2
Soldado A2
Mensajes: 570
Registrado: 09 Ene 2018, 01:32

Re: Ayuda: script para activar

Mensaje por <A2>Valium.T »

Gracias Pesca. He usado el código ultimo que has puesto y muy bien. Solo que se me olvidó comentar que también me gustaría que a la vez me diese una tarea por finalizada. Yo lo hice con un activador / condición= call{!alive civil;} y con el deletevehicle, pero desaparecía la IA.
Ahora con tu script no me da la tarea por concluida... algún apaño habrá ¿no?
Puedes usar el removeactions para quitarlas acciones de civil, yo prefiero por ejemplo usar la propia condición para que se muestre el addaction, pero eso mejor para cuando necesites algo más complicado, el addaction es el comando con diferencia más difícil de usar, sobretodo si te metes al 100% con su complejidad.
Ya esto mismo me suena a chino... :-D
“La cerveza es la mejor prueba de que Dios nos ama y quiere que seamos felices”
Imagen

Avatar de Usuario
<A2>Pescadorr
Soldado A2
Soldado A2
Mensajes: 6569
Registrado: 09 Sep 2011, 03:28

Re: Ayuda: script para activar

Mensaje por <A2>Pescadorr »

<A2>Valium.T escribió: 16 Feb 2022, 14:21 Gracias Pesca. He usado el código ultimo que has puesto y muy bien. Solo que se me olvidó comentar que también me gustaría que a la vez me diese una tarea por finalizada. Yo lo hice con un activador / condición= call{!alive civil;} y con el deletevehicle, pero desaparecía la IA.
Ahora con tu script no me da la tarea por concluida... algún apaño habrá ¿no?
Puedes usar el removeactions para quitarlas acciones de civil, yo prefiero por ejemplo usar la propia condición para que se muestre el addaction, pero eso mejor para cuando necesites algo más complicado, el addaction es el comando con diferencia más difícil de usar, sobretodo si te metes al 100% con su complejidad.
Ya esto mismo me suena a chino... :-D
Para sincronizar tareas este método funciona bien, soluciona tanto temas de localidad (cosa que ocurre en el addaction), como con la persistencia (JIP) por si alguien se cae y que vea que la tarea esta hecha.

en el init.sqf (sino lo tienes en tu mision lo creas)pones esto:

Código: Seleccionar todo

if (isserver) then 
{
	tarea1= false;
	publicvariable "tarea1";
	tarea2= false;  //esto por si necesitas mas de una tarea
	publicvariable "tarea2";
};
en el init de la ia en cuestion pones esto:

Código: Seleccionar todo

civil addaction 
[
	"<t color='#ffff11'>Hablar con civil</t>", 
	"removeAllActions civil; 
	'haz caso a lo que te dice pescadorr.' remoteexec ['hint']; 
	tarea1 = true; 
	publicvariable 'tarea1';
	"
]; 
y en el activador que cambia el estado de la tarea, pones esto en la condicion:

Código: Seleccionar todo

tarea1
y listo.

tambien podrias hacerlo directamente desde el addaction poniendo esto:

Código: Seleccionar todo

civil addaction 
[
	"<t color='#ffff11'>Hablar con civil</t>", 
	"removeAllActions civil; 
	'haz caso a lo que te dice pescadorr.' remoteexec ['hint']; 
	[tarea1, 'Succeeded'] remoteExec ['setTaskState', playableunits, true]; 
	"
];
Es una ejecucion remota cambiando el estado de la tarea a cumplido, ejecutando en playableunits (jugadores) y con JIP (joint in progress) a true para que cuando se caiga alguien y vuelva a entrar la tarea vualva a ponerse como cumplida.
Caja: DEEP COOL MATREXX 70 3F CPU: Ryzen 7 5800X P. Base: Gigabyte X570 Aorus Elite RAM:Team Group T-Force Dark Z Alpha 2x16 gb ddr4 3600 Mhz CL18
Disipador cpu: Corsair H-100 Hydro series Pasta termica: Thermalright TF8 13.8 W/MK + Coollaboratory Liquid Pro GPU: Asus GeForce TUF Gaming RTX 4070 Ti 12GB GDDR6X
Discos: M2 samsung 970 512 mb 3.0 + M2 Samsung 980 PRO 1 Tb 4.0 + HDD Barracuda 4 Tb Vent: 4 x deep cool RGB pwm + 3 x corsair pwm + 2 x Noctua nf-p12 + controladora rgb + pwm
disipador M2: GLOTRENDS M.2 Alfombrilla: MARSGAMING MMPRGB2 XXL RGB 80x30 Auriculares: Audio-Technica M50x Peines cableado: Uphere 24 pz
Microfono: Boya BY-M1 Raton: Logitech G602 Teclado: Razer Huntsman Elite Switches Optomecánicos Purple
Monitor: Philips 436M6VBPAB 43" 4K HDR1000 AmbiGlow Gsync low input Silla: Diablo X-Horn XL


Avatar de Usuario
<A2>Valium.T
Soldado A2
Soldado A2
Mensajes: 570
Registrado: 09 Ene 2018, 01:32

Re: Ayuda: script para activar

Mensaje por <A2>Valium.T »

Genial Pesca. Ya tengo entretenimiento para esta tarde.
Así da gusto hacer misiones :bravo:
“La cerveza es la mejor prueba de que Dios nos ama y quiere que seamos felices”
Imagen

Responder