Código: Seleccionar todo
/*
**** --- null = [this] execVM "deleteAI.sqf"; by Dark Darius
*///***************************************** deleteAI.sqf ********************************************************
private["_ia"]; //- la variable "_ia" es local para evitar problemas con otros scripts que puedan usar la misma variable
_ia = _this select 0; //- la ia es seleccionada
while {alive _ia} do { //--bucle while será true hasta que la ia seleccionada muera
{
if (isPlayer _x && alive _x) then { //-si en la lista de jugadores hay un jugador y está vivo, se ejecuta el siguiente código
if ((_x distance _ia) > 5000) then { //- si la distancia de la ia y el jugador de la lista es mayor a 5000 metros entonces será borrada
deleteVehicle _ia; //- borra la ia
};
};
} forEach playableUnits; //- comando que ejecuta en cada jugador de la lista de jugadores el código, se ejecuta en orden del primero al último de la lista
sleep 60; //- desfase de cada vuelta del bucle while para evitar saturar la memoria del servidor y los clientes
};
*** inconvenientes del script ***
Estoy usando la lista array de playableUnits, esto significa que el ejecutador irá chequeando del jugador en la lista numero uno hasta el último si este jugador está a la distancia indicada de la IA. Si el jugador de la lista número uno está a más de la distancia y el último jugador de la lista del playableUnits está a menos distancia indicada, pues a ese jugador se le va a desaparecer en los morros. XD
No se me ocurre otra idea para evitar eso, pero bueno, las posibilidades de que ocurra son bastante bajas, estoy abierto a sugerencias.
Saludos a todos y que les sirva de provecho.