tengo un problema con un script, me salta el error de que una variable no ha sido declarada. Obviamente sí que lo está, pero no entiendo por qué el juego no es capaz de recordar que ya la variable existe.
"scriptvehiculos.sqf"
Código: Seleccionar todo
private["_bestplace","_unsorted","_i","_j","_text","_listdriver","_listgunner","_listcommander","_listturret","_jugador","_swp"];
_bestplace = _this select 0;
_unsorted = (position _bestplace) nearEntities [["rhs_t80","rhs_t80bvk","rhs_t72bb_tv","rhs_bmp2k_msv","rhs_zsu234_aa","rhs_bmp1p_msv"], 50];
for "_j" from 0 to count _unsorted - 1 do {
_i = floor random 1000000;
_text = formatText ["grpmalo12%1",_i]; //Aquí se declara y se crea un noombre aleatorio para el grupo de la IA que quiero spawnear
_veh = _unsorted select _j;
_cargo = _veh emptyPositions "cargo";
_text = [position _bestplace, EAST, unidadesE1] call BIS_fnc_spawnGroup; //Aquí vuelve a declararse la variable y funciona
sleep 3;
{
_x addmagazine "HandGrenade";
_x addmagazine "HandGrenade";
_x setSpeedMode "full";
_x addmagazine "SmokeShell";
_x addmagazine "SmokeShell";
_x addeventhandler ["Killed", {_this execVM "spawnAI\removedead.sqf"}];
_listdriver = fullCrew [vehicle _veh, "driver"];
_listgunner = fullCrew [vehicle _veh, "gunner"];
_listcommander = fullCrew [vehicle _veh, "commander"];
_listturret = fullCrew [vehicle _veh, "turret"];
if ((count _listcommander)==0 ) then { _x moveInCommander _veh;};
if ((count _listdriver)==0 ) then { _x moveInDriver _veh;};
if ((count _listgunner)==0 ) then { _x moveIngunner _veh;};
if ((count _listdriver)==0 ) then { _x moveInDriver _veh;};
if ((count _listturret)==0 ) then { _x moveInTurret [_veh, [0]];};
if ((count _listturret)==0 ) then { _x moveInTurret [_veh, [0, 0]] ;};
} foreach units _text; //_text es la variable que contiene el nombre del grupo spawneado
_text allowFleeing 0;
_null = _text spawn {
Hunt_players_fnc = {
_jugador = "";
{
if (isPlayer _x AND alive _x) then {_jugador = _x};
} foreach (playableUnits + switchAbleUnits);
_swp = _this addWaypoint [getPos _jugador, 5];
_swp setWaypointStatements ["true", "_null = (group this) spawn Hunt_players_fnc;"];
_swp setWaypointType "SAD";
_swp setWaypointCombatMode "RED";
_swp setWaypointSpeed "FULL";
};
_null = _text spawn Hunt_players_fnc; // no entiendo que _text se quede vacío cuando en ningún momento hago eso
};
};
sleep 3;
El script se basa en spamear tripulación en los vehículos que existan cerca de una lógica a de radio que yo quiera poner. El spawn funciona correctamente, lo que no funciona es que persigan a los jugadores, no entiendo por qué si lo que le estoy pidiendo simplemente es que el grupo spawneado guardado en la variable "_text" ejecute la pequeña funcion que está dentro del bucle for.
Bueno, mi idea es que los puntos de control que tendrá ese grupo de IA se quede en un bucle infinito persiguiendo a los jugadores. Pero el juego me dice en la línea 50 "_null = _text spawn Hunt_players_fnc;" que "_text" es una variable definida. ¡¡¡¿no está definido desde antes en las primeras líneas del bucle for?!!!