Misja za misją

Edytor Arma (Arma, Arma2, Arma2OA)

Moderatorzy: kondor, Inkwizytor

ODPOWIEDZ
totalport
Posty: 3
Rejestracja: 26 maja 2012, 22:58
ID Steam:

Misja za misją

Post autor: totalport »

Witam próbuje stworzyć własną misje wiec
mam 2 zadania lecz gdy zrobie pierwsze to drugie w ogóle mi sie nie wyswietla lecz jezeli je wykonam to pokazuje ze misja wykonana :D macie jakies pomysły porady ?? a i jeszcze misje w briefing.sqf powinny byc ustawione
3
2
1 tak?? bo jezeli tak ustawiam to zaczyna mi od 3 :D no i oczywiscie po zrobieniu jednej misji drugiej nie wyswietla
Awatar użytkownika
Slawek
Posty: 819
Rejestracja: 18 grudnia 2009, 00:42
ID Steam: EC_Zadra
Numer GG: 11973988
Lokalizacja: Opole
Kontakt:

Re: Misja za misją

Post autor: Slawek »

mechanika-misji-edytor, reszta w dziale "Poradniki" na tej stronie.
Obrazek..Obrazek
In Game: Zadra, [EC] Slawek Obrazek
TeamSpeak3 dla graczy Arma - ArmaPL lub 212.91.26.150:7891
totalport
Posty: 3
Rejestracja: 26 maja 2012, 22:58
ID Steam:

Re: Misja za misją

Post autor: totalport »

Przepraszam Cie ale już tam zaglądałem i nic z tego nie wynika :( no tyl co ja juz próbowałem ...... wstawie pliki a wy sprawdziicie co jest nie tak ok??
oto briefing.sqf

Kod: Zaznacz cały

player createDiaryRecord ["Diary", ["Odprawa", "ble ble ble"]];
  
tskobj_1 = player createSimpleTask["Zabij Zwiadowce"];
tskobj_1 setSimpleDescription ["Zabij Zwiadowce żeby zakończyć zadanie."];
tskobj_1 settaskstate "Created";

player createDiaryRecord ["Diary1212", ["Odprawa121", "ble ble ble"]];  
tskobj_2 = player createSimpleTask["Wyeliminuj Straznikow"];
tskobj_2 setSimpleDescription ["Zabij dwoch straznikow by zakonczyc zadanie."];
tskobj_2 settaskstate "Created";
description.ext

Kod: Zaznacz cały

// Mission Header
class Header
{
gameType = Coop;
};
onLoadMission = "EAGLE EYE";
OnLoadMissionTime = FALSE;
init.sqf

Kod: Zaznacz cały

//begin init.sqf

//Add briefing
execVM "briefing.sqf";

if(true) exitWitch[];
a to wyciągi z gry

po zabiciu pierwszego straznika komunikat:
http://zapodaj.net/8e0db11ceefda.png.html


komunikat o wykonaniu misji "zadanie wykonane"i powinno zacząc sie drugie zadanie ale ... lipa
http://zapodaj.net/ce923f2d3fbd9.png.html

to juz druga misja
http://zapodaj.net/1de62a8b285e6.png.html
co ciekawe nie pokazuje jej ale jak sie zabije tego kolesia to zadanie wykonane :D

i zakoncznie

http://zapodaj.net/3cf6330b9eb77.png.html

Proszę o pomoc
tom3kb
Posty: 511
Rejestracja: 04 marca 2011, 06:30
ID Steam:
ID gracza: 209283
Lokalizacja: Sieradz

Re: Misja za misją

Post autor: tom3kb »

Odnośnie kolejności "zadań" w misji to masz rację, że wyświetlają się od najwyższego do najniższego czyli 4,3,2,1 (taskobj_3, task_obj2 itd). możesz je oczywiście wstawiać po kolei jak u ciebie:
i dodać numerki przy opisie zadań, żeby wiedzieć po kolei, które wykonywać.

twoja wersja:

Kod: Zaznacz cały

tskobj_1 = player createSimpleTask["Zabij Zwiadowce"];
tskobj_1 setSimpleDescription ["Zabij Zwiadowce żeby zakończyć zadanie."];
tskobj_1 settaskstate "Created";

player createDiaryRecord ["Diary1212", ["Odprawa121", "ble ble ble"]];
tskobj_2 = player createSimpleTask["Wyeliminuj Straznikow"];
tskobj_2 setSimpleDescription ["Zabij dwoch straznikow by zakonczyc zadanie."];
tskobj_2 settaskstate "Created";

tskobj_1 = player createSimpleTask["[color=#BF0000]1[/color]. Zabij Zwiadowce"];
tskobj_1 setSimpleDescription ["Zabij Zwiadowce żeby zakończyć zadanie."];
tskobj_1 settaskstate "Created";
Z dodatkową numeracją

Kod: Zaznacz cały

player createDiaryRecord ["Diary1212", ["Odprawa121", "ble ble ble"]];
tskobj_2 = player createSimpleTask["[color=#BF0000]2[/color]. Wyeliminuj Straznikow"];
tskobj_2 setSimpleDescription ["Zabij dwoch straznikow by zakonczyc zadanie."];
tskobj_2 settaskstate "Created";
Co do warunków w wyzwalaczach to zaraz sobie przejże i może coś wymyślę.
Ps: poniżej przykład jednego z moich briefingów z jednej z kampanii moze też się przyda:

Kod: Zaznacz cały

waitUntil {!(isNull player)};
waitUntil {player==player};
switch (side player) do
{
case resistance:
{
player createDiaryRecord ["Diary",["Information","Takistani Army 7 days ago kill 57 men in your village. After this you join to one of Royalist insurgent squads that fight against col. Aziz. Today you will fight first time with new freinds."]];
player createDiaryRecord ["Diary",["Mission","Our target, small outpost in <marker name='c3'>Rawanaj</marker>. First you attack <marker name='c1'>enemy patrol</marker>. Then you will wait for enemy <marker name='c2'>reinforcements</marker>, you will make an ambush on them. Your last task, kill all soldier in this <marker name='c3'>village</marker>."]];
player createDiaryRecord ["Diary",["Enemy forces","Probably 30-40 men."]];

tskObj1=player createSimpleTask ["1. Patrol."];
tskObj1 setSimpleTaskDescription ["Eliminate enemy <marker name='c1'>patrol</marker>.","1. Patrol.",""];
tskObj1 setSimpleTaskDestination (getMarkerPos "c1");

tskObj2=player createSimpleTask ["2. Reinforcements."];
tskObj2 setSimpleTaskDescription ["Eliminate all enemy <marker name='c2'>reinforcements</marker>.","2. Reinforcements.",""];
tskObj2 setSimpleTaskDestination (getMarkerPos "c2");

tskObj3=player createSimpleTask ["3. Outpost."];
tskObj3 setSimpleTaskDescription ["Destroy enemy <marker name='c3'>outpost</marker>, kill all enemy soldiers.","3. Outpost.",""];
tskObj3 setSimpleTaskDestination (getMarkerPos "c3");

tskObj4=player createSimpleTask ["4. Run away."];
tskObj4 setSimpleTaskDescription ["Hide in the <marker name='c4'>mountains</marker>.","4. Run away.",""];
tskObj4 setSimpleTaskDestination (getMarkerPos "c4");

}};
Awatar użytkownika
tasior2103
Posty: 83
Rejestracja: 10 kwietnia 2010, 19:45
ID Steam:
ID gracza: 0
Kontakt:

Re: Misja za misją

Post autor: tasior2103 »

A dlaczego tego trochę nie uprościsz?

W pliku briefing.sqf wpisujesz tylko pierwsze zadanie.

Kod: Zaznacz cały

player createDiaryRecord ["Diary", ["Odprawa", "ble ble ble"]];
  
tskobj_1 = player createSimpleTask["Zabij Zwiadowce"];
tskobj_1 setSimpleDescription ["Zabij Zwiadowce żeby zakończyć zadanie."];
tskobj_1 settaskstate "Created";
W warunku wyzwalacza wpisujesz: NOT (alive enemy1)
A w polu aktywacji: tskobj_1 setTaskState "SUCCEEDED"; obj_1=true; - i dopiero teraz dodajesz drugie zadanie, czyli:

Kod: Zaznacz cały

tskobj_2 = player createSimpleTask["Wyeliminuj Straznikow"];
tskobj_2 setSimpleDescription ["Zabij dwoch straznikow by zakonczyc zadanie."];
tskobj_2 settaskstate "Created";
Możesz to wpisać w polu aktywacji wyzwalacza lub stworzyć sobie plik np. briefing2.sqf i w polu wyzwalacza wpisać tylko : nul=[this] execVM "briefing2.sqf"
I w tym momencie w misji pojawi ci się drugie zadanie.

Teraz drugie zadanie:
Musisz zabić 2 gości, wiec :
w warunku wyzwalacza : NOT (alive enemy2) AND NOT (alive enemy3)
w polu aktywacji : tskobj_2 setTaskState "SUCCEEDED"; obj_2=true;

Teraz zakończenie misji :
Stawiasz kolejny wyzwalacz.
W warunku : obj_1 AND obj_2;
W polu aktywacji : ForceEnd;
http://www.armafans.pl
<ze względu na drastyczne sceny ten link został usunięty>

Obrazek
tom3kb
Posty: 511
Rejestracja: 04 marca 2011, 06:30
ID Steam:
ID gracza: 209283
Lokalizacja: Sieradz

Re: Misja za misją

Post autor: tom3kb »

Jasne, ze tak można ale jak tak jakoś z przyzwyczajenia robię od lat (nauczyłem się w OFP i tak mi zostało, wiem że sporo rzeczy można łatwiej zrobić). Problem rozwiązaliśmy tutaj:
http://www.forum.armacenter.pl/viewtopi ... sc&start=0
ODPOWIEDZ

Wróć do „Edycja oraz tworzenie misji, skrypty oraz programowanie”