Lemegeton
Nov 22 2004, 17:15
Q'elt'rine OnSpawn срабатывает, когда существо впервые появляется, что позволяет указать основную модель поведения существа (например, будет ли существо избегать боя, пройти ряд точек, и т.д.)
Взято из Lexicon
Есть несколько порталов, нужно чтобы при заходе в один перс рендомно появлялся в другом, можно да же чтобы та куда зашел.
Спасибо.
DBColl
Nov 25 2004, 20:50
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)); } |
Удачи!
QUOTE (DBColl @ Nov 25 2004, 23:50) |
// количество порталов |
ДБ, я могу ошибиться но...
Neverwinter Script Source |
// Get an integer between 0 and nMaxInteger-1. |
Не должны ли быть порталы +1 к максимуму? То бишь на 6 порталов рандом из 7?
DBColl
Nov 26 2004, 00:32
GetObjectByTag индексируется от нуля.
Рандом выдает цифры от НУЛЯ(!) и выше

(то есть будут индексы от 0 до 5, что равно интервалу 6). Так что я все нормально написал.
Ну так порталов значит 5?
DBColl
Nov 26 2004, 05:18
6!!! Считай!
0 1 2 3 4 5
Сколько порталов?
QUOTE (DBColl @ Nov 26 2004, 08:18) |
6!!! Считай! |
Откуда? Смотри: НОЛЬ, ОДИН, РАЗ, ДВА, ТРИ...

Убедил
QUOTE |
0 1 2 3 4 5
Сколько порталов?
|
пять и бублик
DBColl
Nov 26 2004, 15:24
не какой-то, а банальной арифметикой.
Математика это не циферки, это множества, классы и прочая фигня
Lex, хмы!
QUOTE |
МАТЕМАТИКА, математики, мн. нет, ж. (греч. mathematike). Цикл наук, изучающих величины и пространственные формы (арифметика, алгебра, геометрия, тригонометрия и т. д.). |
QUOTE |
АРИФМЕТИКА, арифметики, мн. нет, ж. (греч. arithmetike). Учение о числах, выражаемых цифрами, и действиях над ними. |
P.S. ДАЕШЬ ФЛЕЙМ!!!
Нет, зверь ни причем. Вставь где-нибуд SetMaxHenchmen(3);
gor
поставлено давно, может просто баг такой?
И вообще а вот если три хенчмена и герой вызовут по зверю и еще плюс фамильяр?
Аваддон
Nov 28 2004, 21:09
Вопрос у меня к вам, уважаемые. Каким образом можно получить данные игрока (имя, логин) при выходе его из модуля? Если скрипт ставится на OnClientLeave - он возвращает пустые строки.
Просьба вариант на OnExit локации не предлагать. (локаций много, и каждую гоношить лишний раз)
Аваддон
я при входе на чара локальные переменные вешаю (аккаунт и локацию), второе приходится постоянно обновлять, правда... не думаю. что это особую нагрузку на сервак сделает, особенно если все переменные удалять, на том же OnClientLeave
Аваддон
Nov 29 2004, 02:14
Нет, ты меня немножко не понял.
Если с сервера вышел "Vasya Dragonslayer", то мне надо записать в Базу Данных, что имя вышедшего игрока - "Vasya Dragonslayer". А когда ставлю скрипт записи на OnClientLeave он вместо имени возвращает - " ".
Мне не локации нужны, а данные.
Это очень важно. Я дописываю скрипт статуса сервера под MySQL.
З.Ы. Кстати на классы уже написал
Baltasar
Nov 29 2004, 04:25
Когда наводишь на используемый плэйсибл курсор, то объект подсвечивается. Можно ли как-то сделать чтобы он постоянно подсвечивался?
Аваддон
Nov 29 2004, 08:26
Агааа... Нашел
QUOTE |
_kaa_ В событие OnClientLeave не работают некоторые функции для работы с объектом игрока GetPlayername, GetPCIPAddress и некоторые другие. Но локальные переменные читать можно, так что если вам нужны эти данные - занесите их в переменные при входе игрока на шард
|
Q'elt'rine
X2_NUMBER_HENCHMEN = 3; ?
QUOTE |
И вообще а вот если три хенчмена и герой вызовут по зверю и еще плюс фамильяр? |
Будет четыре зверя и фамилиар. Если вся эта толпа выйдет за пределы экрана, появится полоса прокрутки.
Nazgul [Stalkers]
Dec 2 2004, 05:37
2 Аваддон
А чем то, что ты нашёл отличается от того, что тебе написал Ванес ? Помоему одно и тоже.
Ketcalkoatl
Dec 3 2004, 10:02
Был бы благодарен за простой скрипт.
Персонажи стоят лицом друг к другу и проигрывают IMMOBILE_ANIMATION (вроде как общаются), над головой всплывают рандомные строчки из 10. Все это очаровательно до тех пор пока игрок не поговорит с NPC. Тот разворачивается лицом к игроку и после беседы остаётся в таком положении. Как сделать так, чтобы (желательно одним универсальным скриптом) заставить NPC восстановить первоначальное направление, то есть чтобы они отвернулись от игрока и продолжили беседовать.
Змей.
Аваддон
Dec 3 2004, 10:58
Вроде бы есть такая штука SetFacing и SetFacingPoint
Воткни на спавн СетЛокацион, и после диалога на хербите проверяй положение НПС. Т.е. НПС будет как бы пришпилен к тому положению как он появился на локации. Если НПС не воююет, не говорит, и отошел то посылай его на место и поворачивай в нужную сторону. Тулса нет под руками... звиняй.
Lemegeton
Dec 9 2004, 09:50
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" и значением тэга собеседника припаять к этому неписю.
Аваддон
Dec 9 2004, 11:37
Все таки решился написать скрипт на очки голода. Вот у меня вопрос возник к вам. Очки голода это у нас будет LocalInt. Как ежеминутно начислять ее на игрока? Только не предлагайте вводить каунтер на OnHeartBeat.
Lemegeton
Dec 9 2004, 12:36
Насколько я помню, при выходе игрока стираются все локальные переменные на нем. Но могу и ошибаться.
Аваддон
Dec 9 2004, 15:20
Вроде бы они стираются только при рестарте. Но это не проблема, я информацию буду в базу данных заносить. Меня интересует сам факт слежки
Lemegeton
Dec 9 2004, 18:24
Перековырял весь тулсет и Лексикон. Не нашел ничего, что более-менее регулярно запускалось бы, кроме "default" (OnHeartbeat для PC).
А чем ХБ плеера не подходит?
Добавлено в [mergetime]1102607590[/mergetime] И кстати, переменные сохраняются в файле чара игрока. Так что не гипсуйте, народ!
Lemegeton
Dec 9 2004, 18:54
А может вообще не надо голода - то? IMHO - геморно шибко и для пользователя, и для шардодела... Приближать к реальности нужно разнообразием, а не геморройностью
Аваддон
Dec 9 2004, 18:55
DBColl 
да ну? А я когда тестил тока на предметах сохранялись

Да я вот почитал всякие форумы в том числе и буржуйские там если HB-скрипт то обязательно все сразу кричат "Лаги, лаги, кошмарные лаги!"...
В мультике ХБ игрока использовать будет считаться нормальным тоном? С каунтером или без?
Добавлено в [mergetime]1102607852[/mergetime] QUOTE (Lemegeton @ Dec 9 2004, 18:54) |
А может вообще не надо голода - то? IMHO - геморно шибко и для пользователя, и для шардодела... Приближать к реальности нужно разнообразием, а не геморройностью |
Надо, Lemegeton, надо... Мало того еще и отхожее место сделаем, вдруг кто испорченого супа наестся, а ежели до места добежать не успеет, так еще слоу накастуем, харизму в ноль и зловонное облако...
Lemegeton
Dec 9 2004, 18:59
Так-так-так.... Вы это дело в СИМОВ не превращайте, пожалуйста!!!!!
Еще на работу ходить, повышение получать... Кушать готовить, как в Нордоке, да?! Маловероятно, что кто-то там более одного дня играть будет...
QUOTE |
...отхожее место сделаем... |
2 Аваддон
сорри модет тупой вопрос, но я чето вообше не понял как работает система гильдий. перевел тут ртфку, там ниче конкретно не сказанно. то есть я к своему шарду прикрутил но не понимаю зачем маркеры сундуки и как что сделать что бы допустим у гильдии были свои земли и шла война за них. в конфиге все настроил под себя но почемуто один маркер захватывает все земли на котрыех стоят флаги. нужно ли менять теги или одинаковые раскидывать по всему шаржду, и что будет если на одну локу кину насколько бонусов голда ??тоесть реально ли сделать одну локу более прибыльной чем вторая.
QUOTE (Аваддон @ Dec 9 2004, 17:55) |
Да я вот почитал всякие форумы в том числе и буржуйские там если HB-скрипт то обязательно все сразу кричат "Лаги, лаги, кошмарные лаги!"... В мультике ХБ игрока использовать будет считаться нормальным тоном? С каунтером или без? |
Если не писать все это дело в БД, то лагать вообще не должно. На самом деле лагает от ОБИЛИЯ скриптов и действий на ХБ. Если это будет пару строк из односложных if, то все фигня

. Не думаю, что залагает...
Аваддон
Dec 9 2004, 22:47
maxxim Прекрасно тебя понимаю. Я ее переводил, но ни капли скрипта в ней не менял. Как до нее руки дойдут я все объясню. Ждите ответа
baskan
Dec 10 2004, 15:18
Вопрос: Как сделать, чтобы на ночь ворота города закрывались для игрока?
DBColl
Dec 10 2004, 15:51
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
Dec 10 2004, 15:59
Опять же вопрос: Как сделать что бы ночью дверь была заперта(но не на совсем, а что бы можно было открыть ее воровским умением) и как организовать что бы днем заходя в дверь игрок попадал например в магазин, а ночью в другую локацию?
DBColl
Dec 10 2004, 18:33
Чтобы в разное время суток попадал в разные локи, надо ставить скрипт в 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 отрабатывает некорректно. Баг типа . } } |
Добавлено в [mergetime]1102693490[/mergetime]
Как сделать, чтобы вор смог отомкнуть дверь напишу позже, потому как нету тулсета под рукой и я не помню события на котором отлавливать interact вора с дверью...
Аваддон
Dec 10 2004, 19:32
QUOTE (baskan @ Dec 10 2004, 15:18) |
Вопрос: Как сделать, чтобы на ночь ворота города закрывались для игрока? |
Хех, я кстати тут недавно такую почти фишку делал. Приходишь ночью в город.. Городские ворота закрыты.. Если ты находишься за воротами внутри города тебе стражник говорит "Скажите мне сир если захотите покинуть город этой ночью." Подходишь к нему и просишь его открыть он без проблемно выпускает предупреждая что мол - страшно ночью за городом шлятся. Другой вариант если ты заворотами перед входом в город - кликаешь на дверь есть выбор: Постучаться... Стучишься, выходит из коморки заспаный стражник, поднимает ладонь к козырьку и вглядывается в темноту за ворота.. Говорит одну из фраз типа "Кто там" или "Кого еще черт принес" (у меня фраз 20). И ты можешь либо промолчать, обойти город и влезть через заброшеный колодец в коллекторы а оттуда попасть в город(но в колекторах мобы). Либо же кинуть чек на Persuade и уговорить стражника открыть ворота. Если чек прокатывает, он салютирует стражнику на вышке - "Эй там.. Открыть ворота!", тот отмахивает ему "Есть сэр", и тянет рычаг. Издается ужасный скрежет (средневековье блин), и ворота открываются. Через 15 сек они закрываются обратно. Причем утром "закрытость" с ворот снимается, скрипт стоит не на HB а на OnEnter тригера возле ворот. Ночью он же их закрывает на замок. Такие вот пироги
Добавлено в [mergetime]1102697034[/mergetime] Начал писать систему хаусинга.
Всего 3 типа ключей и 3 типа домов. Маленький, Средний, и Большой. В маленьком доме можно ставить мебель. В среднем плюс один персистент сундук. В большом - 2 сундука. У каждого дома свой уникальный ID - выставляется вейпоинтом в локации дома. Игрок покупает ключ от дома и идет искать себе место жительства.
При открытии двери идет проверка на соответствие ключа размеру дома. Типа ключом от малого дома большой дом не открыть. После этого идет проверка на запись в базе данных. Если дом уже кто то занял игроку пишется что дом заперт владельцем. А если ключ уже поюзаный на другом доме - пишет что ключ не подходит. И если дом свободен и ключ подходит - игрок становится владельцем этого дома, и ключ привязывается не к игроку, а к дому (именно к тому уникальному ID). Этим ключом можно отпирать дверь только своего дома, и персистент сундуки в этом доме. Ключ нельзя хранить в камере хранения (ведь она работает на создании предметов из палитры, а нам требуется сохранить привязку ключа к дому).
У кого есть ключ - у того есть все. Он может открыть дом, и распоряжаться сундуками. Тоесть если у него ключ украли могут и дом ограбить, и имущество в сундуках. Можно покупать мебель и расставлять ее. Причем она будет оставаться на своих местах даже после рестарта. Можно покупать сторожевых собак, големов. Устанавливать растяжки (ловушки) которые тоже после рестарта не пропадут. Все это защита от воров.
Дело в том что воры могут пробраться не только способом кражи ключа, а взломом двери. Естесствено пришла идея продавать разные типы замков для дома. Есть функция GetUnlockDC, но где же функция SET? Как мне выставить определенный DC на взлом, если предмет (замок) установлен внутри дома? Специальные дверные отмычки я вводить не хочу. Скрипта по использованию скила Открыть Замок не нашел. Может подскажите? я бы там добавил пару проверок...
DBColl
Dec 10 2004, 20:53
QUOTE (Аваддон @ Dec 10 2004, 18:32) |
Скрипта по использованию скила Открыть Замок не нашел. Может подскажите? я бы там добавил пару проверок... |
Я его не помню, но писал для хенчши у нас в Проклятии...

Завтра наверное выложим модули, скачаешь, посмотришь

.
Аваддон
Dec 10 2004, 21:08
DBColl, это все замечательно но мне интересно какой скрипт запускается при использовании ИГРОКОМ этого таланта
DBColl
Dec 10 2004, 21:20
OnUsed двери.
не, ДБ, он говрит про скрипт скила. В каком скрипте считается DC и бросок OpenLock и проверяется, откроется ли дверь
DBColl
Dec 10 2004, 21:33
QUOTE (Lex @ Dec 10 2004, 20:21) |
не, ДБ, он говрит про скрипт скила. В каком скрипте считается DC и бросок OpenLock и проверяется, откроется ли дверь |
Если скрипт не стоит явно в слоте (а он не стоит в нем

), то это скорее всего в движке. А вообще это дело надо ковырять опираясь на поиск любой из выполняемых функций радиального меню.

То есть хотим скастовать? Через радиальное меню лезем в спелл и кликаем его, какой скрипт запускается?

Делаем выводы...
baskan
Dec 10 2004, 21:52
Хм Аваддон всмысле модуль с такой фишкой делал? А не скажеш как так делал? если не сложно)
Аваддон
Dec 10 2004, 22:46
baskan Ну енто целая система.. В двух постах даже не описать. Скажу в общих чертах.
1. Стоит 2 стражника один у рычага другой у ворот.
2. Тригер окружает ворота. При входе в него игрока он проверяет день или ночь, если день - отпирает ворота, если ночь - запирает их.
3.Перед воротами со снаружи стоит тригер - если игров входит на него на него вешается локальная переменная "За городом", если выходит - "В городе."
4. На двери в слоте OnFailOpen(если игрок пытается ее открыть а она закрыта на замок) висит проверка. Если день - то отпирает дверь, если ночь, то проверка переменной игрока в городе он или за городом, если в городе
QUOTE |
стражник говорит "Скажите мне сир если захотите покинуть город этой ночью." |
, если стражнику задается сток действий, пройти к вейпоинту, проиграть анимацию, и брякнуть фразу. Потом начать диалог с игроком.
5. В диалоге стоит проверка на убеждение - легко делается мастером скриптов. Если игрок бросает чек стражнику задается сток действий, пройти к вейпоинту, отсалютировать своему компаньену, сказать чтоб открыл ворота, и идти к следующему вейпоинту, потом компаньону задается сток действий ответить стражднику, проиграть анимацию "что то делает рукой на уровне пояса", и задать действие двери - открыться.
6. На открытие и закрытие двери стоит действия с рычагом - активировать, деактивировать.
-------------------
Вопрос , если я препеарирую 2да и вырежу оттуда крафтовые скилы, это никак серьезно не повлияет?
DBColl
Dec 11 2004, 01:19
QUOTE (Аваддон @ Dec 10 2004, 21:46) |
Вопрос , если я препеарирую 2да и вырежу оттуда крафтовые скилы, это никак серьезно не повлияет? |
А вот этого я если честно и не знаю... Не резал 2да-хи...
QUOTE (юБЮДДНМ @ Dec 10 2004, 22:46) |
бНОПНЯ , ЕЯКХ Ъ ОПЕОЕЮПХПСЧ 2ДЮ Х БШПЕФС НРРСДЮ ЙПЮТРНБШЕ ЯЙХКШ, ЩРН МХЙЮЙ ЯЕПЭЕГМН МЕ ОНБКХЪЕР? |
ГЮЛЕМХ ХУ ОСЯРШЬЙЮЛХ
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.