NPC umiera po dialogu. 3021 5

O temacie

Autor mateu990

Zaczęty 24.01.2016 roku

Wyświetleń 3021

Odpowiedzi 5

mateu990

mateu990

Użytkownicy
Gothic: Khalinag
posty58
Propsy8
ProfesjaLvl designer
  • Użytkownicy
  • Gothic: Khalinag
Witam ponownie.  :D  Mam dwa pytania z czego to pierwsze jest ważniejsze od drugiego.
1. Chciałem zrobić żeby po dialogu postać z którą rozmawiam umierała. Dodałem do dialogu: B_KillNpc         (BAU_15005_Daria); i npc umiera ale dialog nie kończy się tylko bohater stoi i nic nie robi. Dodawałem AI_StopProcessInfos   (self); przed i po wpisie killnpc ale dalej jest to samo. Powie mi ktoś jak to rozwiązać?

2. Jak zrobić żeby NPC znikł zaraz po dialogu?
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
1. Ustaw to np. 5 sekund po dialogu. Użyj Frame functions (ustaw na wywoływanie co sekundę), a w dialogu ustaw zmienną na 5 i odejmuj ją w tym Frame Functions.

2. Zmień mu rutynę i przeteleportuj go na waypoint "TOT", znajdujący się w każdym świecie.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

piootrek86

piootrek86

Użytkownicy
Fanatyk Gothica
posty89
Propsy13
ProfesjaGrafik 3D
  • Użytkownicy
  • Fanatyk Gothica

piootrek86

NPC umiera po dialogu.
#2 2016-01-24, 21:16(Ostatnia zmiana: 2016-01-24, 21:25)
na koncu dialogu dodaj :

bau_15005 = 1;

w pliku Story_Globals wpisz :
var int bau_15005;

w pliku Startup wpisz :

bau_15005 = 0;

if (!FF_Active (zdechl))   
   {
      FF_ApplyOnceExt (zdechl, 1000, -1);
   };

i teraz dodaj w jakims pliku np events :

func void zdechl()
{ if  (bau_15005 == 1)
   { B_KillNpc (BAU_15005_Daria);};

};

Edit: musisz miec Ikarusa i lego by dzialalo :-)
 
Mam pomysł na moda ale nie mam chęci i zdolności :D

carelion

carelion

RaveN Studio
Moete Kita Zo!
posty153
Propsy73
Profesjabrak
  • RaveN Studio
  • Moete Kita Zo!
@piootrek86 twój sposób jest zły, ponieważ funkcja ciągle będzie wywoływana co 1s (Nawet po całym zdarzeniu), natomiast @Bogdan Zwei nie trzeba kombinować z FrameFunctions i tworzyć niepotrzebne zmienne, wystarczy za pomocą funkcji z LeGo FF_ApplyExtData wywołać za określony czas funkcje B_KillNpc (w tym przypadku za 5s):
FF_ApplyExtData(function, delay, cycles, data);
function - Funkcja która ma być wywołana, w tym przypadku B_KillNpc.
delay - Co jaki odstęp czasu(milisekundy) wywołuje funkcje(5s to 5000milisekund).
cycles - Ile razy ma być wywołana, w tym przypadku tylko raz.
data - parametr wywyoływanej funkcji, w tym przypadku instance NPC.
 

Zucklov

Zucklov

Quest Pack Team
Sztywniutko
posty1220
Propsy1241
ProfesjaSkrypter
  • Quest Pack Team
  • Sztywniutko
Po co jakieś framefunctions? Wystarczy dodać AI_StopProcessInfos (other); na samym końcu, po funkcji zabijającej.
 
Lieb Vaterland magst ruhig sein

mateu990

mateu990

Użytkownicy
Gothic: Khalinag
posty58
Propsy8
ProfesjaLvl designer
  • Użytkownicy
  • Gothic: Khalinag
Dzięki wszystkim za pomoc. Tak jak pisze Zucklov wystarczyło dodać AI_StopProcessInfos (other); i po sprawie. Jeszcze raz dzięki. :-)
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry