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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 134 135 136 137 138 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Lukas Addon
сообщение Oct 26 2010, 23:49
Сообщение #3366


Level 2
*

Класс: Волшебник
Характер: True Neutral
Раса: Эльф



Нужно наложить EffectDazed() на монаха 20+ уровня .... но вылетает что у него иммунитет. как побороть?
это для системы смерти, после превращения в светлячка, чтобы персонаж не мог никого атаковать иначе спадет полиморф.


Прошу помогите.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
PaiNt
сообщение Oct 27 2010, 04:10
Сообщение #3367


Level 8
***

Класс: Псионик
Характер: Chaotic Neutral
Раса: Хафлинг



Цитата(Lukas Addon @ Oct 27 2010, 06:49) *
Нужно наложить EffectDazed() на монаха 20+ уровня .... но вылетает что у него иммунитет. как побороть?
это для системы смерти, после превращения в светлячка, чтобы персонаж не мог никого атаковать иначе спадет полиморф.


Прошу помогите.

Забей на даз. В НВНХ можно отловить события выбора атаки и каста.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lukas Addon
сообщение Oct 27 2010, 07:16
Сообщение #3368


Level 2
*

Класс: Волшебник
Характер: True Neutral
Раса: Эльф



спасибо. А можно пример отлова события атаки?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Oct 27 2010, 07:35
Сообщение #3369


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Цитата
Забей на даз. В НВНХ можно отловить события выбора атаки и каста.
Ты бы сначала спросил, может, для сингла нужно, а ты NWNX предлагаешь (IMG:style_emoticons/kolobok_light/smile.gif)
Цитата
спасибо. А можно пример отлова события атаки?
Ридми для плагина. Но это работает только в мультиплеере. Строго говоря, для сингла есть расширение, но я не ковырял его функционал.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 27 2010, 09:15
Сообщение #3370


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

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Talarasha @ Oct 26 2010, 20:55) *
Запрашиваю подробную инфу. Пошарил по форуму, видел лишь реализацию связкой "добавить запись"+"установить переменную о том, что добавили записи", затем "проверить переменную с записи". Это то, что имелось ввиду или в дебрях NSS от меня прячутся реально клевые ништяки?

я просто имел ввиду что переменная не обязательно должна быть вида NW_JOURNAL_[ENTRYTAG]. Имя переменной с журналом связывается скриптером, а не системой. Соотв. он волен выбирать то, как она (переменная) будет называться. Использовать в имени переменной журнальный идентификатор - это удобно. А вот "NW_JOURNAL" можно и сократить немного. Речь только об этом.

скажем у нас была такая система:
Q_<quest_name>_<id> - переменная
<quest_name> - журнальная запись
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lukas Addon
сообщение Oct 27 2010, 09:19
Сообщение #3371


Level 2
*

Класс: Волшебник
Характер: True Neutral
Раса: Эльф



как раз нужно для мультиплеера. спасибо за подсказки буду разбираться.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Talarasha
сообщение Oct 27 2010, 10:49
Сообщение #3372


Level 6
**

Класс: Маг
Характер: Lawful Evil
Раса: Нежить



Цитата(Lex @ Oct 27 2010, 09:15) *
я просто имел ввиду что переменная не обязательно должна быть вида NW_JOURNAL_[ENTRYTAG]. Имя переменной с журналом связывается скриптером, а не системой. Соотв. он волен выбирать то, как она (переменная) будет называться. Использовать в имени переменной журнальный идентификатор - это удобно. А вот "NW_JOURNAL" можно и сократить немного. Речь только об этом.

скажем у нас была такая система:
Q_<quest_name>_<id> - переменная
<quest_name> - журнальная запись

(IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) Тащем-то, имя переменной связывается с журналом как раз системой. Выполнив команду AddJournalQuestEntry("CHAPTER1", 10, oPC, TRUE, TRUE);, на персонажа системой повесится целочисленная переменная NW_JOURNAL_ENTRYCHAPTER1 со значением 10. Соответственно и обратится к ней можно только таким образом. Шаблон насколько мне известно вшитый, поэтому я не представляю, как можно обратиться по, например, Q_<quest_name>_<id>. Откуда игра знать-то будет, что это - переменная журнала? Ниоткуда. Поэтому я предполагаю, что у вас таки использовалась ненужная дополнительная переменная. Для проверки, попробуй два таких скрипта на рычаге:
Neverwinter Script
void main()
{
    object oPC = GetLastUsedBy();
    AddJournalQuestEntry("CHAPTER1", 10, oPC, TRUE, TRUE);
    if(GetLocalInt(oPC, "NW_JOURNAL_ENTRYCHAPTER1") == 10)
  {
         AddJournalQuestEntry("CHAPTER1", 20, oPC, TRUE, TRUE);
  }
}


Neverwinter Script
void main()
{
    object oPC = GetLastUsedBy();
    AddJournalQuestEntry("CHAPTER1", 10, oPC, TRUE, TRUE);
    if(GetLocalInt(oPC, "ENTRYCHAPTER1") == 10)
    {
         AddJournalQuestEntry("CHAPTER1", 20, oPC, TRUE, TRUE);
    }
}

(журнал CHAPTER1, записи 10 и 20)
Первый скрипт выполнится и выставит журнал последовательно в 10 и в 20. Второй скрипт - только в 10. Можешь подставлять в GetLocalInt что угодно, никогда он не выполнится, потому что имя переменной журнала установлено системой.

Сообщение отредактировал Talarasha - Oct 27 2010, 10:50
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 27 2010, 12:27
Сообщение #3373


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

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Хы, не знал. Надо глянуть в 1.32 был ли такой функционал (с переменной), если да, то ДБКолл недоглядел, когда писал для ПЛ/ПВ квестовую систему, потому что мы заводили свою переменную. (IMG:style_emoticons/kolobok_light/smile.gif) Все это было внутри библы, а снаружи осталось несколько функций, с ними и работали.


зы: кто там спрашивает периодически, сколько скрипты изучать? я вот спустя почти 10 лет что-то новое узнаю иногда, как сейчас (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Laajin
сообщение Oct 27 2010, 13:51
Сообщение #3374


Level 5
**

Класс: Пьяный Мастер
Характер: Chaotic Good
Раса: Человек



Цитата
зы: кто там спрашивает периодически, сколько скрипты изучать? я вот спустя почти 10 лет что-то новое узнаю иногда, как сейчас smile.gif

вот и я аналогично)

Talarasha
NW_JOURNAL_ENTRYCHAPTER1 имеет какие-то связи с AddJournalQuestEntry("CHAPTER1 ", 10, oPC, TRUE, TRUE); - я правильно понял?
Нвн уже удалил, так что не проверить

Сообщение отредактировал Laajin - Oct 27 2010, 13:55
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Talarasha
сообщение Oct 27 2010, 14:40
Сообщение #3375


Level 6
**

Класс: Маг
Характер: Lawful Evil
Раса: Нежить



Цитата
Talarasha
NW_JOURNAL_ENTRYCHAPTER1 имеет какие-то связи с AddJournalQuestEntry("CHAPTER1 ", 10, oPC, TRUE, TRUE); - я правильно понял?
Нвн уже удалил, так что не проверить

Имеет, имеет. Функцию AJQE можно представить в следующем виде:
Neverwinter Script
void AddJournalQuestEntry(string szPlotID, int nState, object oCreature, int bAllPartyMembers=TRUE, int bAllPlayers=FALSE, int bAllowOverrideHigher=FALSE)
{
    AddEntry();
    SetLocalInt(object oCreature,"NW_JOURNAL_ENTRY"+szPlotID,nState);
    // (для наглядности опущены проверки bAllPartyMembers, bAllPlayers и bAllowOverrideHigher)
}

Где AddEntry(); - какой-то системный функционал по обновлению журнала. Но этим функционалом функция AJQE не заканчивается, она еще и вешает переменную для получения доступа к журналу. Просто это в отличие от AddEntry(); визуально не определяется, поэтому не совсем очевидно, но повсевместно используется в скриптах оригинальной кампании. А работа с журналом по типу:
Neverwinter Script
AddJournalQuestEntry("TAG",#,oPC,TRUE,TRUE);
SetLocalInt(oPC,"Q1_TAG_ID",#);
if(GetLocalInt(),"Q1_TAG_ID") == #)
{
    AddJournalQuestEntry("TAG",#+1,oPC,TRUE,TRUE);
    SetLocalInt(oPC,"Q1_TAG_ID",#+1);
}

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

Цитата
зы: кто там спрашивает периодически, сколько скрипты изучать? я вот спустя почти 10 лет что-то новое узнаю иногда, как сейчас

На мой взгляд, гораздо, гораздо меньше. Года должно хватить всем. Главное ведь не выучить названия и функционал всех-всех функций, а понять принцип, систему. Как только понял - все, дальше все задачи под силу, нужно только представлять, что хочешь. Поэтому владеющим C вообще ничего учить не надо, зашел и кодь, функции - вот они все. Вышеприведенная фишка - это просто недосмотр со стороны разрабов, которые не упомянули про это в описании AJQE.

Сообщение отредактировал Talarasha - Oct 27 2010, 14:57
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Oct 27 2010, 15:00
Сообщение #3376


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

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



На самом деле, там ещё 2 переменные вешаются:
NW_JOURNAL_DATE*
NW_JOURNAL_TIME*

Более того, если я ничего не пропустил при беглом взлягде на код, он кроме установки переменных вообще ничего не делает.
То есть можно просто вешать локалки с тем же успехом. Обновление журнальных данных происходит в самой функции SetLocalInt.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Talarasha
сообщение Oct 27 2010, 15:14
Сообщение #3377


Level 6
**

Класс: Маг
Характер: Lawful Evil
Раса: Нежить



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

Это абстрактный пример. Подразумевается, что вместо AddEntry() там код, реализующий обновление журнала.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Oct 27 2010, 15:15
Сообщение #3378


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

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



Я имел в виду реальный код, реализующий эту функцию.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Talarasha
сообщение Oct 27 2010, 15:20
Сообщение #3379


Level 6
**

Класс: Маг
Характер: Lawful Evil
Раса: Нежить



Реальный код какой функции, AddEntry()? Так я такого вроде на рассмотрение не представлял. Реальный код, реализующий AJQE? Тоже не представлял. Реальный код, использующий AJQE в полной мере просто будет меньше, чем код, игнорирующий включенную в AJQE установку переменных.

Реальный код, реализующий AJQE как минимум будет содержать кучу проверок из тех, что передаются функции, они же будут передаваться и AddEntry, и будут соответственно установки NW_JOURNAL_DATE*, NW_JOURNAL_TIME*, просто мы же не занимаемся переписыванием оригинальных функций, мы показываем, откуда берется переменная для проверки.

Сообщение отредактировал Talarasha - Oct 27 2010, 15:28
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Laajin
сообщение Oct 27 2010, 15:26
Сообщение #3380


Level 5
**

Класс: Пьяный Мастер
Характер: Chaotic Good
Раса: Человек



Да он про сам код игры, а не язык нвнскриптинг
Цитата
На самом деле, там ещё 2 переменные вешаются:
NW_JOURNAL_DATE*
NW_JOURNAL_TIME*

А время и дата возвращаются в каком виде? Просто у времени там часы, минуты, сек, а дата, дни месяцы и тд.

Сообщение отредактировал Laajin - Oct 27 2010, 15:27
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Talarasha
сообщение Oct 27 2010, 15:29
Сообщение #3381


Level 6
**

Класс: Маг
Характер: Lawful Evil
Раса: Нежить



Цитата
Да он про сам код игры, а не язык нвнскриптинг

А, понял.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Oct 27 2010, 15:31
Сообщение #3382


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

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



Цитата(Laajin @ Oct 27 2010, 16:26) *
Да он про сам код игры, а не язык нвнскриптинг

А время и дата возвращаются в каком виде? Просто у времени там часы, минуты, сек, а дата, дни месяцы и тд.
Не смотрел.. Судя по всему, какой-то свой числовой формат.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Laajin
сообщение Oct 27 2010, 15:43
Сообщение #3383


Level 5
**

Класс: Пьяный Мастер
Характер: Chaotic Good
Раса: Человек



Можно в принципе через IntToString посмотреть, наверное
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ollone5
сообщение Jan 1 2011, 15:29
Сообщение #3384


Level 5
**

Класс: Паладин
Характер: Chaotic Good
Раса: Человек



Как сделать так чтобы если игрок зайдет в тень в режиме скрытности его никто не видел?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kiruhs
сообщение Jan 1 2011, 16:41
Сообщение #3385


Level 6
**

Класс: Клерик
Характер: Chaotic Neutral
Раса: Животное



Цитата(Ollone5 @ Jan 1 2011, 14:29) *
Как сделать так чтобы если игрок зайдет в тень в режиме скрытности его никто не видел?

Нарисовать по контурам тени триггер и на онентер вешать скрипт. Например дающий эффект инвиза или санок
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
greye
сообщение Jan 1 2011, 19:07
Сообщение #3386


Level 7
**

Класс: Некромант
Характер: True Neutral
Раса: Нежить



Цитата(kiruhs @ Jan 1 2011, 17:41) *
Нарисовать по контурам тени триггер и на онентер вешать скрипт. Например дающий эффект инвиза или санок

Ага, особенно это проканает в экстериорах при смене положения источников света, в тенях от персонажей, да и просто при внесении новых источников света вроде факелов.
Скорее всего никак. Впрочем, человека в стелсе и так не должно быть видно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ollone5
сообщение Jan 3 2011, 09:54
Сообщение #3387


Level 5
**

Класс: Паладин
Характер: Chaotic Good
Раса: Человек



А можно скрипт?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
elsefalse
сообщение Feb 4 2011, 23:04
Сообщение #3388


Level 2
*

Класс: Псионик
Характер: Chaotic Evil
Раса: Чудовище



Помню на кормире у ассасина был запрет на хайд при освещении, только не помню как реализован был.
Вот, может это поможет:
http://www.nwnlexicon.com/compiled/functio...lumination.html
http://www.nwnlexicon.com/compiled/categor...ingeffects.html
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
wirTUS
сообщение May 22 2011, 23:54
Сообщение #3389


Level 5
**

Класс: Убийца
Характер: Lawful Evil
Раса: Человек



Код
void main()
{
object oPC = GetEnteringObject();
object oArea1 = GetArea(oPC);
object oArea2 = GetObjectByTag(FVgreatbridge);
AssignCommand(oPC, ActionJumpToLocation(oArea2, vector Vector(315.0,GetDistanceBetweenLocations(location Loc1(oArea1,vector vec(0.0, 0.0, 0.0),0.0),GetLocation(oPC)),0.0),0.0));
}

Хотел сделать перемещение между локациями (идешь в триггер на краю локации по, например, дороге, выходишь на другой локации на ту же дорогу, а не на заранее заданный вэйпоинт, например).
Ругается на строчку с ассигнкомманд (ERROR: UNKNOWN STATE IN COMPILER)
Мне кажется, что напортачил в
Код
vector Vector(315.0,GetDistanceBetweenLocations(location Loc1(oArea1,vector vec(0.0, 0.0, 0.0),0.0),GetLocation(oPC)),0.0)

а именно в
Код
GetDistanceBetweenLocations(location Loc1(oArea1,vector vec(0.0, 0.0, 0.0),0.0),GetLocation(oPC))

но где - не понимаю.
Там, где 315 - координата по х (подразумевался переход с левого края одной локации на левый другой, где-то вычитал, что размер тайла - 10х10м, обе локации 32х32 тайла)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
greye
сообщение May 23 2011, 06:06
Сообщение #3390


Level 7
**

Класс: Некромант
Характер: True Neutral
Раса: Нежить



Neverwinter Script
AssignCommand(oPC, ActionJumpToLocation(oArea2, vector Vector(315.0,GetDistanceBetweenLocations(location Loc1(oArea1,vector vec(0.0, 0.0, 0.0),0.0),GetLocation(oPC)),0.0),0.0));


Neverwinter Script
AssignCommand(oPC, ActionJumpToLocation(oArea2, Vector(315.0, GetDistanceBetweenLocations(Loc1(oArea1, vec(0.0, 0.0, 0.0), 0.0), GetLocation(oPC)), 0.0), 0.0));


Зачем-то поставил типы возвращаемых значений при вызове.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 134 135 136 137 138 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 9th May 2025 - 00:17