|
|
|
Канал X2: The Threat: «Фриловские CMP в BOD» |
|
|
CheckerTwo
550 EGP
     Рейтинг канала: 4(96) Репутация: 103 Сообщения: 412 Откуда: Tomsk Зарегистрирован: 18.08.2004
 |
|
AlexYar : |
А вот походу переключение музыки при приближении противника походу можно обойти только динамической картой
|
По поводу CombatMusic:
При обнаружении противника срабатывает NotifyAlert(), которая переключает SectorMusic на CombatMusic. Проверяется диапазон 1001-1005 и по Random запускается трек из этого диапазона. Если нужно - диапазон можно расширить.
Например, нужно расширить 1001-1020, тогда в процедуре
TX_AUDIO.ChangeTrackToCombatMusic
00002A97: ED -> FC // это младший байт 1005 -> 1020
00002ACA: 0E -> 1D // это random(5) -> random(20)
В принципе, если переписать TX_AUDIO.ChangeTrackToSectorMusic, то можно музыку гнать вообще по случайному закону без привязки к сектору.
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32768
Зарегистрирован: 26.10.2003
 |
|
CheckerTwo : |
В принципе, если переписать TX_AUDIO.ChangeTrackToSectorMusic, то можно музыку гнать вообще по случайному закону без привязки к сектору
|
Суть в том - чтобы наоборот убрать нафиг эту случайность и сделать воспроизведение треков строго контролируемым. Т.е. чтобы трек сектора менять можно было в любой момент скриптом или прогой. Как можно сделать нормальное звуковое оформление сингла, если треки все воспроизводятся через пень колоду?
Если бы так было в стандартном сингле Х2 - тебе бы интересно было играть?
|
|
|
Dimaxx
1016 EGP
      Рейтинг канала: 1(5) Репутация: 204 Сообщения: 5811 Откуда: Северодвинск Зарегистрирован: 26.06.2002
 |
|
Боевую музыку ваще нафиг отключить. Убрать обработку NotifyAlert() как класс. Пусть всегда будет секторная музыка.
_________________ "Если мы не покончим с войной, война покончит с нами." Г. Г. Уэллс |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32768
Зарегистрирован: 26.10.2003
 |
|
Dimaxx : |
Боевую музыку ваще нафиг отключить. Убрать обработку NotifyAlert() как класс. Пусть всегда будет секторная музыка.
|
А тогда её не сменить средствами игры. А так можно заменять один трек боевой и его крутить
зыж Прогой занимается кто-нить?
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32768
Зарегистрирован: 26.10.2003
 |
|
Людя добрыя, не дайте помереть идее с обработчиком логов, пжалуйста
|
|
|
Lazy Cat
405 EGP
  Рейтинг канала: 1(4) Репутация: 145 Сообщения: 2148 Откуда: Украина, Тернополь Зарегистрирован: 16.04.2004
 |
|
Сорри, отвлекся на работу
AlexYar : |
Насколько большим? Не более же секунды? Желательно знать диаппазон времени, чтобы цикл проверки поточнее настроить в скриптах.
|
Переименовать/стереть файл относительно недого, скопировать может оказаться дольше, особенно если игра сожрала все ресурсы ... Но это обходится в любом случае если есть способ проверить исполнилась команда или нет Сканирование лога можно поставить например раз в 50-200 милисекунд, бОльшая часть команд будет исполняться за доли секунды, так что в секунду в большинстве случаев можно уложиться.
Насчет дополнения лога - прога может чистить отработанные команды, так что скрипту достаточнно будет просто дописывать нужные.
Есть еще одна потенциальная проблема - если Х2 и прога попробуют одновеременно получить доступ к файлу лога. Если проге достатточно будет подождать один цикл, то Х2 может и не записать строчку в файл если он в это время будет занят программой. Но вроде есть вариант как это обойти ...
ЗЫ. К понедельнику (а скорее всего завтра/послезавтра) будет тестовый вариант программы - надо восстановить работспособность Х2 и потестить ...
ЗЗЫ. Ну вот, бОльшая часть проги готова, думаю завтра (в тяпницу) вечером доделаю и потестю соместно с Х2
_________________ Еж - птица гордая ...
А тут столько летающих eg-й %) |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32768
Зарегистрирован: 26.10.2003
 |
|
Lazy Cat : |
Насчет дополнения лога - прога может чистить отработанные команды, так что скрипту достаточнно будет просто дописывать нужные
|
Lazy Cat : |
Есть еще одна потенциальная проблема - если Х2 и прога попробуют одновеременно получить доступ к файлу лога
|
Поэтому проге не нужно чистить лог. Т.е. доступ на запись в лог должен оставаться только у скрипта, а на запись в 75001 и 445001 только у проги.
Lazy Cat : |
К понедельнику (а скорее всего завтра/послезавтра) будет тестовый вариант программы
|
Ура! А какие функции там будут? Оченно интересуют 1,2 и 4 пункты
Кстати, если тесты пройдут успешно, то на основе этой проги (расширив её) можно забацать целую скриптовую систему с офигенными возможностями!
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32768
Зарегистрирован: 26.10.2003
 |
|
Dimaxx : |
Боевую музыку ваще нафиг отключить. Убрать обработку NotifyAlert() как класс. Пусть всегда будет секторная музыка.
|
Кстати, если Shaddie раскопает и сделает управление треками, то тогда согласен с тобой. А еще лучше - сделать временную "блокировку" этого алерта с помощью скрипта (когда это нужно в миссиях).
|
|
|
Executor
1860 EGP
  Рейтинг канала: 3(29) Репутация: 522 Сообщения: 9024 Откуда: Менск. Беларусь. Зарегистрирован: 09.05.2001
 |
|
хм, а нафига выключать боевые треки? По мне так они как раз нужны, удобно.
_________________ Император Всея Галактики, Прилегающих Туманностей, Комет И Астероидов, А Также Планеты Ракксла, Буде Она Все-Таки Обнаружится :) |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32768
Зарегистрирован: 26.10.2003
 |
|
Executor : |
хм, а нафига выключать боевые треки?
|
Чтобы делать новые синглы и миссии Без нормальной озвучки и муз сопровождения они будут
|
|
|
Lazy Cat
405 EGP
  Рейтинг канала: 1(4) Репутация: 145 Сообщения: 2148 Откуда: Украина, Тернополь Зарегистрирован: 16.04.2004
 |
|
AlexYar : |
Поэтому проге не нужно чистить лог. Т.е. доступ на запись в лог должен оставаться только у скрипта, а на запись в 75001 и 445001 только у проги.
|
А если скрипт захочет записать сразу две-три команды и успеет это сделать ДО того как прога считает те что еще не выполнила? Часть команд тогда пропадет ... Вариант обхода есть, причем он дает возможность запускать целую последовательность команд за один заход, с контролем последовательности их исполнения. Правда это немного усложнит формат строки с командой (добавится еще один параметр) и надо будет писать два одинаковых файла лога, но это легко обходится в скрипте (анализатор с этим уже работает, так что с ним проблем не будет). Хотя если надо будет - это опять же будет несложно переделать
AlexYar : |
А какие функции там будут? Оченно интересуют 1,2 и 4 пункты
|
1-4 + дополнительно команды управления самой прогой (вдруг понадобится ) + возможность относительно легко добавлять новые команды. Насчет имен команд - реализовал выбор команды по имени (например "delete") + дополнительно сколько угодно "синонимов", т.е. можно будет написать либо
rename file1 file2
либо
1 file1 file2
и т.д.
_________________ Еж - птица гордая ...
А тут столько летающих eg-й %) |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32768
Зарегистрирован: 26.10.2003
 |
|
Lazy Cat : |
А если скрипт захочет записать сразу две-три команді и успеет это сделать ДО того как прога считает те что еще не выполнила?
|
Для этого в скрипте надо делать соответствующие задержки и не нагружать шибко прогу
Кстати, возможен даже такой вариант, как игрок поставит обновление мода, скрипт-система отработает своё дело и попросит игрока перезапустить игру, чтобы задействовать новые настройки из папки Types Либо просто попросит сохраниться и перегрузить сохраненку. С такой прогой поистине безграничные возможности открываются
А можно добавить функцию, чтобы при выдаче скриптом "setid pXXXX tYYYY ЦИФРЫБУКВЫ" прога записала в два вышеперечисленных файла (44 и 7) следующее:
<page id="XXXX" title="" descr="">
<t id="YYYY">ЦИФРЫБУКВЫ</t>
</page>
А если такие ID найдены, то переписывала значение "ЦИФРЫБУКВЫ".
Или это сложно и долго уже сделать? Хотя пока и 1-4 хватит за глаза для экспериментов
|
|
|
Lazy Cat
405 EGP
  Рейтинг канала: 1(4) Репутация: 145 Сообщения: 2148 Откуда: Украина, Тернополь Зарегистрирован: 16.04.2004
 |
|
Для экспериментов сделаю что сказал, а там если все заработает как надо, то можно будет уже наращивать. Теоретически можно сделать все что угодно, а практически - только то что не лениво или очень надо
_________________ Еж - птица гордая ...
А тут столько летающих eg-й %) |
|
|
Lazy Cat
405 EGP
  Рейтинг канала: 1(4) Репутация: 145 Сообщения: 2148 Откуда: Украина, Тернополь Зарегистрирован: 16.04.2004
 |
|
Ну вот, пока дело касалось только С++ все работало как и ожидалось, а дошло дело до скриптов - первые грабли, Не получается записать лог или я его не там ищу
Вот код скрипта:
Код: |
Version: 0
for Script Engine Version: 25
Description
Description
Arguments
1: command , String , 'command'
Source Text
001 $counter = get global variable: name='lazycat.logmonitor.counter'
002 inc $counter =
003 $str = '' + $counter + ' ' + $command
004 write to log file #9998 append=[TRUE] value=$str
005 write to log file #9997 append=[TRUE] value=$str
006 write to log file #2 append=[FALSE] value='test 2'
007 write to log file #1 append=[TRUE] value='test string'
008 set global variable: name='lazycat.logmonitor.counter' value=$counter
009 return $counter
|
Пытался его упрощать - оставлял только строчки 6, 7 и 9 - всеравно фиг, ниодин лог не нашел Придется видно все отложить пока не научусь писать логи из Х2 ...
ЗЫ. Х2 v1.4 US with noCD exe.
_________________ Еж - птица гордая ...
А тут столько летающих eg-й %) |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32768
Зарегистрирован: 26.10.2003
 |
|
Lazy Cat : |
всеравно фиг, ниодин лог не нашел
|
А ты где лог ищешь? Он там же, где и Х2.ехе лежит. Называется log9998.txt .
Вот что пишу в скрипте:
002 write to log file #99998 append=[FALSE] value='1 s,001 s,002'
003 write to log file #99998 append=[TRUE] value='testoviytext'
004 return пусто
Вот что выдает в лог:
1 s,001 s,002
testoviytext
Если что - говори, что и куда надо выводить, я напишу скрипт.
Кавычки в скрипте писать не надо, надо просто выбрать - "текст" в низу, он автоматом сам в кавычки возьмется. Иначе ты текстовую переменную не задашь.
|
|
|
Lazy Cat
405 EGP
  Рейтинг канала: 1(4) Репутация: 145 Сообщения: 2148 Откуда: Украина, Тернополь Зарегистрирован: 16.04.2004
 |
|
Уже разобрался, заработало ... Говорят скрипт надо было таки запустить, чтобы он хоть что-то мог записать в лог Сразу видно что давно скриптописанием не занимался
Есть еще вопрос: В качестве возвращаемого значения в скрипт мне нужно передать целое число, чтобы потом сравнить его с другой переменной (тоже целое число, сравнение надо на меньше/больше/равно). Как это лучше сделать, ато я оказывается забыл практически все?
_________________ Еж - птица гордая ...
А тут столько летающих eg-й %) |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32768
Зарегистрирован: 26.10.2003
 |
|
Lazy Cat : |
Говорят скрипт надо было таки запустить, чтобы он хоть что-то мог записать в лог
|
Lazy Cat : |
В качестве возвращаемого значения в скрипт мне нужно передать целое число, чтобы потом сравнить его с другой переменной (тоже целое число, сравнение надо на меньше/больше/равно). Как это лучше сделать
|
Задать в скрипте аргумент и его возвращать. А вызывать этот скрипт из другого с параметром из этого аргумента. Это вернуть.
А передать - так же, только число писать не в аргумент, а первым параметром типа:
"отдай" THIS callscript "скрипт" аргумент "бери".
Или:
"отдай" PLAYERSHIP callscript "скрипт" аргумент "бери".
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32768
Зарегистрирован: 26.10.2003
 |
|
AlexYar : |
"отдай" PLAYERSHIP callscript "скрипт" аргумент "бери".
|
Т.е. "бери" - это ты передаешь скрипту переменную "бери" с её значением в скрипте, из которого вызываешь.
А "отдай" - это то, что будет записано вызываемым скриптом после Return "на" в переменную "отдай".
|
|
|
Lazy Cat
405 EGP
  Рейтинг канала: 1(4) Репутация: 145 Сообщения: 2148 Откуда: Украина, Тернополь Зарегистрирован: 16.04.2004
 |
|
Да нет, я имел ввиду из анализатора логов ... Эта задачка немного посложнее будет ...
_________________ Еж - птица гордая ...
А тут столько летающих eg-й %) |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32768
Зарегистрирован: 26.10.2003
 |
|
Lazy Cat : |
Да нет, я имел ввиду из анализатора логов ... Эта задачка немного посложнее будет ...
|
В смысле, из текстовой переменной в числовую перевести?
|
|
|
|
|
|
Канал X2: The Threat: «Фриловские CMP в BOD» |
|