Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 76 77 78 79 80 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
Tiger Greyhawk
сообщение Aug 26 2005, 02:29
Сообщение #1926



Иконки Групп

Класс: Обыватель
Характер: Chaotic Good
Раса: Человек
NWN: Скриптинг [Sn]



2 Daemonix
Правь скрипт на OnEnter этого сундука. Или удали его вообще. ;)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Aug 26 2005, 08:13
Сообщение #1927


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Daemonix убери все скрипты в слотах сундука и положи в инвентарь свой предмет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vitalist
сообщение Aug 26 2005, 14:50
Сообщение #1928


Level 4
**

Класс: Обыватель
Характер: Lawful Good
Раса: Человек



Что-то не хочет... Наверняка, я где-то не прав: в конце диалога пихаю этот скрипт, в другой области ставлю "точку" с нужным тэгом?
А как телепортировать просто в другую локацию?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Aug 26 2005, 16:18
Сообщение #1929


Level 7
**

Класс: Маг
Характер: Lawful Neutral
Раса: Эльф



прото в другую нельзя. Надо поставить в другой локации вэйпоинт и телепортироваться туда...

Кажеться так...
Neverwinter Script Source
void main()
{

object oPC = GetPCSpeaker();

AssignCommand(oPC, ClearAllActions());

object oTarget;
location lTarget;
oTarget = GetWaypointByTag("Тэг вэйпоинта");

lTarget = GetLocation(oTarget);

if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;

DelayCommand(3.0, AssignCommand(oPC, ActionJumpToLocation(lTarget)));

oTarget = oPC;

//Визуальный эффект

int nInt;
nInt = GetObjectType(oTarget);

if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_UNSUMMON), oTarget);
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_UNSUMMON), GetLocation(oTarget));

}


Сообщение отредактировал DEM - Aug 26 2005, 16:19
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vitalist
сообщение Aug 26 2005, 16:49
Сообщение #1930


Level 4
**

Класс: Обыватель
Характер: Lawful Good
Раса: Человек



DEM :good:! Теперь все в шоколаде...
Можно ли задать интервал между игроком и NPC во время разговора? Мне хотелось бы, чтобы игрок не подходил так близко.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Aug 26 2005, 16:52
Сообщение #1931


Level 7
**

Класс: Маг
Характер: Lawful Neutral
Раса: Эльф



Да? Сам был не уверен... Такие скрипты для меня впервые :)
QUOTE
Можно ли задать интервал между игроком и NPC во время разговора? Мне хотелось бы, чтобы игрок не подходил так близко.


Скорее всего можно, но как... :xz:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Aug 26 2005, 16:58
Сообщение #1932


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Можно, написать кутсценку :yes: (если уж сильно надо, я напишу)
Еще игрока, закинуть на вайпоинт :D

Сообщение отредактировал Dik Morris - Aug 26 2005, 16:58
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Aug 26 2005, 17:29
Сообщение #1933


Level 7
**

Класс: Маг
Характер: Lawful Neutral
Раса: Эльф



Ну а вот, если не хочешь эффекта, но вместе со всей партией :)


Neverwinter Script Source
void main()
{

object oPC = GetPCSpeaker();

AssignCommand(oPC, ClearAllActions()); //почистить все ДЕЙСТВИЯ у игрока

object oTarget;
location lTarget;
oTarget = GetWaypointByTag("тэг вэйпоинта");

lTarget = GetLocation(oTarget);

if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;

oTarget=GetFirstFactionMember(oPC);

while (GetIsObjectValid(oTarget))
   {
   AssignCommand(oTarget, ActionJumpToLocation(lTarget));
   oTarget=GetNextFactionMember(oPC);
   }

}


Сообщение отредактировал DEM - Aug 26 2005, 17:33
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 26 2005, 20:29
Сообщение #1934


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE (Vitalist @ Aug 26 2005, 16:49)
Можно ли задать интервал между игроком и NPC во время разговора? Мне хотелось бы, чтобы игрок не подходил так близко.


Vitalist, можно растянуть перед НПС тригер(если НПС стоячий) и на OnEnter написать такой скрипт. Тогда НПС сам начнет диалог на минимально допустимом расстоянии.

Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
object oNPC = GetObjectByTag("ТАГ НЕВИДИМОГО ТРУПА");

if(GetIsPC(oPC))
    {
    AssignCommand(oPC, ClearAllActions());
    AssignCommand(oPC, SetCommandable(FALSE, oPC));
    AssignCommand(oNPC, ActionStartConversation(oPC));
    }
}


И обязательно, на последнюю фразу в диалоге, на вкладку совершенных действий нужно поставить следующее.

Neverwinter Script Source
void main()
{
object oPC = GetPCSpeaker();
SetCommandable(TRUE, oPC);
}


Можно еще написать на onPerseption, но он не такой надежный.

Neverwinter Script Source
void main()
{
object oPercep = GetLastPerceived();

if (GetLastPerceptionSeen() && GetIsPC(oPercep))
    {
    AssignCommand(oPercep, ClearAllActions());
    AssignCommand(oPercep, SetCommandable(FALSE, oPercep));
    AssignCommand(OBJECT_SELF, ActionStartConversation(oPercep));
    }
}


Не забудь на последнюю строчку в диалоге поставить скрипт!

З.Ы Если поставить НПС максимальную дальность чувствительности, то вроде все ОК и на OnPerseption. Только надо учитывать, где НПС будет гулять, чтобы откуда бы ПС на него не выскочил, он был достаточно далеко.
Вот замечательная возможность заставить ПС договорить с НПС без использования КАТСЦЕН.


А еще можно во как.
Растягиваешь перед НПС тригер(длинный), короче от длины тригера зависит расстояние разговора(сам разберешься и подстроишь как надо). В начале тригера(со стороны ПС) ставешь Труп(невидимый - есть в палитре), ему ставешь имя и портрет НПС, а в скрипте ставешь его ТАГ. Так можно какое угодно расстояние сделать.


Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
object oInv = GetObjectByTag("ТАГ НЕВИДИМОГО ТРУПА");

if(GetIsPC(oPC))
    {
    AssignCommand(oPC, ClearAllActions());
    AssignCommand(oPC, SetCommandable(FALSE, oPC));
    AssignCommand(ooInv, ActionStartConversation(oPC));
    }
}


На OnPerseption то же можно, только прейдется создавать объект рядом с увиденным ПС. Поэтому готовый труп надо будет добавить в палитру с уникальным РесРефом, вот скрипт.

Neverwinter Script Source
void main()
{
object oPercep = GetLastPerceived();

if (GetLastPerceptionSeen() && GetIsPC(oPercep))
    {
    AssignCommand(oPercep, ClearAllActions());
    AssignCommand(oPercep, SetCommandable(FALSE, oPercep));
    object iTrup = CreateObject(OBJECT_TYPE_PLACEABLE, "РесРеф", GetLocation(oPercep));
    AssignCommand(iTrup, ActionStartConversation(oPercep));
    }
}


Сообщение отредактировал -fenix- - Aug 26 2005, 21:50
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Daemonix
сообщение Aug 27 2005, 00:14
Сообщение #1935


Level 10
***

Класс: Мастер Оружия
Характер: Lawful Good
Раса: Человек



Вот скрипт. Но не компилируется! :xz:
CODE
void main()
{

   if (GetLocalInt(OBJECT_SELF, "nTriggered" == 1)
       return;
   SetLocalInt(OBJECT_SELF, "nTriggered", 1);
object oNPC=GetObjectByTag("nerilhome_guard_vick";
AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_LOOPING_TALK_FORCEFUL,1.0,10.0));
AssignCommand(oNPC, ActionSpeakString("Íàì íóæíî ñðî÷íî ïîãîâîðèòü!");
}


Не знаю почему... не я писал..
Добавлено в [mergetime]1125090924[/mergetime]
Самое обидное, что я ни фига не знаю.. поэтому и исправить не могу.. могу тока юзать, но учусь, учусь, учусь, учусь, учусь.........
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Aug 27 2005, 00:38
Сообщение #1936


Level 7
**

Класс: Маг
Характер: Lawful Neutral
Раса: Эльф



Ну во первых у тебя допущены ма-а-аленькие ошибки.. Типа, нету второй скобки и т.д.
Вот так будет правильнее, но всё равно не апускаеться...
Neverwinter Script Source
void main()
{
  if (GetLocalInt(OBJECT_SELF, "nTriggered"==1))
      return;
  SetLocalInt(OBJECT_SELF, "nTriggered", 1);
object oNPC=GetObjectByTag("nerilhome_guard_vick");
AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_LOOPING_TALK_FORCEFUL,1.0,10.0));
AssignCommand(oNPC, ActionSpeakString("Iai io?ii n?i?ii iiaiai?eou!"));
}

Добавлено в [mergetime]1125092393[/mergetime]
А что собственно этот скрипт должен делать?
Добавлено в [mergetime]1125092482[/mergetime]
Не ну лично я понимаю, что происходит анимация разговора, а потом НеПиСь что-то говорит... А зачем тебе нужно всё до этого?
Добавлено в [mergetime]1125092692[/mergetime]
В общем у тебя где-то тут ошибка...
Neverwinter Script Source
if (GetLocalInt(OBJECT_SELF, "nTriggered"==1))
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Daemonix
сообщение Aug 27 2005, 01:09
Сообщение #1937


Level 10
***

Класс: Мастер Оружия
Характер: Lawful Good
Раса: Человек



А этот скриптик должен делать так, чтобы один непись всё время размахивал руками и кричал, что нужно поговорить.

Сообщение отредактировал Daemonix - Aug 27 2005, 01:10
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Aug 27 2005, 01:14
Сообщение #1938


Level 7
**

Класс: Маг
Характер: Lawful Neutral
Раса: Эльф



Хм... я ты не пробовал поставить на OnHeartBeatоставить просто:
Neverwinter Script Source
void main()
{
object oNPC=GetObjectByTag("nerilhome_guard_vick");
AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_LOOPING_TALK_FORCEFUL,1.0,10.0));
AssignCommand(oNPC, ActionSpeakString("Iai io?ii n?i?ii iiaiai?eou!"));
}


Правда, тогда НЕПИСЬ будет просто орать каждые 6 сек... Но как-то можно исправить....
Добавлено в 01:30
А всё оказалось намного проще :) Ставишь на OnPerception
Neverwinter Script Source
void main()
{
object oNPC = GetObjectByTag("NPC");
AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_LOOPING_TALK_FORCEFUL,1.0,10.0));
AssignCommand(oNPC, SpeakString("ЭЙ!! Волочи сюда свои кривые ноги!!!!"));
}


Суть такая. Когда НЕПИСЬ видит игрока (поэтому и ставили на OnPerception), он (НЕПИСЬ) махает руками 10 сек и говорит:"ЭЙ!! Волочи сюда свои кривые ноги!!!!" Я поменял ActionSpeakString, на "SpeakString", а иначи пришлось бы ждать 10 сек и тольок потом НЕПИСЬ бы что-то сказал... Если тебе надо ЧТо бы это происходило когда ты натупаешь на триггер, то ставь на "OnEnter" триггера

Сообщение отредактировал DEM - Aug 27 2005, 01:34
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 27 2005, 09:26
Сообщение #1939


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE (DEM @ Aug 27 2005, 00:38)
В общем у тебя где-то тут ошибка...


Строчка эта должна вот так выглядить.
Neverwinter Script Source
if (GetLocalInt(OBJECT_SELF, "nTriggered") ==1 )

Вам видь нужно получить переменную и сравнить ее с 1, а тут сравнение в получении переменной, за скобками следите.

QUOTE (DEM @ Aug 27 2005, 01:14)
Хм... я ты не пробовал поставить на OnHeartBeatоставить просто:

Не надо такое на хертбит ставить, хотя бы потому, что анимация длиться 10 секунд, а скрипт будет работать каждые 6.

QUOTE (DEM @ Aug 27 2005, 01:14)
Суть такая. Когда НЕПИСЬ видит игрока (поэтому и ставили на OnPerception),

И где это в скрипте? тут надо не НПС опеределять(он OBJECT_SELF), а увиденного чела и проверять является ли увиденный героем, вот
Neverwinter Script Source
void main()
{
object oPercep = GetLastPerceived();

if (GetLastPerceptionSeen() && GetIsPC(oPercep))
{
AssignCommand(OBJECT_SELF, ActionPlayAnimation(ANIMATION_LOOPING_TALK_FORCEFUL,1.0,10.0));
AssignCommand(OBJECT_SELF, SpeakString("ЭЙ!! Волочи сюда свои кривые ноги!!!!"));
}
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Aug 27 2005, 09:43
Сообщение #1940


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE (Vitalist @ Aug 26 2005, 19:49)
Можно ли задать интервал между игроком и NPC во время разговора? Мне хотелось бы, чтобы игрок не подходил так близко.

Смотрел я на ваши художества и не выдержал...
-fenix-, ты лексикон читаешь хоть иногда? Не надо изобретать велосипед.
Neverwinter Script Source
// Cause the action subject to move to a certain distance from oMoveTo.
// If there is no path to oMoveTo, this command will do nothing.
// - oMoveTo: This is the object we wish the action subject to move to
// - bRun: If this is TRUE, the action subject will run rather than walk
// - fRange: This is the desired distance between the action subject and oMoveTo
// * No return value, but if an error occurs the log file will contain
//  "ActionMoveToObject failed."
void ActionMoveToObject(object oMoveTo, int bRun=FALSE, float fRange=1.0f)


Вот так будет за пять метров останавливаться. Двоечники...

Neverwinter Script Source
ActionMoveToObject(oPC, FALSE, 5.0f);


Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 27 2005, 09:48
Сообщение #1941


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



Aiwan, я это понимаю. Но скажем если нужно 15, 20 метров? Игрока так можно подвести, но НПС все равно подойдет к игроку, чтобы начать разговор. Не может он на 15, 20 метрах говорить. Пролема как я понял в этом или нет :xz:

Только там скрипты нужно немного доделать. Скажем и на тригере лучше создавать невидимый объект, потому что тригеры могут быть разных размеров. А на последний строчке в диалоге нужно еще сделать удаление этого объекта, особенно если скрипт будет несколько раз выполняться.

Сообщение отредактировал -fenix- - Aug 27 2005, 09:56
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Aug 27 2005, 11:08
Сообщение #1942


Level 7
**

Класс: Маг
Характер: Lawful Neutral
Раса: Эльф



QUOTE
Aiwan, я это понимаю. Но скажем если нужно 15, 20 метров? Игрока так можно подвести, но НПС все равно подойдет к игроку, чтобы начать разговор. Не может он на 15, 20 метрах говорить. Пролема как я понял в этом или нет


Зачем так далеко? Тут уж легче мне кажеться поставить еще один невидимый объект, с таким же именем и портретом, и пусть игрок говорит с ним...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 27 2005, 12:49
Сообщение #1943


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



DEM, а это что по твоему?
QUOTE (-fenix- @ Aug 26 2005, 20:29)
В начале тригера(со стороны ПС) ставешь Труп(невидимый - есть в палитре), ему ставешь имя и портрет НПС, а в скрипте ставешь его ТАГ.

2Aiwan, я кажись протупил!
Эту функцию можно использовать, чтобы назначить точное расстояние разговора, но на тригере это наверное не так актуально, а вот на OnPerseption, чтобы не маяться с настройкой чувств, самое оно. Но запускаться она будет все равно с тех скриптов и сам разговор будет осуществляться то же. Я с самого начала подумал об этой функции, но потом нарисовал тригер и забыл о ней :sorry:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DASADA
сообщение Aug 27 2005, 22:16
Сообщение #1944


Level 3
*

Класс: Некромант
Характер: Neutral Evil
Раса: Человек



Люди что мне надо сделать, чтобы чела заставить идти из одной точки в другую. :unsure:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Aug 28 2005, 07:14
Сообщение #1945


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE (DASADA @ Aug 28 2005, 01:16)
Люди что мне надо сделать, чтобы чела заставить идти из одной точки в другую.

Чел - это твой младший брат? И ты его за пивом не можешь отправить в точку?
Надо скомандовать так: "ЧЕЛ! ИДИ ИЗ ОДНОЙ ТОЧКИ В ДРУГУЮ!" :DG:
Что за идиотские вопросы? Понятно, что тема для абсолютных глупостей, но не для тупости же. :xz:
Что бы получить нормальный ответ, надо задать нормально вопрос. А именно. Какой чел? РС, НПС, ДМ? В какие точки и при каких условиях? В разговоре, или просто пинать бычки на двух точках? Сделай два вейпоинта в радиальном меню НПС. Он будет ходить по ним вечно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Aug 28 2005, 10:43
Сообщение #1946


Level 7
**

Класс: Маг
Характер: Lawful Neutral
Раса: Эльф



Айван, у тебя сегодня день не задался? :xz:, это ИМХО не красиво... А не правильная формулировка вопроса, ну... Вспомни себя когда ты стал изучать ТУЛСЕТ вначале....
QUOTE
Чел - это твой младший брат? И ты его за пивом не можешь отправить в точку?
Надо скомандовать так: "ЧЕЛ! ИДИ ИЗ ОДНОЙ ТОЧКИ В ДРУГУЮ!"
Что за идиотские вопросы? Понятно, что тема для абсолютных глупостей, но не для тупости же. 


В общем делай так:
Neverwinter Script Source
object oNPC = GetObjectByTag("ТЭГ НЕПИСИ КОТОРУЮ ТЫ ПОСЫЛАЕШЬ");
WP1 = GetWaypointByTag("тэг первого вэйпоинта");
WP2 = GetWaypointByTag("тэг второго вэйпоинта");
WP3 = GetWaypointByTag("тэг третьего вэйпоинта");
AssignCommand(oNPC, ActionMoveToObject(WP1));
AssignCommand(oNPC, ActionMoveToObject(WP2));
AssignCommand(oNPC, ActionMoveToObject(WP3));


Это ставишь между "voi main ()" и скобочек...



А вообще про анимацию и т.д. ПРошу на старую версию ВРГ www.wrg.ru/old (кажеться так), обязательно просмотрите статью по анимации, мне она помогает всегда :good:
Добавлено в [mergetime]1125221270[/mergetime]
Neverwinter Script Source
object oPC = GetEnteringObject
WP1 = GetWaypointByTag("тэг первого вэйпоинта");
WP2 = GetWaypointByTag("тэг второго вэйпоинта");
WP3 = GetWaypointByTag("тэг третьего вэйпоинта");
AssignCommand(oPC, ActionMoveToObject(WP1));
AssignCommand(oPC, ActionMoveToObject(WP2));
AssignCommand(oPC, ActionMoveToObject(WP3));



Это если тебе надо послать игрока из точки в точку...

Сообщение отредактировал DEM - Aug 28 2005, 10:47
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DASADA
сообщение Aug 28 2005, 12:36
Сообщение #1947


Level 3
*

Класс: Некромант
Характер: Neutral Evil
Раса: Человек



Ну ладно тебе Aiwan :unsure: . Спать хотелось, вот и по быстрому решил вопрос написать. :this:
А если так то вот что я хочу, чтобы НПС ходил из одного города в другой или чтоб по городу шарил.
А можно чтоб НПС появлялся и шел по WP, а когда умирал то через какое-то врем респаундил и опять шел.
Люди, а чё это за фишка я когда кого ни будь атакую то меня выкидывает из игры (В своем модуле).

DEM спаибо. :shout:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Aug 28 2005, 12:47
Сообщение #1948


Level 7
**

Класс: Маг
Характер: Lawful Neutral
Раса: Эльф



QUOTE
чтобы НПС ходил из одного города в другой
... тогда гадо делать прыжки из одного вэйпоинта в другой.. ну конечно если у тебя города не в одной локации :):)
Добавлено в [mergetime]1125222471[/mergetime]
напишу когда приду и если уже кто-нить не ответит...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 28 2005, 15:58
Сообщение #1949


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE (DASADA @ Aug 28 2005, 12:36)
А если так то вот что я хочу, чтобы НПС ходил из одного города в другой

Есть две функции
Neverwinter Script Source
void ActionMoveToLocation(location lDestination, int bRun=FALSE)

Движение к локации
location lDestination - локация, к кторой идти
int bRun=FALSE - если TRUE, то побежит, если FALSE, то пойдет
Если путь сложный, то он может не дойти, тогда имеет смысл подвести его поближе и тогда уже давать команду.

Neverwinter Script Source
void ActionForceMoveToLocation(location lDestination, int bRun=FALSE, float fTimeout=30.0f)

Движение к локации
location lDestination - локация, к кторой идти
int bRun=FALSE - если TRUE, то побежит, если FALSE, то пойдет
Появляется еще одно значение
float fTimeout=30.0f - время за которое он должен дойти. Если за это время он не дойдет, то произойдет джамп с текущего места.
Вот пример
Neverwinter Script Source
void main()
{
object oWP = GetObjectByTag("ТАГ ВЕЙПА");
location lLocation = GetLocation(oWP);

AssignCommand(OBJECT_SELF, ActionForceMoveToLocation(lLocation, FALSE, 10.0));
}

QUOTE (DASADA @ Aug 28 2005, 12:36)
или чтоб по городу шарил

Нажми на НПС левой кнопкой, потом нажми на нужном месте правую и выбери "Создать точку маршрута", от НПС до точки будет видна линия. Таких точек ставь сколько хочешь и при загрузки он начнет ходить по ним без остановки.

QUOTE (DASADA @ Aug 28 2005, 12:36)
А можно чтоб НПС появлялся и шел по WP, а когда умирал то через какое-то врем респаундил и опять шел.

Можно так, довольно интересно, на OnDeath НПС ставешь скрипт, вейпы создаешь, как написано выше.

Neverwinter Script Source
void main()
{
object oNPC = OBJECT_SELF;
effect eEffect = EffectResurrection();

SetIsDestroyable(FALSE);
DelayCommand(5.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, OBJECT_SELF));
DelayCommand(5.5, ActionCastSpellAtObject(SPELL_GREATER_RESTORATION, OBJECT_SELF, METAMAGIC_ANY, TRUE));
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Aug 28 2005, 16:56
Сообщение #1950


Level 7
**

Класс: Маг
Характер: Lawful Neutral
Раса: Эльф



QUOTE
Neverwinter Script Source
object oWP = GetObjectByTag("ТАГ ВЕЙПА");



Э-э-э-э... А разве вэйпоинты перечисляются через GetObjectByTag??? Я думал, через GetWaypointByTag, или так тоже можно??
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

205 страниц V  « < 76 77 78 79 80 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 8th June 2024 - 07:20