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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 142 143 144 145 146 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Ollone5
сообщение Jul 4 2013, 14:30
Сообщение #3561


Level 5
**

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



Да, не появляются новые зомби и людишки погибают без эффекта, а вот некролог и сверкает и на колени становиться. Мне вобще интересно что это за "ZombieWeak07", не похоже на стандартный объект, хотя я заменял эту надпись на таги своих зомби, все равно не появлялся никто. И ссылку на патч пожалуйста, если он так важен. Можно и на остальные полезные штучки если не трудно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Jul 4 2013, 16:41
Сообщение #3562


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

Класс: Волшебник
Характер: Neutral Good
Раса: Фея
NWN: Скриптинг [PW]
Край Лесов



Ну погибать они должны без эффекта - этого в скрипте нет,а вот не воскресать они могут если не тот рес-реф поставлен.
Еще может быть момент в том что в примере в Базе скриптов у функции Raise не объявлен OBJECT_SELF, хотя локация его берется. Вообщем потести так и сяк - в итоге получиться, скрипт рабочий на первый взгляд.
Патч http://wrg.ru/download.php?view.109
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ollone5
сообщение Jul 4 2013, 22:16
Сообщение #3563


Level 5
**

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



Спасибо, да вот на меня этот рес - реф свалился, не знаю что такое. Где то читал но не вник все ж таки.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jul 4 2013, 22:44
Сообщение #3564


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



У тебя не работает
Neverwinter Script
DelayCommand(3.0f, Raise(OBJECT_SELF)); // Функция сверху void main()

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

про рес реф я тут подробно описал: http://remmgen.narod.ru/titem.html

Сообщение отредактировал gennady - Jul 4 2013, 22:48
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 5 2013, 06:02
Сообщение #3565


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

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



Делей лучше вообще вешать на какой либюо объект не участвующий в скрипте, в смысле, например на плейс рядом или на модуль вообще. Тогда 100% сработает.

Я имею ввиду давать команду постороннему объекту сделать что-либо с нужным объектом.

Neverwinter Script
AssignCommand(oModules, DelayCommand(3.0f, Raise));

Как пример, не знаю правильно ли я описал, сто лет не кодил нвн. Я много делал разных комплексов скриптов с делеем в ПВ, понял одну закономерность, если делей без указания того, кто его будет исполнять, то команда часто теряется. Если указать кто будет делать задержку, то срабатывает.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Jul 5 2013, 07:27
Сообщение #3566


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

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Дело не в указании, просто часто объект, с которого запускается скрипт и который становится "исполнителем", уничтожается до делэя. Модуль в таких случаях - идеальный вариант.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Jul 5 2013, 08:49
Сообщение #3567


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

Класс: Волшебник
Характер: Neutral Good
Раса: Фея
NWN: Скриптинг [PW]
Край Лесов



А что происходит со скриптом который запустил делей? Он висит незавершенным вместе с делеем или таки завершается, а команда срабатывает позже?
Учитывая "однопоточность" нвн-сервера - это не сильно мешает? (IMG:style_emoticons/kolobok_light/smile.gif)

Сообщение отредактировал Melisse - Jul 5 2013, 08:49
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ollone5
сообщение Jul 5 2013, 09:42
Сообщение #3568


Level 5
**

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



Значит если на предмет то на OnHeartbeat? И на модуль так же? Куда лучше? И можно ли совместить этот скрипт с тем что там уже есть?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jul 5 2013, 10:09
Сообщение #3569


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



Neverwinter Script
void Raise(location Loc)
{
effect eVisDead = EffectVisualEffect(VFX_IMP_HEAD_ACID);//Эффект с которым объект будет воскресать. В данном случае это кислота!
object oNew = CreateObject(OBJECT_TYPE_CREATURE,"nw_zombie01", Loc) ;//Монстр из палитры который будет воскрешать.
ApplyEffectAtLocation(DURATION_TYPE_PERMANENT, eVisDead, Loc);

}
void main()
{
object oCleric = GetNearestObjectByTag("Nekrolog01");// Тег объекта который будет оживлять. И которого надо убить чтобы остальные больше не оживали.
location Loc = GetLocation(OBJECT_SELF);

if (GetIsObjectValid(oCleric) == TRUE && GetIsDead(oCleric) == FALSE)
{
AssignCommand(oCleric, ClearAllActions());
AssignCommand(oCleric, ActionPlayAnimation(ANIMATION_LOOPING_WORSHIP, 1.0, 3.0));//Действия которые выполняет "оживитель" как только умирает один из объектов. В данном случае становится на колени.
effect eVisCleric = EffectVisualEffect(VFX_IMP_AURA_NEGATIVE_ENERGY);// Эффект с которым клирик воскрешает. В данном случае появляется красного цвета аура. Но эффекты можно менять!
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eVisCleric, oCleric);
AssignCommand(oCleric, DelayCommand(3.0, Raise(Loc)));
AssignCommand(oCleric, DelayCommand(2.2, SpeakString("Воскресни!"))) ;
}
}

Скрипт на слот смерти монста.
как-то так... (IMG:style_emoticons/kolobok_light/declare.gif)

Сообщение отредактировал gennady - Jul 5 2013, 10:18
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ollone5
сообщение Jul 5 2013, 10:52
Сообщение #3570


Level 5
**

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



У меня кстати вместо русского языка в скриптах каракули какие то. И ничего, даже на колени не встал. Я поставил скрипт на onDeath некролога, на него же надо?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jul 5 2013, 11:05
Сообщение #3571


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



Это скрипт на монстров, у некролога стандартный. На монстров что их палитры, тоже нужен этот скрипт... Только ставь свой РЕСРЕФ зомби...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ollone5
сообщение Jul 5 2013, 11:38
Сообщение #3572


Level 5
**

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



А как его ставить? Знаю куда, но как и зачем?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Jul 5 2013, 12:53
Сообщение #3573


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

Класс: Волшебник
Характер: Neutral Good
Раса: Фея
NWN: Скриптинг [PW]
Край Лесов



Чтобы каракулей не было нужно когда копируют и вставляют - все была русская раскладка.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jul 7 2013, 17:45
Сообщение #3574


Тролль
****

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



Цитата(Ollone5 @ Jul 5 2013, 10:38) *
А как его ставить? Знаю куда, но как и зачем?
Резреф – это можно сказать «код» любого объекта, а таг - его «подпись». «Код» всегда будет сугубо индивидуальный и (если я правильно понимаю механику движка НВН) в любом модуле никогда не встретятся 2 объекта с одинаковым «кодом»/резрефом, потому что даже если сделать полную копию объекта – игра сгенерирует ему новый «код»/резреф непосредственно при создании этой копии. «Подпись»/таг отличается же от резрефа тем, что он всегда будет назначенным – либо изначально по воле разрабов НВН, либо впоследствии по воле скриптера (тоесть он никогда не берется из воздуха по своей воле путем генерации, и поэтому он нужен скриптовым функциям, чтоб искать и сортировать по нему объекты).

В модуле объект можно создать двумя способами: копировать его из уже имеющегося в модуле объекта или копировать его из базы данных объектов самой игры называемой «палитрой» объектов. Когда речь идет не о клонировании объектов, а о непосредственно создании их в игре – то для этого необходим исходный «код»/резреф этого объекта в котором закодированы все его будущие свойства (наверное понятно, что если вы хотите создать не непойми что, а что-то вполне конкретное – то без «палитры»/базы данных никак не обойтись; а она по сути своей есть ничто иное, как полный перечень «кодов»/резрефов всех возможных объектов).

«Палитр»/баз данных в модуле обычно бывает 2: «дефолтная»/стандартная (то что есть в тулсете независимо от того каким бы ни был модуль, главное лишь соответствие версий НВН – и как правило во всех более поздних версиях есть все то, что было в более ранних); и «кастомная»/модифицированная (то что делает модульмейкер дополнительно, если его не удовлетворяет стандартное разнообразие). Для создания собственной палитры в тулсете есть команда «добавить в палитру» прилагающаяся к любому объекту, который был «кастомизирован»/модифицирован из стандартной палитры. Для размещения в модуле «кастомизированных»/модифицированных объектов вручную при создании или редактировании модуля – в палитру их добавлять не обязательно; но если вы планируете создавать их в модуле по ходу игры скриптами – то необходимо создать модель этого объекта, добавив ее в палитру. В ходе добавления объекта в палитру (и только тогда) можно назначить ему резреф самостоятельно вручную (а не генерировать его автоматически).

Таким образом, из какой бы палитры объект в модуле ни создавался скриптами – нам для этого нужен его резреф. Нет «валидного»/рабочего резрефа – нет объекта.

P.S.: Никогда не понимал, зачем все советуют писать таги прописными буквами, а резрефы строчными – в редакторе скриптов тулсета существует всего одна функция, которой необходимо указывать резреф объекта. Если понять и запомнить это, то никогда не перепутаешь резреф с тагом. А еще лучше – делайте их одинаковыми для кастомных объектов; меняйте таг при создании их в модуле скриптами, если нужен будет совершенно уникальный.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jul 9 2013, 00:00
Сообщение #3575


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

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



Цитата
А что происходит со скриптом который запустил делей? Он висит незавершенным вместе с делеем или таки завершается, а команда срабатывает позже?
Учитывая "однопоточность" нвн-сервера - это не сильно мешает?


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

Цитата
P.S.: Никогда не понимал, зачем все советуют писать таги прописными буквами, а резрефы строчными – в редакторе скриптов тулсета существует всего одна функция, которой необходимо указывать резреф объекта. Если понять и запомнить это, то никогда не перепутаешь резреф с тагом. А еще лучше – делайте их одинаковыми для кастомных объектов; меняйте таг при создании их в модуле скриптами, если нужен будет совершенно уникальный.

Не льсти себе - подойди ближе. К тому же это стандартное соглашение, вроде sString и lLocation, нотация устаревшая как говно мамонта, но повсеместно используется в скриптах нвн, потому что так уж условились обозначать, и зная эти договорённости можно быстрей вникнуть в чужие скрипты / библиотеки. Та же ситуация и с тэгами и резрефами - встречая в тектсе строчные - понимаем сразу, что это резреф, без необходимости искать по всему коду ту единственную функцию, где же эта строчка там используется, а она не обязательно будет тут же, потому что резреф может, к примеру, формироваться каким-то генератором из списка, например, и мы быстрей поймём что же тут в коде происходит - где тэг пистолета, где резреф ноги, без необходимости разбирать всю логику. Это сильно экономит время.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jul 9 2013, 03:10
Сообщение #3576


Тролль
****

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



Если б задачей была экономия времени – я бы скриптами вообще не занимался. (IMG:style_emoticons/kolobok_light/biggrin.gif) А так максимум что я себе позволяю – это ставить для удобства разделители на начала и концы отдельных смысловых блоков в многосложных скриптах, иногда с короткими подписями в самом разделителе указывающими на что блок направлен. Никогда проблем не возникало с тем, чтоб бегло прочитав нужные части скрипта понять, что же он там делает, и где там стоят таги, а где резрефы, даже если скрипт был написан год или более назад. Позволяет в качестве тренировки не давать мозгам закиснуть. (IMG:style_emoticons/kolobok_light/smile.gif) Ну а команды скриптеров под НВН – это сейчас раритет уже.(IMG:style_emoticons/kolobok_light/pardon.gif) Если уж и стоит где-то соблюдать упорядоченность – так это в названиях локальных переменных, обзывая их словосочетаниями вкратце описывающими функции которые те выполняют.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Jul 9 2013, 08:32
Сообщение #3577


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

Класс: Волшебник
Характер: Neutral Good
Раса: Фея
NWN: Скриптинг [PW]
Край Лесов



azathoth
Спасибо за разъяснение процесса.
Из какого аниме аватарка?) Что-то не идентифицирую в своем багаже такого персонажа.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jul 9 2013, 10:42
Сообщение #3578


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

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



Стыдно сказать, но это Артас (IMG:style_emoticons/kolobok_light/rolleyes.gif)

http://img3.joyreactor.cc/pics/post/full/a...ing-507673.jpeg
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Jul 9 2013, 10:50
Сообщение #3579


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

Класс: Волшебник
Характер: Neutral Good
Раса: Фея
NWN: Скриптинг [PW]
Край Лесов



Неожиданно. (IMG:style_emoticons/kolobok_light/wizard.gif) (IMG:style_emoticons/kolobok_light/smile.gif) Я не знаю кто он там в вов, но жаль аниме нет такого - образ няшно-годный.

Сообщение отредактировал Melisse - Jul 9 2013, 11:13
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jul 9 2013, 12:30
Сообщение #3580


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

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



Тот же, чем окончился Frozen Throne - Артас занимает место Короля-Лича как властитель нежити.

А аниме не жалко - я что-то перестал его смотреть, как-то редко встречаю то, что зацепит. Но любовь к няшным лупоглазым неко осталась (IMG:style_emoticons/kolobok_light/biggrin.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 9 2013, 18:24
Сообщение #3581


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

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



Харе оффтопить! (IMG:style_emoticons/kolobok_light/orc.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
arcmag
сообщение Jul 15 2013, 19:51
Сообщение #3582


Level 2
*

Класс: Убийца
Характер: Neutral Evil
Раса: Нежить



Neverwinter Script
void main(){
  object oPC = GetEnteringObject();
  if(GetLocalInt(oP3C, "ENTERING_ONCE") == 0){
    GiveGoldToCreature(oPC, 1000);
    CreateItemOnObject("resref_item", oPC,100);
    SetLocalInt(oPC, "ENTERING_ONCE", 1);
  }
}


Решил попробовать поставить это событие при входе игрока в локу но почему то во второй строчке object oPC = GetEnteringObject(); вылезает ошибка
ОШИБКА: ПОТЕРЯ АНАЛИЗАТОРА ПЕРЕМЕННОЙ
Не мог бы мне кто нибудь объяснить что это значит?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jul 15 2013, 20:41
Сообщение #3583


Тролль
****

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



Цитата(arcmag @ Jul 15 2013, 18:51) *
Neverwinter Script
void main(){
  object oPC = GetEnteringObject();
  if(GetLocalInt(oP3C, "ENTERING_ONCE") == 0){
     GiveGoldToCreature(oPC, 1000);
     CreateItemOnObject("resref_item", oPC,100);
     SetLocalInt(oPC, "ENTERING_ONCE", 1);
  }
}


Решил попробовать поставить это событие при входе игрока в локу но почему то во второй строчке object oPC = GetEnteringObject(); вылезает ошибка
ОШИБКА: ПОТЕРЯ АНАЛИЗАТОРА ПЕРЕМЕННОЙ
Не мог бы мне кто нибудь объяснить что это значит?

Это значит нужно быть внимательнее (IMG:style_emoticons/kolobok_light/biggrin.gif) :
Neverwinter Script
object oPC = GetEnteringObject();

  if(GetLocalInt(oP3C, "ENTERING_ONCE") == 0)
___________________^
___________________^
___________________^

Сообщение отредактировал Flaristan - Jul 15 2013, 20:43
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
arcmag
сообщение Jul 15 2013, 21:12
Сообщение #3584


Level 2
*

Класс: Убийца
Характер: Neutral Evil
Раса: Нежить



Стер троичку все равно ошибка во второй строчке как была так и осталась та же самая object oPC = GetEnteringObject();...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jul 15 2013, 22:38
Сообщение #3585


Тролль
****

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



Без тройки там все компилируется и даже работает - а чтоб не путаться удобнее писать скрипты упорядоченной структурой:
Neverwinter Script
void main()
{
object oPC = GetEnteringObject();

if(GetLocalInt(oPC, "ENTERING_ONCE") == 0)
  {
  GiveGoldToCreature(oPC, 1000);
  CreateItemOnObject("nw_wswmgs002", oPC, 1);
  SetLocalInt(oPC, "ENTERING_ONCE", 1);
  }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 142 143 144 145 146 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 4th May 2025 - 18:50