Zaczynamy:
Jeżeli zaatakujemy lub zajmiemy budynek czy pojazd danej strony, przegramy. Przydatne, gdy nie chcemy np. by w naszym modzie można było rozwalić dla zabawy całą bazę sojusznika.

W tym przykładzie strona, która powinna zostać nienaruszona to 2, czyli żółty kolor (arabowie). Dodatkowo mamy zmienną (w moim przypadku) "atak_ruskow" - jeżeli zmienimy ją na 1, to do woli możemy atakować i zajmować jednostki gracza żółtego. Całość opatrzona komentarzem po //
Code: Select all
Export wczesny_atak, atak_ruskow; // tworzymy zmienne
Every 0$1 trigger GetLives(FilterAllUnits([f_side,2]))<1000 and atak_ruskow=0 do // Skrypt sprawdza "zdrowie" jednostek (w tym przypadku wszystkie jednostki strony 2) i jeżeli jakaś z nich ma mniej niż 1000 (czyli inaczej 100%) i drugi warunek spełnia wymagania (czyli atak_ruskow wynosi 0) to wykonywany jest poniższy skrypt.
Begin
wczesny_atak=1; // zamiast dawać kilka razy komendę "YouLost" lepiej jest zrobić to w ten sposób, ponieważ jeżeli się zdecydujemy dodać np. krótki dialog przed przegraną to nie musimy dodawać tego w każdym miejscu oddzielnie, a tylko raz i mieć to z głowy
End;
On VehicleCaptured(new_identifier, old_identifier, old_side, capturing_unit) do // tutaj mamy wydarzenie, a niżej sprawdzamy niektóre czynniki
Begin
if old_side=2 and Getside(capturing_unit)=3 then // jeżeli strona pojazdu przed przejęciem to 2, a jednostka przejmująca to 3 (czyli w tym przypadku to my) to skrypt się uruchomi
if atak_ruskow=0 then wczesny_atak=1; // jeżeli zmienna wynosi 0 to właściwe działanie skryptu zostanie wykonane
Enable; // jeżeli wszystkie warunki nie zostaną spełnione to "Enable" przy następnym przejęciu pozwoli nam ponownie sprawdzić wszystkie warunki i ewentualnie wykonać skrypt
End;
On BuildingCaptured(captured_building, old_side, capturing_unit) do // tym razem skrypt dotyczy budynków, a nie pojazdów
Begin
if old_side=2 and Getside(capturing_unit)=3 then
if atak_ruskow=0 then wczesny_atak=1;
Enable;
End;
Every 0$1 trigger wczesny_atak=1 do // gdy zmienna "wczesny_atak" zostanie ustawiona na 1 (standardowo wynosi 0) to wyskoczy nam komunikat o przegranej grze; możemy oczywiście dodać np. dialog czy inne akcje, aby urozmaicić grę.
Begin
YouLost('WczesnyAtak');
End;