» 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 ] Все собщения

 
Wasteland Ghost
Маленькое Злое Привидение

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

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

Это-то я понимаю . Но всё равно не понимаю, зачем тебе невидимость нужна. Из мап_энтер всё и так нормально делается, т.к. картинка потом обновляется.

А вообще...

Блин, долго же до меня доходило, что такое "плотный криттер" .

Вообще-то испокон веков под "плотными" объектами понимали объекты с флагом "TransNone" в прошнике . То, о чём говорит  Alan Killenger, это не "неплотность", это отсутствие блокиратора под криттером, т.е. фактически флаг "NoBlock". Если мы делаем криттера невидимым, то блокиратор под ним автоматически убирается, чтобы через невидимого криттера можно было ходить. Далее действительно баг: если мы сначала перемещаем криттера, а затем делаем его видимым, то блокиратор под ним так и не появляется. Если же сначала сделать криттера видимым, а потом переместить куда надо, всё будет нормально.

ЗЫ Попробуйте в Ф1 не выходя с карты рейдеров "встать на" Танди после её освобождения. Глюк-с .

Отправлено: 13:15 - 23 Марта, 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Цитата:
Это-то я понимаю . Но всё равно не понимаю, зачем тебе невидимость нужна. Из мап_энтер всё и так нормально делается, т.к. картинка потом обновляется.

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

-----
hit me, nail me, make me god

Отправлено: 18:26 - 23 Марта, 2006
binyan
Пользователь

Откуда: Israel
Регистрация: Март 2005

Всего: 292 сообщения

И я опять со своими ФИДами =) Как известно, имея указатель на криттера, мы можем получить всю информацию о нем. НО как имея только ПИД, мы можем получить ФИД?
Поидее нужно с помощью ПИДа получить указатель, и с помощью указателя получить ФИД. Но отсюда возникает вопрос - как получить указатель с помощью ПИДа?
Может меня конечно сильно проглючило, и существует обычная функция для этого, но ИМХО нет.
Так может попытаться сделать это с помощью creat_obj? Создаём криттера с определённым ПИДом, и...А на него то как указатель получить?

-----
...выражая озадаченность, граничащую с озабоченностью..

Отправлено: 21:55 - 11 Апр., 2006
Wasteland Ghost
Маленькое Злое Привидение

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

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

Доки читать надо .

int (string) proto_data(int pid, int data_member) - возвращает значение данных из прототипа объекта
Аргументы:
pid - идентификатор прототипа объекта (см. CRITRPID.H - PID криттеров, ITEMPID.H - PID предметов, SCENEPID.H - PID элементов пейзажа)
data_member - номер данных  (см. Приложение)
Возвращаемое значение:
значение указанного поля из файла прототипа

FID под номером 3 .

Отправлено: 7:15 - 12 Апр., 2006
Alexer
Пользователь

Откуда: Россия Владивосток
Регистрация: Апр. 2006

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

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

-----
"Вы сильно промахнулись и случайно попали"

Отправлено: 11:07 - 19 Апр., 2006
Sokil
Пользователь

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

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

Посмотри скрипт того чувачка, которвй на выходе из Храма испытаний предлагает Чузу подраться. Очень интересный скрипт. Ответ на твой вопрос в нем содержится. Название скрипта не помню, чтобы узнать, открой в мэппере соответствующую карту и опцию "Show all scripts" - ту, что в верхнем меню.
Для приличного совоения скриптового языка и его хитростей достаточно проштужировать всего 4 скрипта: наркомана из Дэна, Лару оттуда же, Мецгера и этого... вожака бандитов, охраняющих наркотики в церкви.  Ну и торговца какого-нибудь. Например, Тубби.

Отправлено: 17:39 - 19 Апр., 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Цитата:
как пошагово сделать так

Что значит пошагово? В боевом режиме? Если "да", то никак - во время боя криттерами управлять почти невозможно, их действия определяются сугубо их статистикой и пакетом AI. Если "нет", т.е. в обычном режиме, то в скрипте "выбранного критера" пишем
Код:
 
procedure critter_p_proc begin
 if tile_distance(tile_num(obj_tile(dude_obj)), /* номер вашего тайла */) < /* расстояние до вашего тайла */ then begin
   animate_move_obj_to_tile(self_obj, /* куда идти */, /*  скорость */);
 end
end



-----
hit me, nail me, make me god

Отправлено: 17:42 - 19 Апр., 2006
Alexer
Пользователь

Откуда: Россия Владивосток
Регистрация: Апр. 2006

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

Круто, скрипт пашет. Но у меня появилась опять проблемка. Я в мапере создал карту, при входе чузена на которую в диалоговом появляется :"Вы стоите перед великим мостом и т. д. ..." . Че за фигня. У меня к карте привязан конкретный скрипт. который должен выдавать свою подпись к карте, что он собственно и делает, но после него следует фактически сразу вот это вот:"Вы стоите перед великим мостом и т. д. ..." . Функция script_overrides не помогает.

-----
"Вы сильно промахнулись и случайно попали"

Отправлено: 15:15 - 22 Апр., 2006
Volk
Пользователь

Регистрация: Июнь 2005

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

Что не так? Когда if (party_member_obj(obj_pid(your_slave)) != 0)  не выполняется все нормально, а когда выполняется игра входут в ступор, т.е. менюшка диалога остаеттся без текска и навсегда
Код:
  if (party_member_obj(obj_pid(your_slave)) != 0) then begin 
   if (((global_var(719) bwand 1) != 0) == 1) then begin
     set_local_var(8, (2 * random(100, 150) * ((160.00000 + has_skill(dude_obj, 15)) / (160.00000 + has_skill(self_obj, 15)))));
     if (get_critter_stat(your_slave, 34) == 0) then begin
       gsay_reply(121, message_str(121, 271) + local_var(8) + message_str(121, 270));
     end
     else begin
       gsay_reply(121, message_str(121, 272) + local_var(8) + message_str(121, 270));
     end
   end
   else begin
     set_local_var(8, (2 * random(50, 100) * ((160.00000 + has_skill(dude_obj, 15)) / (160.00000 + has_skill(self_obj, 15)))));
     if (get_critter_stat(your_slave, 34) == 0) then begin
       gsay_reply(121, message_str(121, 273) + local_var(8) + message_str(121, 270));
     end
     else begin
       gsay_reply(121, message_str(121, 274) + local_var(8) + message_str(121, 270));
     end
   end
 end
 else begin
 ...
прододжение диалога


Отправлено: 22:34 - 23 Апр., 2006
Aman
Пользователь

Откуда: Киев
Регистрация: Апр. 2005

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

Скорее всего переменная "your_slave" не успела объявиться как экспортируемая, так как я это делал в скрипте Дюда, а не в скрипте карты. Это проявляется в маппере, если загрузить карту с подобным скриптом и сразу ничего не делая начать диалог. Но если открыть дверь, или юзнуть умение, то всё ок. В игре этого не видно. Если всё-таки виснет в игре, значит где-то есть импорт, но нет экспорта.

-----
Ибо логично предположить, что если недостаточно чего-либо для запуска чего-либо, то второе чего-либо, а именно то, для которого не хватает - вообще не должно запускаться. (неизвестный)

Отправлено: 0:14 - 24 Апр., 2006
 

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 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