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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 83 84 85 86 87 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
yudgi
сообщение Sep 27 2005, 13:13
Сообщение #2101


Level 4
**

Класс: Друид
Характер: Lawful Good
Раса: Человек



Мы сейчас говорим не о триггере, а о входе в локацию, там проверка будет другая или нет, за пояснение проверке буду особенно благодарна. Пояснение, за тем, чтобы я в следующий раз не задавала дурацкие вопросы по этому скрипту.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Sep 27 2005, 13:14
Сообщение #2102


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

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



Если вы про проверку локальными переменнами, то вот
Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
string sString = "бла-бла-бла, (вырезано цензурой)! ";

if(GetLocalInt(OBJECT_SELF, "START") != 1)
{
  AssignCommand(oPC, ActionSpeakString(sString));
  SetLocalInt(OBJECT_SELF, "START", 1);

}
}

Смысл вот в чем. Когда скрипт запускается, то идет проверка равна ли переменная "START" еденицы. При первом запуске такой переменной нет, значит пусто, знпчит это не равно 1, значит проверка успешна. Дальше идут действия и установка переменной на 1, поэтому в следующий раз скрипт дальше проверки не пойдет.

QUOTE (zmey @ Sep 27 2005, 13:35)
object oPC = GetEnteringObject(); -это для триггеров. Типа oPC -это тот, кто встал в триггер.

Это не для тригеров, это для всех событий в чьих названиях есть Enter - OnEnter, OnClientEnter.

Сообщение отредактировал -fenix- - Sep 27 2005, 13:22
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
yudgi
сообщение Sep 27 2005, 13:49
Сообщение #2103


Level 4
**

Класс: Друид
Характер: Lawful Good
Раса: Человек



Спасибо-fenix-я поняла.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Sep 27 2005, 17:13
Сообщение #2104


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

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



QUOTE (yudgi @ Sep 27 2005, 11:57)
Скрипт на то,когда РС первый раз входит в область и говорит фразу.

Видишь ли, есть задержка при загрузке локации и многое будет зависеть от машыны игрока. Некоторые твою фразу могут вообще не заметить. Лучше повеь ее на триггер, либо с задержкой секунд на 5.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Isendel
сообщение Sep 27 2005, 18:23
Сообщение #2105


Level 10
***

Класс: Бард
Характер: Chaotic Good
Раса: Эльф



Как сделать, чтобы НПС (1 шт.) следовал за игроком до определенного места, а затем верулся туда, откуда начал следовать за ПК?

Как сделать, чтобы после использования игроком двери один раз, она бы уже не стала открываться второй?

Как сделать, чтобы после определенной фразы, например, модуль заканчивался бы и начинался бы другой?

Заранее спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NedWarN
сообщение Sep 27 2005, 18:49
Сообщение #2106


Level 5
**

Класс: Маг
Характер: Lawful Good
Раса: Тварь



QUOTE
Как сделать, чтобы НПС (1 шт.) следовал за игроком до определенного места, а затем верулся туда, откуда начал следовать за ПК?

Создай два одинаковых НПК, одного помести куда надо, а второго спрячь.
Присоедени НПК, к игроку
Neverwinter Script Source
AddHenchman(oPC,oNPC);
, когда надо дестрой его а второго джампь, на то самое место где стоял когдато настоящий.
QUOTE
Как сделать, чтобы после использования игроком двери один раз, она бы уже не стала открываться второй?

Например, оставь её открытой, в свойствах пропеши "Сюжет", Во вкладке "Закрыть" закрой её, и если игрок захлопнет дверь, всё!.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Daemonix
сообщение Sep 27 2005, 18:52
Сообщение #2107


Level 10
***

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



QUOTE (Isendel)
Как сделать, чтобы после определенной фразы, например, модуль заканчивался бы и начинался бы другой?

Neverwinter Script Source
void main()
{
  object oPC = GetEnteringObject(); // Кто вошел на триггер
  if (!GetIsPC(oPC) || GetLocalInt(OBJECT_SELF, "TRIGGER") || GetIsInCombat(oPC))
        return; // Если не игрок, или уже наступал, или идет бой то возврат
  SetLocalInt(OBJECT_SELF, "TRIGGER", TRUE);
  ActionDoCommand(DoSinglePlayerAutoSave()); // Автосейв, на случай пожарный
  ActionDoCommand(StartNewModule("имя_модуля")); // НО БЕЗ РАСШИРЕНИЯ! *.mod

Вот это написал Aiwan и вроде должно работать. Но я не пробовал. Кстати, это надо вешать на триггер.

Сообщение отредактировал Daemonix - Sep 27 2005, 18:54
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Isendel
сообщение Sep 27 2005, 20:41
Сообщение #2108


Level 10
***

Класс: Бард
Характер: Chaotic Good
Раса: Эльф



Пасиб за помощь. Но в первом примере от NedWarn. Хотелось бы, чтобы непись не становился хенчманом, а просто следовал бы за игроком а-ля первая глава оригинального нвн, где игрок спасает население от плохих челов в тюремном квартале.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Daemonix
сообщение Sep 27 2005, 20:55
Сообщение #2109


Level 10
***

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



Вот ещё скриптик, который закрывает дверь сам через 20 сек. после закрытия.
Neverwinter Script Source
void main()
{
DelayCommand(14.9,ClearAllActions()); // Через 15 секунд
DelayCommand(15.0,ActionCloseDoor(OBJECT_SELF)); // захлопнет дверь
DelayCommand(20.0,SetLocked(OBJECT_SELF, TRUE)); // и закроет дверь на ключ через 20 сек
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Sep 27 2005, 20:55
Сообщение #2110


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

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



QUOTE (Isendel @ Sep 27 2005, 19:23)
Как сделать, чтобы НПС (1 шт.) следовал за игроком до определенного места, а затем верулся туда, откуда начал следовать за ПК?


QUOTE (NedWarN @ Sep 27 2005, 19:49)
Создай два одинаковых НПК, одного помести куда надо, а второго спрячь. Присоедени НПК, к игроку
Neverwinter Script Source
AddHenchman(oPC,oNPC);



Хенчманом его точно не надо делать!!!
Есть специальная функция
Neverwinter Script Source
void ActionForceFollowObject(object oFollow, float fFollowDistance=0.0f)


Если надо в разговоре, то надо так
Neverwinter Script Source
void main()
{
object oPC = GetPCSpeaker();

AssignCommand(OBJECT_SELF, ActionForceFollowObject(oPC, 1.0));
}


На том месте, где НПС стоит в начале надо поставить WP, а на том месте, где НПС должен вернутсья растянуть тригер и на OnEnter тригера поставить

Neverwinter Script Source
void main()
{
object oNPC = GetEnteringObject();
object oWP = GetWaypointByTag("ТАГ ВЕЙПОИНТА");

if(GetTag(oNPC) == "ТАГ НПС")
{
AssignCommand(oNPC, ClearAllActions());
AssignCommand(oNPC, ActionForceMoveToObject(oWP, FALSE, 0.0, 15.0));
}
}

Значения функций посмотри в тулсете.
Добавлено в 22:02

QUOTE (Daemonix @ Sep 27 2005, 21:55)
Вот ещё скриптик, который закрывает дверь сам через 20 сек. после закрытия.

Наверное после открытия и ставется он на OnOpen двери.
Зачем двери чистить акции?

Сообщение отредактировал -fenix- - Sep 27 2005, 21:03
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Isendel
сообщение Sep 27 2005, 21:08
Сообщение #2111


Level 10
***

Класс: Бард
Характер: Chaotic Good
Раса: Эльф



пасиб. теперь могу задуманный квест делать со спокойной (ну почти) душой.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Sep 27 2005, 22:08
Сообщение #2112


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

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



Neverwinter Script Source
void main()
{
  object oPC = GetEnteringObject(); // Кто вошел на триггер

  if (!GetIsPC(oPC) || GetLocalInt(OBJECT_SELF, "TRIGGER") || GetIsInCombat(oPC))
        return; // Если не игрок, или уже наступал, или идет бой то возврат
  SetLocalInt(OBJECT_SELF, "TRIGGER", TRUE);
  ActionDoCommand(DoSinglePlayerAutoSave()); // Автосейв, на случай пожарный
  ActionDoCommand(StartNewModule("имя_модуля")); // НО БЕЗ РАСШИРЕНИЯ! *.mod
}

QUOTE (Daemonix @ Sep 27 2005, 19:52)
Вот это написал Aiwan и вроде должно работать. Но я не пробовал. Кстати, это надо вешать на триггер.

Надо просто чуток подкоректировать.
первая строчка будет такой
Neverwinter Script Source
object oPC = GetPCSpeaker();


Еще отпадает надобность в проверках, так как у нас сингл и скрипт стоит в разговоре.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Daemonix
сообщение Sep 27 2005, 22:33
Сообщение #2113


Level 10
***

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



QUOTE
Наверное после открытия и ставется он на OnOpen двери.
Зачем двери чистить акции?

Кстати, это тоже было вразделе ВиО по тулсету.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Geck0
сообщение Sep 28 2005, 00:22
Сообщение #2114


Level 2
*

Класс: Рейнджер
Характер: True Neutral
Раса: Полуэльф



Не знаю туда ли я пишу, но вот какой вопрос... Я уже как больше года жду выхода NwN от 1С, надеясь на то, что Тулсет будет переведен должным образом и не будет содержать различных ошибок, глюков и разных других недочетов... Идеи по созданию модуля есть, опыта работе в Авроре к сожалению почти нет. Если в качестве картографа я еще могу что-то как-то, то скрипты совсем уж не-очень то и так-как надо :unsure: Все Тулсеты которые у меня были - содержали ошибки и тотально глючили, кроме одного - который содержится в самом первом NwN на трех дисках от Фаргуса (там еще написано, что он патченный), но зная о том, что с выходом и SoU и HoU Тулсет обновлялся и расширялся, я задумался - стоит ли с головой уходить в изучение "первого" Тулсета и решил, что - нет, буду ждать лицензию со всеми расширениями.
Как быть - подскажите! Работать мне, для начала, в Тулсете простого NwN или же все-таки дожидаться лицензий... С английским я на ВЫ.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
AliceDiren
сообщение Sep 28 2005, 07:42
Сообщение #2115


Level 7
**

Класс: Маг
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [Sn]



QUOTE

Neverwinter Script Source
TakeGoldFromCreature(GetGold(oPC),oPC, TRUE);
, а нет, денюжки никто не забирает... Почему? Вроде бы всё компилируется..

Daemonix , чтобы заработало нужно чтобы эти денюжки кто-то забрал. У тебя же объект скрипта OBJECT_SELF указывает на модуль. Я пишу:
Neverwinter Script Source
AssignCommand(oPC, TakeGoldFromCreature(GetGold(oPC), oPC, TRUE));

Добавлено в [mergetime]1127883173[/mergetime]
Neverwinter Script Source
if (!GetIsPC(oPC) || GetLocalInt(OBJECT_SELF, "TRIGGER") || GetIsInCombat(oPC))
        return; // Если не игрок, или уже наступал, или идет бой то возврат
  SetLocalInt(OBJECT_SELF, "TRIGGER", TRUE);

-fenix- , тогда проверка теряет смысл. Не игрок не сможет поговорить с NPC, так же игрок не сможет разговаривать одновременно воюя с кем-нибудь. И проверять начинался ли уже другой модуль и вовсе не имеет смысла.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
yudgi
сообщение Sep 28 2005, 09:20
Сообщение #2116


Level 4
**

Класс: Друид
Характер: Lawful Good
Раса: Человек



Aiwan у меня проблема возникла по этому скрипту
Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
object oTrig = OBJECT_SELF;
string sSpeak = GetName(OBJECT_SELF);
int i = StringToInt(GetLockKeyTag(oTrig));
int iSp = GetLocalInt(oTrig, "SPEAK");
  if (!GetIsPC(oPC) || iSp >= i && i!=0)
    {
    return;
      }
      AssignCommand(oPC, SpeakString(sSpeak));
      if (i!=0)
      {
      SetLocalInt(oTrig, "SPEAK", (iSp+1));
      }
}

Фраза повторяется каждый раз при входе на триггер, а мне нужен только один раз, насколько я поняла в этом случае переменная должна равняться 1, так или нет?

Сообщение отредактировал yudgi - Sep 28 2005, 09:45
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Sep 28 2005, 09:20
Сообщение #2117


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

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



Geck0 бери оригиналы английские и ставь себе все два аддона. Открывай тулсет и работай. Ждать чего-то и отмазываться мол вот выйдет, я вам покажу и т.д. удел слабаков. Конечно если у тебя нет серьезных причин для ожидания. Все остальное решаемо. Поверь мне, человеку который два года назад не знал что такое локальная переменная или стринг. Ну и на все твои вопросы ответят здесь. Это точно говорю. :lex:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
yudgi
сообщение Sep 28 2005, 09:34
Сообщение #2118


Level 4
**

Класс: Друид
Характер: Lawful Good
Раса: Человек



Вот ещё такой вопрос появился: два непися разговаривают между собой над ихголовами появляется текст со словами,я читала что там нужен триггер со скриптом он у меня есть, всё OK, а без триггера это можно сделать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Sep 28 2005, 09:44
Сообщение #2119


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

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



Да, чуть не забыл. Слей себе два туториала от биовар и мой. Там все что тебе надо знать есть.
QUOTE (yudgi @ Sep 28 2005, 12:20)
Фраза повторяется каждый раз при входе на триггер, а мне нужен только один раз, насколько я поняла в этом случае переменная должна равняться 1, так или нет?

Ты немного не понимаешь код. Он сложноват для новичка. Все дело в том, что там несколько проверок и ты забыла вот эту надпись:
Neverwinter Script Source
//:://////////////////////////////////////////////
/*
  Текст над РС  KeyTag - Количество раз
            Если 0, то бесконечно
*/

//:://////////////////////////////////////////////
-

Решается твоя проблема просто, открываешь свойства триггера и в том месте где пишется в зкладке адвансед в поле Tag Key введи цифру, сколько раз надо говорить твою фразу. Это универсальный скрипт, его можно много раз применять. Что бы ты поняла объясню:
Neverwinter Script Source
int i = StringToInt(GetLockKeyTag(oTrig)); // цифра i это строка в поле триггера КеуТаг конвертируемая в число

int iSp = GetLocalInt(oTrig, "SPEAK"); // Это значение переменной ГОВОРИТЬ, тоже число

if (!GetIsPC(oPC) || iSp >= i && i!=0) // Если не игрок, или iSp больше или ровна i (Это значит что мы присвоили триггеру
// столько раз переменную iSp сколько мы задали числом в поле КеуТАг триггера. Но наша цифра i в этом условиии не
// должна ровняться 0. Если в КейТаг поставить 0, то это условие не сработает и не будет return;
// Дальше, мы сказали фразу и скрипт выполняется дальше, там такое условие:

      if (i!=0) // Если Поле КейТаг не ровно 0 (то эта строка игнорируется, поймешь ниже почему)
      {
      SetLocalInt(oTrig, "SPEAK", (iSp+1)); // Присваиваем триггеру локалку "SPEAK", числом равным на еденицу больше чем
      // есть. Изначально ее нет вообще и она ровна 0. Мы сказали один раз фразу, получилось 0+1. Присвоили 1. Сказали
      // 2 раза, у нас 1 прибавляем +1 в резльтате 2. Локалка теперь 2.
      }
// Что получается? Мы постоянно прибаляем +1 каждый раз когда произносим фразу и сравниваем значения iSp >= i , как
// только значения сказанных фраз совпало или стало больше чем в поле КейТаг. Скрипт не срабатывает. Ну а если i = 0 то
// все проверки кроме того, что это РС игнорируются. Вот.


Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
yudgi
сообщение Sep 28 2005, 10:00
Сообщение #2120


Level 4
**

Класс: Друид
Характер: Lawful Good
Раса: Человек



Спасибо,туторы обязательно скачаю, но насколько я знаю, там не много информации по скриптам. Lexicon - это что за программа? Ещё вопрос, пока не забыла, как обновить CD-версию игры, патчами, а какимии, где их взять, ещё не совсем понимаю, что такое SoU и HotU
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Sep 28 2005, 10:21
Сообщение #2121


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

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



QUOTE (AliceDiren @ Sep 28 2005, 08:42)
-fenix- , тогда проверка теряет смысл. Не игрок не сможет поговорить с NPC, так же игрок не сможет разговаривать одновременно воюя с кем-нибудь. И проверять начинался ли уже другой модуль и вовсе не имеет смысла.

Дык, а я что написал!!!!!!!
QUOTE (-fenix- @ Sep 27 2005, 23:08)
Еще отпадает надобность в проверках, так как у нас сингл и скрипт стоит в разговоре.



QUOTE (yudgi @ Sep 28 2005, 11:00)
Спасибо,туторы обязательно скачаю, но насколько я знаю, там не много информации по скриптам. Lexicon - это что за программа? Ещё вопрос, пока не забыла, как обновить CD-версию игры, патчами, а какимии, где их взять, ещё не совсем понимаю, что такое SoU и HotU

Lexicon - это как раз хелп по скриптам его качай обязательно, без него ни как, там есть описание функций, констант, есть тутор.(он на инглише)
Самое главное пытайся сначало сама понять и разобраться в скриптах и что не понятно спрашивай тут.

Обновить версии конечно патчами, некоторые есть в файлах на сайте, а самые последнии ищи на Ваулте.
SoU и HotU - сокращенно название двух оддонов к NWN: Shadows of Undrentide и Hordes of the Underdark

Сообщение отредактировал -fenix- - Sep 28 2005, 10:25
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
yudgi
сообщение Sep 28 2005, 10:27
Сообщение #2122


Level 4
**

Класс: Друид
Характер: Lawful Good
Раса: Человек



А где Lexicon скачать, дайте ссылку плиз.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
AliceDiren
сообщение Sep 28 2005, 11:34
Сообщение #2123


Level 7
**

Класс: Маг
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [Sn]



-fenix- , извини - невнимательно читала.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Sep 28 2005, 13:12
Сообщение #2124


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

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



QUOTE (yudgi @ Sep 28 2005, 13:27)
А где Lexicon скачать, дайте ссылку плиз.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Isendel
сообщение Sep 28 2005, 17:23
Сообщение #2125


Level 10
***

Класс: Бард
Характер: Chaotic Good
Раса: Эльф



Блин. А нет нигде лексикона на русском? Я с английским не то чтобы уж очень на вы, но тексты объемные все же читать тяжело.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

205 страниц V  « < 83 84 85 86 87 > » 
Ответить в эту темуОткрыть новую тему
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 27th April 2024 - 21:20