Duda técnica mostrar\ocultar

Sección para misiones y edición ArmA III

Moderador: C. Misiones & Noticias

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

Re: Duda técnica mostrar\ocultar

Mensaje por <A2>Pescadorr »

La cantidad de objetos no es determinante y si lo puede ser el tipo de objetos que pongas en cuestión, hay objetos que no representan nada de carga y otros que si, eso hay que probarlo. Pero por lo general el impacto de los objetos es despreciable y mas si les quitas la simulación o los configuras como objetos simples.

La IA sin embargo es otro cantar poner mas de 180-200 en una sola zona es cargarte el rendimiento de los jugadores, lo suyo es spanearlas por oleadas controlando en todo momento cuanta ia hay en la zona o repartirla por toda el mapa(no cometais el error de repartirla en el mapa y esten tan proxima que a la que te detecten movilice todas las unidades del mapa).

Es cuestion de controlar que se hace y con sentido, yo por ejemplo estoy muy en contra de limitar la distancia de visión por script o la calidad del terreno porque creo que para eso cada uno se lo configura a su gusto y si uno se gasta un paston en una maquina que lo vea lo mejor posible.

Lo de que una coop sea de 20 o 40 eso da igual, eso depende del servidor y de lo que tu le cargues, tenemos la falsa creencia que una misión de 40 va a ir peor que una de 20 y no tiene porque, ahora claro si cargamos scripts que afectan a los jugadores o que repercuten en el servidor ahi es evidente que afecta y muchisimo. y os pongo un ejemplo, imaginad que ejecutamos un script que esta mal y da un fallo en cada maquina de cada uno de los clientes, en una coop de 20 el log del server recibiria 400 mensajes de los 20 jugadores (20x20) mientras que de una coop de 40 recibiria 1600 (40x40). como podeis ver 40 jugadores cargarian 4 veces mas que 20.

Por eso veo que quitar objetos debe ser el ultimo de tus problemas, centrate mas en gestionar la IA de forma progresiva y todo te ira de lujo.

Aun asi si lo que que quieres es borrar objetos al salir de la zona lo mas facil seria ejecutar un deletevehidcle en un script sencillito:

Código: Seleccionar todo

objetos=  nearestObjects [objeto_central,["tipoobjeto"], 50];
{
	deletevehicle  _x;
} foreach objetos;
donde objeto_central seria un objeto renombrado en el centro
donde tipoobjeto representaria el classname del tipo de objeto ( puedes poner tambien genericos como "land" o "car", mira el comando en la wiki.)
donde 50 representa la distancia en m desde objeto central que abarcaria los objetos.

por ejemplo:

Código: Seleccionar todo

antenas1 =  nearestObjects [antena,["Land_TTowerBig_1_F"], 50];
{
	deletevehicle  _x;
} foreach antenas1;			//borrado de todas las antenas en 50 metros a la redonda desde el objeto llamado antena
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


Responder