[TGF] Wykrywanie detektorem i akcja |
Autor |
Wiadomość |
Cage
Plutonowy Wishmaster
Główny edytor:
Drugi edytor:
Pomógł: 3 razy Posty: 84
2548 Prestiż
|
Wysłany: 16-10-2005, 23:10 [TGF] Wykrywanie detektorem i akcja
|
|
|
Zabardzo nie wiedzialem jak nazwać ten temat zeby było wiadomo o co chodzi, a żeby nie robic nazwy tematu na pół ekranu
Otóż mam obiekty aktywne i każdy z nich ma detektor, mam petle która tworzy n detektorów itd. i wszystko jest cacy. Problem w tym że jesli gracz znajdzie sie w zasiegu detektora to akcje podejmie obiekt do ktorego należy ten sam obiekt (ma ta sama wartość A, która jest identyfikatorem). Ogólnie potrzebuje coś takiego zeby gracz po wejściu w detektor danego przeciwnika, ten przeciwnik otrzymywał odpowiednią wartość B. Teraz działa to tak, że po wejściu w zasięg jednego wroga działają wszyscy a tego nie chce |
|
|
|
|
Natie
Bohaterka
Główny edytor:
Pojedynki: nie
Pomogła: 7 razy Posty: 380
10110 Prestiż
|
Wysłany: 16-10-2005, 23:12
|
|
|
Do warunku colission dodaj Get all objects with altebrate value A = i tu wartość detektora który sie styknął z graczem. |
|
|
|
|
Cage
Plutonowy Wishmaster
Główny edytor:
Drugi edytor:
Pomógł: 3 razy Posty: 84
2548 Prestiż
|
Wysłany: 16-10-2005, 23:25
|
|
|
Crazy Corkin napisał/a: | Do warunku colission dodaj Get all objects with altebrate value A = i tu wartosc detektora który sie styknął z graczem. |
Probowalem i nie dziala; reaguja wszyscy przeciwnicy |
|
|
|
|
Tasmpol
Bohater young god
Główny edytor:
Pomógł: 14 razy Posty: 955
24606 Prestiż
|
Wysłany: 16-10-2005, 23:32
|
|
|
Nie bardzo rozumiem...
Jeżeli chodzi o to, że każdy wróg ma swoje pole zasięgu widzenia to najlepiej je utworzyć w takiej samej kolejności, jak wrogów. Potem dajemy na początku poziomu Set Alterbate value A dla detektorów i wrogów. Jeżeli:
Kod: | Gracz colliding with the Detektor +
Choose object Wrog with reference to they value A:
I tutaj aktywuj wroga. |
Wątpię, czy o to chodzi, najlepiej daj tutaj przykład tego i ktoś poprawi. Hmmm... Pokombinuj jeszcze, kiedyś miałem coś podobnego i jakoś określone obiekty władowałem do określonych grup i wszystko było ok.
Daj przykład tego co chcesz uzyskać, jak możesz, a postaram się poprawić. Bo nie bardzo rozumiem, o co chodzi |
_________________ the preacher man says its the end of time
|
|
|
|
|
Cage
Plutonowy Wishmaster
Główny edytor:
Drugi edytor:
Pomógł: 3 razy Posty: 84
2548 Prestiż
|
Wysłany: 16-10-2005, 23:40
|
|
|
Mam przeciwnikow i na starcie tworzone sa detektory, tworzone jest ich tyle ile przeciwnikow. Przyporzadkowane maja wartosci A jak i przeciwnicy (spread value), no i kazdy przeciwnik ma detektor [pole widzenia]. I wszystko działa jak nalezy. Chce teraz zrobic zeby po wejsciu w detektor danego wroga, jego wartosc B ustawiala sie np. na 50 (jest to 'chęć' do gonienia gracza, jesli gracz jest poza widokiem, to wartość B spada ciągle, jeśli dojdzie do 0 to przeciwnik przestaje nas gonić - możemy go 'zgubić'.). No i teraz problem w tym, że gdy wejde w jakikolwiek detektor, wartość B maja wszyscy przeciwnicy, a co za tym idzie, gonią mnie wszyscy Próbowałem tego z 'wybieraniem wszystkich obiektow o wartosci A = iles', jak i probowalem tez 'jesli wartosc detektor = wartosc wrog' i tez nie działa. |
|
|
|
|
Tasmpol
Bohater young god
Główny edytor:
Pomógł: 14 razy Posty: 955
24606 Prestiż
|
Wysłany: 16-10-2005, 23:47
|
|
|
Mam nadzieję, że chodzi o to w załączniku:
A więc, jeżeli każdy wróg ma taką samą wartość A jak swój detektor, to jeżeli Gracz wejdzie na detektor to powinno pobrać wartość A tego detektoru, w który on wszedł i względem tej wartości powinien zareagować ten wróg, który ma wartość A jak ten detektor, w który wszedł Gracz...
Jeżeli o to chodzi to sprawdzę, czy to zadziała u mnie. Jeżeli nie - postaram się coś wykombinować.
[ Dodano: 2005-10-17, 00:00 ]
Sorry, że pisze drugiego posta pod rząd...
Przykład, u mnie działa:
wrogowie.JPG
|
|
Plik ściągnięto 143 raz(y) 14,85 KB |
aaii.rar
|
Pobierz Plik ściągnięto 829 raz(y) 3,35 KB |
|
_________________ the preacher man says its the end of time
|
|
|
|
|
Minty
Stwórczyni omc dr fizyki
Główny edytor:
Drugi edytor:
Pojedynki: być może
Pomogła: 259 razy Posty: 3446
33789 Prestiż
|
Wysłany: 17-10-2005, 09:37
|
|
|
W moim silniku Zaawansowane AI (v1.4 ) jest zaimplementowane omijanie - sprawdź zdarzenia związane z tym zachowaniem i zobacz, czy o to właśnie chodzi (każdy przeciwnik osobno reaguje na kolizje detektora ze ścianą).
To powyższe też jest chyba dobre |
|
|
|
|
Cage
Plutonowy Wishmaster
Główny edytor:
Drugi edytor:
Pomógł: 3 razy Posty: 84
2548 Prestiż
|
Wysłany: 04-11-2005, 01:36
|
|
|
Eh, jakbym nie kombinował dalej nie działa, zawsze reagują wszyscy. Niewiem co z tym zrobić a rozwiązanie tego problemu jest mi bardzo potrzebne.
http://fire.duke.org.pl/ai.rar |
|
|
|
|
Natie
Bohaterka
Główny edytor:
Pojedynki: nie
Pomogła: 7 razy Posty: 380
10110 Prestiż
|
Wysłany: 04-11-2005, 08:42
|
|
|
Po pierwsze robiłeś pętlą spread tyle ile jest przeciwników , a robi się to tylko jeden raz, bo przeciwnicy dostaną po 0 ub 1 wartości A.
Po drugie podnosisz obiekty o wrtości A = detektorowi a nie przeciwnikowi.
Jak przyjdę ze szkoły to pokażę poprawiony przykład. |
_________________ ... |
|
|
|
|
Cage
Plutonowy Wishmaster
Główny edytor:
Drugi edytor:
Pomógł: 3 razy Posty: 84
2548 Prestiż
|
Wysłany: 04-11-2005, 18:36
|
|
|
Ok pozbyłem się spread w petli, wydawało mi się że przez to problem ale jednak usunięcie jednego problemu powoduje drugi
Teraz kazdy przeciwnik i wróg ma przyporządkowaną wartość i wszystko byłoby OK gdyby nie to, że detektory ustawiają się w odpowiednich pozycjach odnośnie tylko jednego przeciwnika. Czyli musi coś być nie tak ze zdarzeniem ustawiającym detektory - próbowałem zrobić tak:
Kod: | Get all object with value A = value A przeciwnik -> set position itd... |
I to nie działa. Próbowałem też rozbić zdarzenia na indywidualne dla każdego detektora i zrobiłem warunek "jeśli wartość A detektor = v A przeciwnik" ale to też nie działa... |
_________________ http://retrocade.net/
http://ccorner.duke4.net/ |
|
|
|
|
Natie
Bohaterka
Główny edytor:
Pojedynki: nie
Pomogła: 7 razy Posty: 380
10110 Prestiż
|
Wysłany: 06-11-2005, 10:29
|
|
|
Źle było rodzielane spread, to czasami tak źle działa ta funkcja, Broo o tym w jednym arcie przestrzegał. Posprawdzałem licznikiem jakie są wartości A i wsystkie obiekty miały wartość A=0. Zmieniłem akcje spread do porównania czy ten duży trójkątny detektor jest w liczbie kopii równej tym zombiakom. Jeśli tak to z akcją Run this event once rodzieliłem 0 na zombiaki. Nie mam hosta więc wysłałem ci na maila. Mam nadzieje że u ciebie też działa
Jeśli jakieś jeszcze błędy znajdziesz to powiedz, poprawie, napchałem tam pętli więc wiesz |
_________________ ... |
|
|
|
|
Cage
Plutonowy Wishmaster
Główny edytor:
Drugi edytor:
Pomógł: 3 razy Posty: 84
2548 Prestiż
|
Wysłany: 07-11-2005, 16:50
|
|
|
Działać działa, problem w tym, że teraz reaguje tylko 1 zombiak :) Będe bardzo wdzięczny za pomoc, sam nie jestem za dobry technicznie w tgf, pozatym strasznie długo się z tym problemem gimnastykuje i nie moge nic wymyśleć... Bardzo mi zależy na rozwiązaniu tego problemu, bo akurat zaplanowałem sobie zrobienie AI a teraz przez to po prostu się zatrzymałem. |
_________________ http://retrocade.net/
http://ccorner.duke4.net/ |
|
|
|
|
Natie
Bohaterka
Główny edytor:
Pojedynki: nie
Pomogła: 7 razy Posty: 380
10110 Prestiż
|
Wysłany: 07-11-2005, 17:03
|
|
|
Wysłałem ci chyba nie to co trzeba A jeśli i w tym co trzeba nie działa to będe główkował dalej |
|
|
|
|
Omenski
Starszy kapral
Pomógł: 2 razy Posty: 40
1019 Prestiż
|
Wysłany: 11-11-2005, 14:07
|
|
|
Udało mi się przerobić plik ai.rar co był przesłany by działał poprawnie. Niestety nie mam jak tego wrzucić na jakiegoś FTPa. Jeśli kogoś jeszcze interesuje ten kod proszę o podanie mi na GG: 1266337 maila bądź adresu FTPa by móc umieścić plik.
Ogólnie mogę powiedzieć, że zły był algorytm ruchu. Przerobiłem też część przydzielającą wartości detektorom.
Na marginesie podam, że ten kod co napisałem nie będzie działał gdy ubijemy strażników - nie chciało mi się tego robić, zresztą to praca dla autora gry .
/Nie masz hosta?; RomanX/ |
Ostatnio zmieniony przez Minty 06-09-2007, 14:13, w całości zmieniany 1 raz |
|
|
|
|
BROO
Pupogłowy Wizard x-)
Główny edytor:
Pojedynki: nie
Pomógł: 37 razy Posty: 502
31680 Prestiż
|
|
|
|
|
|