Полный код, коммент выделен
Код:using System; using maddox.game; using maddox.game.world; using System.Collections.Generic; public class Mission : AMission { // loads my sub-missions public override void OnTickGame() { if (Time.tickCounter() % 72000 == 18000) // 40-10 { GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmGroundv1_0.mis"); GamePlay.gpHUDLogCenter("Protect friendly shipping in the channel near France!"); } if (Time.tickCounter() % 72000 == 71999) // 40-40 { GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmBombersv1_0.mis"); GamePlay.gpHUDLogCenter("Intel: Enemy bombers are heading to blue airfields!"); } if (Time.tickCounter() % 72000 == 45000) // 40-25 { GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmBombersv1_0a.mis"); GamePlay.gpHUDLogCenter("Intel: Enemy bombers are heading to red airfields in France!"); } } // destroys aircraft abandoned by a player public void _DespawnEmptyPlane(AiActor actor) { if (actor == null) { return; } Player[] Players = GamePlay.gpRemotePlayers(); bool PlaneIsEmpty = true; foreach (Player i in Players) { if ((i.Place() as AiAircraft) == (actor as AiAircraft)) { PlaneIsEmpty = false; break; } } if ((PlaneIsEmpty) && (actor as AiAircraft).IsAirborne()) { (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsElevatorDisabled); (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsAileronsDisabled); (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsRudderDisabled); (actor as AiAircraft).hitNamed(part.NamedDamageTypes.Eng0TotalFailure); //for 2mots (actor as AiAircraft).hitNamed(part.NamedDamageTypes.Eng1TotalFailure); //then wait 10min Timeout(600.0, () => { if (actor is AiAircraft) { (actor as AiAircraft).Destroy(); } }); } else if (PlaneIsEmpty) { if (actor is AiAircraft) { (actor as AiAircraft).Destroy(); } }; // круглую скобку здесь студия подчеркнула как недопустимый элемент. в остальных строках кушает. } public override void OnPlaceLeave(Player player, AiActor actor, int placeIndex) { base.OnPlaceLeave(player, actor, placeIndex); _DespawnEmptyPlane(actor); } // destroys crushlanded aircraft in 10 minutes public override void OnAircraftCrashLanded(int missionNumber, string shortName, AiAircraft aircraft) { base.OnAircraftCrashLanded(missionNumber, shortName, aircraft); Timeout(600, () => { aircraft.Destroy(); }); } }
--- Добавлено ---
Сейчас добавлю. Спасибо.
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Спасибо большое!
Полный код:
Код:using System; using maddox.game; using maddox.game.world; using System.Collections.Generic; public class Mission : AMission { // loads my sub-missions public override void OnTickGame() { if (Time.tickCounter() % 72000 == 18000) // 40-10 { GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmGroundv1_0.mis"); GamePlay.gpHUDLogCenter("Protect friendly shipping in the channel near France!"); } if (Time.tickCounter() % 72000 == 71999) // 40-40 { GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmBombersv1_0.mis"); GamePlay.gpHUDLogCenter("Intel: Enemy bombers are heading to blue airfields!"); } if (Time.tickCounter() % 72000 == 45000) // 40-25 { GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmBombersv1_0a.mis"); GamePlay.gpHUDLogCenter("Intel: Enemy bombers are heading to red airfields in France!"); } } // destroys aircraft abandoned by a player public void _DespawnEmptyPlane(AiActor actor) { if (actor == null) { return; } Player[] Players = GamePlay.gpRemotePlayers(); bool PlaneIsEmpty = true; foreach (Player i in Players) { if ((i.Place() as AiAircraft) == (actor as AiAircraft)) { PlaneIsEmpty = false; break; } } if ((PlaneIsEmpty) && (actor as AiAircraft).IsAirborne()) { (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsElevatorDisabled); (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsAileronsDisabled); (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsRudderDisabled); (actor as AiAircraft).hitNamed(part.NamedDamageTypes.Eng0TotalFailure); //for 2mots (actor as AiAircraft).hitNamed(part.NamedDamageTypes.Eng1TotalFailure); //then wait 10min Timeout(600.0, () => { if (actor is AiAircraft) { (actor as AiAircraft).Destroy(); } }); } else if (PlaneIsEmpty) { if (actor is AiAircraft) { (actor as AiAircraft).Destroy(); } }; // круглую скобку здесь студия подчеркнула как недопустимый элемент. в остальных строках кушает. } public override void OnPlaceLeave(Player player, AiActor actor, int placeIndex) { base.OnPlaceLeave(player, actor, placeIndex); _DespawnEmptyPlane(actor); } // destroys crushlanded aircraft in 10 minutes public override void OnAircraftCrashLanded(int missionNumber, string shortName, AiAircraft aircraft) { base.OnAircraftCrashLanded(missionNumber, shortName, aircraft); Timeout(600, () => { if (aircraft != null) { aircraft.Destroy(); } }); } }
--- Добавлено ---
Ага, я снова не успел ))) А у меня неправильно?
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Все верно. Можно и так и так.
ОК, спасибо большое, сейчас тестирую.
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
В архиве только скрипт. Можно загружать на сервер с заменой старого скрипта.
В начале файла (в 7й строке) добавил номер версии // v.1.6.13а
Можно будет скачать файл с сервера после загрузки, чтобы удостовериться, заменился ли файл.
На моем компе работает, на сервере почему-то после крайнего патча были проблемы (
128BoFv1_6 script only.zip
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Немного рекламы.
Для просмотра: ПКМ на скрине => Открыть изображение.
Скрытый текст:
Всем спасибо за помощь!!!
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Поставил скиптик
Реклама хороша.
--- Добавлено ---
Интересная ошибка, вроде как раз в тему разговора
[18:34:30] Server: III/JG77-recke- в кабине III/JG77-recke- разбился.
[18:34:51] CollideEnvXY.collideLine: NONAME drw:1 col:1 #67709 very big step moved actor - IGNORED !!!
и
18:35:37] Server: -atas- в кабине -atas- разбился.
[18:35:39] CollideEnvXY.collideLine: NONAME drw:1 col:1 #67709 very big step moved actor - IGNORED !!!
как я понимаю скрипт пытается убрать обломки
Возможно, я в ангаре рождался. Было раз 7 подряд.
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Не...
CollideEnvXY.collideLine: NONAME drw:1 col:1 #67709 very big step moved actor - IGNORED !!!
появилась после 13 или 13а версии, может выскочить и когда нет никого на сервере и не по одному разу.
У меня такой вопрос. Сколько примерно ботов одномоментно в воздухе сервер в состоянии потянуть? Мне для дела.Если бы кто после еще взялся и филды оформить как положено, было бы вообще кучеряво. Надеюсь держатель сервера после возьмется карту обкатать?
![]()
Перепробовал много десктопного железа, впринципе готовлю небольшое эссе на эту тему, хотя нагрузка немного прыгает от патча к патчу, но в целом загрузка вяленькая... думаю скорее всего упремся "в дно" по памяти, все же лаунчер - это 32х, так что рисуй ботов много и разных.
Как раз по поводу филдов перетераем с -Atas-ом, в общих, пока, чертах.
Обкатаем с удовольствием, на первомайских уикендах подниму еще одну Репку(а может и не одну) а то мы тестами своими распугали всех пилотов.
Поставил 15 лайт
[15:32:48] >missLoad missions\multi\Dogfight\128BoF\128BoF1_6_15lite.mis
[15:32:48] Loading mission ...
[15:32:48] Load landscape...
[15:32:55] Load bridges
[15:32:55] LongBridge: wrong width. (3)
[15:32:56] Load static objects...
[15:32:58] [0] ERROR [AIR] MissionLoad: Distinct point '{0}' in airdrome0
[15:32:58] [0] ERROR [AIR] MissionLoad: Distinct point '{0}' in airdrome0
[15:32:58] [0] ERROR [AIR] MissionLoad: Distinct point '{0}' in airdrome0
[15:32:58] [0] ERROR [AIR] MissionLoad: Distinct point '{0}' in airdrome0
[15:33:00] Mission loaded. time = 11,912
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Зацикливание
System.NullReferenceException
когда лог подошел к полу гигабайт, остановил сервант... он бы все одно упал, может (и даже скорее всего) и не из за карты.
Эта карта не жилец... можешь попробовать не редактировать старую а создать новую, ибо, где там, что не так, уже никто никогда не поймет, да и не зачем это...
Стоит просто "голый" простоит сутки - можно идти дальше, а так... не стоит оно того.
Синдикат откатился на предыдущую бету из-за зависонов. 20 человек летают.
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
О! А вот это интересно... Ща попробуем
--- Добавлено ---
Хм. Интересное наблюдение.
Пытался вернуться с 14305 на 14214.
Снес все - поставил через стим 14101 - вылил сверху 14214 - запуск... ошибка
[20:06:54] =================================================
[20:06:54] :
[20:06:54] System.NotSupportedException: Предпринята попытка загрузить сборку из сетевого ресурса, что в предыдущих версиях .NET Framework могло привести к помещению сборки в "песочницу". Этот выпуск .NET Framework не включает политику CAS по умолчанию, поэтому данная загрузка может быть опасной. Если эта нагрузка не предназначена для изоляции сборки, включите переключатель loadFromRemoteSources. Дополнительные сведения см. на странице http://go.microsoft.com/fwlink/?LinkId=155569.
[20:06:54] в System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
[20:06:54] в System.Reflection.Assembly.LoadFile(String path)
[20:06:54] в wKgXhOaFMthaNNrF3F3.6cQC9JaSeOfoCVANxp0.0w9DA5Ug2YDmaCid8DVc(Object )
[20:06:54] в wKgXhOaFMthaNNrF3F3.6cQC9JaSeOfoCVANxp0.jgiCmZghnX2()
[20:06:54] =================================================
System.Exception у меня вчера было. В багах отрепортил все логи.
Больше ничего не знаю. Сервер виснет?
В списке серверов не вижу (
Sov SVAO и Syndicat работают.
--- Добавлено ---
Сейчас 2 сервера без загруженных карт. / 23.14 мск
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Ну, да...
Поднял я второй сервант, один на стабильной, другой на бете. Логов с ошибками будет теперь в 2е больше
Простояли оба без карт сутки, в железках, коннектах, стимах... я теперь более менее уверен.
Карту прикрутил свою (уж извини, на фтп ее бросил - зацени) никаких скрипов, триггеров и прочей заумной лабуды, простая такая и незатейливая, рабоче-крестьянская балалайка, думаю - то что сейчас надо, что бы не скрипеть мозгом, что там внутри конит, после каждого апдейта.
На юго-западе (слева внизу) 2 филда для "быстро побадаться".
Все крафты доступны, подумал, что если запрещать 2й спит, он так останется убером, а так мож что отрепортят, да разрабы подкрутят чтонидь.
Рисовал в 14101 - ошибка ERROR [AIR] MissionLoad: Distinct point '{0}' in airdrome0 - появляется на обоих серваках при загрузке,
airdrome0 225313.23 228706.85 1 2000 820 0
единственный 0 я тут вижу и, насколько я понимаю - это высота, может тут покавырять?
Что еще? А, взрывы в ангарах - в полный рост, хотя вроде выбирал не самые "благоустроенные" взлетки.
При всём уважении, не зайду если на сервере спиты2а, ну на чём летать против этого убера?
То что он убер изсвестно всем, а тратить нервы на неубиваемость и смотреть как любители лёгкой наживы будут летать на нём не интрессно, звеняйте.
А за сервер и труд отдельное спасибо, ценю что делаешь.
JGr124 "Katze"
≡v≡
Добавил в редакторе к снаряжению всем немецким бортам по паре цинков серебрянных пулек, специально против этого красного дьявола. (хе-хе, шутка)
Убрал 2а - заходи.
--- Добавлено ---
Отставить... походу я выяснил, что это такое. Когда перекрываешь филд на карте сверху еще одним, что бы ангары не попали в зону - вылазит эта фигня.
Крайний раз редактировалось BigREPA; 02.05.2011 в 11:58.
так с каким патчем лучше к вам коннектиться?
airdrome0 - это номер аэродрома по идее. Я его на своей карте в Англии нашел рядом с г. Хайт и удалил.
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.