Jump to content
Barba-negra

merge missions scripts

Recommended Posts

good afternoon guys, how are you? I wanted to ask if there are any scripts to run a map with another one that can be executed already on a mission in progress? I refer more than anything to the fusion of objects from one map to another, I know that the ares and the achilles have these functions but I would like to know if there are any scripts?

  • Like 1

Share this post


Link to post
Share on other sites

Hello there elthefrank !

 

Just in order to get this straight , you want to run multiple mission files?

To merge two missions togethere like invade & annex and liberation?

Share this post


Link to post
Share on other sites

if friend wish to copy the objects placed in a mission file on another map already in progress, an example would be to be on a mission and with a scritps you can spawn the objects that are in the mission.sqm file of another mission, pog them on the map Current, I have seen that the ares and the achilles have that function but I would like to know if it is possible to do it through a scripts?

Share this post


Link to post
Share on other sites
1 hour ago, elthefrank said:

copy the objects placed in a mission file on another map

 

What you mean is to copy the objects with their positions ( so copy the compositions maybe ) and while you are playing to spawn them , no matter what terrain you are playing? or mission at the same map?

2 hours ago, elthefrank said:

map already in progress,

by saying map you mean the mission , right ?

Share this post


Link to post
Share on other sites

yes @GEORGE FLOROS GR just copy the objects with their positions, no matter the terrain, and if I refer to the map (mission), I have searched for a lot of how to do it but I still do not know how

Share this post


Link to post
Share on other sites

I would like to take the opportunity to ask once and for all if the possibility exists to create a camera movement as addcamshake in a specific direction, now I have managed to move the camra to a direction for a short time of 10 to 15 seconds, but I would like to know if it could be extended without the address changing to the opposite direction in the time that you want?

 

[] Spawn

{

addCamShake [40, 8, 0.09];
setCamShakeParams [0.01, 1, 0, 0, true];


Sleep 1; 


addCamShake [40, 8, 0.09];
setCamShakeParams [0.01, 1, 0, 0, true];

Sleep 1; 


addCamShake [40, 8, 0.09];
setCamShakeParams [0.01, 1, 0, 0, true];

Sleep 1; 


addCamShake [40, 8, 0.09];
setCamShakeParams [0.01, 1, 0, 0, true];


};

Share this post


Link to post
Share on other sites

@GEORGE FLOROS GR a companion question, would there be the possibility of creating a camera attached to the player, and be able to continue moving the player? I've seen the tutorial but all the cameras and effects during his action make him lose control of the player and he can not move

Share this post


Link to post
Share on other sites

It's very similar to what I want to do in the game, I'm going to review it, thanks bro

  • Thanks 1

Share this post


Link to post
Share on other sites

@GEORGE FLOROS GR Although it is quite complicated, I think that what I want to do has not been done by anyone. I need to create an area movement, make the player's camera move to a specific direction for a certain time without interrupting the gameplay, I think nobody has done that, and I do not know if I can do it heheh

  • Like 1

Share this post


Link to post
Share on other sites

this is perfect @GEORGE FLOROS GR This is what I want to do, I'm going to, but the only thing I need is to be able to move while the camera moves. select my player and remain immobile, will there be any way to move while the camra rotates?

Share this post


Link to post
Share on other sites

this is the perfect way, there has to be a way to defrost the player right here in this script and the camera follow its functions

 

comment "-------------------------------------------------------------------------------------------------------";
comment "                                            indiCam, by woofer.                                            ";
comment "                                                                                                        ";
comment "                                           indiCam_fnc_actorManager                                        ";
comment "                                                                                                        ";
comment "    This script manages who the actor is at a given time.                                                 ";
comment "                                                                                                        ";
comment "-------------------------------------------------------------------------------------------------------";

comment "-------------------------------------------------------------------------------------------";
comment "                            automatic vincinity actor switch                                ";
comment "-------------------------------------------------------------------------------------------";
// Function to randomize and assign a new actor by starting to look within a given radius and then expanding the search until an actor is found.
// Format [radius,preferPlayerBool] call indiCam_fnc_randomizeActor;
// [25,true] call indiCam_fnc_randomizeActor
indiCam_fnc_randomizeActor = {
    if (indiCam_debug) then {systemChat "Randomizing actor"};
    private [
            "_radius",
            "_preferPlayer",
            "_unitArray",
            "_unitArrayPlayers",
            "_unitArrayAI",
            "_case",
            "_actorSet"
            ];

    _radius = _this select 0; // Feed the function the starting radius
    _preferPlayer = _this select 1; // Feed the function the actor preference
    //if (isNil "_radius") then {_radius = 25} else {_radius = _this select 0}; // If the argument isn't given, assume a radius
    //if (isNil "_preferPlayer") then {_preferPlayer = false} else {_preferPlayer = _this select 1;}; // If the argument isn't given, assume false.
    // Maybe more like this: https://forums.bohemia.net/forums/topic/147877-passing-undeclared-variable-to-function/

    _actorSet = false; // For stopping this loop after an actor has been found
    while {_radius < 15000} do {
        
        // Pull all units of the same side as the actor from within the given radius
        _unitArray = nearestObjects [actor,["Man","Car","Tank","Helicopter","Plane","Ship","Air"],_radius];
        
        // If there are any units within the current search radius at all start checking them
        if (count _unitArray > 0) then {
        
            // Separate all units into player or AI arrays
            _unitArrayPlayers = [];
            _unitArrayAI = [];
            {
                if ((side _x == indiCam_var_actorSide) && (isPlayer _x) && (_x != actor)) then {_unitArrayPlayers pushBack _x};
                if ((side _x == indiCam_var_actorSide) && (!isPlayer _x) && (_x != actor)) then {_unitArrayAI pushBack _x};
            } forEach _unitArray;


            if ((count _unitArrayPlayers > 0)) then {_case = "foundPlayer"}; // We found a player
            if ((count _unitArrayPlayers == 0) && (_preferPlayer)) then {_case = "extendSearch"}; // If no preferred player found
            if ((count _unitArrayAI >= 1) && (!_preferPlayer)) then {_case = "foundAI"}; // Found AI, and no preference for player exists
            if ((count _unitArrayPlayers == 0) && (count _unitArrayAI == 0)) then {_case = "extendSearch"}; // No player or AI found


            // This is a start for checking different cases
            switch (_case) do {
                case "foundPlayer": {
                    actor = selectRandom _unitArrayPlayers;
                    _actorSet = true;
                }; // end of case
                
                case "foundAI": {
                    actor = selectRandom _unitArrayAI;
                    _actorSet = true;
                }; // end of case

                case "extendSearch": {
                    _radius = _radius * 2;
                }; // end of case
            };

        } else {
            // No units were found, extend the search radius by a factor
            _radius = _radius * 2;
            if (indiCam_debug) then {systemChat "no valid actor within first search radius, extending"};
        };

        if (_actorSet) exitWith {
            if (indiCam_debug) then {systemChat "Actor was switched"};
        };
        
    };// End of search loop

    // Interrupt the scene to make the camera switch to the new actor
    indiCam_var_interruptScene = true;

}; // End of function


comment "-------------------------------------------------------------------------------------------";
comment "                                basic switch to closest actor                                ";
comment "-------------------------------------------------------------------------------------------";

// This function switches to the closest unit of the current actor and assings the status of actor to that new unit
indiCam_fnc_actorSwitchToClosest = {

    // https://forums.bohemia.net/forums/topic/94695-how-to-find-nearest-unit-of-a-given-side/
    _nearestObjects = nearestObjects [actor,["Man"],750];
    _nearestFriendlies = [];
    if ((indiCam_var_actorSide) countSide _nearestObjects > 0) then {
        {
            private _unit = _x;
            if (((side _unit) == (indiCam_var_actorSide)) && (!isPlayer _unit) && (alive _unit) && (_unit isKindOf "Man")) then {
                _nearestFriendlies = _nearestFriendlies + [_unit]
            };
        } foreach _nearestObjects;
        
        actor = _nearestFriendlies select 0;
        indiCam_var_actorSide = side actor;

    };

    if (count _nearestFriendlies == 0) then {
        /* DEBUG */ if (indiCam_debug) then {systemChat "no AI could be found around the actor, switching to player..."};
        actor = player;
    };

};

comment "-------------------------------------------------------------------------------------------";
comment "                                actor map selection                                            ";
comment "-------------------------------------------------------------------------------------------";


// This function shows ALL units as markes on the map so that one can be selected as actor
// Format:
// [showAllUnitsBool] call indiCam_fnc_mapSelect;
indiCam_fnc_mapSelect = { // function contains sleep and should be spawned

    player linkItem "ItemMap"; // Just in case the cameraman is spawned without a map

    // The function needs to be able to set this variable with _this select 0;
    _mapSelectMode = _this select 0;

    // If no argument is given, assume all units to be accessible
    if (isNil "_mapSelectMode") then {indiCam_var_mapselectAll = true} else {indiCam_var_mapselectAll = _mapSelectMode;}; 

    comment "-------------------------------------------------------------------------------------------";
    comment "                                    markers on map                                            ";
    comment "-------------------------------------------------------------------------------------------";

    [] spawn { // this contains sleep and thus needs to be spawned
        indiCam_var_showMarkers = true;
        
        while {indiCam_var_showMarkers} do {
            private "_markername";
            private _markerArray = [];
            private _unitArray = [];
        
            // Build the correct array of units depending on if it's only friendlies or if it's all units that are to be shown
            {    // forEach allUnits only pulls alive mans of the four main factions
                if (indiCam_var_mapselectAll) then {_unitArray pushBack _x};
                if (side _x == side player && (!indiCam_var_mapselectAll)) then {_unitArray pushBack _x};
            } foreach allUnits;
            
            
            { // Use the newly created array of units to draw markers on their pos
                // Assign each unit a unique marker
                _markername = format ["indiCamMarker%1",_x];
                _markername = createMarkerLocal [_markername,(position _x)]; 
                _markername setMarkerShapeLocal "ICON"; 
                _markername setMarkerTypeLocal "hd_dot";
                _markername setMarkerSizeLocal [1,1];
                _markerArray pushBack _markername;
            
                // Depending on attributes give the marker shape, color and text
                if ((side _x) == WEST) then {_markername setMarkerColorLocal "ColorWEST"};
                if ((side _x) == EAST) then {_markername setMarkerColorLocal "ColorEAST"};
                if ((side _x) == resistance) then {_markername setMarkerColorLocal "ColorGUER"};
                if ((side _x) == civilian) then {_markername setMarkerColorLocal "ColorCIV"};
                if ((vehicle _x isKindOf "Car")) then {_markername setMarkerTextLocal "Car";};
                if ((vehicle _x isKindOf "Tank")) then {_markername setMarkerTextLocal "Tank";};
                if ((vehicle _x isKindOf "Helicopter")) then {_markername setMarkerTextLocal "Helicopter";};
                if ((vehicle _x isKindOf "Plane")) then {_markername setMarkerTextLocal "Plane";};
                if ((vehicle _x isKindOf "Ship")) then {_markername setMarkerTextLocal "Ship";};
                if (isPlayer _x) then {_markername setMarkerColorLocal "ColorYellow";_markername setMarkerTextLocal "a player";};
                if (_x == actor) then {_markername setMarkerColorLocal "ColorOrange";_markername setMarkerTextLocal "current actor";};
                if ((_x == actor) && (isPlayer _x)) then {_markername setMarkerColorLocal "ColorOrange";_markername setMarkerTextLocal  "current actor (a player)";};
                
            } foreach _unitArray;

            sleep 0.25; // This is the update frequency of the script. onEachFrame didn't pan out well.
        
            { // Delete all markers before drawing them again
                deleteMarkerLocal _x;
            } foreach _markerArray;
            
        };
        
        if (indiCam_debug) then {systemChat "stopping markers..."};

    };

    comment "-------------------------------------------------------------------------------------------";
    comment "                            actor selection    and assignment on map                            ";
    comment "-------------------------------------------------------------------------------------------";
    openMap [true, false]; // Force a soft map opening
    indiCam_var_mapOpened = addMissionEventHandler ["Map",{mapClosed = true;indiCam_var_showMarkers = false;}];

    mapClosed = false;
    onMapSingleClick { // Using the old version of this EH, is that bad?
        private _friendlyUnitsData = [];
        private _allUnitsData = [];

        { // forEach that splits all the units into separate arrays depending on if we want all or just friendlies
        
            if (!indiCam_var_mapselectAll) then {// This is for when the actor can only be on the same side as the cameraman

                if (side _x == side player) then {_friendlyUnitsData pushBack [_x,(getPos _x distance2D _pos)]};
                _friendlyUnitsData sort true;
                actor = ((_friendlyUnitsData select 0) select 0); // Set the unit closest to the clicked position as the actor

            } else {// This is for when the actor can be selected from any unit
            
                _allUnitsData pushBack [_x,(getPos _x distance2D _pos)];
                _allUnitsData sort true;
                actor = ((_allUnitsData select 0) select 0); // Set the unit closest to the clicked position as the actor

            };

        } forEach allUnits;
        
        hint format ["Actor set to: %1",actor];
        
    };

    waitUntil {mapClosed};
    removeMissionEventHandler ["Map", indiCam_var_mapOpened];
    onMapSingleClick {}; // empty brackets stops the eventhandler?

};


comment "-------------------------------------------------------------------------------------------------------";
comment "                                            dead actor scene                                            ";
comment "-------------------------------------------------------------------------------------------------------";
indiCam_fnc_actorDeath = {
// Run this deathcam scene all the way through. The new actor will be selected in the main loop after this is run through

    /* DEBUG */ if (indiCam_debug) then {systemChat "so welcome to the death cam"};

    detach indiCam;
    indiCam camSetPos (getPos indiCam);
    indiCam camSetTarget actor;
    indiCam camSetFov 0.3;
    indiCam camCommit 5;
    waitUntil {camCommitted indiCam};
    sleep 5;

    indiCam_var_actorDeathComplete = true;

};


 

  • Like 1

Share this post


Link to post
Share on other sites
4 hours ago, elthefrank said:

comment

 

First Just a TIP:

 

Spoiler

<code>

 

 

Use the code button for pasting codes and put all this to a spoiler!

 

Is this the  indiCam script by woofer the original or have you reedit this?

Share this post


Link to post
Share on other sites

 ok is fine, and this is the original screenplay of the indicam scritps, the actor is the person to whom the camera is fixed, and it is without problems, but the person who is seeing the effect can not move is immobile, Then if I fixed the camera to myself, (which is what I need to do) I can not move, my intention is to have a camera that follows me, and I can see the turns it makes while I move

Share this post


Link to post
Share on other sites

It's like having a camera in the third person, moving in different directions, fixed to the player, and the player can see how the camera rotates while moving

Share this post


Link to post
Share on other sites
3 hours ago, elthefrank said:

camera rotates while moving

 

i understand , an ingame cinematic camera. I have seen this in many games.

If i found something i 'll tell you !

  • Like 1

Share this post


Link to post
Share on other sites
On 20/09/2018 at 12:45, Barba-negra said:

se um amigo deseja copiar os objetos colocados em um arquivo de missão em outro mapa já em andamento, um exemplo seria estar em uma missão e com um scripts você pode gerar os objetos que estão no arquivo mission.sqm de outra missão, pog eles no mapa atual, vi que o ares e o aquiles tem essa função mas gostaria de saber se é possível fazer isso através de scripts?

 

On 23/09/2018 at 10:19, Barba-negra said:

esse é o jeito perfeito, tem que ter um jeito de descongelar o player aqui mesmo nesse script e a câmera seguir suas funções

 

Comente "------------------------------------------------ -------------------------------------------------- -----";
comente " indiCam, por woofer. ";
Comente " ";
comente " indiCam_fnc_actorManager ";
Comente " ";
comente " Este script gerencia quem é o ator em um determinado momento. ";
Comente " ";
Comente "------------------------------------------------ -------------------------------------------------- -----";

Comente "------------------------------------------------ -------------------------------------------";
comentário "troca automática de ator de proximidade";
Comente "------------------------------------------------ -------------------------------------------";
// Função para randomizar e atribuir um novo ator começando a procurar dentro de um determinado raio e então expandindo a busca até que um ator seja encontrado.
// Formato [radius,preferPlayerBool] call indiCam_fnc_randomizeActor;
// [25,true] call indiCam_fnc_randomizeActor
indiCam_fnc_randomizeActor = {
    if (indiCam_debug) then {systemChat "Randomizing actor"};
    privado [
            "
            "_preferPlayer",
            "_unitArray",
            "_unitArrayPlayers",
            "_unitArrayAI",
            "_case",
            "_actorSet"
            ];

    _radius = _this seleciona 0; // Alimenta a função com o raio inicial
    _preferPlayer = _this select 1; // Alimenta a função com a preferência do ator
    //if (isNil "_radius") then {_radius = 25} else {_radius = _this select 0}; // Se o argumento não for fornecido, assume um raio
    //if (isNil "_preferPlayer") then {_preferPlayer = false} else {_preferPlayer = _this select 1;}; // Se o argumento não for fornecido, assume false.
    // Talvez mais assim: https://forums.bohemia.net/forums/topic/147877-passing-undeclared-variable-to-function/

    _actorSet = false; // Para parar este loop depois que um ator foi encontrado
    while {_radius < 15000} do {
        
        // Puxe todas as unidades do mesmo lado que o ator de dentro do raio dado
        _unitArray = nearObjects [actor,["Man","Car ","Tanque","Helicóptero","Avião","Navio","Ar"],_radius];
        
        // Se houver quaisquer unidades dentro do raio de busca atual, comece a verificá-las
        if (count _unitArray > 0) then {
        
            // Separe todas as unidades em matrizes de jogadores ou AI
            _unitArrayPlayers = [];
            _unitArrayAI = [];
            {
                if ((lado _x == indiCam_var_actorSide) && (isPlayer _x) && (_x != ator)) then {_unitArrayPlayers pushBack _x};
                if ((lado _x == indiCam_var_actorSide) && (!isPlayer _x) && (_x != ator)) então {_unitArrayAI pushBack _x};
            } forEach _unitArray;


            if ((count _unitArrayPlayers > 0)) então {_case = "foundPlayer"}; // Encontramos um jogador
            if ((count _unitArrayPlayers == 0) && (_preferPlayer)) then {_case = "extendSearch"}; // Se nenhum jogador preferido for encontrado
            if ((count _unitArrayAI >= 1) && (!_preferPlayer)) then {_case = "foundAI"}; // Encontrado AI, e nenhuma preferência por jogador existe
            if ((count _unitArrayPlayers == 0) && (count _unitArrayAI == 0)) then {_case = "extendSearch"}; // Nenhum jogador ou IA encontrado


            // Este é um começo para verificar diferentes casos
            switch (_case) do {
                case "foundPlayer": {
                    actor = selectRandom _unitArrayPlayers;
                    _actorSet = verdadeiro;
                }; // fim do caso case
                
                "foundAI": {
                    actor = selectRandom _unitArrayAI;
                    _actorSet = verdadeiro;
                }; // fim do caso

                case "extendSearch": {
                    _radius = _radius * 2;
                }; // fim do caso
            };

        } else {
            // Nenhuma unidade foi encontrada, estenda o raio de busca por um fator
            _radius = _radius * 2;
            if (indiCam_debug) then {systemChat "nenhum ator válido dentro do primeiro raio de pesquisa, estendendo"};
        };

        if (_actorSet) exitWith {
            if (indiCam_debug) then {systemChat "Actor foi trocado"};
        };
        
    };// Fim do loop de pesquisa

    // Interrompe a cena para fazer a câmera mudar para o novo ator
    indiCam_var_interruptScene = true;

}; // Fim da função


Comente "------------------------------------------------ -------------------------------------------";
comentário "mudança básica para o ator mais próximo";
Comente "------------------------------------------------ -------------------------------------------";

// Esta função muda para a unidade mais próxima do ator atual e atribui o status do ator a essa nova unidade
indiCam_fnc_actorSwitchToClosest = {

    // https://forums.bohemia.net/forums/topic/94695-how-to-find-nearest-unit-of-a-given-side/
    _nearestObjects = nearObjects [actor,["Man"],750] ;
    _Amigos mais próximos = [];
    if ((indiCam_var_actorSide) countSide _nearestObjects > 0) então {
        {
            private _unit = _x;
            if (((side _unit) == (indiCam_var_actorSide)) && (!isPlayer _unit) && (alive _unit) && (_unit isKindOf "Man")) then { _nearestFriendlies
                = _nearestFriendlies + [_unit]
            };
        } foreach _nearestObjects;
        
        ator = _nearestFriendlies selecione 0;
        indiCam_var_actorSide = ator lateral;

    };

    if (count _nearestFriendlies == 0) then {
        /* DEBUG */ if (indiCam_debug) then {systemChat "no AI could be found around the actor, switching to player..."};
        ator = jogador;
    };

};

Comente "------------------------------------------------ -------------------------------------------";
comente "seleção do mapa de atores";
Comente "------------------------------------------------ -------------------------------------------";


// Esta função mostra TODAS as unidades como marcas no mapa para que uma possa ser selecionada como ator
// Formato:
// [showAllUnitsBool] call indiCam_fnc_mapSelect;
indiCam_fnc_mapSelect = { // a função contém suspensão e deve ser gerada

    jogador linkItem "ItemMap"; // Caso o operador de câmera seja gerado sem um mapa

    // A função precisa ser capaz de definir esta variável com _this select 0;
    _mapSelectMode = _this select 0;

    // Se nenhum argumento for fornecido, assume que todas as unidades estão acessíveis
    if (isNil "_mapSelectMode") then {indiCam_var_mapselectAll = true} else {indiCam_var_mapselectAll = _mapSelectMode;}; 

    Comente "------------------------------------------------ -------------------------------------------";
    comente "marcadores no mapa";
    Comente "------------------------------------------------ -------------------------------------------";

    [] spawn { // isso contém sono e, portanto, precisa ser gerado
        indiCam_var_showMarkers = true;
        
        while {indiCam_var_showMarkers} do {
            private "_markername";
            private _markerArray = [];
            _unitArray privado = [];
        
            // Constrói a matriz correta de unidades dependendo se são apenas amistosos ou se são todas as unidades que devem ser mostradas
            { // forEach allUnits puxa apenas homens vivos das quatro facções principais
                if (indiCam_var_mapselectAll) then {_unitArray pushBack _x};
                if (side _x == side player && (!indiCam_var_mapselectAll)) then {_unitArray pushBack _x};
            } foreach allUnits;
            
            
            { // Use a matriz de unidades recém-criada para desenhar marcadores em suas posições
                // Atribua a cada unidade um marcador exclusivo
                _markername = format ["indiCamMarker%1",_x];
                _markername = createMarkerLocal [_markername,(posição _x)]; 
                _markername setMarkerShapeLocal "ICON"; 
                _markername setMarkerTypeLocal "hd_dot";
                _markername setMarkerSizeLocal [1,1];
                _markerArray pushBack _markername;
            
                // Dependendo dos atributos, dê ao marcador forma, cor e texto
                if ((side _x) == WEST) then {_markername setMarkerColorLocal "ColorWEST"};
                if ((side _x) == EAST) então {_markername setMarkerColorLocal "ColorEAST"};
                if ((lado _x) == resistência) então {_markername setMarkerColorLocal "ColorGUER"};
                if ((lado _x) == civil) então {_markername setMarkerColorLocal "ColorCIV"};
                if ((vehicle _x isKindOf "Car")) then {_markername setMarkerTextLocal "Car";};
                if ((vehicle _x isKindOf "Tank")) then {_markername setMarkerTextLocal "Tank";};
                if ((veículo _x isKindOf "Helicóptero")) then {_markername setMarkerTextLocal "Helicóptero";};
                if ((veículo _x isKindOf "Avião")) então {_markername setMarkerTextLocal "
                if ((vehicle _x isKindOf "Ship")) then {_markername setMarkerTextLocal "Ship";};
                if (isPlayer _x) então {_markername setMarkerColorLocal "ColorYellow";_markername setMarkerTextLocal "um jogador";};
                if (_x == ator) então {_markername setMarkerColorLocal "ColorOrange";_markername setMarkerTextLocal "ator atual";};
                if ((_x == ator) && (isPlayer _x)) then {_markername setMarkerColorLocal "ColorOrange";_markername setMarkerTextLocal "ator atual (um jogador)";};
                
            } foreach _unitArray;

            dormir 0,25; // Esta é a frequência de atualização do script. onEachFrame não deu certo.
        
            { // Exclua todos os marcadores antes de desenhá-los novamente
                deleteMarkerLocal _x;
            } foreach _markerArray;
            
        };
        
        if (indiCam_debug) então {systemChat "parando marcadores..."};

    };

    Comente "------------------------------------------------ -------------------------------------------";
    comente "seleção e atribuição de atores no mapa";
    Comente "------------------------------------------------ -------------------------------------------";
    openMap [verdadeiro, falso]; // Força uma abertura suave do mapa
    indiCam_var_mapOpened = addMissionEventHandler ["Mapa",{mapClosed = true;indiCam_var_showMarkers = false;}];

    mapaFechado = false;
    onMapSingleClick { // Usando a versão antiga deste EH, isso é ruim?
        private _friendlyUnitsData = [];
        private _allUnitsData = [];

        { // forEach que divide todas as unidades em arrays separados dependendo se queremos todos ou apenas amistosos
        
            if (!indiCam_var_mapselectAll) then {// Isso é para quando o ator só pode estar do mesmo lado que o cinegrafista

                if (side _x == side player) then {_friendlyUnitsData pushBack [_x,(getPos _x distance2D _pos)]};
                _friendlyUnitsData classificação true;
                ator = ((_friendlyUnitsData selecione 0) selecione 0); // Define a unidade mais próxima da posição clicada como ator

            } else {// Isso é para quando o ator pode ser selecionado de qualquer unidade
            
                _allUnitsData pushBack [_x,(getPos _x distance2D _pos)];
                _allUnitsData classificação true;
                ator = ((_allUnitsData selecione 0) selecione 0); // Define a unidade mais próxima da posição clicada como ator

            };

        } forEach allUnits;
        
        formato da dica ["Ator definido como: %1",ator];
        
    };

    aguarde até {mapa fechado};
    removeMissionEventHandler ["Mapa", indiCam_var_mapOpened];
    onMapSingleClick {}; // colchetes vazios param o manipulador de eventos?

};


Comente "------------------------------------------------ -------------------------------------------------- -----";
comente "cena do ator morto";
Comente "------------------------------------------------ -------------------------------------------------- -----";
indiCam_fnc_actorDeath = {
// Execute esta cena deathcam até o fim. O novo ator será selecionado no loop principal depois que ele for executado

    /* DEBUG */ if (indiCam_debug) then {systemChat "bem-vindo à câmera da morte"};

    desanexar indiCam;
    indiCam camSetPos (getPos indiCam);
    ator indiCam camSetTarget;
    indiCam camSetFov 0.3;
    indiCam camCommit 5;
    waitUntil {camCommitted indiCam};
    dormir 5;

    indiCam_var_actorDeathComplete = verdadeiro;

};


 

 

On 23/09/2018 at 18:50, GEORGE FLOROS GR said:

 

eu entendo, uma câmera cinematográfica no jogo. Já vi isso em muitos jogos.

Se eu encontrar algo eu vou te dizer!

hello , I address the arma 3 creation masters , I am a beginner but I can create good triggers and use third - party scripts such as rescuing hostages , animations etc but I wanted to unite two different missions inside the mission folder after my end missiom on the same map , is it possible?

 

 

Share this post


Link to post
Share on other sites

Hello @game cardoso. Welcome on forum.

First of all, you must read some basic rules about this forum:

- Do not necro old posts;

- Do not hack any topic for unrelated question;

- Do not double post!

- use English language only (deactivate auto-translation);

- avoid copying / pasting codes for nuts.

 

For your future searches, use key word's) in upper right search field (near notice bell).
You have also useful links, usually pinned at the start of the pages and one I recommend is :

 

 

 

Now, for your goal, I'm not sure what you need exactly, you have solutions like:

- merging two scenarios (you created) in 3den by clicking on scenario menu (the first one) then merge. Mind for exact same mods and map.

- you can create a campaign. See tutos like: https://www.youtube.com/watch?v=BIvLIg6gQB0

 

Have fun with Arma

 

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×