Skocz do zawartości

Strzelający wróg


Niety

Rekomendowane odpowiedzi

  • Odpowiedzi 105
  • Dodano
  • Ostatniej odpowiedzi

Top użytkownicy w tym temacie

Top użytkownicy w tym temacie

na sile mozesz to zrobic show_message() i dobrac jakies ladne tlo, albo narysowac draw_rectangle() ladne menu od rozmow, dac tablice rozmowa[0..ilestam] z dialogami i je wyswietlac poprostu, nic trudnego.

 

Aczkolwiek przyznam sie, ze wymieklem przy pisaniu silnika dialogu z 2/3 odp :P

Odnośnik do komentarza
Udostępnij na innych stronach

Mam to zrobione w Unity, jak mnie nikt nie wyprzedzi to przerobię Ci to na gm'a. Ale powiem odrazu, że robię to na takiej zasadzie, że odp. ma zawsze indeks n*indeks pytania+m, gdzie n jest największą ilością odpowiedzi do wyboru, a m lp. odp na dane pytanie.

E:Dam Ci linka do obrazka tłumaczącego ideę, tylko niech się upnie

dialog.jpg

Odnośnik do komentarza
Udostępnij na innych stronach

W tym przypadku można dać tylko 3 odp. usera, jak chcesz na więcej to dajesz większą liczbę zamiast x3

E:Tam na dole jest jeszcze koniec i 2 powroty, ale to zrobione jest na flagach, czyli jeśli flaga jest ustawiona na inną wartość niż 0 to do tej wypowiedzi przenosi

Odnośnik do komentarza
Udostępnij na innych stronach

Napiszę Ci później kod, najpierw na GM muszę go przełożyć

GML
dialog[1][0]="Jak tam?";//tu treść

dialog[1][1]=1;//to NPC

dialog[3][0]="Wal się";

dialog[3][1]=2;//to gracz

dialog[4][0]="Dobrze";

dialog[4][1]=2;

 

dialog[5][0]="Ciuluowo";

dialog[5][1]=2;

 

dialog[9][0]="Ale ty niewychowany";

dialog[9][1]=1;

dialog[9][2]=3;//wracamy do wypowiedzi 3

dialog[12][0]="To fajnie";

dialog[12][1]=1;

dialog[12][2]=3;//wracamy do wypowiedzi 3

dialog[15][0]=" To uciekam";

dialog[15][1]=1;

dialog[15][2]=-1;//koniec rozmowy

}

Jeszcze tylko kod obsługujący tabelę przerobię.

GML
if (dialog[nr][1]==1)

{

show_message(dialog[nr][0]);

if (GUI.Button(Rect(850,250,100,20),"Dalej"))//zamiast tej linijki i tym podobnych trzeba dać jakiś guzik, ale nie chce mi się już przerabiać

{

 

 

if (dialog[nr][2]==0)

{

nr*=3;

 

}

else

if (dialog[nr][2]==-1)

{

//koniec rozmowy

}

else

{

nr=dialog[nr][2];

}

}

}

 

if (dialog[nr][1]==2)

{

if (wybor==-1)

{

if (GUI.Button(Rect(100,120,500,20),dialog[nr][0]))

{

wybor=0;

}

if (GUI.Button(Rect(100,140,500,20),dialog[nr+1][0]))

{

wybor=1;

}

if (GUI.Button(Rect(100,160,500,20),dialog[nr+2][0]))

{

wybor=2;

}

}

 

 

 

 

 

 

 

 

if (wybor!=-1)

{

show_message(dialog[nr+wybor][0]);

if (GUI.Button(Rect(850,250,100,20),"Dalej"))

{

 

if (dialog[nr+wybor][2]==0)

{

nr=(nr+wybor)*3;

wybor=-1;

}

else

if (dialog[nr+wybor][2]==-1)

{

 

wybor=-1;

}

else

{

nr=dialog[nr+wybor][2];

wybor=-1;

}

}

 

}

}

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ę...