Сейчас 03:11:28 Пятница, 26 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » АИ самостоятельно продаёт полученные триггерно предметы (wtf?)
АИ самостоятельно продаёт полученные триггерно предметы
FatalBladeДата: Суббота, 22 Декабря 2012, 15:56:33 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
У меня в АоСке я делаю АИ. АИ игроки самостоятельно бегают, фармят, изучают скилы, и покупают предметы. Последнее правда иммитируется - при определённых событиях, герой подходит в магазин, и при наличие нужного золота ему даются предметы, расписанные по порядку через Хэш-БД. Это происходит по периодическому таймеру. Пока герой в магазине, и у него есть денги на очередной предмет, у него денги вычитаются, а предмет даётся ему триггерно. Если денег нет, то он идёт дальше фармить мобов.

Но вот проблемка. Почему то некоторые конкретные предметы АИ герой при получение - сразу продаёт в магазин. Самостоятельно. И всё. Ступорится. Не идёт фармить мобов. У меня вроде выключены стандартные АИ скрипты близзов. Эта продажа ну никак не связано с триггерами. В моей карте нету вообще приказов "продать предмет".


 

Sap_phireДата: Суббота, 22 Декабря 2012, 20:32:11 | Сообщение # 2
5 уровень
Группа: Проверенные
Сообщений: 112
Награды: 0
Репутация: 936
Блокировки:
выключай стандартный АИ.

пойдёт
 

Imba_pvLДата: Суббота, 22 Декабря 2012, 20:35:07 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 3151
Награды: 1
Репутация: 1260
Блокировки:
Цитата (Sap_phire)
выключай стандартный АИ.

avtortroll о чем ты
FatalBlade, ведь не нуб чтобы такое не сделать
и еще попробуй просто сделать чтобы он наоборот не продавал предметы
сделай такой триггер


 

BruДата: Суббота, 22 Декабря 2012, 20:36:27 | Сообщение # 4
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1950
Блокировки:
Вероятно, цикл? Вероятно, он зациклился. Как не тупо звучит.
 

Sap_phireДата: Суббота, 22 Декабря 2012, 20:38:07 | Сообщение # 5
5 уровень
Группа: Проверенные
Сообщений: 112
Награды: 0
Репутация: 936
Блокировки:
Цитата (Imba_pvL)
FatalBlade, ведь не нуб чтобы такое не сделать

Ну не знаю нуп не нуп, но иначе дело чем в АИ скрипте не может быть. Ну или он сам там накатал приказы продать предмет. С потолка не берётся ничего, я одно скажу вот.


пойдёт
 

FatalBladeДата: Суббота, 22 Декабря 2012, 21:35:35 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Само собой я выключил стандартные АИ <_< Я это сделал ещё когда начинал строить мапу. Иначе мобы не бегали бы по линиям, а собирались в кучи. У меня АоС...

Цитата (Imba_pvL)
и еще попробуй просто сделать чтобы он наоборот не продавал предметы
сделай такой триггер

Я сделал, что бы при триггерном получение предметов, эти предметы невозможно было не выкинуть, не продать, только триггерно удалить. Теперь таки да, герой их не продаёт. Но это не решает проблему. Во первых, как я уже сказал, герою по БД выдаются предметы, по порядку. Но бывает такое, что предмет тупо не выдаётся. Либо индекс не увеличивается, либо равкоды с БД не считываются. В результате нужные предметы не удаляются, и герой не получает следующие предметы, потому что инвентарь забит предыдущими. Этот "баг" происходит рандомно, поэтому я и не могу понять в чём проблема.

Во вторых, если АИ-герой по каким то причинам не может получить предмет (денег не хватает, или лвл мал), то герой выбирает рандомно одну из трёх линий, и идёт туда. Это работает, но бывает случаи, опять же, иногда и не предсказуемо, прям как как Корейский Рандом, когда после покупки предмета и при попытки покупки следующего, герой ступорится и стоит на месте возле магазина. Думаю дело в том, что герой хочет продать предмет, но по выше указанной причине не может, но пытается, и пытается, и пытается... Отсюда и ступор. Возможно?

Цитата (Bru)
Вероятно, цикл? Вероятно, он зациклился. Как не тупо звучит.

Если АИ-герой по каким то причинам не может получить предмет (денег не хватает, или лвл мал), то герой выбирает рандомно одну из трёх линий, и идёт туда. Это работает, но бывает случаи, опять же, иногда и не предсказуемо, прям как как Корейский Рандом, когда после покупки предмета и при попытки покупки следующего, герой ступорится и стоит на месте возле магазина. Думаю дело в том, что герой хочет продать предмет, но по выше указанной причине не может, но пытается, и пытается, и пытается... Отсюда и ступор. Возможно?

Цитата (Sap_phire)
Ну или он сам там накатал приказы продать предмет.

Не существует такого приказа, кстати. Я сам проверил. Нельзя никак триггерно заставить юнита пойти и продать предмет в магазин. Есть приказ "dropitem", но он никогда не срабатывает.




Сообщение отредактировал FatalBlade - Суббота, 22 Декабря 2012, 21:38:16
 

Sap_phireДата: Суббота, 22 Декабря 2012, 21:44:48 | Сообщение # 7
5 уровень
Группа: Проверенные
Сообщений: 112
Награды: 0
Репутация: 936
Блокировки:
Цитата (FatalBlade)
Я сделал, что бы при триггерном получение предметов, эти предметы невозможно было не выкинуть, не продать, только триггерно удалить. Теперь таки да, герой их не продаёт. Но это не решает проблему. Во первых, как я уже сказал, герою по БД выдаются предметы, по порядку. Но бывает такое, что предмет тупо не выдаётся. Либо индекс не увеличивается, либо равкоды с БД не считываются. В результате нужные предметы не удаляются, и герой не получает следующие предметы, потому что инвентарь забит предыдущими. Этот "баг" происходит рандомно, поэтому я и не могу понять в чём проблема.

что за ересь, даже невыбрасываемый предмет можно удалить триггерно! hmm


пойдёт
 

FatalBladeДата: Суббота, 22 Декабря 2012, 21:50:24 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Sap_phire, ты чем смотришь вообще?
Цитата (FatalBlade)
Я сделал, что бы при триггерном получение предметов, эти предметы невозможно было не выкинуть, не продать, только триггерно удалить.


То есть в игре их невозможно продать или выкинуть обычным путям, но триггерно их удалить МОЖНО.




Сообщение отредактировал FatalBlade - Суббота, 22 Декабря 2012, 21:51:13
 

God_of_lightДата: Суббота, 22 Декабря 2012, 21:54:35 | Сообщение # 9
6 уровень
Группа: Проверенные
Сообщений: 206
Награды: 0
Репутация: 185
Блокировки:
Хм...у меня в мапе стандартный Ai не выключен. Нужно с умом использовать близзовские базовые скрипты. Стоит аналогичная система псевдопокупки итемов, но я ни разу не сталкивался с такой проблемой. Думаю чтобы разобраться нужен исходный код твоей мапы...там и видно будет что к чему

Добавлено (22 Декабря 2012, 21:54:35)
---------------------------------------------

Цитата (FatalBlade)
То есть в игре их невозможно продать или выкинуть обычным путям, но триггерно их удалить МОЖНО.

Для всех предметов чтоли сделал копию для ботов?? С выключенными флажками: может быть выброшен, может быть продан??


 

FatalBladeДата: Суббота, 22 Декабря 2012, 21:56:00 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Цитата (God_of_light)
Нужно с умом использовать близзовские базовые скрипты.

Даже когда ты выключаешь близзард-АИ, некоторые скрипты остаются. Их уже не возможно убрать. Ну а с включённым АИ мобы не будут бегать по линиям, а будут собираться где нибудь в кучу.

Цитата (God_of_light)
нужен исходный код твоей мапы

Ты там потеряешься :D

Добавлено (22 Декабря 2012, 21:56:00)
---------------------------------------------

Цитата (God_of_light)
Для всех предметов чтоли сделал копию для ботов?? С выключенными флажками: может быть выброшен, может быть продан??

Нет. Предмет можно триггерно сделать невыбрасываемым и не продаваемым :)


 

God_of_lightДата: Суббота, 22 Декабря 2012, 21:57:15 | Сообщение # 11
6 уровень
Группа: Проверенные
Сообщений: 206
Награды: 0
Репутация: 185
Блокировки:
Цитата (FatalBlade)
Ты там потеряешься :D

Ну тогда только гадать можно)) что да почему.
Цитата (FatalBlade)
Нет. Предмет можно триггерно сделать невыбрасываемым и не продаваемым :)

Ах точно...нублю


 

Sap_phireДата: Суббота, 22 Декабря 2012, 21:57:23 | Сообщение # 12
5 уровень
Группа: Проверенные
Сообщений: 112
Награды: 0
Репутация: 936
Блокировки:
God_of_light,
Цитата (God_of_light)
Для всех предметов чтоли сделал копию для ботов?? С выключенными флажками: может быть выброшен, может быть продан??

зачем? можно триггерно сделать итем невыбрасываемым.
FatalBlade, по смыслу я не понимаю, чем тебя не устраивают невыбрасываемые, но удаляемые предметы для компов. Если надо сымитировать выброс предмета - удалил из инвентарая и создал на позиции.


пойдёт
 

FatalBladeДата: Суббота, 22 Декабря 2012, 22:10:40 | Сообщение # 13
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Sap_phire, ты о чём? :)

1) Предметы у меня изначально и выбрасываемые, и продаваемые.

2) Если герой АИ игрока поднимает предмет, то этот предмет триггерно становится невыбрасываемым и не продаваемым.

3) Невыбрасываемые и не продаваемые предметы МОГУТ быть удалены триггерно, что я и делаю.

4) Мне НЕ НАДО имитировать никакой выброс предмета. Даже наоборот, я стремился от него избавиться, потому и сделал их невыбрасываемыми и не продаваемыми для АИ героев.

5) Проблема совсем в другом. Вот:

Цитата (FatalBlade)
Во первых, как я уже сказал, герою по БД выдаются предметы, по порядку. Но бывает такое, что предмет тупо не выдаётся. Либо индекс не увеличивается, либо равкоды с БД не считываются. В результате нужные предметы не удаляются, и герой не получает следующие предметы, потому что инвентарь забит предыдущими. Этот "баг" происходит рандомно, поэтому я и не могу понять в чём проблема.

Во вторых, если АИ-герой по каким то причинам не может получить предмет (денег не хватает, или лвл мал), то герой выбирает рандомно одну из трёх линий, и идёт туда. Это работает, но бывает случаи, опять же, иногда и не предсказуемо, прям как как Корейский Рандом, когда после покупки предмета и при попытки покупки следующего, герой ступорится и стоит на месте возле магазина. Думаю дело в том, что герой хочет продать предмет, но по выше указанной причине не может, но пытается, и пытается, и пытается... Отсюда и ступор. Возможно?

Добавлено (22 Декабря 2012, 22:10:40)
---------------------------------------------

Цитата (God_of_light)
Ну тогда только гадать можно)) что да почему.

Могу скинуть свои триггеры для АИ. Но они тоже не маленькие.


 

BruДата: Суббота, 22 Декабря 2012, 22:13:28 | Сообщение # 14
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1950
Блокировки:
Цитата (FatalBlade)
Если АИ-герой по каким то причинам не может получить предмет (денег не хватает, или лвл мал), то герой выбирает рандомно одну из трёх линий, и идёт туда. Это работает, но бывает случаи, опять же, иногда и не предсказуемо, прям как как Корейский Рандом, когда после покупки предмета и при попытки покупки следующего, герой ступорится и стоит на месте возле магазина. Думаю дело в том, что герой хочет продать предмет, но по выше указанной причине не может, но пытается, и пытается, и пытается... Отсюда и ступор. Возможно?

Об этом и говорю.
 

Sap_phireДата: Суббота, 22 Декабря 2012, 22:17:40 | Сообщение # 15
5 уровень
Группа: Проверенные
Сообщений: 112
Награды: 0
Репутация: 936
Блокировки:
Цитата (FatalBlade)
по БД выдаются предметы, по порядку. Но бывает такое, что предмет тупо не выдаётся. Либо индекс не увеличивается, либо равкоды с БД не считываются. В результате нужные предметы не удаляются, и герой не получает следующие предметы, потому что инвентарь забит предыдущими. Этот "баг" происходит рандомно, поэтому я и не могу понять в чём проблема.

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


пойдёт
 

BruДата: Суббота, 22 Декабря 2012, 22:26:17 | Сообщение # 16
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1950
Блокировки:
Цитата (Sap_phire)
Сообщение # 15

+1
Через bj debug message
 

FatalBladeДата: Суббота, 22 Декабря 2012, 22:56:33 | Сообщение # 17
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Ну вот пока выяснил примерно в чём проблема.

Всего предметов которые получают АИ 27. После каждого получения предмета, индекс (глобалка) увеличивается на 1. Предметы как бы крафтятся, то есть например 1 сильный предмет заменяет собой 2 более слабых. Всё это происходит через БД, в котором записано какие предметы из чего крафтятся.

Проблема в том, что по каким то причинам, иногда покупка предмета срабатывает сразу 2 раза. Индекс увеличивается на 2, но предмет получен всего 1. Например если индекс равен 10, то даётся предмет под этим индексом. Так вот бывает, что индекс 2 раза прыгает на +1, т.е. становится +2. Теперь индекс равен 12, но предмет из индекса 11 не был выдан герою. И следующий раз, когда герой "покупает" предмет, ему сразу даётся предмет 12-го индекса. А где 11? Нету.

Вроде не так страшно, но в равкод каждого предмета записаны его компоненты. У героя есть предметы, из которых состоит предмет 11-го индекса. Только получив "11-ый" предмет, эти составляющие компоненты будут удалены. А если индекс прыгает с 10 на 12, и герой не получает предмет 11, то его (11-го) компоненты теперь тупо торчат в инвентаре, что в последствие "не пускает" новые предметы в инвентарь.


 

lawsonДата: Суббота, 22 Декабря 2012, 23:15:23 | Сообщение # 18
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
FatalBlade, эхх, странно может ты не разобрался с функцией, которой дается приоритет выкидываемым предметам...

Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

FatalBladeДата: Суббота, 22 Декабря 2012, 23:19:07 | Сообщение # 19
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Цитата (lawson)
FatalBlade, эхх, странно может ты не разобрался с функцией, которой дается приоритет выкидываемым предметам...

Функция? :o Приоритет вроде выставляется только в РО. Я пытался поколдовать в РО с этими циферками, но не работает.




Сообщение отредактировал FatalBlade - Суббота, 22 Декабря 2012, 23:19:19
 

lawsonДата: Суббота, 22 Декабря 2012, 23:27:07 | Сообщение # 20
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
FatalBlade, эхх, этот ИИ, хмм

Добавлено (22 Декабря 2012, 23:24:44)
---------------------------------------------

Цитата (FatalBlade)
Я пытался поколдовать в РО с этими циферками, но не работает.

хеххе, и не сработает

Добавлено (22 Декабря 2012, 23:27:07)
---------------------------------------------
В структуре есть функция, которая скидывает не нужные боту предметы, слот освобождается - добавляется новый предмет, иначе если предмеет нужный, слот освобождается но запоминается id нужного предмета, затем добавляется новый предмет, после добаляется ранее удаленный, как я помню
сорри просто под шофэ пишу как даун какойто.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Суббота, 22 Декабря 2012, 23:24:12
 

MuradorДата: Воскресенье, 23 Декабря 2012, 00:12:43 | Сообщение # 21
Группа: Проверенные
Сообщений: 1221
Награды: 1
Репутация: 446
Блокировки:
Цитата (FatalBlade)
Есть приказ "dropitem", но он никогда не срабатывает.

может быть дропай через UnitRemoveItemFromSlot

Добавлено (23 Декабря 2012, 00:12:43)
---------------------------------------------
упс, ты о приказе, ну да ладно
опять я дал некчемный совет

 

lawsonДата: Воскресенье, 23 Декабря 2012, 00:58:58 | Сообщение # 22
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Цитата (Murador)
UnitRemoveItemFromSlot

в функции так и задано, все верно, только ответ не правильно преподнесен.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

FatalBladeДата: Воскресенье, 23 Декабря 2012, 01:35:34 | Сообщение # 23
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Народ, проблема насчёт не продавания решена. Я уже писал что дело в том, что функция запускается 2 раза. Тоже решено. Но вот проблема насчёт ступора не решена.
Вот конструкция, которая в случае если герой не может купить предмет, отправляет его в одну из трёх точек на карте. Это не весь код, а вырванная часть, которая отвечает именно за посылание героя.


Как я уже писал, она работает, но иногда не срабатывает. Тут рандомное целое число от 1 до 3. Через дебуг я проверил. Число выбирается всегда. Герой даже проходит пару шагов в нужном направление, и тут вдруг останавливается. Это происходит ИНОГДА.

Возможно ли, что если в точке, которую выбрал герой, уже находится в данный момент другой юнит, то герой не может идти в том направлении, и поэтому тормозит? Хотя приказ "move" а не "smart", но всё же.




Сообщение отредактировал FatalBlade - Воскресенье, 23 Декабря 2012, 01:41:13
 

MuradorДата: Воскресенье, 23 Декабря 2012, 01:56:16 | Сообщение # 24
Группа: Проверенные
Сообщений: 1221
Награды: 1
Репутация: 446
Блокировки:
Мне больше интересно почему индекс "перепрыгивает" некоторые цифры
попробуй записать DebugMsg на каждую строку твоей рабочей функции
иногда помогает

(ещё может быть все дело в том что бот может купить не один предмет а два, поэтому покупает (хотя это бред) индекс же в+ идет =/)

Добавлено (23 Декабря 2012, 01:52:25)
---------------------------------------------
покупка ботом основанна переодическим таймером
может один приказ забивается другим, если конечно таймер не активирует предоставленную функцию

почему бы тебе не брать диапозон цифр x и y чтобы формировать приказ к точке
допустим I2R(GetRandomInt(-100,100))

Добавлено (23 Декабря 2012, 01:56:16)
---------------------------------------------
вообще не понимаю почему покупка реализована таймером о_О

 

FatalBladeДата: Воскресенье, 23 Декабря 2012, 02:35:22 | Сообщение # 25
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Murador, дело было в том, что само событие на всю это фигню было создано 2 раза. Поэтому и дублировалось.

Цитата (Murador)
вообще не понимаю почему покупка реализована таймером о_О

Ну типа стоит герой у магазина. Если у него есть есть денги на предмет по индексу, то он его покупает. Если нету - идёт фармить. Точно так же, как и сделал бы любой игрок - закупляется по максимуму :)


 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » АИ самостоятельно продаёт полученные триггерно предметы (wtf?)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz