Robinzon Опубликовано 11 февраля, 2006 Жалоба Поделиться Опубликовано 11 февраля, 2006 Значит вот у меня вопрос:Как сделать так чтобы NPC появился в игре после опрелелённой записи в журнале.Вот его не было и как только появилась запись он БАЦ и появился.Помогите срочно нужно! :1anim_bc: Ссылка на комментарий Поделиться на другие сайты Поделиться
LonWolf Опубликовано 11 февраля, 2006 Жалоба Поделиться Опубликовано 11 февраля, 2006 На NPC вешается скрипт:Begin suddenly_appear Short once if ( once == 0 ) Disable Set once to 1 endif if ( once == 1 ) if ( GetJournalIndex "dummy" >= 50 ) Enable Set once to 2 endif endif End где вместо dummy ставится ID журнальной записи, а вместо 50 нужный индекс. Ссылка на комментарий Поделиться на другие сайты Поделиться
Robinzon Опубликовано 11 февраля, 2006 Автор Жалоба Поделиться Опубликовано 11 февраля, 2006 На NPC вешается скрипт:Begin suddenly_appear Short once if ( once == 0 ) Disable Set once to 1 endif if ( once == 1 ) if ( GetJournalIndex "dummy" >= 50 ) Enable Set once to 2 endif endif End где вместо dummy ставится ID журнальной записи, а вместо 50 нужный индекс. А как сделать шоб он например появился в балморе? На площаде? Ссылка на комментарий Поделиться на другие сайты Поделиться
Фальк Опубликовано 11 февраля, 2006 Жалоба Поделиться Опубликовано 11 февраля, 2006 Его там сначала поставить нужно... =) Ну а если он должен переместиться из одного места в другое, то можно сделать две копии - одна исчезает, а другая появляется... Ссылка на комментарий Поделиться на другие сайты Поделиться
Скампецкий Опубликовано 11 февраля, 2006 Жалоба Поделиться Опубликовано 11 февраля, 2006 Ну дык, ты его ставишь на площадь, записи нет - он дисейблен, появится запись - он енейблится. Ссылка на комментарий Поделиться на другие сайты Поделиться
Robinzon Опубликовано 11 февраля, 2006 Автор Жалоба Поделиться Опубликовано 11 февраля, 2006 Спасибо вам огромное!!!Наконецто плаг доделаю! Спасибо! А-а-а-а!!! Неработает!Сохранятся не хочет пишет то что ошибка во 2 строке и то что нет конца!А! Помогите!! :1anim_ak: Ссылка на комментарий Поделиться на другие сайты Поделиться
LonWolf Опубликовано 11 февраля, 2006 Жалоба Поделиться Опубликовано 11 февраля, 2006 Что? Приведи текст ошибки. Ссылка на комментарий Поделиться на другие сайты Поделиться
Robinzon Опубликовано 11 февраля, 2006 Автор Жалоба Поделиться Опубликовано 11 февраля, 2006 Фуф....Всё разобрался. Почемуто в рус. версии CS скрипты не сохраняются а в английской всё ОК. У меня есть два вопроса1) Можноли совместить 2 скрипта: Nolore (это который убирает стандартные топики у NPC) и который преведён выше(появление NPC после записи в журнале)? 2) Какой скрипт нужен шоб NPC заговорил первый. Допустим игрок подошёл к неписю на близкое расстояние и вдруг выскакивает окно диалоговое. Типа как-будто непись первый начал говорит. Ссылка на комментарий Поделиться на другие сайты Поделиться
LonWolf Опубликовано 11 февраля, 2006 Жалоба Поделиться Опубликовано 11 февраля, 2006 1) Просто добавь в скрипт ниже строки Short once объявление переменной: Short nolore 2) Функция ForceGreeting.Пример:if ( GetDistance player <= 256 ) ForceGreetingendif 256 - расстояние до игрока в игровых единицах. Ссылка на комментарий Поделиться на другие сайты Поделиться
Robinzon Опубликовано 11 февраля, 2006 Автор Жалоба Поделиться Опубликовано 11 февраля, 2006 Спасибо вам огромное. Вы мне очееь помогли. Спасибо! А какие есть ещё интересные скрипты для NPC? Ссылка на комментарий Поделиться на другие сайты Поделиться
Скампецкий Опубликовано 11 февраля, 2006 Жалоба Поделиться Опубликовано 11 февраля, 2006 Блин, ну вопрос задал:) Скриптами можно сделать со ВСЕМ чем угодно ВСЁ что угодно.=) Ссылка на комментарий Поделиться на другие сайты Поделиться
Robinzon Опубликовано 12 февраля, 2006 Автор Жалоба Поделиться Опубликовано 12 февраля, 2006 Функция ForceGreeting.Пример:if ( GetDistance player <= 256 )ForceGreetingendif Блин чё-то не получается! Это надо прописывать в результат или функцию/переменую? Объястните позжалуйста подробнее. Ссылка на комментарий Поделиться на другие сайты Поделиться
LonWolf Опубликовано 12 февраля, 2006 Жалоба Поделиться Опубликовано 12 февраля, 2006 Объясняю: Функция ForceGreeting _никогда_ не используется в поле result по самой ее сути. Только в скриптах. К посту я приложил небольшой плаг-набросок, показывающий применение. Теперь если подойти к силт-страйдерщику в Вивеке достаточно близко, он сам начнет диалог, причем это произойдет только один раз. Посмотри там скрипт LW_fg. Ссылка на комментарий Поделиться на другие сайты Поделиться
LonWolf Опубликовано 12 февраля, 2006 Жалоба Поделиться Опубликовано 12 февраля, 2006 Не глупи, Ланкер. В построенной тобой кондиции NPC имеет возможность передать привет игроку прямо из дизейбла. Поверь мне, я не первый раз в дебаге. Если брать твой скрипт, правильно будет так: Begin NPC_script Short DoOnce Short Nolore if ( DoOnce == 0 ) Disable set DoOnce to 1 endif if ( DoOnce == 1 ) if ( GetJournalIndex "ID_журнала" >= 0 ) ;"ID журнала" - идешник журнала, который нужен. "0" - там должен стоять номер требуемой записи Enable set DoOnce to 2 endif endif if ( DoOnce == 2 ) if ( GetDistance Player <= 512 ) ForceGreeting set DoOnce to 3 endif endif End NPC_script Ссылка на комментарий Поделиться на другие сайты Поделиться
LonWolf Опубликовано 12 февраля, 2006 Жалоба Поделиться Опубликовано 12 февраля, 2006 Тоже правильно, но я не вижу смысла ввода новой переменной. И кстати - имя скрипта нельзя писать через пробел. Так что лучше уж NPC_script. Ссылка на комментарий Поделиться на другие сайты Поделиться
LonWolf Опубликовано 12 февраля, 2006 Жалоба Поделиться Опубликовано 12 февраля, 2006 Насчет имени - если оставить с пробелом, то скрипт в списке будет просто называться NPC, слово script не будет читаться как имя. А если без пробела - то скрипт будет так и называться NPC_script.Спасибо, я в курсе. Может быть ты хочешь сказать, что в этом есть толк? И что это в определенных условиях не порождает героические непонятки? Лучше уж придерживаться единого стандарта, ИМХО. Ссылка на комментарий Поделиться на другие сайты Поделиться
Robinzon Опубликовано 12 февраля, 2006 Автор Жалоба Поделиться Опубликовано 12 февраля, 2006 Спасибо всем. А как сделать так чтобы NPC исчез после перехода игрока в другую локацию.Я знаю что если в результате прописать дисаблед то непись исчезенет моментально. А мне надо шоб он исчез после того как игрок покинул локацию или ечейку. Ссылка на комментарий Поделиться на другие сайты Поделиться
LonWolf Опубликовано 12 февраля, 2006 Жалоба Поделиться Опубликовано 12 февраля, 2006 Тебе это здесь же надо или как совешнно отдельная фича? Вот скрипт: Begin getout if ( CellChanged == 1 ) Disable endif End Ссылка на комментарий Поделиться на другие сайты Поделиться
Robinzon Опубликовано 12 февраля, 2006 Автор Жалоба Поделиться Опубликовано 12 февраля, 2006 Тебе это здесь же надо или как совешнно отдельная фича? Ну мне надо шоб запись в журнале появилась и NPC исчез . Игрок перешол в другую ячейку(Например в дом зашёл) потом вышел а NPC исчез. ЗЫ: Немогли бы вы предоставить пример скрипта где надо указать ID журнала и индекс записи. Просто я в скриптах дуб и мне по другому непонятно. :1anim_bh: Ссылка на комментарий Поделиться на другие сайты Поделиться
LonWolf Опубликовано 12 февраля, 2006 Жалоба Поделиться Опубликовано 12 февраля, 2006 Ну мне надо шоб запись в журнале появилась и NPC исчез .Эээ, ты имел в виду "появился"? Ты раньше так говорил. Очепятка? А ForceGreeting сюда вписывается? Расскажи мне словами, что полностью в скрипте нужно, и я напишу конечную версию. ЗЫ: Немогли бы вы предоставить пример скрипта где надо указать ID журнала и индекс записи. Просто я в скриптах дуб и мне по другому непонятно.Ну вот кое-что из официального: Begin ajiraScript short doOnce short gemInDesk short NoLore if ( CellChanged == 0 ) Return endif if ( doOnce == 0 ) if ( GetJournalIndex "MG_Flowers" >= 100 ) Set doOnce to 1 Return endif endif if ( doOnce == 1 ) if ( GetJournalIndex "MG_StolenReport" >= 100 ) RaiseRank Set doOnce to 2 endif endif End Ссылка на комментарий Поделиться на другие сайты Поделиться
LonWolf Опубликовано 12 февраля, 2006 Жалоба Поделиться Опубликовано 12 февраля, 2006 Oh yeah, I'm stupid. I can admit it. Ссылка на комментарий Поделиться на другие сайты Поделиться
LonWolf Опубликовано 13 февраля, 2006 Жалоба Поделиться Опубликовано 13 февраля, 2006 Обиделся? С чего бы? Давай подождем Робинзона, я правда плохо понимаю, что ему нужно. Речь идет о разных NPC? Ссылка на комментарий Поделиться на другие сайты Поделиться
Robinzon Опубликовано 13 февраля, 2006 Автор Жалоба Поделиться Опубликовано 13 февраля, 2006 Значит рассказываю:Я делаю квест где будут учавствовать многие NPC. Мне нужен был скрипт на появление NPC после записи в журнале. Это мне нужно было чтобы игрок взаранее не "убил" нужного NPC. Это мне раньше надо было. А сейчас мне надо чтобы NPC исчез после записи в журнале не моментально, а только после того как игрок перейдёт в другую ячейку.(Например в доми зашёл или в город переехал другой). Дайте позжалуйста скрипт. Ссылка на комментарий Поделиться на другие сайты Поделиться
LonWolf Опубликовано 13 февраля, 2006 Жалоба Поделиться Опубликовано 13 февраля, 2006 Хех, в первом случае можно было ограничиться галочкой essential, I guess... Чтобы после убийства заставляли грузить сейв. А сейчас мне надо чтобы NPC исчез после записи в журнале не моментально, а только после того как игрок перейдёт в другую ячейку.(Например в доми зашёл или в город переехал другой). Дайте позжалуйста скрипт.В таком случае Ланкер его уже выложил выше. Я в нем багов не вижу, разве что можно добавить в начало: if ( doOnce == 1 ) SetDelete 1 Set doOnce to 2endif Хотя это не так уж важно... ЗЫ Если я туплю, прямо говорите мне об этом. Недосыпаю в последнее время... Ссылка на комментарий Поделиться на другие сайты Поделиться
Robinzon Опубликовано 13 февраля, 2006 Автор Жалоба Поделиться Опубликовано 13 февраля, 2006 Спасибо большое. А как сделать так чтобы город отображался квадратиком на мировой карте, как все города в море. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти