ну вот я ставлю нищего даю ему тег N ставлю точку маршрута на эту же локу где и нищий даю ей тег EXIT потом переключаюсь на другую локу ставлю там точку маршрута с тегом TROP делаю скрипт который выглядит так
Neverwinter Script
//::///////////////////////////////////////
//:: УНИВЕРСАЛЬНОЕ ПЕРЕМЕЩЕНИЕ СУЩЕСТВА
//:: Created By: Gennady
//:: FileName: p_object
//:://////////////////////////////////////
void main()
{
object oPC = GetFirstPC();
object oSelf = OBJECT_SELF;
object oPoint1 = GetObjectByTag("TROP_N"+ GetTag(oSelf));
object oPoint2 = GetNearestObjectByTag("EXIT_N"+ GetTag(oSelf));
object oDoor = GetNearestObject(OBJECT_TYPE_DOOR, oPoint2);
location LOC = GetLocation(oSelf);
effect eJump = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3);
int INTEL = GetAbilityScore(oSelf, ABILITY_INTELLIGENCE);
//***** БЛОКИРОВКА ГЕРОЯ ******
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionWait(12.0));
AssignCommand(oPC, ActionDoCommand(SetCommandable(TRUE, oPC))); // разблокировать
DelayCommand(0.1, SetCommandable(FALSE, oPC)); // заблокировать
//*******************************
AssignCommand(oSelf, ClearAllActions());
DelayCommand(0.1, SetCommandable(FALSE, oSelf)); // заблокировать
DelayCommand(12.0, SetCommandable(TRUE, oSelf)); // разблокировать
DelayCommand(12.0, SetCommandable(TRUE, oPC)); // разблокировать
if (GetIsObjectValid(oPoint1))
{
if(INTEL != 4)
AssignCommand(oSelf, SpeakString("До встречи!"));
if (GetIsObjectValid(oPoint2))
{
AssignCommand(oSelf, ActionForceMoveToObject(oPoint2, FALSE, 0.0, 10.0));
if(GetDistanceBetween(oDoor, oPoint2)< 3.0 && GetLocked(oDoor)==FALSE)
{
AssignCommand(oSelf, ActionOpenDoor(oDoor));
AssignCommand(oSelf, ActionWait(2.0));
}
AssignCommand(oSelf, ActionDoCommand(SetCommandable(TRUE, oPC))); // разблокировать
AssignCommand(oSelf, ActionJumpToObject(oPoint1));
return;
}
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eJump, LOC);
DelayCommand(3.0, SetCommandable(TRUE, oPC)); // разблокировать
AssignCommand(oSelf, ActionWait(3.0));
AssignCommand(oSelf, ActionDoCommand(SetCommandable(TRUE, oSelf)));
AssignCommand(oSelf, ActionJumpToObject(oPoint1));
return;
}
else // Если нет точки, то удалить существо
{
if(INTEL != 4)
SpeakString("Прощай!");
AssignCommand(oSelf, SetIsDestroyable(TRUE, TRUE, TRUE));
if (GetIsObjectValid(oPoint2))
{
AssignCommand(oSelf, ActionForceMoveToObject(oPoint2, FALSE, 0.0, 10.0));
if(GetDistanceBetween(oDoor, oPoint2)< 3.0 && GetLocked(oDoor)==FALSE)
{
AssignCommand(oSelf, ActionOpenDoor(oDoor));
AssignCommand(oSelf, ActionWait(2.0));
}
AssignCommand(oSelf, ActionDoCommand(SetCommandable(TRUE, oPC))); // разблокировать
AssignCommand(oSelf, ActionDoCommand(DestroyObject(oSelf)));
return;
}
DelayCommand(3.0, SetCommandable(TRUE, oPC)); // разблокировать
DestroyObject(oSelf, 3.2);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eJump, LOC);
}
}
делаю нищему диалог по завершению которого должен сроботать этот скрипт нпс говорит говорит прощай и исчезает...
вроде все правельно делал...