Jump to content


Photo

Как научить ботов уму-разуму?


Best Answer Disab , 10 June 2013 - 22:23

Теперь бы определится какой параметр лучше поставить на меткость стрельбы ботов, чтобы не было снайперских пулемётчиков в игре. По умолчанию боты стреляли ну уж очень точно на любых дистанциях. Придётся методом подбора выставлять меткость, дабы найти золотую середину. А можно уточнить по поводу установки этого мода?! В частности нужно ли прописывать этот мод в ярлыке выделенного сервера, или достаточно просто закинуть мод в папку с армой (нужные файлы по своим директориям) и запустить выделенный сервак? И какой параметр лучше выставить в строке - _mode = ....? Клиент-сервер или просто сервер. Go to the full post


  • Please log in to reply
4 replies to this topic

#1 OFFLINE   Disab

Disab

    Ефрейтор

  • Пользователи
  • 74 posts

Posted 10 June 2013 - 14:24

Привет! Помогите разобраться с новым модом (Zeu_ServerSkill для ARMA3) по настройке умственного развития и способностей ботов. С English я не особо дружу, поэтому буду благодарен помощи по настройке и использованию данного мода. В частности - где и на что именно нужно менять параметры. Мануал и сам мод в архиве. Фаил настройки: // LAST Edited : 7/4/2013 // MP MACHINE : Serverside // Called from : Zeu_ServerBriefing/init.sqf // Called using : []execVm // Time Called : Before Time 0 // Description : Defines AI skills // (Temporary or permanent fix for the inability to define your precision and skill settings in the .ArmA3profile) // It also gives you more control over the entire skill settings for AI // // COMMENTS skill array elements as follows // // select 0: aimingspeed // select 1: aimingaccuracy // select 2: aimingshake // select 3: spotdistance // select 4: spottime // select 5: commanding // select 6: courage // select 7: endurance // select 8: reloadSpeed // select 9: general // // Value range is between 0 and 1 _option = [10,5]; // 1st element selects the skill matrix option // 2nd element selects the randomisation matrix option // The randomisation is +/- from the core selected value // For example if you used the _option = [3,2] then the 0.45 core value will be randomised to a value between 0.35 and 0.55 _mode = 2; // 0: Addon module is disabled // 1: serverside only // 2: Server & Clientside // 3: Single player mode _debug = FALSE; // This will output the skill settings to your server .rpt for debugging purposes // The following is the core skill matrix _skill = switch(_option select 0)do { case 0:{[ 0.2, 0.2, 0.2, 1, 0.2, 1, 0.2, 1, 0.2, 1];}; case 1:{[0.25, 0.25, 0.25, 1, 0.25, 1, 0.25, 1, 0.25, 1];}; case 2:{[0.35, 0.35, 0.35, 1, 0.35, 1, 0.35, 1, 0.35, 1];}; case 3:{[0.45, 0.45, 0.45, 1, 0.45, 1, 0.45, 1, 0.45, 1];}; case 4:{[0.55, 0.55, 0.55, 1, 0.55, 1, 0.55, 1, 0.55, 1];}; case 5:{[0.65, 0.65, 0.65, 1, 0.60, 1, 0.65, 1, 0.65, 1];}; case 6:{[0.75, 0.75, 0.75, 1, 0.75, 1, 0.75, 1, 0.75, 1];}; case 7:{[0.85, 0.85, 0.85, 1, 0.80, 1, 0.85, 1, 0.85, 1];}; case 8:{[0.95, 0.95, 0.95, 1, 0.95, 1, 0.95, 1, 0.95, 1];}; case 9:{[1,1,1,1,1,1,1,1,1];}; case 10:{[0.5, 0.34, 0.5, 1, 0.7, 1, 0.6, 0.6, 0.6, 1];}; default {[0.1, 0.45, 0.45, 1, 0.45, 1, 0.45, 1, 0.45, 1];}; }; // The following is the randomisation skill matrix _rnd = switch(_option select 1)do { case 0:{[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];}; // use this option if you do not want randomisation case 1:{[ 0.5, 0.5, 0.5, 0, 0.5, 0, 0.5, 0, 0.5, 0];}; case 2:{[ 0.1, 0.1, 0.1, 0, 0.1, 0, 0.1, 0, 0.1, 0];}; case 3:{[ 1.5, 1.5, 1.5, 0, 1.5, 0, 1.5, 0, 1.5, 0];}; case 4:{[ 0.2, 0.2, 0.2, 0, 0.2, 0, 0.2, 0, 0.2, 0];}; case 5:{[ 0.05, 0.05, 0.05, 0, 0.05, 0, 0.05, 0.05, 0.05, 0];}; default {[ 0.1, 0.1, 0.1, 0, 0.1, 0, 0.1, 0, 0.1, 0];}; }; // return [_skill,_rnd,_mode,_debug];

Attached Files


  • 0

#2 OFFLINE   Blender

Blender

    Прапорщик

  • Администраторы
  • 615 posts
  • Откуда:Torrevieja, España

Posted 10 June 2013 - 19:52

Так всеже написано в комментах!?
_option = [10,5]; // 1st element selects the skill matrix option
// 2nd element selects the randomisation matrix option
// The randomisation is +/- from the core selected value
// For example if you used the _option = [3,2] then the 0.45 core value will be randomised to a value between 0.35 and 0.55

В переменной _option два элемента - 10 и 5, отвечают за то, какой массив будет выбираться из матриц ниже.
10 - это "case 10:" для первого массива
5 - это "case 5:" из второго массива
Можно поменять на любое другое число в пределах кода ниже
т.е. если стоит в первом элементе число 10, то:
_skill = switch(_option select 0)do
{
case 0:{[ 0.2, 0.2, 0.2, 1, 0.2, 1, 0.2, 1, 0.2, 1];};
case 1:{[0.25, 0.25, 0.25, 1, 0.25, 1, 0.25, 1, 0.25, 1];};
case 2:{[0.35, 0.35, 0.35, 1, 0.35, 1, 0.35, 1, 0.35, 1];};
case 3:{[0.45, 0.45, 0.45, 1, 0.45, 1, 0.45, 1, 0.45, 1];};
case 4:{[0.55, 0.55, 0.55, 1, 0.55, 1, 0.55, 1, 0.55, 1];};
case 5:{[0.65, 0.65, 0.65, 1, 0.60, 1, 0.65, 1, 0.65, 1];};
case 6:{[0.75, 0.75, 0.75, 1, 0.75, 1, 0.75, 1, 0.75, 1];};
case 7:{[0.85, 0.85, 0.85, 1, 0.80, 1, 0.85, 1, 0.85, 1];};
case 8:{[0.95, 0.95, 0.95, 1, 0.95, 1, 0.95, 1, 0.95, 1];};
case 9:{[1,1,1,1,1,1,1,1,1];};
------>>> case 10:{[0.5, 0.34, 0.5, 1, 0.7, 1, 0.6, 0.6, 0.6, 1];}; <<<-------- ВЫБЕРЕТСЯ ЭТОТ МАССИВ
default {[0.1, 0.45, 0.45, 1, 0.45, 1, 0.45, 1, 0.45, 1];};
};
и второй по аналогии, т.е. строчка с case 5.

Внутри каждого массива находится 10 элементов с диапазоном от 0 до 1, каждый элемент отвечает за какой-либо скилл (что тоже написано в коментах).
1 aimingspeed (скорость прицеливания)
2 aimingaccuracy (точность)
3 aimingshake (тряска при стрельбе) ?
4 spotdistance (дистанция на которой ИИ заметит кого-либо)
5 spottime (время, необходимое для того чтобы увидеть кого-либо)
6 commanding (хз)
7 courage (мужество... полагаю что это что-то вроде принятия решения бежать в бой сломя голову)
8 endurance (выносливость)
9 reloadSpeed (скорость перезарядки)
10 general (хз)

Значения меняются от 0 до 1.. т.е. от 0.0 до 1.0

т.е. хотим сделать ботам максимальную точность, то выбираем нужный "case", выбранный переменной _option.
Например выбрано 10, значит мы берем 10й массив:
case 10:{[0.5, 0.34, 0.5, 1, 0.7, 1, 0.6, 0.6, 0.6, 1];};
и заменяем второй элемент (0.34) на 1:
case 10:{[0.5, 1, 0.5, 1, 0.7, 1, 0.6, 0.6, 0.6, 1];};

_mode - Определяет режим работы аддона:
_mode = 2; // 0: Addon module is disabled
// 1: serverside only
// 2: Server & Clientside
// 3: Single player mode
1- только сервер, 2 - сервер и клиент, 3 - одиночная игра, 0 - аддон отключен.
Например:
_mode = 3;
Аддон будет работать только в одиночной игре.

_debug - Включает или отключает запись в лог файл.
_debug = FALSE; // This will output the skill settings to your server .rpt for debugging purposes

  • 1

#3 OFFLINE   Disab

Disab

    Ефрейтор

  • Пользователи
  • 74 posts

Posted 10 June 2013 - 21:22

Спасибо! Значит значения в строчках (например case 10:{[0.5, 1, 0.5, 1, 0.7, 1, 0.6, 0.6, 0.6, 1];};) можно тоже редактировать под себя?
  • 0

#4 OFFLINE   Blender

Blender

    Прапорщик

  • Администраторы
  • 615 posts
  • Откуда:Torrevieja, España

Posted 10 June 2013 - 22:06

Да. Также можно отредактировать второе значение из переменной _option (5 по умолчанию) в следующей выборке массивов:
// The following is the randomisation skill matrix
_rnd = switch(_option select 1)do
{
case 0:{[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];}; // use this option if you do not want randomisation
case 1:{[ 0.5, 0.5, 0.5, 0, 0.5, 0, 0.5, 0, 0.5, 0];};
case 2:{[ 0.1, 0.1, 0.1, 0, 0.1, 0, 0.1, 0, 0.1, 0];};
case 3:{[ 1.5, 1.5, 1.5, 0, 1.5, 0, 1.5, 0, 1.5, 0];};
case 4:{[ 0.2, 0.2, 0.2, 0, 0.2, 0, 0.2, 0, 0.2, 0];};
case 5:{[ 0.05, 0.05, 0.05, 0, 0.05, 0, 0.05, 0.05, 0.05, 0];};
default {[ 0.1, 0.1, 0.1, 0, 0.1, 0, 0.1, 0, 0.1, 0];};
};
Это рандомайзер скилов. Выбранные скилы у каждого ИИ будут рандомно варьироваться в диапазоне, указанном в рандомайзере.
Т.е. у нас выбран по умолчанию 5-й массив ("case 5"). Следовательно все элементы, указанные в первой выборке массивов ("case 10") будут варьироваться на +-0.05.
Например таже точность (0.34) может быть от 0.29 до 0.39.
  • 0

#5 OFFLINE   Disab

Disab

    Ефрейтор

  • Пользователи
  • 74 posts

Posted 10 June 2013 - 22:23   Best Answer

Теперь бы определится какой параметр лучше поставить на меткость стрельбы ботов, чтобы не было снайперских пулемётчиков в игре. По умолчанию боты стреляли ну уж очень точно на любых дистанциях. Придётся методом подбора выставлять меткость, дабы найти золотую середину. А можно уточнить по поводу установки этого мода?! В частности нужно ли прописывать этот мод в ярлыке выделенного сервера, или достаточно просто закинуть мод в папку с армой (нужные файлы по своим директориям) и запустить выделенный сервак? И какой параметр лучше выставить в строке - _mode = ....? Клиент-сервер или просто сервер.
  • 0




Яндекс.Метрика