Alarm

Wszystko o modach, patchach i błędach w OW oraz ogólnym programowaniu.
User avatar
Pablo Abruzzi
Soldier level 5
Soldier level 5
Posts: 269
Joined: Mon Jul 28, 2008 3:09 pm
Location: Polska
Contact:

Alarm

Post by Pablo Abruzzi »

Chciałbym wiedzieć jak zrobić alarm w bazie wroga ( zwykłe wsparcie), konkretniej: jak zrobić w sailu, aby po pierwszym kontakcie wzrokowym z wrogiem ,,uruchomił" się licznik ( znaczy czas 10 minut) po którym dadejdźe wsparcie; Umiem zrobić, aby po dziesięciu minautach nadeszło wsparcie, ale jak zrobić, aby te dziesięć minut zaczęło upływać od pierwszego kontaktu wzrokowego z wrogiem :?: Proszę o pomoc w tej sprawie. Z góry dzięki.
Si vis pacem, para bellum jeśli chcesz pokoju, gotuj się do wojny.

THE HEROES COMPANY MOD
[progress]100%[/progress]
DONE
http://forum.original-war.net/viewtopic ... 6&start=90
User avatar
Gothuk
Site Administrator
Site Administrator
Poland
Posts: 985
Joined: Tue Sep 04, 2007 6:10 pm
Location: Poland, Warsaw
Contact:

Post by Gothuk »

nic trudnego

Code: Select all

every 10$0 trigger getdistunits(ktos1, ktos2)<10 do
  begin
  // kod
  end;
dodajesz tylko warunek (trigger) po jakim petla sie wykona, w tym przypadku kiedy ktos2 zobaczy ktos1.
getdistunits zwraca odleglosc miedzy jednostkami.
User avatar
Gogeta103
Soldier level 5
Soldier level 5
Posts: 195
Joined: Tue Dec 18, 2007 4:57 pm

Post by Gogeta103 »

To chyba jest odniesienie tylko do jednego typa.

Chyba powinno być z See (mogę się mylić) 8)

Chyba tak:

Code: Select all

EXPORT ja;

Starting
  begin
    disable(007);
    ja=FilterAllUnits([[f_side,x],[f_type,unit_human],[f_alive]]]); 
  end;

every 0$1 trigger See(x,ja) do
  begin
    enable(007);
  end;

every 10$0 MARKED 007 do
  begin
    kod ataku;
  end;
User avatar
Gothuk
Site Administrator
Site Administrator
Poland
Posts: 985
Joined: Tue Sep 04, 2007 6:10 pm
Location: Poland, Warsaw
Contact:

Post by Gothuk »

Gogeta103 wrote:Chyba powinno być z See (mogę się mylić) 8)
Jednak się mylisz.
Używanie See:

Code: Select all

See(Integer, Integer)
a więc nie możesz tu dać elementu typu List (tablica).
Po 2 funkcja See z tego co pamiętam nie działa zbyt dobrze (tzn. wcale), i dlatego użyłem funkcji GetDistUnits().
Gogeta103 wrote:To chyba jest odniesienie tylko do jednego typa.
Tak, aby użyć to do kilku osób należy dodać or i kolejną funkcję GetDistUnits (ponieważ GetDistUnits(Integer, Integer) tak samo jak See nie działa z tablicami):

Code: Select all

every 10$0 trigger GetDistUnits(ktos1,wr1)<10 or GetDistUnits(ktos1, wr2)<10 or GetDistUnits(ktos1, wr3)<10 do // itd. 
  begin 
    // kod ataku
  end;
User avatar
Pablo Abruzzi
Soldier level 5
Soldier level 5
Posts: 269
Joined: Mon Jul 28, 2008 3:09 pm
Location: Polska
Contact:

Post by Pablo Abruzzi »

Gothuk miał rację, dzięki za pomoc.
Si vis pacem, para bellum jeśli chcesz pokoju, gotuj się do wojny.

THE HEROES COMPANY MOD
[progress]100%[/progress]
DONE
http://forum.original-war.net/viewtopic ... 6&start=90
Anarchy
Site Moderator
Chad
Posts: 1223
Joined: Thu May 03, 2007 11:02 am

Post by Anarchy »

Komenda See działa bardzo dobrze, wolę ją od tamtej, bo nie trzeba tyle pisać;P
User avatar
Jeanks
Soldier level 6
Soldier level 6
Posts: 305
Joined: Fri Feb 16, 2007 1:34 pm
Location: Grudziądz

Post by Jeanks »

Dla ścisłości mi niedziałą żadna mimo iż kompilacja działa


^^ PoRadzilem sobie jednak obydwie mi dzialaja juz;p
Last edited by Jeanks on Wed Dec 24, 2008 7:28 pm, edited 1 time in total.
Jeanks zgarnia wszystko ot co xD
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

Bo źle robisz :P
User avatar
Jeanks
Soldier level 6
Soldier level 6
Posts: 305
Joined: Fri Feb 16, 2007 1:34 pm
Location: Grudziądz

Post by Jeanks »

Juz jets ok trzeba na odwrot wpisac ID ;p


^ dziala tylko jak ustawie see(id,id)<9 ale tak ze na poczatku gry mam koniec bo ustawilem ze jak ktoas mnie zluka to przegrywam wiec tak dzialac nie moze
Jeanks zgarnia wszystko ot co xD
User avatar
Gothuk
Site Administrator
Site Administrator
Poland
Posts: 985
Joined: Tue Sep 04, 2007 6:10 pm
Location: Poland, Warsaw
Contact:

Post by Gothuk »

Toć pisałem że see nie działa :p

Nawet jesli gdy warunek (tzn. See()) jest spełniony to zwraca 1, czyli true, w przeciwnym razie zwraca false (0).
Czyli w Twoim przypadku zawsze będzie spełniony warunek że jest mniejsze od 9 ^^.

Za to GetDistUnits() zwraca odleglosć.
User avatar
Jeanks
Soldier level 6
Soldier level 6
Posts: 305
Joined: Fri Feb 16, 2007 1:34 pm
Location: Grudziądz

Post by Jeanks »

Lae ty nie rozumeisz Goothuk twoje niedziala w ogole a see chociaz cos pokazuje oznaki xD

PS: mam problem ktory mialem z rok temu i wtedy nikt niewiedzial jak go rozwiazac tj. moje save w oim modzie niedzialaja nie da sie ich wczytac przy ladowaniu jednostek (units) gra siada robi sie na kursorze krzyzyk i errors violation pokazuje mi ekran z mojim sprzetem i wyswietla owarfull
Jeanks zgarnia wszystko ot co xD
User avatar
Gothuk
Site Administrator
Site Administrator
Poland
Posts: 985
Joined: Tue Sep 04, 2007 6:10 pm
Location: Poland, Warsaw
Contact:

Post by Gothuk »

Jeanks wrote:Lae ty nie rozumeisz Goothuk twoje niedziala w ogole a see chociaz cos pokazuje oznaki xD
jak nie działa :O, widocznie źle używasz ^^,
za to see działa tak jak napiasłeś, jeśli to co zwroci see jest mniejsze od 9 (lub jakiejkolwiek innej liczby wiekszej od 2)
Jeanks wrote:PS: mam problem ktory mialem z rok temu i wtedy nikt niewiedzial jak go rozwiazac tj. moje save w oim modzie niedzialaja nie da sie ich wczytac przy ladowaniu jednostek (units) gra siada robi sie na kursorze krzyzyk i errors violation pokazuje mi ekran z mojim sprzetem i wyswietla owarfull
Do tego to nie wiem, poza tym nie rób w tym topicu offtopcu z tego ^^.
User avatar
Jeanks
Soldier level 6
Soldier level 6
Posts: 305
Joined: Fri Feb 16, 2007 1:34 pm
Location: Grudziądz

Post by Jeanks »

Do tego to nie wiem, poza tym nie rób w tym topicu offtopcu z tego ^^.
Nie bo pasuje do tego tematu ktory brzmi "alarm" :P temat nie jest wyogólniony pod jedną dyskusje tylko właściwie brzmi dosc ogolnie stąd moją wielką od roku prośbę umieszczam tutaj i czekam na pomoc
Jeanks zgarnia wszystko ot co xD
User avatar
Gothuk
Site Administrator
Site Administrator
Poland
Posts: 985
Joined: Tue Sep 04, 2007 6:10 pm
Location: Poland, Warsaw
Contact:

Post by Gothuk »

Jeszcze co do See i GetDistUnits.
Anarchy zmotywował mnie do zajrzenia do spisu funkcji SAIL'a (do ściągnięcia stąd), i:
See(side:integer un:integer)
returns true if side sees specified unit
side - strona, nacja
un - (unit) jednostka
działa to na tej zasadzie, że jeśli ktoś z danej nacji zauważy daną jednostke to ... (wykona się coś).
GetDistUnits(un1:integer un2:integer)
returns distance of two units, 99999 if one or both of them aren't on the map
un1 i un2 to jednostki
tak jak pisałem wcześniej ta funkcja zwraca odległość między jednostkami, dodatkowo zwraca 99999 jeśli jednostka lub obie jednoski nie znajduja się na mapie.
User avatar
Jeanks
Soldier level 6
Soldier level 6
Posts: 305
Joined: Fri Feb 16, 2007 1:34 pm
Location: Grudziądz

Post by Jeanks »

Z tymi moimi saveami to dziwne jest raz działają raz nie. Ale wracając do tej funkcji See i GetDistUnits dlaczego one są aż tak upierdliwie wadliwe :P patrzałem jak inni mają w modach See i robiłem tak samo i niedziałało nawet próbowałem coś kombinować no cóż zobacze jak to się będzie miało do tego co wyniuchałeś z owsupport.com


PS: oczywiscie ze nie pomoglo ^^ :D
Jeanks zgarnia wszystko ot co xD
Post Reply