51
« dnia: 2019-02-24, 15:25 »
Cześć, zwracam się do was z paroma małymi problemami. Wymyśliłem sobie, że po dialogu gdy kliknę opcję "KONIEC" przeteleportuje mnie do jakiegoś miejsca na mapie i to jako nieprzytomną osobę plus na jakiś czas będzie zaciemniony ekran. Wiecie może jak to zrobić?
Na razie mam tylko to pierwsze i mam kłopot z tym, że po teleportacji żadna istota nie zwraca na mnie uwagi, potwory nie atakują a NPC nie zaczepiają. Naprawia się to dopiero gdy sam zagadam jakiegoś NPC ale muszę to robić dwa razy bo za pierwszym razem to się odbugowuje a dopiero za drugim mam rozmowę. Ten sam bug jest w Grupach Oszustów 2 gdzie bandyci nas nie atakują (bo jesteśmy jakby w dialogu) co niestety dopiero teraz zrozumiałem. Tak wygląda mój skrypt.
FUNC VOID DIA_Kusog_kusogprorokending_END()
{ Npc_ClearAIQueue(hero);
Wld_StopEffect("DEMENTOR_FX");
Snd_Play ("MFX_FEAR_CAST" );
AI_StopProcessInfos (self);
AI_StopProcessInfos (hero);
AI_Teleport (hero, "WP_CAVEB_01_WAY");
AI_Wait(hero, 1);
};
Jeśli usunę któreś z AI_StopProcessInfos to wtedy nie mogę się ruszać i nie mam interfejsu.
Oprócz tego odkryłem jeszcze jednego dość dziwnego buga. Jest taki moment, gdzie NPC w trakcie dialogu zmienia zbroję, imię a także wykonuje animację i parę efektów. Wszystko działa dopóki gramy bez zapisu ale jeśli zrobimy zapis przed tym dialogiem i go wczytamy to wykonają się tylko efekty, po prostu pomijane jest to co się wykonuje normalnie bez zapisu. Kod dialogu wygląda następująco, usunąłem dialogi bo byłby mały spoiler, zresztą one wykonują się prawidłowo.
var C_NPC Kusog;
Kusog = Hlp_GetNpc(BDT_2001_Kusog);
Kusog.name = "Prorok";
Npc_ClearAIQueue(hero);
Npc_ClearAIQueue(self);
Wld_PlayEffect("DEMENTOR_FX", hero, hero, 0, 0, 0, FALSE );
Wld_PlayEffect("spellFX_Fear_GROUND", self, self, 0, 0, 0, FALSE );
Wld_PlayEffect("spellFX_MassDeath", self, self, 0, 0, 0, FALSE );
Wld_PlayEffect("spellFX_Thunderstorm_Flash", self, self, 0, 0, 0, FALSE );
Wld_PlayEffect("spellFX_Thunderstorm_Flash", self, self, 0, 0, 0, FALSE );
Wld_PlayEffect("spellFX_Thunderstorm_Flash", self, self, 0, 0, 0, FALSE );
Wld_PlayEffect("spellFX_Thunderstorm_Flash", self, self, 0, 0, 0, FALSE );
Wld_PlayEffect("spellFX_Thunderstorm_Flash", self, self, 0, 0, 0, FALSE );
Wld_PlayEffect("spellFX_Thunderstorm_Flash", self, self, 0, 0, 0, FALSE );
Wld_PlayEffect("spellFX_MassDeath", self, self, 0, 0, 0, FALSE );
Snd_Play ("SLEEPERCAVE_01");
CreateInvItem (BDT_2001_Kusog, itar_dementor);
AI_EquipArmor (BDT_2001_Kusog, itar_dementor);
AI_PlayAni (BDT_2001_Kusog,"T_PRACTICEMAGIC3");
//Tu są dialogi
AI_StopProcessInfos (self);
AI_StopProcessInfos (self);
Wld_InsertNpc(BDT_2007_Prorok,"WP_CAVE_ZOMB");
Wld_InsertNpc(BDT_2008_Prorok,"WP_CAVE_ZOMB");
Wld_InsertNpc(BDT_2009_Prorok,"WP_CAVE_ZOMB");
Z góry dzięki za pomoc