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

пример рабочий с этим массивом:
массив private static int[] headings
= { 1, 3, 5, 6, 15, 20, 21, 27, 28, 30, 35, 36 };

код
public static void speakHeading(Aircraft aircraft, int i) {
if (Actor.isAlive(aircraft)) {
int i_62_ = (int) (Time.current() / 1000L);
int i_63_ = aircraft.getArmy() - 1 & 0x1;
if (i_62_ >= cur().SpeakHeading[i_63_]) {
cur().SpeakHeading[i_63_] = i_62_ + 20;
for (/**/; i < 0; i += 360) {
/* empty */
}
for (/**/; i >= 360; i -= 360) {
/* empty */
}
i /= 30;
str[0] = 165;
str[1] = headings[i];
str[2] = 0;
airSpeaksNewArray(aircraft, 3, str, 3);
}
}
}
str[1] = headings[i]; эта строка вызывает массив числа в массиве номера звук файлов для говорения лидером высоты.
str[0] = 165; Направление ( 165 отвечает за имя Vector.wav в папке samples\Speech\RU\Actor1
сам массив за файлы типа 100.wav 180.wav и т.д
в самой игре это обьединяеться и получаеться
Направление 180.
То же самое но с Высотой.
массив
private static int[] altitudes = { 2, 4, 7, 19, 26, 29, 34, 37, 41, 42, 46,
47, 53, 54, 58, 59, 63, 64, 68, 69, 8 };
Код public static void speakAltitude(Aircraft aircraft, int i) {
if (Actor.isAlive(aircraft)) {
int i_56_ = (int) (Time.current() / 1000L);
int i_57_ = aircraft.getArmy() - 1 & 0x1;
if (i_56_ >= cur().SpeakAltitude[i_57_]) {
cur().SpeakAltitude[i_57_] = i_56_ + 20;
str[0] = 118;
if (i > 10000)
i = 10000;
if (i < 1)
i = 1;
str[1] = altitudes[i / 500];
str[2] = 0;
airSpeaksNewArray(aircraft, 3, str, 3);
}
}
}
В самом АИ это обьеденяеться вместе и получаеться Направление 360 Высота 05.
Novichok8 вне форума   Ответить с цитированием