Помощь - Поиск - Пользователи - Календарь
Полная версия: Скрипты
Город Мастеров > РЕДАКТОРЫ > Neverwinter Nights Aurora Toolset
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74
Lemegeton
Q'elt'rine OnSpawn срабатывает, когда существо впервые появляется, что позволяет указать основную модель поведения существа (например, будет ли существо избегать боя, пройти ряд точек, и т.д.)

Взято из Lexicon
Almas
Есть несколько порталов, нужно чтобы при заходе в один перс рендомно появлялся в другом, можно да же чтобы та куда зашел.
Спасибо.
DBColl
QUOTE
Есть несколько порталов, нужно чтобы при заходе в один перс рендомно появлялся в другом, можно да же чтобы та куда зашел.
Спасибо.

В OnUsed портала...
// Условие: все порталы в ОДНОЙ СИСТЕМЕ должны быть с одинаковым тэгом "RANDOMPORTAL"
Neverwinter Script Source
void main()
{
    object oPC = GetLastUsedBy();
    if (!GetIsPC(oPC))
        return;
    int nPortal = Random(6); // количество порталов
    object oPort = GetObjectByTag("RANDOMPORTAL", nPortal);

    AssignCommand(oPC, JumpToObject(oPort));
}


Удачи! wink.gif
Aiwan
QUOTE (DBColl @ Nov 25 2004, 23:50)
// количество порталов

ДБ, я могу ошибиться но...
Neverwinter Script Source
// Get an integer between 0 and nMaxInteger-1.

Не должны ли быть порталы +1 к максимуму? То бишь на 6 порталов рандом из 7?
DBColl
GetObjectByTag индексируется от нуля.
Рандом выдает цифры от НУЛЯ(!) и выше wink.gif (то есть будут индексы от 0 до 5, что равно интервалу 6). Так что я все нормально написал.
Aiwan
Ну так порталов значит 5?
DBColl
6!!! Считай!

0 1 2 3 4 5

Сколько порталов? pilot.gif
Aiwan
biggrin.gif
QUOTE (DBColl @ Nov 26 2004, 08:18)
6!!! Считай!

Откуда? Смотри: НОЛЬ, ОДИН, РАЗ, ДВА, ТРИ... rofl.gif
Убедил biggrin.gif
mamuc
QUOTE
0 1 2 3 4 5

Сколько порталов? 


пять и бублик biggrin.gif
DBColl
Гы, харэ стебаться! Развели тут, понимаешь ли!.. Тема про скрипты! А вы тут математикой какой-то занялись!.. lol.gif lol.gif crazy.gif
Lex
не какой-то, а банальной арифметикой.
Математика это не циферки, это множества, классы и прочая фигня
Twin
Lex, хмы!
QUOTE
МАТЕМАТИКА, математики, мн. нет, ж. (греч. mathematike). Цикл наук, изучающих величины и пространственные формы (арифметика, алгебра, геометрия, тригонометрия и т. д.).

QUOTE
АРИФМЕТИКА, арифметики, мн. нет, ж. (греч. arithmetike). Учение о числах, выражаемых цифрами, и действиях над ними.

P.S. ДАЕШЬ ФЛЕЙМ!!! mad.gif lol.gif
gor
QUOTE
Изза зверя чтоли?

Нет, зверь ни причем. Вставь где-нибуд SetMaxHenchmen(3);
Вишес
gor
поставлено давно, может просто баг такой?
И вообще а вот если три хенчмена и герой вызовут по зверю и еще плюс фамильяр?
Аваддон
Вопрос у меня к вам, уважаемые. Каким образом можно получить данные игрока (имя, логин) при выходе его из модуля? Если скрипт ставится на OnClientLeave - он возвращает пустые строки.
Просьба вариант на OnExit локации не предлагать. (локаций много, и каждую гоношить лишний раз)
Vanes
Аваддон
я при входе на чара локальные переменные вешаю (аккаунт и локацию), второе приходится постоянно обновлять, правда... не думаю. что это особую нагрузку на сервак сделает, особенно если все переменные удалять, на том же OnClientLeave
Аваддон
Нет, ты меня немножко не понял.
Если с сервера вышел "Vasya Dragonslayer", то мне надо записать в Базу Данных, что имя вышедшего игрока - "Vasya Dragonslayer". А когда ставлю скрипт записи на OnClientLeave он вместо имени возвращает - " ".
Мне не локации нужны, а данные.
Это очень важно. Я дописываю скрипт статуса сервера под MySQL.
З.Ы. Кстати на классы уже написалwink.gif
Baltasar
Когда наводишь на используемый плэйсибл курсор, то объект подсвечивается. Можно ли как-то сделать чтобы он постоянно подсвечивался?
Аваддон
Агааа... Нашел lol.gif
QUOTE
_kaa_
В событие OnClientLeave не работают некоторые функции для работы с объектом игрока
GetPlayername, GetPCIPAddress и некоторые другие. Но локальные переменные читать можно, так что если вам нужны эти данные - занесите их в переменные при входе игрока на шард
gor
Q'elt'rine
X2_NUMBER_HENCHMEN = 3; ?

QUOTE
И вообще а вот если три хенчмена и герой вызовут по зверю и еще плюс фамильяр?


Будет четыре зверя и фамилиар. Если вся эта толпа выйдет за пределы экрана, появится полоса прокрутки.

Nazgul [Stalkers]
2 Аваддон
А чем то, что ты нашёл отличается от того, что тебе написал Ванес ? Помоему одно и тоже.
Ketcalkoatl
Был бы благодарен за простой скрипт.

Персонажи стоят лицом друг к другу и проигрывают IMMOBILE_ANIMATION (вроде как общаются), над головой всплывают рандомные строчки из 10. Все это очаровательно до тех пор пока игрок не поговорит с NPC. Тот разворачивается лицом к игроку и после беседы остаётся в таком положении. Как сделать так, чтобы (желательно одним универсальным скриптом) заставить NPC восстановить первоначальное направление, то есть чтобы они отвернулись от игрока и продолжили беседовать.

Змей.
Аваддон
Вроде бы есть такая штука SetFacing и SetFacingPoint
Aiwan
Воткни на спавн СетЛокацион, и после диалога на хербите проверяй положение НПС. Т.е. НПС будет как бы пришпилен к тому положению как он появился на локации. Если НПС не воююет, не говорит, и отошел то посылай его на место и поворачивай в нужную сторону. Тулса нет под руками... звиняй.
Lemegeton
Ketcalkoatl:
Примерно так:

object oSpeakWith = GetNearestObjectByTag("aSpeaker");
float fSpeakWith = GetFacing(oSpeakWith);
SetFacing(fSpeakWith);

Только "причеши". Здесь я нахожу объект с которым говорит непись по конкретному тэгу. Я бы сделал этот тэг в локальной переменной самого непися и получился бы универсальный скрипт. Т.е.:

string tSpeakWith = GetLocalString(OBJECT_SELF, "SpeakWith");
object oSpeakWith = GetNearestObjectByTag(tSpeakWith);
float fSpeakWith = GetFacing(oSpeakWith);
SetFacing(fSpeakWith);

И остается на завершение диалога и еще в пару мест по собсвенному усмотрению поставить (можно и на хартбит, но тормозить будет, и нужна проверка на то, что непись делает), да локальную переменную типа "string" с именем "SpeakWith" и значением тэга собеседника припаять к этому неписю.
Аваддон
Все таки решился написать скрипт на очки голода. Вот у меня вопрос возник к вам. Очки голода это у нас будет LocalInt. Как ежеминутно начислять ее на игрока? Только не предлагайте вводить каунтер на OnHeartBeat.
Lemegeton
Насколько я помню, при выходе игрока стираются все локальные переменные на нем. Но могу и ошибаться.
Аваддон
Вроде бы они стираются только при рестарте. Но это не проблема, я информацию буду в базу данных заносить. Меня интересует сам факт слежки
Lemegeton
Перековырял весь тулсет и Лексикон. Не нашел ничего, что более-менее регулярно запускалось бы, кроме "default" (OnHeartbeat для PC). dntknw.gif
DBColl
А чем ХБ плеера не подходит? unsure.gif
Добавлено в [mergetime]1102607590[/mergetime]
И кстати, переменные сохраняются в файле чара игрока. Так что не гипсуйте, народ! wink.gif
Lemegeton
А может вообще не надо голода - то? IMHO - геморно шибко и для пользователя, и для шардодела... Приближать к реальности нужно разнообразием, а не геморройностью biggrin.gif
Аваддон
DBColl pilot.gif да ну? А я когда тестил тока на предметах сохранялисьsad.gif

Да я вот почитал всякие форумы в том числе и буржуйские там если HB-скрипт то обязательно все сразу кричат "Лаги, лаги, кошмарные лаги!"...
В мультике ХБ игрока использовать будет считаться нормальным тоном? С каунтером или без?
Добавлено в [mergetime]1102607852[/mergetime]
QUOTE (Lemegeton @ Dec 9 2004, 18:54)
А может вообще не надо голода - то? IMHO - геморно шибко и для пользователя, и для шардодела... Приближать к реальности нужно разнообразием, а не геморройностью 

Надо, Lemegeton, надо... Мало того еще и отхожее место сделаем, вдруг кто испорченого супа наестся, а ежели до места добежать не успеет, так еще слоу накастуем, харизму в ноль и зловонное облако... lol.gif biggrin.gif
Lemegeton
Так-так-так.... Вы это дело в СИМОВ не превращайте, пожалуйста!!!!! nono.gif
Еще на работу ходить, повышение получать... Кушать готовить, как в Нордоке, да?! Маловероятно, что кто-то там более одного дня играть будет...

QUOTE
...отхожее место сделаем...


Ага. ОДНО на весь Шард!!! И гвардов поставить, чтобы тех, кто обосрался на улице мочили нещадно!!! lol.gif lol.gif lol.gif
И штраф за мелкое хулиганство в размере 500 gp - вот уж реальнее некуда!!! lol.gif lol.gif lol.gif
maxxim
2 Аваддон
сорри модет тупой вопрос, но я чето вообше не понял как работает система гильдий. перевел тут ртфку, там ниче конкретно не сказанно. то есть я к своему шарду прикрутил но не понимаю зачем маркеры сундуки и как что сделать что бы допустим у гильдии были свои земли и шла война за них. в конфиге все настроил под себя но почемуто один маркер захватывает все земли на котрыех стоят флаги. нужно ли менять теги или одинаковые раскидывать по всему шаржду, и что будет если на одну локу кину насколько бонусов голда ??тоесть реально ли сделать одну локу более прибыльной чем вторая.
DBColl
QUOTE (Аваддон @ Dec 9 2004, 17:55)
Да я вот почитал всякие форумы в том числе и буржуйские там если HB-скрипт то обязательно все сразу кричат "Лаги, лаги, кошмарные лаги!"... В мультике ХБ игрока использовать будет считаться нормальным тоном? С каунтером или без?

Если не писать все это дело в БД, то лагать вообще не должно. На самом деле лагает от ОБИЛИЯ скриптов и действий на ХБ. Если это будет пару строк из односложных if, то все фигня wink.gif. Не думаю, что залагает...
Аваддон
maxxim Прекрасно тебя понимаю. Я ее переводил, но ни капли скрипта в ней не менял. Как до нее руки дойдут я все объясню. Ждите ответа drag.gif
baskan
Вопрос: Как сделать, чтобы на ночь ворота города закрывались для игрока?
DBColl
QUOTE (baskan @ Dec 10 2004, 14:18)
Вопрос: Как сделать, чтобы на ночь ворота города закрывались для игрока?

На ХБ двери вешаешь скрипт:
Neverwinter Script Source
void main()
{
    if (GetIsNight())
    {
        if (GetLocked(OBJECT_SELF, FALSE))
        {
            ActionCloseDoor(OBJECT_SELF);
            ActionDoCommand(SetLocked(OBJECT_SELF, TRUE));
        }
    }
    else
    {
        SetLocked(OBJECT_SELF, FALSE);
    }
}
baskan
Опять же вопрос: Как сделать что бы ночью дверь была заперта(но не на совсем, а что бы можно было открыть ее воровским умением) и как организовать что бы днем заходя в дверь игрок попадал например в магазин, а ночью в другую локацию?
DBColl
Чтобы в разное время суток попадал в разные локи, надо ставить скрипт в OnTransitionClick:
Neverwinter Script Source
void main()
{
    object oPC = GetClickingObject(); // вроде так, но наверное ошибаюсь, перепроверь
    if (GetIsNight())
    {
        AssignCommand(oPC, JumpToObject(GetObjectByTag("тэг_вейпа_ночного")));
    }
    else
    {
        string sTag = GetTag(GetTransitionTarget(OBJECT_SELF));
        AssignCommand(oPC, JumpToObject(GetObjectByTag(sTag)));
        // используется такая конструкция, потому как прямой Jump к объекту(!) GetTransitionTarget отрабатывает некорректно. Баг типа wink.gif.
    }
}


Добавлено в [mergetime]1102693490[/mergetime]
Как сделать, чтобы вор смог отомкнуть дверь напишу позже, потому как нету тулсета под рукой и я не помню события на котором отлавливать interact вора с дверью...
Аваддон
QUOTE (baskan @ Dec 10 2004, 15:18)
Вопрос: Как сделать, чтобы на ночь ворота города закрывались для игрока?

Хех, я кстати тут недавно такую почти фишку делал. Приходишь ночью в город.. Городские ворота закрыты.. Если ты находишься за воротами внутри города тебе стражник говорит "Скажите мне сир если захотите покинуть город этой ночью." Подходишь к нему и просишь его открыть он без проблемно выпускает предупреждая что мол - страшно ночью за городом шлятся. Другой вариант если ты заворотами перед входом в город - кликаешь на дверь есть выбор: Постучаться... Стучишься, выходит из коморки заспаный стражник, поднимает ладонь к козырьку и вглядывается в темноту за ворота.. Говорит одну из фраз типа "Кто там" или "Кого еще черт принес" (у меня фраз 20). И ты можешь либо промолчать, обойти город и влезть через заброшеный колодец в коллекторы а оттуда попасть в город(но в колекторах мобы). Либо же кинуть чек на Persuade и уговорить стражника открыть ворота. Если чек прокатывает, он салютирует стражнику на вышке - "Эй там.. Открыть ворота!", тот отмахивает ему "Есть сэр", и тянет рычаг. Издается ужасный скрежет (средневековье блин), и ворота открываются. Через 15 сек они закрываются обратно. Причем утром "закрытость" с ворот снимается, скрипт стоит не на HB а на OnEnter тригера возле ворот. Ночью он же их закрывает на замок. Такие вот пироги this.gif
Добавлено в [mergetime]1102697034[/mergetime]
Начал писать систему хаусинга.
Всего 3 типа ключей и 3 типа домов. Маленький, Средний, и Большой. В маленьком доме можно ставить мебель. В среднем плюс один персистент сундук. В большом - 2 сундука. У каждого дома свой уникальный ID - выставляется вейпоинтом в локации дома. Игрок покупает ключ от дома и идет искать себе место жительства.
При открытии двери идет проверка на соответствие ключа размеру дома. Типа ключом от малого дома большой дом не открыть. После этого идет проверка на запись в базе данных. Если дом уже кто то занял игроку пишется что дом заперт владельцем. А если ключ уже поюзаный на другом доме - пишет что ключ не подходит. И если дом свободен и ключ подходит - игрок становится владельцем этого дома, и ключ привязывается не к игроку, а к дому (именно к тому уникальному ID). Этим ключом можно отпирать дверь только своего дома, и персистент сундуки в этом доме. Ключ нельзя хранить в камере хранения (ведь она работает на создании предметов из палитры, а нам требуется сохранить привязку ключа к дому).
У кого есть ключ - у того есть все. Он может открыть дом, и распоряжаться сундуками. Тоесть если у него ключ украли могут и дом ограбить, и имущество в сундуках. Можно покупать мебель и расставлять ее. Причем она будет оставаться на своих местах даже после рестарта. Можно покупать сторожевых собак, големов. Устанавливать растяжки (ловушки) которые тоже после рестарта не пропадут. Все это защита от воров.
Дело в том что воры могут пробраться не только способом кражи ключа, а взломом двери. Естесствено пришла идея продавать разные типы замков для дома. Есть функция GetUnlockDC, но где же функция SET? Как мне выставить определенный DC на взлом, если предмет (замок) установлен внутри дома? Специальные дверные отмычки я вводить не хочу. Скрипта по использованию скила Открыть Замок не нашел. Может подскажите? я бы там добавил пару проверок...
DBColl
QUOTE (Аваддон @ Dec 10 2004, 18:32)
Скрипта по использованию скила Открыть Замок не нашел. Может подскажите? я бы там добавил пару проверок...

Я его не помню, но писал для хенчши у нас в Проклятии... wink.gif Завтра наверное выложим модули, скачаешь, посмотришь wink.gif.
Аваддон
DBColl, это все замечательно но мне интересно какой скрипт запускается при использовании ИГРОКОМ этого таланта
DBColl
OnUsed двери. wink.gif
Lex
не, ДБ, он говрит про скрипт скила. В каком скрипте считается DC и бросок OpenLock и проверяется, откроется ли дверь
DBColl
QUOTE (Lex @ Dec 10 2004, 20:21)
не, ДБ, он говрит про скрипт скила. В каком скрипте считается DC и бросок OpenLock и проверяется, откроется ли дверь

Если скрипт не стоит явно в слоте (а он не стоит в нем wink.gif), то это скорее всего в движке. А вообще это дело надо ковырять опираясь на поиск любой из выполняемых функций радиального меню. wink.gif То есть хотим скастовать? Через радиальное меню лезем в спелл и кликаем его, какой скрипт запускается? wink.gif Делаем выводы...
baskan
Хм Аваддон всмысле модуль с такой фишкой делал? А не скажеш как так делал? если не сложно)
Аваддон
baskan Ну енто целая система.. В двух постах даже не описать. Скажу в общих чертах.
1. Стоит 2 стражника один у рычага другой у ворот.
2. Тригер окружает ворота. При входе в него игрока он проверяет день или ночь, если день - отпирает ворота, если ночь - запирает их.
3.Перед воротами со снаружи стоит тригер - если игров входит на него на него вешается локальная переменная "За городом", если выходит - "В городе."
4. На двери в слоте OnFailOpen(если игрок пытается ее открыть а она закрыта на замок) висит проверка. Если день - то отпирает дверь, если ночь, то проверка переменной игрока в городе он или за городом, если в городе
QUOTE
стражник говорит "Скажите мне сир если захотите покинуть город этой ночью."
, если стражнику задается сток действий, пройти к вейпоинту, проиграть анимацию, и брякнуть фразу. Потом начать диалог с игроком.
5. В диалоге стоит проверка на убеждение - легко делается мастером скриптов. Если игрок бросает чек стражнику задается сток действий, пройти к вейпоинту, отсалютировать своему компаньену, сказать чтоб открыл ворота, и идти к следующему вейпоинту, потом компаньону задается сток действий ответить стражднику, проиграть анимацию "что то делает рукой на уровне пояса", и задать действие двери - открыться.
6. На открытие и закрытие двери стоит действия с рычагом - активировать, деактивировать.
-------------------

Вопрос , если я препеарирую 2да и вырежу оттуда крафтовые скилы, это никак серьезно не повлияет?
DBColl
QUOTE (Аваддон @ Dec 10 2004, 21:46)
Вопрос , если я препеарирую 2да и вырежу оттуда крафтовые скилы, это никак серьезно не повлияет?

А вот этого я если честно и не знаю... Не резал 2да-хи... dntknw.gif
NiMH
QUOTE (юБЮДДНМ @ Dec 10 2004, 22:46)

бНОПНЯ , ЕЯКХ Ъ ОПЕОЕЮПХПСЧ 2ДЮ Х БШПЕФС НРРСДЮ ЙПЮТРНБШЕ ЯЙХКШ, ЩРН МХЙЮЙ ЯЕПЭЕГМН МЕ ОНБКХЪЕР?

ГЮЛЕМХ ХУ ОСЯРШЬЙЮЛХ
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2024 Invision Power Services, Inc.