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

Спасти рядового непися


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

Люди! Помогите с созданием квеста!

Ниче не понимаю. Как, например, отличить по виду локальный скрипт от глобального? Как заставить запись в журнале появится, когда игрок попадает в определенную ячейку? скрипт повесить? какой? На что?

А квест такой: нужно найти израненного непися и дотащить до дома.

Нужно чтобы непись, а заодно и его вещи не появились раньше, пока игрока не пошлют на это задание.

Потом нужно, чтобы непись пошел за игроком, но не слишком живо, потому что ранен. В случае опасности он не мог бы кинутся в бой по этой же причине, и не нападал бы, если игрок его ударит. А потом когда они дойдут, надо передать раненого в надежные руки. Как другой Ai узнает, что непись дошел?

Как будет выглядеть скрипт на этом неписе?

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

Локальный скрипт, как правило, имеет владельца, т.е. прикреплен к обьекту или неписю. Других способов вроде нет.

 

При выполнении пакета AI проверка на завершение: GetAiPackageDone. RTFM

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

чувствую, обьяснил плохо.....

Да нет, объяснение прекрасное! Спасибо большое!

Только у меня этот скрипт не пошел. Вот к этой строчке редактор почему-то прицепился:

if ( GetDistance Player < 512 )

И к этой:

ForceGreting

Чего-то could not purse, еще какой-то объект не нашел и где-то еще синтаксические ошибки. Что я сделала не так?

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

RTFM.

 

Неверный синтаксис. В первом случае ..., во втором - в слове гритинг должно быть две е

 

Сорри, В первом случае попробуй просто скобки потавить

if ( (GetDistance, Player) < 512 )

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

спасибо за помощь! Только что-то опять идет не так.

На неписе висит вот это

short DoOnce

 

if ( DoOnce == 0 )

Disable

set DoOnce to 1

endif

В результате диалога, когда посылают на квест -

"ID раненого непися" -> enable

Редактор все принял, в конструкторе непися видно. А в игре его - нет на месте!!!! :1anim_be:

Проверила заклинанием "нюх бродяги" Нашла офигенно крутой волшебный меч "Погибель магов" о существовании которого в Морре даже не подозревала. Но ничего живого в округе нет. :1anim_al:

Что такое?

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

Дык ушел наверное... Ты для начала попробуй поставить в пределах видимости от того места, где берешь квест...

Наиболее простой способ "обездвижить" непися - в настройках AI выставить Distance в 0...

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

Дык уже стояло Distance в 0... :1anim_am:

Он правда на краю утеса стоял, но падать-то некуда, разве только игроку на голову...

 

Кажется, эта проблема тут уже возникала...

http://www.forum.fullrest.ru/index.php?showtopic=5684&st=0

А вот этого-то кусочка у меня и нет...

if ( once == 1 )

if ( GetJournalIndex "dummy" >= 50 )

Enable

Set once to 2

endif

endif

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

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

Ты руководство по скриптам читал? Там черным по белому, что все должно срабатывать однократно, должно обрамляться условиями Do - Once...

1. Читала. :1anim_aw: Впрочем, я не злюсь, в самом деле мой ник-аббревиатура такой своеобразный. Надо аватарку повесить.

2. Проблема не только в DoOnce. Ты написал для меня строки кода с этой переменной. Но в предыдушей теме к этому всему прилагался еще кусок кода.

я предполагаю, что у меня ничего не работает без этого куска. Однако, все равно проверить это можно будет, только когда я приду домой и доберусь до редактора.

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

ааааааа все равно скрипт не идет.... :1anim_be:

редактор все принимает, но игра загружается с сообщением об ошибке. ничего не работает! Спасите-помогите!

Вот что висит на раненом:

Begin sсript

 

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

if ( GetDistance Player < 512 )

if ( GetDistance "ID дающего квест" < 512 )

Journal "ID журнала" 2

ForceGreting

endif

endif

 

End script

Опытным путем обнаружено, что проблема в верхнем кусочке - появится после записи журнала. Игра выдает ошибки - error script EXPRESSION и Left Eval

Что делать?!!!!

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

Try this:

 

Begin smtfq

Short once 

if ( menumode == 1 )
return
endif

if ( GetHealth < 1 )
Journal "dummy" 85;это запись, которая появляется при смерти NPC
endif

if ( once == 3 )
if ( GetWeaponDrawn )
 if ( GetTarget player == 1 )
  StopCombat
  AiFollow player 0 0 0; чтобы не напдал на игрока
 else
  SetFlee 100;дабы бежал от опасности
 endif
endif
endif

if ( once == 0 )
Disable
Set once to 1
endif

if ( once == 1 )
if ( GetJournalIndex "dummy" >= 50 )
 Enable
 Set once to 2
endif
endif

if ( once == 2 )
if ( GetDistance player <= 512 )
 ForceGreeting;это когда игрок встречает раненого
 Set once to 3
endif
endif

if ( once == 3 )
if ( GetDistance "ID дающего квест" <= 512 )
 ForceGreeting;это когда уже пришел
 AiWander 512 5 0 0 20 0 0 10 30 0 0 0
 Set once to 4
endif
endif

End

 

А вот Journal лучше использовать в поле result приветствия при встрече, ибо *приветствует* он сам, посредством ForceGreeting.

В том же результе ставим AiFollow player 0 0 0

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

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

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

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

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

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

Войти

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

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

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