AviaSkins.Forums

Вернуться   AviaSkins.Forums > Основные разделы > Вопросы Новичка8

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.08.2009, 17:46   #1
Novichok8
Местный
 
Регистрация: 24.12.2007
Адрес: Россия(СССР)
Сообщений: 987
Отправить сообщение для Novichok8 с помощью ICQ Отправить сообщение для Novichok8 с помощью Skype™
По умолчанию сброс бомб по ведущему

народ как можно сделать чтобы аи бросало бомбы по ведущему?
там есть команда сбрость баки может как то можно в нее вписать код чтобы он не только танки сбрасывал но и бомбы?
ВОТ КОД:
/* OrderDrop_Tanks - Decompiled by JODE
* Visit http://jode.sourceforge.net/
*/
package com.maddox.il2.game.order;
import com.maddox.il2.ai.air.Pilot;
import com.maddox.il2.engine.Actor;
import com.maddox.il2.objects.air.Aircraft;
import com.maddox.il2.objects.sounds.Voice;

class OrderDrop_Tanks extends Order
{
public OrderDrop_Tanks() {
super("Drop_Tanks");
}

public void run() {
Voice.setSyncMode(1);
for (int i = 0; i < CommandSet().length; i++) {
Aircraft aircraft = CommandSet()[i];
if (Actor.isAlive(aircraft)
&& (Object) aircraft.FM instanceof Pilot) {
if (((Pilot) (Object) aircraft.FM).CT.dropFuelTanks()) {

if (isEnableVoice() && aircraft != Player()
&& (aircraft.getWing() == Player().getWing()
|| aircraft.aircIndex() == 0))

Voice.speakDropTanks(aircraft);
} else if (isEnableVoice() && aircraft != Player()
&& (aircraft.getWing() == Player().getWing()
|| aircraft.aircIndex() == 0))
Voice.speakUnable(aircraft);
}
}









Voice.setSyncMode(0);
}
}
Novichok8 вне форума   Ответить с цитированием
Старый 10.08.2009, 17:48   #2
Novichok8
Местный
 
Регистрация: 24.12.2007
Адрес: Россия(СССР)
Сообщений: 987
Отправить сообщение для Novichok8 с помощью ICQ Отправить сообщение для Novichok8 с помощью Skype™
По умолчанию

if (((Pilot) (Object) aircraft.FM).CT.dropFuelTanks())
вот эта строчка самая главная.
надо как то сюда записать код сброса бомб.
ВОТ КОД БОМБЕЖКИ.
if (!bombsOut) {
bombsOut = true;
if (CT.Weapons[3] != null && CT.Weapons[3][0] != null
&& CT.Weapons[3][0].countBullets() != 0
&& !(CT.Weapons[3][0] instanceof BombGunPara))
Voice.speakAttackByBombs((Aircraft) this.actor);
}
Novichok8 вне форума   Ответить с цитированием
Старый 11.08.2009, 08:32   #3
skvorez
Гость
 
Сообщений: n/a
По умолчанию

Мыслишь верно, а вот что интересно если ведущего замочить, остальные будут бонбы кидать? И еще: можно ли сделать так, что бы при уничтожении ведущего, вся группа разбегалась, а не лезла упрямо к цели? И увязать все это с уровнем мастерства. Боты-бонберы асы, например: прут во что бы то ни стало замочить поставленную им цель, а курсанты при уничтожении ведущего все разбегаются и либо швыряют бонбы куда попало, либо с ними и улепетывают.

Было бы клево.

Последний раз редактировалось skvorez; 12.08.2009 в 11:28.
  Ответить с цитированием
Старый 11.08.2009, 17:06   #4
Novichok8
Местный
 
Регистрация: 24.12.2007
Адрес: Россия(СССР)
Сообщений: 987
Отправить сообщение для Novichok8 с помощью ICQ Отправить сообщение для Novichok8 с помощью Skype™
По умолчанию

может и можно но я в яве не силен. а было бы здорово.
я могу сделать чтобы штурмовики оборонялись лучше и крутились с истребителями.
Novichok8 вне форума   Ответить с цитированием
Старый 12.08.2009, 11:26   #5
skvorez
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Novichok8 Посмотреть сообщение
может и можно но я в яве не силен. а было бы здорово.
я могу сделать чтобы штурмовики оборонялись лучше и крутились с истребителями.
В смысле? Что бы стрелки шмаляли точнее? Или что? Не вкурил, поясни.

Вот если бы штурмов и бонберов заставить при атаке истребителей вставать в оборонительный круг. Вот это было бы, в самом деле круто.
Но это ведь насколько я понимаю, разные там триггеры, интелекты и т.п.
А кстати, это, можешь сделать?
  Ответить с цитированием
Старый 12.08.2009, 14:24   #6
Novichok8
Местный
 
Регистрация: 24.12.2007
Адрес: Россия(СССР)
Сообщений: 987
Отправить сообщение для Novichok8 с помощью ICQ Отправить сообщение для Novichok8 с помощью Skype™
По умолчанию

схему оруга этого надо я не знаю что он из себя представляет.
я могу сделать чтобы штурмовики атакавали истребители так же как истребитель истребителя почти.
Novichok8 вне форума   Ответить с цитированием
Старый 12.08.2009, 15:00   #7
skvorez
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Novichok8; схему оруга этого надо я не знаю что он из себя представляет.
Вот сопсно:
Цитата:
«УТВЕРЖДАЮ»
Командующий 3-й воздушной армией
генерал-майор авиации ГРОМОВ
19 октября 1942 г.
.
ИНСТРУКЦИЯ
ПО ВЕДЕНИЮ ОБОРОНИТЕЛЬНОГО ВОЗДУШНОГО БОЯ
НА САМОЛЕТЕ Ил-2


3. При атаке истребителей противника над своей территорией группа штурмовиков должна встать в вираж и вести воздушный бой. С этой целью ведущий по радио дает команды «Вираж влево» и «Вираж вправо». Разворот необходимо производить в сторону противника, ведя одновременно огонь. Внутренние пары делают разворот, становясь в хвост друг другу. Внешняя пара (ведомая) делает разворот и идет в паре, пока не замкнется общий круг. Дистанция между самолетами должна быть 150-200 м, высота не ниже 300 м, крены при развороте допускаются от 15 до 40°.
Каждый из экипажей, находясь в кругу, несет полную ответственность за защиту впереди идущего самолета и не имеет права оставлять своего места.
В целях отражения атак экипажи имеют право и обязаны маневрировать по горизонту разворотами влево и вправо до 45°, а по вертикали кабрированием и планированием под углом до 30°.
В тех случаях, когда штурмовики прикрываются истребителями, они обязаны оборонительный круг строить ниже истребителей на 400-500 м, образуя нижний ярус. Это создает условия для хорошего взаимодействия между истребителями прикрытия и штурмовиками.
Здесь полный текст:
http://www.airpages.ru/dc/doc02.shtml

вот еще:
РАЗРУШЕНИЕ ОБОРОНИТЕЛЬНОГО СТРОЯ БОМБАРДИРОВЩИКОВ.
http://www.uic.nnov.ru/~teog/oboron.htm

И еще:
http://www.allaces.ru/p/episode.php?id=486

Вообще то, это называется "испанский круг", типа наши придумали, в Испании.

вот еще чутка рассуждений на эту тему:
http://forums.games.1c.ru/?type=flat...mode=1#1505579

Интересно можно ли это на практике реализовать?
И совсем было бы клево, если такую схему построения можно было бы включить в меню управления тактическими построениями групп самолетов. По примеру комманд: перестроится в правый (левый) пеленг, перестроиться в клин и т.д.
Дал допустим, команду группе Илов или пешек которую ведешь и мочи мессеров-фокеров.

И уж совсем размечтался: парой подходишь к группе лаптей, они сразу же стали в круг. Ведущего завалил, все (новички) сразу бонбы покидали, и круг рассыпался. Если прикрышки нет.
Зх... почти как в жизни.

Цитата:
я могу сделать чтобы штурмовики атакавали истребители так же как истребитель истребителя почти
А вот этого, как раз делать и не нужно.

Последний раз редактировалось skvorez; 12.08.2009 в 15:16.
  Ответить с цитированием
Старый 12.08.2009, 15:35   #8
Novichok8
Местный
 
Регистрация: 24.12.2007
Адрес: Россия(СССР)
Сообщений: 987
Отправить сообщение для Novichok8 с помощью ICQ Отправить сообщение для Novichok8 с помощью Skype™
По умолчанию

построение я знаю где прописано.
Novichok8 вне форума   Ответить с цитированием
Старый 12.08.2009, 15:43   #9
skvorez
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Novichok8 Посмотреть сообщение
построение я знаю где прописано.
Ну и... А в круг построить сможешь?
  Ответить с цитированием
Старый 12.08.2009, 15:53   #10
Novichok8
Местный
 
Регистрация: 24.12.2007
Адрес: Россия(СССР)
Сообщений: 987
Отправить сообщение для Novichok8 с помощью ICQ Отправить сообщение для Novichok8 с помощью Skype™
По умолчанию

там непонятно что
Novichok8 вне форума   Ответить с цитированием
Старый 12.08.2009, 15:54   #11
Novichok8
Местный
 
Регистрация: 24.12.2007
Адрес: Россия(СССР)
Сообщений: 987
Отправить сообщение для Novichok8 с помощью ICQ Отправить сообщение для Novichok8 с помощью Skype™
По умолчанию

/* Formation - Decompiled by JODE
* Visit http://jode.sourceforge.net/
*/
package com.maddox.il2.ai;
import com.maddox.JGP.Point3d;
import com.maddox.JGP.Vector3d;
import com.maddox.JGP.Vector3f;
import com.maddox.il2.ai.air.Maneuver;
import com.maddox.il2.engine.Actor;
import com.maddox.il2.fm.FlightModel;
import com.maddox.il2.objects.air.A6M;
import com.maddox.il2.objects.air.Aircraft;
import com.maddox.il2.objects.air.B5N;
import com.maddox.il2.objects.air.BF_109;
import com.maddox.il2.objects.air.BF_110;
import com.maddox.il2.objects.air.B_17;
import com.maddox.il2.objects.air.B_25;
import com.maddox.il2.objects.air.B_29;
import com.maddox.il2.objects.air.D3A;
import com.maddox.il2.objects.air.FW_190;
import com.maddox.il2.objects.air.G4M;
import com.maddox.il2.objects.air.H8K;
import com.maddox.il2.objects.air.HE_111H2;
import com.maddox.il2.objects.air.IL_2;
import com.maddox.il2.objects.air.JU_88;
import com.maddox.il2.objects.air.KI_43;
import com.maddox.il2.objects.air.KI_46;
import com.maddox.il2.objects.air.KI_61;
import com.maddox.il2.objects.air.KI_84;
import com.maddox.il2.objects.air.ME_323;
import com.maddox.il2.objects.air.N1K;
import com.maddox.il2.objects.air.PE_2;
import com.maddox.il2.objects.air.PE_8;
import com.maddox.il2.objects.air.SBD;
import com.maddox.il2.objects.air.SPITFIRE;
import com.maddox.il2.objects.air.Scheme1;
import com.maddox.il2.objects.air.TA_152H1;
import com.maddox.il2.objects.air.TBF;
import com.maddox.il2.objects.air.TB_3;
import com.maddox.il2.objects.air.TU_2;
import com.maddox.il2.objects.air.YAK;

public class Formation
{
public static final byte F_DEFAULT = 0;
public static final byte F_PREVIOUS = 1;
public static final byte F_ECHELONRIGHT = 2;
public static final byte F_ECHELONLEFT = 3;
public static final byte F_LINEABREAST = 4;
public static final byte F_LINEASTERN = 5;
public static final byte F_VIC = 6;
public static final byte F_FINGERFOUR = 7;
public static final byte F_DIAMOND = 8;
private static final Vector3f WR = new Vector3f(100.0F, 100.0F, 0.0F);
private static final Vector3d dd = new Vector3d();
private static final Point3d Pd = new Point3d();

public static final void generate(Aircraft[] aircrafts) {
gen(aircrafts, WR);
}

private static final float scaleCoeff(Aircraft aircraft) {
if (aircraft instanceof ME_323)
return 5.0F;
if (aircraft instanceof PE_8 || aircraft instanceof TB_3
|| aircraft instanceof B_17 || aircraft instanceof B_29)
return 3.5F;
if (aircraft instanceof TA_152H1)
return 2.0F;
if (aircraft instanceof SBD)
return 1.8F;
if (aircraft instanceof TBF)
return 1.9F;
if (aircraft instanceof FW_190)
return 1.4F;
if (!(aircraft instanceof Scheme1))
return 2.2F;
return 1.2F;
}

public static final void gather(FlightModel flightmodel, byte i) {
gather(flightmodel, i, flightmodel.Offset);
}

public static final void gather(FlightModel flightmodel, byte i,
Vector3d vector3d) {
Aircraft aircraft = (Aircraft) flightmodel.actor;
FlightModel flightmodel_0_ = flightmodel;
int i_1_ = ((Maneuver) flightmodel).Group.numInGroup(aircraft);
float f = flightmodel.formationScale;
switch (i) {
case 0:
if (aircraft instanceof BF_109 || aircraft instanceof BF_110
|| aircraft instanceof FW_190 || aircraft instanceof SPITFIRE)
gather(flightmodel, (byte) 7, vector3d);
else {
if (aircraft instanceof IL_2 || aircraft instanceof YAK
|| aircraft instanceof PE_2 || aircraft instanceof TU_2)
gather(flightmodel, (byte) 6, vector3d);
else {
if (aircraft instanceof A6M || aircraft instanceof B5N
|| aircraft instanceof D3A || aircraft instanceof G4M
|| aircraft instanceof KI_43
|| aircraft instanceof KI_46
|| aircraft instanceof KI_84 || aircraft instanceof N1K
|| aircraft instanceof H8K
|| aircraft instanceof KI_61)
gather(flightmodel, (byte) 6, vector3d);
else {
if (aircraft instanceof JU_88
|| aircraft instanceof HE_111H2)
gather(flightmodel, (byte) 8, vector3d);
else {
if (aircraft instanceof ME_323)
gather(flightmodel, (byte) 8, vector3d);
else {
if (aircraft instanceof PE_8
|| aircraft instanceof B_17
|| aircraft instanceof B_25
|| aircraft instanceof B_29)
gather(flightmodel, (byte) 6, vector3d);
else {
gather(flightmodel, (byte) 2, vector3d);
return;
}
return;
}
return;
}
return;
}
return;
}
return;
}
return;
case 1:
gather(flightmodel, flightmodel.formationType, vector3d);
return;
case 2:
flightmodel.formationType = i;
vector3d.set(25.0, 25.0, 0.0);
break;
case 3:
flightmodel.formationType = i;
vector3d.set(25.0, -25.0, 0.0);
break;
case 4:
flightmodel.formationType = i;
if (i_1_ == 0)
vector3d.set(25.0, 75.0, 0.0);
else
vector3d.set(1.0, 33.0, 0.0);
break;
case 5:
flightmodel.formationType = i;
if (i_1_ == 0)
vector3d.set(120.0, 0.0, 15.0);
else
vector3d.set(80.0, 0.0, 10.0);
vector3d.scale((double) f);
return;
case 6:
flightmodel.formationType = i;
switch (i_1_) {
case 0:
vector3d.set(55.0, 55.0, 0.0);
break;
case 1:
vector3d.set(25.0, 25.0, 0.0);
break;
case 2:
vector3d.set(0.0, -50.0, 0.0);
break;
case 3:
vector3d.set(25.0, -25.0, 0.0);
break;
}
break;
case 7:
flightmodel.formationType = i;
switch (i_1_) {
case 0:
vector3d.set(25.0, 25.0, 0.0);
break;
case 1:
vector3d.set(15.0, 30.0, 0.0);
break;
case 2:
vector3d.set(25.0, -60.0, 0.0);
break;
case 3:
vector3d.set(15.0, -20.0, 0.0);
break;
}
break;
case 8:
flightmodel.formationType = i;
switch (i_1_) {
case 0:
vector3d.set(75.0, 30.0, 0.0);
break;
case 1:
vector3d.set(25.0, 25.0, 0.0);
break;
case 2:
vector3d.set(0.0, -50.0, 0.0);
break;
case 3:
vector3d.set(25.0, 25.0, 0.0);
break;
default:
break;
}
break;
}
vector3d.scale((double) (f * scaleCoeff(aircraft)));
}

public static final void leaderOffset(FlightModel flightmodel, byte i,
Vector3d vector3d) {
Aircraft aircraft = (Aircraft) flightmodel.actor;
Wing wing = (Wing) flightmodel.actor.getOwner();
int i_2_;
if (wing != null)
i_2_ = wing.indexInSquadron();
else
i_2_ = 0;
switch (i_2_) {
case 0:
vector3d.set(300.0, -150.0, 0.0);
break;
case 1:
if (i != 2)
vector3d.set(100.0, 100.0, 0.0);
else
vector3d.set(200.0, 200.0, 0.0);
break;
case 2:
if (i != 3 && i != 6)
vector3d.set(150.0, -150.0, 0.0);
else
vector3d.set(210.0, -210.0, 0.0);
break;
case 3:
if (i != 5)
vector3d.set(150.0, 0.0, 0.0);
else
vector3d.set(300.0, 0.0, 0.0);
break;
}
vector3d.scale(0.7 * (double) scaleCoeff(aircraft));
}

private static final void gen(Aircraft[] aircrafts, Vector3f vector3f) {
dd.set(vector3f);
aircrafts[0].pos.getAbsOrient().transform(dd);
int i = 0;
for (int i_3_ = 1; i_3_ < aircrafts.length; i_3_++) {
if (Actor.isValid(aircrafts[i_3_])) {
aircrafts[i_3_].FM.Offset.set(vector3f);
aircrafts[i_3_].FM.Leader = aircrafts[i].FM;
aircrafts[i].FM.Wingman = aircrafts[i_3_].FM;
aircrafts[i].pos.getAbs(Pd);
Pd.sub(dd);
aircrafts[i_3_].pos.setAbs(Pd);
i = i_3_;
}
}
}
}
Novichok8 вне форума   Ответить с цитированием
Старый 12.08.2009, 15:55   #12
Novichok8
Местный
 
Регистрация: 24.12.2007
Адрес: Россия(СССР)
Сообщений: 987
Отправить сообщение для Novichok8 с помощью ICQ Отправить сообщение для Novichok8 с помощью Skype™
По умолчанию

вот там что
Novichok8 вне форума   Ответить с цитированием
Старый 12.08.2009, 16:40   #13
skvorez
Гость
 
Сообщений: n/a
По умолчанию

Ясно.. ну что ж жаль... идея была, имхо не плохая.
  Ответить с цитированием
Старый 13.08.2009, 19:23   #14
Novichok8
Местный
 
Регистрация: 24.12.2007
Адрес: Россия(СССР)
Сообщений: 987
Отправить сообщение для Novichok8 с помощью ICQ Отправить сообщение для Novichok8 с помощью Skype™
По умолчанию

фотографии или видео есть этого построения?
вообще щас аи где нибуть так строиться?
Novichok8 вне форума   Ответить с цитированием
Старый 12.11.2009, 23:07   #15
Novichok8
Местный
 
Регистрация: 24.12.2007
Адрес: Россия(СССР)
Сообщений: 987
Отправить сообщение для Novichok8 с помощью ICQ Отправить сообщение для Novichok8 с помощью Skype™
По умолчанию

если сделать как тут то может и можно они баки же по команде кидают.
Novichok8 вне форума   Ответить с цитированием
Старый 12.11.2009, 23:47   #16
werewolf
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Novichok8 Посмотреть сообщение
если сделать как тут то может и можно они баки же по команде кидают.
Про сброс бомб идея не дурна, а то сыпят куда не попадя.....
  Ответить с цитированием
Старый 13.11.2009, 08:28   #17
Novichok8
Местный
 
Регистрация: 24.12.2007
Адрес: Россия(СССР)
Сообщений: 987
Отправить сообщение для Novichok8 с помощью ICQ Отправить сообщение для Novichok8 с помощью Skype™
По умолчанию

для круга надо 5 самолетов мин говорят вопрос как в иле соеденить 2 звена в 1 гркппу и расположить их в определенном порядке.
я пробывал оборону менять илам ед они меньше разбегаться стали а если соеденить 2 звена собирались в гиганскую кучу ведущий в переди остольный со всех боков и строй рушили только если его сильно повредить а так стсрались сохронять строй вобем как бомереры.
Novichok8 вне форума   Ответить с цитированием
Старый 13.11.2009, 08:31   #18
Novichok8
Местный
 
Регистрация: 24.12.2007
Адрес: Россия(СССР)
Сообщений: 987
Отправить сообщение для Novichok8 с помощью ICQ Отправить сообщение для Novichok8 с помощью Skype™
По умолчанию

bombsOut = true; вот главная команда без нее бомы бросать не будут вообще.
Novichok8 вне форума   Ответить с цитированием
Старый 13.11.2009, 10:36   #19
Novichok8
Местный
 
Регистрация: 24.12.2007
Адрес: Россия(СССР)
Сообщений: 987
Отправить сообщение для Novichok8 с помощью ICQ Отправить сообщение для Novichok8 с помощью Skype™
По умолчанию

не кидает прописал я эту команду к бакам.
Novichok8 вне форума   Ответить с цитированием
Старый 13.11.2009, 10:47   #20
skvorez
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Novichok8 Посмотреть сообщение
фотографии или видео есть этого построения?
вообще щас аи где нибуть так строиться?
вот круг:
http://forum.72ag.ru/index.php?showt...hreaded&start=

Или ты про вертушку Полбина?
Вот соспсно:
"Вертушка"
Особое место в военной биографии И. С. Полбина как летчика, командира и подлинного новатора тактики бомбардировочной авиации занимает его знаменитая «вертушка».

«Вертушка», как наиболее эффективный метод уничтожения точечных целей, завоевала всеобщее признание у всех летчиков-бомбардировщиков. В каждом полку, соединении знали и применяли этот полбинский метод. И все же наиболее мастерски им пользовались летчики соединения И. С. Полбина. Они стали асами своего дела, разрушая мосты, железнодорожные станции, уничтожая пехоту и технику противника.

«Вертушка» началась с того, что ведущий самолет развернулся влево и перешел в стремительное пикирование. За ним через несколько секунд последовал второй пикировщик, затем третий, четвертый. Потеряв почти 1000 метров высоты и сбросив одну бомбу, ведущий не менее стремительно стал подниматься вверх и вскоре оказался в хвосте последнего самолета группы. С этого момента замкнулся боевой круг, составленный из двадцати машин. Образовалось как бы гигантское колесо, диаметром больше километра. Оно с огромной скоростью вращалось в наклонной плоскости, разрывая своими зубьями вражескую оборону. За один поворот этого колеса сбрасывалось двадцать увесистых бомб, и каждая из них направлялась в свою цель. По воле командира пикировщики меняли направление удара, отыскивая всякий раз новые объекты атаки.

http://h.ua/story/217977/


Не совсем по теме:
http://www.wio.ru/pokr/pokr.htm
Миниатюры
Нажмите на изображение для увеличения
Название: manevr%20Il_2.jpg
Просмотров: 420
Размер:	85.2 Кб
ID:	7634  
  Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 11:32. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Рейтинг@Mail.ru