![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1761
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Поставь шрифт Courer
|
![]() ![]()
Сообщение
#1762
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Кто сможет выложить скрипт на появления строки в диалоге один рас.
К примеру, непись мне что-то говорит, а у меня три варианта ответа и после использования какой небудь строки, при повторной попытки поговорить с неписем тот вариант исчезает, остается только два. |
![]()
Сообщение
#1763
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
Артём, тебе бы следовало изучить работу локальных переменных. Статей на эту тему, есть ВЕЛИКОЕ множество, ссылки давать не буду - сам найдешь, если внимательно почитаешь форум, сайт.
|
![]()
Сообщение
#1764
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Будь человеком дай пару ссылок. (IMG:style_emoticons/kolobok_light/sad.gif)
|
![]()
Сообщение
#1765
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
|
![]() ![]()
Сообщение
#1766
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Способа щяс буду учить.
То что я искал там нет. Ладно буду дожидаться НВН 2 вот там и буду учить скрипты. |
![]()
Сообщение
#1767
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
А это не то??
QUOTE ВОПРОС Здраствуйте, я вот тут захотел сделать простейший стационарный квест, но в этом я полный 0. 1) Как сделать чтобы при первом разгооре игрока с НПС показывался первый диалог; 2) После первого разговора включался второй диалог; 3) Как сделать проверку на наличие предмета у игрока? Например ели у игрока есть например ключ ему включался определеный диалог (тоесть вот смотри пункт 2, идет второй диалог. и там спрашивають.ты добыл ключ? говориш да, и делаеться проверка на наличие) 4) После того как квест выполнен включался следующий диалог ОТВЕТЫ Делается очень легко - с пмощью Локальных переменных... Как ты мог догадатсья, полистав словарик или просто почитав надписи в тулсете при создании конверсейшна: TextAppearsWhen - значит "Текст появляется когда..." и там нужно выбрать скрипт. Это значит что в скрипте задаются условия появления. (кстати там есть визард) ActionTaken - значит "Предпринимаемое действие" (или типа того), то есть - что-то происходит после того как игрко выбрал этот ответ в диалоге, или НПЦ вышел на ветку с этим скриптом... Тут опять же есть визард. Визард (Wizard) - помощник создания простых скриптов, отображается как шапочка... Итак, теперь рассказываю подробнее... Мы создаем все три ветки (для данного примера): - Привет, игрок -- Привет, нпц! - Есть ключ? -- Есть (проверка) -- Нету - Молодец, ты справился с квестом! Терь вали отсюдова! На первом диалоге (Привет, игрок) вешаем скрипт проверки локальной переменной, например назовем её - quest_prog (quest progress). Для этого можно использовать визард (пока в плане скриптинга обьяснять не буду - запустите визард, посмотрите на код и надеюсь все поймете) - визард в TextAppearsWhen (ТекстПоявляетсяКогда) - и там выбираем Local Variable, выбираем: int (числовая переменная, целая (не дробная)), пишем название переменной (q_prog), is less than (меньше чем), constant int (заданное число), 1. Далее на продолжении первого диалога ("привет, нпц!") вешаем скрипт (можно опять же визардом) на создании переменной q_prog и задачи ей числа 1. Set Local Variable (Задать локальную переменную), int, q_prog, constant int, 1. Теперь переходим к второй ветке диалога (есть ключ?) - надпись будет высвечиваться если q_prog равно 1. (Думай разберешься как сделать проверку ), ну а на ответе: (Есть) - делать првоерку на ключ... Опять же визардом: Item in Inventory и там вписываем тэг вещицы (лучше писать не попамяти - акопировать и вставлять...). Ну и Action Taken - присваиваем q_prog значение 2. И последнюю ветку вешаем првоерку, если q_prog равен 2. Раз стат квест - значит надо выдать награду. Выдавать награду можно опять же через ActionTaken (Give Rewards)... Примечание: если хочешь наградить вещью - то там надо вписывать ResRef вещит, а не тэг. Кстати попутно с квестом можно вести запись в дневнике (закладочка - Others... там думаю разберешься) ПРИМЕЧАНИЕ №1: Локальные переменные - остаюстя на игроке, так что в следущем квесте не используй переменную q_prog... ПРИМЕЧАНИЕ №2: Если хорошо подумаете - то сможете это все еще оптимизирвоать и улучшить... (хоят бы для повышения переменной - не обязательно использоват ьнесколько разных скриптов ) Еще есть тут: http://www.city-of-masters.ru/forums/index...ost&p=48763 Сообщение отредактировал -fenix- - Sep 17 2006, 17:43 |
![]()
Сообщение
#1768
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Я хотел, чтобы скрипт не менял строку, а убирал одну из них.
|
![]()
Сообщение
#1769
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
Артём, убрать ты НИКАК не сможешь. (Т.е стереть.)
Нужно ставить условие при котором появляется строка, (проверка локальной переменной, значение 0 & FALSE) потом собственно устанавливать эту локальную переменную. (ActionsTakes, при выборе данной строки) Читай мануал, там это подробно расписано. PS: ссылки принципиально приводить не буду, все это уже было много раз, но видимо не особо кому-то нужно. Да и свой трафик, у меня нет никакого желания расходовать. Сообщение отредактировал Dik Morris - Sep 17 2006, 18:41 |
![]()
Сообщение
#1770
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
QUOTE(Артём @ Sep 17 2006, 20:36) [snapback]91887[/snapback] Вот скрипт на появления текста один рас в день. [/nss] int StartingConditional() { object oPC = GetPCSpeaker(); int nDay = GetCalendarDay(); if (GetLocalInt(oPC, "once_a_day_phrase") != nDay) { SetLocalInt(oPC, "once_a_day_phrase", nDay); return TRUE; } return FALSE; } [nss] Мне нужно почти тоже самое только чтобы он появлялся ни каждый день а всего 1 рас. Или такога скрипта нет? (IMG:style_emoticons/kolobok_light/biggrin.gif) Сообщение отредактировал Артём - Sep 17 2006, 19:37 |
![]()
Сообщение
#1771
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
Артём, на условие появления строки напиши скрипт
NSS int StartingConditional() { int iResult; iResult = GetLocalInt(GetPCSpeaker(), "PEREM") == 0; return iResult; } А на ActionsTakes NSS SetLocalInt(GetPCSpeaker(), "PEREM", 1); Всё строка появится только один раз. Тебе об этом же говорили Dik Morris и -fenix- |
![]()
Сообщение
#1772
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Это у меня уже есть.
Ладно, всем спасибо. |
![]()
Сообщение
#1773
|
|
Level 3 ![]() Класс: Некромант Характер: Chaotic Neutral Раса: Человек ![]() |
QUOTE на onPlayerLevelUp (есть такой слот в свойствах модуля) написать скрипт-проверку. Если классов 2/3 (те первый и второй/третий валидны), то отбираем опыт и на левелап заново. Сам напишешь скрипт? Спасибо. Не, не смогу.Да и вас не прошу. А можно скриптами писать заметки в журнал игрока? Aug 24 2006, 16:57>Sep 23 2006, 20:02.Гы, давно меня тут не было.Школа... Сообщение отредактировал Nuprahtor - Sep 23 2006, 19:04 |
![]()
Сообщение
#1774
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Nuprahtor, скриптом заметку можно добавить. Но сам текст туда вносить надо заранее, в редакторе журналов. Вписать текст через скрипт нельзя.
По скрипту: если нужен, попроси в теме.. да хотяб в этой. Напишут я думаю (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#1775
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Все простые вопросы есть в мануалах. Там наглядно с картинками. (IMG:style_emoticons/kolobok_light/pardon.gif) На форуме сложнее объяснить.
|
![]()
Сообщение
#1776
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
QUOTE(Lex @ Sep 23 2006, 21:09) [snapback]92615[/snapback] Nuprahtor, скриптом заметку можно добавить. Но сам текст туда вносить надо заранее, в редакторе журналов. Вписать текст через скрипт нельзя. |
![]()
Сообщение
#1777
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Хм.. не знал. Спасибки (IMG:style_emoticons/kolobok_light/smile.gif) бу иметь ввиду
|
![]()
Сообщение
#1778
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Доброго времени суток всем! (IMG:style_emoticons/kolobok_light/hi.gif)
У меня возник вопрос: как сделать добавление к дефолтному скрипту OnAquireItem, чтобы при помещении в инвентарь определенного предмета возникала запись в журнале? Знаю, что так сделать можно, пытаюсь при помощи ScriptGen'а, но там получается, что одна и та же запись в журнале появляется при запихивании в инвентарь всех без исключения предметов. Как исправить, не знаю. Помогите, плз! (IMG:style_emoticons/kolobok_light/sad.gif) |
![]()
Сообщение
#1779
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
поставь в слот Module Acquired стандартный скрипт x2_mod_def_aqu
потом сделай свой скрипт с именем = тэгу айтема. Например itm_lx_figulina вот шаблон скрипта: NSS //:://///////////////////////////////////////////// //:: Example Item Event Script //:: x2_it_example //:: Copyright © 2003 Bioware Corp. //::////////////////////////////////////////////// /* This is an example on how to use the new default module events for NWN to have all code concerning one item in a single file. Note that this system only works, if the following events set on your module OnEquip - x2_mod_def_equ OnUnEquip - x2_mod_def_unequ OnAcquire - x2_mod_def_aqu OnUnAcqucire - x2_mod_def_unaqu OnActivate - x2_mod_def_act */ //::////////////////////////////////////////////// //:: Created By: Georg Zoeller //:: Created On: 2003-09-10 //::////////////////////////////////////////////// #include "x2_inc_switches" void main() { int nEvent =GetUserDefinedItemEventNumber(); object oPC; object oItem; SendMessageToPC(GetFirstPC(),IntToString(nEvent)); // * This code runs when the item has the OnHitCastSpell: Unique power property // * and it hits a target(weapon) or is being hit (armor) // * Note that this event fires for non PC creatures as well. if (nEvent ==X2_ITEM_EVENT_ONHITCAST) { oItem = GetSpellCastItem(); // The item casting triggering this spellscript object oSpellOrigin = OBJECT_SELF ; object oSpellTarget = GetSpellTargetObject(); oPC = OBJECT_SELF; } // * This code runs when the Unique Power property of the item is used // * Note that this event fires PCs only else if (nEvent == X2_ITEM_EVENT_ACTIVATE) { oPC = GetItemActivator(); oItem = GetItemActivated(); } // * This code runs when the item is equipped // * Note that this event fires PCs only else if (nEvent ==X2_ITEM_EVENT_EQUIP) { oPC = GetPCItemLastEquippedBy(); oItem = GetPCItemLastEquipped(); } // * This code runs when the item is unequipped // * Note that this event fires PCs only else if (nEvent ==X2_ITEM_EVENT_UNEQUIP) { oPC = GetPCItemLastUnequippedBy(); oItem = GetPCItemLastUnequipped(); } // * This code runs when the item is acquired // * Note that this event fires PCs only else if (nEvent == X2_ITEM_EVENT_ACQUIRE) { oPC = GetModuleItemAcquiredBy(); oItem = GetModuleItemAcquired(); } // * This code runs when the item is unaquire d // * Note that this event fires PCs only else if (nEvent == X2_ITEM_EVENT_UNACQUIRE) { oPC = GetModuleItemLostBy(); oItem = GetModuleItemLost(); } //* This code runs when a PC or DM casts a spell from one of the //* standard spellbooks on the item else if (nEvent == X2_ITEM_EVENT_SPELLCAST_AT) { oPC = GetLastSpellCaster(); oItem = GetSpellTargetObject(); } } вообще все ж написано и закомментировано скриптерами биовар, какие проблемы почитать? |
![]()
Сообщение
#1780
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Если влом думать как Лекс написал, то можешь так...
NSS void main()
{ object oMod = GetModule(); object oItem = GetModuleItemAcquired(); // Сам Item объект object oPC = GetModuleItemAcquiredBy(); // Тот кто взял string sTagItem = GetTag(oItem); // Таг Item-a if (sTagItem =="ТАГ_НОВОГО_ИТЕМА") // Если мы взяли предмет с таким тегом { if(!GetLocalInt(oMod, sTagItem)) // Если нет на модуле локалки равной тегу предмета ТО { SetLocalInt(oMod, sTagItem, TRUE); // Присвои модулю такую, значит предмет у нас побывал раз AddJournalQuestEntry("ТАГ_КВЕСТА_В_ЖУРНАЛЕ", 1, oPC); // Дадим РС заметку в журнале или еще что } } } |
![]()
Сообщение
#1781
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Lex, почитать-то не проблема. Проблема - понять прочитанное. (IMG:style_emoticons/kolobok_light/sad.gif) А добавить еще что-то свое, и так, чтобы скрипт при этом работал, - еще большая проблема.
Но в принципе, сейчас, с твоей помощью и с помощью Aiwan'a, разобралась, за что огромное спасибо. (IMG:style_emoticons/kolobok_light/thank_you.gif) |
![]()
Сообщение
#1782
|
|
Mystery ![]() Класс: Маг Характер: Lawful Evil Раса: Тварь NWN: Контент Амен ![]() |
QUOTE(shadowdweller @ Sep 24 2006, 22:17) [snapback]92683[/snapback] Lex, почитать-то не проблема. Проблема - понять прочитанное. Оффтоп, но без шуток. Ребята, объединялись бы вы в команды, желательно - с четким разделением труда и разграничением ответственности внутри них. Толку куда больше будет. Так, чтоб каждый - и швец, и жнец, и все остальное по мере необходимости, сейчас уже очень мало кто работает. LEX: угу, мало кто это только мы. Остальные с разделением труда. |
![]()
Сообщение
#1783
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
У меня вопрос кто сможет написать скрипт на появления строки случайно? Мне надо чтобы после октивезацыи предмета одна из трёх строк появлялось случайно. (IMG:style_emoticons/kolobok_light/biggrin.gif) |
![]()
Сообщение
#1784
|
|
Level 4 ![]() ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек ![]() |
В соседней теме столько хохм про этот ворос, что хочется во все разобраться и помочь-таки человеку. Для начала, где это строка должна появиться? В описании, разговоре или еще где? или Вы хотите, что бы у предмета появилось такое действие - "активация появления случайной строки"? А может я чего ни понял?
Сообщение отредактировал Dart_Vadder - Sep 29 2006, 13:51 |
![]()
Сообщение
#1785
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
народ, поделись плиз документацией на Аврору на русском и если можно прогу саму либо ссылочку! чтоб без регистарции на каком либо портале!
заранее спс мое мыло если-что megaeddy@mail.ru |
![]() ![]() |
Текстовая версия | Сейчас: 17th July 2025 - 11:16 |