Перейти к содержанию

Нужен совет по Npc!


Рекомендуемые сообщения

Значит вот у меня вопрос:

Как сделать так чтобы NPC появился в игре после опрелелённой записи в журнале.

Вот его не было и как только появилась запись он БАЦ и появился.

Помогите срочно нужно! :1anim_bc:

Ссылка на комментарий
Поделиться на другие сайты

На 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 нужный индекс.

Ссылка на комментарий
Поделиться на другие сайты

На 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 нужный индекс.

 

А как сделать шоб он например появился в балморе? На площаде?

Ссылка на комментарий
Поделиться на другие сайты

Его там сначала поставить нужно... =) Ну а если он должен переместиться из одного места в другое, то можно сделать две копии - одна исчезает, а другая появляется...
Ссылка на комментарий
Поделиться на другие сайты

Ну дык, ты его ставишь на площадь, записи нет - он дисейблен, появится запись - он енейблится.
Ссылка на комментарий
Поделиться на другие сайты

Спасибо вам огромное!!!

Наконецто плаг доделаю! Спасибо!

 

А-а-а-а!!! Неработает!

Сохранятся не хочет пишет то что ошибка во 2 строке и то что нет конца!

А! Помогите!! :1anim_ak:

Ссылка на комментарий
Поделиться на другие сайты

Фуф....Всё разобрался. Почемуто в рус. версии CS скрипты не сохраняются а в английской всё ОК.

 

У меня есть два вопроса

1) Можноли совместить 2 скрипта: Nolore (это который убирает стандартные топики у NPC) и который преведён выше(появление NPC после записи в журнале)?

 

2) Какой скрипт нужен шоб NPC заговорил первый. Допустим игрок подошёл к неписю на близкое расстояние и вдруг выскакивает окно диалоговое. Типа как-будто непись первый начал говорит.

Ссылка на комментарий
Поделиться на другие сайты

1) Просто добавь в скрипт ниже строки Short once объявление переменной: Short nolore

 

2) Функция ForceGreeting.

Пример:

if ( GetDistance player <= 256 )

ForceGreeting

endif

 

256 - расстояние до игрока в игровых единицах.

Ссылка на комментарий
Поделиться на другие сайты

Блин, ну вопрос задал:) Скриптами можно сделать со ВСЕМ чем угодно ВСЁ что угодно.=)
Ссылка на комментарий
Поделиться на другие сайты

Функция ForceGreeting.

Пример:

if ( GetDistance player <= 256 )

ForceGreeting

endif

 

Блин чё-то не получается!

 

Это надо прописывать в результат или функцию/переменую?

 

Объястните позжалуйста подробнее.

Ссылка на комментарий
Поделиться на другие сайты

Объясняю: Функция ForceGreeting _никогда_ не используется в поле result по самой ее сути. Только в скриптах. К посту я приложил небольшой плаг-набросок, показывающий применение. Теперь если подойти к силт-страйдерщику в Вивеке достаточно близко, он сам начнет диалог, причем это произойдет только один раз. Посмотри там скрипт LW_fg.
Ссылка на комментарий
Поделиться на другие сайты

Не глупи, Ланкер. В построенной тобой кондиции 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

Ссылка на комментарий
Поделиться на другие сайты

Тоже правильно, но я не вижу смысла ввода новой переменной. И кстати - имя скрипта нельзя писать через пробел. Так что лучше уж NPC_script.
Ссылка на комментарий
Поделиться на другие сайты

Насчет имени - если оставить с пробелом, то скрипт в списке будет просто называться NPC, слово script не будет читаться как имя. А если без пробела - то скрипт будет так и называться NPC_script.

Спасибо, я в курсе. Может быть ты хочешь сказать, что в этом есть толк? И что это в определенных условиях не порождает героические непонятки? Лучше уж придерживаться единого стандарта, ИМХО.

Ссылка на комментарий
Поделиться на другие сайты

Спасибо всем.

 

А как сделать так чтобы NPC исчез после перехода игрока в другую локацию.

Я знаю что если в результате прописать дисаблед то непись исчезенет моментально. А мне надо шоб он исчез после того как игрок покинул локацию или ечейку.

Ссылка на комментарий
Поделиться на другие сайты

Тебе это здесь же надо или как совешнно отдельная фича?

 

Ну мне надо шоб запись в журнале появилась и NPC исчез . Игрок перешол в другую ячейку(Например в дом зашёл) потом вышел а NPC исчез.

 

ЗЫ: Немогли бы вы предоставить пример скрипта где надо указать ID журнала и индекс записи. Просто я в скриптах дуб и мне по другому непонятно. :1anim_bh:

Ссылка на комментарий
Поделиться на другие сайты

Ну мне надо шоб запись в журнале появилась и 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

Ссылка на комментарий
Поделиться на другие сайты

Значит рассказываю:

Я делаю квест где будут учавствовать многие NPC. Мне нужен был скрипт на появление NPC после записи в журнале. Это мне нужно было чтобы игрок взаранее не "убил" нужного NPC.

 

Это мне раньше надо было.

 

А сейчас мне надо чтобы NPC исчез после записи в журнале не моментально, а только после того как игрок перейдёт в другую ячейку.(Например в доми зашёл или в город переехал другой).

 

Дайте позжалуйста скрипт.

Ссылка на комментарий
Поделиться на другие сайты

Хех, в первом случае можно было ограничиться галочкой essential, I guess... Чтобы после убийства заставляли грузить сейв.

 

А сейчас мне надо чтобы NPC исчез после записи в журнале не моментально, а только после того как игрок перейдёт в другую ячейку.(Например в доми зашёл или в город переехал другой).

 

Дайте позжалуйста скрипт.

В таком случае Ланкер его уже выложил выше. Я в нем багов не вижу,

разве что можно добавить в начало:

 

if ( doOnce == 1 )

SetDelete 1

Set doOnce to 2

endif

 

Хотя это не так уж важно...

 

ЗЫ Если я туплю, прямо говорите мне об этом. Недосыпаю в последнее время...

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...