Текущее время: 29 мар 2024 01:36

Часовой пояс: UTC + 3 часа


Правила форума


Внимание! Все права на материалы опубликованные в этом форуме принадлежат их авторам! Перепечатка туториалов и статей разрешена только со ссылкой на этот сайт! В противном случае факт перепечатки считается нарушением авторских прав!



Новая тема Ответить
Страница 1 из 13
[ Сообщений: 183 ]
На страницу 1, 2, 3, 4, 5 ... 13  След.
Автор
Сообщение
Заголовок сообщения: [Мануалы] Программирование ИИ (Ботов)
СообщениеДобавлено: 27 янв 2007 18:10
Представляю вашему вниманию маленький туториал который я решил перевести и добавил кое что от себя
Надеюсь кому нибудь он понадобится.


Этот маленький туториал научит вас программировать АИ для уровней RTCW..

АИ скриптинг - это программирование ботов т.е.вы сможете сделать их более умными в том плане что они будут выполнять разные движения.Например курить сиграрету, или ходить по указанным вами маркерам так же иметь определенное количество здоровья атаковывать врага более обдуманно. или же убивать самого себя(камикадезе) :-)

если вы хотите стать маппером не пытайтесь отбросить скриптинг потому что ни одна ваша карта на получится чумавой без умных ботов.:D

Мы начинаем...!!!!:cool:

Итак что вам понадобится....

1.RTCW установленная на вашем компе.
2.GTKRadiant, редактор уровней.
3.И любой текстовый редактор.
4.И еще - терпение , время . понимающая вас семья , а так же сильный кофе :-)


Первая карта

Мы начинаем с простой карты.Запустите Радиант и создайте маленький скайбокс..Сделайте ее HOLOW и поставьте info_player_start (направление 180)...
и постарайтесь сделать землю по которой будет ходить игрок(не надо особо мудрить потому что эта ваша учебная карта)
Нам просто нужно место где бот сможет передвигатся.А вы в свою очередь должны боту сказать куда он пойдет и что сделает.
Для этого поставьте АИ-Маркер(ai_marker) и дайте какое нибудь имя..

Если вы хотите проверить что у вас получилось в игре, вы можете скомпилировать ее с помошью q3map или q3map2. Я назвал свою карту tut.map
Чтобы загрузить вашу карту :
1.Запуск RTCW
2.Нажимаете"Ё" и пишете "spdevmap tut"..

Это очень плохо на вашей карте никого нету кого можно было бы грохнуть:).Вам нужен кто то чтобы убить его.Так вот этим мы сейчас и займемся.


Ваш первый скрипт

Откройте ваш любимый текстовый редактор и создайте новый файл под именем Tut.ai(помните что ваш аи файл должен называтся так же как ваш бсп файл)
Первое что вы должны сделать - это заполнить шапку

//
//ai scripting
//map: tut.map
//last edited by: KessLeR
//


Вы наверное заметили эти два слеша в начале каждой строки - это говорит о том что этот текст будет игнорироватся компилятором.
Если вам лень вы можете ее и не писать. Но спустя некоторое время вы не совсем будете помнить к которой карте относится этот скрипт. уж лучше поверьте мне лучше вам не ленится.(Не забывайте что Лень все портит)

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


player
{
}



Обычно АИ идентифицируется под под именами "nazi1" "nazi2" "officer1" Или если хотите можете целую эпопею написать но вы этого не сделаете :-)
Надпись Player говорит о том что написанный в фигурных скобках текст будет касатся только плеера..
если вы хоть чуток разбираетесь в программировании то вы поймете что многое взаимствованно с языка "С"
если вы хорошо знаете английский можно считать что на 50% писать скрипты вы умеете :-)

Так теперь мы дадим игроку оружие!!!!

player
{
playerstart
{
// Оружие
giveweapon weapon_sten
// патроны
setammo ammo_9mm 64
setclip weapon_sten 32
// Оружие которое будет у игрока в руках
selectweapon weapon_sten
}
}


Итак что это????

Внутри процедуры playerstart говорится только о том что произойдет когда игрок войдет в игру.

Первое.Нам нужно оружие

giveweapon weapon_sten

Если вы еще добавите то что дается ниже у вашего игрока будут обоймы для стена

setammo ammo_9mm 64

А если вы введете строку что ниже находится то у игрока с каждым респауном будет случайное количество патронов

setclip weapon_sten 32

Если вы хотите чтоб у игрока в начале игры был в руках стен то надо добавить одну простенькую строчку

selectweapon weapon_sten

В конце до концов Оружие у вас есть УРААААА!!!

На данный момент у вас должно быть три файла карты в директории /wolfenstein/main/maps/ tut.bsp, tut_b0.aas и tut_b1.aas. Сохраните ваш tut.ai в этой же директории.И запустите Вольф.опустите занавес и наберите там spdevmap tut

Вы получили оружие???

Так же вы можете еще позволить себе пару штук разных автоматов или пистолетов или нож... короче все чем можно убить фашиста

Например если вы введете giveweapon weapon_knife в процедуру playerstart У игрока появится нож..

Вы еще можете добавлять и второстеппенные предметы..


// Дополнительно
setarmor 50
giveinventory key_binocs


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

Сохраните ваш Tut.ai и при запуске вашей карты вы увидите что теперь у вас есть нож бинокль и 50% брони . Разве это не прекрасно :-)

Добавление музыки


Тут различаются два вида музыки: та которая будет после загрузки карты и так которая будет уже в течении игры.ее обычно называют in-game music

Ваш скрипт должен выглядеть примерно так заметьте что я добавил туда процедуру spawn

//
//ai scripting
//map: tut.map
//last edited by:KessLeR
//

player
{
spawn
{
mu_start sound/music/l_briefing_1
}

playerstart
{
// Оружие
giveweapon weapon_sten
giveweapon weapon_knife
// Патроны
setammo ammo_9mm 64
setclip weapon_sten 32
//give gun
selectweapon weapon_sten
// misc
setarmor 50
giveinventory key_binocs
}
}



Сохраните и попробуйте запустить игру разве это не прекрасно..Теперь еще музыка играет :-)

mu_fade 0 1000
mu_queue sound/music/m_mission // Запускается музыка


Что означает первая строка мы с вами поговорим позже..
Вторая говорит о том чтоб запустилась музыка которая находится в папке sound/music/m_mission

Добавляем Дружеского АИ

На данный момент моя карта выглядит так

Я добавил туда "ai_partisan" Вызвал его окно свойств и напечатал следующее:

Вы можете поварачивать игрока куда хотите
1.key: angle
value: 360
Морда вашего друга - аи :D
2.key: head
value: kesler
Его форма
3.key: skin
value: partisan\sfm1
Его имя(кодовое)
4.key: ainame
value: party1


Если вам охота вы можете запустить игру и позырить на кесслера...Вы заметите что у него в руках Томпсон...Не волнуйтесь мы в скором времени сможем поменять его

Любой бот в игре имеет оружие которое дается ему по умолчанию

Добавьте процедуру party1 - будьте внимательны добавлять его надо ни в процедуре Player а надо создать новую :
Так же добавьте в нее еще две процедуры: attributes и spawn
Вы наверное поняли что процедура party1 относится к нашему другу АИ - Помните мы дали ему кодовое имя party1

Процедура attributes. Здесь будут писаться все индивидуальные данные бота: меткость зрение слух и все такое.
Процедура spawn Здесь мы напишем об оружиях которые наш Кесслер получит.


party1
{
attributes
{
}

spawn
{
}
}

------------


party1
{
attributes
{
}

spawn
{
takeweapon weapon_thompson // Томпсон будет в руках кесслера
giveweapon weapon_luger // пистолет
setclip weapon_luger 8 // 8 патронов для пистолета
setammo ammo_9mm 16 // 16 патронов по 9мм
}
}


исходный код должен выглядеть так:



//
//ai scripting
//map: tut.map
//last edited by:KessLeR
//

player
{
spawn
{
mu_start sound/music/l_briefing_1
}

playerstart
{
// Оружие
giveweapon weapon_sten
giveweapon weapon_knife
// Патроны
setammo ammo_9mm 64
setclip weapon_sten 32
//give gun
selectweapon weapon_sten
// Дополнительно
setarmor 50
giveinventory key_binocs
}
}


party1
{
attributes
{
}

spawn
{
takeweapon weapon_thompson // Томпсон будет в руках кесслера
giveweapon weapon_luger // пистолет
setclip weapon_luger 8 // 8 патронов для пистолета
setammo ammo_9mm 16 // 16 патронов по 9мм
}
}


Запустите игру и проверьте.Ударьте кеслера по ноге..И вы заметите что он сразу вытащит Люгер..

На сегодня хватит.
Продолжение потом.:alen:
_________________
Короче не стреляйте я Кесслер :)
Заголовок сообщения: Азбука картостроения
СообщениеДобавлено: 20 июн 2007 14:50
Итак в этой статье я вас научу работать с ботами создание всяких путей и т.п. Перед тем как начать вы должны сделать как писал Kesler вот http://volfshantse.netorn.ru/forum/viewtopic.php?id=8 тут
Если вы сделали все правльно то у вас должна быть комната и кеслер и так открываем ваш блокнот у вас там должно уже быть вот так:
//
//ai scripting
//map: tut.map
//last edited by:Astrol
//

Код:
player
{
    spawn
        {
        mu_start sound/music/l_briefing_1
        }

    playerstart
        {
        // Оружие
        giveweapon weapon_sten
        giveweapon weapon_knife
        // Патроны
        setammo ammo_9mm 64
        setclip weapon_sten 32
        //give gun
        selectweapon weapon_sten
        // Дополнительно
        setarmor 50
        giveinventory key_binocs
        }
}


party1
{
    attributes
        {
        }

    spawn
        {
        takeweapon weapon_thompson // Томпсон будет в руках кесслера
        giveweapon weapon_luger // пистолет
        setclip weapon_luger 8 // 8 патронов для пистолета
        setammo ammo_9mm 16 // 16 патронов по 9мм
        }
}[/b]

мы просто будем продолжать
в конце где стоит }} две скобки одну удлаем.
Далее в персонаже party1 в spawn ставим
wait 30//можно ставить как вы хотите чтобы после того он выполнил какое либо задание.
Далее открываем вашу карту и ставим aimarker в нем пишем:
key: targetname
volume: gotokes
можно ещё добавить angle чтобы например когда он дошел до маркера повернулся.
Теперь сохраняем и открываем блокнот.
после wait 30 где мы указывали пишем trigger go и trigger animation, так же добавляйте перед тригерами clearanim и resetscript для того чтобы он стоял и ничего не делал первоночально.
у вас должно получиться так:
Код:
party1
{
    attributes
        {
        }

    spawn
        {
        takeweapon weapon_thompson // Томпсон будет в руках кесслера
        giveweapon weapon_luger // пистолет
        setclip weapon_luger 8 // 8 патронов для пистолета
        setammo ammo_9mm 16 // 16 патронов по 9мм
        wait 30// В какое время он выполнит команду
        clearanim // Это говрит о том что он просто будет стоять и ничего не делать в переводе чистая анимация.
        resetscript // если вы например запускали какой то механизм пишем это сбросить скрипт в переводе.
        trigger go //запускает пусковой механизм
        trigger animation //запускает пусковой механизм
        }
}[/b]

далее добовляем вот это: [b]
Код:
   enemysight // пишем когда он увидит противника что он будет делать
   {
      clearanim // говорит что ничего делать не будет либо по умолчанию
   }
   death // Что будет если он умерт например какой нибудь звук либо запуск какого нибудь механизма.
   {
   }[/b]

у вас должно получиться так:
Код:
[b]party1
{
    attributes
        {
        }

    spawn
        {
        takeweapon weapon_thompson // Томпсон будет в руках кесслера
        giveweapon weapon_luger // пистолет
        setclip weapon_luger 8 // 8 патронов для пистолета
        setammo ammo_9mm 16 // 16 патронов по 9мм
        wait 30// В какое время он выполнит команду
        clearanim // Это говрит о том что он просто будет стоять и ничего не делать в переводе чистая анимация.
        resetscript // если вы например запускали какой то механизм пишем это сбросить скрипт в переводе.
        trigger go //запускает пусковой механизм
        trigger animation //запускает пусковой механизм
}
enemysight
{
clearanim // говорит что ничего делать не будет либо по умолчанию
}
death
{
clearanim // Что будет если он умерт например какой нибудь звук либо запуск какого нибудь механизма.
}[/b]

далее пишем trigger go
в нем пишем gotomarker gotokes // теперь он побежит по заданому маркеру.
ниже еще один тригер trigger animation
в нем
playanim open_door both // здесь говорится что он будет делать все команды находятся в models/player/partisan/wolfanim.cfg both нужно подоставлять всегда.
Вот исходный скрипт:
Код:
[b]party1
{
    attributes
        {
        }

    spawn
        {
        takeweapon weapon_thompson // Томпсон будет в руках кесслера
        giveweapon weapon_luger // пистолет
        setclip weapon_luger 8 // 8 патронов для пистолета
        setammo ammo_9mm 16 // 16 патронов по 9мм
        wait 30// В какое время он выполнит команду
        clearanim // Это говрит о том что он просто будет стоять и ничего не делать в переводе чистая анимация.
        resetscript // если вы например запускали какой то механизм пишем это сбросить скрипт в переводе.
        trigger go //запускает пусковой механизм
        trigger animation //запускает пусковой механизм
}
enemysight
{
clearanim // говорит что ничего делать не будет либо по умолчанию
}
death
{
clearanim // Что будет если он умерт например какой нибудь звук либо запуск какого нибудь механизма.
}

trigger go
{
gotomarker gotokes // теперь он побежит по заданому маркеру.
}

trigger animation
{
playanim open_door both // здесь говорится что он будет делать все команды находятся в models/player/partisan/wolfanim.cfg both нужно подоставлять всегда.
}

А вот целый скрипт:
Код:
[b]//
//ai scripting
//map: tut.map
//last edited by:KessLeR
//

player
{
    spawn
        {
        mu_start sound/music/l_briefing_1
        }

    playerstart
        {
        // Оружие
        giveweapon weapon_sten
        giveweapon weapon_knife
        // Патроны
        setammo ammo_9mm 64
        setclip weapon_sten 32
        //give gun
        selectweapon weapon_sten
        // Дополнительно
        setarmor 50
        giveinventory key_binocs
        }
}
party1
{
    attributes
        {
        }

    spawn
        {
        takeweapon weapon_thompson // Томпсон будет в руках кесслера
        giveweapon weapon_luger // пистолет
        setclip weapon_luger 8 // 8 патронов для пистолета
        setammo ammo_9mm 16 // 16 патронов по 9мм
        clearanim // Это говрит о том что он просто будет стоять и ничего не делать в переводе чистая анимация.
        resetscript // если вы например запускали какой то механизм пишем это сбросить скрипт в переводе.
        wait 30// В какое время он выполнит команду
        trigger go //запускает пусковой механизм
        trigger animation //запускает пусковой механизм
}
enemysight
{
clearanim // говорит что ничего делать не будет либо по умолчанию
}
death
{
clearanim // Что будет если он умерт например какой нибудь звук либо запуск какого нибудь механизма.
}

trigger go
{
gotomarker gotokes // теперь он побежит по заданому маркеру.
}

trigger animation
{
playanim open_door both // здесь говорится что он будет делать все команды находятся в models/player/partisan/wolfanim.cfg both нужно подоставлять всегда.
}
}[/b]

У нас получилось что келсер будет бежать и типо открывать дверь :D:D.
Заголовок сообщения: Азбука картостроения
СообщениеДобавлено: 21 июн 2007 12:33
Как сделать чтобы определенный персонаж разрушил стену

Сразу предупреждаю что тут я дословно ни хера объяснять не буду

Короче говоря чтобы сделать этот трюк вам понадобится :
1.Стена разрушающаяся
2.Бот разрушающий стену
3.Триггер активирующий разрушение стены ботом
4.Цель для бота

Итак рядом с вашей стеной поставьте парочку info_notnull`ов
Найти ее вы можете нажав ПКМ в каком либо 2д окне.
Теперь если вы поставили нотнул пробейте в его свойствах следующее
Key: targetname Value: her1 … Если вы поставили несколько нотнулов то дайте им св-ва her1 her2 her3…И расположить вы их должны там где ваша разрушающаяся стена.
Если вы ни самый настоящий тупарик вы должны понимать что ваш бот будет стрелять туда где ваш нотнул и это является его целью..B)
Теперь сделайте триггер пробейте Key: ainame Value: player
Key: target Value : heraction

Перейдем к подготовке бота пробить ему надо след
Key: ainame Value: hernik.. если вы у вас действительно есть желание научится маппить то вы должны знать что я только что сделал.

Теперь надо написать аи-скрипт


player
{
spawn
{
objectivesneeded 1
abort_if_loadgame
mu_start sound/music/l_briefing_1
}

playerstart
{
mu_fade 0 1500
mu_queue sound/music/m_situation
giveweapon weapon_mauserrifle

}


Trigger botaction1
{
Trigger hernik botaction1
}
}

Bot1
{
attributes
{
aim_accuracy 0.2
aggression 0.9
starting_health 20
fov 120
}

spawn
{
accum 0 set 0
setammo ammo_grenades 0
statetype alert
wait 100
gotomarker zone3p3
}



trigger botaction1
{
fireattarget her1 800
fireattarget her2 800

}

}
_________________
Короче не стреляйте я Кесслер :)
Заголовок сообщения: Азбука картостроения
СообщениеДобавлено: 21 июн 2007 12:40
Ключевые слова в программировании Аи для Вольфа

Ai Атрибуты

running_speed 220
Используется для установки скорости бега бота. По умолчанию 220.Максимум 300
walking_speed 90
Используется для установки скорости ходьбы. По умолчанию 90. Максимум 300
crouching_speed 80
Используется для установки скорости бега в прыгнувшем состоянии. По умолчанию 80. Максимум 300
fov 240
Используется для установки поля видимости бота. По умолчанию 240 Максимум 360
yaw_speed 300
Используется чтоб придать боту ловкость. По умолчанию 300 максимум 300
aim_skill 0.5
Устанавливает способность бота выстрелить в определенные цели. По умолчанию 0.5 Максимум 1.0
aim_accuracy 0.5
Устанавливает меткость бота. По умолчанию 0.5 Максимум 1.0
attack_skill 0.75
Устанавливает уровень ведения войны бота. Например: будет использовать гранаты, Пулемет, снайперскую винтовку. По умолчанию 0.75 Максимум 1.0
reaction_time 0.5
Устанавливает реакцию бота в секундах. По умолчанию 0.5 Максимум 1.0
attack_crouch 0.4
Заставляет бота атаковать приседая. По умолчанию 0.4 Максимум 1.0
AGGRESSION
Делает бота более умным. т.е если вы пытаетесь проскочить мима него незаметно, то у вас это не получится потому что бот более агрессивен. По умолчанию 0.0 Максимум 1.0
tactical 0.8
Бот будет вести себя более тактично. Использовать окружающую среду для защиты
По умолчанию 0.8 Максимум 1.0
camper 0.0
Устанавливает у бота способности кампинга. По умолчанию 0.0 Максимум 1.0
alertness 16000
Устанавливает поле зрения бота в пикселях. По умолчанию 16000 Максимум 9999999
starting_health 100
Устанавливает начальное здоровье у бота. По умолчанию 100 Максимум 99999
hearing_scale 1.0
Улучшается слух бота. По умолчанию 1.0 Максимум 10
inner_detection_radius 512
Устанавливает Внутренний Радиус Обнаружения (IDR) для бота в единицах пикселя. IDR заставит бота реагировать на несколько вещей. Пример: Выстрелы в пределах IDR услышит бот.

Ai События

Spawn
То что будет происходить когда игрок родится
Enemysight
То что напишите в этом событии будет срабатывать когда бот увидит вас
Sight
То что напишите здесь сработает когда бот увидит другого бота в состоянии тревоги
Enemydead
То что напишите здесь сработает когда бот увидит другого мертвого бота
Trigger <событие>
Используйте это ключевое слово если хотите событие активировать во время игры
Pain <Осталось>
Используется для вызова когда у игрока останется определенное количество здоровья
death
Используется для вызова когда бот умрет
enemysightcorpse
Если бот увидит вражеского трупа вызывается эта функция
Friendlysightcorpse
Если бот увидит дружественный труп вызывается эта функция
statechange <Существующее состояние> <Состояние в результате>
relaxed query – Активируется если у бота поменяется состояние от расслабленного до сомнительного
relaxed alert - Активируется если у бота поменяется состояние от расслабленного до тревожного
relaxed combat - Активируется если у бота поменяется состояние от расслабленного до боевого
query relaxed – Активируется если бот посчитает что игрок умер и успокоится
query alert – Активируется если бот посчитает что он что то слышал или видел
query combat - Активируется если бот сразу начнет войну
alert combat – Активируется если бот начнет войну из состояния тревоги
combat alert – Активируется если бот поменяет состояние войны на тревожную
bulletimpact
Эта функция вызовется если бот увидит пулю
inspectbodystart [ai имя]
Эта функция вызовется когда бот увидит труп.. Вы можете поместить сюда имена тех трупов которые бот будет игнорировать. Так же вы можете написать сюда ключевое слово Deny (Отрицание) тогда бот будет игнорировать всех трупов
inspectsoundstart
Эта функция вызовется когда бот услышит какой либо звук. Вы можете написать сюда Deny тогда бот будет делать вид что ничего не слышал
Playerstart
Эта функция сработает когда игрок нажмет стрелку и начнется игра
Fakedeath
Вы наверное знаете что зомби надо убивать 2 раза так вот эта функция активируется когда зомби умрет 1-й раз
Attacksound
Это сработает если один бот услышит как воюет другой бот. Вы так же можете отрицать эту функцию
Inspectfriendlycombatstart
Это сработает если бот увидит как его товарищ воюет
Ai Команды

gotomarker <Имя маркера> [firetarget] [noattack] [nostop]
Бот пойдет от одного маркера к другому в зависимости от вашей команды.
Firetarget – пойдет атакуя игрока (если видит)
Noattack – пойдет не атакую игрока
Nostop – пойдет не останавливаясь

Runtomarker
Точно тоже что и выше только побежит
Walktomarker
Точно тоже что и выше только будет ходить
Crouchtomarker
Точно то же что и выше только пойдет прыгнувшись

gotocast [firetarget] [noattack]
Следить за объектом атакуя или не атакуя. Вы можете выбрать
Runtocast
Точно то же что и выше только следить будет бегом
Walktocast
Точно то же что и выше только следить будет ходьбой
Crouchtocast
Точно то же что и выше только следить будет прыгнувшись
wait <время в секундах>
Бот будет ждать сколько вы скажете только в секундах
trigger
Активирует скрипт мувер в определенном случае т.е когда вы скажете в событиях
playsound
Воспроизводить звук. Сначала вводите путь к звуку потом имя скрипт мувера
Как показывается на верху в знаках <>
noattack <время в секундах>
Не атаковать определенное время
playanim [legs/torso/both]
Проиграть анимацию. Пишите команды для рук ног и торса
setammo <Название> <количество>
Дать патронов. Пишите название патронов и количество
selectweapon <название оружия>
Выделить оружие
giveweapon <название оружия>
Дать оружие игроку или боту
givearmor <имя брони>
Дать броню боту или игроку пишите каску и бронежилет
giveinventory <название инвентаря>
Дать инвентарь игроку или боту
takeweapon <название оружия>
Взять оружие в руки
alertentity
Активация объектов в карте обычно релешки
Savegame
Сохроняет игру для игрока
fireattarget <имя бота> [время в секундах]
Атакует цель
godmode
Режим бога для бота или игрока
Missionfailed
Миссия проваливается
objectivemet
Это уведомляет игрока что он выполнил цель
objectiveneeded
Это используется для того чтобы сказать игроку сколько целей ему надо выполнить чтобы пройти уровень
noaidamage
Это говорит боту будет ли действовать огонь другого бота
print
Это напечатает текст в консоли
facetargetangles
Это скажет повернутся боту туда куда смотрит аи маркер поставленный в Радианте
changelevel [nostats] [persistant]
Это поменяет уровень если поставите persistant весь инвентарь перейдет к следующему уровню
Foundsecret
Нахождение секретов
nosight <время в секундах>
Это сделает A.I. Слепым какое то время.
Noavoid
Это скажет боту не избегать чего оибо в карте Например : скрипт муверы
Avoid
Это скажет боту избегать все
attrib
Так вы можете поменять какой либо атрибут бота. Исключение: начальное здоровье
statetype
Это поменяет состояние бота на тревожное
knockback
Боту будет на все пофиг т.е он не будет ни на что реагировать пофигист короче
Cigarette
Курит не курит:D
sethealth
Помните я выше говорил что здоровье не поменять теперь это возможно но только таким способом
notarget
Так вы можете активировать нотаргет как для бота так и для игрока
startcam
Запустить камеру куажите путь только
Stopcam
Остановить камеру
mu_start
Так можете запустить музыку. Она находится в главном паке
mu_stop
так можете музыку остановить
pushaway
Это используется, чтобы отодвинуть энтайт, которое является перед ботом Пример; village1, когда Кесслер выдвигает игрока из пути, если игрок попробует блокировать его.
_________________
Короче не стреляйте я Кесслер :)
Заголовок сообщения: Re: [Мануалы] Программирование ИИ (Ботов)
СообщениеДобавлено: 16 ноя 2009 13:21
Что то пробовала,но не все получается,на Проклятие Фараонов не все подходит,там наверное вообще скрипты написанны по другому ?

Можно сюда добавить дружескую модель (персонажа что бы ходил за тобой) и как это сделать ?




P.S. А вот стен добавить получилось :)


У вас нет необходимых прав для просмотра вложений в этом сообщении.
_________________
Bewege sich! Oder mich werde erschießen dich an Ort und Stelle!
Заголовок сообщения: Re: [Мануалы] Программирование ИИ (Ботов)
СообщениеДобавлено: 16 ноя 2009 17:18
Kessler писал(а):
Добавьте процедуру party1 - будьте внимательны добавлять его надо ни в процедуре Player а надо создать новую :
Так же добавьте в нее еще две процедуры: attributes и spawn
Вы наверное поняли что процедура party1 относится к нашему другу АИ - Помните мы дали ему кодовое имя party1

Процедура attributes. Здесь будут писаться все индивидуальные данные бота: меткость зрение слух и все такое.
Процедура spawn Здесь мы напишем об оружиях которые наш Кесслер получит.


Можно поподробней,в какую прогу заходить и как создать эти процедуры ???Мало что понятно :no:
_________________
Bewege sich! Oder mich werde erschießen dich an Ort und Stelle!
Заголовок сообщения: Re: [Мануалы] Программирование ИИ (Ботов)
СообщениеДобавлено: 16 ноя 2009 17:22
Это всё делается в Кримсон-эдиторе и в аи-скрипте.
Заголовок сообщения: Re: [Мануалы] Программирование ИИ (Ботов)
СообщениеДобавлено: 16 ноя 2009 20:26
Щука писал(а):
Что то пробовала,но не все получается,на Проклятие Фараонов не все подходит,там наверное вообще скрипты написанны по другому ?
Можно сюда добавить дружескую модель (персонажа что бы ходил за тобой) и как это сделать ?

Добавить в Проклятье Фараонов?
С помощью только .ai файла это не получиться.
Весь игровой мир – здания, ландшафты, населяющие их персонажи и прочие предметы, а также элементы управления, отвечающие за свершение каких-либо событий, заключены в файлах с расширением .bsp.
Файлы .ai и .script всего лишь, соответственно, описание характеристик и поведения персонажей (игрока и ботов) и исполняемые программные модули для элементов управления, заключенных в bsp.
Программ, позволяющих редактировать непосредственно .bsp, не существует. Игровой мир карты (уровня) создается (в случае RTCW и ряда других игр) в редакторе GTKRadiant. Карта-исходник, созданная в редакторе в формате .map затем компилируется в понятные движку форматы .bsp {стоило бы отметить, что «BSP (Binary Space Partitioning) представляет собой рекурсивное иерархическое разбиение в n-мерном пространстве», источник, только кому это интересно?} и (для сингл-плеера) .aas. Обратный процесс или декомпиляция возможен, но из-за несовершенства декомпиляторов (или объективной невозможности?) карта в значительной мере искажается: текстуры принимают дефолтные значения положения и масштаба (сползают), пропадают модели и энтиесы, пропадают и искажаются браши, появляются артефакты, отсутствовавшие в исходной карте и т.п.
Т.о. дабы добавить хоть одну мумию или брата-археолога в любую карту Проклятья Фараонов необходимо иметь GTKRadiant, компилятор для создания aas’ов (компилятор bsp встроен в редактор), навыки работы с ними и со скриптами и, самое главное, исходник той карты Фараонов, которую желается изменить.


Пардон, если повторяю уже давно известные вестчи
:rolleyes:
Заголовок сообщения: Re: [Мануалы] Программирование ИИ (Ботов)
СообщениеДобавлено: 16 ноя 2009 21:37
Шура, ну я насчёт "процедур" ответил ;)

Щука писал(а):
Kessler писал(а):
Добавьте процедуру party1 - будьте внимательны добавлять его надо ни в процедуре Player а надо создать новую :
Так же добавьте в нее еще две процедуры: attributes и spawn
Вы наверное поняли что процедура party1 относится к нашему другу АИ - Помните мы дали ему кодовое имя party1

Процедура attributes. Здесь будут писаться все индивидуальные данные бота: меткость зрение слух и все такое.
Процедура spawn Здесь мы напишем об оружиях которые наш Кесслер получит.


Можно поподробней,в какую прогу заходить и как создать эти процедуры ???Мало что понятно :no:


В остальном Шура всё очень доходчиво расписал. Если ваша задача слегка видоизменить чужую карту, поменять текстуры, модели оружия, звуки, изменить поведение уже имеющихся ботов, их диалоги, анимацию - это всё можно сделать имея желание. Для более коренных изменений надо декомпилировать карту. Но потом её нормально привести в чувство - уйдёт больше времени, чем создать новую, свою, воплотив в неё всё задуманное. Редактор можно скачать тут:

GtkRadiantSetup-1.2.11-Q3RTCW

download: http://cf-krot.ifolder.ru/5213506
Заголовок сообщения: Re: [Мануалы] Программирование ИИ (Ботов)
СообщениеДобавлено: 16 ноя 2009 21:57
Krot писал(а):
Редактор можно скачать тут:
GtkRadiantSetup-1.2.11-Q3RTCW
download: http://cf-krot.ifolder.ru/5213506

Добавлю еще, что данный редактор GTKRadiant содержит исходники карт escape1 и escape2 из оригинального RTCW, в интернете также можно найти несколько исходников кастомных (самолепных) карт как для сингла, так и для мультиплеера. Остальных исходных карт в свободном доступе нет.
Если есть желание попробовать силы в создании карт (в маппинге), вот неплохой русскоязычный мануал из разряда "моя первая комната": http://www.hot.ee/privater/tut2.htm. Мануал для Quake 3, но для RTCW все аналогично, редактор один и тот же.
Заголовок сообщения: Re: [Мануалы] Программирование ИИ (Ботов)
СообщениеДобавлено: 16 ноя 2009 22:16
Это Прива сайт, давненько там уже живым духом не пахнет :( В принципе всё это и у нас на сайте есть.
Заголовок сообщения: Re: [Мануалы] Программирование ИИ (Ботов)
СообщениеДобавлено: 17 ноя 2009 11:52
shurr писал(а):
карта в значительной мере искажается: текстуры принимают дефолтные значения положения и масштаба (сползают), пропадают модели и энтиесы, пропадают и искажаются браши, появляются артефакты, отсутствовавшие в исходной карте
:rolleyes:


и все таки ето возможно, вот исходники Pharaon Curse
Вложение:
map_pharaon.rar

мапи полностью рабочие ничего левого или пропавшего нет, единственное надо будет в некоторых местах поработать с текстурой (натянуть нормально на браш), сам провел тестовую компиляцию vis-fast light-fast и все скомпилилося на ок. Но,если есть желание что-то зделать, лучше намапить свою карту +есть исходники где можно посмотреть как там все устроено и работает, ето облегчит знакомство с радиантом.


У вас нет необходимых прав для просмотра вложений в этом сообщении.
Заголовок сообщения: Re: [Мануалы] Программирование ИИ (Ботов)
СообщениеДобавлено: 17 ноя 2009 12:26
Давайте с оффтопом в этой теме будем заканчивать, к программированию ИИ это отношения не имеет ;)
Щука, создавайте новую тему, в которой и будем помогать вам решать проблемы с вашим модом :)
Заголовок сообщения: Re: [Мануалы] Программирование ИИ (Ботов)
СообщениеДобавлено: 17 ноя 2009 14:38
Спасибо огромное ребята,что мне помогаете! :) Думаю,если у вас получилось создать свой адон (Победители) то и у меня получится.Будем пробовать! :rolleyes:

P.S. Большое спасибо Yo$hik,за материал! :)
_________________
Bewege sich! Oder mich werde erschießen dich an Ort und Stelle!
Заголовок сообщения: Re: [Мануалы] Программирование ИИ (Ботов)
СообщениеДобавлено: 26 ноя 2009 18:30
Привет всем!

Вчера весь вечер потратила на написание скрипта для своей карты,пробовала по разному переставлять - все равно ничего не получается... :(

В общем вот мой скрипт.

//
//ai scripting
//map: prob_5.map
//last edited by:Pice
//

player
{
spawn
{
mu_queue sound/music/level2/level2.wav
}

playerstart
{
giveweapon weapon_sten
giveweapon weapon_colt
giveweapon weapon_knife
setammo ammo_9mm 64
setammo ammo_45cal 208
setclip weapon_sten 32
selectweapon weapon_sten
}
}
drug_1
{
attributes
starting_health 300 //Устанавливает начальное здоровье у бота. По умолчанию 100 Максимум 99999
aim_accuracy 1.0 //Устанавливает меткость бота. По умолчанию 0.5 Максимум 1.0
aim_skill 0.7 // Устанавливает способность бота выстрелить в определенные цели. По умолчанию 0.5 Максимум 1.0
{
}

spawn
{
takeweapon weapon_sten // Стен будет в руках
giveweapon weapon_colt // пистолет
setclip weapon_colt 8 // 8 патронов для пистолета
setammo ammo_30cal 50 // 50 патронов по 9мм
clearanim // Это говрит о том что он просто будет стоять и ничего не делать в переводе чистая анимация.
//resetscript // если вы например запускали какой то механизм пишем это сбросить скрипт в переводе.
wait 30// В какое время он выполнит команду
trigger go //запускает пусковой механизм
trigger animation //запускает пусковой механизм
}
enemysight //что будет делать когда увидит врага
{
gotomarker marcer_1 Noattack // говорит что он пойдет к маркеру
}
death
{
clearanim Missionfailed// Что будет если он умерт например какой нибудь звук либо запуск какого нибудь механизма. (задание проваленно)
}

trigger go
{
gotomarker gotokes marcer_2 Noattack// теперь он побежит по заданому маркеру.
}

trigger animation
{
playanim open_door both models/player/infantruss/wolfanim.cfg both// здесь говорится что он будет делать все команды находятся в models/player/partisan/wolfanim.cfg both нужно подоставлять всегда.
}
}
moom_1 //теперь мумии =)
{
attributes
{
}

spawn
{
enemysight //что будет делать когда увидит врага
{
Firetarget //пойдет атакуя
}
}
moom_2
{
attributes
{
}

spawn
{
enemysight //что будет делать когда увидит врага
{
Firetarget //пойдет атакуя
}
}


Что тут неправильно ?Мне надо только что бы те две мумии атаковали Блажковича и археолога (друг_2) и он (археолог) мог от них защищаться.

p.s. Все инструкции здесь нашла http://live.cnews.ru/games/index.php?ac ... 14&t=14149
_________________
Bewege sich! Oder mich werde erschießen dich an Ort und Stelle!
Показать сообщения за:  Поле сортировки  
Страница 1 из 13
[ Сообщений: 183 ]

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Кто сегодня был на конференции за последние 24 часа

Пользователи смотревшие этот форум за последние 24 часа: нет зарегистрированных пользователей и 17 гостей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Перейти:  

Работает на phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB