Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
ClowDes

Помощь в коде [Maphack].

Всем привет, имеется код с 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];
};
};

Share this post


Link to post
Share on other sites

21 answers to this question

Recommended Posts

  • 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;

Share this post


Link to post
Share on other sites



  • 0

перед
 

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

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

_bandit1 = [];

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

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

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

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

Share this post


Link to post
Share on other sites
  • 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]
};
}

Share this post


Link to post
Share on other sites
  • 0

1.JPG.3f427071ce7428620cc98a37e12a3be7.JPG

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

Share this post


Link to post
Share on other sites
  • 0
8 часов назад, ClowDes сказал:

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

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

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

Share this post


Link to post
Share on other sites
  • 0
Цитата

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

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

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

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0
53 минуты назад, ClowDes сказал:

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

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

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

 

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

Share this post


Link to post
Share on other sites
  • 0

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

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

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

Share this post


Link to post
Share on other sites
  • 0

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

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

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

Edited by ClowDes (see edit history)

Share this post


Link to post
Share on other sites
  • 0
1 час назад, ClowDes сказал:

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

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

ArmA2OA.RPT

Share this post


Link to post
Share on other sites
  • 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 - это персонаж за которого играет игрок.

Edited by ClowDes (see edit history)

Share this post


Link to post
Share on other sites
  • 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]"

Share this post


Link to post
Share on other sites
  • 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;

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

Edited by NoNameUltima (see edit history)

Share this post


Link to post
Share on other sites
  • 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

Edited by ClowDes (see edit history)

Share this post


Link to post
Share on other sites
  • 0
Цитата

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

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

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

 

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

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites
  • 0

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

Edited by ClowDes (see edit history)

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 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;

 

Edited by NoNameUltima (see edit history)

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By DarkShy
      Приветствую! 
      Купил  мод. При подписи ошибок не возникает, если его одного использовать - все ок, но если добавить еще один мод в addons, то при входе клиента на сервер вываливается ошибка, что мол подписи не совпадают.
      Ключ один использовал, ключ в "ключах" лежит. 
      "Клиентский PBO не является частью сервера. Убедитесь, что мод установлен правильно, и вы не добавили новых PBO. Попробуйте восстановить мод через средство запуска."
    • By 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.
      прошу не угарать,надо мной,я не профи-скриптер,самоучка,которому пригорело ставить свой Сервер для народа...
      спасибо!
    • By 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 и в курсе этой темы - подскажите как решали. Неделя отчаянной работы уже заставляет краем глаза посматривать на кошелёк чтобы это сделал хоть кто-то более шарящий в этом деле, но желательно всё же объяснил. Заранее спасибо всем кто откликнется - жду всех на обсуждение. В случае успеха можно будет написать статейку по настройке на форум.
    • By Venom21
      Появилась такая проблема, нужно закрыть некоторые слоты под одежду, когда на определённый слот одет предмет…
      пример: возьмём экзоскелет от Фидова, там есть две версии которая одеваеться как на тело и ноги, и есть которая одеваться на разгрузку и пояс, так вот, нужно например чтобы при одетом экзаче на тело и ноги слоты под пояс и разгрузку блокировались, либо только под определенные предметы, если есть интерес то цену можем в личке обсудить…
      P.S. Разрешение от Фидова на переделку и переупаковку есть)
    • By zfbubusik
      Привет. 
      Я сделал несколько
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.