![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1551
|
|||
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
чтобы проверить весь список игроков можно сделать так:
Этот код хорошо вставлять в скрипт OnHeartbreath ибо он будет выполняться каждый ход, я так например реализовывал эффекты от выпивки, скрипты божеств(если рандом один из ста ляжет бог игрока может реснуть его, прибавить силы или сделать что нибудь другое полезное, эффекты различаются в отличие от выбраного божества), субрассы(например вампиры, которым днем если они не находятся в пещере или другом темном месте занижаются характеристики и наносится урон) Сначала я думал будут лаги от кучи скриптов выполняемых каждый ход, но потомкак выяснилось все замечательно работает. Вот еще вопрос, допустим у меня стоит нипись, которому можно дать денег на сохранность, игрок пишет сумму в чате, у него забирается голд и записывается в базу данных с помощью SetCampaignInt привязанок имени чара и сидикеям. Проблема в том, что я не могу узнать что же такое написал игрок...просто не знаю как... |
||
![]()
Сообщение
#1552
|
|
Level 3 ![]() Класс: Ниндзя Характер: Chaotic Evil Раса: Человек ![]() |
Помогите пожалуйсто разобраться в диологах.
Я хотел зделать так что бы НПС поговорив с игроком, дает ему задание, а после следующих кликов на НПС он говорит мол "иди выполни задание потом поговорим"...Ты идешь к следующему НПС и он начинает с тобой говорить только после того как ты поговрил с тем что дал задание, а иначе говорит например "отстань я занят", потом ты возвращаешься обратно к первому после выполнения задания и он тебя благодарит и дает вознаграждение, как это зделать? помогите пожалуйста. Я делал через проверку на шмотку, но это очень примитивно когда НПС все время дает вещь.... Плиз помогите :this: |
![]()
Сообщение
#1553
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
А зачем через проверку, на шмотку? :yes: Ты делай на проверку через локальные переменные.
|
![]()
Сообщение
#1554
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
GoingPro), прочитай монуал Айвана в файлах, составишь представление.
А на перввое время делай квесты через визорд - там все просто, разберешься. В русской версии Волшебницы -> мастер сюжета. Сообщение отредактировал -fenix- - Jul 4 2005, 20:06 |
![]()
Сообщение
#1555
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
GoingPro), скрипт смерти с трупом, сумочкой с вещами и деньгами, посмотри в модуле HCR. Конечно, в нем скрипт написан очень бездарно, но хоть какое-то представление о создании подобной смерти ты получишь.
Чтобы НПС говорил разные фразы до завершения квеста, необходимо в момент передачи квестовой вещи изменять переменные. Какие? Да любые, какие только могут придти на ум. Тут фантазия безгранична, одно условие, они не должны повторяться, иначе будет каша. И самое главное, не забывать их удалять, когда они более не нужны. Хотя в одиночной игре они не удаляются, а переходят в завершенный вариант, т.е. переключаются на те числа, которые уже не смогут дать первоначальный вариант диалога. И еще, крайне советую анализировать существующие скрипты. Они могут здорово помочь в написании своих скриптов. Язык не сложный, к тому же созданы довольно понятные функции. Знай, создавай свои миры. Batkom, чем меньше на Хертбите скриптов, тем лучше. Когда нет лагов с одним игроком, могут быть проблемы с большим количеством игроков. Поэтому скрипты, которые срабатывают в определенной момент, например при смерти, должны находиться только там. Так ты заставь НПС слушать. Он услышит написанную цифру и преобразует ее в слова. А вообще банки на словах не самая лучшая вещь. Посмотри на Ваулте разные варианты банков, может быть один из них да приглянется. Сообщение отредактировал Zirrex - Jul 4 2005, 22:31 |
![]()
Сообщение
#1556
|
|||||||
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Все удаляется. И вообще. Обычно проверка на 0 (ноль) есть понятие того, что локалки нет. Можно локалку удалить так как внизу.
|
||||||
![]()
Сообщение
#1557
|
|
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
У меня он лайн мод, в принципе пока не лагает, хотя игроков не очень много, гдето около 20-25 одновременно
я функцию нужную найти не могу и систему выслушивания немного недопонимаю если установка слушающего нипися пишется как SetListening(OBJECT_SELF, TRUE); то как же узнать что же такое он наслушал? ну я понимаю типа string sFarse = а что дальше понятия не имею, я лексикон листал, чтот не понял ибо мои познания в английском невелики из гетлистена я нашел GetListenPatternNumber(), но я так и не понял как это работает а слушанье может понадобитьсяне только для банков, но допустим для реализации налогов на деревни(глава гильдии, если ему подчиняется деревня может установить налог, который собирается каждый игровой месяц) или для более эффективной торговли(игрок отдает ниписю вещь, устанавливает на нее цену а потом приходит и проверяет, купил ли ее кто другой из игроков) Сообщение отредактировал Batkom - Jul 5 2005, 01:16 |
![]()
Сообщение
#1558
|
|
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
Batkom
поползай по форуму, пользуй поиск - много интересного узнаешь и большинство вопросов отпадут сами собой... ;) пример "слушания" - http://www.wrg.ru/forums/index.php?showtop...st=0entry6707 |
![]()
Сообщение
#1559
|
|
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
сенк пойду делать
|
![]()
Сообщение
#1560
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
Aiwan, я несколько не это подразумевал, что они не удаляются. Дело в том, что если их удалять, то в момент диалога может выполниться снова уже один раз прозвучавший диалог, который проверяется у этой переменной на ноль. Лучше уж эту переменную приравнять 2, и проверить на 2 вторую ветку диалога, чем создавать еще одну переменную, при проверке которой не будет выполняться первая ветвь диалога.
|
![]()
Сообщение
#1561
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Zirrex любая переменная проверенная на ноль выдасть TRUE, это движковое. Так что учи матчасть, прежде чем что-то утверждать.
Добавлено в [mergetime]1120622736[/mergetime] Что бы проверить истинно существующую локалку. То просто проверяется на TRUE. Если она существует, то будет результат. И не важно, 1 или 20 она ровна. Добавлено в [mergetime]1120623210[/mergetime] Расскажи лучше чем занят? ;) |
![]()
Сообщение
#1562
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
Aiwan, да, что-то немного ступил, и правда, изначально она равна 0, далее ее просто можно таким образом удалить, и меньше скриптов.
з.ы. На данный момент занимаюсь проектом Амен. Не знаю, слышал ли про такой онлайновый шард или нет. Существует уже 2,5 года. |
![]()
Сообщение
#1563
|
|||
Level 3 ![]() Класс: Ниндзя Характер: Chaotic Evil Раса: Человек ![]() |
Помогите а что тут за ошибка ? плиз
кричит на object GetPlayerSpirit(object oPlayer); первый который :) |
||
![]()
Сообщение
#1564
|
|||
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
GoingPro) синтаксис NWN-script заимствован из C, а в нем, в отличие от Pascal'я, не допускаются вложенные описания процедур. да и вообще, каша какая-то...
|
||
![]()
Сообщение
#1565
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
GoingPro), как я понял, ты решил сделать сохранение персонажей на локации после рестарта? Не делай так, как описано это в базе скриптов, т.е. не кидай скрипт сохранения локации персонажа на каждую локацию в эвент "OnEnter". Лучше повесь его на скрипт "default". Скрипт срабатывает каждый раунд, и постоянно перезаписывает координаты персонажа, в отличие от того, что установлен на "OnEnter". Какого-либо падения скорости это не вызовет. Единственное но, при входе на шард, скрипт чтения переменных и координат надо разместить на скрипт "OnClientEnter", и запретить работу скрипта "default" в стартовой локации, иначе сохранит координаты.
Да, и чтобы не было подобных казусов, который произошел у тебя, знакомься с чужими скриптами, смотри как они написаны и что следует писать в разных случаях. Потом научишься быстро делать свои скрипты. И не лишним будем знакомство с основами С++. Только, главное, не копировать чужие ошибки :) |
![]()
Сообщение
#1566
|
|||||
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Да, забудь :friend: Я там сам стальными яйцами погремел :D
Слышал конечно. Ну, вливайся к нам на форум! ;) |
||||
![]()
Сообщение
#1567
|
|||
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
Я столкнулся с проблемой баланса. Дело в том, что сорки и визарды в раскачанов состоянии являются грубо говоря читерскими классами ибо файтер против мага в пвп мало что может сделать(сжимающая бигби + исаак, если у файтера нет мегашмоток он труп). Я уже и трусинг убрал и на исааки проверку на спасброски по реакции повесил и бигби по времениурезал, все равно сорки сильнее и даже самых крутых мобов не обладающих спелл имуном кладут только в путь, а обкаст делает ихнеуязвимыми в ближних атаках. И тут родилась идея, а что если сорки и визарды будут получать 25% от опыта назначеного в настройках модуля, я слышал где-то это уже было реализовано, вот толлько как? Если придется редактировать 2da дайте пожалуйста ссылочку на то, как это делать. И вот еще вопрос: скрипт отдыха я взял стандартный и поправил, добавив необходимость в еде и матрасе, но он почему то циклится, яубрал эту неприятность довольно примитивно заставив игрока самолично подбирать матрас, но тут появилась необходимость накладывать эффект сна в конце отдыха, чтобы персонаж во первых спал дольше, во вторых была возможность его убить одним удачным ударом. Как это лучше сделать? вот скрипт
Честно говоря я не понял назначения большинства функций, потому решил просто доплнить. |
||
![]()
Сообщение
#1568
|
|||
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
Batkom 1. не видел пока шардов с оставленной по умолчанию системой выдачи опыта. везде применяется самостоятельная система выдачи опыта - при смерти кричи оценивается уровень оной, уровень игрока, количество народа в партии(соотношение уровней игроков в партии), количество нанесенного урона итд итп, и на основе всего этого игроку выдается опыт. ноги растут из nw_c2_default7(смерть кричи), nw_c2_default6(урон). 2. скрипт отдыха вызывается не только в начале оного - в начале, в конце, при отмене, и при неудачной попытке отдохнуть. какое именно событие произошло определяется функцией GetLastRestEventType(). эффект сна, накладываемый на начинающего отдыхать, отменяет отдых. дефолтную систему отдыха можно смело выкидывать, все равно ты ее не используешь. заготовка скрипта:
|
||
![]()
Сообщение
#1569
|
|
Level 3 ![]() Класс: Ниндзя Характер: Chaotic Evil Раса: Человек ![]() |
Где можно взять хак пак с замками и каменными стенами и всей этой ерундой если конечно такой есть, хотя я думаю должен быть 100%. Помогите пожалуйсто.
И ещо есть игроку присваивать SetLocalInt(oPc, "INT", 1); то после рестарта сервера оно сохраняеться? Если нет то как одевать на персонажа шкуру, просто туда можно было бы поприсваивать че то :)? Молю о помощи, брожу в неведании и это мешает в работе :) Помогите пожалуйсто. |
![]()
Сообщение
#1570
|
|||||||
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
GoingPro), искать какие-либо хак-паки стоит тут Neverwinter Vault. Также там много чего полезного для начинающего разработчика. Нет, не сохранится. Все переменные хранятся на персонаже до рестарта. Рестарт же их затирает. Есть хорошие функции, которые пишут переменные в базу. Например, так:
а потом считываешь при входе:
Только надо вначале описать, при каких условиях переменная создается первый раз, чтобы этого не происходило вторично. Извиняюсь, если ошибся, мало работал с ними. Одеть предмет на персонажа легко. Во-первых, нужен сам предмет, его тэг, а во-вторых, если это сервер, то в настройках его должна быть выключена опция "Item Level Restrictions", иначе вещь не по уровню просто не наденется на персонажа, а будет валяться в рюкзаке. Далее делаем так:
Сообщение отредактировал Zirrex - Jul 7 2005, 19:31 |
||||||
![]()
Сообщение
#1571
|
|
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
вот еще вопрос, делая алхимию, как один из эффектов при неудачном смешении ингридиентов игрок превращался в корову или пингвина. Дело в том, что после установки полиморфа игрок может его отменить нажав "отменить полиморф" как лишить игрока этой возможности?
я пробовал накладывать паралич, но игрок просто преврашается обратно и стоит в параличе может можно убрать как нибудь эту кнопку, или лишить игрока всех действий |
![]()
Сообщение
#1572
|
|||
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
Batkom, хехе, да все просто, ты не делай полиморфа, а просто изменяй облик. Смотри:
Переменная не обязательна, но можно и оставить, она у меня служила для выбора условий. Сообщение отредактировал Zirrex - Jul 7 2005, 20:03 |
||
![]()
Сообщение
#1573
|
|
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
сенк, сейчас опробую
ТHX все работает, чейчас буду разбираться с опытом М.....э...а можно какой нибудь примерчик? Я никак не могу найти, в каком именно месте игроку выдается опыт.... Сообщение отредактировал Batkom - Jul 8 2005, 01:59 |
![]()
Сообщение
#1574
|
|
Level 3 ![]() Класс: Ниндзя Характер: Chaotic Evil Раса: Человек ![]() |
Batkom На смерть моба форумулу зделай, и все будет путем.
Хотел ещо узнать вот что: 1) На лаги модуля или локации влияет большое количество юзибл объктов? 2) Как получить данные о игроке когда он использует придмет object oPC = ????(); Спасибо. Со вторым я уже разобрался object oPC = GetLastUsedBy(); должно работать поидеи, но я ещо не проверял... Сообщение отредактировал GoingPro) - Jul 8 2005, 14:39 |
![]()
Сообщение
#1575
|
|||||
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
Batkom, выдается он обычно при срабатывании скрипта "nw_c2_default7", но в нем ты ничего не найдешь, потому что за опыт отвечает параметр "Xp Scale" в настройках модуля. Если ты хочешь использовать свою систему распределения опыта, то это значение надо ставить в 0. Правда есть одно но, даже если его убрать в 0, то все равно будет писаться опыт, только всегда будет иметь нулевое значение. Чтобы этого не было, надо в скрипте "nw_c2_default7" прописать следующее:
Урон равен 2000, потому что есть монстры, у которых жизни больше 1000, если у тебя нет таких, то ставь максимум, который не превышается. Дальше внутри скрипта ставишь ссылку на свой скрипт, который распределяет опыт, например так:
|
||||
![]() ![]() |
Текстовая версия | Сейчас: 30th April 2025 - 10:25 |