Skocz do zawartości

Boty


Rekomendowane odpowiedzi

prosty podstawowy system:

 

kazdemu botowi w create dajesz

GML
umiejetnosc[1] = 0

umiejetnosc[2] = 0

umiejetnosc[3] = 0

umiejetnosc[4] = 0

w stepie dajesz im

GML
if umiejetnosc[1] = 1 //mozesz tez dac inne warunki, odleglosc od jakies sciany, przeciwnika, czy bot jest uszkodzony czy co tam chcesz

{

//wykonywanie tej umiejetnosci

}

if umiejetnosc[2] = 0

{

//wykonywanie tej umiejetnosci

}

if umiejetnosc[3] = 0

{

//wykonywanie tej umiejetnosci

}

if umiejetnosc[4] = 0

{

//wykonywanie tej umiejetnosci

}

O uczeniu sie musialbym sie dluzej zastanowic, a teraz czasu nie mam. Jak te umiejetnosci ma bot wykonywac to juz musisz sam sobie napisac.

Odnośnik do komentarza
Udostępnij na innych stronach

W przykładzie daje priorytet dla medyka na polu bitwy

 

Priorytet możesz dorobic w kilka sposobow

1.Im wyższa ranga tym wyższy priorytet

2.Im mniej lifa tym wyższy priorytet

3.Im dalej tym mniejszy priorytet.

4.Im blizej osoby jest wrog tym mniejszy priorytet(po ludzku tchórz:))

 

A jakby bylo, że medyk miałby szeregowego obok i sierżanta 200 pikseli dalej, a sam jest 2x2 pikseli i do sierżanta leci, można jeszcze dorobic, ze ponad pewna odlegloscia jakastam czesc priorytetu nie funkcjonuje.

 

P.S. wiem że sobie poradziłeś, ale to taka ciekawostka do zmiany priorytetu :)

Odnośnik do komentarza
Udostępnij na innych stronach

Najprostszy i najinteligentniejszy jest system drzewka.

 

Na samym szczycie jest najprostsza animowana czynność, tzn. odpoczynek, spacer, patrol.

 

Potem następuje rozgałęzienie czynności uwarunkowane jakimiś triggerami, tzn. spotyka przyjaciela, nagle zostaje poważnie zraniony czy zostaje zaatakowany przez wroga.

 

I bot schodzi niżej - przy spotkaniu z przyjacielem może go leczyć, pomóc mu w walce, oddać amunicję, kryć go. Przy zranieniu - udać się do medyka czy też samemu spróbować zatamować krew. Przy walce - od razu oddać strzał czy przedtem znaleźć jakieś schronienie i przeładować broń.

 

Podczas wykonywania czynności następują przeskoki między nimi. Np. po schowaniu się i przeładowaniu ostrzał wroga, po wyleczeniu ran spatrolowanie zagrożonego terenu jeszcze raz albo ostrzeżenie innych botów, po wspólnej walce z przyjacielem uzupełni mu zapas amunicji itp.

 

Najprostszy, a zarazem najbardziej realistyczny system.

Odnośnik do komentarza
Udostępnij na innych stronach

Podobnym w działaniu jest drabinka czynności, która polega na uszeregowaniu działań pod priorytetów. Jeżeli przyjaciel jest ranny - wykonaj akcję, jeśli nie - sprawdź mniej priorytetową czynność.

 

Konstrukcja jest banalna, a polega tylko na:

 

GML
if czynnosc_priorytetowa = 1

{

//wykonaj

}

else if czynnosc_mniej_priorytetowa = 1

{

//wykonaj

}

(...)

else if czynnosc_malo_priorytetowa = 1

{

//wykonaj

}

else

 

Oczywiście - czynnosc_ to wybrany zestaw warunków.

 

Powyższa metoda jest prostsza niż drzewko, ale za to sprawdza się przy mało skomplikowanych działaniach. Została zastosowana w mojej grze i dobrze się spisuje.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...