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

Работа со скриптами в Arcanum


Blake

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

Опубликовано

Совсем забыл про еще один вопрос, который не был понят =)

 

0) Есть скрипт №A (диалоговый).

1) В процессе разговора, происходит переход на некоторую строку этого скрипта.

2) Эта строка вызывает другой (вспомогательный) скрипт (call script №B).

3) Срабатывает скрипт №B.

4) Управление возвращается в скрипт №A.

 

Так вот, в то время, когда работает скрипт №B, может ли он управлять диалогом, ведь фактически он не является диалоговым скриптом?

Искренне ваш, Алкор.

  • Ответов 96
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Опубликовано

Поправка:

2) Эта строка вызывает другой (вспомогательный) скрипт (call script №B).

3) Срабатывает скрипт №B.

4) Управление возвращается Скрипт №A продолжает работать как ни в чем не бывало.

 

Многозадачность :)

Оба скрипта идут параллельно.

 

Следовательно, скрипт №B может:

а) Делать вообще все что угодно.

б) В частности, вызвать новый диалог с другим объектом.

 

 

//Таки к чему сей изврат предполагался? Пример интересен :)

Собираем корабль для путешествия в Арканум (VormanTown-онлайн). Билеты здесь

post-72-1213126565.gifpost-72-1213126671.gif

Опубликовано

4) Управление возвращается Скрипт №A продолжает работать как ни в чем не бывало.

 

Может быть я тебя не правильно понял, но скрипт А после строки вызова сможет использовать данные, полученные в процессе работы скрипта В. А значит, что А и В работают неодновременно.

Искренне ваш, Алкор.

Опубликовано
но скрипт А после строки вызова сможет использовать данные, полученные в процессе работы скрипта В.
Есть тому пример?

 

Вопрос оказывается несколько шире и ушел в джаббер:

Radzh (24.08.2010 19:10) 
А ты уверен, что скрипты выполняются одновременно? 
По-моему, там чистый стек. 

 

 

Так что надо проводить испытания на кошках.. :)

При возможности, выясни пожалуйста эксперементально. Буду оч. благоддарен :beer:

Собираем корабль для путешествия в Арканум (VormanTown-онлайн). Билеты здесь

post-72-1213126565.gifpost-72-1213126671.gif

Опубликовано

Проверял.

 

0) Работает скрипт А

1) Строка N скрипта А вызывает скрипт В

2) Во время работы скрипта B, значению PCVar1 присваивается некоторое число.

3) Строка N+1 скрипта A, в зависимости от этого числа выполняет некоторое действие.

 

З.Ы. Скоро вы увидите мое адское творение и все мои вопросы станут понятны

Искренне ваш, Алкор.

Опубликовано

Тааак, а если в пункте (2) "значению PCVar1 присваивается некоторое число." добавить задержку секунд на десять? :)

 

З.Ы. Скоро вы увидите мое адское творение и все мои вопросы станут понятны
Ждем-с.

Собираем корабль для путешествия в Арканум (VormanTown-онлайн). Билеты здесь

post-72-1213126565.gifpost-72-1213126671.gif

Опубликовано

Очевидно, что несчастному скрипту А придется ждать своего часа. (хотя это я и не проверял, но все мои опыты дают основания так считать)

 

Подскажи пожалуйста, как из любого(в т.ч. не диалогового) скрипта вызвать диалог на нужной строке?

Искренне ваш, Алкор.

Опубликовано
Очевидно, что несчастному скрипту А придется ждать своего часа. (хотя это я и не проверял, но все мои опыты дают основания так считать)
Если не трудно, все же проверь - т.к. новый движок Radzh`a подразумевает перенос модели скриптов из оригинала, то уточнение о параллельном или последовательном ходе событий будет очень кстати.

 

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

Метро в Таранте:

1) Клик на кабинке (скрипт оn_use, вроде) вызывает цикл поиска объекта с именем/номером "кассир"

2) На выходе из цикла получаем объект "кассир" (невидимый человек с артом маленького ведра :blink:)

3) Проходим проверку на маг/тех склонность.

4) По результатам проверки вызываем диалог между игроком и ведром либо со строчки заказа станции, либо со строчки "идите лесом".

 

Учавствуют Кабинка, Ведро, Игрок.

Подходит вариант?

Собираем корабль для путешествия в Арканум (VormanTown-онлайн). Билеты здесь

post-72-1213126565.gifpost-72-1213126671.gif

Опубликовано

Если не трудно, все же проверь - т.к. новый движок Radzh`a подразумевает перенос модели скриптов из оригинала, то уточнение о параллельном или последовательном ходе событий будет очень кстати.

Хорошо, проверю.

 

Подходит вариант?

Ща гляну. Спасибо.

Искренне ваш, Алкор.

  • 1 год спустя...
Опубликовано

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

1. Существует ли способ вытащить/получить любым способом сопротивления существ (обычному урону, огню, электричеству)?

2. Возможно ли через диалог (активированием скрипта) заставить NPC (спутника) поменять портрет во время игры?

3. Можно ли в игре измерять не игровое время, а реальное? То есть, например, запускаем скрипт, он в фоновом режиме «тикает» определенное количество раз и, скажем, через 500 секунд запускает нужный нам скрипт? Или любым другим способом.

Опубликовано
1. Существует ли способ вытащить/получить любым способом сопротивления существ (обычному урону, огню, электричеству)?

Ну разве что попробовать сохранить текущий уровень HP, нанести определённый тип урона через скрипт, а потом уже на основе изменений приблизительно оценивать сопротивления. Вот только всплывает проблема малого кол-ва HP, что дополнительно усложняет задачу. Иначе рискуем пришибить подопытного нашей любознательностью. :)

 

2. Возможно ли через диалог (активированием скрипта) заставить NPC (спутника) поменять портрет во время игры?

Нет.

 

3. Можно ли в игре измерять не игровое время, а реальное?

Нет.

Борітеся – поборете, Вам Бог помагає!

За вас Правда, за вас Слава і Воля святая!

Опубликовано
Существует ли способ вытащить/получить любым способом сопротивления существ (обычному урону, огню, электричеству)?

Я правильно понял, ты хочешь узнать сопротивления существ мира Arcanum к различным видам повреждения? Если так, то нужная информация находится в Arcanum Guide.

Опубликовано
Я правильно понял, ты хочешь узнать сопротивления существ мира Arcanum к различным видам повреждения? Если так, то нужная информация находится в Arcanum Guide.

 

Volh, дружище, я конечно lamer, однако не до такой степени. :lol: Шютка.

А за ссылку спасибо. Что-то мне раньше руководства для Арканума видеть не доводилось. Посмотрю на досуге, что там интересное есть.

 

 

Ну разве что попробовать сохранить текущий уровень HP, нанести определённый тип урона через скрипт, а потом уже на основе изменений приблизительно оценивать сопротивления. Вот только всплывает проблема малого кол-ва HP, что дополнительно усложняет задачу. Иначе рискуем пришибить подопытного нашей любознательностью. smile3.gif

 

О, какое интересное решение! Gamer_777 - голова! :good: Верно говорят: порядок в мыслях порождает порядок в действиях.

 

Тэк-с, в общих чертах у меня выходит следующее.

1. Вешаем скрипт на «HIT».

2. Смотрим, не получится ли так, что текущий удар убивает цель – если цель мертва, нам ее резисты нафиг не нужны. :)

3.1) Смотрим, есть ли у цели 21 жизнь (за небольшими исключениями, у всех существ в Арке сопротивления кратны 5, так что 20 очков урона даст нам достаточно точную картину).

3.2)Если у цели нет столько – смотрим, можем ли мы ее так вылечить, чтобы у нее стала 21 жизнь (т.е. смотрим максимальные жизни).

3.3) Если и этого нет – повторяем подпункты 2 и 3, только теперь смотрим по 11 жизней (увеличивается погрешность, однако это лучше, чем ничего).

3.4) Если у цели и 11 жизней нет – тогда в баню это чудо природы – завершаем скрипт, никого не трогая. :-)

4. Так, допустим у цели есть 21 очко жизней.

4.1) Записываем жизни;

4.2) бьем ее на 20 очков нужного нам урона;

4.3) записываем жизни;

4.4) высчитываем, какой процент урона прошел;

4.5) лечим цель на число ударенных жизней.

 

Так, здесь у меня возникает 3 вопроса:

1. Будет ли работать весь этот ужас? :-) Хотя бы в теории.

2. Можем ли мы через скрипт дать цели жизней сверх максимальных? Чтобы не писать километровые скрипты, а просто – дал 20 жизней, ударил, отнял лишнее. А впрочем это не столь важно.

3. Можно ли запускать эти расчеты в «тихом» режиме? Т.е. чтобы над головой цели после удара не вылезали километровые сообщения со всеми ударами/лечениями.

Опубликовано

МБ проще создать мобов с большим количеством хп (остальные параметры не менять) поменять оружие/магию на фиксированный урон (те не 10-20, а 20-20), дать мобу атаку 0 (или вообще запрет на атаку) и тестить. Сколько ударов нанесено хп/20=повреждения. А то изврат какой-то получается.

Немножко едущей крыши, красивых и не очень текстов без особенной нагрузки на мозг.

 

А зачем вникать в умные мысли? Главное - уметь их цитировать © Я.

Всякая экономия в конечном счете сводится к экономии времени.

К. Маркс

medal-4.pngТретье место в "Конкурсе прозы №3" "Таинственная" награда за 3-е местоmedal-3.png Второе место в "Конкурсе прозы №5" medal-5.png Второе место в "Конкурсе прозы №6"medal-2.png Третье место в "Конкурсе прозы №7", пожалуй в самом последнем конкурсе на нашем форуме.

На мотив песни Черный ворон:

Бееедный аааффтаар, что ж ты бьееешьсяаа

Да об стееену головооой.

Ты мозгооов не набереееешься,

Выпей йааадуу, ты тупооой!.. © Баш. Не принимайте на свой счёт!

Опубликовано

Да нет, смысл состоит не в том, чтобы узнать сопротивления монстров - это-то как раз не трудно. Все это достается без проблем, вплоть до того, что можно узнать при каких обстоятельствах и с какой вероятностью противник побежит. Фишка в том, как узнать нужное сопротивление у отдельно взятого противника в отдельно взятый момент времени. Например, силу или жизни посмотреть - без проблем, а вот возможность посмотреть сопротивления разработчики не предусмотрели! :cray: Вот и приходиться заниматься всевозможными извращениями. :dash:

 

Собственно говоря, у меня осталось 2 вопроса по скриптам:

1. Можно ли сделать так, чтобы скрипт выводил только нужные нам сообщения, а ненужные проводил в "фоновом" режиме - т.е. мы противника скриптом бьем/лечем, а в конце вырисовываем над головой монстра лишь те цифры, какие нам нужны.

2. Скрипт, прикрепленный на "HIT" активируется при критическом попадании? Или же он активируется лишь при простом попадании, а для критического нужно вешать отдельный скрипт на "CRITICAL HIT"?

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

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

Создать аккаунт

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

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

Войти

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

Войти
×
×
  • Создать...