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

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

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


Level 10
***

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



В разделе "ВиО по тулсету часть 2" было описано, как убрать из инвентаря несколько одинаковых предметов с одним тэгом. А как проверить наличие в инвентории этих нескольких предметов с одним тэгом?
Добавлено в [mergetime]1127771429[/mergetime]
И вот ещё: ставлю на начало модуля команду
Neverwinter Script Source
TakeGoldFromCreature(GetGold(oPC),oPC, TRUE);
, а нет, денюжки никто не забирает... Почему? Вроде бы всё компилируется..

Добавлено в [mergetime]1127771599[/mergetime]
И последнее:
нужно, чтобы в модуль играли непрокачанные персы первого уровня. Можно ли на входе клиента в модуль забрать у него все очки опыта? Я знаю, что можно. Но у перса всё же останутся его прокачанные скиллы, или я не прав?
В общем, мой вопрос таков: как сделать суперперса зелёным новичком 1ого уровня?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Alian REXis
сообщение Sep 27 2005, 01:19
Сообщение #2087


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

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN: Модмейкер
Начало Войны



QUOTE (Daemonix @ Sep 26 2005, 23:51)
В разделе "ВиО по тулсету часть 2" было описано, как убрать из инвентаря несколько одинаковых предметов с одним тэгом. А как проверить наличие в инвентории этих нескольких предметов с одним тэгом?


Neverwinter Script Source
int StartingConditional()
{
string sGH = "items_tag";
object oGH = GetFirstItemInInventory(GetPCSpeaker());
int nCount = 0;
while (GetIsObjectValid(oGH))
{
      if (GetTag(oGH) == sGH) nCount++; //считаем кол-во предметов с одинаковым тэгом

      oGH = GetNextItemInInventory(GetPCSpeaker());
}
if (nCount>1) return TRUE;
return FALSE;
}


QUOTE (Daemonix @ Sep 26 2005, 23:51)
И вот ещё: ставлю на начало модуля команду

Neverwinter Script Source
TakeGoldFromCreature(GetGold(oPC),oPC, TRUE);

, а нет, денюжки никто не забирает... Почему? Вроде бы всё компилируется..


По идее все правильно, не знаю почему не работает.


QUOTE (Daemonix @ Sep 26 2005, 23:51)
И последнее:
нужно, чтобы в модуль играли непрокачанные персы первого уровня. Можно ли на входе клиента в модуль забрать у него все очки опыта? Я знаю, что можно. Но у перса всё же останутся его прокачанные скиллы, или я не прав?
В общем, мой вопрос таков: как сделать суперперса зелёным новичком 1ого уровня?


Neverwinter Script Source
SetXP(GetFirstPC(),0);


Скиллы не остаются.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
yudgi
сообщение Sep 27 2005, 03:56
Сообщение #2088


Level 4
**

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



Привет всем, нужна ваша помощь, как сделать так, чтобы при в ходе в модуль в журнале поялялось задание.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tiger Greyhawk
сообщение Sep 27 2005, 05:21
Сообщение #2089



Иконки Групп

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



QUOTE (yudgi @ Sep 27 2005, 04:56)
Привет всем, нужна ваша помощь, как сделать так, чтобы при в ходе в модуль в журнале поялялось задание

в слоте OnClientEnter скрипт с функцией
Neverwinter Script Source
AddJournalQuestEntry("first_record", 1, oPC, FALSE, FALSE, FALSE);
first_record - тэг категории (конкретной ветки, которая может содержать большое кол-во записей) журнала
1 - ID. грубо говоря, порядковый номер в категории. (можно перескакивая: 100,200,300 и т.д.)
oPC - игрок, на которого "вешать" запись. в данном случае можно GetEnteringObject, но естественно с проверками, а нет ли у него уже такой записи не ДМ ли он...
FALSE - для всей партии, в которой состоит этот герой или только для него одного. TRUE - для всей.
FALSE - для всех ли игроков в принципе в модуле. TRUE - для всех.
FALSE - перезаписывать ли запись, если ID выше данного. TRUE - перезаписывать. Т.е. к примеру у нас уже есть запись в этой категории под ID 4.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
yudgi
сообщение Sep 27 2005, 08:02
Сообщение #2090


Level 4
**

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



Спасибо, и ещё вот такой вопрос появился, при входе в модуль игрок должен сказать фразу, как это сделать, или может лучше чтобы она появлялась когда на тригер наступаешь, но как тогда сделать чтобы она появлялась только один раз?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Sep 27 2005, 08:40
Сообщение #2091


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

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



Neverwinter Script Source
//:://////////////////////////////////////////////
//:: OnEnter  am_ten_speak_pc
//:: Copyright © 2005 WRG!
//:://////////////////////////////////////////////
/*
  Текст над РС  KeyTag - Количество раз
            Если 0, то бесконечно
*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan
//:: Original idea By: DBColl
//:: Created On: 21.04.2005
//:://////////////////////////////////////////////
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));
      }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Sep 27 2005, 08:47
Сообщение #2092


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

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



кстати, о птичках: народ, вы ненавязчиво указывайте, что именно вы делаете - сингл-модуль или шард. лучше даже в подпись вставить. типа "я синглофил" ;)

ps. это я к тому, что для шарда, например, скрипт Aiwan'а не проканает - триггер затопчут толпы "падонкафф". :crazy:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
yudgi
сообщение Sep 27 2005, 08:57
Сообщение #2093


Level 4
**

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



QUOTE (dumbo @ Sep 27 2005, 08:47)
кстати, о птичках: народ, вы ненавязчиво указывайте, что именно вы делаете - сингл-модуль или шард. лучше даже в подпись вставить. типа "я синглофил"

Одиночный модуль, до шарда я пока не доросла.

Добавлено в [mergetime]1127809311[/mergetime]
Я тут пробую иногда нужные мне скрипты сама написать(К сожалению не часто получаются). Вот вопрос появился с целью повышения скриптообразования.
Скрипт на то,когда РС первый раз входит в область и говорит фразу.
Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
string sString = " ";
}

Подскажите, что добавить,какие ошибки и какие сюда нужно проверки ставить? Решила спросить, потому что уже надоело готовые скрипты списывать,так сама точно не научусь, но без вашей помощи не справлюсь.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
zmey
сообщение Sep 27 2005, 11:39
Сообщение #2094


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Дракон



void main()
{
object oPC = GetEnteringObject();
string sString = " ";
}


э-э-э. Это на вход в локацию или при наступлении на триггер?



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


Level 4
**

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



Вход в локацию.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
zmey
сообщение Sep 27 2005, 12:35
Сообщение #2096


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Дракон



Тогда так: (вроде бы)

Neverwinter Script Source
void main()
{
object oPC = GetFirstPC();// это первый попавшийсЯ PC у тебЯ ведь сингл, правда?
string sString = "бла-бла-бла, (вырезано цензурой)! ";

Assign Command(oPC,ActionSpeakString(sString));
}

НО! ТЕКСТ БУДЕТ ПОЯВЛЯТСЯ КАЖДЫЙ РАЗ ПРИ ВХОДЕ В ЛОКАЦИЮ
object oPC = GetEnteringObject(); -это для триггеров. Типа oPC -это тот, кто встал в триггер.


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


Level 4
**

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



QUOTE (zmey @ Sep 27 2005, 12:35)
НО! ТЕКСТ БУДЕТ ПОЯВЛЯТСЯ КАЖДЫЙ РАЗ ПРИ ВХОДЕ В ЛОКАЦИЮ

А как чтобы один?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
zmey
сообщение Sep 27 2005, 12:41
Сообщение #2098


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Дракон



ставить нужно в onEnter локации :DB:
Добавлено в [mergetime]1127814409[/mergetime]
но :DB: все равно будет не один раз. а чтобы один, нужно проверку локалки делать
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
yudgi
сообщение Sep 27 2005, 12:50
Сообщение #2099


Level 4
**

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



Zmey а проверку ты не подскажешь?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Sep 27 2005, 13:02
Сообщение #2100


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

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



yudgi, тебе же Aiwan готовый скрипт дал. в слот OnEnter триггера его вставить и в свойствах триггера (Advanced) в поле Key Tag(первое поле сверху) ввести количество срабатываний - в твоем случае 1. все.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



Текстовая версия Сейчас: 21st July 2025 - 00:12