View Single Post
Old 10-06-2005, 12:44 PM   #1
Дрон01
Вице-адмиралAntic1tizen One
 
Дрон01's Avatar
 
Faction:
Кушане - киит Наабал

Join Date: Jul 2005
Location: Israel
Posts: 974
Лампочка

Пролог: "Машина должна работать, человек - думать" (с)International Business Machines
Этот трид, как вы уже, наверное, догадались, посвящен скриптингу AI, я его моддер; язык Lua (см. соседнюю темку). Итак, открываем папку ai. Что мы видим в этой папке? Праильно, файлы. Для тех, кто знает английский хоть чуть-чуть, листинг многих функций в этих файлах не представит труда т.к. имена функций выбраны осмысленно. Пока кратко о самих файлах.
1)Defailt.lua --Файл, исполняемый по умолчанию и, кстати, самый главный, запрос к нему выполняется в игре каждую секунду (у разных степеней сложности этот интервал варьируется по-разному). Подключение различных файлов как хидерных(т.е. главная программа имеет право брать из них функции) имеет вид "dofilepath(path)", вы его в начале многих скриптовых файлов будете видеть.
2)Cpubuild.lua --подключается в default.lua и, в свою очередь, подключает некоторый другие (щас не вспомню, но это не суть важно). Файл предназначен для обеспечения ИИ системами постройки кораблей. Кроме того, определяет типы кораблей для каждой расы в отдельности - что у них считается Батлом, а что перехватчиком. Приставка k (например, kBattleCruiser, kCarrier). Обозначает единственный корабль.
3)Cpuresearch.lua --Исследования, которые проводит комп. Крайне важны функции DoUpgradeDemand()(апгрейды) и DoREsearchTechDemand()(технологии)
4)Cpubuildsubsystem.lua --постройка субсистем. Очень спорный файлик, у многих из-за него проблемы, но мне всё понятно, так что обращайтесь.
5)vaygr_upgrades.lua и hiigaran_upgrades.lua(не помню, правильно назвал?) --Апгрейды кораблей (не технологии, именно апгрейды, не путайте!)
6)cpumilitary.lua --Все военные действия ИИ обеспечиваются здесь.
Ну, вроде всё!
Нет, не всё!
7)classdef.lua --про самое главное и забыл. В этом файле описание типов всех кораблей, кто против чего силён и слаб. Данные используются почти во всех скриптах, приставка e(обозначает не один корабль, целый класс, тут не путайте с приставкой k!) (например, eBuilder, eAntiFighter)

Тут, по-моему, надо небольшое лирическое отступление. Дело в том, что для классов и конкретных значений в Lua, да и в Хоуме, используются разные функции. Например, для класса "eBuilder", можно увидеть такую функцию: "ShipDemandAddByClass(eBuilder)" - типичная классовая фукция. Для конкретных кораблей это выглядит, например, так: "ShipDemandAdd(kScout)". Пояснения по этим функция да и многим другим, будут даны позже.

Итак, дело начато. Хотелось бы, чтоб мне кто-нить помог, да если всё это самому, без руководств осваивать - ИМХО лучше будет запомнить что к чему. So, The Journey Begins...

Ещё есть идея сделать специальную версию ИИ для дебага. В стадии разработки. Выводит каждый шаг ИИ в текстовый файл.

Да, вот вам архивчик, в нём пофиксенный архив ИИ для многострадального EX MODa. Если кто не знает, что с ним делать, см. Тему "Наши моды". Повторяю, архивчик ПОФИКСЕННЫЙ! Все праблы устранены.

З.Ы. St@lker {Fox} хей! Кто там у нас хвастался ассемблером? Дафай, за луу берись !
Attached Files
File Type: zip ai.zip (27.1 KB, 21 views)

Last edited by Ten : 06-23-2006 at 11:23 AM. Reason: мультпостинг
Дрон01 is offline   Reply With Quote