ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Добавляем новые команды. Координация. | страница 1 |
|
Страница 1 из 1 |
|
|
|
Канал X2: The Threat: «Добавляем новые команды. Координация.» |
|
|
DragonP 281 EGP
Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004 |
|
Сия тема создается исключительно для координирования работы наших ASM-программистов. По сей причине прошу никого сюда не постить. Принцип работы таков:
В следующем посте я выкладываю задачи и пожелания о новых командах, без каких либо приоритетов, только сами задачи которые любой желающий может указать в теме «Добавляем новые команды». Программисты сами решают которые для них важны и за что они возьмутся, опять же исходя из пожеланий в теме о добавлении команд. Задача же ASM-программиста сообщить мне через личку или мыло то чем он решил заняться. Я помечаю соответствующий пункт в списке указывая чем в данный момент занялся конкретный пилот, что исключит работу над одними задачами. Думаю такая организация позволит максимально эффективно организовать работу.
PS Еще раз прошу никого не постить в эту тему. Если вы хотите что-то высказать указать на ошибки используйте личку или мыло. Пожелания по новым командам в соответствующую тему «Добавляем новые команды».
PSS Все кто считает что эта тема для него важна запомните ссылку на нее, т.к. не подразумевается постоянное освежение темы новыми постами и соответственно она уплывет с первых страниц.
_________________ Звезды зовут... |
|
|
DragonP 281 EGP
Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004 |
|
То что хочется:
<object> destruct: show no explosion= 0|1
Вместо 0|1 по коду удалять объекты с разными эффектами (гиперпрыжок, разрушени, уход во врата)
create ship|station|gate effect: <Var/Number>
Можно просто изменить стандартную команду create добавив параметр effect.
Команду, возвращающую список станций, торгующих товаром в заданном количестве (ресурс или продукт) на расстоянии не более jumps прыжков.(в работе Darth Revan)
Команду, возвращающую массив секторов на расстоянии не более jumps прыжков в порядке возрастания этого числа. (в работе Darth Revan)
START cutscene X: Y:
запустить сцену-ролик на таких-то координатах Это что-то вроде запуска ролика строительства станций при разгрузке ТЛа.
<RetVar> = <object> Get script task <имя скрипта>
Получить стек на объекте <object> в котором выполняется скрипт <имя скрипта>
kill global task PID <Var\Number>
То есть убить выполняющийся скрипт с PID <число> (в работе Darth Revan)
<object> Use Jumpdrive to <object> to sector <sector> x y z
Безусловный джамп любого обекта (станции, астероида, спец.объекта) в указанную точку.
play sample <var/number>
Раскопать привязку номеров сэмплов к игре. Т.е. чтобы расширить список номеров сэмплов, которые можно проигрывать командой play sample вообще, а так же увеличить список номеров, привязанных к пушкам. В игре есть всего штук 7 номеров сэмплов, которые возможно сейчас привязать к пушкам, т.е. прописать в файлы ТБуллетс и ТЛазерс. В это количество входят звуки выстрелов, звуки полета пулек и звуки попаданий. Думаю, не нужно говорить, что на все пушки 7 сэмплов - просто крохи. Нужно хотя бы штук 30-40. (в работе Zman)
sector -> get array of objects of type <anytype>
Отыскать в секторе объекты определенного типа(например, летящие ракеты отыскивать было бы чрезвычайно интересно )
write to xml file #<Var/Number> pageid=<Var/Number> textid=<Var/Number> value=<Value>
Доработать команду чтобы она позволяла создать файл с несколькими идентификаторами на странице.
<ship> -> undock
От стыковать корабль. Должна работать и с PLAYERSHIP. Хотя бы аналог нажатия ESC на станции.
set battletrack Var/Number from sector: Var/Sector
установить определенный номер музтрека боевой темы для сектора Var/Sector. Чтобы не случайный из 5-ти общих играл, а конкретный трек. (в работе Zman)
play list of track: Value1, Value2, Value3, Value4, Value5, Value6
либо сразу так:
play music array: Array
где Array - последовательность названий муз треков. (в работе Zman)
set collision 1|0
Отключить/включить механизм уклонения от столкновений.
get cutscene from sector Var/Sector
Возвращение номера кут-сцены для данного сектора.
play scene: Var/Number x:Var/Number y:Var/Number z:Var/Number
Запустить сценку по заданным координатам в текущем (игрока) секторе. Проигрывание должно быть НЕ цикличным (иначе не удалить потом будет её).
Доработать команду "Send Incoming Question" (добавить новую), чтобы она не скрипт обработчик зупускала, а сама возвращала значение "строки" в зависимости от нажатой кнопки ответа. Ессно скрипт должен останавливаться на этой команде до получения какого-нибудь ответа от игрока.
set maximum speed of ship: Var/Ship
ограничение скорости
gosub
endsub
Переход на метку с запоминанием места от куда был сделан переход и соответственно возврат назад.
Воспроизведение звуковых сообщений из дополнительных файлов *.dat (в работе Zman)
_________________ Звезды зовут... |
|
|
DragonP 281 EGP
Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004 |
|
Что реализовано на сегодняшний день:
4. Навигационные команды.
4.062 <RetVar>=<RefObj> find nearest missile aiming to me
Изменение команды. Добавлена возможность работы с объектами класса TSTATION, TGATE, TASTEROID и TMISSILE.
6. Работа с объектами.
6.027 <RetVar/IF> get notoriety from race <Var/Race> to race <Var/Race>.
Восстановлена работоспособность.
8. Extended commands
8.001 <RetVar>=get trade ranking
Возвращает торговый рейтинг игрока.
8.002 add trade ranking to player: <Var/Number>
Увеличивает торговый рейтинг игрока на заданное значение (0..1000000).
8.003 <RetVar>=get fight ranking
Возвращает боевой рейтинг игрока.
8.004 add fight ranking to player: <Var/Number>
Увеличивает боевой рейтинг игрока на заданное значение (0..1000000).
8.005 play music track <Var/Number>
Начать (циклическое) воспроизведение музыкального трека с заданным номером. 0 прерывает воспроизведение текущего музыкального трека.
8.006 <Var/Sector> set music track <Var/Number>
Установить для заданного сектора музыкальный трек с заданным номером. Воспроизведение текущего музыкального трека не прерывается. При установке номера музыкального трека в 0, для сектора станавливается музыкальный трек по умолчанию. Определить его номер можно по формуле: МТ = (37*X+103*Y+5) mod 22 + 19, где X и Y - координаты сектора: mod - возвращает остаток от деления.
8.007 set change track to combat music <Var/Number>
Установить признак изменения музыкального трека при приближении врага.
0 - отключить, 1 - включить.
Если воспроизводить музыкальный трек следующей комбинацией команд:
set change track to combat music 0
play music track <Var/Number>
то при уничтожении всех врагов в радиусе 10 км музыкальный трек все равно сменится на трек заданный для текущего сектора.
По этому лучше использовать следующую последовательность команд:
set change track to combat music 0
<Var/Sector> set music track <Var/Number>
play music track <Var/Number>
8.008 <RetVar>=get music track from sector <Var/Sector>
Возвращает номер музыкального трека воспроизводимого для заданного сектора.
8.009 <RefObj> set hull to <Var/Number>
Установить заданное значение корпуса.
8.010 <RefObj> set shield percent to <Var/Number>
Установить величину щита в заданный процент.
8.011 <RetVar> get array from <Var/String>
Получить массив из строки. Значения в строке должны быть разделены запятой (пример: '1,3,4,8,9,20').
8.012 create sector: owner=<Var/Race> x=<Var/Number> y=<Var/Number>
Создать сектор принадлежащий выбранной расе с заданными координатами.
8.013 <Var/Sector> set cutscene to <Var/Number>
Установить для заданного сектора номер cutscene (скайбокс).
8.014 <RefObj> set known by player to <Var/Number>
Установить для объекта (сектор, ворота, станция и т.д.) флаг отображения: для секторов - на галактической карте; для остальных типов объектов - секторальной карте. 0 - не отображать, 1 - отображать.
8.015 set player ship to <Var/Ship>
Переместить игрока в выбранный корабль. Действие команды аналогично
действию Transporter Device. Команда работает для ВСЕХ кораблей в секторе с
игроком.
8.016 dock player ship to <Var/Ship/Station>
Пристыковать корабль игрока к выбранной станции или кораблю. Действие команды аналогично действию Docking Computer. Ограничения по использованию этой команды те же, что при использовании Docking Computer. Например: корабль игрока должен находиться не дальше 5 км. от объекта стыковки.
8.017 set player tracking aim to <RefObj>
Выбрать заданный объект в прицел корабля игрока.
8.018 <RetVar>=<Var/Sector> get sun array from sector
Возвращает массив содержащий все солнца в выбранном секторе.
8.019 <RetVar>=<Var/Sector> get planet array from sector
Возвращает массив содержащий все планеты в выбранном секторе.
8.020 <RetVar>=<Var/Sector> get nebula array from sector
Возвращает массив содержащий все туманности в выбранном секторе.
8.021 <RetVar>=<Var/Sector> get special array from sector
Возвращает массив содержащий все специальные объекты в выбранном секторе.
8.022 <RetVar>=<Var/Sector> get flying ware array from sector
Возвращает массив содержащий все контейнеры с товаром в выбранном секторе.
8.023 <RetVar>=<Var/Warpgate> get destination sector
Возвращает сектор в который ведут выбранные ворота.
8.024 save game to slot: <Var/Number>
Сохраняет игру в выбранный слот. Номер слота может принимать значения от 0 до 20. Использование 20 слота аналогично автосохранению.
8.025 load game from slot: <Var/Number>
Загружает игру из выбранного слота.
8.026 <RetVar>=<Var/Ship/Station> get owned ship array from ship/station
Возвращает массив содержащий все корабли ПРИПИСАННЫЕ к заданному объекту.
8.027 <RetVar>=<Var/Ship> get ware array from ship
Возвращает массив содержащий все товары что есть на заданном корабле.
8.028 <RefObj> set shield to <Var/Number>
Установить заданное значение щита.
8.029 <RefObj> set invincible to <Var/Number>
Установить признак "непобедимости" для заданного объекта.
0 - отключить, 1 - включить.
8.030 write to xml file #<Var/Number> pageid=<Var/Number> textid=<Var/Number> value=<Value>
Создает/перезаписывает текстовый файл-описатель с именем XXYYYY.XML, где XX - идентификатор языка (определяется автоматически, для русского перевода 7),YYYY - номер файла, задается первым параметром команды (может принимать значения от 1 до 9999). В файл, для заданных pageid и textid, записывается значение value.
8.031 send incoming question <Var/String> to player: display it=<Var/Number> callback=<Script Name>
Посылает сообщение-вопрос игроку. Если display it=1, то сообщение сразу же отображается на экране, если 0 - записывается в журнал. При выборе игроком одного из вариантов ответа, вызывается указанный в callback= скрипт в который передается значение ответа.
8.032 quick warp to sector <Var/Sector>
Перемещает корабль игрока в центр заданного сектора без отсчета времени и проигрывания голоса.
8.033 set player ship to <Var/Ship> no animation
Переместить игрока в выбранный корабль без показа анимации. Команда работает для ВСЕХ кораблей в секторе с игроком.
8.034 <RetVar/IF>=<RefObj> fire missile <Var/Ware> on <Value> new
Объекту <RefObj> запустить 1 ракету <Var/Ware> в цель <Value>. Команда работает для ВСЕХ объектов которые находятся в одном секторе с кораблем игрока.
8.035 <retvalue> = <ship> -> jump to sec <sector> <x> <y> <z>
Быстро прыгает СРАЗУ в указанную точку сектора без jumpдров.
8.036 <object> -> set direction vector: <x> <y> <z>
Ориентирует корабль по вектору (x,y,z), устанавливая gamma в 0. Модуль этого вектора не имеет значения. Этот вектор задаёт направления корабля (фактически, alpha и beta).
8.037 <obj1> -> rotate to object <obj2>
Поворачивает obj1 носом к obj2, gamma устанавливает в 0.
8.038 <newnoto> = <race1> -> add notoriety 2: <race2> value <noto>
Добавляет значение <noto> отношения расы <race1> к расе <race2> и возвращает новое значение отношения.
8.039 <race1> -> set notoriety: <race2> value <noto>
Устанавливает значение отношения расы race1 к расе race2 равным noto.
8.040 <race1> set relation to race <race2>: value <value>
Установить отношение <race1> к <race2> как <value>.
8.041 <RetVar> get relation from race <race1> to race <race2>
Получить отношение <race1> к <race2>.
8.042 retvalue=perform operation num, obj: value, par1=value, par2=value
Составная команда выполняющая целый набор операций.
Номер операции:
1: setProdTime obj - фабрика, par1 - время производства.
Устанавливает время производства для фабрики.
Вступает в силу после окончания цикла производства.
2: getProdCount: obj - фабрика. Возвращает кол-во производимого продукта.
3: setProdCount: obj - фабрика, par1 - кол-во производимого продукта.
Устанавливает кол-во производимого продукта для фабрики.
Вступает в силу после окончания цикла производства.
4: createMenu: obj - фабрика, par1 - ID класса.
Создаёт меню для объекта. ID см. в файле дизассемблера после
classdef имя_класса.
5: setPlayerShip obj - корабль. Делает obj кораблём игрока. Тихо, быстро.
6: setMaxTradeJumps: obj - станция, par1 - макс. дальность прыжка при торговле.
Устанавливает макс. дальность прыжка для станции.
7: setDelayFactor: obj - множитель задержки. Устанавливает значение global.gs_DelayFactor.
Влияет на задержку между получениями фокуса станциями.
По умолчанию 1000.
8: dockGetFocusDelay: obj - док. Возвращает задержку между получениями фокуса для дока.
9: facGetFocusDelay: obj - фабрика. Возвращает задержку между получениями фокуса для фабрики.
10: facGetAvgWarePrice: obj - фабрика, par1 - ware maintype(тип товара),
par2 - ware subtype(подтип товара). Возвращает среднюю цену товара фабрики.
11: getDirectionX: obj - объект. Возращает x-координату вектора направления.
12: getDirectionY: obj - объект. Возращает y-координату вектора направления.
13: getDirectionZ: obj - объект. Возращает z-координату вектора направления.
Этот вектор имеет нормирован значением, близким к 10000h
14: mulDiv obj - a, par1 - b, par2 - c. Возвращает a*b/c, обрабатывая возможность
переполнения. Пример: а=b=c=10000000. mulDiv даёт 10000000, a*b/c даёт -17.
15: getProdTime obj - фабрика. Возвращает время производства.
------------------ совмещенный патч Shadie 12d и Darth Revan 1.03-----------
8.043 <RetVar>=<RefObj> get array of missiles aiming to me
Возвращает массив содержащий все ракеты нацеленые на объект <RefObj>. Команда работает с объектами класса TSHIP, TSTATION, TGATE, TASTEROID и TMISSILE.
8.044 <RetVar>=<RefObj> get current max speed
Возвращает текущую максимальную скорость объекта с учетом апгрейдов скорости. Для объекта принадлежащего игроку учитывается повреждения корпуса. Возвращаемое значение в игровых юнитах, для перевода в м/с разделите значение на 222.
8.045 <RetVar>=<RefObj> get current speed
Возвращает текущую скорость объекта. Для объектов находящихся не в секторе с кораблем игрока возвращает максимальную скорость объекта (current max speed). Возвращаемое значение в игровых юнитах, для перевода в м/с разделите значение на 222.
-------------- последние 3 команды патч Shaddie 12d_1 --------------
_________________ Звезды зовут... |
|
|
|
|
|
Канал X2: The Threat: «Добавляем новые команды. Координация.» |
|
|