Как научить ботов уму-разуму?
Best Answer Disab , 10 June 2013 - 22:23
Теперь бы определится какой параметр лучше поставить на меткость стрельбы ботов, чтобы не было снайперских пулемётчиков в игре. По умолчанию боты стреляли ну уж очень точно на любых дистанциях. Придётся методом подбора выставлять меткость, дабы найти золотую середину. А можно уточнить по поводу установки этого мода?! В частности нужно ли прописывать этот мод в ярлыке выделенного сервера, или достаточно просто закинуть мод в папку с армой (нужные файлы по своим директориям) и запустить выделенный сервак? И какой параметр лучше выставить в строке - _mode = ....? Клиент-сервер или просто сервер. Go to the full post
#1 OFFLINE
Posted 10 June 2013 - 14:24
#2 OFFLINE
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 mode1- только сервер, 2 - сервер и клиент, 3 - одиночная игра, 0 - аддон отключен.
Например:
_mode = 3;Аддон будет работать только в одиночной игре.
_debug - Включает или отключает запись в лог файл.
_debug = FALSE; // This will output the skill settings to your server .rpt for debugging purposes
#3 OFFLINE
Posted 10 June 2013 - 21:22
#4 OFFLINE
Posted 10 June 2013 - 22:06
// 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.
#5 OFFLINE
Posted 10 June 2013 - 22:23 Best Answer