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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
3 страниц V  < 1 2 3  
Ответить в эту темуОткрыть новую тему
> Скрипты: Просьбы о написании, Все просьбы по написанию скриптов
noooox
сообщение Sep 15 2011, 17:26
Сообщение #51


Level 2
*

Класс: Оборотень
Характер: True Neutral
Раса: Элементаль



Канечно это же дварфы.Надо субрассу проверить через диалог.

А почему такой скрипт не компилиться?

int StartingConditional()
{
object oPC = GetPCSpeaker();

if (GetSubRace(oPC) != "DUERGAR") return FALSE;

return TRUE;
}


Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lorendroll
сообщение Sep 16 2011, 00:49
Сообщение #52


Level 9
***

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



noooox, потому что функция GetSubRace возвращает целочисленную переменную типа int, а ты сверяешь её со строкой. Ты пробовал проверять расу скриптом gc_check_race_pc? аргументом к нему ставил duergar? Обрати внимание что существует два скрипта с таким названием. Один из оригинала НВН2 другой из второго аддона. Разумеется, нужно использовать более свежий т.к. в нем будут учтены новые субрасы. Возможно именно потому что ты использовал старый скрипт он не увидел разницы между субрасами.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
noooox
сообщение Sep 16 2011, 13:40
Сообщение #53


Level 2
*

Класс: Оборотень
Характер: True Neutral
Раса: Элементаль



Я пробовал проверять расу скриптом gc_check_race_pc аргументом к нему ставил DUERGAR! Вот именно так и не работает.Золотой дварф почему то проходит эту проверку.А все остальные суб расы и расы не проходят как мне и надо.Почему то скрипт принимает золотого за дуэргара (IMG:style_emoticons/kolobok_light/unsure.gif) .

У меня nwn2 platinum там все 3 как известно аддона.И скрипт gc_check_race_pc там только один.Почитал в нем то что коменты зелным цветом ясно что там учтены все расы и суб расы.Яж им всех остальных проверяю.И вот с одной суб расой косяк. (IMG:style_emoticons/kolobok_light/swoon.gif)

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lorendroll
сообщение Sep 16 2011, 16:28
Сообщение #54


Level 9
***

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



noooox только что проверил, проверка происходит верно. Указывал в проверке "duergar" маленькими буквами. Проверь еще нет ли в оверрайде или хаке racialtypes.2da

Сообщение отредактировал Lorendroll - Sep 16 2011, 16:31
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NumberOne
сообщение Jan 12 2013, 16:06
Сообщение #55


Level 4
**

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



Всем привет. Начал работать в обсидиан тулсете недавно и очень завлекло. Но, к сожалению, в скриптах я НИЧЕГО не понимаю и понять не получается, сколько статей и гайдов не прочитал, ну ладно. В общем, пожалуйста, кто-нибудь напишите вот такой скрипт:
При использовании определенного объекта шла проверка на наличие в инвентаре определенного предмета, если проверка прошла успешно то этот предмет удалялся из инвентаря в 1 количестве и на определенном waypoint появлялся огонь (желательно fx_torchglow), исчезая через
30 минут, так же чтобы в этом же месте появлялся звук огня и источник света (lt_white), также исчезая вместе с огнем. Если проверка не прошла успешна, то персонаж произносил какую-то фразу. (IMG:style_emoticons/kolobok_light/rolleyes.gif)

P.S было бы не плохо указать где какой тэг и от чего он и т.д...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jan 13 2013, 06:46
Сообщение #56


Тролль
****

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



На сколько я понимаю, скрипты в НВН1 и НВН2 практически идентичны – поэтому ниже приведу схему создания скрипта по запросу выше с помощью скрипт-генератора. Разбирайтесь как это делается и учитесь писать самостоятельно, потому что не всегда так просто найдется человек, который будет делать это за вас.

1. Запускаем «Script Generator.exe».
2. Видим окошко с надписью «Choose script type» (выбирите тип скрипта) – жмем «Normal script».
3. «Where is this script called from?» (когда запускается скрипт) – жмем «When PC uses something (portal, altar, lever…)» (когда ПС использует что-то – здесь имеется в виду только объекты, не вещи!).
4. Сразу же у вас выскочит окошко с дополнительным условием, и оно у нас есть! Поэтому на вопрос «Choose» отвечаем «Yes».
5. Нас спросят далее «Choose condition» (выбирите условие) – в базовом выборе их всего три варианта: 1 раз для 1 игрока; 1 раз за игру; другие варианты. Выбираем другие варианты – «Other restrictions».
6. Теперь откроется список всех предлагаемых условий в окошке «Choose your condition» (выбирите ваше условие) – жмем «Item restriction» (наличие предмета).
7. Ниже видим такую надпись с выбором «If condition not met, script will stop and» (если условие не выполнено, скрипт будет сброшен и…), нам необходимо чтоб игрок что-то сказал, если проверка не прошла успешно – жмем «The following message is sent to PC:» (следующее сообщение посылается ПС). Видим ниже пустую строчку – это окошко для нашего сообщения. Я напишу его по-английски, потому что у компилятора НВН1 есть свои тараканы по поводу восприятия кириллицы (а точнее буквы «я»), а это вопрос отдельный и ответ на него можно поискать на форуме – он есть. Фраза будет выглядеть так: «*I should find first this damned thing*» - что значит «*Я должен найти сначала эту чертову хреновину*». Пишем фразу в окошко без «».
8. Ниже видим выбор, наш по умолчанию «Must have» (должен иметь) - «The item tagged» (предмет с указанным тагом).
9. Ниже пустое окошка для введения этого самого тага предмета – его нужно подсмотреть в свойствах предмета который мы хотим требовать. Пусть это будет таг «damned_thing». Вводим таг в окошко без «».
10. Далее предлагается уточнить на тот случай, если эта «чертова хреновина» является доспехом или прочей амуницией – в каком слоте инвентаря она должна быть. Предположим наша «чертова хреновина» совершенно бесполезный предмет в игре который нужен только для описываемого скриптом эвента, поэтому просто пропустим этот шаг.
11. Дальше видим что нам остается только нажать по выбору одну из трех стандартных в генераторе кнопочек: «Okay – and more!» (зашибись и есчо), «Okay – exit!» (зашибись я пошел), «Cancel» (отмена). Условий у нас больше нет, поэтому жмем «Okay – exit!».
12. Теперь вы видите следующее сообщение:
«You are now ready to create the actual script!
If you supplied any conditions before this, the rest of the script will run
only for players who meet those conditions.
Click close to start the scripting of the events or actions that you want to
happen.».
Его мне всегда было лень читать до конца, это что-то вроде «поздравляем вас с успешным прохождением проверки на нюбов – теперь вы можете показать на что вы действительно способны». После первого выскакивания можно поставить галочку которая заставит его больше не выскакивать.
13. По закрытию этого сообщения перед вами откроется список всего арсенала скрипт генератора. Ищем в нем нужный нам пункт – сначала это будет удаление требуемого предмета: «Destroy object(s)» (удалить объект/ы). Выбираем его и жмем большую кнопку справа «SCRIPT» (ЗАСКРИПТИТЬ!!!11).
14. Видим окошко с нашим выбором – жмем «Destroy object tagged:» (удалить объект под тагом). И вводим в окошко справа таг нашего объекта. В моем примере это «damned_thing» без кавычек.
15. Ниже вы видите: «Using» (используя…) «Which visual effect?» (какой визуальный эффект?). Афтар указал довольно специфические требования к «спецэффектам», так что возможно они применяются не на используемый объект, а на какое-то другое место с вейпоинтом. Так что оставляем этот кусок не тронутым.
16. Жмем «Okay – exit!».
17. Наш кусочек скрипта остался в памяти генератора и дальше мы можем приступить к дальнейшему его генерированию. Нам нужно чтоб на время в указанном месте возникли эффекты для начала в виде объектов класса «визуальных эффектов» из стандартной палитры. Для этого нам нужно запастись «резрефами» этих объектов подглядев их в их свойствах в редакторе. Афтар предполагает, что ему нужен огонь с резрефом «fx_torchglow».
Ищем в списке арсенала генератора пункт «Spawn in placeable (eg portal)» (спавнить плейсбл, например портал) – жмем «SCRIPT».
18. Видим, что нас сразу же просят ввести «ResRef» (резреф) плейсебла и просят, чтоб мы не спутали его с «тагом», что есть очень верная прозьба – перепроверяйте это. Вводим резреф «fx_torchglow» - без кавычек.
19. Опять нам дают возможность приминить к этому событию визуальный эффект «Using which visual effect» – пропускаем эту часть.
20. Дальше мы должны указать место спавна – у нас это указанный вейпоинт, так что выбираем «At the waypoint tagged:» (вейпоинт под тагом…). Вводим справа таг нашего вейпоинта – его нужно будет создать в тулсете в соответствующем месте отдельно и не забыть проверить, чтоб таги в скрипте и его свойствах совпали. Пусть в примере это будит таг «WP_here».
21. Жмем «Okay – exit!».
22. В списке у нас кроме огня есть источник света с предпологаемым резрефом «lt_white». Проделываем вышеописанные операции (17-21) для этого плейсебла.
23. Еще нам нужен в спецэффектах звук, что несколько более сложная задача, но скрипт-генератор позволяет реализовать и ее. Во-первых для этого необходимо знать что спавнить звуки в НВН1 нельзя (на счет НВН2 не знаю), но можно заставлять их проигрываться. Нам нужно создать в палитре подходящий нам звук огня, который по умолчанию будет не активен, а при проигрывании выдавать петлю звука огня. Настраиваем это дело и размещаем подобно вейпоинту в нужном нам месте в модуле.
Во-вторых ищем в списке арсенала скрипт-генератора пунтк «Sound objects, ambient sound, music» (звуковые объекты, звуки окружающей среды, музыка). Выбираем этот пункт и жмем «заскриптить».
24. Сразу же нас спрашивают «таг» (вот тут как обычно таг, а не резреф) нашего свежесозданного звукового объекта. Вы его создадите сами или посмотрите в свойствах размещенного вами стандартного. Пусть в примере это будет «fire_sound».
25. Далее среди всех нижеприведенных меню нам нужен только один пункт «Make it start playing» (пусть оно заиграет). И жмем «Okay».
26. Теперь нам остается лишь задача убрать все спецэффекты через 30 минут. Тут сразу нужно уточнить, что стандартная функция задержки в скриптах измеряется в секундах и ограничивается («DelayCommand() is no longer capped by a time limit of 1 game day.» (с) Lexicon) стандартным игровым днем. Это значит, что если час у нас в игре длится менее 2 минут по настройкам модуля – есть шанс что такая задержка будет работать неправильно. Переводим минуты в секунды и получаем цифру 1800.
Ищем в списке арсенала скрипт-генератора пункт «Delay the next thing you script» (отсрочить следующую хрень, которую вы скриптите) – выбираем и жмем «скриптить».
27. Вводим наши 1800 и жмем «зашибись».
28. Далее нам нужно удалить 2 объекта. Выбираем снова пункт «Destroy object(s)» и жмем «скриптить».
29. Ставим галочку и вводим таг (не перепутайте с резрефами) нашей вспышки пламени. Пусть в примере это будет «FX_TORCHGLOW». У нас 2 объекта, поэтому дальше жмем «Okay – and more!».
30. Снова ставим галочку и вводим таг нашего источника света. Пусть это в примере будет «LT_WHITE». Жмем «Okay – exit!».
31. Наша отсрочка действия сработала только на один этот блок удаления объектов – поэтому нам нужно снова повторить ее (пункты 26-27) т.к. еще нужно убрать звук огня.
32. Теперь нам снова нужно заняться звуком – выбираем пункт «Sound objects, ambient sound, music» и жмем «скриптить».
33. Снова вводим таг нашего звукового объекта, в примере: «fire_sound». И выбираем галочку «Make it stop playing» (пусть оно перестанет играть). Жмем «Okay».
34. Все. Больше у нас требований к данному скрипту нет, поэтому жмем арсеналу «Close».
35. Теперь мы снова видим первоначальное окно скрипт-генератора. В большом окошке справа находится весь наш сгенерированный скрипт (перед ним немного рекламы и указаний, так что можно копировать строки смело со слов «void main()»). И вот что у нас вышло:..
Neverwinter Script
void main()
{

object oPC = GetLastUsedBy();

if (!GetIsPC(oPC)) return;

string sDeny;
if (GetItemPossessedBy(oPC, "damned_thing")== OBJECT_INVALID)
   {
   sDeny="*I should find first this damned thing*";

   SendMessageToPC(oPC, sDeny);

   return;
   }

object oTarget;
oTarget = GetObjectByTag("damned_thing");

DestroyObject(oTarget, 0.0);

object oSpawn;
location lTarget;
oTarget = GetWaypointByTag("WP_here");

lTarget = GetLocation(oTarget);

oSpawn = CreateObject(OBJECT_TYPE_PLACEABLE, "fx_torchglow", lTarget);

lTarget = GetLocation(oTarget);

oSpawn = CreateObject(OBJECT_TYPE_PLACEABLE, "lt_white", lTarget);

oTarget = GetObjectByTag("fire_sound");

SoundObjectPlay(oTarget);

oTarget = GetObjectByTag("FX_TORCHGLOW");

DelayCommand(1800.0, DestroyObject(oTarget, 0.0));

oTarget = GetObjectByTag("LT_WHITE");

DelayCommand(1800.0, DestroyObject(oTarget, 0.0));

oTarget = GetObjectByTag("fire_sound");

DelayCommand(1800.0, SoundObjectStop(oTarget));

}
Скрипт-генератор штука очень надежная и могу ручаться что тулсет скомпилирует любой его скрипт без ошибок. На вашей совести лишь указать все таги и резрефы верно.

Так что учитесь писать скрипты сами – скрипт-генератор вам в помощь. (IMG:style_emoticons/kolobok_light/smile.gif)

P.S.: Только похвалил скрипт-генератор и тут же нашел в нем баг когда перепроверял скрипт - они забыли добавить определение стринговой переменной для сообщения использующегося при провале начальных условий. Никогда не пользовался стартовым условием раньше - составлял их с помощью арсенала непосредственно в скрипте. В общем в скрипте, если его генерировать по этой схеме, не хватает строчки "string sDeny;" - я ее добавил в результат вручную.

Сообщение отредактировал Flaristan - Jan 13 2013, 07:20
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NumberOne
сообщение Jan 13 2013, 12:02
Сообщение #57


Level 4
**

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



Цитата(Flaristan @ Jan 13 2013, 07:46) *
На сколько я понимаю, скрипты в НВН1 и НВН2 практически идентичны – поэтому ниже приведу схему создания скрипта по запросу выше с помощью скрипт-генератора. Разбирайтесь как это делается и учитесь писать самостоятельно, потому что не всегда так просто найдется человек, который будет делать это за вас.

1. Запускаем «Script Generator.exe».
2. Видим окошко с надписью «Choose script type» (выбирите тип скрипта) – жмем «Normal script».
3. «Where is this script called from?» (когда запускается скрипт) – жмем «When PC uses something (portal, altar, lever…)» (когда ПС использует что-то – здесь имеется в виду только объекты, не вещи!).
4. Сразу же у вас выскочит окошко с дополнительным условием, и оно у нас есть! Поэтому на вопрос «Choose» отвечаем «Yes».
5. Нас спросят далее «Choose condition» (выбирите условие) – в базовом выборе их всего три варианта: 1 раз для 1 игрока; 1 раз за игру; другие варианты. Выбираем другие варианты – «Other restrictions».
6. Теперь откроется список всех предлагаемых условий в окошке «Choose your condition» (выбирите ваше условие) – жмем «Item restriction» (наличие предмета).
7. Ниже видим такую надпись с выбором «If condition not met, script will stop and» (если условие не выполнено, скрипт будет сброшен и…), нам необходимо чтоб игрок что-то сказал, если проверка не прошла успешно – жмем «The following message is sent to PC:» (следующее сообщение посылается ПС). Видим ниже пустую строчку – это окошко для нашего сообщения. Я напишу его по-английски, потому что у компилятора НВН1 есть свои тараканы по поводу восприятия кириллицы (а точнее буквы «я»), а это вопрос отдельный и ответ на него можно поискать на форуме – он есть. Фраза будет выглядеть так: «*I should find first this damned thing*» - что значит «*Я должен найти сначала эту чертову хреновину*». Пишем фразу в окошко без «».
8. Ниже видим выбор, наш по умолчанию «Must have» (должен иметь) - «The item tagged» (предмет с указанным тагом).
9. Ниже пустое окошка для введения этого самого тага предмета – его нужно подсмотреть в свойствах предмета который мы хотим требовать. Пусть это будет таг «damned_thing». Вводим таг в окошко без «».
10. Далее предлагается уточнить на тот случай, если эта «чертова хреновина» является доспехом или прочей амуницией – в каком слоте инвентаря она должна быть. Предположим наша «чертова хреновина» совершенно бесполезный предмет в игре который нужен только для описываемого скриптом эвента, поэтому просто пропустим этот шаг.
11. Дальше видим что нам остается только нажать по выбору одну из трех стандартных в генераторе кнопочек: «Okay – and more!» (зашибись и есчо), «Okay – exit!» (зашибись я пошел), «Cancel» (отмена). Условий у нас больше нет, поэтому жмем «Okay – exit!».
12. Теперь вы видите следующее сообщение:
«You are now ready to create the actual script!
If you supplied any conditions before this, the rest of the script will run
only for players who meet those conditions.
Click close to start the scripting of the events or actions that you want to
happen.».
Его мне всегда было лень читать до конца, это что-то вроде «поздравляем вас с успешным прохождением проверки на нюбов – теперь вы можете показать на что вы действительно способны». После первого выскакивания можно поставить галочку которая заставит его больше не выскакивать.
13. По закрытию этого сообщения перед вами откроется список всего арсенала скрипт генератора. Ищем в нем нужный нам пункт – сначала это будет удаление требуемого предмета: «Destroy object(s)» (удалить объект/ы). Выбираем его и жмем большую кнопку справа «SCRIPT» (ЗАСКРИПТИТЬ!!!11).
14. Видим окошко с нашим выбором – жмем «Destroy object tagged:» (удалить объект под тагом). И вводим в окошко справа таг нашего объекта. В моем примере это «damned_thing» без кавычек.
15. Ниже вы видите: «Using» (используя…) «Which visual effect?» (какой визуальный эффект?). Афтар указал довольно специфические требования к «спецэффектам», так что возможно они применяются не на используемый объект, а на какое-то другое место с вейпоинтом. Так что оставляем этот кусок не тронутым.
16. Жмем «Okay – exit!».
17. Наш кусочек скрипта остался в памяти генератора и дальше мы можем приступить к дальнейшему его генерированию. Нам нужно чтоб на время в указанном месте возникли эффекты для начала в виде объектов класса «визуальных эффектов» из стандартной палитры. Для этого нам нужно запастись «резрефами» этих объектов подглядев их в их свойствах в редакторе. Афтар предполагает, что ему нужен огонь с резрефом «fx_torchglow».
Ищем в списке арсенала генератора пункт «Spawn in placeable (eg portal)» (спавнить плейсбл, например портал) – жмем «SCRIPT».
18. Видим, что нас сразу же просят ввести «ResRef» (резреф) плейсебла и просят, чтоб мы не спутали его с «тагом», что есть очень верная прозьба – перепроверяйте это. Вводим резреф «fx_torchglow» - без кавычек.
19. Опять нам дают возможность приминить к этому событию визуальный эффект «Using which visual effect» – пропускаем эту часть.
20. Дальше мы должны указать место спавна – у нас это указанный вейпоинт, так что выбираем «At the waypoint tagged:» (вейпоинт под тагом…). Вводим справа таг нашего вейпоинта – его нужно будет создать в тулсете в соответствующем месте отдельно и не забыть проверить, чтоб таги в скрипте и его свойствах совпали. Пусть в примере это будит таг «WP_here».
21. Жмем «Okay – exit!».
22. В списке у нас кроме огня есть источник света с предпологаемым резрефом «lt_white». Проделываем вышеописанные операции (17-21) для этого плейсебла.
23. Еще нам нужен в спецэффектах звук, что несколько более сложная задача, но скрипт-генератор позволяет реализовать и ее. Во-первых для этого необходимо знать что спавнить звуки в НВН1 нельзя (на счет НВН2 не знаю), но можно заставлять их проигрываться. Нам нужно создать в палитре подходящий нам звук огня, который по умолчанию будет не активен, а при проигрывании выдавать петлю звука огня. Настраиваем это дело и размещаем подобно вейпоинту в нужном нам месте в модуле.
Во-вторых ищем в списке арсенала скрипт-генератора пунтк «Sound objects, ambient sound, music» (звуковые объекты, звуки окружающей среды, музыка). Выбираем этот пункт и жмем «заскриптить».
24. Сразу же нас спрашивают «таг» (вот тут как обычно таг, а не резреф) нашего свежесозданного звукового объекта. Вы его создадите сами или посмотрите в свойствах размещенного вами стандартного. Пусть в примере это будет «fire_sound».
25. Далее среди всех нижеприведенных меню нам нужен только один пункт «Make it start playing» (пусть оно заиграет). И жмем «Okay».
26. Теперь нам остается лишь задача убрать все спецэффекты через 30 минут. Тут сразу нужно уточнить, что стандартная функция задержки в скриптах измеряется в секундах и ограничивается («DelayCommand() is no longer capped by a time limit of 1 game day.» (с) Lexicon) стандартным игровым днем. Это значит, что если час у нас в игре длится менее 2 минут по настройкам модуля – есть шанс что такая задержка будет работать неправильно. Переводим минуты в секунды и получаем цифру 1800.
Ищем в списке арсенала скрипт-генератора пункт «Delay the next thing you script» (отсрочить следующую хрень, которую вы скриптите) – выбираем и жмем «скриптить».
27. Вводим наши 1800 и жмем «зашибись».
28. Далее нам нужно удалить 2 объекта. Выбираем снова пункт «Destroy object(s)» и жмем «скриптить».
29. Ставим галочку и вводим таг (не перепутайте с резрефами) нашей вспышки пламени. Пусть в примере это будет «FX_TORCHGLOW». У нас 2 объекта, поэтому дальше жмем «Okay – and more!».
30. Снова ставим галочку и вводим таг нашего источника света. Пусть это в примере будет «LT_WHITE». Жмем «Okay – exit!».
31. Наша отсрочка действия сработала только на один этот блок удаления объектов – поэтому нам нужно снова повторить ее (пункты 26-27) т.к. еще нужно убрать звук огня.
32. Теперь нам снова нужно заняться звуком – выбираем пункт «Sound objects, ambient sound, music» и жмем «скриптить».
33. Снова вводим таг нашего звукового объекта, в примере: «fire_sound». И выбираем галочку «Make it stop playing» (пусть оно перестанет играть). Жмем «Okay».
34. Все. Больше у нас требований к данному скрипту нет, поэтому жмем арсеналу «Close».
35. Теперь мы снова видим первоначальное окно скрипт-генератора. В большом окошке справа находится весь наш сгенерированный скрипт (перед ним немного рекламы и указаний, так что можно копировать строки смело со слов «void main()»). И вот что у нас вышло:..
Neverwinter Script
void main()
{

object oPC = GetLastUsedBy();

if (!GetIsPC(oPC)) return;

string sDeny;
if (GetItemPossessedBy(oPC, "damned_thing")== OBJECT_INVALID)
   {
   sDeny="*I should find first this damned thing*";

   SendMessageToPC(oPC, sDeny);

   return;
   }

object oTarget;
oTarget = GetObjectByTag("damned_thing");

DestroyObject(oTarget, 0.0);

object oSpawn;
location lTarget;
oTarget = GetWaypointByTag("WP_here");

lTarget = GetLocation(oTarget);

oSpawn = CreateObject(OBJECT_TYPE_PLACEABLE, "fx_torchglow", lTarget);

lTarget = GetLocation(oTarget);

oSpawn = CreateObject(OBJECT_TYPE_PLACEABLE, "lt_white", lTarget);

oTarget = GetObjectByTag("fire_sound");

SoundObjectPlay(oTarget);

oTarget = GetObjectByTag("FX_TORCHGLOW");

DelayCommand(1800.0, DestroyObject(oTarget, 0.0));

oTarget = GetObjectByTag("LT_WHITE");

DelayCommand(1800.0, DestroyObject(oTarget, 0.0));

oTarget = GetObjectByTag("fire_sound");

DelayCommand(1800.0, SoundObjectStop(oTarget));

}
Скрипт-генератор штука очень надежная и могу ручаться что тулсет скомпилирует любой его скрипт без ошибок. На вашей совести лишь указать все таги и резрефы верно.

Так что учитесь писать скрипты сами – скрипт-генератор вам в помощь. (IMG:style_emoticons/kolobok_light/smile.gif)

P.S.: Только похвалил скрипт-генератор и тут же нашел в нем баг когда перепроверял скрипт - они забыли добавить определение стринговой переменной для сообщения использующегося при провале начальных условий. Никогда не пользовался стартовым условием раньше - составлял их с помощью арсенала непосредственно в скрипте. В общем в скрипте, если его генерировать по этой схеме, не хватает строчки "string sDeny;" - я ее добавил в результат вручную.


О! Спасибо большое, Вы мне очень помогли!

К сожалению все никогда не получается идеально сразу и так как надо.

Первое, что я бы хотел исправить но не знаю как: когда юзаешь объект эта "чертова хрень" исчезает не в 1 количестве а сразу пачкой, т.е если у меня было в инвентаре 4 чертовой хрени то и исчезнет 4 чертовой хрене, а не 1, пытался поискать как сделать чтобы все таки исчезала 1 чертова хрень, но не нашел.

Второе, почему-то не спавнится огонь и источник света, заменил их на на горшок (что первое под руку попало) сработало все идеально... К звуку притензий нет.

А еще одна вещь которая просто пфффф, вот эта фраза: "*I should find first this damned thing*" появлятся как системное сообщение желтого цвета в чате. Я надеялся, что будет простоя фраза персонажа над головой (как во многих модулях нвн1)...

Может, есть какое-то решение проблемы со спавном огня и источника света? Все-таки очень хочется сделать в модуле возможность разводить костры, зажигать жаровни/факелы и т.д...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jan 13 2013, 17:56
Сообщение #58


Тролль
****

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



Пачкой имеется в виду стек? Нужно добавить проверку на кол-во итемов в стеке и уменьшать его число (если это возможно – не помню уже), а не удалять. Так же можно выбрать для предмета (что проще) нестыкующуюся основу.

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

Есть три типа сообщений: сообщение в лог, всплывающая фраза (так же отображается в лог) и обычный текст. Все они есть в генераторе в нужном блоке – замени строку команды на более подходящую на твой взгляд. Если не знаешь что менять – не ставь фразу в стартовое условие при составлении скрипта, а сделай сообщение отдельно в скрипте через «if» блок (там и выберешь нужный тип сообщения).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NumberOne
сообщение Jan 13 2013, 18:11
Сообщение #59


Level 4
**

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



Ок, сейчас все заново попробую и перепробую еще раз)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NumberOne
сообщение Jan 14 2013, 05:24
Сообщение #60


Level 4
**

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



В общем, не спавнит он визуальные эффекты. А вот все остальные спавнит нооиально.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Magus
сообщение Apr 14 2013, 11:19
Сообщение #61


Level 2
*

Класс: Псионик
Характер: Lawful Evil
Раса: Баатезу



Помогите, пожалуйста.
Нужны 2 скрипта для заклинаний. Думаю такие скрипты от модульных не сильно отличаются.
1. Заклинание должно призывать на помощь существ на один день. Если персонаж упорядоченный, то призывается баатезу, если хаотичный, то танарри. А если нейтральный, то может появиться один либо дьявол, либо демон с вероятностью 50/50. Эффект призыва должен быть, как Гариуса, когда он ночного охотника призывает, или как у Корабороса, когда он призывает своих слуг.

2. Это уже посложнее.
Телепортация на выбранное место, на расстояние, равное расстоянию мистического удара у чернокнижника. Перемещаться должен только сам персонаж. Эффект телепортации, как у Аммона Джерро. После применения должно пройти 10 секунд, чтобы можно было повторить телепортацию. Персонаж должен видеть место, куда он телепортируется.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

3 страниц V  < 1 2 3
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28th March 2024 - 20:52