Blog destinado ao compartilhamento de técnicas de edição de missões para a série Armed Assault

domingo, 3 de julho de 2011

Briefing e objetivos com Taskmaster

A seguir, apresento um jeito muito fácil de lidar com briefings e objetivos:
Nesse exemplo usarei o taskmaster v 0.91, disponível em http://www.armaho...hp?id=7377

1- Primeiramente, baixe a versão mais recente do taskmaster e copie o arquivo "briefing.sqf" para a pasta em que estão gravados os demais arquivos da sua missão.

2- Copie o arquivo "briefing.html" do taskmaster para a pasta da sua missão.

3- Abra o arquivo "briefing.html" usando o notepad. Vai aparecer algo assim:


<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">

<title>Title</title>
</head>

<body bgcolor="#FFFFFF">
<! -----DEBRIEFING----->
<hr>
<br>
<h2><a name="Debriefing:End1">Mission accomplished</a></h2>
<br>
<p>
<! ------victory------>
Well done!
</p>
<br>

<hr>
<br>
<h2><a name="Debriefing:End2">Failed</a></h2>
<br>
<p>
<! ------KIA------>
That didnt go quite as planned.
</p>
<br>

<! -----DEBRIEFING END----->

</body>
</html>


4- Edite os campos destacados em vermelho, inserindo as mensagens para o debriefing que aparece quando a missão é concluída com êxito ou não. Grave o arquivo.


5 - Para definir os objetivos e notas no taskmaster, você precisará utilizar a seguinte syntax:


[[
    [Task1Data],
    [Task2Data]
  ],[
    [Note1Data],
    [Note2Data]
  ]] execvm "briefing.sqf";


6- Parece complicado, mas não é. Veja, cada taskdata é uma matriz composta dos seguintes parâmetros:

[Condição,"Nome da tarefa", ["Descrição", "Descrição curta", "HUD desc"], Marca]

Exemplo:

["true","OBJ2",["Destruir o <marker name='zu'>ZU-23</marker>.","Destruir o ZU-23","Destruir"],zu],

true
Essa condição faz com que o briefing apareça para todos os jogadores, independentemente de sua facção ou grupo.
Se você quiser que essa nota apareça somente para os jogadores aliados dos americanos, substitua a condição "true" por "WEST".
Da mesma forma, se for somente para os Russos e seus amigos, substitua "true" por "EAST".
Se você quiser que a tarefa apareça somente para membros de um grupo, substitua "true" por "nome do grupo".
São várias as possibilidades, nesse exemplo, "(typeof _x == ""CDF_Soldier_Sniper"")" a tarefa aparecerá somente para os sniper dos CDF.

OBJ2
É o nome da minha tarefa. Poderia ser qualquer outro. É uma variável que será usada no editor para definir se a tarefa foi concluída ou não.

Destruir o <marker name='zu'>ZU-23</marker>
Esse é o texto que aparecerá na descrição da tarefa. Incluí uma marca para ajudar na localização do objetivo durante o jogo.


Destruir o ZU-23
Esse é o título da tarefa que aparecerá no briefing.

Destruir
Esse texto (HUD) aparecerá na tela quando o modo de jogo estiver em recruit e a tarefa destruir estiver selecionada no briefing como atual.

zu
Esse é no nome da marca que foi inserida no editor para que seja localizado o objetivo.


Poderão ser inseridas várias tarefas, sempre mantendo a syntax. Observe que a última tarefa não tem vírgula no final da linha.


7 - Cada nota é composta por:

[Condição, ["Título", "Texto"]]

Exemplo:


["true",["Creditos","Missao editada por Jorge."]]


true
Essa condição faz com que o briefing apareça para todos os jogadores, independentemente de sua facção ou grupo.
Se você quiser que essa nota apareça somente para os jogadores aliados dos americanos, substitua a condição "true" por "WEST".
Da mesma forma, se for somente para os Russos e seus amigos, substitua "true" por "EAST".
Se você quiser que a tarefa apareça somente para membros de um grupo, substitua "true" por "nome do grupo".
São várias as possibilidades, nesse exemplo, "(typeof _x == ""CDF_Soldier_Sniper"")" a tarefa aparecerá somente para os sniper dos CDF.

8 - 5 - Abra ou crie o arquivo "init.sqf" na pasta da sua missão e insira as tarefas e notas. Ficará parecida com isso:


[[
    ["true","OBJ1",["Localize e Resgate os <marker name='pil'>pilotos</marker> do Cobra que foi abatido. Elimine todos os guardas para liberta-los.","Resgatar os pilotos","Resgatar"], pil],
    ["true","OBJ2",["Destruir o <marker name='zu'>ZU-23</marker>.","Destruir o ZU-23","Destruir"],zu],
    ["true","OBJ3",["Eliminar a presenca inimiga no <marker name='deposito'>deposito</marker> de armas e veiculos.","Limpar o deposito","deposito"], deposito],
    ["true","OBJ4",["Invadir o <marker name='hq'>HQ</marker> inimigo e limpar a zona norte de Berezino.","Limpar Berezino","HQ"], hq],
    ["true","OBJ5",["Seguir para o ponto de <marker name='mkrExtraction'>extracao</marker> e deixar a cidade rumo ao sul, antes que os reforcos inimigos cheguem.","Evadir pelo sul","Evadir pelo sul"], mkrExtraction]
  ],[
    ["true",["Situacao","Em uma patrulha de rotina, um cobra foi abatido nas proximidades de Berezino. Os pilotos conseguiram ejetar a tempo, porem foram capturados pelos inimigos. Foram levados a um predio comercial no centro de Berezino para serem interrogados. Descobrimos que em Berezino encontra-se o deposito de armas, municoes e veiculos dos insurgentes. O local esta fortemente protegido por artilharia anti-aerea e patrulhas de infantaria."]],
    ["true",["Plano","Resgatar os pilotos e acabar com a presenca inimiga em Berezino. Seremos inseridos a sul da cidade em um Knight Hawk. O grupo de reconhecimento procurara pelos pilotos nos predios proximos ao local da queda do helicoptero, enquanto o grupo de fuzileiros dara suporte e destruira a artilharia anti-aerea nas imediacoes. Os snipers procurarao uma posicao favoravel para dar suporte aos demais. Apos libertarem os pilotos, todo o grupo devera seguir para o deposito de armas e municoes para juntos limparem o local e abrirem caminho para os pilotos roubarem um KA-52. Na sequencia, todos seguirao rumo ao norte para terminar o servico de limpeza com o apoio aereo do Helicoptero roubado pelos pilotos. O helicoptero deve levantar voo somente apos a eliminacao das armas antiaereas localizadas proximo ao deposito e sobre o HQ inimigo. Concluido o trabalho em Berezino, o grupo devera se dirigir ao local de extracao onde um helicoptero de transporte de tropas ou um caminhao russo se encontram. Fujam rumo ao sul, antes que o reforço inimigo chegue a Berezino."]],
    ["true",["Creditos","Missao editada por Jorge."]]
  ]] execvm "briefing.sqf";


9 - Grave o arquivo e pronto. O briefing está concluído.

10 - Para ativar a conclusão das tarefas, você poderá incluir triggers na missão com diversas condições para ativação.
O que importa é que no campo activation do trigger correspondente a sua tarefa, você inclua o seguinte código:


nul = ["OBJ1","succeeded"] call TASKMASTER_upd;


OBJ1
É o nome da sua tarefa, definido no item 6.


11 - Depois que cada tarefa for associada a um trigger ou outro meio de ativação, você poderá criar um trigger que verificará o status atual de cada objetivo e terminará a missão quando todas as tarefas forem concluídas.

Nesse trigger você deve definir type "END #1" e inserir no campo condition o seguinte:

(objOBJ1 == "succeeded") and (objOBJ2 == "succeeded") and (objOBJ3 == "succeeded")
and (objOBJ4 == "succeeded") and (objOBJ5 == "succeeded")


Onde a parte grifada em vermelho é o nome de cada tarefa sua definida no item 6.
Assim, quando todas as tarefas estiverem com o status "succeeded", a missão terminará.



Esse é só um exemplo básico, mas bastante prático para iniciantes.
E o bom é que é totalmente compatível com multiplayer, inclusive Join in Progress.

Nenhum comentário:

Postar um comentário