Столкнулся с такой проблемой, что если сесть в вооруженный внедорожник за пулемёт, то водитель-бот перестаёт ехать по вейпоинтам и подчиняется только моим командам (( А я хочу за пулемётом сидеть пока меня по сюжету везут.
Можно ли как-то заставить водилу не обращать внимание на моё присутствие за пулемётом и ехать куда ему прописано?
#281 OFFLINE
Posted 19 October 2015 - 14:07
#282 OFFLINE
Posted 19 October 2015 - 18:03
Можешь устроить дерзкую погоню используя BIS_fnc_UnitCapture
#283 OFFLINE
Posted 20 October 2015 - 02:45
Столкнулся с такой проблемой, что если сесть в вооруженный внедорожник за пулемёт, то водитель-бот перестаёт ехать по вейпоинтам и подчиняется только моим командам (( А я хочу за пулемётом сидеть пока меня по сюжету везут. Можно ли как-то заставить водилу не обращать внимание на моё присутствие за пулемётом и ехать куда ему прописано?
blade, нужно водителя сделать независимым от вас. Он должен не состоять с вами в одном отряде. ЛИБО, водитель должен быть вашим командиром. Далее я предлагаю вам два способа:
1) Создаем триггер и туда прописываем в активации следующее:
Driver1 moveInDriver car1; Gunner1 moveInGunner car1
Где:
Driver1 - Водитель.
Gunner1 - Стрелок.
car1 - Автомобиль с пулеметом.
Не забудьте дать всем юнитам имена, которые описаны выше и водителю добавить вейпоинты. После старта, водителя и стрелка сразу мигом садят в машину c помощью данных команд.
2) Второй способ. Данный способ делается с помощью вейпоинтов. Предлагаю самому разобраться в миссии, которую я прикрепил к данному посту. Если есть вопросы, то спрашивайте не бойтесь.
Эти два способа реализованы в одной миссии:
Attached Files
#284 OFFLINE
Posted 20 October 2015 - 11:13
Благодарю, примеры для меня полезные! Однако с помощью них у меня не получилось решить свою проблему.
Первый пример от части работает (за исключением того, что нельзя нажимать wsad иначе водитель перестанет следовать по вейпоинтам), только боюсь в миссии такие телепортации будут не комильфо =\
Второй пример почему-то не работает совсем. Играл за guneer2, когда садился за пулемёт, водитель оставался на месте, никуда не ехал.
Пытался даже делать себя подчинённым водителя, но он лишь отдавал мне приказ бежать до вейпоинта, а сам сидел за рулём и никуда не ехал, зато сам подчинялся моим командам передвижения.
Если это как-то поможет, то по сюжету у меня два водителя (один подчинён другому) выбегают из контейнера, садятся водителями в два внедорожника, и выкатываются на дорогу ожидать. Когда погрузятся все игроки и персонажи сработает переменная и колонна продолжит двигаться дальше по вейпоинтам. И так далее ещё с парой остановок.
Чтоб обойти эту медвежью услугу БИСов, я сейчас пробую заменить вооружённый внедорожник на обычный с приATTACHенным к нему пулемётом. И всё складывается чудненько, за исключением пары деталей.
Когда юнит садится за приATTACHенный пулемёт, он остаётся с той же анимацией, с которой был перед посадкой. Я пока разбираюсь как изменить анимацию на сидение за пулемётом. Не откажусь от подсказки.
И если уж в кузове внедорожника стоит тренога, можно ли там как-то заблокировать пассажирские места?
#285 OFFLINE
Posted 20 October 2015 - 18:14
а туррели (места откуда можно стрелять - туррели) командой
#286 OFFLINE
Posted 27 October 2015 - 01:56
Здравствуйте, как говорится, лучше писать самому, чем у кого-то тырить, но это не наш случай)
позаимствовав код у AGM пытаюсь формировать листбокс со списком итемов плеера.
код выводит список предметов корректно, но хотелось бы еще выводить кол-во данных предметов, что я только не пробовал)
_temp = format ["%2 x %1",getText(_item >> "displayName"),{getText(_item >> "displayName") == _x} count (items player)];
пробовал писать так, но это данный код срабатывает без ошибок, но кол-во итемов равно 0, поняв, что это все таки дисплей имя, а мне нужно название самого предмета, пробовал писать "configClasses", результат тот же, подскажите мне, как быть в этой беде(( надежда только на вас =)
Edited by Morty Rob, 27 October 2015 - 01:57.
#287 OFFLINE
Posted 27 October 2015 - 09:40
{getText(_item >> "displayName") == _x} count (items player);
{"Имя для игрока" == "Имя для игры"} count (items player) // два разных понятия и поэтому никогда не равны
Edited by vlad333000, 27 October 2015 - 09:41.
#290 OFFLINE
Posted 01 November 2015 - 03:53
Снова приветствую посетителей данного форума, возвращаюсь я сюда с новой проблемой, с надеждой на понимание.
Хочется самому придумать использование предметов в инвентаре, а именно два варианта, проще и сложнее:
1. Сделать по двойному нажатию на предмет, определенный скрипт.
2. По нажатию на правую/левую кнопку мыши, открывания с помощью gui менюшки, где бы ты смог выбрать определенное действие с предметом.
К сожалению решив, что пока не разберусь с первым, на второе даже смотреть не стоит, решил попробовать сделать первое.
Порыскав в "этих ваших интернетах" наткнулся на такую вещь :
((findDisplay 602) displayCtrl 633) ctrlSetEventHandler ["LBSelChanged", "_this call fnc_test"];
Что, как я понял(поправите, если не прав), создает у листбокса инвентаря (только у юниформ почему-то) обработчик события на смену Index, и на него запускается наша функция.
Где я могу получить название предмета, на который нажал.
_idc = ctrlIDC (_this select 0); _selectedIndex = _this select 1; _text = lbText [_idc, _selectedIndex]];
и в котором бы писал свои костыли по типу
if(_text == "Банка") then { food = food + 1; player removeItem "tc_banka"; };
Вроде бы все прозрачно, но подскажите, как сделать обработчик на двойное нажатие кнопки по итему, или нажатие роликом..
Так же было бы не плохо, если бы поделились полезными ссылками/модами на эту тему, а то чего-то плохо я гуглю подобные вещи.
И отдельное спасибо было бы человеку, если бы подсказали как все таки разобрать 2-ой вариант написанный выше.
Edited by Morty Rob, 01 November 2015 - 04:13.
#291 OFFLINE
Posted 01 November 2015 - 10:57
2. 1 +
3. Только для униформы, потому что idc: 633 - предметы униформы, 638 - предметы разгрузки и 619 - предметы рюкзака
4. - Командир
- Водитель
- Стрелок
- Что-то типа особые места: бортовые стрелки, со-пилоты...
- Весь экипаж
Edited by vlad333000, 01 November 2015 - 11:15.
#292 OFFLINE
Posted 01 November 2015 - 14:27
Morty Rob,
1.
2. 1 +
3. Только для униформы, потому что idc: 633 - предметы униформы, 638 - предметы разгрузки и 619 - предметы рюкзака
4. - Командир
- Водитель
- Стрелок
- Что-то типа особые места: бортовые стрелки, со-пилоты...
- Весь экипаж
Спасибо, буду пробовать, только вопрос, не много не понял второй пункт, 1+ctrlCreate например, я на тот двойной щелчек, создаю кнопку этой коммандой, потом по этому idc добавляю нажатие на кнопку, и скрипт на нажатие, и как это в итоге будет выглядить? где будет появляться кнопка, можно пробноей, если не сложно.
И еще раз боольшое спасибо за полезные ссылки, это ооочень улучшило понимание
#293 OFFLINE
Posted 03 November 2015 - 23:06
Доброго времени суток, я наверное совсем обнаглел, ибо пишу вопросы тут только я.. но чем черт не шутит
Столкнулся с такой вещью, как представление больших текстов через объект dialog'a StructuredText, а именно добавление скрол бара, обильно погуглив было предпринято решение использовать элемент ControlsGroup, на который ставился StructuredText бОльшего размера, чем ControlsGroup, тем самым активировав скрол бар, но..проблема в том, что мой текст не фиксированного размера, и заранее размеры я знать не могу.
Услышал идею, что есть возможность узнать "высоту" текста, тем самым увеличивать высоту элемента StructuredText, через скрипт.
Что бы полностью описать, приведу саму задачу, делаю Чат, которые работает через sql базу, соответственно история сообщений может быть велика, и постоянно пополняется, с каждым сообщением, дак вот, на скрипты отправки сообщения, фиксировать длину текста, способом который рассказал выше.
В чем же проблема, все это звучит на словах, на практике, я так и не смог получить "высоту текста" и даже не смог скриптово задавать размеры элемента.
Подскажите, чем можно было бы проделать такие операции..
#295 OFFLINE
Posted 04 November 2015 - 22:13
Morty Rob, A3\ui_f\config.bin -> разбинариваем -> ищем дисплей debug-консоли
class RscDisplayChat { class controls { class Line {}; class Background {}; class CA_Background : RscText { x = "SafeZoneX + 0.26"; y = "(SafeZoneH + SafeZoneY) - 0.034"; w = "SafeZoneW - 0.26 - 0.015"; h = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; colorBackground[] = {0.6275, 0.6275, 0.6275, 0.33}; colorText[] = {0, 0, 0, 1}; }; class CA_Line : RscEdit { idc = 101; x = "SafeZoneX + 0.26"; y = "(SafeZoneH + SafeZoneY) - 0.034"; w = "SafeZoneW - 0.26 - 0.015"; h = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; text = ""; colorBackground[] = {0.6275, 0.6275, 0.6275, 0.33}; colorText[] = {1, 1, 1, 1}; autocomplete = "general"; }; }; };
class RscChatListDefault { shadow = true; shadowPlayer = 0; shadowColor[] = {0, 0, 0, 0.5}; x = "1.2 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (SafezoneX)"; y = "17.2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY) + 0.7*(safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; w = "(18.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)) + 0.45*(safezoneW - ((safezoneW / safezoneH) min 1.2))"; h = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; font = "PuristaMedium"; size = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; rows = "((5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25))+ 0.3*(safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))) / ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; colorBackground[] = {0, 0, 0, 0.3}; colorGlobalChannel[] = {0.606*1.4, 0.606*1.4, 0.606*1.4, 1}; colorGlobalChannelPlayerBackground[] = {0.606*1.4, 0.606*1.4, 0.606*1.4, 0.5}; colorGlobalChannelPlayerText[] = {0, 0, 0, 1}; colorSideChannel[] = {0.196*1.4, 0.592*1.4, 0.706*1.4, 1}; colorSideChannelPlayerBackground[] = {0.196*1.4, 0.592*1.4, 0.706*1.4, 0.5}; colorSideChannelPlayerText[] = {0, 0, 0, 1}; colorCommandChannel[] = {0.8275*1.4, 0.8196*1.4, 0.1961*1.4, 1}; colorCommandChannelPlayerBackground[] = {0.8275*1.4, 0.8196*1.4, 0.1961*1.4, 0.5}; colorCommandChannelPlayerText[] = {0, 0, 0, 1}; colorGroupChannel[] = {0.709, 0.972, 0.384, 1}; colorGroupChannelPlayerBackground[] = {0.709, 0.972, 0.384, 0.5}; colorGroupChannelPlayerText[] = {0, 0, 0, 1}; colorVehicleChannel[] = {0.863*1.4, 0.584*1.4, 0.0*1.4, 1}; colorVehicleChannelPlayerBackground[] = {0.863*1.4, 0.584*1.4, 0.0*1.4, 0.5}; colorVehicleChannelPlayerText[] = {0, 0, 0, 1}; colorDirectChannel[] = {1, 1, 1, 1}; colorDirectChannelPlayerBackground[] = {1, 1, 1, 0.5}; colorDirectChannelPlayerText[] = {0, 0, 0, 1}; colorPlayerChannel[] = {0.8, 0.7, 1, 1}; colorPlayerChannelPlayerBackground[] = {0.8, 0.7, 1, 0.5}; colorPlayerChannelPlayerText[] = {0, 0, 0, 1}; colorMessage[] = {1, 1, 1, 1}; colorMessageProtocol[] = {0.65, 0.65, 0.65, 1}; };
#296 OFFLINE
Posted 05 November 2015 - 01:47
большое сообщение
Вот честно, не много не понял..
Создал в диалоге
class tc_chat : RscChatListDefault { idc = 228228; x = 0; y = 0; w = 0.48; h = 0.592; };
и добавил ваше описание RscChatListDefault.
запустил, ничего не увидел.. или нужно оба куса кода всунуть..вообщем ничего не понял))
UPD
class RscDisplayChat создав этот диалог, он вывел только Edit =)
Edited by Morty Rob, 05 November 2015 - 01:57.
#297 OFFLINE
Posted 05 November 2015 - 02:34
и добавил ваше описание RscChatListDefault.
запустил, ничего не увидел..
Это не мои два куска кода, это два куска БЕСовских конфигов про чат, и это не всё, это ориентир в этих дебрях, в каком аддоне искать
https://arma3.ru/for...ptingu/?p=57138
#298 OFFLINE
Posted 11 November 2015 - 17:27
Такой вопрос: если, к примеру, уличный туалет приаттачить к человеку(боту), будет ли возможность открыть дверь туалета, или в этом случае туалет становится статическим объектом полностью. Хочу приаттачить линзу к прицелу, вот и интересуюсь, будет ли тогда работать PIP.
#299 OFFLINE
Posted 11 November 2015 - 18:04
Все будет прекрасно работатьТакой вопрос: если, к примеру, уличный туалет приаттачить к человеку(боту), будет ли возможность открыть дверь туалета, или в этом случае туалет становится статическим объектом полностью. Хочу приаттачить линзу к прицелу, вот и интересуюсь, будет ли тогда работать PIP.
#300 OFFLINE
Posted 27 November 2015 - 00:40
Доброго времени суток, пожалуйста помогите.
Решил реализовать возможность открывать и закрывать двери (lock unlock), но не для BIS домов. данная возможность реализуется с помощью переменной bis_disabled_Door_1, но, к сожалению данная переменная работает, видимо, только с BIS домами.
Я решил сделать по другому, в конфиге, делать проверку на UserAction, что если дом закрыт, не показывать UserAction
class open_door_1 { displayName = "Open Door"; position = "Interact1"; radius = 1; onlyForplayer = "true"; condition = "((this animationPhase 'Door_1') < 0.5) && (this getVariable 'tc_house_unlock')"; statement = "this animate ["Door_1", 1]"; };
this getVariable 'tc_house_unlock'
но к сожалению конфиг выдает ошибку, когда добавляю второе услови, возможная причина, что в this здесь, это дверь, а не дом.
Прошу вашей помощи, почему возникает ошибка и возможные способы устранения