Задача №8: Включение AI: ASAP [old]

Разработка новых функций.

Модератор: 4epT

Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Задача №8: Включение AI: ASAP [old]

Сообщение piroJOKE »

Задача №8: Включение AI: ASAP [old] [2006-X-16]
Включение AI: "как только - так сразу": (без timeout AI).

timeout AI по умолчанию равен 2.

После смены карты логика OpenKore отключена 2 секуны, и лишь по истечении этого времени начинает работать.

Зачем это нужно?

Если дать меньшее значение, 1, как правило работать будет. Если поставить 0, начнутся аномалии.

Проблема в том, что Kore в момент принятия рашения еще не получила от сервера статусы чара, данные об окружающей его "объективной действительности" ;) и о содержимом инвентаря.

А это значит, что Kore скорее всего решит отправится за покупками, т.к. по его мнению у него кончились банки/винги и т.п.

Теоретически, мы можем обойтись без этого таймаута вообще. Нам достаточно дождаться момента, когда все данные будут загружены. Или даже не все, а лишь нужные нам (главным образом - инвентарь). При достаточно быстрой связи это будет практически мгновенно; менее 0.5 секунды.

Этот даст возможность сделать ОЧЕНЬ быстрый teleSearch, например, для поиска MVP.
Jerry:
вопрос не сформулирован. ) Что нужно то ? телесерч сделать ? Дык его можно и так сделать, при серче банки никому не нужны.
zzzz: а, вру, нельзя телесерч сделать. Без таймаута никуды.
pJ:
1) Пока мы незнаем индекс итема в инвентаре - использовать его не получится.
(1а - уточнение - в 90% индекс будет тот же; за исключением, если у нас кончился какой-то расходник - тогда индекс может измениться)
2) Пока мы не получили информацию, что происходит вокруг нас, нет смысла винговаться дальше.
Формулировка задачи такова: "Включать AI по готовности, а не использовать задержку из переменной timeout AI".
Jerry:
нету такого понятия как "готовность". Сервер пихает координаты мобов "как есть". т.е. ты прилетел, и - вот тебе ..раз ..два .... три. .. четыре ..
И все, больше ничего может через секунду прийти .. пять.. из-за лага, а может и не прийти. А может и через две..
а итемы ... итемы можно в принципе кешировать, да ..
pJ:
1) Ты не прав. Если я правильно помню, "то, что вокруг" приходит одним пакаваном (?). Да, потом может прийти что-то еще. Но нам некогда ждать. Достаточно получить первую посылку.
2) Итемы кешировать... Если бы не было проблемы (1), имело бы смысл. Но насколько я помню, сначала приходят статусы, потом итемы, а потом (?) "то, что вокруг", так что, смысла экономить время на итемах как бы и нет (?).
Jerry:
Вообще гоовря, я не помню, какая там именно последовательность, но это даже и не важно. Есть пакет, допустим, "моб появился". Так вот, в случае сетевой передачи, строго говоря, никто даже не гарантирует, что этот пакет придет целиком, то есть за одну операцию чтения из сокета. Далее - если сервер отослал 4 таких пакета - никто не гарантирует, что они придут 4 сразу, а не 2 сейчас, а два через секунду. И в третьих - никто не указывает, что "загрузка мобов закончена". Так что вот.
Кеширование итемов может .. ээ теоретически пригодиться.. если нам не нужна мобовая обстановка. То есть если нам никакая обстановка не нужна )) Допустим, для быстрого перемещения по карте. Хотя конечно влишком виртуальная ситуация.
pJ:
Там не один пакет - один моб. Там все мобы - один пакет. (?)
Jerry:
Нет. Один моб - один пакет. 0x78 0x7B или 0x7С
pJ:
Флуд:
Как говорил старик Хотабыч, "сомневаюсь, о Волька, чтоб это было так".
Я проверю, но мои предыдущие наблюдения говорят об ином.
На том мы и остановились...
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Ну, вот тут я упоминал о том, что у меня есть одна идейка. Вот она:
На крайняк мы можем устроить что-то вроде пинга. Т.е. заслать пакет, на который сервак немедля отвечает. Тогда весь сценарий выглядит так:
  • начинаем тп;
    изменилась карта - мы засылаем "да, карта загружена";
    Kore отключает AI.
    ...сервер начинает передавать инфу о обстановке...
    мы засылаем "пинг";
    ...ждем, пока придет ответ; вероятно, он будет обработан после того, как сервер передаст всю обстановочку...
    приходит ответ на пинг или кончается таймаут - всё, можно включать AI.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

В качестве пинга - sync?
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

DInvalid
Да абсолютно что угодно, хоть состав гильды или запрос собственного имени.

ЗЫ: Забыл пояснить для начинающих в прошлый раз, что ASAP = as soon as possible = так быстро, как только возможно = "как только, так сразу". :D
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
Jerry
Профессионал
Сообщения: 1047
Зарегистрирован: Сб ноя 04, 2006 12:26 pm
Контактная информация:

Сообщение Jerry »

DInvalid писал(а):В качестве пинга - sync?
а sync разве требует ответа сервера?
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

Попрошу уточнить условия задачи.
Они таковы?
1) Пока мы незнаем индекс итема в инвентаре - использовать его не получится.
(1а - уточнение - в 90% индекс будет тот же; за исключением, если у нас кончился какой-то расходник - тогда индекс может измениться)
2) Пока мы не получили информацию, что происходит вокруг нас, нет смысла винговаться дальше.
Формулировка задачи такова: "Включать AI по готовности, а не использовать задержку из переменной timeout AI".
1)
Термин готовность что означает в данном контексте?
Готовность винговаться дальше?
2)
Информация о том что происходит вокруг нас меняеться с каждым тиком.
Предположим мы появляемся на карте, получаем ответ о пинге сервера и летим дальше, в это время в окрестностях места откуда мы только что улетели спавнится нужный нам моб / или появляется в зоне видимости (а до этого он был чуть дальше).

Так что вероятно, надо решить, какой чатстью информации мы готовы пожертвовать.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

DInvalid
На самом деле у этой штуки есть 3 разных применения, и для каждого из них флаг "готовность" несет разный смысл.

1) Мы телепортимся по карте, пытаясь быстро добраться до портала (роут телепорт). Готовность = загруженный инвентарь.

2) Мы бежим от игроков (тпАллПлеерс или как оно там). Готовность = загруженный инвентарь + получение инфы о том, что рядом нехороший "актор".

3) Мы ищем моба (телесеарч). Готовность = загруженный инвентарь + 80%...90% уверенность, что все мобы в зоне видимости загружены. Это самый сложный случай.

2+3) Комбо второго и третьего случая. В таком случае приоритетней (2), а лишь потом (3).
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

Jerry писал(а):
DInvalid писал(а):В качестве пинга - sync?
а sync разве требует ответа сервера?
Я не совсем верно выразился...
После каждой смены карты разьве не приходит от сервера
пакет 007F - sync recieved?
И не дождавшись его, мы разьве можем использовать какие-либо скиллы?
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

DInvalid
Не факт. Надо посмотреть порядок подгрузки данных... Может еще какие-то закономерности есть.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

piroJOKE писал(а):DInvalid
Не факт. Надо посмотреть порядок подгрузки данных... Может еще какие-то закономерности есть.
Надо у Jerry спросить... про обязательный ответ на синк после смены карты...
а последовательность
[Feb 2 22:35:17 2007] Map loaded
[Feb 2 22:35:17 2007.91] ================================================
616 bytes (01EE (Inventory Items List : 00A3))
[Feb 2 22:35:17 2007.98] ================================================
264 bytes (00A4 (Inventory Equipments List))
[Feb 2 22:35:18 2007.51] ================================================
44 bytes (00BD (Your Status Info (Calculated)))
.
.
.
[Feb 2 22:35:18 2007.80] ================================================
11 bytes (01D7 (Weapon / Shield Display))
[Feb 2 22:35:18 2007.81] ================================================
6 bytes (007F (Received Sync))
[Feb 2 22:35:18 2007.84] ================================================
54 bytes (0078 (actor_display (actor exists)))
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

"Надо у Jerry спросить... про обязательный ответ на синк после смены" - а не проще посмотреть статистику? )

Кстати, а это оф (Д.И, я про твой порядок получения)? Механика еА может значительно отличаться.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

Стастистика это статистика... а если в программе что то жестко прописано - это уже 100%.
Мой порядок получения это оф, полеты были осущесвлены в клиенте в режиме ХК.
Аватара пользователя
Jerry
Профессионал
Сообщения: 1047
Зарегистрирован: Сб ноя 04, 2006 12:26 pm
Контактная информация:

Сообщение Jerry »

DInvalid писал(а):
piroJOKE писал(а):DInvalidНадо у Jerry спросить... про обязательный ответ на синк после смены карты...
А телепорт это разве смена карты? :)
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

Jerry писал(а):
DInvalid писал(а):
piroJOKE писал(а):DInvalidНадо у Jerry спросить... про обязательный ответ на синк после смены карты...
А телепорт это разве смена карты? :)
Да, телепорт это смена карты на эту же.
если тебе на нравится слова смена замени его словом "загрузка", ок?
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Эээээ, стой раз два! Мы не говорим не про какие телепорты! ;) Мы говорим про смену карты - любую. ;) (А телепорт - ее частный случай)
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Ответить