Интересно! У меня были проблемы с этой миссией, связано с тем, что сначала разрабатывал на двухмоторниках. Но раз дергается на всех миссиях, значит здесь что-то другое.
Начнем:
В папочке DeviceLink_http (той, что в стиме ...\Steam\SteamApps\common\IL-2 Sturmovik Cliffs of Dove) лежит файл index.html - открой его для редактирования блокнотом или чем еще.
Внутри есть код вида:строчка 'Altitude=Get&AH=Get&Velocity=Get&Variometer=Get&Tahometer=Get&Kompass=Get' набор ключ/значение, по принципу прибор=команда&прибор=команда&прибор=команда&прибор=командаКод HTML:<body bgcolor="#000000" onLoad=""> <script language="Javascript"> setInterval("servRequest('Altitude=Get&AH=Get&Velocity=Get&Variometer=Get&Tahometer=Get&Kompass=Get', 80)",80) // здесь устанавливается интервал опроса, 80 - 12 раз в секунду // 40 - 25 раз в секунду, 160 - 6 раз в секунду - чем меньше интервал тем больше нагрузка - увеличьте интервал, если приборы "лагают" </script>
попробуй запустить не все приборы, а по-одному, сократив строчку до одного набора ключ/значение.
Например setInterval("servRequest('AH=Get', 80)",80) - будет только авиагоризонт. И следи за кавычками и апострофами, должныбыть именно так.
Если без дерганья значит прибор работает.
По очереди:
setInterval("servRequest('Altitude=Get', 80)",80)
setInterval("servRequest('AH=Get', 80)",80)
setInterval("servRequest('Velocity=Get', 80)",80)
setInterval("servRequest('Variometer=Get', 80)",80)
setInterval("servRequest('Tahometer=Get', 80)",80)
setInterval("servRequest('Kompass=Get', 80)",80)
в общем перебери эти варианты. Вычислим прибор, будем смотреть дальше.
Кстати, модов нет? Другой браузер не пробовал? И какая версия Хрома?
--- Добавлено ---
Известная проблема. Связана со сжатыми сроками разработки. Дело в том, что объект самолет отдает значения в тех единицах измерения и только тем приборам которые на нем установлены. Это накладывает ограничения на скин панели, она уже не может быть универсальной (проблема футов/метров/миль/километров). Нужно делать несколько - под каждый тип самолета свою, процесс довольно долгий. Цель же тестирования отбкатать принцип взаимодействия, обозначить круг устройств, найти узкие места браузерной технологии. Это на первом этапе. Дальше, конечно это просто так не оставлю. Есть два пути - либо делать универсальную самонастраивающуюся, либо индивидуальную. Но можно и так и так. Скины же можно будет выбирать. Это только вопрос времени.
Крайний раз редактировалось LePage; 03.12.2012 в 00:31.
a` la guerre comme a` la guerre
profile: Core i5-3570K 3.4GHz, ASUS GTX660 2Gb GDDR5, ASUS GT520 Silent 1Gb, LCD 1600x1200x32 IPS, LCD 1600x1200x32 MVA, LCD 800х600 TFT,
RAM DDR3 32GB, OCZ Vertex 4 128 Gb, OCZ Vertex 450 128 Gb, 4xHDD WD 1 Tb FAEX, RAID10, WD 2 Tb FAEX, Win 7 x64, БП FSP 600Вт
lepage.sytes.net:21000
Пришлось обойти вышеперечисленные ограничения (для универсальности) взяв значения не из кабины, т.е. не из раздела Instrumentation, а из раздела Parameters, т.е. где сама игра считает, а не где показывает, так-что эта панель точнее...
Кусочек кода - в комментах все видно
Код HTML:{ case "Altitude": //double i_IAlt = curPlaner.getParameter(part.ParameterTypes.I_Altitude, -1); // не на всех типах работает и тоже футы/метры (будем думать) double i_IAlt = curPlaner.getParameter(part.ParameterTypes.Z_AltitudeMSL, -1); Indicators["Altitude"] = i_IAlt; break; case "Velocity": //double i_IAS = curPlaner.getParameter(part.ParameterTypes.I_VelocityIAS, -1); // выдает в завистмости от типа километры/мили (будем думать) double i_IAS = curPlaner.getParameter(part.ParameterTypes.Z_VelocityIAS, 0)*3.2; Indicators["Velocity"] = i_IAS; break; case "AH": double i_Roll = curPlaner.getParameter(part.ParameterTypes.Z_Orientation, 2); //на самолетах имеющих АГ часто врет и не все имеют АГ double i_Pitch = curPlaner.getParameter(part.ParameterTypes.Z_Orientation, 1); Indicators["AH"] = i_Roll.ToString() + "_" + i_Pitch.ToString(); break; case "Tahometer": double i_RPM = curPlaner.getParameter(part.ParameterTypes.I_EngineRPM, 0); // только для первого двигателя (пока) Indicators["Tahometer"] = i_RPM; break; case "Variometer": //double i_Climb = curPlaner.getParameter(part.ParameterTypes.I_Variometer,-1); // тоже от типа зависит футы/метры double i_Climb = curPlaner.getParameter(part.ParameterTypes.Z_VelocityTAS, 2); Indicators["Variometer"] = i_Climb; break; case "Kompass": double i_kurs_accept = curPlaner.getParameter(part.ParameterTypes.I_Peilzeiger,-1); //double i_kurs_real = curPlaner.getParameter(part.ParameterTypes.I_MagneticCompass, -1); double i_kurs_real = curPlaner.getParameter(part.ParameterTypes.Z_Orientation, 0); // Компасы тож разные бывают i_kurs_real = -1 * i_kurs_real +90 ; Indicators["Kompass"] = i_kurs_accept.ToString() + "_" + i_kurs_real.ToString(); break; default: break;
a` la guerre comme a` la guerre
profile: Core i5-3570K 3.4GHz, ASUS GTX660 2Gb GDDR5, ASUS GT520 Silent 1Gb, LCD 1600x1200x32 IPS, LCD 1600x1200x32 MVA, LCD 800х600 TFT,
RAM DDR3 32GB, OCZ Vertex 4 128 Gb, OCZ Vertex 450 128 Gb, 4xHDD WD 1 Tb FAEX, RAID10, WD 2 Tb FAEX, Win 7 x64, БП FSP 600Вт
lepage.sytes.net:21000