martefi Опубликовано 19 августа, 2012 Опубликовано 19 августа, 2012 Народ! Мне очень-очень сильно нужна помощь со скриптами. Я буду просто ОЧЕНЬ сильно признателен, если кто-нибудь, кто поинмает скрипты и С+ мне объяснит некоторые вещи. При этом не обязательно иметь БоБ. Я понимаю, как записать команду - там открываются всякие скобочки, { } пишутся всякие замечания, типа public class Mission : AMission и т.п. Дальше пишется условие, например public override void OnTickGame() или OnPlaceLeave(Player player, AiActor actor, int placeIndex) Дальше - что надо сделать, например: { GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/СубМиссия.mis");} Но я совершенно не понимаю, где можно взять список всех возможных событий и действий, и какой где синтаксис. Можно было бы скопипастить с имеющихся скриптов, но они порой очень сложные и длинные - я умру там выискивать нужные события и догадываться, как они обозначены, и что каждый значок означает. На данный момент мне нужно написать 2 очень простых вещи: 1. On - достижение группой последнего вейпоинта - группу убрать нафиг. (Или можно взамен этого заставить группу повторять одни и тот же маршрут много раз)2. On - вход вражеского самолета в такую-то зону (близость меньше чем Х) км - сделать { GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/Запустить миссию "Перехват".mis");} Буду очень-очень признателен. Желательно поскорее, и через скайп, чтобы не писать много букафф.. И у меня свобода только до среды! В среду обратно на галеры!
Crus Опубликовано 19 августа, 2012 Опубликовано 19 августа, 2012 1. Не С+, а С# (си-шарп). Разница существенная.2. Ищи документацию. С уважением, Crusader(Макс) Б/Н 27."У прямолинейно и равномерно летящего самолета суммы всех сил и моментов равна нулю." (с) физика
martefi Опубликовано 19 августа, 2012 Автор Опубликовано 19 августа, 2012 1. Не С+, а С# (си-шарп). Разница существенная.2. Ищи документацию. Большое спасибо, Крус, но ссылка на гугл это не совсем то, на что я рассчитывал.
Crus Опубликовано 19 августа, 2012 Опубликовано 19 августа, 2012 1. Не С+, а С# (си-шарп). Разница существенная.2. Ищи документацию. Большое спасибо, Крус, но ссылка на гугл это не совсем то, на что я рассчитывал.Ты ж картодел (я редактор открывал только 1 раз). Могу псевдокод написать, это не сложно. Но найти в документации управляющие команды должен ты сам. С уважением, Crusader(Макс) Б/Н 27."У прямолинейно и равномерно летящего самолета суммы всех сил и моментов равна нулю." (с) физика
Alex_nn Опубликовано 19 августа, 2012 Опубликовано 19 августа, 2012 Не, ну ему даже в поисковике в падлу запрос забить!!! Это пойдет? http://simple-cs.ru/ Программирование на Си-шарп с нуля. 1. "Военное дело просто и вполне доступно здравому уму человека. Но воевать сложно". Карл фон Клаузевиц 2. НЕНАВИЖУ ФОКИ!!!
Crus Опубликовано 19 августа, 2012 Опубликовано 19 августа, 2012 Мартефи, в первой же ссылке из гугла (куда я тебя отправлял):http://www.sukhoi.ru/forum/showthread.php?t=68369 С уважением, Crusader(Макс) Б/Н 27."У прямолинейно и равномерно летящего самолета суммы всех сил и моментов равна нулю." (с) физика
Crus Опубликовано 19 августа, 2012 Опубликовано 19 августа, 2012 Очевидно, чтобы писать скрипты, необходимо знать синтаксис Си-шарп.С английским у тебя порядок. Вот бесплатное обучение Си-шарп (с нуля): http://thenewboston....list.php?cat=15 С уважением, Crusader(Макс) Б/Н 27."У прямолинейно и равномерно летящего самолета суммы всех сил и моментов равна нулю." (с) физика
martefi Опубликовано 19 августа, 2012 Автор Опубликовано 19 августа, 2012 В мои ближайшие планы не входит изучение языка программирования Си. Я знаю, что на Сухом есть тема, где много скриптов. Их изучение мне так же не хотелось бы включать в мои ближайшие планы. Мне нужно 3-4 скрипта для построения миссий. И мне нужна ПОМОЩЬ от человека, который в этом понимает больше меня. Например, от Круза, или кого-то вроде. Иначе я не смогу сделать карту для ОВ. Меня просто не хватит. Нужно, к примеру, написать пару вещей - см. головной пост. Если кто-то может помочь и разделить со мной в какой-то мере бремя создания миссий - я буду очень признателен. Если не может, я не думаю что у меня появяться лишние силы и время, если мне дадут ссылку на гугл или на учебник Си шарп, или на раздел со скриптами на сайте Сухого.
martefi Опубликовано 20 августа, 2012 Автор Опубликовано 20 августа, 2012 Вот по этой ссылке находится хулиганский скрипт, который после взлета вырубает элероны-руль высоты и направления.http://www.sukhoi.ru...l=1#post1592454У меня есть вот такой скрипт - using System;using maddox.game;using maddox.game.world;using System.Collections.Generic; public class Mission : AMission{ public override void OnPlaceLeave(Player player, AiActor actor, int placeIndex) { base.OnPlaceLeave(player, actor, placeIndex); Timeout(1, () => { AiAircraft CurAircraft = player.Place() as AiAircraft; AiAircraft PrevAircraft = actor as AiAircraft; if (CurAircraft != PrevAircraft) { (actor as AiAircraft).Destroy(); } }); } }Он убивает самолет через секунду после того, как из него вышел игрок.Задача: объединить одно с другим, чтобы покинутый самолет не исчезал из прицела, а терял управление. Это будет интересней. Я думаю, для знатоков программирования это на 3-4 мин. работы, а мне полдня разбираться, потом еще не факт, что будет работать. Примените свои знания на пользу обществу!
Arrow Опубликовано 20 августа, 2012 Опубликовано 20 августа, 2012 Принимаю ставки.Вопрос: "Как вы считаете, как скоро Мартефи предложит написать свой авиасимулятор?":-D Встречный ветер - это не только сопротивление, но и подъемная сила..." (С) Kalter - 72АГ --- Общение в Газете:
martefi Опубликовано 20 августа, 2012 Автор Опубликовано 20 августа, 2012 Принимаю ставки.Вопрос: "Как вы считаете, как скоро Мартефи предложит написать свой авиасимулятор?":-D Вот, Arrow, вот к чему эти неуместные шуточки? Что, карта тренировочная, свой сервер, ОВ - это никому, кроме меня не надо? Или тебя не беспокоит то, что твой противник вышел, едва у него пробой маслопровода, а ты либо с ботом крутись, либо зри, яко в прецеле цель твоя пропадает? Два скрипта скомпоновать, просто тупо скопипастить, переписать условия и переменные, да скобки посчитать?! Трудно? Причем, если у тебя есть компернатор, то он тебе сам скобки посчитает. Вот уйду я от вас к Веточке с Бубликом - будете знать!
Crus Опубликовано 20 августа, 2012 Опубликовано 20 августа, 2012 Компилятор, Эли, компилятор.*сползает под стол* С уважением, Crusader(Макс) Б/Н 27."У прямолинейно и равномерно летящего самолета суммы всех сил и моментов равна нулю." (с) физика
Crus Опубликовано 20 августа, 2012 Опубликовано 20 августа, 2012 Если, как выражается Эли, я правильно сосчитал скобочки, это должно выглядеть так: using System; using maddox.game; using maddox.game.world; using System.Collections.Generic; public class Mission : AMission { public override void OnPlaceLeave(Player player, AiActor actor, int placeIndex) { base.OnPlaceLeave(player, actor, placeIndex); Timeout(1, () => { AiAircraft CurAircraft = player.Place() as AiAircraft; AiAircraft PrevAircraft = actor as AiAircraft; if (CurAircraft != PrevAircraft) { (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsElevatorDisabled); // ...вырубаем рули высоты... (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsAileronsDisabled); // ... элероны ... (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsRudderDisabled); // ... руль направления. // Приятного полета! } }); } } Скрипты к бобу писать не умею, поэтому никаких гарантий не даю, сам не уверен в работоспособности.Но чем чёрт не шутит, вдруг заработает. С уважением, Crusader(Макс) Б/Н 27."У прямолинейно и равномерно летящего самолета суммы всех сил и моментов равна нулю." (с) физика
martefi Опубликовано 20 августа, 2012 Автор Опубликовано 20 августа, 2012 Если, как выражается Эли, я правильно сосчитал скобочки, это должно выглядеть так: using System; using maddox.game; using maddox.game.world; using System.Collections.Generic; public class Mission : AMission { public override void OnPlaceLeave(Player player, AiActor actor, int placeIndex) { base.OnPlaceLeave(player, actor, placeIndex); Timeout(1, () => { AiAircraft CurAircraft = player.Place() as AiAircraft; AiAircraft PrevAircraft = actor as AiAircraft; if (CurAircraft != PrevAircraft) { (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsElevatorDisabled); // ...вырубаем рули высоты... (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsAileronsDisabled); // ... элероны ... (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsRudderDisabled); // ... руль направления. // Приятного полета! } }); } } Скрипты к бобу писать не умею, поэтому никаких гарантий не даю, сам не уверен в работоспособности.Но чем чёрт не шутит, вдруг заработает. Ура! Крус! Огромнейшее спасибо тебе! Не заработать не может, т.к. и то и другое - работающий скрипт к БоБу, их нужно просто ском - ты, кстати, уверен насчет компилятора? Я думал, он компернатор называется, потомучто периоды ском - что-то там... компарирует периоды... т.е. сравнивает... эти самые скобочки...Вообщем - убежал тестировать...
Crus Опубликовано 20 августа, 2012 Опубликовано 20 августа, 2012 (изменено) Эли, если бы ты хоть немного понимал ООП. alsoКомпилятор и никак иначе. От глагола to compile (составлять/собирать) Доложи, как затестишь, интересно ж знать, сработало ли Изменено 20 августа, 2012 пользователем Crus С уважением, Crusader(Макс) Б/Н 27."У прямолинейно и равномерно летящего самолета суммы всех сил и моментов равна нулю." (с) физика
martefi Опубликовано 20 августа, 2012 Автор Опубликовано 20 августа, 2012 Эли, если бы ты хоть немного понимал ООП. ООП - это я очень хорошо понимаю. ООП - это Организация Освобождения Палестины. Не говори при мне таких слов. alsoКомпилятор и никак иначе. От глагола to compile (составлять/собирать) Ну... тебе конечно виднее... Хотя, почему не от глагола to compare (сопостовлять, сравнивать)?
Crus Опубликовано 20 августа, 2012 Опубликовано 20 августа, 2012 Эли, если бы ты хоть немного понимал ООП. ООП - это я очень хорошо понимаю. ООП - это Организация Освобождения Палестины. Не говори при мне таких слов. alsoКомпилятор и никак иначе. От глагола to compile (составлять/собирать) Ну... тебе конечно виднее... Хотя, почему не от глагола to compare (сопостовлять, сравнивать)?1. Объектно-Ориентированное Программирование.2. Ну допустим. С чем тогда сравнивать код программы ? С уважением, Crusader(Макс) Б/Н 27."У прямолинейно и равномерно летящего самолета суммы всех сил и моментов равна нулю." (с) физика
martefi Опубликовано 20 августа, 2012 Автор Опубликовано 20 августа, 2012 Ура! Все работает! Только это не очень хорошей идеей оказалось - бот на одном движке минут 5 летал, тягой играл. Но рули не шолохнулись! Где-то на сухом был полный список повреждений... Надо там найти - "вырубить двигло", тогда он падать буедт. Но это я уже сам ском... скомпилирую. С чем сравнивать код программы... Да хрен его знает, Крус. Я же говорю - тебе виднее... Буду знать, что он компилятор.
Crus Опубликовано 20 августа, 2012 Опубликовано 20 августа, 2012 using System; using maddox.game; using maddox.game.world; using System.Collections.Generic; public class Mission : AMission { public override void OnPlaceLeave(Player player, AiActor actor, int placeIndex) { base.OnPlaceLeave(player, actor, placeIndex); Timeout(1, () => { AiAircraft CurAircraft = player.Place() as AiAircraft; AiAircraft PrevAircraft = actor as AiAircraft; if (CurAircraft != PrevAircraft) { (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.ControlsThrottleDisabled); // тяга // Приятного полета! } }); } } Попробуй так, может тяга теперь тоже отключится. С уважением, Crusader(Макс) Б/Н 27."У прямолинейно и равномерно летящего самолета суммы всех сил и моментов равна нулю." (с) физика
martefi Опубликовано 20 августа, 2012 Автор Опубликовано 20 августа, 2012 (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsThrottleDisabled); // тяга // Приятного полета!}[/code]Попробуй так, может тяга теперь тоже отключится. Кажется, не получается... Я тягу в ноль поставил, так он гад ее увеличил. Причем не немедленно, я вижу, там секунда должна пройти, так он позже тягу менял. Я в штопор повалил самолет перед выходом, так он успел дать рули на вывод, так у него их и заклинило. А тягу - нет...
Baltica Опубликовано 21 августа, 2012 Опубликовано 21 августа, 2012 (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsThrottleDisabled); // тяга // Приятного полета!}[/code]Попробуй так, может тяга теперь тоже отключится. Кажется, не получается... Я тягу в ноль поставил, так он гад ее увеличил. Причем не немедленно, я вижу, там секунда должна пройти, так он позже тягу менял. Я в штопор повалил самолет перед выходом, так он успел дать рули на вывод, так у него их и заклинило. А тягу - нет...Эх, Эли.Конечно, я не программер. Но по моему скромному опыту любительского занятия этим делом получается, что обычно написать-то не сложно, а вот отладить и выловить все баги.....Так что, если для построения миссий нужно знание языка программирования, то лучше тебе все-таки заняться изучением этого языка.Поверь - так дешевле будет.
Crus Опубликовано 21 августа, 2012 Опубликовано 21 августа, 2012 Эли, как я с самого начала и писал, нужна документация. Наугад писать программы невозможно (что я попытался сделать для примера).Откуда то другие писатели скриптов узнали, что есть класс AiAircraft, в котором определён метод hitNamed(...), а объект part отвечает за идентификацию частей самолётов.Либо ты находишь документацию (хоть какое-то описание структуры классов), либо моя помощь на этом заканчивается. С уважением, Crusader(Макс) Б/Н 27."У прямолинейно и равномерно летящего самолета суммы всех сил и моментов равна нулю." (с) физика
Arrow Опубликовано 21 августа, 2012 Опубликовано 21 августа, 2012 Тут курили?http://wiki.sukhoi.ru/index.php?title=Категория:Ил-2_Штурмовик:_Битва_за_Британию._Скрипты Встречный ветер - это не только сопротивление, но и подъемная сила..." (С) Kalter - 72АГ --- Общение в Газете:
terror Опубликовано 21 августа, 2012 Опубликовано 21 августа, 2012 Такой скрипт, в текущей реализации, имеет один значительный минус, ситуация: я выезжал из ангара, неудачно выехал, поломал законцовку крыла. Вышел из самолёта -- у него заклинили рули и тяга двигла, ну и чем мне это поможет, когда я второй раз буду выезжать из ангара? Или тоже самое при вынужденной, из самолёта вышел, а он так лежать и остался. Надо добавить проверку на высоту над уровнем земли. Если высота 0 -- сразу убирать, ну, или с 5 секундной задержкой, чтобы взорваться успел.. С уважением, terror
Crus Опубликовано 21 августа, 2012 Опубликовано 21 августа, 2012 Тут курили?http://wiki.sukhoi.r...итанию._СкриптыМне хотелось, чтобы это нашёл мартефи. С уважением, Crusader(Макс) Б/Н 27."У прямолинейно и равномерно летящего самолета суммы всех сил и моментов равна нулю." (с) физика
Crus Опубликовано 21 августа, 2012 Опубликовано 21 августа, 2012 (изменено) Эли, вот так двигатель выключится тоже. using System; using maddox.game; using maddox.game.world; using System.Collections.Generic; public class Mission : AMission { private void destroyPlane(AiAircraft aircraft) { if (aircraft != null && isAiControlledPlane(aircraft)) aircraft.Destroy(); } public override void OnPlaceLeave(Player player, AiActor actor, int placeIndex) { base.OnPlaceLeave(player, actor, placeIndex); Timeout(1, () => { AiAircraft CurAircraft = player.Place() as AiAircraft; AiAircraft PrevAircraft = actor as AiAircraft; if (CurAircraft != PrevAircraft) { (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.FuelPumpFailure); // ...двигатель... // Приятного полета! AiAircraft tmp = (actor as AiAircraft); Timeout(300, () => { destroyPlane(tmp); } ); } }); } } Сейчас поищу удаление не взлетевшего самолёта. updСделал автоматическое удаление самолёта через 300 секунд Изменено 21 августа, 2012 пользователем Crus С уважением, Crusader(Макс) Б/Н 27."У прямолинейно и равномерно летящего самолета суммы всех сил и моментов равна нулю." (с) физика
truten Опубликовано 21 августа, 2012 Опубликовано 21 августа, 2012 Мартефи, я ж тебе говорил, что такой скрипт не нужен! Зачем народ баламутишь! Самый лучший вариант, как на репке - покинуть самолет (альт+Ф2) можно только на земле или выпрыгнув с парашютом. При попытке выскочить в воздухе в чате надпись "Пилот .... пытался сбежать.." (или что-то вроде пообиднее) После покидания самолета он СРАЗУ исчезает. Так и сервак не грузится и объекты лишние не плодятся. Зачем мудрить, все уже придумали и обкатали... Не беги от снайпера, умрешь уставшим. —- Сильный видит возможность в каждой опасности, слабый - опасность в каждой возможности (китайская поговорка). --- Не имеет значения насколько медленно ты идешь, до тех пор пока ты не остановился (Конфуций).
martefi Опубликовано 21 августа, 2012 Автор Опубликовано 21 августа, 2012 Так, народ, срочно прекращаем ко мне попусту придираться, а то у запасы моего энтузиазма тают на глазах. Трутень, тебе такой скрипт не нужен, а мне вот очень нужен. Народ не только дуэлью занимается. А чтобы сервак не перегружался, есть другой скрипт, называется "уборщица". Задача заключается в том, чтобы получить то, что нам надо, затратив МИНИМУМ времени и сил. С Б-жьей (и Круса) помощью у меня это получиться, если всякий раз под руку толкать не будут. То, что сделал Крус, это очень мне помогло. А ошибки неизбежны. Мне кажется, я нашел ошибочку, (прада, не проверял ыщо. Там надо было написать так: part.NamedDamageTypes.Eng0TotalFailure) которая, естественным образом возникла из-за недостатка документации (кто-бы сомневался, что она нужна! А то "тут курили, там курили"! Да курили! Уже все легкие в смоле!) Рекламировать табачные изделия - все мастера! Гугл рулит везде, и у меня тоже. Только все это надо читать, вникать и т.п. Знаете анекдот про то, как выучить английский язык? Сперва надо выучить наизусть вебстеровский словарь, потом справочник по грамматике королевской академии, и т.д., далее по тексту. А у нас с вами завтра купец из Англицкого королевства приезжает, панталонами торговать! Вот с ним надо обЪясниться про цену, оптовую скидку, и бартер на соболя. А не обЪяснитесь, бояре, будут завтра ваши боярыни да боярышни без панталон. То-то они вам спасибо скажут! Вот будете им обЪяснять, что вы как положено "курили"! Поэтому срочно - цветы и апплодисменты - мне, респект и уважуха Крусу, а вместо рекламы табачных изделий предлагаю принести всем готовую строчку скрипта. Желательно, проверенную.
martefi Опубликовано 21 августа, 2012 Автор Опубликовано 21 августа, 2012 Кстати, Крус, я проверил, но у меня не работает. Т.е. ВООБЩЕ НИЧЕГО не работает, даже рули направления, которые раньше клинило, бот ими бодренько так шевелит. Я подозреваю, что я что-то не туда закомпилировал... или как там это слово правильно... В общем, не будет ли так любезен многоуважаемый Джин, ... Нарисуй мне скриптик, плиз. с правильным скобочками, а, Крус? Кстати, других это тоже касается, ведь Не один же единственный КрусТут умеет Си Шарп и Си плюс? Отчего ж здесь никтоНе рисует скриптов, И не дует ни в нос и не в ус?
martefi Опубликовано 21 августа, 2012 Автор Опубликовано 21 августа, 2012 Кстати, Крус, я проверил, но у меня не работает. Т.е. ВООБЩЕ НИЧЕГО не работает, даже рули направления, которые раньше клинило, бот ими бодренько так шевелит. Я подозреваю, что я что-то не туда закомпилировал... или как там это слово правильно... В общем, не будет ли так любезен многоуважаемый Джин, ... Нарисуй мне скриптик, плиз. с правильным скобочками, а, Крус? Кстати, других это тоже касается, ведь Не один же единственный КрусТут умеет Си Шарп и Си плюс?Отчего ж здесь никтоНе рисует скриптов,И не дует ни в нос и не в ус? UPD - ой, Крус, прости, не заметил, что ты уже все нарисовал... Убежал проверять.
martefi Опубликовано 21 августа, 2012 Автор Опубликовано 21 августа, 2012 Либо ты находишь документацию (хоть какое-то описание структуры классов), либо моя помощь на этом заканчивается. Крус, ну помилосердствуй! Я даже не знаю, на что эта документация похожа, и как ее искать! И почему это все классами называется, и откуда берется. Я сам все это читаю как обычный английский, благодаря этому понимаю.
Crus Опубликовано 21 августа, 2012 Опубликовано 21 августа, 2012 Тебе повторить ссылку на обучение Си-Шарп или сам найдёшь ? С уважением, Crusader(Макс) Б/Н 27."У прямолинейно и равномерно летящего самолета суммы всех сил и моментов равна нулю." (с) физика
martefi Опубликовано 21 августа, 2012 Автор Опубликовано 21 августа, 2012 Тебе повторить ссылку на обучение Си-Шарп или сам найдёшь ? Ну вот, на колу мочало, начинай сначала... Крус, я не буду сейчас изучать Си Шарп. Если поможешь - спасибо скажу. А если нет, что ж, придется опять справляться как-нибудь,... собственными силами.
martefi Опубликовано 21 августа, 2012 Автор Опубликовано 21 августа, 2012 Да. Скобочку последнюю забыл. Когда копировал, она, последняя, не скопировалась.
martefi Опубликовано 21 августа, 2012 Автор Опубликовано 21 августа, 2012 Нашел еще две фигни 1. part.NamedDamageTypes.FuelTank0Exploded 2. part.NamedDamageTypes.FuelTank0Fire Думаю, Трутень-сан будет доволен.
martefi Опубликовано 22 августа, 2012 Автор Опубликовано 22 августа, 2012 Оба работают. Опять чуть до слез меня не довели - на этот раз точку с запятой забыл. Все-таки, Крус, ты нехороший человек.
Рекомендуемые сообщения