14.07.2011, 13:53 | #1 |
Новичок
Регистрация: 24.03.2010
Сообщений: 23
Сказал(а) спасибо: 7
Поблагодарили 5 раз(а) в 4 сообщениях
|
[DEV] StormCore (Java WoW Emu)
Вот, решил начать писать emu пресловутой игры на Java, так как данная игра и язык представляют для меня большой интерес. Хочется совместить приятное с полезным и углублять свои знания в Java. Может кого-нибудь заинтересует моя задумка...
На данный момент удалось реализовать аутентификацию с реалм сервером. Выкладываю исходники своего творения. Прошу строго не судить. [HIDE="Устарело"] Проект переехал с http://github.com/ШтормКоре в http://github.com/JMaNGOS git clone git://github.com/JMaNGOS/storm.git В данный момент проект storm заморожен. UPDATE: storm закрыт полностью все наработки перебрались в JMaNGOS [/HIDE] В свою очередь все наработки были перенесены в новый проект "JMaNGOS". И сейчас все работы ведутся над "JMaNGOS". Проект http://github.com/JMaNGOS git clone git://github.com/JMaNGOS/JMaNGOS.git Последний раз редактировалось mAdloVe; 14.09.2013 в 18:42. Причина: возвращение проекта |
14.07.2011, 14:24 | #2 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
задумку поддерживаю. сделайте репозиторий.
|
14.07.2011, 21:45 | #3 |
Новичок
Регистрация: 24.03.2010
Сообщений: 23
Сказал(а) спасибо: 7
Поблагодарили 5 раз(а) в 4 сообщениях
|
|
14.07.2011, 21:49 | #4 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
stormcore
|
18.07.2011, 22:52 | #5 |
Гость
Сообщений: n/a
|
и все таки получилось дойти до списка реалмов...
так лишь бы проверить, что возможно отображать Вложение 1023 Последний раз редактировалось Minimajack; 10.09.2011 в 03:18. |
Пользователь сказал cпасибо: | mAdloVe (19.07.2011) |
19.07.2011, 11:36 | #6 | |
Новичок
Регистрация: 24.03.2010
Сообщений: 23
Сказал(а) спасибо: 7
Поблагодарили 5 раз(а) в 4 сообщениях
|
Цитата:
А поддержку 2.4.3 и 3.3.5a я уже дописал в субботу, но забыл добавить во внешний репозиторий. На данный момент я уже добавил. |
|
19.07.2011, 20:05 | #7 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
не парся с версиями клиентов. выбери что нибудь одно и делай ядро, нетворк, апдейтсистему, спеллсистему, мувемент. этой работы тебе хватит на полгода
сменить версию поддерживаемого клиента вопрос пары часов-дней, в зависимости от объема реализованного. |
Пользователь сказал cпасибо: | mAdloVe (20.07.2011) |
20.07.2011, 14:37 | #8 |
Новичок
Регистрация: 24.03.2010
Сообщений: 23
Сказал(а) спасибо: 7
Поблагодарили 5 раз(а) в 4 сообщениях
|
to RomanRom2: спасибо за совет.
|
20.07.2011, 22:11 | #9 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
не за что. в рамках необходимой мне прокачки скилла java programming с удовольствием по принимаю участие. обращайся.
пока слежу только. но с пристрастием Последний раз редактировалось RomanRom2; 20.07.2011 в 22:14. |
20.07.2011, 23:57 | #10 |
Гость
Сообщений: n/a
|
JMaNGOS
я выбрал такой вариант т.к. по большей части, результат - это фактически повторное использование кода мангоса и его частей. |
21.07.2011, 00:06 | #11 |
Гость
Сообщений: n/a
|
советую использовать
http://commons.apache.org/dbcp/ http://commons.apache.org/pool/ для фабрики соединений с БД, т.к. в любом случае понадобится более одного соединения с БД |
21.07.2011, 00:21 | #12 | |
Новичок
Регистрация: 24.03.2010
Сообщений: 23
Сказал(а) спасибо: 7
Поблагодарили 5 раз(а) в 4 сообщениях
|
Цитата:
А помощь - это хорошо. Буду рад. |
|
21.07.2011, 02:23 | #13 | |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
Цитата:
если у вас "опять началось в колхозе утро", то это утопия и мы это уже проходили с Delphin. я все же искренне надеюсь, что хоть кто то наконец сможет отойти от линейной объектной модели мангоса и подумать самому на начальном этапе. пока не поздно хозяин - барин. в целом не важно, хоть "петухом" его назови, суть то не изменится. но с другой стороны, "как корабль назовешь, так он и поплывет" |
|
Пользователь сказал cпасибо: | Gerald (27.07.2011) |
21.07.2011, 06:52 | #14 |
Ученый
Регистрация: 08.05.2010
Адрес: Новокузнецк
Сообщений: 141
Сказал(а) спасибо: 32
Поблагодарили 21 раз(а) в 9 сообщениях
|
__________________
MZero - z1686 SDZero - z0354 - 17.05.2011 |
21.07.2011, 08:21 | #15 | |
Гость
Сообщений: n/a
|
Цитата:
А что вы называете "линейной объектной модели мангоса"? |
|
21.07.2011, 09:51 | #16 |
Ученый
Регистрация: 08.05.2010
Адрес: Новокузнецк
Сообщений: 141
Сказал(а) спасибо: 32
Поблагодарили 21 раз(а) в 9 сообщениях
|
Наследие демона XD
__________________
MZero - z1686 SDZero - z0354 - 17.05.2011 |
21.07.2011, 11:53 | #17 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
писали. сейчас давно уже не пишут. изначально он назывался DelphEmu и сотворил его всем нам хорошо известный user456. потом присоеденилась банда и узурпировала власть моделью то что происходило в TeamPython, то что происходило в wowd и его многочисленных форках, и то что происходит сейчас в мангосе. точнее то что происходило примерно года два-три назад, сейчас я потерял всякий интерес к кодам. не так давно, может полгода назад мельком заглянул снова (что то кому то показать и где то даже писал об этом, здесь на форуме) - воз и ныне там. заплатка на затычке, затычка на заплатке. патчами подгоняет. одно только ваше "карта в карте" для транспорта чего стоит началось конечно осторожное поползновение в сторону структурной объектной модели, но... слишком поздно ничего личного, пожалуйста без обид чуваки вы все прикольные, но в наследство вам досталось вон правильно говорят - наследие демона, это не ваша вина Последний раз редактировалось RomanRom2; 21.07.2011 в 11:56. |
7 пользователя(ей) сказали cпасибо: |
21.07.2011, 12:49 | #18 |
Гость
Сообщений: n/a
|
Авось пригодится запрос на выборку всех текущих банов, что бы при коннекте пользователей не делать по 500 запросов с проверкой
PHP код:
|
21.07.2011, 12:59 | #19 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
а где и когда такой запрос может пригодится?
плюс ко всему в нем же вложенный запрос, что соответствует 500 запросам один фиг, если парент и чайлд запросы возвращают много записей |
21.07.2011, 13:45 | #20 | |
Гость
Сообщений: n/a
|
Цитата:
вложенный запрос очень простенький... "WHERE unbandate > UNIX_TIMESTAMP()" отсекает все устаревшие... запрос был бы попроще, если поле ip в бд было единственным ключем, а так из-за совместимости с БД мангос.... Кстати, а вот реалмлист хранится отдельно почему и бан лист не хранить? |
|
21.07.2011, 14:03 | #21 |
Новичок
Регистрация: 24.03.2010
Сообщений: 23
Сказал(а) спасибо: 7
Поблагодарили 5 раз(а) в 4 сообщениях
|
to Minimajack: А если во время работы сервера на кого-нибудь повесить бан?
|
21.07.2011, 14:13 | #22 | |
Гость
Сообщений: n/a
|
Цитата:
в общем есть контроллер BanIpController...при запуске сервера происходит инициализация (загрузка текущих банов) при коннекте посредством этого контроллера проверяем наличие йп пользователя в списке банов при бане используя этот контроллер добавляем бан в бд и коллекцию при разбане удаляем из кол-ции и из бд при всяких хз каких случаях есть метод reload... хорошо, а как такая плюшка, что посредством хранения в кол-ции возможно организовать не только бан по йп, но и бан по маске. Чего в текущем варианте ( хранимые функции и т.п. в бд , как изврат не в счет) толком не добиться. |
|
21.07.2011, 14:36 | #23 | |
Kobold Dev
Регистрация: 29.07.2010
Сообщений: 21
Сказал(а) спасибо: 5
Поблагодарили 2 раз(а) в 2 сообщениях
|
Цитата:
По поводу сабжа - ребята, как Рома сказал - ищите собственные пути развития. Это принесет вам и опыт и славу и главное - удовольствие от работы. От банального копипаста вы всего этого не получите. Ну переписали вы Мангос на яву - и что? А поиск собственных решений, возможно (при серьезном подходе) принесет значительно лучший результат нежели у ребят из Мангоса Быдлокод - это зло, боритесь с ним и не пытайтесь изобретать велосипед.
__________________
World Database Development Group |
|
21.07.2011, 14:49 | #24 | ||
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
золотые злова, Юрий Венедиктович
Цитата:
но в мне в аське он сказал, что не пишет ничего и смысла в этом нет, в одиночку не потянуть. Цитата:
флаг на аккауте banned в true и все. при логине все равно читаете данные аккаунта. |
||
21.07.2011, 15:32 | #25 |
Гость
Сообщений: n/a
|
с точки зрения безопасности, реализовывать бан по йп необходимо. Я понимаю, что это далеко не основная часть и прикрутить ее легко, но уж лучше будет сразу.
наверное неправильно меня поняли когда я говорил про повторное использование кода мангоса... имелось ввиду работа с клиентской частью: разбор структур, опкоды и т.п. |
21.07.2011, 15:52 | #26 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
чесно говоря не вижу вообще смысла в этом. зачем банить подсети? это пережиток фришардов с админами-малолетками, которым необходимо как то самоутверждаться. банить надо аккаунт. на оффе ведь не банят подсетями
про повторное использование кода я не узрел. мысль в корне правильная. вообще говоря это одна из неотъемлемых частей методологии объектно-ориентированного планирования (не путать с программированием). очень важная весч. в больших проектах есть специально обученный для этого человек, который только и делает, что находит копипасты и фиксирует это, передавая дизайнерам, что бы те таки использовали код повторно. про разбор структур и опкодов я толдычу наверное еще с 2006 года на всех углах, форумах и чатах. без разобранных "остальных" байтов опкода может в корне изменится дизайн какой либо фичи. далеко ходить не будем - "карта в карте" для транспорта. вот и получаем, что не зная (не имея) полного представления об интструментарии (структуры/опкоды), начинаем выдумывать какие то глупости и удивляемся, почему же так криво они прикручиваются к общему концепту. да потому что оно не так было задумано и сделано когда все опкоды разобраны и используются все до единого поля этих опкодов, архитект фичи дизайнится очень легко и понятно. я убедился в этом например на группах/рейдах. месяц (не помню точно сколько) сидел и разбирал все до байта. когда все сложил в кучу, все встало на свои места, ответы на все "зачем", "как" и "почему" сразу прояснились. еще плюсом сюда можно приплеплести изобретение дополнительной ненужной фунциональности, типа бана подсетей. распыляемся на этом, получается ни там ни сям. с другой стороны, прекрасно осознавая, что проект мангос сам по себе имеет стратегию обучающую, мол "каждый может"... и т.д. и т.п., то совершенно нечего удивляться результатам. свою роль мангос вполне опправдывает, я считаю. я изначально начал с того, что не надо копировать все с мангоса, там малина только сверху, внутри если приглядеться - Последний раз редактировалось RomanRom2; 21.07.2011 в 15:58. |
21.07.2011, 16:03 | #27 |
Ученый
Регистрация: 08.05.2010
Адрес: Новокузнецк
Сообщений: 141
Сказал(а) спасибо: 32
Поблагодарили 21 раз(а) в 9 сообщениях
|
Роман. К тараканам по оппкодам, сорри конечно что загаживая чужую тему.
Но есть ли у вас данные по флай системе классика с вашими гигами сниффов? МЗ тугое в этом отношении. С флай там вообще глухотень. Если конечно разобранных опкодов не жаль)
__________________
MZero - z1686 SDZero - z0354 - 17.05.2011 |
21.07.2011, 16:08 | #28 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
move flag = $300 - для полетов. и сплайн из нескольких точек в А9 и monster_move с обязательным дублированием последней точки два раза. флая в классике не было. больше ничего особенного.
ЗЫ. тему не загаживаем, а наполняем тематическим контентом |
21.07.2011, 17:31 | #29 |
Ученый
Регистрация: 08.05.2010
Адрес: Новокузнецк
Сообщений: 141
Сказал(а) спасибо: 32
Поблагодарили 21 раз(а) в 9 сообщениях
|
А что с хувером?
Парение на месте как было реализовано?
__________________
MZero - z1686 SDZero - z0354 - 17.05.2011 |
21.07.2011, 18:01 | #30 |
Гость
Сообщений: n/a
|
какие идеи по поводу DAO
работать интерфейсами моделей, реализацию брать у фабрики... пример http://java.sun.com/blueprints/corej...essObject.html |
21.07.2011, 18:42 | #31 | |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
каким хувером? ховер имеется ввиду? hover? я же сказал, не было парения в классике никакого. я ж вам еще несколько месяцев назад в чатах ваших говорил об этом, а вы все продолжаете колоться и жрать кактус?
Цитата:
|
|
21.07.2011, 18:53 | #32 | |
Ученый
Регистрация: 08.05.2010
Адрес: Новокузнецк
Сообщений: 141
Сказал(а) спасибо: 32
Поблагодарили 21 раз(а) в 9 сообщениях
|
Цитата:
Из далеких лет. А вообще с парением как таковым да проблемы были, но раз его нет, то тут другой тогда интереснейший вопрос, что тогда на той же самой ониксии в перерывах между кастом спелла и перелетами из точки а в точку б в летной фазе, когда топчется на месте дуреха. Мы тож ни флагов ничего не нашли по хуверу и в результате получили что получили) При навмехе выглядит особо забавно, получаем рекалькуляцию З координаты ибо - раз моб не движется - значит моб стоит, флага парения нет, знач должен стоять на земеле - на - получи рекальк З до террейна) А за повторный вопрос все-таки сорри)) На нетрезвую голову не все и упомниш)
__________________
MZero - z1686 SDZero - z0354 - 17.05.2011 |
|
21.07.2011, 19:11 | #33 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
ну чудес не бывает, что то такое там особенное значит есть. вот доделаю свой плеер и посмотрю снифф рейда на ониксию.
|
25.07.2011, 03:55 | #34 |
Гость
Сообщений: n/a
|
to madlove: stormcore / authserver / ClientConnection.java
не до конца читаешь буфер...а именно структуру sAuthLogonProof_C, оставил не прочитанными 2 байта в буфере, а потом его обнулил...прокатило. Не уверен конечно, что клиент может посылать за раз несколько опкодов, но если такое возможно, то ты просто выбросишь кусок опкода(ов)... да и вынеси с подвала четыре переменные связанные с srp6...теряются |
25.07.2011, 10:42 | #35 |
Новичок
Регистрация: 24.03.2010
Сообщений: 23
Сказал(а) спасибо: 7
Поблагодарили 5 раз(а) в 4 сообщениях
|
to Minimajack:
1. За раз читается один пакет, не читал два последних так как не использовал. Сейчас буду переписывать обработку полученных пакетов и учту 2 байта. 2. Еще не определился с форматом кода. Может? Константы вверху поля внизу. |
25.07.2011, 11:18 | #36 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
существует же стандарт на оформление java кода, разработанный и продвигаемый гуглом. eclipse и netbeans, например, используют его в своих автоформатилках. все интерфейсы класса нужно объявлять вверху, вначале файла. затем идет имплементация конструктора, затем методов.
|
25.07.2011, 11:33 | #37 |
Новичок
Регистрация: 24.03.2010
Сообщений: 23
Сказал(а) спасибо: 7
Поблагодарили 5 раз(а) в 4 сообщениях
|
В проекте уже лежит форматор кода "stormcore-formatting.xml" и используется в проекте. Про поля не согласен некоторые описываю вверху, а некоторые внизу.
Про конструкторы и методы бесспорно в такой последовательности. |
25.07.2011, 20:29 | #38 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
согласен - не согласен... я говорю существует стандарт и имеет смысл его придерживаться.
|
26.07.2011, 16:47 | #39 |
Гость
Сообщений: n/a
|
как насчет структур? dbc, vmap ...
Гугль приводит к javolution Struct, но может просто конвертировать в хмл? |
27.07.2011, 09:12 | #40 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
Пока еще не поздно подумайте над архитектурой классов для доступа к БД, потому что код вперемешку с sql запросами выглядит ужасно. И дело не только в эстетике
Можно использовать классическую трехзвенную модель, но при желании также возможно реализовать какой-нибудь другой вариант если будет необходимость. |