Форумы Homeworld3.RU

Форумы Homeworld3.RU (http://www.homeworld3.ru/forum/index.php)
-   Верфи близ Сарума [HW2 Modding] (http://www.homeworld3.ru/forum/forumdisplay.php?f=24)
-   -   Скрипты ai (папка data::ai) (http://www.homeworld3.ru/forum/showthread.php?t=905)

Дрон01 10-06-2005 12:44 PM

1 Attachment(s)
Пролог: "Машина должна работать, человек - думать" (с)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} хей! Кто там у нас хвастался ассемблером? Дафай, за луу берись :p :) !

stalker[fox] 10-29-2005 10:04 AM

Ответ: Скрипты ai (папка data::ai)
 
2Дрон01
Смотрел их скрипты... честно, я разочарован :( надо же так облажатся. Товаришч. я тебе вот что скажу... давай мыло, я те исходники AI первого хомки скину... вот там AI так AI... расписываю что он там и как, ибо долго долго копался в файликах :) итак:
00. полная рандомизация, в зависимости от установок "ползунков" в настройках.
01. сбор статиски об игроке(т.е. тебя им любимого :)).
02. подбор тактик и всего остального для каждого типа корабля на основе собранной статистики во время игры.
03. деление кораблей на отдельные группы в оптимальном сочитании защита/нападение.
04. возможность ведения командной игры с другим AI.
05. х.з. зачем, но так же сбор инфы о других AI и о том как они тебе или же ты им налил.
06. постоянное наблюдение за твоими действиями.
07. ресурсная война.
08. просчёт своих действий наперёд.
... перечислять можно ещё долго... там скриптов на 1,3 Метра в архиве по максимальному сжатию... в общем давай мыло :)

ЗЫ: Респект товарищу Страннику за ссылу на исходники хомки :)

Дрон01 10-30-2005 04:25 AM

Ответ: Скрипты ai (папка data::ai)
 
Ну так внедряй во второй!
мыло kairllur@mail.ru
И это...надо с ползунками в UI Хомы второй разобраться - может и там что-нибудь подобное введём ;)

stalker[fox] 10-30-2005 01:19 PM

Ответ: Скрипты ai (папка data::ai)
 
offtop:
2 Дрон01: выслал тебе на мылце архивчик :) сматри, наблюдай :) изучай))

а теперь по сабжу... переделать AI из первого хомяка под второй та ещё трабла, учитывая специфику LUA... довольно забавно выходит :) я конечно посмотрю что можно сделать, но что-то сильно сомневаюсь что выйдет что-либо дельное... ибо адаптированием AI одной версии под другую ещё не приходилось заниматся :) ну чтож)) где наша не пропадала?) наша пропадала везде :)

Дрон01 11-07-2005 04:40 AM

Ответ: Скрипты ai (папка data::ai)
 
Идеи...тут смотреть и смотреть! обожди ещё погляжу, но что-то уже зреет...
кстати, насчёт как перевести. на домашнем сайте lua есть компиляторы-переводчики кода из одного языка в другой.
А ты кстати, чем занимаешься щас?

stalker[fox] 11-07-2005 07:47 AM

Ответ: Скрипты ai (папка data::ai)
 
я на данный момент сидю за компом и пялюсь в монитор в поисках знакомых букв! :D вооот)) а если совсем серьёзно то я щас занят написанием некоего подобия учебника для студентов родного универа по асьме... к тому же на той же асьме занимаюсь ярко выраженным геморроем типа обработчик мыши и клавы писякаю... точнее сказать я его уже написякал бякаю теперь эти функшены в дэлелельку :)

ГЫ)) вобщем неважно)) но факт остаётся фактом :) а фактически я сейчас с кое-каким народом разрабатываю новое ядро новой ОС... х.з. чё из этого получицЦа :) лиж бы не линух :D
ЗЫ: так что имхо ты меня зря пока редактором AI назначил... могу лишь вам в нём указывать на ваши же баги :) и объяснять чё и куда :) ибо занять :(

Сталк, я повыкусил здесь и ниже весь оффтоп, благо ты сам создал соответствующую ветвь ;)
Тут оно тяжело смотрится, да и отвлекает от основной темы дискуссии, а вот там можно и продолжить... :D
=T=

Ten 11-07-2005 11:58 AM

Ответ: Скрипты ai (папка data::ai)
 
St@lkeR, эт ты из РДНовских исходников первого хомы файлы с АИ выковыривал? Скажи, плз, какие именно. Там вроде каски были (kas), в сингле, по крайней мере (конечный автомат, который ведал, куда/как отправлять корабли в зависимости от действий игрока). Как устроен интеллект в мульти, я не знаю, но сбор статистики с соответствующим анализом точно есть. Хотя, с точки зрения игрока, АИ в ХВ2 сильнее, если в первом я в лучшие времена :rolleyes: разрывал всю семёрку (которая в союзе, все ползунки в max правом положении), то во втором больше двух не получалось (впрочем, не особо и стремился ;)).

stalker[fox] 11-07-2005 05:51 PM

Ответ: Скрипты ai (папка data::ai)
 
оффтоп не спорю, но всёже...
2Ten
ссыла с исходниками мертва... если хочешь, вышлю на мыльце полный эдишн, только мыло дай... и это, отошлю как карточку новую куплю... на этой инета всего ничего :)
ЗЫ: там порядка 78 метров исходников... кароче, в ихнем сетапе где-то около 20 :) так что, Ten, заводи мыло соответствующих размеров :)

Ten 11-08-2005 09:40 AM

Ответ: Скрипты ai (папка data::ai)
 
Quote:

Originally Posted by St@lkeR{FoX}
ссыла с исходниками мертва... если хочешь, вышлю на мыльце полный эдишн, только мыло дай... и это, отошлю как карточку новую куплю...

Спасибо, но не надо, я себе эти исходники ещё год назад скачал - ссылка вполне рабочая, только что проверил. Я имел ввиду, какие именно файлы отвечают за ИИ (эти 17Мб разворачиваются в 76, пойди найди, где и что).

stalker[fox] 11-08-2005 03:34 PM

Ответ: Скрипты ai (папка data::ai)
 
2Ten
адресок как они у меня живуть:
c:\Program Files\Relic Developer's Network\Homeworld Source\src\Game\
файлики которые начинаются естессна с AI ;) :) ну и там глянешь какие директивой include подрубаются к ним... кароче почти вся папка Game :)

Хранитель 11-20-2013 12:09 PM

Re: Скрипты ai (папка data::ai)
 
так, Дрон давай рассказывай мне всё, буду руководство делать))) а то нельзя так чтобы ничо ничо не было на форуме про ИИ
З.Ы. и самому надо очень)))

Добавлено через 2 минуты
ууу... да вас тут никого нету... беда пичаль горе огорчение.. ну в общем напишите как зайдёте

Дрон01 11-24-2013 01:29 PM

Re: Скрипты ai (папка data::ai)
 
Ну вы, батенька, даёте.

Тишь да гладь на Верфях, позабыто всё.
Эти скрипты, которые я написал в 2005-м, были первым, что я вообще самостоятельно сделал на ниве программирования, от совершенства они далеки.

Но насколько я помню в паке с RDN (официальное SDK от Релика для HW2) был гайд по созданию своей расы - и в том числе ИИ для неё. Найдёте?

Хранитель 03-17-2014 07:29 AM

Re: Скрипты ai (папка data::ai)
 
Code:

  1:  function `oninit' at line 38 [string ""]
 CPUPLAYER -- error in CPUPlayer: oninit() function was not found in CPU script -- FATAL EXIT --

помогите пожалуйста, что это значит?

Добавлено через 36 секунд
что за onint такой? что он делает?

Добавлено через 5 минут
охохо) только что нашел вашу папку с комментами) вот я слепошара) смпасибо) есть над чем работать)

Хранитель 03-20-2014 07:36 AM

Re: Скрипты ai (папка data::ai)
 
вот блин.. боюсь я не смогу один разобраться..

Добавлено через 7 часов 42 минуты
Code:

stack traceback:
  1:  function `dofilepath' [C]
  2:  main of string "" at line 9
 parameter: attempt to call global `CpuBuild_Init' (a nil value)
stack traceback:
  1:  function `oninit' at line 38 [string ""]
 CPUPLAYER -- error in CPUPlayer: oninit() function was not found in CPU script -- FATAL EXIT --

объясните чо он ноет а(( я вроде все как надо делал(
вот в cpubuild начало:
Code:

function CreateBuildDefinitions()
    if  s_race==Race_Hiigaran then
        kCollector = HGN_RESOURCECOLLECTOR
        kRefinery = HGN_RESOURCECONTROLLER
        kScout = HGN_SCOUT
        kInterceptor = HGN_INTERCEPTOR
        kBomber = HGN_ATTACKBOMBER
        kCarrier = HGN_CARRIER
        kShipYard = HGN_SHIPYARD
        kDestroyer = HGN_DESTROYER
        kBattleCruiser = HGN_BATTLECRUISER
    elseif s_race==Race_Vaygr then
        kCollector = VGR_RESOURCECOLLECTOR
        kRefinery = VGR_RESOURCECONTROLLER
        kScout = VGR_SCOUT
        kInterceptor = VGR_INTERCEPTOR
        kBomber = VGR_BOMBER
        kCarrier = VGR_CARRIER
        kShipYard = VGR_SHIPYARD
        kDestroyer = VGR_DESTROYER
        kBattleCruiser = VGR_BATTLECRUISER
    else
        kCollector = TBR_RESOURCECOLLECTOR
        kRefinery = TBR_RESOURCECONTROLLER
        kScout = TBR_SCOUT
        kInterceptor = TBR_INTERCEPTOR
        kBomber = TBR_BOMBER
        kCarrier = TBR_CARRIER
        kShipYard = TBR_SHIPYARD
        kDestroyer = TBR_DESTROYER
        kBattleCruiser = TBR_BATTLECRUISER
    end

end

вот начало cpubuildsubsystem :
Code:

function CpuBuildSS_Init()
    if  s_race==Race_Hiigaran then
        CpuBuildSS_DefaultSubSystemDemandRules = DoSubSystemDemand_Hiigaran

    elseif  s_race==Race_Vaygr then
        CpuBuildSS_DefaultSubSystemDemandRules = DoSubSystemDemand_Vaygr
    else
        CpuBuildSS_DefaultSubSystemDemandRules = DoSubSystemDemand_Tobari
    end

    sg_lastSpecialSubSysTime = 0
    sg_specialSubSysDelayTime = (150 + Rand(100))
    sg_retireCountCheck = 0
    sg_buildBCHyperspace = 1
end

а вот начало в cpuresearch:
Code:

function CpuResearch_Init()
    if  s_race==Race_Hiigaran then
        dofilepath("data:ai/hiigaran_upgrades.lua")
        DoUpgradeDemand = DoUpgradeDemand_Hiigaran
        DoResearchTechDemand = DoResearchTechDemand_Hiigaran
    elseif  s_race==Race_Vaygr then
        dofilepath("data:ai/vaygr_upgrades.lua")
        DoUpgradeDemand = DoUpgradeDemand_Vaygr
        DoResearchTechDemand = DoResearchTechDemand_Vaygr
    else
        dofilepath("data:ai/tobari_upgrades.lua")
        DoUpgradeDemand = DoUpgradeDemand_Tobari
        DoResearchTechDemand = DoResearchTechDemand_Tobari
    end

    sg_lastUpgradeTime = gameTime()
    sg_upgradeDelayTime = (180 + Rand(80))
    cp_researchDemandRange = 0.5
    if  g_LOD==1 then
        cp_researchDemandRange = 1
    end

    if  g_LOD==0 then
        cp_researchDemandRange = 2
    end

    if  Override_ResearchInit then
        Override_ResearchInit()
    end

end

это tobari_upgrades.lua :
Code:

-- LuaDC version 0.9.20
-- 20.11.2013 14:58:48
-- LuaDC by Age2uN
-- on error send source file (compiled lua) and this outputfile to Age2uN@gmx.net
--
aitrace("LOADING TOBARI UPGRADE INFO")
rt_mothership =
    {}
rt_capital =
    {}
rt_fighter =
    {}
rt_corvette =
    {}
rt_frigate =
    {}
rt_platform =
    {}
rt_collector =
    {}

в класдефе я все прописал, ну чего этой ныте еще надо :( сам цпубюлд цпублюдсубсистем и цпуресерч я потом прописывать буду не думаю что это надо щас ( помогите плиз пож(

karak 03-20-2014 10:14 PM

Re: Скрипты ai (папка data::ai)
 
Хранитель, нашёл похожую тему на форуме реликов, и там предлагают использовать полностью декомпилированную папку со скриптами. А ещё от себя рекомендую пользоваться notepad++ или другим подобным редактором вместо стандартного блокнота. Попробуй, вдруг этот решит твою проблему.

Дрон01 03-20-2014 11:16 PM

Re: Скрипты ai (папка data::ai)
 
Гайды по работе со скриптами шли в комплекте к RDN! Там же внутри как раз полностью декомпилированная папка с ai есть.

Я предупреждаю - не стоит пихать декомпилированные вручную файлы обратно в игру - от этого очень часто всё ломается.

Если хоть немного знаете английский, я думаю, разберётесь с архивом.

Пишите, что ещё непонятно, поможем.

Chimas 03-21-2014 06:16 AM

Re: Скрипты ai (папка data::ai)
 
The link KARAK provided are the decompiled files most of the modders use as a base for editing HW2. I noticed that many ppl use notepad++, but I use SCITE for editing LUA files.

Also, sometimes HW2.log (that is created using -luatrace parameter in the command line) warns you about the lack of ONINIT function although the function is there where it's supposed to be. Don't wahy it happens.

And eventually, if HW2.LOG doesn't tell you clearly why it is crashing, might be a recent edit inside a HOD file, so check for the last HOD files edited, there might be something missing in there.

Хранитель 03-21-2014 11:08 AM

Re: Скрипты ai (папка data::ai)
 
ого О_О, спасибо огромное, думаю поможет

Добавлено через 1 минуту
а интересно как самому ПОЛНОСТЬЮ декомпилировать, а?)

Дрон01 03-21-2014 04:39 PM

Re: Скрипты ai (папка data::ai)
 
Никак. Все декомпиляторы не могут восстановить исходный код в точности таким, каким он был. Затираются имена переменных, типы, классы, инлайнятся многие функции, оптимизируется прогонами код.

LuaDC вообще очень хороший декомпилятор, в 90% случаев получаешь то, что и было на входе. Но порою съедает таблицы и функции, на которые, по его мнению, нет ссылок.

А на INITы как раз и нет, поскольку их вызывает движок игры, а не другие LUA-файлы.

Хранитель 03-22-2014 05:56 AM

Re: Скрипты ai (папка data::ai)
 
Quote:

Originally Posted by Дрон01 (Post 57118)
Никак. Все декомпиляторы не могут восстановить исходный код в точности таким, каким он был. Затираются имена переменных, типы, классы, инлайнятся многие функции, оптимизируется прогонами код.

LuaDC вообще очень хороший декомпилятор, в 90% случаев получаешь то, что и было на входе. Но порою съедает таблицы и функции, на которые, по его мнению, нет ссылок.

А на INITы как раз и нет, поскольку их вызывает движок игры, а не другие LUA-файлы.

но ведь та папка полностью декомпилирована. значит как то это сделали.. вот я и спрашиваю как сделали..

Добавлено через 1 минуту
так. я намерен писать гайд по созданию ИИ. мне можно создать новую тему или прям тут писать?

Дрон01 03-22-2014 10:31 AM

Re: Скрипты ai (папка data::ai)
 
Quote:

Originally Posted by Хранитель (Post 57130)
но ведь та папка полностью декомпилирована. значит как то это сделали.. вот я и спрашиваю как сделали..

Она не декомпилирована, это настоящие исходники, от разработчиков. Они ещё не были скомпилированы, чтобы их декомпилить нужно было)

Создавай тему.

Эту я создал, когда мне было 15 лет.

Хранитель 03-22-2014 01:26 PM

Re: Скрипты ai (папка data::ai)
 
Quote:

Originally Posted by Дрон01 (Post 57132)
Она не декомпилирована, это настоящие исходники, от разработчиков. Они ещё не были скомпилированы, чтобы их декомпилить нужно было)

Создавай тему.

Эту я создал, когда мне было 15 лет.

Окай :) ток я не сразу) я еще практику проведу и буду в ворде калякать :)

Добавлено через 3 часа 44 минуты
так.. проводил практику.. все написал.. игра запускается.. все ок,.. но моя расса ничо не строит.. как то странно.. не знаете с чем это могло бы быть связано? вроде все файлы обработал..

karak 03-22-2014 11:09 PM

Re: Скрипты ai (папка data::ai)
 
Хранитель, а у твоей расы вообще есть корабли? В смысле присутствуют ли все те корабли, что ты указал в папке ships со всеми необходимыми файлами, да и прописана ли сама раса в скриптах?

Хранитель 03-23-2014 06:18 AM

Re: Скрипты ai (папка data::ai)
 
karak, естественно я бы не взялся за ИИ, если бы сама раса у меня не получилась бы. я щас снму на фрапс всю свою работу и выложу на youtube

Хранитель 03-23-2014 07:12 AM

Re: Скрипты ai (папка data::ai)
 
эм. в общем не получилось записать.. фрапс почему то у меня перестал снимать рабочий стол... но я все прописал в race.lua в familylist.lua прописал в скриптах building and research tobari build.lua и research.lua корабли сделал. стартингфлит сделал. все в общем работает. я могу вполне нормально играть за мою рассу. все так как мне надо. но когда это ИИ, она просто стоит на месте... конечно ресурсы собирает, но почемуто ничего не строит.... хотя я думаю я все в ИИ прописал. вроде все файлики обработал.
класдеф показывать не буду. это глупо. с ним проблем нету 100%. так дальше. цпубюлд:
Code:

-- =============================================================================
-- Homeworld 2 Clean Data Resource Project
-- By S110
-- Version 1.0
-- 02/06/2010
-- Tools used: EditPad Lite, LuaDC version 0.9.19, and Cold Fusion LUA Decompiler v1.0.0
-- =============================================================================

aitrace("LOADING CPU BUILD")

dofilepath("data:ai/cpuresource.lua")
dofilepath("data:ai/cpubuildsubsystem.lua")

function CreateBuildDefinitions()
        if (s_race == Race_Hiigaran) then
        kCollector = HGN_RESOURCECOLLECTOR
        kRefinery = HGN_RESOURCECONTROLLER
        kScout = HGN_SCOUT
        kInterceptor = HGN_INTERCEPTOR
        kBomber = HGN_ATTACKBOMBER
        kCarrier = HGN_CARRIER
        kShipYard = HGN_SHIPYARD
        kDestroyer = HGN_DESTROYER
        kBattleCruiser = HGN_BATTLECRUISER
        elseif (s_race == Race_Vaygr) then
        kCollector = VGR_RESOURCECOLLECTOR
        kRefinery = VGR_RESOURCECONTROLLER
        kScout = VGR_SCOUT
        kInterceptor = VGR_INTERCEPTOR
        kBomber = VGR_BOMBER
        kCarrier = VGR_CARRIER
        kShipYard = VGR_SHIPYARD
        kDestroyer = VGR_DESTROYER
        kBattleCruiser = VGR_BATTLECRUISER
        else
        kCollector = TBR_RESOURCECOLLECTOR
        kRefinery = TBR_RESOURCECONTROLLER
        kScout = TBR_SCOUT
        kInterceptor = TBR_INTERCEPTOR
        kBomber = TBR_BOMBER
        kCarrier = TBR_CARRIER
        kShipYard = TBR_SHIPYARD
        kDestroyer = TBR_DESTROYER
        kBattleCruiser = TBR_BATTLECRUISER
        end
end

function CpuBuild_PersonalityDemand()
        if (s_race == Race_Hiigaran) then
        sg_classPersonalityDemand[eFighter] = 0.5
        sg_classPersonalityDemand[eCorvette] = 0.25
        sg_classPersonalityDemand[eFrigate] = 0
        elseif (s_race == Race_Vaygr) then
        sg_classPersonalityDemand[eFighter] = 0.5
        sg_classPersonalityDemand[eCorvette] = 0.5
        sg_classPersonalityDemand[eFrigate] = 0.25
        else
        sg_classPersonalityDemand[eFighter] = 0.5
        sg_classPersonalityDemand[eCorvette] = 0.5
        sg_classPersonalityDemand[eFrigate] = 0.25
        end
        sg_classPersonalityDemand[ePlatform] = -0.5
        if (Rand(100) < 10) then
        sg_classPersonalityDemand[ePlatform] = 0
        end
        if (g_LOD >= 2) then
        sg_classPersonalityDemand[ePlatform] = sg_classPersonalityDemand[ePlatform] - 3
        end
        aitrace("PersonalityDemand: Fi:"..sg_classPersonalityDemand[eFighter].." Co:"..sg_classPersonalityDemand[eCorvette].." Fr:"..sg_classPersonalityDemand[eFrigate])
end

это начало. первые две функции. остальное я посчитал ненужным прописывать. надеюсь это так. цпубюлдсистем:
Code:

-- =============================================================================
-- Homeworld 2 Clean Data Resource Project
-- By S110
-- Version 1.0
-- 02/06/2010
-- Tools used: EditPad Lite, LuaDC version 0.9.19, and Cold Fusion LUA Decompiler v1.0.0
-- =============================================================================

function CpuBuildSS_Init()
        if (s_race == Race_Hiigaran) then
        CpuBuildSS_DefaultSubSystemDemandRules = DoSubSystemDemand_Hiigaran
        elseif (s_race == Race_Vaygr) then
        CpuBuildSS_DefaultSubSystemDemandRules = DoSubSystemDemand_Vaygr
        else
        CpuBuildSS_DefaultSubSustemDemandRules = DoSubSystemDemand_Tobari
        end
        sg_lastSpecialSubSysTime = 0
        sg_specialSubSysDelayTime = 150 + Rand(100)
        sg_retireCountCheck = 0
        sg_buildBCHyperspace = 1
end

милитари не трогал. первая функция в ресерче :
Code:

function CpuResearch_Init()
        if (s_race == Race_Hiigaran) then
        dofilepath("data:ai/hiigaran_upgrades.lua")
        DoUpgradeDemand = DoUpgradeDemand_Hiigaran
        DoResearchTechDemand = DoResearchTechDemand_Hiigaran
        elseif (s_race == Race_Vaygr) then
        dofilepath("data:ai/vaygr_upgrades.lua")
        DoUpgradeDemand = DoUpgradeDemand_Vaygr
        DoResearchTechDemand = DoResearchTechDemand_Vaygr
        else
        dofilepath("data:ai/tobari_upgrades.lua")
        DoUpgradeDemand = DoUpgradeDemand_Tobari
        DoResearchTechDemand = DoResearchTechDemand_Tobari
        end
        sg_lastUpgradeTime = gameTime()
        sg_upgradeDelayTime = 180 + Rand(80)
        cp_researchDemandRange = 0.5
        if (g_LOD == 1) then
        cp_researchDemandRange = 1
        end
        if (g_LOD == 0) then
        cp_researchDemandRange = 2
        end
        if (Override_ResearchInit) then
        Override_ResearchInit()
        end

в том же файле функция, которую я прописал, чтобы тобари исследовали технологии:
Code:

function DoResearchTechDemand_Tobari()
        if (Util_CheckResearch(CORVETTETECH)) then
        local corvdemand = ShipDemandMaxByClass(eCorvette)
        if (corvdemand > 0) then
        ResearchDemandSet(CORVETTETECH, corvdemand + 0.5)
        end
        end
        if (Util_CheckResearch(ASSAULTCORVETTETECH)) then
        local demand = ShipDemandGet(TBR_ASSAULTCORVETTE)
        if (demand > 0) then
        ResearchDemandSet(ASSAULTCORVETTETECH, demand)
        end
        end
        if (Util_CheckResearch(SHIPYARDTECH)) then
        local demand = ShipDemandGet(TBR_SHIPYARD)
        if (demand > 0) then
        ResearchDemandSet(SHIPYARDTECH, demand)
        end
        end
        if (Util_CheckResearch(BATTLECRUISERTECH)) then
        local demand = ShipDemandGet(TBR_BATTLECRUISER)
        if (demand > 0) then
        ResearchDemandSet(BATTLECRUISERTECH, demand)
        end
        end
        if (Util_CheckResearch(DESTROYERTECH)) then
        local demand = ShipDemandGet(TBR_DESTROYER)
        if (demand > 0) then
        ResearchDemandSet(DESTROYERTECH, demand)
        end
        end
        if (Util_CheckResearch(BOMBERTCORVETTETECH)) then
        local demand = ShipDemandGet(TBR_BOMBERCORVETTE)
        if (demand > 0) then
        ResearchDemandSet(BOMBERCORVETTETECH, demand)
        end
        end
        if (Util_CheckResearch(FRIGATETECH)) then
        local frigdemand = ShipDemandMaxByClass(eFrigate)
        if (frigdemand > 0) then
        ResearchDemandSet(FRIGATETECH, frigdemand + 0.5)
        end
        end
end

и последнее я сделал тобариапгрейдс. и он пустой...
Code:

-- =============================================================================
-- Homeworld 2 Clean Data Resource Project
-- By S110
-- Version 1.0
-- 02/06/2010
-- Tools used: EditPad Lite, LuaDC version 0.9.19, and Cold Fusion LUA Decompiler v1.0.0
-- =============================================================================

aitrace("LOADING TOBARI UPGRADE INFO")

rt_mothership = {}
rt_capital = {}
rt_fighter = {}
rt_corvette = {}
rt_frigate = {}
rt_platform = {}
rt_collector = {}

я думаю это все что я сделал и больше ничего не требуется.. но моя расса не строит корабли... почему то..

Добавлено через 5 часов 35 минут
О_О_О начал игру с компами, поставил себе союзника хиигару и два противника ваиигров. ваигры НЕ СТРОЯТ КАК И ТОБАРИ!!! ВТФ!!!! чтото странное!!!

karak 03-23-2014 09:51 PM

Re: Скрипты ai (папка data::ai)
 
Хранитель, трудно что-то сказать пока мы не увидим всех файлов.

Хранитель 03-24-2014 06:22 AM

Re: Скрипты ai (папка data::ai)
 
race.lua
familylist.lua

startingfleets/tobari00.lua

Building and research Tobari:
build.lua
дальше у мну комп тормозит =/ сек
research.lua

шипы выкладывать не буду =/ уж больно много . терь ИИ
classdef.lua
cpubuild.lua щас еще.. а то комп ща сгорит х_х
cpubuildsubsystem.lua
cpumilitary.lua
следующий заход =р

Хранитель 03-24-2014 06:28 AM

Re: Скрипты ai (папка data::ai)
 
cpuresearch.lua

cpuresource.lua
default.lua
ну хиигаран и ваигр апгрейдс не буду писать, напишу тобарьский
Tobari_upgrades.lua
а он почти пустой х_х

Добавлено через 42 секунды
вроде как все :)

Хранитель 03-24-2014 06:39 AM

Re: Скрипты ai (папка data::ai)
 
случайный пост х_х

karak 03-24-2014 12:12 PM

Re: Скрипты ai (папка data::ai)
 
Хранитель, да запаковал всё в архив и выложил бы. А проблема скорее всего в том, что ты занял слот вэйгра в race.lua. Все новые расы надо добавлять после рандомной, чтобы потом не было проблем.

Хранитель 03-24-2014 06:35 PM

Re: Скрипты ai (папка data::ai)
 
Quote:

Originally Posted by karak (Post 57178)
Хранитель, да запаковал всё в архив и выложил бы. А проблема скорее всего в том, что ты занял слот вэйгра в race.lua. Все новые расы надо добавлять после рандомной, чтобы потом не было проблем.

о, спасибо, я попробую :)

Добавлено через 15 часов 59 минут
даааа получилось :) ну все) в ближайшее время будет полный гайд :)

Добавлено через 26 часов 20 минут
эмм... заметил что они не исследуют.. теперь мне с этим надо разобраться...

karak 03-26-2014 05:26 PM

Re: Скрипты ai (папка data::ai)
 
Quote:

Originally Posted by Хранитель (Post 57185)
эмм... заметил что они не исследуют.. теперь мне с этим надо разобраться...

У тебя в cpuresearch.lua нет функции "function DoUpgradeDemand_tobari()". Попробуй сделать эту функцию для тобари.

Хранитель 03-29-2014 04:07 PM

Re: Скрипты ai (папка data::ai)
 
эм.. сори что уходил.. так.. я прописал но они все равно стоят... (

Добавлено через 38 секунд
вернее не исследуют а не стоят

karak 03-30-2014 12:41 AM

Re: Скрипты ai (папка data::ai)
 
Quote:

Originally Posted by Хранитель (Post 57153)
я сделал тобариапгрейдс. и он пустой...

И он до сих пор пустой? Если да, то тогда понятно в чём твоя проблема.

Хранитель 04-01-2014 08:54 AM

Re: Скрипты ai (папка data::ai)
 
апгрейдов нет. зачем они. у меня технологии прописаны, а апгрейдов нет. мне надо чтобы они прописанные технологии изучали. ну например ща скажу, чтоб понятно было: есть допустим эсминец. и есть для него технология. вот я ее прописал и когда они исследуют ее они смогут строить эсминцы. а апгрейдов у меня нету.

Хранитель 04-21-2014 10:20 AM

Re: Скрипты ai (папка data::ai)
 
доразберусь после моего кризиса..........................

Хранитель 09-01-2014 08:11 AM

Re: Скрипты ai (папка data::ai)
 
Нет, вы конечно можете смело меня гнобить и оскорблять за мой уход, но возможно я вернулся:) Я просто все распечатаю тупо, напишу в большой текстовик всю проблему, со скринами и объяснениями, и может наконец то вы поймете в чем моя проблема. если, конечно, я сам не разберусь в ней.


All times are GMT +3. The time now is 04:41 AM.