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


Форум TeamX » Тех. поддержка » FAQ по модификации Fallout (Новичкам - обратить внимание)

Переход по темам
<< Пред.
Страницы этой темы [ 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 ] Все собщения

 
Pinkbyte
Пользователь

Регистрация: Дек. 2004

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

[вырезано, сам понял, как это делать]

Такой вопрос: Игрок говорит с неписем, диалог заканчивается, а когда он начинается - это абсолютно новый(с виду диалог), с другими вариантами ответа и т.д. Куда это прописывать - в MVAR или LVAR?

(Отредактировал(а) Pinkbyte - 20:12 - 22 Дек., 2004)

-----
Нейтральность - высшее достижение сознания!

Отправлено: 19:16 - 22 Дек., 2004
Alan Killenger
Пользователь

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

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

Pinkbyte, а в чем, собственно, у вас проблема? В скриптах есть функция random, почитайте как строятся координаты в Фаллоуте и рандомите себе в удовольствие точки назначения. Есть события по таймеру - это чтобы криттер ждал. В critter_p_proc делаете регулярную проверку положения, если флажок срабатывает - возвращаете ваше чудо ходячее.

P.S. Быть может вам начать постить в скрипты?

Отправлено: 20:11 - 22 Дек., 2004
Pinkbyte
Пользователь

Регистрация: Дек. 2004

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

Спасибо, больше надо факи читать! Теперь еще вопрос - после разговора с типом я хочу чтоб менялось описание типа. То есть он был скажем "Гражданин города" а стал "Мэр города"?
Какие переменные лучше всего юзать - MVAR или LVAR?

Все хуже и хуже... Привожу пример скрипта

procedure talk_p_proc
begin
start_gdialog(NAME,self_obj,4,-1,-1);
gSay_Start;
call Node_1;
gSay_End;
end_dialogue;
end

procedure node_1
begin
caps:=obj_carrying_pid_obj(self_obj,PID_ROMAR_GUN);
if (caps!=0) then begin
add_mult_objs_to_inven(dude_obj,caps,1);
rm_obj_from_inven(self_obj,caps);
end
Reply(102);
giQ_Option(4,NAME,103,Node_2,NEUTRAL_REACTION);
giQ_Option(-3,NAME,104,Node_2,NEUTRAL_REACTION);
end

-------
Все бы ничего, но после выполнения скрипта я нажимаю выйти из игры и игра вылетает - неприятная штука, хоть и не смертельная! Скрипт выполняется нормально. Для справки: Pid_ROMAR_GUN - личная пушка Ромара(новый предмет, добавленный Romarom)

И еще - один мой знакомый(Romar) начал делать мод Город НЕЧТО ко второму Fallout(угадайте, кто вызвался ему помогать ))) ). Мод пока очень сырой.

Скачать это можно здесь - http://www.pinkbyte.narod.ru/fallout/mod.rar

Описание мода: http://www.pinkbyte.h12.ru/viewtopic.php?p=583#583

(Отредактировал(а) Pinkbyte - 21:51 - 22 Дек., 2004)

-----
Нейтральность - высшее достижение сознания!

Отправлено: 20:16 - 22 Дек., 2004
Perceptron
Модератор

Откуда: Ivanovo
Регистрация: Май 2003

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

>Какие переменные лучше всего юзать - MVAR или LVAR?
MVAR - сохраняются в карте, LVAR - не сохраняются. Точнее не скажу. Т.е. в данном случае лучше использовать MVAR.

-----
Into The New Year - With A New Vision!
Документация по скриптам, туториал по скриптам, вопросы по скриптам, FAQ по моддингу, "Утилиты", fallmods-tutor.

Отправлено: 22:13 - 22 Дек., 2004
Pinkbyte
Пользователь

Регистрация: Дек. 2004

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

Народ - у меня кривые руки! В этом я убедился только что:



procedure start
begin
if (local_var(LVAR_Home_Tile) == 0) then begin
set_local_var(LVAR_Home_Tile,tile_num(self_obj));
end
end

procedure critter_p_proc begin
if ((local_var(LVAR_Hostile) == 2) and (obj_can_see_obj(self_obj,dude_obj))) then begin
set_local_var(LVAR_Hostile,1);
attack(dude_obj);
end
// Рандомизация ходьбы
//if ((random(0,100)==1) and (In_Timed_Event == 0)) then begin

      In_Timed_Event:=1;
      add_timer_event(self_obj,game_ticks(random(5,9)),1);
//end
end

procedure timed_event_p_proc begin
if (fixed_param == 1) then begin
if (tile_distance(tile_num(self_obj),local_var(LVAR_Home_Tile)) < MAX_TRAVEL) then begin
          animate_move_to_tile(tile_num_in_direction(tile_num(self_obj),random(0,5),random(3,7)));
      end
      else begin
          animate_move_to_tile(tile_num_in_direction(local_var(LVAR_Home_Tile),random(0,5),random(3,7)));
      end
      In_Timed_Event:=0;
end
if (LVAR_Hostile==0) then float_msg(self_obj,101,-1);
end

По идее криттер должен ходить из точки в точку, пока дистанция от начальной точки не достигнет предела и криттер не вернется назад в родное место. А еще каждые 5-9 секунд криттер должен морозить фразу №100 из родного мсг файла. Так вот ни 1 ни 2 не выполняется! Скрипт копировал из ACVillagr.ssl Где ошибся - не знаю!

-----
Нейтральность - высшее достижение сознания!

Отправлено: 22:43 - 22 Дек., 2004
Raven
Пользователь

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

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

Вообще, лучше сделать так:
------------------------------------------------------------
procedure map_enter_p_proc begin
 if (local_var(LVAR_Home_Tile) == 0) then set_local_var(LVAR_Home_Tile,tile_num(self_obj));
 add_timer_event(self_obj,0,1);
end

procedure timed_event_p_proc begin
 if fixed_param==1 then begin
   animate_move_to_tile(tile_num(local_var(LVAR_Home_Tile),random(1,MAX_TRAVEL),random(0,5));
    add_timer_event(self_obj,random(5,9),1);
 end
 if not local_var(LVAR_Hostile) then float_msg(self_obj,101,-1);
end
------------------------------------------------------------


(Отредактировал(а) Raven - 14:52 - 23 Дек., 2004)

Отправлено: 7:50 - 23 Дек., 2004
Pinkbyte
Пользователь

Регистрация: Дек. 2004

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

А в scripts.lst надо прописывать localvar, а то у меня там прописано localvar=0?

-----
Нейтральность - высшее достижение сознания!

Отправлено: 13:06 - 23 Дек., 2004
Pavel
Модератор

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

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

Да, localvar необходимо поставить. А само число это равно количеству локальных переменных:
localvar_1
localvar_2
localvar_3
всего з localvar, значит localvar=3

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

Отправлено: 13:25 - 23 Дек., 2004
Pinkbyte
Пользователь

Регистрация: Дек. 2004

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

Все работает. Всем спасибо. Теперь такой вопрос(может он конечно уже поднимался, так что если что - меня не пинать): нафиг нужны AIPackets и как организовать обновление того, что есть в магазине криттера. То есть если купил патроны, они обновились, нет - фиг с два! )))
И последнее - в чем суть spartial-скриртов и для чего они к примеру используются(кроме как для привязки машины). Заодно, как называется тот самый скрипт привязывающий машину к конкретному месту?

Кстати, несколько постов назад я писал, про то что игра при переносе нового предмета в инвентарь игрока вылетает - в чем проблема?

(Отредактировал(а) Pinkbyte - 12:50 - 25 Дек., 2004)

-----
Нейтральность - высшее достижение сознания!

Отправлено: 12:47 - 25 Дек., 2004
Pavel
Модератор

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

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

1) AIPackets - это интеллект криттера. Этим все сказано?
2) Как организовать обновление того, что есть в магазине криттера - это смотря какой криттер, но в принцие основная масса торговцев имеет инвентарь в своем скрипте. И для добавления содержимого необходимо изменить скрипт криттера.
3) В чем суть spartial-скриртов и для чего они к примеру используются - любое действие на карте без предмета: например радиация в 1-м фале, проход в Наварро во втором, могу еще примеры привести, но думаю нет надобности.
4) Как называется тот самый скрипт привязывающий машину к конкретному месту - к какому месту: к локации или расположении в локации?
5) Несколько постов назад я писал - надо смотреть. На вскидку не скажу.

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

Отправлено: 13:09 - 25 Дек., 2004
 

Переход по темам
<< Пред.
Страницы этой темы [ 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 ] Все собщения


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