![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1701
|
|
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
Kavin, твоя ошибка в выборе события - OnPerception срабатывает когда игрок входит/выходит в/из зоны видимости/слышимости стражника. т.е. твой скрипт будет работать только в тех случаях, когда игрок уже дрыхнет где-то, а стражник, подходя, замечает его.
нужно вешаться на OnHeartBeat(аналогично тому, как ты вешался на персепшн, т.е. после вызова nw_c2_default1) и там проверять, находится ли игрок в пределах видимости и его состояние. и там уже пинать бомжа. :crazy: |
![]()
Сообщение
#1702
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
другой вариант это при старте реста поиск стражников ближайших, которые игрока видят. Ну и далее по твоему сценарию. Так имхо экономичнее, чем хб стражи грузить
|
![]()
Сообщение
#1703
|
|
Level 8 ![]() ![]() ![]() Класс: Паладин Характер: Lawful Good Раса: Полуэльф ПОДМАСТЕРЬЕ ![]() |
Lex, как повесить скрипт на стражника, я знаю, а вот как выполнять скрипт при старте Rest-а игрока?.. Его-то слотов я не вижу.
dumbo, Спасибо. Способ подходящий, кажется. Единственное, что меня смущает, что OnHeartBeat происходит каждые 6 секунд, и пока стражник одуплится и добежит, ты уже отдохнешь и под шумок свалишь, особенно если низкоуровневый персонаж... А стражник тебя догонит, высунув язык на плечо, и скажет: "Низзя! Было тут отдыхать...". И все, хотя главная задача - помешать игроку отдохнуть. Была немного другая затея - когда игрок садится отдыхать, рядом с ним, шагах в 10-20, в случайном направлении, создавать Waypoint, телепортировать из казармы патруль, давать ему команду "К бомжу бегом марш!", и далее - мешать игроку отдыхать. Что мне помешало: 1. Не умею еще отлавливать начало отдыха игрока. 2. Думаю, помучившись, я бы сумел расположить Waypoint на расстоянии 10-20 шагов в случайном направлении. Но если игрок сядет отдыхать на краю карты, то стражу может забросить на макушки деревьев или вообще куда-то нафиг. Предполагаемые выходы из ситуации: а) понатыкать на карте Waypointов, и определять ближайший, к нему стражу и телепортировать. Но тогда получается слишком много объектов?.. При размере карты, скажем 12 на 12 надо будет минимум 144 waypointa. б) При расположении Waypointа проверять, не вышел ли он за пределы локации, и в соответствии с этим корректировать координаты. Однако я не умею проверять, не попал ли Waypoint за границу... Может быть, подскажет кто функции нужные?.. |
![]()
Сообщение
#1704
|
|||||||||
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
свойства модуля - события - onPCRest
функция CreateRandomLocation (есть в базе) + проверка на валидность координаты (тут придется наверное параметры локи занасить в локалки этой самой локи. По сути надо знать ширину и длину в тайлах и умножить то ли на 10, то ли на 15, чтобы получить коорлинаты.. я уж не помню ну и далее очевидно.. Проблемы это тем не менее полностью не решает)
хороший вариант. Канает. Но только наф так много? Прикинь локу города... поставь там всего то 10-20 поинтов и ты покроешь всю основную зону. не надо стремиться делать 1 поинт на тайл, лучше распологать их более рационально.. у дверей, закоулвок и прочих мест, откуда стражник мог появиться незамечанным)
??? если у тя стоят поинты, провека не нуна. Они ж на нормальных местах стоят. че-то меня седня на большой пост развезло.. молчанка на пару дней.. |
||||||||
![]()
Сообщение
#1705
|
|||
Level 8 ![]() ![]() ![]() Класс: Паладин Характер: Lawful Good Раса: Полуэльф ПОДМАСТЕРЬЕ ![]() |
Согласен с тобой, однако местность - не город, а хутор, и если я сяду на краю карты отдыхать, то стража не успеет добежать до меня из ближайшего закоулка. Кроме того, я подумал сегодня и забраковал этот вариант по той причние, что если я сяду отдыхать прям у невидимого Вэйпойнта, то стража "появится из сумрака" прямо около меня. Некузяво. Ночной дозор, блин. :yes: Так что остается только случайное расположение Вэйпойнта. В принципе, сейчас найду функцию RandomLocation и разберусь. О результатах отпишу. =) |
||
![]()
Сообщение
#1706
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Вот описание скрипта который мне нужен:
Когда 4 предмета(допустим с тагами 1 , 2 , 3 и 4) попадут на алтарь( с тагом Aktar_01 ) то на него производится эфект(как при лечении(я имею ввиду лучь оква-голубой))и с двери(таг Door_Sklep_01_12 ) снимается супер-пупер необезреживающаяся ловушка. Сообщение отредактировал Белатрис - Nov 6 2005, 11:29 |
![]()
Сообщение
#1707
|
|||||||||||
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
ну и где проблема? все, что надо для 1. снятия ловушки
2. эффека наложение:
сам эффект:
константы эффектов:
как делать: в закладку onDisturbed обрабатываешь работу с вещами, оперируя этим:
\\ скрипт пишется за 2-3 минуты максимум. Время пошло. |
||||||||||
![]()
Сообщение
#1708
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
А как проверка делается, а то я уже пол часа сижу со статьей и ничего не могу придумать!
|
![]()
Сообщение
#1709
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
варианты:
1. - на ивент INVENTORY_DISTURB_ADDED проверять, если добавили вещь с нужным тегом, то локалку соотв. сделать +1. Убрали -1. Или делать локалку-состояние.. описал ниже ее. (причем я не наю, как у тебя с уникальностью вещей.. но можно сделать проверку на дубли) - как только локалка стала = 4 то соотв эффект и ловушка. 2. после каждого изменения инвентаря алтаря (ADDED или REMOVED.. не суть, можно не проверять даже) пробегаешься по вещам, что там есть и формируешь локалку (либо как выше, либо локалку-состояние.. например 1111 значит, что все есть... 1011 значит, что нет второй вещи.. ну и тд.) и проверяешь в конце.. |
![]()
Сообщение
#1710
|
|
Level 8 ![]() ![]() ![]() Класс: Паладин Характер: Lawful Good Раса: Полуэльф ПОДМАСТЕРЬЕ ![]() |
Lex, послушай, я немного запутался.
Тип данных Location - это типа "Место с координатами Х, У, Z", или именно игровая локация?.. Сообщение отредактировал Kavin - Nov 6 2005, 20:06 |
![]()
Сообщение
#1711
|
|||||||
Level 7 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Эльф NWN: Скриптинг [Sn] ![]() |
Kavin, скачай себе Lexicon. Очень полезная вещь.
и функция
|
||||||
![]()
Сообщение
#1712
|
|
Level 8 ![]() ![]() ![]() Класс: Паладин Характер: Lawful Good Раса: Полуэльф ПОДМАСТЕРЬЕ ![]() |
Угу. Ясно! Location - тип данных, полностью описывающий месторасположение объекта.
Лексикон качаю. Безуспешно - уже 4-й раз, с разных ссылок... :swoon: |
![]()
Сообщение
#1713
|
|||
Level 9 ![]() ![]() ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Нежить ![]() |
Объясните мне пожайлуста :shout: Почему при использовании функции - AddJournalQuestEntry, с целью добавить ступень в журнале, которая завершает категорию, мне не выдают опыт, который я назначаю.(в поле свойств категории) Приведу более широкий пример.
Игроку дают квест - найти ключик. Добавляется запись в журнал(с этим проблем нет) - далее игрок находит ключ - квест завершается и запись в журнале переходит в закладку "выполненые", но опыта за завершенную категорию не дают :this: Сообщение отредактировал Лито - Nov 6 2005, 22:16 |
||
![]()
Сообщение
#1714
|
|||||
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
и сами даем опыт. Лито, с такими вопросами в ОДИНОЧНЫЕ ВОПРОСЫ или Вопросы Новичков, а не сюда. \\ кстати ответ взят оттуда, с последней страницы, так что.. выводы сам делай. Добавлено в [mergetime]1131304925[/mergetime] Kavin, тебе кстати тоже. |
||||
![]()
Сообщение
#1715
|
|
Level 9 ![]() ![]() ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Нежить ![]() |
Гм...тогда придется писать проверку, чтобы опыт давался только один раз. :unsure:
Эх...ладно. |
![]()
Сообщение
#1716
|
|||
Level 10 ![]() ![]() ![]() Класс: Мастер Оружия Характер: Lawful Good Раса: Человек ![]() |
Ну кто-нибудь, помогите! :this:
Ну и так и так делал, все деньги у игрока НИ В КАКУЮ не забирает! Ошибок тут нет, но вот не забирает деньги и всё, хотя строка такая есть... |
||
![]()
Сообщение
#1717
|
|||||
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Мля.. не первый раз уже такое.. Daemonix функция:
из Лексикона
ну народ, блин, :RTFM: |
||||
![]()
Сообщение
#1718
|
|
Level 6 ![]() ![]() Класс: Варвар Характер: Chaotic Good Раса: Полуорк ![]() |
Друзья, есть у меня проблема, вобщем есть два города, допустим город А и город В, в окрестностях каждого города 6 лок, между городами можно передвигаться. Так вот, как сделать так чтобы если вы умерли в одной из шести лок города А, то вы появлялись в храме города А, а если в одной из 6 лок города В то в храме города В.
Я как то раз уже спрашивал про это дело в разделе Шарды Рунета, тогда мне никто толком ниче не разъяснил, может поможете? |
![]()
Сообщение
#1719
|
|||
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
KoYuKi в скрипте OnPlayerDeath добавь:
edit: ой, ой. облажался :oops: - OnPlayerDeath идет на модуле ж... не OBJECT_SELF, а GetLastPlayerDied(). thx 2 AliceDiren ;) Сообщение отредактировал dumbo - Nov 10 2005, 21:06 |
||
![]()
Сообщение
#1720
|
|||
Level 7 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Эльф NWN: Скриптинг [Sn] ![]() |
KoYuKi, самый простой вариант - проверять таг локи, в которой умер персонаж. В скрипте на OnPCDeath
|
||
![]()
Сообщение
#1721
|
|||||||||||
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
мм... имхо этот вариант проще и малек удобнее:
Что мы имеем. В каждой локации ставим Waypoin с тэгом "RP" и именем = тэгу точки респауна. И все... Берется поинт, по имени берется другой поинт и мы туда джампаемся. Думаю все локации пометить такими поинтами - не проблема. (можно сделать, что в локации будет храниться локалка, но имхо ставить поинты проще.. не надо никуда лазать.) + что добавление новых областей и новых мест респауна не требует изменения скрипта. Просто поставь поинты в локацию и все (имеет смысл сделать их в палитре). имхо Добавлено в 21:20
не до конца поправил Добавлено в 21:24
тебе посоветовали, как сделать. Причем в том же ключе, в каком тут скрипты написаны. ЗЫ: вопрос - 3 ответа от мастеров... ГЫ :D |
||||||||||
![]()
Сообщение
#1722
|
|||
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
:offtop: (маленький и незаметный)
и, что характерно, все написаны в блокноте и нерабочие... :crazy: |
||
![]()
Сообщение
#1723
|
|
Level 6 ![]() ![]() Класс: Варвар Характер: Chaotic Good Раса: Полуорк ![]() |
Спасибо всем, но вот насчёт блокнота это проблема, тогда мне тоже дали такой ответ как Lex, вот только он был не рабочий... щас этот проверю
|
![]()
Сообщение
#1724
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
это куски кодов. Доводи их до состояния скриптов уже сам. Сам не научишься - мы за тебя все скрипты в модуль не напишем же.
С твоей стороны надо чуть больше, чем "дайте мне скрипт". Тем более в такой теме, где задаются вопросы и просятся советы |
![]()
Сообщение
#1725
|
|
Level 6 ![]() ![]() Класс: Варвар Характер: Chaotic Good Раса: Полуорк ![]() |
Lex да я то понимаю что это куски кодов, вот только куда эти коды писать, всмысле как, по каким законам, относительно чего... я с учебником по скриптингу довольно долго возился, порядка пары месяцев, но так толком ничего в C++ и не понял, так основы... видать не моё это...
|
![]() ![]() |
Текстовая версия | Сейчас: 30th April 2025 - 13:49 |