ARMA2 BASIC BRIEFING OPAS - coop ja a&d

Keskustelu Arma I-, II- ja III- sekä OFP-tehtävistä

Moderators: Kegetys, Broileri, Raunhofer

Post Reply
User avatar
Raunhofer
Personnel
Posts: 1520
Joined: Thu, 24.7.2008, 15.12
Location: Oulu
Contact:

Post by Raunhofer » Thu, 30.7.2009, 21.24

Terve,

Käyn tässä oppaassa läpi, kuinka coopin saatika a&d:n brieffi tehdään.

*****************
*****************

YLEISTÄ

Toimivaan briefingiin tarvitset 3 tiedostoa:
init.sqf
briefing.sqf // VAIHTOEHTOINEN (Voit tehdä briefing.sqf:n sisällön myös init.sqf:ään, mutta omasta mielestäni tämä epäselkeyttää)
briefing.html

Luo nämä tiedostot nyt (tehtäväsi kansioon (samainen kansio jossa löytyy mission.sqm))

Init.sqf tiedostoon tarvitset seuraavan rivin: execVM "briefing.sqf";

Esimerkki init.sqf tiedostosta:

Code: Select all

setViewDistance 2000;
execVM "briefing.sqf";
*****************
*****************

COOP
Coop tehtävässä käytössä pelaajilla on vain 1 puolue, joten briefingin teko on suhteellisen yksinkertaista.

Seuraavia kohtia tarvitsemme:

ARMA2:ssa NOTES kohtaan menevät:

Code: Select all

 _t = _x createDiaryRecord["Diary", ["Briefing", "OMA BRIEFING TÄHÄN"]];
Huomaathan, että kohtia voi olla useitakin! Muuta vain Briefing joksikin muuksi, esim 'Our equipments' on hyvä olla.

Code: Select all

 _t = _x createSimpleTask["Nimeä tehtävä (lyhyesti)"];
Tärkein kohta, joka näkyy TASKS välilehdessä ARMA2ssa. Huomaathan että objekti_1 on vain minun keksimä nimi tehtävälle. Saat itse nimetä, kunhan välejä ei ole eikä kummallisia merkkejä.

Code: Select all

_t setSimpleTaskDescription["description","descriptionShort", "descriptionHUD"];
HUD Kohta näkyy waypointin tekstinä. (es. Destroy)
descriptionShort näkyy taskin "nimenä" ja myös [ set as current task ] tekstinä ylhäällä.

Kartta merkintöjen liittäminen taskeihin.

Code: Select all

_t setSimpleTaskDestination (getMarkerPos "KARTTA MARKERIN NIMI");
SEURAAVAKSI ESITTELEN HYVÄN POHJAN NIIN COOP, A&D KUIN KAIKKEEN MUUHUNKIN KIVAAN.
Turhaltahan se tuntuu joka kerta brieffi uudelleen kirjoittaa, joten jos haluat niin käytä tätä pohjaa jokaisessa
tehtävässäsi.

Jos kyseessä on coop, tarvitset vain sen yhden puoleen osion, jossa pelaaja on. A&Dssa taas tietenkin teet
niin monta puoluetta brieffiin kuin tarve.

Code: Select all


//VOIT TEHDÄ RIVINVAIHDON: <br />
//VOIT LISÄTÄ KUVAN: <img image='KUVA.jpg'/>

switch (side player) do 
{
	
	case WEST:
	{
	  _t = _x  createDiaryRecord["Diary", ["Briefing", "SELOSTUS KOKO TEHTÄVÄSTÄ"]];
	  _t = _x  createDiaryRecord["Diary", ["Equipment", "VAIHTOEHTOINEN SELOSTUS. TÄSSÄ ESIMERKISSÄ 'Equipment', MUTTA VOI OLLA MITÄ VAIN"]];

	_t = _x createSimpleTask["OBJEKTI 1 NIMI"];
	_t setSimpleTaskDescription["TEHTÄVÄN 1 SELOSTUS (PITKÄ)","TEHTÄVÄN 1 SELOSTUS (LYHYT)", "HUD TEKSTI"];
	_t setSimpleTaskDestination (getMarkerPos "MARKERIN_1_NIMI");

	_t = _x createSimpleTask["OBJEKTI 2 NIMI"];
	_t setSimpleTaskDescription["TEHTÄVÄN 2 SELOSTUS (PITKÄ)","TEHTÄVÄN 2 SELOSTUS (LYHYT)", "HUD TEKSTI"];
	_t setSimpleTaskDestination (getMarkerPos "MARKERIN_2_NIMI");



	}; foreach playableunits;


	case RESISTANCE:
	{





// ASETA RESISTANCEN (INDEPENDENT) BRIEFINGIT TÄHÄN, MUULLOIN PYYHI POIS.






	}; foreach playableunits;


	case EAST: 
	{




// ASETA EAST (OPFOR) BRIEFINGIT TÄHÄN, MUULLOIN PYYHI POIS.






	}; foreach playableunits;

	case CIVILIAN: 
	{




// ASETA CIVILIAN (CIVILIANS) BRIEFINGIT TÄHÄN, MUULLOIN PYYHI POIS.






	}; foreach playableunits;
};




Aukaise briefing.html, jossa määrittelemme viestit, jotka pelaaja saa tehtävän päätyttyä.

Alkuun pistämme joitain pakollisia riviä ja tehtävän nimen. Briefing.html toimii HTML:n säännöin.
Määrittelemme myös mitä eri END#x vaihtoehdoista tapahtuu.

Code: Select all

<html> 

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>[b]TEHTÄVÄN OTSIKKO[/b]</title> 
</head> 

<body bgcolor="#FFFFFF"> 

[CODE]
<! --- START DEBRIEF --->
<hr>
<br>
<h2><a name="Debriefing:End1">[b]Voittoselostuksen otsikko (es. Mission completed!][/b]</a></h2>
<br>
<p>
[b]Tähän tulee voittoteksti, eli esimerkiksi "well done soldier! You have done well my bro! Enemy tänks är döwn" tjsp.[/b]
</p>
<br>

<hr>
<br>
<h2><p><a name="Debriefing:End2">[b]Voittoselostuksen otsikko (es. Mission completed!][/b]</a></p></h2>
<br>
<p>
[b]Tähän tulee voittoteksti, eli esimerkiksi "well done soldier! You have done well my bro! Enemy tänks är döwn" tjsp.[/b]
</p>
<br>

<hr>
<br>
<h2><p><a name="Debriefing:End3">[b]Voittoselostuksen otsikko (es. Mission completed!][/b]</a></p></h2>
<br>
<p>
[b]Tähän tulee voittoteksti, eli esimerkiksi "well done soldier! You have done well my bro! Enemy tänks är döwn" tjsp.[/b]
</p>
<br>

<hr>
<br>
<h2><p><a name="Debriefing:End4">[b]Voittoselostuksen otsikko (es. Mission completed!][/b]</a></p></h2>
<br>
<p>
penis
</p>
<br>

<hr>
<br>
<h2><p><a name="Debriefing:End5">[b]Voittoselostuksen otsikko (es. Mission completed!][/b]</a></p></h2>
<br>
<p>
[b]Tähän tulee voittoteksti, eli esimerkiksi "well done soldier! You have done well my bro! Enemy tänks är döwn" tjsp.[/b]
</p>
<br>

<hr>
<br>
<h2><p><a name="Debriefing:End6">[b]Voittoselostuksen otsikko (es. Mission completed!][/b]</a></p></h2>
<br>
<p>
[b]Tähän tulee voittoteksti, eli esimerkiksi "well done soldier! You have done well my bro! Enemy tänks är döwn" tjsp.[/b]
</p>
<br>

<hr>
<br>
<h2><a name="Debriefing:loser">[b]Tappioselostuksen otsikko (es. Mission completed!][/b]</a></h2>
<br>
<p>
[b]Tähän tulee voittoteksti, eli esimerkiksi "well done soldier! You have done well my bro! Enemy tänks är döwn" tjsp.[/b]
</p>
<br>
<! --- END DEBRIEF --->
Jos endejä on 1, yksinkertaisesti jätä tyhjiksi muut. Huomaathan että tappiotekstit voi olla myös END2 kohdassa, jos se on esimerkiksi 'väärä' tapa voittaa.

*****************
*****************

Valmis. Sulje briefing.sqf ja pelaa

Huomaathan, että objektien numerot ovat eripuolilla erit, sillä hehän suorittavat eri tehtäviä. 'objekti_1' 'objekti_2' ei suinkaan merkkaa tehtäväjärjestystä tms...
Jos tehtävässä on useampia objekteja, merkkaa ne seuraavasti:


*****************
*****************

Kuinka saan objectiven tehdyksi, kun tehtävä on suoritettu?

Esimerkkinä tehtävä, jossa vihollisen vaunu pitää tuhota:

1. Minulla on trigger jonka condition on !alive tankki (eli kun tankki tuhoutuu, triggeri aktivoituu)
2. onAct kohdassa minulla on hint "TANKKI ON TUHOTTU! TEHTÄVÄ SUORITETTU!"; objekti_1 setTaskState "SUCCEEDED";
3. Valmis.

Eli OBJEKTIN_NIMI setTaskState "OBJEKTIN TILANNE";
Objektit voivat olla: SUCCEEDED, FAILED, CANCELED

Nyt objekti_1 merkitään tehdyksi kun 'tankki' on tuhottu!




Muista että brieffien teossa pitää kirjoittaa paljon, joten typojakin ilmestyy. Tarkista brieffit useaan otteeseen ja jos brieffi ei toimi, on kyseessä mitä luultavimmin typo jossain.

ARMA2:ssa tunnettu bugi, jossa brieffit katoaa jos serverillä on respawn/JIP on mahdollista myös korjata, mutta en käy sitä läpi tässä BASIC oppaassa.

Toivottavasti oli jotain apua jollekkin![/color]



Edited By Raunhofer on 1262944107
Luutnantti Raunhofer
Reserved Detachment CO
Spinoza
Posts: 1113
Joined: Thu, 6.9.2007, 20.59
Location: AFK

Post by Spinoza » Thu, 17.6.2010, 2.39

Ei näemmä tykkää ääkkösistä.
Pain is inevitable. Suffering is optional.
Shuko
Posts: 408
Joined: Sun, 12.7.2009, 21.09
Location: Forssa
Contact:

Post by Shuko » Thu, 17.6.2010, 6.43

En nyt varmaksi muista, joten parempimuistiset korjatkoon, mutta jotenkin näin se meni:

Avaat briefing.sqf notepadilla, laitat ääkköset ja sitten save as ja valitset alhaalta encoding kohdasta ANSI sijasta Unicode.
Spinoza
Posts: 1113
Joined: Thu, 6.9.2007, 20.59
Location: AFK

Post by Spinoza » Thu, 17.6.2010, 9.48

Jaa-a, vielä kun tietäisi kuinka tuo kaikki tehdään, en ole ikinä mitään ansseja tai unicoodeja räplännyt. Saati ääkkösiä.

_t = _x createDiaryRecord["Diary", ["Briefing", xxx"]];

Tuo ei ainakaan mulla toiminut

player createDiaryRecord["Diary", ["BRIEFING",

tuo toimi.




Edited By Spinoza on 1276759503
Pain is inevitable. Suffering is optional.
Shuko
Posts: 408
Joined: Sun, 12.7.2009, 21.09
Location: Forssa
Contact:

Post by Shuko » Thu, 17.6.2010, 11.21

briefing.sqf

Code: Select all

waituntil {!isnull player};

task1 = player createSimpleTask["OBJEKTI 1 NIMI"];
task1 setSimpleTaskDescription["TEHTÄVÄN 1 SELOSTUS (PITKÄ)","TEHTÄVÄN 1 SELOSTUS (LYHYT)", "HUD TEKSTI"];

task2 = player createSimpleTask["OBJEKTI 2 NIMI"];
task2 setSimpleTaskDescription["TEHTÄVÄN 2 SELOSTUS (PITKÄ)","TEHTÄVÄN 2 SELOSTUS (LYHYT)", "HUD TEKSTI"];
Muuta ei tarvitse, mutta jos haluaa ympyränmuotoiset, väriä taskin tilan mukaan vaihtavat, markerit, joita ei marker-valikosta löydy. Niin, ne onnistuu tällä tavalla:

Code: Select all

task1 setSimpleTaskDestination (getMarkerPos "MARKERIN_1_NIMI");
Ko. markeri on mielellään Empty tyyppinen, jotta ei tule kahta päällekkäin.

Notes-osioon tekstin lisääminen onnistuu näin:

Code: Select all

player createDiaryRecord["Diary", ["Briefing", "SELOSTUS KOKO TEHTÄVÄSTÄ"]];
player createDiaryRecord["Diary", ["Equipment", "VAIHTOEHTOINEN SELOSTUS. TÄSSÄ ESIMERKISSÄ 'Equipment', MUTTA VOI OLLA MITÄ VAIN"]];
[/color]



Edited By Shuko on 1276762923
Shuko
Posts: 408
Joined: Sun, 12.7.2009, 21.09
Location: Forssa
Contact:

Post by Shuko » Thu, 17.6.2010, 11.33

Ääkköset briifiin:

1. Avaa Notepadilla briefing.sqf
2. Tallenna nimellä (File>Save as)
3. Valitse tiedostopäätteeksi *.*

Image

4. Vaihda tiedoston koodausmuoto ANSI:sta Unicodeksi.

Image

5. Tallenna (Save)
Shuko
Posts: 408
Joined: Sun, 12.7.2009, 21.09
Location: Forssa
Contact:

Post by Shuko » Tue, 29.6.2010, 18.32

Yksinkertaisin briifin luontitapa.

init.sqf-tiedostoon:

Code: Select all

[] spawn {
waituntil {!isnull player};
task1 = player createSimpleTask ["task1"];
task1 setSimpleTaskDescription ["Tekstikentta","Taskin nimi listalla",""];
task2 = player createSimpleTask ["task2"];
task2 setSimpleTaskDescription ["Tekstikentta","Taskin nimi listalla",""];
};
Triggerissa onAct-kentässä sitten vain:

Code: Select all

task1 settaskstate "succeeded"
[/color]
Post Reply