-A więc, jak zrobić selekcję? (to już wiem)
-Jak zrobić aby po selekcji niewybrane jednostki zmieniły kolor i zniknęły?(nie wiem)
-Jak zrobić selekcję, po której wybrane jednostki zmienią kolor?(nie wiem)
-Jak zrobić selekcję, która zaczyna się przed misją(tak jak w misji 11 AM itp.)(nie wiem)
Siedziałem w Mod Archive 1h i nie działały tamte kody.
Liczę na odpowiedzi...
Selekcja i po.
- Xero Rozbójca
- Soldier level 6
- Posts: 391
- Joined: Sun Mar 08, 2009 5:13 pm
- Location: Szukaj w kioskach...
Funkcja wyboru jednostek zwraca wybrane jednostki, więc, jeśli przypiszemy zmiennej 'grupa' funkcję selekcji, to przechowywać będzie ona wybrane jednostki.
Na takiej zmiennej możemy zastosować inne funkcje np. SetSide(lista,strona), by zmienić kolor itd.
Selekcję przed misją robi się tak samo jak w trakcie misji (czytaj: nie rozumiem, gdzie widzisz problem..).
[ Dodano: 15.07.2009 20:08 ]
PS: Do usuwania jednostek służy RemoveUnit(integer), do przetworzenia listy potrzeba Ci pętli for.
Na takiej zmiennej możemy zastosować inne funkcje np. SetSide(lista,strona), by zmienić kolor itd.
Selekcję przed misją robi się tak samo jak w trakcie misji (czytaj: nie rozumiem, gdzie widzisz problem..).
[ Dodano: 15.07.2009 20:08 ]
PS: Do usuwania jednostek służy RemoveUnit(integer), do przetworzenia listy potrzeba Ci pętli for.
- Xero Rozbójca
- Soldier level 6
- Posts: 391
- Joined: Sun Mar 08, 2009 5:13 pm
- Location: Szukaj w kioskach...
Właśnie,tylko nie mogę sobie tego wyobrazić, jak by to miało wyglądać.
Podaj jakiś przykład selekcji i ją opisz.
Chociaż jedną z tych co podałem.
Proszę.
A co do pętli 'for' to także nie wiem oco chodzi z tym, troche zawiłe to jest.
Edit:
Chodzi mi także o selekcję jednostek, KTÓRYCH NIE MA NA MAPIE ANI NIE MAJĄ IDENTA(przypadkowi ludzie)
Podaj jakiś przykład selekcji i ją opisz.
Chociaż jedną z tych co podałem.
Proszę.
A co do pętli 'for' to także nie wiem oco chodzi z tym, troche zawiłe to jest.
Edit:
Chodzi mi także o selekcję jednostek, KTÓRYCH NIE MA NA MAPIE ANI NIE MAJĄ IDENTA(przypadkowi ludzie)
Code: Select all
CharacterSelection(tekst:string, min:integer, max:integer, jednostki:plist, klasy:plist)
min, max - il. ludzi do wzięcia (min/max)
klasy - klasy w formie listy, np. [1,2,3,4] (wszystkie podstawowe), na które można zamienić postać (ew. zatrudnić, jeśli nie włączono możliwości zmiany); można też ograniczać ilość poszczególnych klas np. [[1,1],[4,2]], czyli można mieć 1 żołnierza i 2 naukowców
jednostki - lista jednostek do wyboru wraz z modyfikatorami, które stosują się dla wszystkich postaci wypisanych po nich
lista modyfikatorów, (default) oznacza, że są od razu zastosowane:
Przypadkowych ludzi możesz pobrać stosując funkcję FilterAllUnits (użyj szukajki, bo nie będę opisywać jeszcze tego).sel_hired - following character are hired at start (default)
sel_not_hired - following character are not hired at start
sel_changeable - player can fire/hire following characters
sel_not_changeable - player cannot fire/hire following characters (default)
sel_change_class - player can change class of following characters
sel_dont_change_class - player cannot change class of following characters (default)
sel_ignore_class_nation - following characters can be changed to class indepedning its nation
sel_dont_ignore_class_nation - following characters can be changed only to classes of its nation (default)
Jeśli chcesz działać później na wybranych jednostkach (np. zmienic ich kolor), warto je zapisać do zmiennej np.
Code: Select all
ZIOMY=CharacterSelection('xD', 2, 5, [KAPITAN_A, sel_not_hired, KAPITAN_B, sel_changeable]^GRUPA_LUDZI, [[1,1],[4,2]]);
SetSide(ZIOMY,8);
[ Dodano: 17.07.2009 17:25 ]
Żeby sprawdzić, jak rozumiesz mój przykład proszę wytłumacz mi, jak to zadziała
![Razz :P](./images/smilies/icon_razz.gif)
- Xero Rozbójca
- Soldier level 6
- Posts: 391
- Joined: Sun Mar 08, 2009 5:13 pm
- Location: Szukaj w kioskach...
Nie muszę mówić jak to działa bo wystarczy aby działało w kodzie xD
Ale dobra: twój przykład jest o tym, że:
Zamiast"Wybierz x postaci" będzie napisane "xD"
Będę mógł wybrać min. 2 ludka, max 5.
Postać o idencie "Kapitan_A" będzie po lewej stronie nie możliwa do wyboru, a kapitan_b będzie po mojej stronie w jednostkach.
Wybiorę grupkę osób, których identy wpiszę w "Grupka_Ludzi"
Możliwe będą 1 żołnierz, 2 naukowców.
Po czym wybrane jednostki zmienią stronę na stronę legionu.
Dobrze mój nauczycielu? xD
Dobra, a teraz co się stanie z niewybranymi ludzikami?(jeśli są ustawieni na mapie)
Ale dobra: twój przykład jest o tym, że:
Zamiast"Wybierz x postaci" będzie napisane "xD"
Będę mógł wybrać min. 2 ludka, max 5.
Postać o idencie "Kapitan_A" będzie po lewej stronie nie możliwa do wyboru, a kapitan_b będzie po mojej stronie w jednostkach.
Wybiorę grupkę osób, których identy wpiszę w "Grupka_Ludzi"
Możliwe będą 1 żołnierz, 2 naukowców.
Po czym wybrane jednostki zmienią stronę na stronę legionu.
Dobrze mój nauczycielu? xD
Dobra, a teraz co się stanie z niewybranymi ludzikami?(jeśli są ustawieni na mapie)
Nie wiem, jak rozumiesz "MOJA STRONA", ale KAPITAN_B będzie po prawej bez możliwości wyboru ![Razz :P](./images/smilies/icon_razz.gif)
Reszta ok.
Na pozostałych (czyli niewybranych) nie będzie efektów.
Można też im przypisać zmienną, żeby móc na nich wpływać:
Zbudujemy w ten sposób listę składającą się z elementów KAPITAN_B i wszystkich elementów listy GRUPA_LUDZI różnych niż ZIOMY.
![Razz :P](./images/smilies/icon_razz.gif)
Reszta ok.
Na pozostałych (czyli niewybranych) nie będzie efektów.
Można też im przypisać zmienną, żeby móc na nich wpływać:
Code: Select all
...
RESZTA=KAPITAN_B^GRUPA_LUDZI diff ZIOMY;
- Xero Rozbójca
- Soldier level 6
- Posts: 391
- Joined: Sun Mar 08, 2009 5:13 pm
- Location: Szukaj w kioskach...
Jeśli masz napisane w SAILFunctions.rtf:
To znaczy, że akceptuje tylko liczby całkowite - przykładowo pojedyncze jednostki, nie akceptuje list.
Aby ją zastosować trzeba użyć pętli for. Już od dawna to z tobą wałkuję, a ty jak grochem o ścianę..
Posłuchaj mnie w końcu!!
Code: Select all
RemoveUnit(integer:un)
Aby ją zastosować trzeba użyć pętli for. Już od dawna to z tobą wałkuję, a ty jak grochem o ścianę..
Posłuchaj mnie w końcu!!
- Xero Rozbójca
- Soldier level 6
- Posts: 391
- Joined: Sun Mar 08, 2009 5:13 pm
- Location: Szukaj w kioskach...
A właśnie, że próbowałem też z for ;]
Można zamienić to 'un' na coś innego?
Noi tam inne kombinacje xd
Już nawet z RemoveMcUnit nic nie zdziałałem ale się pogubiłem w tym wszystkim ;p
Mam problemik teraz z remove, częściej z filtrami no i takie coś jak:
Spróbuję z 'delete' ;P
W mapach jestem dobry, w SAILu taki sobie.
Można zamienić to 'un' na coś innego?
Code: Select all
for un in [...] do
RemoveUnit(un);
Już nawet z RemoveMcUnit nic nie zdziałałem ale się pogubiłem w tym wszystkim ;p
Mam problemik teraz z remove, częściej z filtrami no i takie coś jak:
Code: Select all
exit;
while
prepare
itp co występuje w kampanii
W mapach jestem dobry, w SAILu taki sobie.
- Xero Rozbójca
- Soldier level 6
- Posts: 391
- Joined: Sun Mar 08, 2009 5:13 pm
- Location: Szukaj w kioskach...
Code: Select all
export xero, robert, jan, maciej, dawid;
EXPORT ZIOMY, RESZTA;
var un;
starting
begin
ComEnterUnit(ru2sol, ru2_bunkier);
ComEnterUnit(ru2sol1, ru2_wieza);
ComEnterUnit(ru2sol2, ru2_wieza1);
ComEnterUnit(ru2sol3, ru2_arm);
ComEnterUnit(ru2sol4, ru2_wieza2);
ComEnterUnit(sol, ru_bun);
xero=CreateCharacter('xero');
robert=CreateCharacter('robert');
jan=CreateCharacter('jan');
maciej=CreateCharacter('maciej');
dawid=CreateCharacter('dawid');
ZIOMY=CharacterSelection('Wybierz max 7 postaci', 1, 7, [xero, sel_not_hired, general, sel_changeable]^[s,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11], [[1,4],3,[4,2]]);
RESZTA=[s,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11] diff ZIOMY;
SetSide(RESZTA, 4);
for un in [RESZTA] do
RemoveUnit(un);
PlaceUnitArea(xero, start, false);
PlaceUnitArea(robert, start, false);
PlaceUnitArea(jan, start, false);
PlaceUnitArea(maciej, start, false);
PlaceUnitArea(dawid, start, false);
SetClass(xero, 1);
InGameOn;
SayRadio(xero, 'axero');
SayRadio(general, 'ageneral');
SayRadio(xero, 'axero1');
RemoveUnit(general);
InGameOff;
ChangeMissionObjectives('A1');
ChangeMissionObjectives('A2');
ChangeMissionObjectives('A3');
end;
- Xero Rozbójca
- Soldier level 6
- Posts: 391
- Joined: Sun Mar 08, 2009 5:13 pm
- Location: Szukaj w kioskach...
Daj moda..
[ Dodano: 24.07.2009 10:25 ]
Błąd jest w SAILu, ale od razu go nie zauważyłem (jak to dobrze, że edytor świeci żółtym tekstem
). Masz napisane [RESZTA], co oznacza zupełnie co innego niż RESZTA. [RESZTA] to jednoelementowa lista, której jedynym elementem jest inna lista, można w ten sposób budować tablice wielowymiarowe, ale to ostatnia rzecz, którą teraz powinieneś zaprzątać sobie głowę. Usuń nawiasy i zrekompiluj. Działa jak marzenie ![Razz :P](./images/smilies/icon_razz.gif)
[ Dodano: 24.07.2009 10:25 ]
Błąd jest w SAILu, ale od razu go nie zauważyłem (jak to dobrze, że edytor świeci żółtym tekstem
![Very Happy :D](./images/smilies/icon_biggrin.gif)
![Razz :P](./images/smilies/icon_razz.gif)
- Xero Rozbójca
- Soldier level 6
- Posts: 391
- Joined: Sun Mar 08, 2009 5:13 pm
- Location: Szukaj w kioskach...