Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной

Всем привет, имеется код с maphack-ом в котором основной задумкой было поделить иконки маркеров, тексты, цвета по типу одежды, которую носит персонаж (для Survivor2_DZ - свой маркер, для Camo1_DZ - свой). Однако команда, отвечающая за распределение одежды:

_bandit1 = _pos nearEntities [["Bandit1_DZ", "BanditW1_DZ"], 100000];

работает, но с одним минусом, а именно "BanditW1_DZ" считает за одну одежду с "SurvivorW2_DZ", а "Survivor2_DZ" с "Survivor3_DZ". Прошу помощи у знающих и понимающих. Подскажите, может посоветуете другую команду использовать на распределение одежды? Или что-то может в условие вписать? Попытка с условием у меня была такая: if ((!isplayer _unknown1) or (_unknown1 !isKindOf "Survivor3_DZ")) then {...};

!isplayer - необходимо, чтобы это был не игрок.

!isKindOf - моя детская попытка, чтобы маркер появился у "Survivor2_DZ" с условием, что объект не имеет "Survivor3_DZ".

 

Кусок кода с maphack-а:

 

i = 0;
_pos = getPos player;
_bandit1 = _pos nearEntities [["Bandit1_DZ", "BanditW1_DZ"], 100000]; //вместе с этой одеждой показывает и "SurvivorW2_DZ", хотя она не вписана.
_count = count _bandit1;
_markerscount = count markers;
for "i" from 0 to (_markerscount -1) do {deleteMarkerLocal ("banditMarker" +(str i));};
for "i" from 0 to (_count -1) do {
_bandit2 = _bandit1 select i;
pos = position _bandit2;
_text = format ["banditMarker%1", i];
markers set [i, _text];
if (!isplayer _bandit2) then {
marker = "banditMarker" +(str i);
marker = createMarkerLocal [marker, pos];
marker setMarkerTypeLocal "waypoint";
marker setMarkerPosLocal (pos);
marker setMarkerColorLocal ("ColorRed");
marker setMarkerTextLocal format ["Бандит(ка) (%1)", typeOf _bandit2];
};
};

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0
29 минут назад, ClowDes сказал:

Как игра показала

Ну и правильно показала - т.к. поиск идет по иерархии от базового класса - все ему принадлежащие.

А для твоей задачи добавь отсев и делов.

 

Private ["_bandits", "_skins"];
//    Искомые типы
_skins        =    ["Bandit1_DZ", "BanditW1_DZ"];
_bandits     = (getMarkerPos "center") nearEntities [_skins, 30000];
{
    //    Если тип найденного есть в массиве _skins
    if ( (typeOf _x) in _skins ) then
        {
            //    Что то делаем
        };
} forEach _bandits;

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах





  • 0

перед
 

_bandit1 = _pos nearEntities [["Bandit1_DZ", "BanditW1_DZ"], 100000]; //вместе с этой одеждой показывает и "SurvivorW2_DZ", хотя она не вписана.

добавь хотя бы

_bandit1 = [];

и выведи в лог хотя бы так после выполнения 1-й строки:
 

diag_log format["TEST: _bandit1 %1",_bandit1];

и смотри что у тебя данная комманда возвращает в виде массива.

Возможно ошибка не тут совсем у вас.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Вот по сути весь код мапхака (убрал транспорт, зомби, животных. Ведь никакой связи с моей проблемой там не должно быть. Ведь это так? :D)

 

if (isNil "seemode") then {seemode = true;} else {seemode = !seemode};
if (seemode) then {titleText ["Мапхак: вкл.", "PLAIN DOWN", 0.50];};
if (isNil "markers") then {markers = []};
while {seemode} do {

//Bandit.
i = 0;
_pos = getPos player;
_bandit1 = _pos nearEntities [["Bandit1_DZ", "BanditW1_DZ"], 100000];
_count = count _bandit1;
_markerscount = count markers;
for "i" from 0 to (_markerscount -1) do {deleteMarkerLocal ("banditMarker" +(str i));};
for "i" from 0 to (_count -1) do {
_bandit2 = _bandit1 select i;
pos = position _bandit2;
_text = format ["banditMarker%1", i];
markers set [i, _text];
if (!isplayer _bandit2) then {
marker = "banditMarker" +(str i);
marker = createMarkerLocal [marker, pos];
marker setMarkerTypeLocal "waypoint";
marker setMarkerPosLocal (pos);
marker setMarkerColorLocal ("ColorRed");
marker setMarkerTextLocal format ["Бандит(ка) (%1)", typeOf _bandit2];
};
};
//Survivor.
i = 0;
_pos = getPos player;
_survivor1 = _pos nearEntities [["Survivor2_DZ", "SurvivorW2_DZ"], 100000]; //само присваивает и к "Survivor3_DZ" и к "BanditW1_DZ".
_count = count _survivor1;
_markerscount = count markers;
for "i" from 0 to (_markerscount -1) do {deleteMarkerLocal ("survivorMarker" +(str i));};
for "i" from 0 to (_count -1) do {
_survivor2 = _survivor1 select i;
pos = position _survivor2;
_text = format ["survivorMarker%1", i];
markers set [i, _text];
if (!isplayer _survivor2) then {
marker = "survivorMarker" +(str i);
marker = createMarkerLocal [marker, pos];
marker setMarkerTypeLocal "waypoint";
marker setMarkerPosLocal (pos);
marker setMarkerColorLocal ("ColorYellow");
marker setMarkerTextLocal format ["Выживший(ая) (%1)", typeOf _survivor2];
};
};
sleep 1;
};

if (!seemode) then {_markerscount = count markers;
for "i" from 0 to (_markerscount -1) do {
deleteMarkerLocal ("banditMarker" +(str i));
deleteMarkerLocal ("survivorMarker" +(str i));
titleText ["Мапхак: выкл.", "PLAIN DOWN", 0.50]
};
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

1.JPG.3f427071ce7428620cc98a37e12a3be7.JPG

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
8 часов назад, ClowDes сказал:

Однако команда, отвечающая за распределение одежды:

_bandit1 = _pos nearEntities [["Bandit1_DZ", "BanditW1_DZ"], 100000];

какую же хуйню ты порешь....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
Цитата

Однако команда, отвечающая за распределение одежды:

_bandit1 = _pos nearEntities [["Bandit1_DZ", "BanditW1_DZ"], 100000];

Дословно: _bandit1 = позиция игрока рядом с объектами [шкуры...] в радиусе 100000м.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Вы в этом коде видите другую команду, которая связанная с перечислением "шкуры"? Я уверен, что нет. Может её заменить на другую команду, которую я не знаю? У меня есть догадки, что сам по себе скрипт написан не корректно, но основную цель он выполняет - показывает маркеры на объектах, только вот с одной проблемой, которую я описал выше. Что по мыслям решения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
53 минуты назад, ClowDes сказал:

Вы в этом коде видите другую команду, которая связанная с перечислением "шкуры"? Я уверен, что нет. Может её заменить на другую команду, которую я не знаю? У меня есть догадки, что сам по себе скрипт написан не корректно, но основную цель он выполняет - показывает маркеры на объектах, только вот с одной проблемой, которую я описал выше. Что по мыслям решения?

1. Тебе уже ответили, что сделать для начала надо -

Перечитай внимательно и добавь. И логи сюда.

 

2. nearEntities ищет записи(объекты) A, расположенные на дистанции B, от объекта C.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Как вариант запроса по коду typeOf ИГРОК (то есть эта команда выведет его шкуру).

Получается тебе надо запросить игрока в заданной позиции по коду выше, применить к нему typeOf ИГРОК (получение го шкуры), после этого выполнить сравнение его шкуры, со своим списком шкур, и потом уже рисовать ему маркер согласно шкуры.

Много шкур получилось однако ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

1. Сделал как посоветовали, добавив строку, ничего не получилось.

2. Логи? Одиночный режим стоит. Или в одиночке их тоже можно как-то посмотреть? (знаю, раздел помощи по серверам, но в просторах интернета уж точно не найдёшь помощи по одиночке, поэтому platoon - единственный для меня сайт, где можно нарыть нужную информацию.)

3. RedLink уж сложно для меня ты написал, что и как сделать. Будь добр чу-чуть по понятней напиши.

Изменено пользователем ClowDes (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 час назад, ClowDes сказал:

Одиночный режим стоит.

C:\Users\%username%\AppData\Local\ArmA 2 OA

ArmA2OA.RPT

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

diag_log format["TEST: _survivor1 %1",_survivor1]; <- вставил в код мапхака, ниже Survivor2_DZ, SurvivorW2_DZ.

ArmA2OA.RPT: 

"TEST: _survivor1 [B 1-1-C:1 (Alan Hoffman),O 1-1-G:1,O 1-1-H:1,O 1-1-I:1,O 1-1-K:1,O 1-1-M:1]"

"TEST: _survivor1 [B 1-1-C:1 (Alan Hoffman),O 1-2-B:1,O 1-2-C:1,O 1-1-G:1,O 1-1-K:1]"
String STR_EVAL_TYPENAN not found
Error in expression <isableSerialization;

 

"TEST: _survivor1 [B 1-1-C:1 (Alan Hoffman),O 1-2-B:1,O 1-2-C:1,O 1-1-G:1,O 1-1-K:1]"
No owner
No owner
No owner
No owner
No owner
No owner
Suspending not allowed in this context

 

Alan Hoffman - это персонаж за которого играет игрок.

Изменено пользователем ClowDes (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

diag_log format["TEST: _bandit1 %1",_bandit1]; <- вставил в код мапхака, ниже Bandit1_DZ, BanditW1_DZ.

ArmA2OA.RPT:

"TEST: _bandit1 [O 1-1-H:1,O 1-1-L:1,O 1-1-M:1]"

"TEST: _bandit1 [O 1-1-M:1,O 1-1-L:1]"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
2 часа назад, ClowDes сказал:

diag_log format["TEST: _bandit1 %1",_bandit1]; <- вставил в код мапхака, ниже Bandit1_DZ, BanditW1_DZ.

ArmA2OA.RPT:

"TEST: _bandit1 [O 1-1-H:1,O 1-1-L:1,O 1-1-M:1]"

"TEST: _bandit1 [O 1-1-M:1,O 1-1-L:1]"

 

Private ["_bandits"];
_bandits = (getPos player) nearEntities [["Bandit1_DZ", "BanditW1_DZ"], 100000];
{
    diag_log(format["typeOf: %1", (typeOf _x)]);
} forEach _bandits;

Вот такой скрипт сделай, и РПТ покажи.

Изменено пользователем NoNameUltima (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Arma2OA.RPT: (сначала использовал бандитскую одежду, а потом добавил и к одежде Выжившим.)

 

Бандит:

"typeOf: BanditW1_DZ"
"typeOf: BanditW1_DZ"
"typeOf: BanditW1_DZ"
"typeOf: BanditW1_DZ"
No owner
No owner
No owner
No owner
No owner
No owner
Suspending not allowed in this context

 

Бандит + Выживший:

"typeOf: BanditW1_DZ"
"typeOf: Survivor2_DZ"
"typeOf: Survivor2_DZ"
"typeOf: BanditW1_DZ"
No owner
No owner
No owner
No owner
No owner
No owner
No owner
No owner
No owner
No owner
Suspending not allowed in this context

 

----------

Bandit1_DZ - не одной строки как и у SurvivorW2 (я имею ввиду не одной строки вместе с No owner.)

----------

BanditW1_DZ - считает SurvivorW2 за одно и тоже.

Survivor2_DZ - считает Survivor3_DZ за одно и тоже.

No owner нет хозяина?

 

----------

Arma2OA.RPT: (в одном из блоков нашёл следующее, не знаю может как-то связанно.)

 

SetFace error: class CfgFaces.GravesHead_EP1.Face101 not found
Error: Error during SetFace - class CfgFaces.GravesHead_EP1.Face101 not found

Изменено пользователем ClowDes (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
Цитата

BanditW1_DZ - считает SurvivorW2 за одно и тоже.

Survivor2_DZ - считает Survivor3_DZ за одно и тоже.

не понял смысла фразы вообще

 

No owner именно как нет хозяина переводится, но не факт что к данному скрипту имеет отношение поскольку сообщения все начинаться с typeOf: должны в скрипте что мы отслеживаем выше

Изменено пользователем 123new (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Это я просто напомнил проблему, которая у меня в коде. BanditW1_DZ считает, что SurvivorW2 это тоже, что и BanditW1_DZ, соответственно два маркера показывают на одной "шкуре" (BanditW1_DZ). Survivor2_DZ считает, что Survivor3_DZ это тоже, что и Survivor2_DZ, соответственно показывает маркер на нём (Survivor3_DZ). Выше есть фотографии проблемы, как это всё в самой игре отображает. Однако это не говорит о том, что я понял проблему как таковую, всего лишь мои предположения и догадки. Как игра показала так и говорю.

Изменено пользователем ClowDes (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

NoNameUltima, спасибо Вам за помощь! Спасибо говорю и всем тем, кто пытался помощь мне в решении этой проблемы!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
16 часов назад, ClowDes сказал:

Как игра показала

Ну и правильно показала - т.к. поиск идет по иерархии от базового класса - все ему принадлежащие.

А для твоей задачи добавь отсев и делов.

 

Private ["_skins", "_bandits"];
_skins        =    ["Bandit1_DZ", "BanditW1_DZ"]; // скины которые необходимо отображать
_bandits    =    (getMarkerPos "center") nearEntities [_skins, 30000];
{
    if ((typeOf _x) in _skins) then
        {
            //    что то делаем
        };
} forEach _bandits;

 

Изменено пользователем NoNameUltima (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Что то не понял... вчера ответил в ветку, сообщение кусками появилось)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

форум просто тупил. вчера это сообщение то появлялось, то пропадало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: DarkShy
      Приветствую! 
      Купил  мод. При подписи ошибок не возникает, если его одного использовать - все ок, но если добавить еще один мод в addons, то при входе клиента на сервер вываливается ошибка, что мол подписи не совпадают.
      Ключ один использовал, ключ в "ключах" лежит. 
      "Клиентский PBO не является частью сервера. Убедитесь, что мод установлен правильно, и вы не добавили новых PBO. Попробуйте восстановить мод через средство запуска."
    • Автор: mrDante
      Всем привет,первая Тема от меня..
      вопрос заключается в следующем,как отключить постройки статичные колонок с водой чистой(условно)?
      а зачем!?
      ну такова задумка,по сценарию...что бы игроки на PVE кипятили воду сами..
      в mpmissions я все cfg*****.xml комментировал имена и позиции, с ними, как положено <!--***-->..все map********.xml пересмотрел,перепроверил..
      стоят моды : @AdvancedBanking;@Airdrop-Upgraded;@CF;@Code Lock;@CJ187-Cars;@CJ187-MoreCrashsites;@GraveCross;@KillFeed;@MedicalAttentionUpdated-DepHelper-Vanilla;@MedicalAttentionUpdated-Core;@MedicalAttentionUpdated;@LessLessAnimalMeat;@No-Vehicle-Damage;@PartyMe;@ToxicZone;@Trader;@TraderFix_v2;@VanillaPlusPlusMap;@VPPAdminTools....
      но они всё равно на карте имеются...то есть,я на сервере их вижу и могу с ними контактировать...
      куда рыть?
      спасибо...
      P.S.
      прошу не угарать,надо мной,я не профи-скриптер,самоучка,которому пригорело ставить свой Сервер для народа...
      спасибо!
    • Автор: Pinya
      Добрейшего времени суток товарищи. Намечается полноценный ПРОЕКТ с некоторым числом серверов и блаблабла, это никому не интересно. Дело в том, что в процессе реализации возникли "небольшие" трудности. Прошу помочь тех, кто реально занимался proxmox, в курсе матчасти Linux'а или тех кто уже сталкивался с этим.

      Суть проблемы:
      Имеется Proxmox для виртуализации машинок. Discord bot'a, Windows Server для запуска серверов DayZ и т.д. Дело в том, что запуская .bat на виртуалке, сервер просто не ищется в списке лаунчера, но если поменять DMZ на адрес этой машины - всё работает, но теряется удаленный доступ к Proxmox (об этом позже).

      Вот что нужно знать понимания ситуации в будущем:
      IP адреса следующие:
      Роутер (Шлюз) - 145.254
      Proxmox - 145.250
      Windows Server (Dayz) - 145.245 - VM
      DMZ настроен на - 250

      Что имеем в итоге:
      Выставив в роутере DMZ на 245 - Можно запускать сервак любой игры с любым портом и он будет виден по внешнему (белому) IP. НО доступ к вебморде proxmox'а - не будет, т.к. пакетики идут на 245.
      Костыль: Сделать RDP на 245 и через него гулять на 250 - не годится!

      Далее выставив DMZ на 250 - Сервер любой игры доступен НЕ будет! НО доступ к вебморде proxmox'a - появится. Однако если вручную прокинуть порт того же Minecraft (самое простое что нашёл, простите) через rinetd - то он работает. с DayZ такое не прокатывает.

      В интернете пишут про правила iptables и firewall, но ничего из этого не помогло. DayZ использует зачастую рандомные порты по udp и создавать здоровенный список правил в rinetd - это минус к отклику сервера а также безопасности.

      Может кто сталкивался с любым поднятием сервера на Linux и в курсе этой темы - подскажите как решали. Неделя отчаянной работы уже заставляет краем глаза посматривать на кошелёк чтобы это сделал хоть кто-то более шарящий в этом деле, но желательно всё же объяснил. Заранее спасибо всем кто откликнется - жду всех на обсуждение. В случае успеха можно будет написать статейку по настройке на форум.
    • Автор: Venom21
      Появилась такая проблема, нужно закрыть некоторые слоты под одежду, когда на определённый слот одет предмет…
      пример: возьмём экзоскелет от Фидова, там есть две версии которая одеваеться как на тело и ноги, и есть которая одеваться на разгрузку и пояс, так вот, нужно например чтобы при одетом экзаче на тело и ноги слоты под пояс и разгрузку блокировались, либо только под определенные предметы, если есть интерес то цену можем в личке обсудить…
      P.S. Разрешение от Фидова на переделку и переупаковку есть)
    • Автор: akklin
      Привет. 
      Я сделал несколько
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
  • Наш выбор

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.