forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Война двух типофф (http://forum.boolean.name/showthread.php?t=5906)

klopmaks 13.04.2008 01:23

Война двух типофф
 
Сорри за то что создал новою тему :@
Есть ли идеи реализации фойны двух типофф
НУ я просто зделал попытку , на простейшом примере и по неизвесным причинам мне вылепило ошибку MAB =(
Ну есь идейа перечисляем ботоф одного типа
Потом внутри етого цикла второго типа
Определяем расстояние , пишем в переменную
Определяем следущие до следущего бота еси меньше чем то шо в переменной то переписуем переменную.
Когда для первого бота из первого типа перебрали всех ботов второго типа в переменной получили расстояние до ближайшего.
ПоинтЕнтити на него и муфф
Так же для всех остальных ботофф
И другово типа ботофф :cool:

Ну вроде все круто :ok:
Пишем ф коД и получаем MaB...

Можт я что-то непрально делаю , есть идеи реализации по лучче.

ОффТоп:
Может кто знает где скачать BlitzMAx ? O_O
Полную версию. В разделе Блиц Макс , есть ссылка под хайдом 100 сообщений
У меня только 79

Horror 13.04.2008 15:05

Ответ: Война двух типофф
 
пиши нормально и скинь код ничего не понятно)
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 70 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

ABTOMAT 13.04.2008 15:30

Ответ: Война двух типофф
 
klopmaks, я чё-то не очень понял что тебе требуется...
Ты не мог бы объяснить что ты хочешь получить в итоге?

HolyDel 13.04.2008 17:17

Ответ: Война двух типофф
 
Цитата:

Ты не мог бы объяснить что ты хочешь получить в итоге?
+1, и при чем, желательно объяснить ето на великом и могучем.

вообщето можно обойтись одним типом

for u1.unit=each unit
for u2.unit = each unit
if u1\id<>u2\id
endif
nex
next

klopmaks 13.04.2008 22:17

Re: Война двух типофф
 
Один тип ета ниинтересна. Ведь в итоге я хочу получить типа Unreal шото =)
А там еще приколы с фрагами.
И не проще ли перебирать один тип внутри второго типа ?

2 ABTOMAT Шануй Укра*нське (с)
2 Horror спс
2 HolyDel ща залью куда-нипуть =)

klopmaks 13.04.2008 22:37

Re: Война двух типофф
 
http://filebox.in.ua/m1cjozur1ccx/New.rar.html
Хз. Залил судЫ =)
Жду камментофф

EXAMPLE2.BB
Ето оно

Сейчас там два типа ботов ведут охоту на игрока. Тк между собой они ишо не бьютссо.
Маленькие красненькие аптечки.
Зелененькие патроны (они вверху рядом с хелсом) ( перезарядка R)
Большой красненький ящег 150 ХП

Планирую когда-то научить ботов собирать аптечки и патроны :)

ABTOMAT 13.04.2008 23:46

Ответ: Война двух типофф
 
Цитата:

2 ABTOMAT Шануй Укра*нське (с)
Да просто сам смысл поста непонятен.
Несвязно как-то рассказано...
Сейчас качну демку, она должна быть более наглядной :)
З.Ы. По-українськи не розмовляю, але все розумію ;)

HolyDel 14.04.2008 11:41

Ответ: Война двух типофф
 
нечего изобретать кривую систему.
один тип ботов - в самый раз. в етом типе должно быть поле, определяющее какой именно тип бота. зачем это надо? а затем, что много кода у разных ботов должно делать одно и то же. все они должны умирать, перемещаться, коллизится и т.д. поетому чтобы тебе по 20 раз не писать одно и то же (а потом еще и исправлять ето), пиши ето один раз. как то так:
Код:

for b.bot=each bot
if b\tp = BOT_SOLIDER
 код обработки солдата
endif
if b\tp = BOT_MUTANT
 код обработки мутанта
endif
if b\tp = BOT_KSENYA_SOBCHAK
 код обработки босса
endif
код обработки всякого
next


klopmaks 14.04.2008 22:51

Re: Война двух типофф
 
BOT_KSENYA_SOBCHAK = код обработки босса (ахахахаха, улыбнуло =) )
А вот там где ты написал код обработки
Мне нужно направить одного бота на другово , как такое реализовать ????
А потом както считать хп для каждого из них. ЙА се даже представить немагу как ТАКОЕ зделать.
А для двух типоф никак? О_о
Или это для ламерофф ???

Мну интиресует такое:
Перечислили всех направили(Point Entity) на ближайшего (или на любого из другого типа (с другим айди) )

И создаем выстрелы с некой случайностью шоб выстрелы не летели линийами =)
Вот и все.
Зачем тут усложнять используя один тип йа непонел =-)

З.Ы. Коротко вышесказаное: как мне в етом варианте направить мутантов на ксению собчак
командой поинт ентити ?



--------------------------------------------------------------------------------------------------------
2 HolyDel Игру качал ? ^_^

ABTOMAT 14.04.2008 22:58

Ответ: Война двух типофф
 
Зачем тебе два типа, когда у тебя у всех ботов примерно одинаковый набор параметров? (здоровье, патроны, урон и т.п.) Создай один тип и в нём филд - Team в него вписывай команду, к которой он принадлежит (например 0 - белые, 1 - зелёные, 2 - красные) и когда бот выбирает врага, следи за тем, чтобы он выбирал их не из своей команды (т.е. сравнивал свою команду и команду потенциального противника)

klopmaks 14.04.2008 23:12

Re: Война двух типофф
 
ABTOMAT, в теории понятно , но когда дело доходит до практики я стопорюсь
Как мне направить ботоф одного типа на ботоф етого-же типа , да еще при етом и следить за командой.

Есть идеи лучше PointEntity? =)
Но как поинт ентити использовать в етом случае я нинаю
Мож подкинешь пример или отредактируешь мой код еси качал игру ?

З.Ы. Качал , понравилосЯ ? ^^

FrankH 15.04.2008 00:14

Ответ: Война двух типофф
 
Не вижу проблем сделать несколько команд, у меня 3 команды спокойно валятся, главное чтобы бот нападал на бота не своей команды и все..
Код:

Function FindTarget(side);+
    For all.Unit=Each Unit
        If (all\state<>9) And (all\side<>side) And (Rand(5)=5) Then Return all\Pivot
    Next
    Return 0
End Function


ABTOMAT 15.04.2008 00:32

Ответ: Война двух типофф
 
Цитата:

Есть идеи лучше PointEntity? =)
Но как поинт ентити использовать в етом случае я нинаю
Мож подкинешь пример или отредактируешь мой код еси качал игру ?
Есть идеи)

В типе бота делаешь филд

Field Target.TypeBot (скорректируй под свой тип ботов)

И туда прописывать бота-врага (т.е. из другой команды) рандомно.
Бота-врага нужно выбирать :

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

Врочем, для теста - просто меняй цель бота когда её нет. Когда разберёшься - сделай как описано выше либо придумай другой алгоритм, это не так важно.

Итак, когда филд Target заполнен вражиной, то каждый цикл делаем опять пойнт энтити на этого врага и атакуем пока не придётся выбирать новую цель.

З.Ы. Исходник редактировать не буду, т.к. там надо не исправить, а кучу всего переделать, а игру делаешь ты, а не я.

klopmaks 15.04.2008 21:49

Re: Война двух типофф
 
Можешь по подробнее.
Как мне Филд таргет заполнять вражиной?
Кидать туда хендлы?

Ведь target у нас типа.бот
Тоисть числа , туда нельзя загнать , буквы тож...

И как реализовать Point?
PointEntity u\entity,u\target

Ошибка однако.

2 FrankH
Обьясни свою идейку подробнее пл3

ABTOMAT 15.04.2008 21:59

Ответ: Война двух типофф
 
klopmaks,

постараюсь объяснить на свойм простом примере:

Есть тип бота, он для всех команд один:

Type Bot
Field Mesh
Field HP
Field Team
Field Target.bot
end type

Делаем простую функцию выбора врага:

Function Chooseenemy(bot.bot) ; в функцию указываем того бота, КТО будет искать врага
For enemy.bot = each bot
If enemy\team <> bot\team ; если бот из другой команды
bot\target = enemy ; то пихаем его в таргет в виде врага
exit
end if
next
end function

Далее. Обновление самих ботов, т.е. их направление к цели будет осуществляться очень просто:
PointEntity bot\mesh, bot\target\mesh ; меш бота пойнтэнтитим к мешу врага этого бота
т.е. твоим любимым пойнт энтити :)
Надеюсь, всё понятно

klopmaks 15.04.2008 22:11

Re: Война двух типофф
 
Круть ща прилеплю. Спс , но йа переделаю под 2 типа ботофф.
Последний вопрос: А как мне случайно выберать одного бота из вражеского типа(тима)?
Ведь в таком коде как написал ты в таргет попадать буит первый бот из вражеской команды до тех пор пока его не убьют :)

FrankH 15.04.2008 22:17

Ответ: Re: Война двух типофф
 
Цитата:

Сообщение от klopmaks (Сообщение 79604)
Можешь по подробнее.
Ведь target у нас типа.бот
Тоисть числа , туда нельзя загнать , буквы тож...
И как реализовать Point?
PointEntity u\entity,u\target
Ошибка однако.

Начнем с начала, все поля в типе являются числами, вся инфа на компе тоже в виде чисел, все буквы и картинки это числа, то есть и в поля типа можно записать
u\name$=имя бота$(писать в кавычках)
u\health%=жизни целочисленные
u\point%=пивот(точнее указатель на него), к которому крепится меш

а про функцию и объяснять нечего, "если бот в агрессивном режиме, то перебираем ботов\игроков противоположного пола с шансом один к шести, что это будет наша цель" а вобще попробуй сначала поработать с типами и почитать справку, а когда разберешься, переноси это в игру.

klopmaks 15.04.2008 22:26

Re: Война двух типофф
 
АВТОМАТ:
Variable must be a type

ABTOMAT 15.04.2008 22:50

Ответ: Война двух типофф
 
Блин, я же не давал работающий семпл, а только пример кода.
Такая ошибка бывает когда в переменной-типе находится значение Null (т.е. в данном случае к цели обращаются, а её там нету потому как её ещё не выбрали)
Попробуй сначала выбрать цели всем ботам а потом уже запускать обработку либо вместо:

PointEntity bot\mesh, bot\target\mesh

пиши:

If bot\target<>Null then PointEntity bot\mesh, bot\target\mesh

т.е. обращение будет только тогда когда цель существует

З.Ы. Обо всём, описанном в этом посте ты мог бы и сам догадаться

З.З.Ы.
Цитата:

ботов\игроков противоположного пола
Фроэнк, жжош :-D

klopmaks 16.04.2008 21:03

Re: Война двух типофф
 
Круто, супер , спс =_)

Все намутил...
Поменял кубы на модели..
И оп незадача. Поинт Крутит модель спиной ко мне и было бы странно еси бы боты стреляли спиной.
Ест ьли какие то идеи как ето убрать.
У меня токо одна.
Делаем пивот , его парент бот . Двигаем и поинтим пивот , еси так можно ^^

dimanche13 16.04.2008 21:29

Ответ: Re: Война двух типофф
 
Цитата:

Сообщение от klopmaks (Сообщение 79664)
И оп незадача. Поинт Крутит модель спиной ко мне и было бы странно еси бы боты стреляли спиной.
Ест ьли какие то идеи как ето убрать.

А может просто повернуть на 180" :p

klopmaks 16.04.2008 23:28

Re: Война двух типофф
 
Ну во первых повернуть что?
RotateENtity b\entity,0,180,0 ?
Или поворачивать то что я копирую
b\entity=CopyEntity(bot_exm)

Во вторых пробовал =)
Поинт разворачивает спиной >.<

З.Ы. 2 АВТОМАТ , 2 ALL Кто знает как в 3Д Максе вернуть стрелки.
Ну когда нажимаешь мув(W) появляиццо стрелки. У меня исчезли , переустановкой проблема не решилась О_о

ABTOMAT 17.04.2008 00:22

Ответ: Война двух типофф
 
Цитата:

З.Ы. 2 АВТОМАТ , 2 ALL Кто знает как в 3Д Максе вернуть стрелки.
Ну когда нажимаешь мув(W) появляиццо стрелки. У меня исчезли , переустановкой проблема не решилась О_о
Жми букву "Ч" на клавиатуре - появятся. Раньше как-то тоже случайно долюанул, а потом долго сообразить не мог, в чём дело :-D

Цитата:

Во вторых пробовал =)
Поинт разворачивает спиной >.<
Блин, тогда пробуй сначала пойнт а потом сразу после него поворот на 180.

Ну а вообще можно повернуть не энтити, а непосредственно меш (RotateMesh) Но если у тя есть или планируется костная анимация, то лучше так не делай, от этого глюки в кости лезут.

Можно и непосредственно в максе повернуть, однако, если у тебя куча костных анимаций, то ты за**ёшься их все переворачивать, лучше делать TurnEntity после ПойнтЕнтити

Не в обиду сказано, но если перед тобой стоит проблема "повернуть бота на 180°" и ты о ней спрашиваешь на форуме, то какой ты нафиг прогер? >< Чти хелп, ковыряй примеры внимательно (а не просто вставляй туда свои модели) вот если что - хороший хелп в двух частях: 1. 2.

klopmaks 17.04.2008 00:32

Re: Война двух типофф
 
Да я х*ровый прогер :-D

Tadeus 17.04.2008 08:51

Ответ: Война двух типофф
 
Цитата:

вот если что - хороший хелп в двух частях: 1. 2.
Пробайанились они. Еще и криво :-)

Оригинал:
http://unblitz.narod.ru/tutorials/blitz3d/index.htm

ABTOMAT 17.04.2008 20:38

Ответ: Re: Война двух типофф
 
Цитата:

Сообщение от klopmaks (Сообщение 79678)
Да я х*ровый прогер :-D

оИди бразовывайся (см. пост Тадеуша)


Часовой пояс GMT +4, время: 16:27.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot