Usunięcie postaci- Quarhodron 6704 15

O temacie

Autor Wicon

Zaczęty 19.05.2012 roku

Wyświetleń 6704

Odpowiedzi 15

Wicon

Wicon

Użytkownicy
posty147
Propsy5
  • Użytkownicy
Chciałbym po ukończeniu dialogu usunąć postać w ten sam sposób, w jaki usuwana jest postać Quarhodrona z Jarkendaru. Jakie komendy należy dodać do dialogu, aby tak się stało?

Szukałem, ale wśród sposobów usuwania postaci nie znalazłem takiej metody. Z góry dzięki, a jeśli się powtarzam to przepraszam.
 


Lehona

Lehona

Użytkownicy
posty196
Propsy190
  • Użytkownicy
Don't use Wld_RemoveNpc(). Piranha Bytes didn't use it for a reason - under certain conditions it will invoke a crash, even though most of the times it will go unnoticed.
 
Unless specified otherwise, my posts are always about Gothic 2 Night of the Raven.

Wicon

Wicon

Użytkownicy
posty147
Propsy5
  • Użytkownicy
Właśnie te komendy znalazłem już w innych tematach. A jak dodać efekt taki jak u Quarhodrona. W jego dialogu, po którym znika znalazłem taką linijkę:

Ghost_SCKnowsHow2GetInAdanosTempel = TRUE;

Czy to może być to, czy może po wpisaniu tamtych dwóch efekt ten będzie widoczny?
 

Zucklov

Zucklov

Quest Pack Team
Sztywniutko
posty1220
Propsy1241
ProfesjaSkrypter
  • Quest Pack Team
  • Sztywniutko

Zucklov
Quest Pack Team

Usunięcie postaci- Quarhodron
#4 2012-05-19, 21:06(Ostatnia zmiana: 2012-05-19, 21:06)
Co za bzdury!
Gothic II NK\_Work\data\Scripts\content\Story\B_Content\B_RemoveQuarhodronTam masz idealnie opisany skrypt usuwania.
var int B_RemoveQuarhodron_OneTime;Kopiujesz tą linijkę i zmieniasz Quarhodron na imię swojej postaci czy coś (załóżmy, że to jest Zenek) i potem:
{
if (Ghost_SCKnowsHow2GetInAdanosTempel == TRUE)//Tu MUSI być warunek określany za pomocą TRUE lub FALSE, inaczej wyskoczy Ci Syntax Error
{
if (B_RemoveZenek_OneTime == FALSE)//Jeśli Zenek nie został ani razu usunięty
{
AI_Teleport (INSTANCE_ZENKA, "TOT"); //Teleportacja do waypointu TOT, gdzie się pojawiają postacie nieprzydatne już więcej w tym świecie
B_RemoveNpc (INSTANCE_ZENKA); //Ta funkcja określa znowu teleport (chyba) i zmianę rutyny na TOT - tak więc Zenek MUSI mieć taką rutynę, bo będzie Unknown Id
Snd_Play ("MFX_GhostVoice"); //Odtwarzanie dźwięków
Snd_Play ("MFX_Firestorm_Cast");
B_RemoveZenek_OneTime = TRUE; //Czyli Zenek został usunięty i nie będzie go można usunąć w tej rozgrywce więcej razy.
};
};

Rany, ludzie...
 
Lieb Vaterland magst ruhig sein

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Usunięcie postaci- Quarhodron
#5 2012-05-19, 21:11(Ostatnia zmiana: 2012-05-19, 21:14)
Znalazłem
Snd_Play ("MFX_GhostVoice");
Snd_Play ("MFX_Firestorm_Cast");

Dodatkowo przy przyzywaniu są efekty:
Wld_PlayEffect("spellFX_Maya_Ghost",  NONE_ADDON_111_Quarhodron, NONE_ADDON_111_Quarhodron, 0, 0, 0, FALSE );
Wld_PlayEffect("SPELLFX_LIGHTSTAR_WHITE",  NONE_ADDON_111_Quarhodron, NONE_ADDON_111_Quarhodron, 0, 0, 0, FALSE );


Nie pamiętam dokładnie tej sceny, sprawdź czy o to ci chodziło i ewentualnie daj screena.

//edit @up: nie potrzeba kopiować całych warunków. B_RemoveNpc właśnie teleportuje npc, zmienia mu rutynę i zabija go, jak doradziłem.

Wicon

Wicon

Użytkownicy
posty147
Propsy5
  • Użytkownicy

Wicon

Usunięcie postaci- Quarhodron
#6 2012-05-19, 22:51(Ostatnia zmiana: 2012-05-19, 23:00)
Jasiu pomogłeś mi, co prawda brakuje kilku rzeczy, jak np. if (Ghost_SCKnowsHow2GetInAdanosTempel) trzeba wpisać swoją zmienną utworzoną wcześniej w story globals, ale tego można już się było domyślić więc jest git.
Mam jeszcze jedno pytanie, jak pomożesz to masz propsa.

Wszystko pięknie, ale postać się nie teleportuje i nie znika, tylko po prostu umiera i znika dopiero gdy odejdę kawałek od niego. Jak zrobić, żeby nie umarł tylko po prostu zniknął?

Znalazłem
Snd_Play ("MFX_GhostVoice");
Snd_Play ("MFX_Firestorm_Cast");

Dodatkowo przy przyzywaniu są efekty:
Wld_PlayEffect("spellFX_Maya_Ghost",  NONE_ADDON_111_Quarhodron, NONE_ADDON_111_Quarhodron, 0, 0, 0, FALSE );
Wld_PlayEffect("SPELLFX_LIGHTSTAR_WHITE",  NONE_ADDON_111_Quarhodron, NONE_ADDON_111_Quarhodron, 0, 0, 0, FALSE );


Nie pamiętam dokładnie tej sceny, sprawdź czy o to ci chodziło i ewentualnie daj screena.

//edit @up: nie potrzeba kopiować całych warunków. B_RemoveNpc właśnie teleportuje npc, zmienia mu rutynę i zabija go, jak doradziłem.

Tak, o to mi chodziło, ale domyślam się, że znalazłeś to w liście "Przyzwanie Quarhodrona". Nie chcę go przyzwać, chcę żeby zniknął. Jak dodałem AI_Teleport (napisałem już w poście do jasia) postać wcale się nie teleportuje tylko umiera i znika dopiero po odejściu od niej na odpowiednią odległość.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Dlaczego nie znika? W jaki sposób to AI_Teleport dodałeś? Powinno być:
AI_Teleport (instance_postaci, "TOT");"TOT" to waypoint znajdujący się we wszystkich światach w g2nk i będący właśnie składowiskiem ciał "znikniętych" npc.

Zucklov

Zucklov

Quest Pack Team
Sztywniutko
posty1220
Propsy1241
ProfesjaSkrypter
  • Quest Pack Team
  • Sztywniutko
Mam taki sam problem jak Wicon - rozbudowałem skrypty Pecka i on zawsze był w magazynie, tylko po rozpoczęciu questa od Andre powinien zmienić sobie rutynę i teleportować się do waypointa, ale to nie działa.
 
Lieb Vaterland magst ruhig sein

Wicon

Wicon

Użytkownicy
posty147
Propsy5
  • Użytkownicy

Wicon

Usunięcie postaci- Quarhodron
#9 2012-05-20, 11:19(Ostatnia zmiana: 2012-05-20, 11:21)
Dlaczego nie znika? W jaki sposób to AI_Teleport dodałeś? Powinno być:
AI_Teleport (instance_postaci, "TOT");"TOT" to waypoint znajdujący się we wszystkich światach w g2nk i będący właśnie składowiskiem ciał "znikniętych" npc.

Dodałem w B_Content tak jak napisał wcześniej jasiu:
if (Mordred_Zemstadokonana == TRUE)
{
if (B_RemoveMordred_OneTime == FALSE)
{
AI_Teleport (NONE_20079_Mordred, "TOT");
B_RemoveNpc (NONE_20079_Mordred);
Snd_Play ("MFX_GhostVoice");
Snd_Play ("MFX_Firestorm_Cast");
B_RemoveMordred_OneTime = TRUE;
GhostAttackWarn = 0;
};
};
};

Czyli, po dialogu po którym chcę aby postać zniknęła dodaję linijkę :Mordred_Zemstadokonana = TRUE;
Po dialogu nie dodawałem już AI_Teleport, bo to jest w pliku Remove_Quarhodron. Więc? Po dialogu też trzeba dodać? Wydaje mi się, że nie.

Edit: Skopiowane od Quarhodrona!
 

Zucklov

Zucklov

Quest Pack Team
Sztywniutko
posty1220
Propsy1241
ProfesjaSkrypter
  • Quest Pack Team
  • Sztywniutko
Btw: Funkcja
GhostAttackWarn = 0;Oznacza, że od teraz duch nie będzie w nas ciskać piorunami :P
 
Lieb Vaterland magst ruhig sein

Wicon

Wicon

Użytkownicy
posty147
Propsy5
  • Użytkownicy
Btw: Funkcja
GhostAttackWarn = 0;Oznacza, że od teraz duch nie będzie w nas ciskać piorunami :P

Dobrze wiedzieć ;p
Ale to nadal nie rozwiązuje mojego problemu.
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
// ***************************************************
//   B_RemoveQuarhodron
// ***************************************************
var int B_RemoveQuarhodron_OneTime;
var int B_RemoveRhademes_OneTime;
func int B_RemoveGhost ()
{
if (Ghost_SCKnowsHow2GetInAdanosTempel == TRUE)
{
if (SC_SummonedAncientGhost == TRUE)
&& (B_RemoveQuarhodron_OneTime == FALSE)
{
AI_Teleport (NONE_ADDON_111_Quarhodron, "TOT");
B_RemoveNpc (NONE_ADDON_111_Quarhodron);
Snd_Play ("MFX_GhostVoice");
Snd_Play ("MFX_Firestorm_Cast");
B_RemoveQuarhodron_OneTime = TRUE;
GhostAttackWarn = 0;
};
};

if (ADW_ADANOSTEMPEL_STONEGRD_TRIGG_FUNC_01_OneTime == TRUE)
{
if (SC_TookRhademesTrap == TRUE)
&& (B_RemoveRhademes_OneTime == FALSE)
{
AI_Teleport (NONE_ADDON_112_Rhademes, "TOT");  
B_RemoveNpc (NONE_ADDON_112_Rhademes);
if (SC_TalkedToRhademAfter == TRUE)
{
Snd_Play ("MFX_GhostVoice");
Snd_Play ("MFX_Firestorm_Cast");
};
B_RemoveRhademes_OneTime = TRUE;
GhostAttackWarn = 0;
};
};
};                          

To Ci powinno pomóc...
Jest tu opisane usuwanie Quarhodrona i Rhademsa.

Trzeba także ustawić waypoint "TOT" w skrypcie postaci.

FUNC VOID Rtn_TOT_111 ()
{
TA_Ghost   (08,00,23,00,"TOT");
    TA_Ghost (23,00,08,00,"TOT");
};
 
: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.

Wicon

Wicon

Użytkownicy
posty147
Propsy5
  • Użytkownicy

Wicon

Usunięcie postaci- Quarhodron
#13 2012-05-20, 15:21(Ostatnia zmiana: 2012-05-20, 15:22)
// ***************************************************
//   B_RemoveQuarhodron
// ***************************************************
var int B_RemoveQuarhodron_OneTime;
var int B_RemoveRhademes_OneTime;
var int B_RemoveMordred_OneTime;
func int B_RemoveGhost ()
{
if (Ghost_SCKnowsHow2GetInAdanosTempel == TRUE)
{
if (SC_SummonedAncientGhost == TRUE)
&& (B_RemoveQuarhodron_OneTime == FALSE)
{
AI_Teleport (NONE_ADDON_111_Quarhodron, "TOT");
B_RemoveNpc (NONE_ADDON_111_Quarhodron);
Snd_Play ("MFX_GhostVoice");
Snd_Play ("MFX_Firestorm_Cast");
B_RemoveQuarhodron_OneTime = TRUE;
GhostAttackWarn = 0;
};
};

if (ADW_ADANOSTEMPEL_STONEGRD_TRIGG_FUNC_01_OneTime == TRUE)
{
if (SC_TookRhademesTrap == TRUE)
&& (B_RemoveRhademes_OneTime == FALSE)
{
AI_Teleport (NONE_ADDON_112_Rhademes, "TOT");  
B_RemoveNpc (NONE_ADDON_112_Rhademes);
if (SC_TalkedToRhademAfter == TRUE)
{
Snd_Play ("MFX_GhostVoice");
Snd_Play ("MFX_Firestorm_Cast");
};
B_RemoveRhademes_OneTime = TRUE;
GhostAttackWarn = 0;
};
};                          

if (Mordred_Zemstadokonana == TRUE)
{
if (B_RemoveMordred_OneTime == FALSE)
{
AI_Teleport (NONE_20079_Mordred, "TOT");
B_RemoveNpc (NONE_20079_Mordred);
Snd_Play ("MFX_GhostVoice");
Snd_Play ("MFX_Firestorm_Cast");
B_RemoveMordred_OneTime = TRUE;
GhostAttackWarn = 0;
};
};
};

Tego się trzymałem! I nie pomogło!

Rutyny postaci:
   daily_routine       = Rtn_Start_20079;
};

FUNC VOID Rtn_Start_20079 ()
{
   TA_Ghost      (08,00,22,00,"NW_CRYPT_IN_01");
   TA_Ghost      (22,00,08,00,"NW_CRYPT_IN_01");
};

FUNC VOID Rtn_TOT_20079 ()
{
   TA_Ghost      (08,00,22,00,"TOT");
   TA_Ghost      (22,00,08,00,"TOT");
};
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
                      AI_Teleport (self, "TOT");
                        B_RemoveNpc (self);

To musi zadziałać, daj to przed AI_StopProcessInfos(); - jak nie pomoże to pod, ale przed powinno zadziałać.
 
: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.

Wicon

Wicon

Użytkownicy
posty147
Propsy5
  • Użytkownicy
No niestety nie pomogło. Gdy dodałem w dialogu AI_Teleport to postać znikła, ale nie włączyły się te efekty co u Quearhodrona.

Na szczęście znalazłem rozwiązanie problemu ;p

W pliku B_RemoveQuarhodron, w remove mojego npc wystarczyło usunąć jedną linijkę. Mianowicie:
B_RemoveNpc (NONE_20079_Mordred); // Gdy ją usunąłem postać po kilku sekundach od zakończenia dialogu znikła i włączyły się wszystkie efekty, które chciałem mieć.
 Dzięki wszystkim którzy mnie lekko naprowadzili, tym co się należy daje propsa. Dzięki.

Temat do zamknięcia.
 


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