Koniec misji

Wszelkie pytania na temat SAIL'a i modowania OW.
Avatar de Usuario
Pawel orginal
Soldier level 1
Soldier level 1
Mensajes: 13
Registrado: Jue Mar 20, 2008 2:29 pm
Ubicación: Radom

Koniec misji

Mensaje por Pawel orginal »

mam taki problem w sailu!
co mam wpisać,aby zakończyć misję po dojściu do danej areii???:oops:

ps: Jak taki temat był już założony to dajcie linka bo szukałem i nie mogłem znaleźć

proszę o szybką odpowiedź
Avatar de Usuario
NNPlaya
Community Veteran
Community Veteran
Mensajes: 372
Registrado: Sab Oct 14, 2006 4:52 pm
Ubicación: Tuszyn, Polska
Contactar:

Mensaje por NNPlaya »

http://forum.original-war.net/viewtopic.php?t=551

Konkretnie chodzi o ostatni fragment kodu:

Código: Seleccionar todo

every 0$1 trigger IsInArea(heros,Area02) do
Begin
Case Query("Zapytanie1") of
1 : begin
ComEnterUnit(kolo1,eon);
Wait(0$3);
ComEnterUnit(kolo2,eon);
Wait(0$3);
ComEnterUnit(kolo3,eon);
Wait(0$3);
ComEnterUnit(heros,eon);
AddMedal('med1',1);
AddMedal('med2',1);
AddMedal('med3,-1); //Tutaj też -, czyli nie dostajesz medalu.
GiveMedals('Main');
RewardPeople(heros);
SaveCharacters(heros,'heros');
YouWin;
end;
2: begin
YouLost('tchorz');
end;
end;
end;
Przeróbmy go na Twoje potrzeby. Najpierw podsumujmy - potrzebna nam reakcja w postaci zakończenia misji (zakładam, że obejmuje to rówież medale i zapisywanie postaci). Ta reakcja ma mieć miejsce gdy spełniamy warunek - ktoś jest w określonej arei. Teraz przetłumaczmy to na język zrozumiały dla kompilatora SAIL.

Código: Seleccionar todo

every 0$1 trigger IsInArea(Twoj_identyfikator_postaci,Twoja_area) do //1
Begin
AddMedal('med1',1); //2
AddMedal('med2',1);
AddMedal('med3,-1); 

GiveMedals('Main'); //3

RewardPeople(Twoj_identyfikator_postaci); //4
SaveCharacters(Twoj_identyfikator_postaci,'Twoj_identyfikator_postaci_do_zapisu_w_pamięci_gry'); //5
YouWin; //6
end;
Objaśnienie sekcji po kolei:
  1. Deklaracja powtarzania co 1 sekundę (0$1 - 1 sekunda) operacji sprawdzania, czy warunek IsInArea(Twoj_identyfikator_postaci,Twoja_area) jest prawdziwy. Warunek to taka funkcja, która przyjmuje pewną liczbę argumentów(wpisuje się je w nawiasy i oddziela przecinkami) i na podstawie ich stanu zwraca wartości typu boolean - true(czyli prawdziwy warunek) bądź false w przypadku gdy warunek nie jest spełniony. Instrukcja every pozwala na reakcję tylko w przypadku spełnienia bądź nie spełnienia warunku, żeby wprowadzić jakąś reakcję gdy nie ma określonego gościa w arei należy utworzyć drugie every.
  2. W drugiej sekcji w pamięci dodawane są medale. O medalach jest nawet w poradniku dołączonym do patcha, więc sobie daruję opisywanie.
  3. Trzecia sekcja zawiera komendę wyświetlającą tablicę z medalami (oczywiście wcześniej muszą zostać dodane komendami AddMedal;). Ponownie odsyłam do poradnika załączonego do patcha.
  4. W sekcji nr 4 masz komendę RewardPeople, która jako argument przyjmuje identyfikator jednego gostka bądź grupy ludzi. Wyświetla tablicę rozdzielania doświadczenia.
  5. Piąta sekcja to nic innego jak zapisanie postaci do pamięci pod dowolnym identyfikatorem podawanym w drugim argumencie jako ciąg literowy w apostrofach.
  6. Szósta i ostatnia sekcja to instrukcja YouWin nie wymagająca argumentów; kończy ona misję wygraną.
Na koniec jeszcze na pewno zauważyłeś bloki Begin end;. Oznaczają one, że zawarte w nich kod należy do wyrażenia warunkowego, w tym przypadku every. To się tyczy większości, o ile nie wszystkich języków programowania. Akurat bloki Begin end; zaczerpnięto z Pascala, w innych językach np PHP czy C++ są one zastąpione znakami nawiasów klamrowych. To wszystko :wink:
Radzio
Site Administrator
Site Administrator
Poland
Mensajes: 2898
Registrado: Vie Jul 28, 2006 10:58 am
Ubicación: Bialystok, Poland

Mensaje por Radzio »

Wow, spadłem z krzesła. (boli!)
Niezłe wytłumaczenie kodu ;p
BTW, wpadłbyś mi pomóc z wiki na OWS'ie ;p
Avatar de Usuario
Pawel orginal
Soldier level 1
Soldier level 1
Mensajes: 13
Registrado: Jue Mar 20, 2008 2:29 pm
Ubicación: Radom

Mensaje por Pawel orginal »

:shock: :shock: :shock:
wielkie dzięki ale mam jeszcze jeden problem:
wpisuje

every 0$1 trigger (nazwa arei) do
begin
setside(nazwa arei,'bohater');
end;


aby wszystko co znajduje się w arei przeszło na moją stronę
no i wszystko wchodzi ale jak włączam grę i dochodzę tam to nic się nie dzieje
Radzio
Site Administrator
Site Administrator
Poland
Mensajes: 2898
Registrado: Vie Jul 28, 2006 10:58 am
Ubicación: Bialystok, Poland

Mensaje por Radzio »

Bo powinno być:

Código: Seleccionar todo

every 0$1 trigger IsInArea(postac,area) do
begin
SetSide(FilterUnitsInArea(area,[]),nowa_strona);
end;
Avatar de Usuario
Gothuk
Site Administrator
Site Administrator
Poland
Mensajes: 985
Registrado: Mar Sep 04, 2007 6:10 pm
Ubicación: Poland, Warsaw
Contactar:

Mensaje por Gothuk »

Tam gdzie jest nowa_strona, to wstawiasz numer nacji,
tu masz spis tych numerów:
http://forum.original-war.net/viewtopic.php?t=816

Jeśli chcesz aby jednostki przeszły na strone bohatera bez względu w jakiej się znajduje, to zrób tak:

Código: Seleccionar todo

every 0$1 trigger IsInArea(postac,area) do 
begin 
SetSide(FilterUnitsInArea(area,[]),GetSide(bohater)); 
end;
EDIT
@down, nie mogłem się powstrzymać ^^,
Radzio escribió:I kto wam kazał wstawiać wszędzie cudzysłowy
a co do cudzysłowiów to masz racje, jakoś przypadkowo wstawiły się :P.
Última edición por Gothuk el Dom Mar 23, 2008 10:38 pm, editado 1 vez en total.
Radzio
Site Administrator
Site Administrator
Poland
Mensajes: 2898
Registrado: Vie Jul 28, 2006 10:58 am
Ubicación: Bialystok, Poland

Mensaje por Radzio »

Musiałeś to dopisać ;p ?
I kto wam kazał wstawiać wszędzie cudzysłowy. Przecież tak nie pójdzie...
Avatar de Usuario
Pawel orginal
Soldier level 1
Soldier level 1
Mensajes: 13
Registrado: Jue Mar 20, 2008 2:29 pm
Ubicación: Radom

prrrrrrrrrrrrrrrrrrrrrrrroblemo

Mensaje por Pawel orginal »

mam jeszcze jeden problem!!!
przy tworzeniu misji.
kiedy w sailu i w texts wpisuje to co trzeba żeby wyświetlały się moje cele to sail chodzi i nie widzi erroru.
Lecz kiedy włączam grę to pokazują mi się cele z misji z original war.

kiedy stworzyłem 2 misję i przypisałem do misji amerykanów to miałe cele takie jakie są w grze (skrzynki przenieść na północ)



JAK TO NAPRAWIć :?: :?: :?: :?: :?: :!: :!: :!: :!:
Avatar de Usuario
NNPlaya
Community Veteran
Community Veteran
Mensajes: 372
Registrado: Sab Oct 14, 2006 4:52 pm
Ubicación: Tuszyn, Polska
Contactar:

Mensaje por NNPlaya »

Mimo kilkakrotnego przeczytania Twojego posta i usilnych chęci nic nie zrozumiałem oprócz tego, że coś celami misji jest nie tak :? Wklej kod SAILa - najlepiej w całości, to samo z texts.txt.

a i jeszcze coś...
Po kiego grzyba nadal używacie texts.txt? :roll: Przecież i tak potem będziecie musieli to kopiować do pliku wri, więc po co dorabiać sobie pracy? Bodajże od patcha 1.07 o ile mnie pamięć nie myli edytor potrafi czytać teksty także z plików wri z folderu Campaigns
Avatar de Usuario
Pawel orginal
Soldier level 1
Soldier level 1
Mensajes: 13
Registrado: Jue Mar 20, 2008 2:29 pm
Ubicación: Radom

Mensaje por Pawel orginal »

chodzi mi o to ,że kiedy tworzę mapę i przypisuje do np.2 misji amerykańskiej i do saila piszę komendę na to żeby wyświetlały się moje cele misji to wyświetlają się cele z 2 misji amerykańskiej (oryginalnej)

co tu nie rozumiesz??? :twisted:
Avatar de Usuario
Jeanks
Soldier level 6
Soldier level 6
Mensajes: 305
Registrado: Vie Feb 16, 2007 1:34 pm
Ubicación: Grudziądz

Mensaje por Jeanks »

Najpierw usun oryginalne moduły z SAIL z misji zapisz mapę i usuń moduły z folderu tej misji którą wyodrębniłes włącz "Go To Mode" i wróć odrazu do edytora zapisz iz wpisz swoj kod i powinno działac ( oczywiscie w nowym module). P

PS: Jak ci wyjdzie Misison restarting czy cos tkaiwego przy kompilownaiu to po prostu zapisz moduły i mape i otwórz ją spowrtoem wtedy kompilacja jest mozliwa
Jeanks zgarnia wszystko ot co xD
Radzio
Site Administrator
Site Administrator
Poland
Mensajes: 2898
Registrado: Vie Jul 28, 2006 10:58 am
Ubicación: Bialystok, Poland

Mensaje por Radzio »

Jeanks escribió:włącz "Go To Mode" i wróć odrazu do edytora zapisz iz wpisz swoj kod i powinno działac
Nie rób tego, bo nie będzie dobrze!
Avatar de Usuario
Jeanks
Soldier level 6
Soldier level 6
Mensajes: 305
Registrado: Vie Feb 16, 2007 1:34 pm
Ubicación: Grudziądz

Mensaje por Jeanks »

Ja tak robię i zawsze jest dobrze.Jeżeli tego nie zrobi to w czasie gry będą się ładować kody sail które są w oryginalnej misji
Jeanks zgarnia wszystko ot co xD
Radzio
Site Administrator
Site Administrator
Poland
Mensajes: 2898
Registrado: Vie Jul 28, 2006 10:58 am
Ubicación: Bialystok, Poland

Mensaje por Radzio »

Jeanks escribió:Ja tak robię i zawsze jest dobrze.Jeżeli tego nie zrobi to w czasie gry będą się ładować kody sail które są w oryginalnej misji
Zapytaj Stu albo NNPlaya. Powiedzą ci to samo co ja.
Avatar de Usuario
Jeanks
Soldier level 6
Soldier level 6
Mensajes: 305
Registrado: Vie Feb 16, 2007 1:34 pm
Ubicación: Grudziądz

Mensaje por Jeanks »

Ale co z tego że powiedza skoro ja mówie ze to działa to jemu też podziała. Jeśli nawet nie w co wątpie to załaduje pliki od nowa ale problem
Jeanks zgarnia wszystko ot co xD
Responder