![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1386
|
|||||
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
dumbo, с хартбита я его убрал, и повесил на OnPerception, несколько изменив, и убрав цикл, потому что на самом НПС он уже не нужен. Один вопрос, если же оставлять скрипт с циклом, как же мне определить правильно "oDefender", если мне не нужен какой-то определенный НПС, а именно НПС, у которого в имени тэга которого только эти слова "npc_guard"? Воспримется ли нормально такой вид тэга?
Новый скрипт, не всегда срабатывает, потому что условие по расстоянию, но если его не делать, то НПС бежит с очень далекого расстояния. Можно опять же сделать цикл по сфере, но что не хочется громоздить лишний код.
Не нашел иного пути, как сбросить открытый диалог у персонажа, поэтому стираю ему действия и пытаюсь завязывать этим персонажем диалог со стражником, быстро останавливаю, включаю кутсцену, а дальше уже по скрипту. Не сбежит, диалог то уже запущен. А на выходе и входе в модуль у меня проверяется переменная, если она равна TRUE, то удалить, соответственно НПС снова обратится к персонажу игрока. Если же попробует просто скинуть диалог, отбежав подальше, опять-таки, на данный момент, обижается вся фракция "Defender". Мне такой путь не очень нравится, но пока по-другому не реализовал. Скрипт смерти был такой изначально, и даже хуже, когда я взялся за модуль. Работая с ним, начал доводить до идеальной работы, и от того скрипта мало уже что осталось. Запутанный он, потому что много всего, что надо учитывать при смерти. К тому же я взял все инклуды, и включил в один кусок скрипта, чтобы легче было разобраться. Буду еще отлаживать, главное, он работает, пока игрок не делает ничего, что может привести к ошибке. |
||||
![]()
Сообщение
#1387
|
|||||
Level 4 ![]() ![]() Класс: Волшебник Характер: Chaotic Good Раса: Эльф ![]() |
Компилятор выдает мне ошибку: ОШИБКА: МНОГОКРАТНЫЙ СЛУЧАЙ ПОСТОЯННОГО УТВЕРЖДЕНИЯ В ПРЕДЕЛАХ ВЫКЛЮЧАТЕЛЯ в скрипте (место отмечено //*****):
Ему не нравится что у меня слишком много case? Добавлено в [mergetime]1121408064[/mergetime] И еще. Пусть меч дает бонус силы +12. Могу я получить это +12 следующей ф-ей? [NSS] int GetAbilityBonus (object oItem, int nAbility) { itemproperty ip = GetFirstItemProperty (oItem); while (GetIsItemPropertyValid (ip)) { if (GetItemPropertyType (ip) == nAbility) { return GetItemPropertySubType (ip); } ip = GetNextItemProperty (oItem); } } Добавлено в [mergetime]1121408138[/mergetime] И еще. Пусть меч дает бонус силы +12. Могу я получить это +12 следующей ф-ей?
|
||||
![]()
Сообщение
#1388
|
|
Level 3 ![]() Класс: Ниндзя Характер: Chaotic Evil Раса: Человек ![]() |
dumboДа расписал отлично, только я уже понял, метот похож на паскаль :)
Уже все зделал, значение стринг прилипил к предмету невыкидываемуму, затем одтуда счатываю перевожу в Локайшен и кидаю перса туда....Поидеи должно сохраниться после рэбута на шмотке, дома прийду проверю. А тебе спасибо! :good: |
![]() ![]()
Сообщение
#1389
|
|||||
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
minion, ну и скрипт, ты хотя бы привел инклуд с константами, где ты их определяешь, а то часть констант даже и не значится среди стандартных. Ошибку он тебе эту пишет только лишь потому, что у тебя разный тип констант в одном переключателе. И используй английский редактор, а то понять, что означает твоя ошибка в переводе, очень тяжко. Объясни подробнее, что именно ты хочешь сделать? Если желаешь бонус силы от меча, так пропиши подобное на модульные скрипты. Там есть эвент, который обрабатывает одеваемые и снимаемые вещи. Например так: На эвент модуля "OnPlayerEquipItem"
На эвент модуля "OnPlayerUnEquipItem"
Тут я немного не разобрался, как снять определенный эффект, т.е. в нашем случае снять только эффект изменной силы, поэтому скрипт снятия эффекта универсальный. |
||||
![]()
Сообщение
#1390
|
|||
Level 4 ![]() ![]() Класс: Волшебник Характер: Chaotic Good Раса: Эльф ![]() |
Zirrex я хочу сделать кузнеца, который будет зачаровывать вещи за определенную плату. Нечто подобное есть в ХотУ. Но там не зачаровывает характеристики. Вот мне и пришла в голову идея. У меня не получается только зачарование Харизмы и проверка на уже зачарованный бонус (скажем +12 силы на мече). Вот выкладываю весь инклуд:
Найдете ошибки пишите. |
||
![]()
Сообщение
#1391
|
|||||
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
сделал простенькую систему вархаузов, стоит сундук,оа onOpen стоит
на onClose
|
||||
![]()
Сообщение
#1392
|
|||||
Level 3 ![]() Класс: Ниндзя Характер: Chaotic Evil Раса: Человек ![]() |
Помогите не работает чете =\....Вот скрипт: На ОнЕкзит
И на ОнЕнтер
Скрипты упростил на максимум что бы было проще разобраться... Непонемаю почему он не работает, вроде бы все правильно по логике... |
||||
![]()
Сообщение
#1393
|
|||||||||
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
выражайся точнее. судя по всему, это таки "ОнКлиентЛив" и "ОнКлиентЕнтер"... что такое Lexicon знаешь? цитата оттуда:
да и ошибок в скриптах куча. :yes: особенно затейливо у тебя используются переменные, содержащие в имени ReturnValue. :crazy: короче, вот твои main'ы: OnClientLeave:
OnClientEnter:
|
||||||||
![]()
Сообщение
#1394
|
|||
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
Так и не нашел скрипта смерти(ну точно видел, но повторнео найти так и не смог) написал свой код
Все компилируется, но отказывается работать, создается труп, в нем лежит итим труп и голд, который у игрока не изымается, игрок воскрешается и остается стоять около трупа :crazy: Сообщение отредактировал Batkom - Jul 18 2005, 19:26 |
||
![]()
Сообщение
#1395
|
|||||
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Batkom, сорри, там на второй странице - вот код.
|
||||
![]()
Сообщение
#1396
|
|||||||||||||||||||||||||
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
Сделал шардовую деф систему: это первая более менее серьезная взаимосвязаная система скриптов которую я написал, потому может не работать(еще не проверял, всевроде компилируется) Если найдете ошибки, пишите, если все будет работать, выложу в базу скриптов. Поехали: Хертбит(работает):
onDying(совсем просто, тоже работает)
onPlayerDeath(как не странно, тоже работает)
OnEnter в фуге
на OnExit в фуге
на onenter в модуль
при открытии инвентаря трупа
на закрытие инвентаря трупа
Ну помоему стандартный скрипт на OnActivateItem
Предмет трупак имеет свойство ыть использованным один раз скрипт называется в честь тега предмета а именно corpseitem
Кусок райздеда(nw_s0_raisdead)
Кусок ресуректа(nw_s0_resserec)
Вот собственно и все, надеюсь ничего не пропустил. Не судите строго, не идеально, зато сам :D . Сообщение отредактировал Batkom - Jul 19 2005, 04:00 |
||||||||||||||||||||||||
![]()
Сообщение
#1397
|
|
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
Batkom, тут пока негде искать ошибки. советую таки не изобретать велосипед, а вопользоватся готовыми(которые, правда, порой оказываются инвалидными колясками): идешь сюда вводишь в поле title слово death и жмешь enter.
|
![]()
Сообщение
#1398
|
|
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
сорри за то, что было сначала, теперь все полностью
Добавлено в [mergetime]1121767396[/mergetime] тестинг показал, что при выходе из игры попутно выполняется скрипт выходаиз фуги....это не хорошо, можно ли сделать из него инклуд? (я правда никогда инклуды не делал) Добавлено в [mergetime]1121773445[/mergetime] игрок не воскрешается :unsure: пишет, что ошибка скрипта реса, слишком много инструкций Добавлено в [mergetime]1121777505[/mergetime] не работают флажки, что не делай, игрок либо все время в фуге, либо все время живой при перезаходе и рестарте |
![]()
Сообщение
#1399
|
|
Level 4 ![]() ![]() Класс: Маг Характер: Chaotic Evil Раса: Дракон ![]() |
Люди! Мне нужна такая хреновина: Например, с моим персом идет напарник. Мне надо, чтобы в определенном месте он остановился, и сказав типа "Я дальше не пойду" выбыл из компаниии уже НЕ ПРИСОЕДИНЯЛСЯ НИКОГДА.
и ещё: как сделать, чтобы непись после диалога ушёл В ДРУГУЮ ЛОКАЦИЮ, НЕ СМЕЖНУЮ С ИСХОДНОЙ? ......(я маг начинающий, в скриптах разбираюсь кое-как) заранее спасибо :crazy: |
![]()
Сообщение
#1400
|
|||||||||
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
zmey, есть функция
где oMaster - это тот от кого уходит хенчмен oHenchman - это хенчмен, каторый уходит То, что ты хочешь можно сделать с помощью тригера и скрипта на нем проверяющего кто наступил. Рисуешь тригер и на ОнЭнтер ставишь скрипт
Вот функция
С помощью нее кидаешь непися куда хочешь. Сообщение отредактировал -fenix- - Jul 21 2005, 12:26 |
||||||||
![]()
Сообщение
#1401
|
|
Level 4 ![]() ![]() Класс: Маг Характер: Chaotic Evil Раса: Дракон ![]() |
fenix, спасибо!!! :crazy:
|
![]()
Сообщение
#1402
|
|
Level 2 ![]() Класс: Обыватель Характер: Chaotic Good Раса: Человек ![]() |
Ребята, мне очень нужен Trueseeing скрипт(чтобы допустим ставил вместо него еффект See Invisibility и +20 к споту),я сам скриптить не умею, искал в разных местах, не нашел, а без него, воры у меня на шарде практически не встречаются...
Помогите пожалуйста, буду благодарен. |
![]()
Сообщение
#1403
|
|
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
я например заменил трусы на заклинание превращения цели в слабое существо(корова, пингвин, крыса, курица), если не прокинет спас по воле. Имхо так интереснее.
|
![]()
Сообщение
#1404
|
|||
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
BoB4ik ищи в модуле скрипт "nw_s0_truesee". Изменяем код:
Стрелочками я указал, что добавил нового в скрипт. А воры почему не встречаются, просто незаметны? :D |
||
![]()
Сообщение
#1405
|
|
Level 2 ![]() Класс: Обыватель Характер: Chaotic Good Раса: Человек ![]() |
Спасибо Тебе, Зиррекс!
Сейчас исправлю:) |
![]()
Сообщение
#1406
|
|
Level 7 ![]() ![]() Класс: Маг Характер: Lawful Neutral Раса: Эльф ![]() |
Вот у меня вопрос... как сделать так, если монстр далеко убежал от определённой точки гоняясь за игроком, предположим на X футов, он вернёться назад.
Можно ли сделать, что бы НеПиСь давал квест на убийство монстра, а этот монстр появился бы в какой нибудь локации (наугад из трёх определённых)... И как сделать что бу если у героя здоровье 0, он не погибал, а экран темнел и он оказывался в определённой локе (например больница), его вещи находились в определённом ящики и отнялось пару золотых... |
![]()
Сообщение
#1407
|
|||
Level 10 ![]() ![]() ![]() Класс: Воин Характер: Lawful Neutral Раса: Человек NWN: Скриптинг [PW] ![]() |
Угу... А еще напишите мне всю эту систему, и скажите что куда поставить чтоб все заработало. Получая сразу все готовые скрипты - сложно будет научится скриптить. Даже исходя из //комментариев. Скачай NWScripts Лексикон, чуть-чуть английского и все будет окей. 1.Про расстояние: Проверить расстояние до объекта можно функцией GetDistanceToObject. Между третьими объектами - GetDistanceBetween. Сделай проверку на расстояние до атакера (игрока). Или же окружи монстра триггером и при выходе за зону тригерра - очищай список действий(ClearAllActions), и отправляй его на вэйпоинт (ActionMoveToObject). 2. Чтобы монстр появлялся в разных точках.. Сделай три разных точки. Потом сделай Интегер равный случайному числу (Random(макс. значение)). И делай проверку... Если int равен 1 - монстра в первую точку(JumpToObject на монстра или же CreateObject на той самой точке), если 2, то во вторую итд. 3. Когда у игрока здоровье от 0 до -11 - идет скрипт OnPlayerDying - правь в свойствах модуля. Так же поправь там OnPlayerDeath - некоторые сильные монстры могут так звездануть что игрок скопытится мгновенно. 4. Вещи перебросить можно таким способом. Задаешь циклический алгоритм на перебирание вещей у игрока в инвентаре (в начале функции предмет из инвентаря = GetFirstItemInInventory). Затем - CopyItem в тот самый ящик, и DestroyObject этого предмета в инвентаре у самого игрока. В конце цикла предмент из инвентаря = GetNextItemInInventory. 5. Пару золотых убрать так TakeGoldFromCreature (Кол-во золота, Игрок). Удачи... Почитай описание функций - разберешься! |
||
![]()
Сообщение
#1408
|
|
Level 7 ![]() ![]() Класс: Маг Характер: Lawful Neutral Раса: Эльф ![]() |
Спасибо... я бы прочитал лексикон, да вот учил не английский :vava: :swoon: :this:
|
![]()
Сообщение
#1409
|
|
Level 10 ![]() ![]() ![]() Класс: Воин Характер: Lawful Neutral Раса: Человек NWN: Скриптинг [PW] ![]() |
DEM Учи. Иначе будет тяжко в скриптинге. Да там англ. базовый на уровне 5го класса.
|
![]()
Сообщение
#1410
|
|||
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Привет всем. Запарился я тут с одной траблой... Есть книга Итем и есть книга плэйсебл. Я при выкладывании итема книги из инвентаря создаю плэйс на его месте. Так вот. Все работает и прочее. Но когда я выкладываю в сумке, все книги удаляются... Хоть 10 хоть 1. Никак контейнер не реагирует на мой код. Я знаю и таг его и ресреф... Видать это движковое что то. Как обмануть? Скрипт стоит на слоте модуля OnUnAcquireItem.
|
||
![]() ![]() |
Текстовая версия | Сейчас: 4th May 2025 - 08:06 |