» TeamX (Архив Форума)«


Форум TeamX » Тех. поддержка » Скрипты (Все вопросы по скриптингу - сюда)

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ] Все собщения

 
Alchemist
Модератор

Откуда: Арзамас-17
Регистрация: Дек. 2004

Всего: 298 сообщений

2Net:
critter_p_proc, если я не ошибаюсь, уже внутри боя вызывается. Попробуй обращение к attack поместить в одну из диалоговых процедур (возможно, глупость сказал). А вообще, Sokil дело глаголит.

2All:
Ткните носом, где можно найти описание внутреннего фомата *.int и утилиту (если она вообще в природе существует), обратную по действию ilink. Есть необходимость разобраться со скриптами для F1, которые, судя по всему, компилируются без видимых ошибок, но с проблемами в формате результирующего p-кода.

(Отредактировал(а) Alchemist - 22:28 - 8 Янв., 2005)

-----
/// What'ya be sain'? Vault 100+? We need nothing o'that!

Отправлено: 21:15 - 8 Янв., 2005
Net
Пользователь

Откуда: Samara
Регистрация: Дек. 2004

Всего: 8 сообщений

если в диалоге attack то скрипт виснет.
прорыл все скрипты везде просто attack.
Не работает её блин мать и все тут. rtfm начитался. Это тема просто супер!
В чем может быть еще проблема?

Отправлено: 22:12 - 8 Янв., 2005
izuken
Адский Хомяк

Откуда: mSk
Регистрация: Янв. 2004

Всего: 125 сообщений

*.*

(Отредактировал(а) izuken - 9:53 - 9 Янв., 2005)

-----
эхо москвы маздай.
save the planet - kill self.

Отправлено: 2:03 - 9 Янв., 2005
Raven
Пользователь

Откуда: Владик
Регистрация: Февр. 2004

Всего: 408 сообщений

to Net

c_p_p не вызывается:
1. во время действия боевого режима
2. во время присутствия на экране диалогвых панелей (инвентарь, диалог и т.п.)

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

функций - каждый по разному. Поэтому вызывать attack напрямую из диалога не получится.

Сделать это можно так (внимание! Это сам принцип,точные примеры см. в скриптах БИСов): при

выборе "неправильного" ответа мы устанавливаем в еденицу какую-то переменную и выходим. И

сразу после выхода её проверяем. Если она поставлена в один - начинаем бой.

-----------------------------------
variable wrong_answer;

<...>

procedure NodeXXX begin
 <...>
 wrong_answer:=1;
 <...>
end

procedure critter_p_proc begin
 if wrong_answer:=1 then begin
   attack(dude_obj);
   wrong_answer+=1;  
 end
 <...>
end

<...>
-----------------------------------

Метод основан на том, что c_p_p не вызывается во время диалога. Но вызовется *сразу* по его

окончании. И если переменная установлена в один, то критер начнёт атаку.

Инкрементить вару надо для того, чтобы attack не вызывалось по 30 раз в секунду вместе с

каждым вызовом c_p_p и не было бы combat loops (когда мы убежали от критера, закончили бой -

и он тут же начинается вновь).

Логично и правильно использовать LVAR вместо обычных вар, чтобы криттер запоминал про то,

что он атаковал чуза. Ещё желательно и map_update дописать. Всё это - см. в практически

любом critter-скрипте от БИС.

Аццкий Хомяк Йцукен - списваю всё на твой сессионный хронический недосып... ;-)

Отправлено: 6:17 - 9 Янв., 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Есть одна проблемка(большая), может знает кто, как её решить :
У меня на произвольной карте стоит зона перехода. Если ею воспользоватся то перемещаешся на другую карту на определённый hex. Дело вот в чём - если на это место поместить spatial скрипт, то после перехода он не сработает. А сработает только если перс перейдёт с данного hex'а на другой. Ни чего не помагает. Пробовал как в родных скриптах
if (op_source_obj() == op_dude_obj()) then ...
но эффекта ноль.
Как заставить срабатывать скрипт без перемещений?

Отправлено: 0:09 - 10 Янв., 2005
Raven
Пользователь

Откуда: Владик
Регистрация: Февр. 2004

Всего: 408 сообщений

>>Есть одна проблемка(большая), может знает кто, как её решить :

map_enter заюзать. Хотя, ты бы и сам тогда догадался :-) Что конкретно сделать надо, что без spartial-скрипта не обойтись?

Отправлено: 3:43 - 10 Янв., 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Спатиал скрипт срабатывает только при *движении* криттера в зоне его действия.

ЗЫ Ох знали бы вы, как я с этим спатиалом намучалась, когда ту самую дверь с кнопкой в Храме делала... :)

Отправлено: 10:09 - 10 Янв., 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Да хотелось бы map_enter да не всё так просто.
У меня есть карта, назовём её random1, на которую есть 2 "зоны переходов" с других карт. Так вот : при переходе на карту random1 перс появляется в определённом месте. Мне надо, чтобы в зависимости от определённых действий перс появлялся на разных тайлах. Кстати зоны перехода настраивать не получится, так-как там используются не совсем они.
Фу,забыл. Map-enter нельзя использовать так-как у меня 3-уровневая карта и на каждом уровне надо появляться в разных местах. А при переходе с уровня на уровень map-enter не работает (пробовал).И нельзя так-же дописывать точки входа в city.txt. Короче ситуация такая - у меня есть карта при переходе на которую перс в любом случае окажется на одном и том-же месте(это не я - это двигло), а мне надо, что бы он мог быть на разных тайлах.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 10:54 - 10 Янв., 2005
Pavel
Модератор

Откуда: Одесса Украина
Регистрация: Май 2004

Всего: 368 сообщений

>а мне надо, что бы он мог быть на разных тайлах.
А через скрипт карты?
if x move_to 1
if y move_to 2
if z move_to 3
x,y,z - mvar зависящие от действия (т.к. я понял при одном действии - один тайл, при другом - другой).
1,2,3 - тайлы.


-----
В жизни нельзя быть уверенным на 100%, ведь никогда не знаешь когда...

Отправлено: 11:07 - 10 Янв., 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Всё бы было так хорошо- если бы ни было так плохо.

>>А через скрипт карты?
 if x move_to 1
 if y move_to 2
 if z move_to 3

В том то и дело, что через скрипт карты нельзя. Для того чтобы вызвать проверку придётся вписывать в map-enter, а он как уже сказано не работает для 3 уровней. А куда ещё проверку в скрипт карты вставить, чтоб она срабатывала в нужный момент? -> Правильно нет такого места!

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 11:48 - 10 Янв., 2005
 

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ] Все собщения


Powered by Ikonboard 2.1.9 RUS
Modified by RU.Board Team
© 2000 Ikonboard.com