Хождение и атака сквозь стены на осаде

 
+
-
edit
 

Diamond

втянувшийся

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

На то чтобы разобраться - потратил часа 2, на описывание стенки - 5 минут. Весь замок описать - часа 2.

Вопрос - почему раньше не сделали? ;D

С помощью того же bodyguard научился отслеживать факт атаки, могу получить координаты атакующего и атакуемого. Если эти координаты а так же область стены передать функции на java, которая отследит пересечение, то нельзя будет стрелять через стены. Просьба написать такую функцию :)

Если все это доработать, осады станут гораздо интереснее, на производительности не скажется (проверял).
 
+
-
edit
 
Ты проверял на онлайне хотябы в 300 человек? А то что ПО стене можно ходить учел?
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  
+
-
edit
 

Diamond

втянувшийся

Ты проверял на онлайне хотябы в 300 человек? А то что ПО стене можно ходить учел?
 

На осаде участвует максимум 40х40 и то врятли... Насчет стены - учел, у стен будет учитываться высота, если выше - не обрабатывается. Кроме того, балансер говорил есть трехмерные области, но они еще не реализованы на форте.
 
+
-
edit
 

MetAleX

клан PACCBET
imho проблемы с нагрузкой будут зависеть не от онлайна, а от числа описанных стен.

если код будет типа:
if( мы в стене1 ) { ... } else if( мы в стене2 ) { ... } else if( мы в стене3 ) ...

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

если описать 10 стен это не страшно. а если стен будет 1000?
MetAleX & Almalexia & Lia - забросил Server: Hindemith  

Murkt

Pythoneer

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

если описать 10 стен это не страшно. а если стен будет 1000?
 

На самом деле там большинство локаций будет отсекаться до полной проверки, но всё равно это небыстро.
[team Їжачки - сумні падлюки]  
+
-
edit
 

Diamond

втянувшийся

Будет порядка 10 кусков внешней стены, и штук 20 для внутренних строений. Можно же прописывать только там, где это нужно.
Из кода на форте выполняется только 2 условия при попадании в область, 1 это проверка игрок или нет, 2 это проверка высоты. На стену игроки натыкаются очень редко. Если сделать обьемные области, то будет выполняться 1 условие.
Проверку попадания (при выстреле) в стену можно сделать двумя способами, либо функцией на java, которой передаешь координаты выстрела и куски стены и она возвращет флаг пересечения (очень медленно) либо сделать событие, которое надо будет привязывать через форт ко всем кускам стены и к игрокам.
Если сделаете на java событие "попадание в стену" то при попадании тоже будет проверяться всего 1-2 условия.
Допустим у нас 80 игроков. Тогда в среднем каждую секунду будет до 10 натыканий на стену, и до 20 попаданий (больше откат заклинаний не позволит), а значит 80-160 проверок на форте, остальное на java. Незнаю, выдержит ли он столько :)

В крайнем случае все это можно полностью сделать на java, но тогда будет гораздо меньше возможностей. Ведь такими методами на форте можно сделать кучу интересных эвентов, где необходим запрет на движение сквозь стену.

И чаще всего в осаде участвует не 40х40, а 20х20, можно же сделать этот механизм отключаемым.

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

Murkt

Pythoneer

Маленькие какие-то у вас осады. Больше года назад на сервере с онлайном 160-170, где треть была ботами, на осады собиралось с каждой стороны по 80..100 человек :)
[team Їжачки - сумні падлюки]  
+
-
edit
 

Diamond

втянувшийся

Ну у нас сейчас онлайн 50 :)

Насчет геодаты - лучше бы бросили все дела и сделали геодату, народ пойдет толпами ;D
 
+
-
edit
 

Saboteur

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

Тем более что движок передвижения и видимости в любом случае будет доделываться, и наверное уже с учетом геодаты.
-- Saboteur aka Sergey Kulik  

Murkt

Pythoneer

Насчет геодаты - лучше бы бросили все дела и...
 


...и вылетел бы из универа, ага.
[team Їжачки - сумні падлюки]  
+
-
edit
 

Diamond

втянувшийся

Так лето уже, можно делами заняться ;D
 
AD Реклама Google — средство выживания форумов :)

Drac

разработчик l2j-сервера

Хех...лето-летом, а у некоторых ещё первый экзамен вчера был. Так что не надо тут.
 

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru