|
|
|
Канал X2: The Threat: «Добавляем новые команды в скрипт редактор» |
|
|
AlexYar 1856 EGP
Рейтинг канала: 6(442) Репутация: 324 Сообщения: 31694
Зарегистрирован: 26.10.2003 |
|
DragonP : |
Разделитель лучше стандартную точку
|
Не! Только не точку и не запятую! Пусть лучше точка с зяптой ";" останется.
Точка и запятая уже забиты в проге для обратной связи (запятая вместо слеша используется в указании путей).
|
|
|
Grey Wolf 500 EGP
Рейтинг канала: 2(17) Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003 |
|
AlexYar : |
В неоткрытый сектор прыгнуть нельзя джампом, а в открытый можно, даже если нет в нём врат (жесточайший баг скрипта от Gor, нужно было обязательную блокировку ввести на прыжки в сектора без врат).
|
Нуууу ... если в стандартну скриптовую команду "джамп" в качестве аргумента подставить сектор, а не врата, то корабль прыгнет в центр сектора. Это баг только, если по замыслу моддера эта возможность должна быть исключена. А если допустима - то и не баг вовсе
Упомянутого скрипта я не видел, но если в качестве типа аргумента в скрипте указать "warpgate", то пилоту будет предложено выбрать именно врата, сектор он выбрать не сможет и в сектор без врат не прыгнет.
_________________ Быстро выпитая рюмка не считается налитой |
|
|
AlexYar 1856 EGP
Рейтинг канала: 6(442) Репутация: 324 Сообщения: 31694
Зарегистрирован: 26.10.2003 |
|
Не, ты не понял. Скрипт прыжка джампом по намеченным координатам. Если указать на врата, то координаты выбрать будет нельзя. А у него выбираются только сектор и координаты.
У себя я ввел блокировку, чтобы джамп давал отказ в прыжке, если в секторе назначения нет ни одних врат. По смыслу она должна быть по умолчанию, чтобы исключить читерство с набором рейтингов в хаакских секторах.
|
|
|
DragonP 281 EGP
Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004 |
|
AlexYar : |
Пусть лучше точка с зяптой ";" останется.
|
Это исключит создание какого либо массива прямо из редактора типа
$array='1,2,3,4,5,6' ИМХО - точка или запятая
_________________ Звезды зовут... |
|
|
Shaddie 556 EGP
Рейтинг канала: 4(60) Репутация: 118 Сообщения: 261 Откуда: Томск Зарегистрирован: 09.09.2004 |
|
Вышла новая версия программы. Ссылка на первой странице.
_________________ Быстро едешь, тихо понесут... |
|
|
DragonP 281 EGP
Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004 |
|
Shaddie : |
Вышла новая версия программы
|
Респект огромный.
Есть еще кое какие идеи, к кучу соберу и напишу. А то по одной подбрасывать, только время твое убивать.
_________________ Звезды зовут... |
|
|
AlexYar 1856 EGP
Рейтинг канала: 6(442) Репутация: 324 Сообщения: 31694
Зарегистрирован: 26.10.2003 |
|
Благодарствуем, барин
А как дела продвигаются с добавлением/удалением секторов?
Если возникнут трудности с предварительным удалением всех объектов из сектора, то можно их игнорировать, типа это задача уже скриптера, а не твоя
А возможность просто снять с сектора флаг "открытый" - есть?
Ну и кутсцены (скайбоксы) для сектора тоже хотелось бы мочь менять, тогда проблема "начинания новой игры из-за изменения карты" канет в лету, так как её можно будет дополнить одним скриптом
|
|
|
Shaddie 556 EGP
Рейтинг канала: 4(60) Репутация: 118 Сообщения: 261 Откуда: Томск Зарегистрирован: 09.09.2004 |
|
Добавил три новых команды. Ссылка на первой странице.
To AlexYar
Удаление сектора сделал, но работает не так как хотелось бы.
Основная проблемма в том, что после удаления сектора на его месте новый не создается. Буду дальше разбираться.
Вообще создание сектора сводится к тому, что у сектора прописывается раса-владелец (Owner), не равная 0.
То есть команду create sector фактически можно перименовать в set owner .
Попробуй удаление сектора таким образом:
1. Сначала удалить все объекты в этом секторе (планеты, ворота, станции, корабли и т.д.);
2. Установить для сектора владельца в ноль: create sector: owner=NULL x= y=;
3. Снять признак видимости сектора для игрока: set known by player to 0.
To unihorn
По поводу стыковки игрока со станцией.
Команду по стыковке сделал, но есть несколько глюков и ограничений которые пока не знаю как устранить. После выходных отвечу точно.
To all
Какие еще команды, из перечисленных в этой теме, нужны?
|
|
|
AlexYar 1856 EGP
Рейтинг канала: 6(442) Репутация: 324 Сообщения: 31694
Зарегистрирован: 26.10.2003 |
|
Shaddie : |
Добавил три новых команды.
|
Свершилось!!! Полностью динамическая карта стала реальностью! Необходимость начала новой игры из-за изменения карты ушла в небытие! От моддеров теперь требуется не менять саму карту, а просто писать скрипты, динамически её изменяющие. Класс!
Т.е. карта может вообще быть пустой, а приначале новой игры создаваться МирЪ Огромные возможности открываются для создания новых сюжетов, миссий, добавления и изменения карты "на лету", и т.д. и т.п.
Можно отправить в эгософт список добавленных команд и предупредить их о том, что если в Х3 этих возможностей не будет, то он уже слил даже не выйдя еще в свет
Shaddie : |
To all Какие еще команды, из перечисленных в этой теме, нужны?
|
Супернужная команда для миссий -
set playership to: $ship
И еще неплохо было бы добавить все те же команды в x2galedit.obj ...
зыж Если у тебя время появилось свободное, то говори, я сейчас быстро накумекаю тебе работы на пол года вперед
|
|
|
AlexYar 1856 EGP
Рейтинг канала: 6(442) Репутация: 324 Сообщения: 31694
Зарегистрирован: 26.10.2003 |
|
Shaddie : |
2. Установить для сектора владельца в ноль: create sector: owner=NULL x= y=;
|
Никакого эффекта. Сектор все равно остается прежнего хозяина.
Смысл в команде Remove sector состоял в том, чтобы избежать поиска и уничтожения всех объектов в секторе, а чтобы делала это всё одна команда. Хотя у меня и были подозрения, что это приведет к порче сейвов и невозможности создать новый сектор на этом месте.
Спасибо, что проверил и подтвердил мои опасения
А заблокировать доступ игрока в нужный сектор можно и при помощи команды set known - 0, с уничтожением врат в этот сектор.
Кстати, составил список доп.команд для добавления (на будущее):
1. set playership to $ship (от скриптера требуется проверка нахождения старого и нового корабля в одном секторе).
2. START/IF play music track Var/Number (доработка команды до стандарта play sample, чтобы без префикса START скрипт останавливался на текущей строке до тех пор, пока трек не доиграет до конца).
3. На будущее по проигрыванию музтреков - добавить возможность микшевания треков. Т.е. Чтобы команда, приведенная выше, передавала управление скрипту не по окнчании трека, а за 2-3 секунды до этого, не останавливая проигрывание трека ессно.
К примеру - идущие две подряд строки с проигрыванием треков. Нужен эффект типа второй трек запустился поверх первого, т.е. одновременно играют 2 последние секунды первого и две начальные секунды второго трека. Понятно о чем я? И вообще хорошо было бы сделать этот эффект со встроенным fade in/fade out (плавное глушение концовки первого трека с плавным появлением по громкости второго трека). Вобщем так, как это сделано во Фрилансере при смене муз.тем. Хотя это из разряда мечт
4. Раскопать привязку номеров сэмплов к игре. Т.е. чтобы расширить список номеров сэмплов, которые можно проигрывать командой play sample вообще, а так же увеличить список номеров, привязанных к пушкам. В игре есть всего штук 7 номеров сэмплов, которые возможно сейчас привязать к пушкам, т.е. прописать в файлы ТБуллетс и ТЛазерс. В это количество входят звуки выстрелов, звуки полета пулек и звуки попаданий. Думаю, не нужно говорить, что на все пушки 7 сэмплов - просто крохи. Нужно хотя бы штук 30-40.
5. Раскопать список используемых номеров текстур и привязку номеров к свойствам. Задача минимум - увеличить список используемых текстур на 500-1000 номеров и более. Тогда в игру можно будет добавлять туеву хучу кораблей без проблем (сейчас основная проблема - невозможность добавления своих текстур, не трогая стандартные). Возможно придется поискать в экзешнике
6. Попробовать вставить в функцию рассчета размера склада вместо RelValue и цены товара - фиксированные цифры, чтобы на станции влезало любого товара одинаковое количество.
7. Поработать над уменьшением дистанции срабатывания алгоритма уклонения.
зыж Списки получил, сейчас буду смотреть
|
|
|
DragonP 281 EGP
Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004 |
|
1. Get script task <имя скрипта> вобщем получить стек в котором выполняется скрипт <имя скрипта>
2. play sample <samplnumber> Alex уже написал.
3. send incoming message <message> display it=[TRUE]|[FALSE] Может как нибудь можно сделать чтобы возвращала select_value какая кнопка выбрана, например текст из тега [select][/select] вернуть. Ну в общем хоть что нибудь для двухстороннего общения с движком. (самая нужная)
http://www.elite-games.ru/conference/viewtopic.php?p=1041786#1041786
посмотри пост может мысля придет, что можно для связи использовать.
4. <RefObj> write to logbook <Value> Чтоб указывала от кого сообщение, а то без файла ресурсов не обойтись. А иногда надо коротенькую мессагу бросить, току чтоб знал от кого (это только если не геморно делать, она ж вроде так и задумывалась, а на деле мертвая)
5. array = <object>Get upgrade and ware получить массив того что есть на корабле. Достало мудрить с типами и субтипами
6. Create / distruct с разными визуальными эффектами. А то через джамп удалять объекты (для игрового антуража в своих миссиях) очень неудобно, так как глючьная она эта jamp use, если дать команду идет небольшая задержка и если в этот момент объект убьют скрипт (особенно глобальный 100% виснет). А способ Алекса с использованием спец моделей кораблей сильно сложный (не понимаю я этого еще)
7. <RetVar>=get max sectors in x direction
<RetVar>=get max sectors in y direction
Пусть возвращают что положено, а не 15 и 20
Короче вот. Было столько мыслей, а вспомнить не могу. Записывать надо.
_________________ Звезды зовут... |
|
|
AlexYar 1856 EGP
Рейтинг канала: 6(442) Репутация: 324 Сообщения: 31694
Зарегистрирован: 26.10.2003 |
|
DragonP : |
1. Get script task <имя скрипта> вобщем получить стек в котором выполняется скрипт <имя скрипта>
|
Ты забыл параметр Object, в чьих стеках смотреть
DragonP : |
4. <RefObj> write to logbook <Value> Чтоб указывала от кого сообщение, а то без файла ресурсов не обойтись. А иногда надо коротенькую мессагу бросить, току чтоб знал от кого (это только если не геморно делать, она ж вроде так и задумывалась, а на деле мертвая)
|
Я решил эту проблему очень просто - добавил в файл описатель несколько ИД с одними только тегами, типа "[red]%s[/red]" ; "[author]%s[author]" и так далее. Думаю, далее понятно, что из них можно в скриптах составить любую комбинацию и любое сообщение.
DragonP : |
6. Create / distruct с разными визуальными эффектами. А то через джамп удалять объекты (для игрового антуража в своих миссиях)
|
Я предложил сделать шире возможность этого командой play scene: Var/Number
Чтобы можно было использовать не только при уничтожении, но и при добавлении корабля, а так же свои сцен-ролики запускать.
DragonP : |
7. <RetVar>=get max sectors in x direction <RetVar>=get max sectors in y direction Пусть возвращают что положено, а не 15 и 20
|
А им и положено 15 и 20 возвращать Это стандартный максимальный размер карты. Т.е. макс по Х и У. Они всё правильно возвращают.
Или ты имеешь в виду что?
|
|
|
DragonP 281 EGP
Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004 |
|
AlexYar : |
Я решил эту проблему очень просто - добавил в файл описатель несколько ИД с одними только тегами, типа "[red]%s[/red]" ; "[author]%s[author]" и так далее. Думаю, далее понятно, что из них можно в скриптах составить любую комбинацию и любое сообщение.
|
Это понятно. Просто скока в Х2 багов, так может она рабочая сама по себе, может разработчики флажок какой не убрали. Я и пометил если не геморно )
AlexYar : |
А им и положено 15 и 20 возвращать
|
Ну и фик с ней
_________________ Звезды зовут... |
|
|
AlexYar 1856 EGP
Рейтинг канала: 6(442) Репутация: 324 Сообщения: 31694
Зарегистрирован: 26.10.2003 |
|
О, кстати! В хмл-ках описания команд цветовые теги надо задавать для каждой строчки текста, и только тегами типа \033X . По другому не пониматЪ
|
|
|
AlexYar 1856 EGP
Рейтинг канала: 6(442) Репутация: 324 Сообщения: 31694
Зарегистрирован: 26.10.2003 |
|
Обана! Обнаружил абсолютную невозможность найти в галактике многие объекты! Ни тебе туманность найти, ни звёздочку, ни планетку
Посему новые просьбы для динамической карты и новые команды:
1. Find sun sector: subtype: flags: и так далее:
2. Find planet ....
3. Find Nebula ....
4. Find Special ....
Ну и мух наверное тоже можно поискать, чтобы грохнуть на всяк пожарный.
|
|
|
DragonP 281 EGP
Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004 |
|
AlexYar : |
Обана! Обнаружил абсолютную невозможность найти в галактике многие объекты! Ни тебе туманность найти, ни звёздочку, ни планетку
|
Способ есть, все это можно найти перебирая sectorObject. Посмотри скрипт GreyWolfa удаляющий туманности. И таким способом ищется все, что есть в секторе.
DragonP : |
5. array = <object>Get upgrade and ware получить массив того что есть на корабле. Достало мудрить с типами и субтипами
|
Кстати по поводу этой команды. Ее лучше на две разделить, чтобы одна массив с апгрейдами и установленным оборудованием оружием возвращала, а другая то что в трюме валяется.
_________________ Звезды зовут... |
|
|
AlexYar 1856 EGP
Рейтинг канала: 6(442) Репутация: 324 Сообщения: 31694
Зарегистрирован: 26.10.2003 |
|
DragonP : |
Способ есть, все это можно найти перебирая sectorObject.
|
Ага, тогда реши такую задачу:
1. Плаершип в Аргон Прайм
2. Нужно удалить солнце в секторе Гетсу Фан и туманность в New Income.
Еще вопросы есть?
|
|
|
DragonP 281 EGP
Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004 |
|
AlexYar : |
Еще вопросы есть?
|
У матросов, нет вопросов.
_________________ Звезды зовут... |
|
|
unihorn 220 EGP
Репутация: 60 Сообщения: 464 Откуда: Москва Зарегистрирован: 26.10.2004 |
|
Shaddie : |
По поводу стыковки игрока со станцией.
Команду по стыковке сделал, но есть несколько глюков и ограничений которые пока не знаю как устранить. После выходных отвечу точно.
|
Ждем...
AlexYar : |
Посему новые просьбы для динамической карты и новые команды:
1. Find sun sector: subtype: flags: и так далее:
2. Find planet ....
3. Find Nebula ....
4. Find Special ....
|
Присоединяюсь...
_________________ Мир ищу, где волки агнцам служат,
И нету слуг верней
Где слезы никого не душат
Не ведают смертей |
|
|
Пассажир
|
|
Ребят, поработайте над командой чтобы определять сектор куда ворота ведут. Ну очень надо..
и ещё я не дорубил где взять и как установить всё новое(команды) что тут наклепали..
заранее респект
|
|
|
|
|
|
Канал X2: The Threat: «Добавляем новые команды в скрипт редактор» |
|