Форум TeamX
   Home   Members  
Pages: [1] |   Go Down
 
Author Topic: Перенос скриптов из первого фола во второй. Как это?  (Read 1254 times)
Oleg
Пользователь
Posts: 547


Перенос скриптов из первого фола во второй. Как это?
« on: 09 June 2008, 23:08:31 »

В основном вопрос наверное касается Jordan-а. Он занимается переносом F1 на F2. Если не трудно, обьясните как это делается, с какими подводными камнями можно столкнуться... Буду признателен.

За сим прощаюсь, Олег.
Jordan
Пользователь
Posts: 416

476228895
Re: Перенос скриптов из первого фола во второй. Как это?
« Reply #1 on: 09 June 2008, 23:35:17 »

Oleg

Да не особо много подводных камней. Все скрипты первого фола перенесены, сейчас только есть некоторые нестыковки и баги всплывают а так все работает. Может вам просто скрипты нужны первого фола? Или вы хотите их сам перенести? Или именно обьяснить как переносить скрипты? Если что это скрипты первого фола более или менее приведенные к исходному коду, т.е как в ф2, восстановлены scripts.h, maps.h, global.h и т.д

Держи
http://jordan631.narod.ru/fallout1_ssl.7z
« Last Edit: 09 June 2008, 23:57:48 by Jordan »

Воспрянет Россия, из праха отцов
Расправятся крылья, миллионов сердец
Поднимут все головы и грудью вздохнут
И громка скажут, что пришли
Мы пришли, со столетней войны
Oleg
Пользователь
Posts: 547


Re: Перенос скриптов из первого фола во второй. Как это?
« Reply #2 on: 10 June 2008, 14:38:36 »

Было б не плохо услышать, как переносить. Так в общем поковырялся, почитал доки, вроде все более менее понятно... Но на примере какого нибудь небольшого скрипта с радостью посмотрел... Улыбка


За сим прощаюсь, Олег.
Jordan
Пользователь
Posts: 416

476228895
Re: Перенос скриптов из первого фола во второй. Как это?
« Reply #3 on: 10 June 2008, 15:06:08 »

Oleg

Все легко делается. Берем декомпилируем скрипт. Прописываем его в scripts.lst и scrname.msg.
Потом компилим скрипт компилятором для ф2. Если выскочила ошибка (такое бывает в некоторых
скриптах не декомпилируются некоторые функции, это нужно править вручную),
скомпилировали отлично переносим в папку scripts и в маппере создаем персонаж, привязывем
прошник и наш скрипт. И всё. Но вот от сюда то и начинаются проблемы. Гвары не те, номер
скрипта не тот и т.д.

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

Но потом к этому делу я прикрутил препроцессор, берем препроцессор и скрипт.
Делаем h файл и в нем пишем

message_str(Номер скрипта, номер строки)

#define message_str(x1, x2) message_str(SCRIPT_NUMBER_ x1, x2)

После препроцессора в скрипте будет такой вид


message_str(SCRIPT_NUMBER_ 567, 345)

Потом берем программу для замены слов в файлах.

Заменяем SCRIPT_NUMBER_ (с пробелом) на SCRIPT_NUMBER_ (без пробела)

И скрипт будет такого вида

message_str(SCRIPT_NUMBER_567, 345)

После чего создаем еще файл h и подключаем к скрипту

В файле делаем

#define SCRIPT_NUMBER_567 SCRIPT_имяскрипат (пример) SCRIPT_ARADESH

И опять запускаем препрцессор и вот теперь можно изменять номер скрипта правя один
файл scripts.h

В файле scripts.h добавляем такую строчку


#define SCRIPT_ARADESH (Номер скрипта из scripts.lst)

И так далее что нужно заменить. И вот так сообственно я и приводил скрипты для переноса
в ф2.

У меня где то должны быть все эти h фалы, но неуверен посмотрю может остались.

И если что то непонятно пиши.

Вообще могу написать хелп как деомпилировать для дальгнейшей модификации. Со скриншотами и с полным описанием. Думаю пригодится. Например кто то не хочет выкладывать исходники мода или исходники затерялись всякое может быть, а мы прочитав статейку сами декомпильнули восстановили скрипты, конечно это будет код не как в бисовских скриптах но все таки лучше чем просто декомпилированный скрипт. Подмигивающий
« Last Edit: 10 June 2008, 15:54:19 by Jordan »

Воспрянет Россия, из праха отцов
Расправятся крылья, миллионов сердец
Поднимут все головы и грудью вздохнут
И громка скажут, что пришли
Мы пришли, со столетней войны
Oleg
Пользователь
Posts: 547


Re: Перенос скриптов из первого фола во второй. Как это?
« Reply #4 on: 10 June 2008, 17:40:13 »

ЭЭЭЭ Я может туплю, но у меня есть несколько вопросов...

так точно ступил, первый вопрос отпал...

2. Вот ты писал - "Потом компилим скрипт компилятором для ф2." но у Ф1 несколько другая структура, там же все через start работает, а в Ф2 он только один раз вызывается и все, или это не так? Как тогда он будет работать то? Даже если все гвары и мвары переписать... Чет не понятно... А режим диалога там через SEY режим сделан... В Ф2 у него то-же несколько другой вид работы, как мне кажется...
« Last Edit: 10 June 2008, 17:44:45 by Oleg »

За сим прощаюсь, Олег.
Jordan
Пользователь
Posts: 416

476228895
Re: Перенос скриптов из первого фола во второй. Как это?
« Reply #5 on: 10 June 2008, 21:26:51 »

Oleg

Quote
но у Ф1 несколько другая структура, там же все через start работает, а в Ф2 он только один раз вызывается и все, или это не так?

Я тоже сначала думал что только один раз вызывается а нет при каждом обращении скрипта.
Посмотри исходники скриптов от первого фола сразу станет всё понятно. Если все вызывается через старт то нельзя добавлять процедуру над процедурой стар, потому что процедура старт не заруститься, в таких скриптах где всё вызывается через старт, самая первая процедура должна быть start.

Quote
А режим диалога там через SEY режим сделан...

Демо версия ф1 сделана через сай режим, а ф1 так же как ф2.

Quote
В Ф2 у него то-же несколько другой вид работы, как мне кажется...

Честно я особо не копался в сай режиме ф1. Но я думаю не особо отличаться должен.

Пример скрипта где все вызывается через старт

procedure start
begin
  Таже процедура talk_p_proc только вызывается через старт и script_action
   if (script_action == talk_proc) then begin

      start_gdialog(SCRIPT_ARADESH, self_obj, 4, -1, -1);
      gsay_start;
      call Node001;
      gsay_end;
      end_dialogue;
   end

И сюда так же добавлять
        Это look_at_p_proc
        if (script_action == look_at_proc) then begin
          script_overrides;
          display_msg(message_str(NAME, 100));
        end
end


Воспрянет Россия, из праха отцов
Расправятся крылья, миллионов сердец
Поднимут все головы и грудью вздохнут
И громка скажут, что пришли
Мы пришли, со столетней войны
Oleg
Пользователь
Posts: 547


Re: Перенос скриптов из первого фола во второй. Как это?
« Reply #6 on: 10 June 2008, 22:00:34 »

Да, скрипты смотрел от демо версии...
Спасибо за пример.

За сим прощаюсь, Олег.
Pages: [1] |   Go Up