|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
Итак, если это кому-то будет интересно, создам такую вот тему. Я тут полистал форум и поймал себя на мысли, что в 90% случаев на такой вот приблизительно диалог (в разных темах): Q: А можно... A: Нет, за это отвечает движёк. (в разных вариациях) я бы дал утвердительный ответ. Т.е. большинство из того, что просил народ, я, имея сейчас определённые знания в данной области, смог бы реализовать. Правда большинство бы идей я бы даже не взялся воплощать в жизнь (по разным причинам - чисто от технических и до принципиальных ). Но тем не менее, делать что то, что займёт кучу времени, а так никому и не пригодится я не хочу. Поэтому я прошу всех кому это интересно накидать сдесь идей, что было бы не плохо сделать в движке (в пределах разумного конечно ) или что просто необходимо сделать, а я потом решу что более актуально (совместно с вами конечно) и что возможно в реализации. В принципе можно сделать практически что угодно, но писать на чистом ассемблере в машинных командах реализацию износа я конечно же не буду Для того, чтобы вам было проще я напишу что я хорошо знаю в движке, может натолкнёт на хорошую идею. Известные функции в движке:
- Создание окна игры
- Перемещение игрока (тайл назначения при беге, ходьбе и обработка перемещения)
- Ф-ия создания персональной записи - данные игрока (при генерации персонажа)
- Практически все окна (инвентарь, пипбой, перки и т.п. и обработка событий)
- Создание всех кнопок
- Работа с лифтами (прим.: нет, я не буду расширять количество доступных лифтов уж точно в ближайшем обозримом будущем)
- регистрация игры (запуск ereg.exe) - самая любимая ф-ия, именно вместо неё я дописывл все существующие в данный момент исправления\дополнения
- Инициализация всех ресурсов игры (языка, dat-файлов, в т.ч. patch000 и т.п.; инициализация всех компонентов игры - от мыши и проигрывания роликов и до карты мира и боевого режима)
- Обработка нажатия всех кнопок (как с клавиатуры так и по нажатию на мышь) в самой игре - в локациях
- Получение значения гвар, а также запись в них
- Работа с конфигами .cfg
- Цикл разговора и обработка его (в т.ч. бартер и т.п.)
- Проигрывание видео
- Проигрывания музыки и эффектов
- все опкоды (т.е. все стандартные + интерфейсные ф-ии скриптов)
- Работа с сэйвами (запись\загрузка, файл типа db и worldmap.dat)
- Главная ф-ия старта игры+меню со всеми переходами типа новой игры и т.п. (прим.: причём для одного проэкта я даже отключал некие кнопки в главном меню и менял их местами...)
- fade
- Возвращение кодов нажатых кнопок
- Ф-ия которая проверяет ограничения в 13 лет (прим.: я его убирал и ничего хорошего из этого не вышло - надо переписывать очень много всего - от сэйвов до ф-ий работы со временем. Я такого не осилю)
- Всё что угодно по карте мира, случайным встречам и т.п (работа с городами и картами в том числе)
- Вывод отладочной информации
- И много чего ещё - всё не описать. А также очень много того, что можно быстро найти - вроде разных панелей, окон, или того, что использует различные ресурсы игры - желательно из текстовых msg файлов (их названия жёстко вбиты в двиг и от этого их просто искать)
Вобщем я дал информацию для размышления. Чего кому не хватало - милости прошу... P.S. У вас есть время, т.к. в ближайшем будущем мне надо разобраться с учёбой и тем что я пообещал сделать Первостепенные задачи:
- выключение быстрого перехода в локации с карты мира по нажатию 1-9
- Добавить возможность скрола взятых квестов (в пип-бое) для каждого города - на экран помещается слишком мало
- Добавить функцию для проверки количества отсавшихся боеприпасов (прим.: в оружии, находящемся в активной руке)
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 0:59 - 18 Дек., 2007 | ИСПРАВЛЕНО: Ray - 23:47 - 28 Янв., 2008
|
|
Jordan 63
Пользователь
Откуда: Россия, Самара Регистрация: Июль 2007
Всего: 228 сообщений
|
Ray Возможно ли все твои плюшки по изнашиваниею оружию и таймер для мировой карты добавить в этот плагин Заходите на сайт http://timeslip.chorrol.com/ И качайте Fallout 2 v1.02 US (v1.14) Это я как понял плагин для fallout2.exe Что он делает Теперь можно колесиком мышки листать инвентарь Можно изменять скорость жвижения dude по карте запускать fallout2 в 16 битном цвете А также дополнительные функции для скриптинга И многое другое Типа изменение базовых характеристик персонажа для этого нужно скачать компилятор Script compiler that recognises sfall's extra script functions (v1.14) Это Source code (v1.14) это исходники плагина Знающие английский язак переведите пожалуйста из Fallout 2 v1.02 US (v1.14) Файл ddraw.ini то есть коментарии на русский А также из Script compiler that recognises sfall's extra script functions (v1.14) readme.txt там описаны новые функции Это не реклама просто решил поделиться информацией Прямая ссылка http://timeslip.chorrol.com/sfall.html То что хотелось бы изменить в движке это обработку партийцев и врагов что бы они не стреляли в спины своим. У меня много идей идеи напишу к вечеру!
Цитата: Главная ф-ия старта игры+меню со всеми переходами типа новой игры и т.п. (прим.: причём для одного проэкта я даже отключал некие кнопки в главном меню и менял их местами...)
Значит возможно перемистить кнопки второга ф2 как в ф1 в главном меню? При переносе изображения героев(картинки при выборе персонажа) ф1 во второй они получаются ни в тех координатах можно ли это подправить? P.S Ох ПРОМОДИМ fallout2!!!
|
Отправлено: 14:32 - 19 Дек., 2007
|
|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
Цитата: Возможно ли все твои плюшки по изнашиваниею оружию и таймер для мировой карты добавить в
Я не делал изнашивания оружия (пока). Я лишь дал модостроителям возможность узнать какая рука у игрока активна в данный момент (хотя признаю, это очень важная вещь для реализации изнашивания). Что касается плагина - я не вижу в нём никакого смысла. Разве что за исключением скрола предметов мышью. Больше ничего важного я там не нашёл. Добавить же новые возможности в скрипты (как-то запись в файл и т.п. - у меня в планах). А снимать ограничение в 13 лет так как это сделано в плагине - вообще вносить новый баг в игру. Ну и последнее - их плагин не меняет движёк, а меняет библиотеку. Если внести в двиг мои изменения и поставить плагин -по идее всё должно работать нормально, но я не проверял. Итого вывод: ИМХО, я не вижу смысла в их плагине.
Цитата: То что хотелось бы изменить в движке это обработку партийцев и врагов что бы они не стреляли в спины своим.
Я буду вносить в первый пост изменения - список поступивших предложений. Я думаю то что ты хочешь теоритически можно сделать. Только это не будет в первую очередь (как я уже писал - я не разбрался с боевым режимом).
Цитата: У меня много идей идеи напишу к вечеру!
Жду предложения. Хоть кто-то откликнулся. А то "active hand" вообще все проигнорировали, хотя я думал это будет многим интересно... Жаль Raven не появляется на TeamX...
Цитата: Значит возможно перемистить кнопки второга ф2 как в ф1 в главном меню? [и т.д.]
Да. Можно.
Цитата: P.S Ох ПРОМОДИМ fallout2!!!
Чем я собственно и занимаюсь (вот только освобожусь и сделаю то что уже обещал
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 19:13 - 19 Дек., 2007
|
|
Jordan 63
Пользователь
Откуда: Россия, Самара Регистрация: Июль 2007
Всего: 228 сообщений
|
Ray
Цитата: Добавить же новые возможности в скрипты (как-то запись в файл и т.п. - у меня в планах).
Можно подробнее....
Цитата:
Значит возможно перемистить кнопки второга ф2 как в ф1 в главном меню? [и т.д.] Да. Можно.
Реализуешь в патче?
Цитата: Что касается плагина - я не вижу в нём никакого смысла.
А как же новые функции для скриптинга?
|
Отправлено: 20:43 - 19 Дек., 2007
|
|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
Цитата: Можно подробнее....
Конечно. В идеале я планирую добавить несколько новых опкодов (и добавить их в компилятор). Если в реализации появятся подводные камни (пока мне всё кристально ясно, но я не копал конкретно) - тогда придётся извращаться (или забить ). Хочу же добавить основные функции работы с файлами (чтение\запись), работа с разными форматами данных, ещё хорошо бы добавить ф-ии которые бы через скрипты могли контролировать саму игру (как то получить данные по загрузкам, сохранениям, времени роботы и т.п.) Следует также понимать, что изменения двига в большинстве случаев используя его возможности - ювелирная работа и то что кажется простым может быть не выполнимым (в разумные сроки). А также то, что исходными кодами мы не обладаем и разобраться что как работает порой бывает крайне сложно. Поэтому поставленные задачи не факт что будут выполнены, но я постараюсь.
Цитата: Реализуешь в патче?
Хорошо. Приоритетная задача
Цитата: А как же новые функции для скриптинга?
См. первый ответ. P.S. А вообще, пока не появились лучше идеи - ближайшая задача для модификации - сделать пролистываемым список квестов (а то если их много все не помещаются). P.P.S. Жду предложения.
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 21:09 - 19 Дек., 2007
|
|
Jordan 63
Пользователь
Откуда: Россия, Самара Регистрация: Июль 2007
Всего: 228 сообщений
|
В этом списке 99% я думаю реализовать не получиться или для этого нужно будет нанимать целую компанию программистов))) но душу излил. Это не весь список будет еще ждите обновления))) 1. А возможно ли реализовать что бы фол мог проигрывать ogg формат 2. Добавить файлик что типа city.txt или maps.txt только для лифтов т.е что бы в нем можно было прописывать лифты и сделать файлик game.txt и там можно прописывать задать карту задать дату дать пип бой и т.д 3. Добавить или изменить функцию critter_mod_skill чтобы она могла понижать значение навыка а также изменяла значение не только для dude_obj а также и для self_obj (тогда можно будет изменять характеристика персонажа не через пид а через скрипт) или сделать прото файлы через текст как в аркануме править проще проги не нужны хексом не мучаешься. 4. Добавить функцию как в плагине set_critter_base_stat и еще добавить чтобы можно было изменять характеристики 5. Изменить message_str({int msg_list}, {int msg_num}) что бы можно было задавать путь пример message_str(“text\ENGLISH\DIALOG\acklint.txt”, 100) 6. Что бы партийцы и враги не стреляли в своих т.е чтобы у них была проверка что то типа если в команде есть персонаж и он стоит рядом с врагом а он хочет стрелять то он или убирал оружие или брал другое (если у него в руках пулемет или автомат короче очередью не стрелял) или напал на другого.(Реализовать бы интеллект персонажей через скрипты это была бы сказка и добавить новые функции для скриптинга для реализации этого интеллекта тогда можно было свободно делать как он ведет себя во время боя в кого стреляет как зачем что когда) 7. Добавить функцию для проверки боеприпасов т.е сколько у персонажа осталось патронов. 8. Реализовать отравляющее оружие. 9. Увеличить карту чтобы можно было не только 100Х100 хексов но и больше 500Х500 и по возможности добавить уровни для карт чтобы больше трех. 10. Запустить фол в 32 битном цвете 11. Поменять разрешение на 1024Х768 но тоько нормально со всеми координатами кнопок окон или вообще сделать выбор разрешения 800Х600 и 1024Х768 12. Что бы можно было листать пип бой а то эти кнопочки назад вперед а также сделать листать диалог а то больше 8 ответов не вставишь 13. Убрать ограничение на холодиски А если без шуток что я думаю нужно реализовать это Отравляющее оружие сделать файлик game.txt и там можно прописывать задать карту задать дату дать пип бой и т.д
|
Отправлено: 21:41 - 19 Дек., 2007
|
|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
Цитата: 1. А возможно ли реализовать что бы фол мог проигрывать ogg формат
Ну почему же... Можно. Я вполне серьёзно и не шучу. Вот хотел бы заодно выразить благодарность Freeman'у. У меня к нему ещё будет куча благодарностей а пока спасибо за увеличение области для кода и вызовом dll(У меня таки дошли руки разобраться с правкой заголовка и подключаемой библиотекой. Спаибо) Реализуется ogg через внешнюю библиотеку и указателей внутри самого фолла на строку с проигрываемым файлом. Навскидку должно работать. Но! Ты же понимаешь, что затраченное время не компенсирует результат. ИМХО и acm вполне достаточно. Я не считаю, что за это следует браться.
Цитата: 2. Добавить файлик что типа city.txt или maps.txt только для лифтов т.е что бы в нем можно было прописывать лифты и сделать файлик game.txt и там можно прописывать задать карту задать дату дать пип бой и т.д
Лифты - больная тема. Уже не один раз на них обжигался. Создать файл с лифтами конечно в идеале хотелось бы, но увеличить размер массива лифтов более реально. Если хватит вдохновения, когданибудь этим следует заняться. Но это глобальная задача, а потому долгая. Про game.txt - а зачем вообще? Стартовые данные прописывать... Не вижу смысла тратить столько времени.
Цитата: 3. Добавить или изменить функцию critter_mod_skill чтобы она могла понижать значение навыка а также изменяла значение не только для dude_obj а также и для self_obj (тогда можно будет изменять характеристика персонажа не через пид а через скрипт)
А разве critter_mod_skill не может понижать значения? Из доки "amount - число единиц умения (может быть как положительным, так и отрицательным)" Да и про указатели ничего не сказано. Надо будет посмотреть. Но как бы то ни было - долго и малоэффективно. Точно нет.
Цитата: 4. Добавить функцию как в плагине set_critter_base_stat и еще добавить чтобы можно было изменять характеристики
Не понял. Конкретнее.
Цитата: 5. Изменить message_str({int msg_list}, {int msg_num}) что бы можно было задавать путь пример message_str(“text\ENGLISH\DIALOG\acklint.txt”, 100)
Можно попробовать сделать так, чтобы ф-ия message_str брала названия файла из скажем name.txt - соответственно такой строкой - равной первому аргументу. Это избавит от кучи проблем и необходимости переделывать компилятор. Интересная идея. В список.
Цитата: 6. ...
Как ты предлагаешь - точно нет. Не забывай, это не исходники, это ассемблер. работа с регистрами и т.п. Единственное, что можно было бы сделать, так это то, что бы партийцы расценивали игрока (и остальных партийцев) как стены, а через них стрелять нельзя. И меняли бы позицию. И то - вилами по воде... Для нормальных партийцев надо менять движёк
Цитата: 7. Добавить функцию для проверки боеприпасов т.е сколько у персонажа осталось патронов.
Реализовать в принципе можно. Только надо найти некоторые переменные. А случаем эти данные через proto_data получить нельзя?
Цитата: 8. Реализовать отравляющее оружие.
Отравление при попадании из всего оружия - можно. Из отдельного - нет. Слишком много надо менять, начиная с прошек. А хотя... Надо посмотреть. Я с боевым режимом, как уже повторял несколько раз, не разбирался.
Цитата: 9. Увеличить карту чтобы можно было не только 100Х100 хексов но и больше 500Х500 и по возможности добавить уровни для карт чтобы больше трех.
Нет и нет. Слишком глобально.
Цитата: 10. Запустить фол в 32 битном цвете
Ну запустить то можно. А сделать frm 32 битными - нет.
Цитата: 11. Поменять разрешение на 1024Х768 но тоько нормально со всеми координатами кнопок окон или вообще сделать выбор разрешения 800Х600 и 1024Х768
Очень, очень, очень долго. Да и карты переделывать никто не будет. Так что не хочется даже браться...
Цитата: 12. Что бы можно было листать пип бой а то эти кнопочки назад вперед а также сделать листать диалог а то больше 8 ответов не вставишь
Про ответы - нет. Про пипбой скорее всего тоже нет (меня лично не напрягало до того момента пока ты не сказал. Да и сейчас не напрягает Фишка вся в том, что работать с объектами (кнопками) сверх трудно (в плане создания). Это во-первых. А во-вторых, в пипбое нет места под эти самые кнопочки
Цитата: 13. Убрать ограничение на холодиски
А его там нет. Просто после определённого момента они не будут влазить на экран. Если же ты про баг - я его второй год не могу исправить. Может позже повезёт.
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 23:18 - 19 Дек., 2007 | ИСПРАВЛЕНО: Ray - 22:25 - 19 Дек., 2007
|
|
Jordan 63
Пользователь
Откуда: Россия, Самара Регистрация: Июль 2007
Всего: 228 сообщений
|
Ray
Цитата: Можно попробовать сделать так, чтобы ф-ия message_str брала названия файла из скажем name.txt - соответственно такой строкой - равной первому аргументу. Это избавит от кучи проблем и необходимости переделывать компилятор. Интересная идея. В список.
Тогда нужно реализовать что бы в бою при попадании в персонажа он брал имя не из scripts/msg а из собственного msg скажем на строчке {10000}{}{}
Цитата: Реализовать в принципе можно. Только надо найти некоторые переменные. А случаем эти данные через proto_data получить нельзя?
Нет.
Цитата: Не понял. Конкретнее.
Эта функция в плагине и в компиляторе она добавляет функцию т.е изменяет характеристики self_obj хорошо бы ее заставить изменять уровень радиациии и отравления.
Цитата: А разве critter_mod_skill не может понижать значения? Из доки "amount - число единиц умения (может быть как положительным, так и отрицательным)" Да и про указатели ничего не сказано. Надо будет посмотреть. Но как бы то ни было - долго и малоэффективно. Точно нет.
Непонижает! И нельзя понизить или повысить sel_obj. А если сделать не лифты а перки что бы их можно было добавлять и изменять. Сделать радиацию и отравление более смертельным т.е пока не выличишься у персонажа будет отниматься здоровье даже на мировой карте. (А то если отравили можно пип бой прокрутить и вылечился!)
Цитата: Ну почему же... Можно. Я вполне серьёзно и не шучу. Вот хотел бы заодно выразить благодарность Freeman'у. У меня к нему ещё будет куча благодарностей а пока спасибо за увеличение области для кода и вызовом dll(У меня таки дошли руки разобраться с правкой заголовка и подключаемой библиотекой. Спаибо) Реализуется ogg через внешнюю библиотеку и указателей внутри самого фолла на строку с проигрываемым файлом. Навскидку должно работать. Но! Ты же понимаешь, что затраченное время не компенсирует результат. ИМХО и acm вполне достаточно. Я не считаю, что за это следует браться.
А может все таки сдеать не обязательно сейчас а потом когда самое нужное сделаешь!(тогда и звук будет нормальный ничего не будет шипеть да и звуки будет легче добавлять) И последнее можно ли сделать так чтобы ф2 понимал длинные имена больше чем 8 букв пример acklint.int arroyo_critter_acklint.int
|
Отправлено: 5:21 - 20 Дек., 2007
|
|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
Цитата: Тогда нужно реализовать что бы в бою при попадании в персонажа он брал имя не из scripts/msg а из собственного msg скажем на строчке {10000}{}{}
Да, надо. Но вот ещё какой нюанс. Если просто поменять message_str - тогда предётся создавай один файл - в котором будет прописаны все соответствия файлов номерам, и получить кучу проблем. Мне представляется всё немного по другому: Можно завести спец. гвару-флаг. Если значение этой гвары будет равно 0 - работать как в оригинале. Если же равно 1 - получать по первому аргументу из strings.txt путь к файлу и по второму аргументу читать из него строку. А использование будет такое: set_global_var(X,1); var str = message_str(Y,Z); set_global_var(X,0); Немного громоздко, но без проблем. И можно вынести такое чтение в заголовок define.h
Цитата: Эта функция в плагине и в компиляторе она добавляет функцию т.е изменяет характеристики self_obj хорошо бы ее заставить изменять уровень радиациии и отравления.
Учту, но не в первую очередь.
Цитата: А если сделать не лифты а перки что бы их можно было добавлять и изменять.
Та же ситуация, что и с лифтами.
Цитата: Сделать радиацию и отравление более смертельным т.е пока не выличишься у персонажа будет отниматься здоровье даже на мировой карте. (А то если отравили можно пип бой прокрутить и вылечился!)
Это можно сделать, но это правка баланса. А я на баланс влиять не буду - пусть модостроители с этим играются. Я лишь даю инструмент (как active hand). Если будет очень надо - можно будет сделать (хоть планов и так на год вперёд
Цитата: И последнее можно ли сделать так чтобы ф2 понимал длинные имена больше чем 8 букв
Не знаю.
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 11:24 - 20 Дек., 2007
|
|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
Забегая в будущее скажу - я решил создать один "продукт" (F2 Engine v.1.3x) в который бы входили все полезные дополнения и исправления для двига. В него же и будут включены следующие исправления (если получиться реализовать): возможные изменения (взято из моих записей относительно того, что надо пропатчить в двиге. Т.е. из моих идей по созданию патча):
- отключение кнопки "0" в диалогах - баг (*сделано*)
- исчезновение кнопки умений (skills) в главном интерфейсе (после переполнения голодисков)
- исчезновение кнопки времени в пипбое (после переполнения голодисков)
- исправить отладочные сообщения - (местами есть неточности с переходом на новую строку - криво написано)
- исправить кнопку бартера при первой загрузке диалога - кнопка работает, но не анимируется при нажатии
- выключение быстрого перехода в локации с карты мира по нажатию "1-9" - баг(вероятно остался после тестирования, но скорее всего просто не стоит проверка - доступна локация или нет "on\off")
- не правильное (частичное) срабатывание ф-ии fade для перехода из главного меню в меню загрузки
- не правильное срабатывание ф-ии fade для перехода из главного меню в меню опции и обратно (да ещё за чем-то выскакивает меню (как в игре по нажатию кнопки "esc") - лично видел, поймал на скриншот по F12. Что оно там делает - не понятно. Просто появляется и сразу исчезает. Трудно заметить)
- Неверная работа ф-ии obj_can_hear_obj (а точно она не правильно работает?)
- Не возвращаемый результат combat_p_proc (при - "было использовано оружие")
Это всё что мне удалось заметить. Может ещё кто что значет. P.S. Кстати, посмотрел это:
Цитата: 3. Добавить или изменить функцию critter_mod_skill чтобы она могла понижать значение навыка
В движке ясно машинным кодом написано :) :
Цитата: L004C6F48(" Can't modify anyone except obj_dude!");
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 0:32 - 21 Дек., 2007 | ИСПРАВЛЕНО: Ray - 23:41 - 20 Дек., 2007
|
|
|
|