Spróbuj teraz jak masz tego npc z tym visualem Skopiować i przerobić i wkleić niżej dialog betsy w pliku: Content/story/B_AssignAmbientInfos/B_Liesel.d
Kluczowe pewnie tutaj będzie:
npc = Follow_Sheep;
Musisz "Follow_Sheep" zmienić na instance twojego npc
Jeśli to nie pomoże to spróbuj dodać swojemu npc rutynę...
A dokładnie to: aivar[AIV_MM_RoamStart] = OnlyRoutine;
start_aistate = ZS_MM_Rtn_Follow_Sheep;
Zamiast standardowej rutyny typowej dla npc.
Eeediiiit:
Jak korzystasz z czystych skryptów to masz pustą funkcję w pliku content/AI/monster/RTN_Monster/ZS_MM_RTN_Follow_Sheep.d
Zawartość tego PLIKU nie funkcji!!! powinna być taka:
// **********************
// ZS_MM_Rtn_Follow_Sheep
// **********************
func void ZS_MM_Rtn_Follow_Sheep()
{
Npc_SetPercTime (self, 1);
Npc_PercEnable (self, PERC_ASSESSPLAYER , B_MM_AssessPlayer);
Npc_PercEnable (self, PERC_ASSESSTALK , B_AssessTalk);
Npc_PercEnable (self, PERC_ASSESSMAGIC , B_AssessMagic);
//ACHTUNG - AIV_TAPOSITION wird benutzt bei Abgabe im Kloster!!!
};
func int ZS_MM_Rtn_Follow_Sheep_Loop ()
{
if (self.aivar[AIV_PARTYMEMBER] == TRUE)
{
if (Npc_GetDistToNpc (self, hero) > 500)
{
if !C_BodyStateContains(self, BS_SWIM)
{
AI_SetWalkmode (self, NPC_RUN);
};
AI_GotoNpc (self, hero);
}
else
{
AI_TurnToNpc (self, hero);
self.wp = Npc_GetNearestWP (self);
};
}
else
{
var int randomMove;
randomMove = Hlp_Random(3);
if (randomMove == 0) {AI_PlayAni(self, "R_ROAM1");};
if (randomMove == 1) {AI_PlayAni(self, "R_ROAM2");};
if (randomMove == 2) {AI_PlayAni(self, "R_ROAM3");};
};
return LOOP_CONTINUE;
};
func void ZS_MM_Rtn_Follow_Sheep_End ()
{
};
// ********************************************
// ZS_MM_Rtn_Follow_Sheep_Balthasar
// ********************************************
func void ZS_MM_Rtn_Follow_Sheep_Balthasar()
{
Npc_SetPercTime (self, 1);
Npc_PercEnable (self, PERC_ASSESSPLAYER , B_MM_AssessPlayer);
};
func int ZS_MM_Rtn_Follow_Sheep_Balthasar_Loop ()
{
if (Npc_GetDistToWP(Balthasar, "NW_BIGMILL_FARM3_BALTHASAR") > 500)
{
if (Npc_GetDistToNpc (self, Balthasar) > 500)
{
if !C_BodyStateContains(self, BS_SWIM)
{
AI_SetWalkmode (self, NPC_RUN);
};
AI_GotoNpc (self, Balthasar);
}
else
{
AI_TurnToNpc (self, Balthasar);
self.WP = Npc_GetNearestWP (self);
};
}
else
{
AI_StartState (self, ZS_MM_Rtn_Roam, 1, "NW_BIGMILL_FARM3_BALTHASAR");
};
return LOOP_CONTINUE;
};
func void ZS_MM_Rtn_Follow_Sheep_Balthasar_End ()
{
};