Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

DarkMaster

Пользователь
  • Постов

    162
  • Зарегистрирован

  • Посещение

Весь контент DarkMaster

  1. 2 проблемы которые реально мешают, быстро написать рейд версию. 1 - ая, время, его очень мало, сейчас предотпускное время, и не сикрет что это время отчетов и "злых" насялников *))) Вообшем очень много работы мало свободного вермя. 2 - ая, нету возможности адекватно тестировать, я об это уже писал милеон раз, мне нужен статик рейд - готовый по моей просьбе быстро среагировать и помочь в тестирование. То есть - я например выкраил время в обеденный перрыв - 30 мин, в 14:00 - я зашел позвал, люди тутже бросили все свои дела и помогают мне в тестировани и отладке. Или анаолагично но вечером. Вообщем в любое время когда я смогу зайти в игру для тестирования, что бы аптайм был максимальный и не тратился в пустую. В остальном проблем нету.
  2. Автор не забросил проект - просто работы навалилось море ..... пока зашиваюсь
  3. В ВОВ Уже давным давно есть аддон собирающих все кнопочки в 1ну панельку скрываемую очень удобно + есть близамми написанная реализация того о чем я писал выше - спец закладки для аддонов в настройках интерфейса игры *))) Если у вас кнопки аддонов на миникарте друг друга закрываетю то это ваш ен досмотр *)
  4. А тепреь ничего *))))))) ТОлько дурацкий способ через user.cfg. По Таймеру аддоны следять за заранее оговоренной секцие XXX_ADDONS_OPTIONS если там есть их секция и в ней поменялся флаг RunOptions = true, то аддон запускает свои опции и ставит флаг в false, ну и аналагично для показать\спрятать. user.cfg по обьему это не сильно напряжет, вот только трынькать его будет по таймеру 8((((( а это тормоза, темболее другие аддоны тоже его трынькают. Сделать что то типа функций для Драк&Дроп или класса в библиотеку. Например: AddonManagerInit() - проверяет установлен ли аддон манеджер AddonManagerUpdater( MyAddonName, RunOptionsFunc, EnableDisableFunc ) - вызываеться в таймере - читает конфик секцию и по имени аддона и запускает опции с помощью фукции передаваемой в качестве параметра, так же с вкл\вкл. Примерно такие мысли были у меня
  5. Эм не трудко конечно, но поймите когда что то делаешь для масс, начинаешь считать что базавые вещи люди понимают по умолчанию, так как сам их понимаешь и воспринимаешь как должное, да и инструкция по установке аддона и инструкция по использованию - разные вещи. *))))))
  6. Правельнее былобы сделать АддонМенеджер - в ВОВ - это выглядит так. В главном меню есть кнопка настройки - появляетсья окно настроек - где есь спец закладка Интерфейс - в которой есть список аддонов. Выбираем аддон - с права от списка появляються его настройки. То какие там настройки - решает кокретно автор аддона. Это очень просто и удобно. *))))) Для реализации такого нужно чтобы Нивал сделал эту закладку, написал функции для добавления в эту секцию и т.д. Чего ессно они не сделают в ближайшие +1023420 милеонов лет *)
  7. Плохо учите матч часть *))))) Не забывайте ребята я на вас не работаю и на Нивал не работаю. Прежде чем возмушатсья пошерстили бы форум. Как устанавливать новые аддоны Инструкция
  8. Да я понимаю. Но проблема в прокрутке и маштабировании окна. В Рекаунте - ВОВ дпс метер, окно можно просто растенуть на нужную длину + если игроков больше чем высота окна появляеться скролинг. Как в АО работает скролинг я не разабрался пока, а маштабирование - и по давно не понятно как *))) Я думаю сделать хоттябы на 6 человек - это уже лучше чем ничего, да и придумывать скролинг исходя из этого будет проше. Какраз рейдом я шас и занимаюсь. Если есть рейд готовый помочь в тестировании буду рад вашей помощи. Есть персы на Горне Войны, Владыках Астрала, все лоу лвл, но для теста хай лвл и не нужно, пишите тут как вас найти в игре.
  9. Ок шас перезалью фиксы. Обновление будет позже.
  10. Да баффы - не отображаються, уже исправил но версию обновлять пока не буду, сделаю + несколько изменений и обновлю.
  11. угу уже поправил, но еше не перезалил *))))) будет еше пару фиксов залью скоро
  12. Хммм у меня что с группой делаеться в 2х случаеях по таймеру и в событие изменения грукппы, видимо таймер стартует до авата_креате..... нада будет заглугку сделать
  13. ООО это радостная новость ! Я сразу интегрирую а сво ДПС метер экспорт данных *)))) Про агро метер. В ВОВ долгое время Агро метры считали не точно ( не брали инфу ссервака ) а расчитывали агро по примерным ( близким к оригинальнвм ) формулам. Тут нужна большая работа и не столько над аддоном - по сути возять за основу мой ДПС метер ( или даже интегрировать агрометер прям туда, с возможностью прееключеня отображени -ДПС <-> Агро ), тут работа нужна по анализу и выведению формул. Например: 1. Дамаг имеет коофицент 1х, то есть 1 урон = 1 агро 2. Дамаг спец. абилок танков - увеличивает коофицент для танков, тоесть Nx 3. Хил имеет коофицент 1.5х .... Нужно найти точные значения и если их найти то реализовать реально. Но у меня нету тестеров даже для ДПС метра - тут нужна полноценная мошная гилдии - рейдешаяя и готовая по первомуже зову помогать тестировать. Я пока такую не нашел.....
  14. 2 Evgen_17 - название потоковых заклинаний получить обычнам сопсобо не получаеться - это не мой баг а Нивала. Как они это делают для мсеня загадка. Но стандартным чпособом не получаеться. 2 SLA - в начале вылази отшибка я не понял из за чего, очстальные ыроде почистил Пишим коменты впечетления !!!!
  15. Баг - обновил аддон а на главной странице осталось висеть - что версия r13 .
  16. Залил новую версию. Изменения смотреть здесь - Последние изменения
  17. В данной теме буду публиковат последние изменения в аддон. Баги, глюки, пожелания писать в тему DarkDPSMeter-Обсуждение alpha v0.1.0 Последние изменения: 1. Переработанна система инициация боя - теперь корректно учитывает первый нанесенный урон. 2. Переработанна система работы режима "Группа" - теперь при офлайнне игрока или выходе из радиуса группы ( примерно 40 метров ) и возврашении должен коректно продолжать считать данные по урону. Требуеться тестирование. 3. Уменьшен шрифт во всех барах - для корректного отображения информации. В следующих версиях: 1. Верну бар - "Общий урон", в режиме "Группа". 2. Реализую режим "Рейд" - правда будет отображать ограниченное количество игроков - 6, пока не разберусь с тем как сделать скролинг. 3. Добавить переключение между режимами отображения информации - Хил\ДПС. Быстро не ждите. 4. Исправлять баги.
  18. А кто нибудь вообще пробовал пользовыаться \ пользуеться библиотекой ?
  19. Quote: Не нравятся мои - поспрашивай еще кого-нибудь из камрадов, кто-нибудь библиотеку пытался использовать? Реззоный вопрос. Зададим его последним в теме чтоб не потерслся в ветке реплеев. Если да то работа имеет смысл, если нет то видимо рано дело подвижки в этом направлении и стоит отсавить все на уровне "каждый сам по себе".
  20. Вот бы кто нибудь ( то кто разабрался с XDB, *смотрит второну SLA* ) сделал бы аналогичное IDE для нас 8)))))
  21. 8) Начну комментировать тоже с конца: Quote: Я понимаю - незнание Lua, практик программирования, нехватка времени и т.д. Но ведь и не гонит никто вроде бы, не заставляет сразу писать библиотеку для всех. Вот так, блин, - всего-то хотел советов накидать, а в результате вынужден гнобить. =) 1. Стили выражения мыслей: Хотел бы не "гнобить" не делал бы этого, "гнобишь" - значит хочеться. Проблема диалога с тобой в том что ты из разряда "агрессивных теоретиков" - форму выражения мысли, и стил написания постов выбираешь только ты сам, никто тебя не заставляет писать в форме - агресивного указания, с тостым намеком на истиннесть твоих мыслей. Человек с опытом работы в коллективе или опыт работы на руководящих должностях или просто мудрый человек знает 1ну простую истенну - "Никогда не поучай людей, предлагай свой вариант решения проблемы, так ты добьешься эффективности и заслужишь уважения". Вместо того что бы агриться на что то, предлагай примеры конкретной реализации как правлеьно с твоей точки зрения. Ты пишешь: Quote: GetChildByName через GetNamedChildren и цикл с условием - шедевр.GetChildByIndex через такой же цикл, но с рукопашным итератором - еще более шедевр. Индусы рыдают. =) "Тонкий" намек на "толстую реализацию" - ну и что ? Прочитав это я что должен понять ? Что я криворуки неудачник ? *) В чем смысл данного коммента ? Где тут конструктив по сабжу ? Если ты умеешь лучще, видишь как нужно сделать правельно - конкретезируй, а иначе это выглядит - не коректно *))) 2. Public library - это бииблиотеки для широких масс, при проектировании которых программисты обязанны стремиться к максимальной простоте восприятия кода, максимально простой и интуитивно понятной читабельности, при минимальной потери производительности. АПИ для разработки аддонов к игре - это иммено такая библиотека. При проектировании во глову угла должено ставиться удобство использования до предела когда удобство идет в ущерб производительности. Чего в АО АПИ нет и в помине - не документированное, своеобразное, кострированное ( это я про ВСтринг и не только ), без адекватной возможности реализовать ингейм дебаг. И иммено поэтому хочеться сделать надстройку над этим АПИ, в виде собственной библиотеки функций и классов. Quote: Разработчики из Нивала придумали структуру plain placement не потому, что такие мудаки, а потому что так было нужно. Нужно кому ? Разработчикам Нивала ? А рядовым пользователям библиотеки - это нужно ? Если да то где в сопроводительной документации - простой пример доходчиво обьясняющий что, как, куда, зачем, почему, при работе с размерами и положением виджета. Нету = халатность. Намеки типа - несложно, разберитесь сами - это не выход, а просто пествование лени. Твоими же словами камень в огород Нивала: Quote: Пока библиотекой пользуешься ты один - канает. Но если претендуешь на повсеместное использование библиотеки всеми, тогда - полный функционал. Нормально спроектированная библиотека должна предостовлять, различные варинты решения задачи. Соотвествено в ней должны быть реализованны методы как предлогаю я ( которые просто пришил к нам из массы других библиотек и примеров кода, методы Set\Get Position, Width, Height, ByName и т.д проктически стандарт и когда работаешь с новым АПИ или библиотекой на подсознательном уровне ищещ их, ну уж ни как не SetPlacmentPlace ) и методы как предлогаешь ты ( Да возможно более функционально, ну а нужно ли ? Это как раз тот пример когда функционалом можно пожертвовать ради читабльности ). Просто иметь и то и то варинт - кому как будет удобнее тот так и будет использовать. 3. Quote: Громоздкий - ибо толпа ненужных функций. Не нужны: Толпа "ненужных" функций не мешает *))). Напрмиер GetChildByName, GetChildByIndex - в некторых случаях есть необходимость получить Чилда по имени а в некоторых по Индексу. Пример из практики. 4. Quote: Сырой - это недописанный. Везде используется if self.Widget then, но при этом львиная доля стандартных методов виджетов не обернута. Да парвельно - потому что только начал писать, обертки дополняю по необходимости, и хочу чтобы други кодеры, тоже это делали, вместе - совместными усилиями, спорами ( конструктивными, без "гнобения" ) мы сможем сделать удобную и практичную библиотеку. Диалог должен строиться так - есть реализация А - она работает, но оставляет желать лушего, кодер Х предлагает варинт, он обсуждаеться - аргументированно с примерами, без "понтов" кто умнее и намеков на "индусов", если лушще, то заменяеться. Выигрывают от этого все. Итог: Уважаемы комрад Ramirez - если уж взялись "учить", делайте это хорошо !!! Хотите помочь - помогайте, а не "гните пальцы" в стиле "я умный - а ты индус". Ну а если не можете себя сдерживать в остротах - оборачивайте это в шутку хотябы. Не хотите конкретно кодить для библиотеки - по крайне мере старайтесь примерами подкреплять. За мысли вам +, есть много чему у вас по учиться, за выражение ваших мыслий --, с вами не приятно общаться. На правах ИМХО.
  22. 2 WarriorTMC - ДПС считаеться правельно. ДПС - это урон в секунду за бой. Расчет ведеться не по факту сколько времени ты потратил на применение а по тому сколько времени ты провел в бою. То есть - если бой длился 5 секунд и ты за бой сделал N ударов которые нанесли 50 дамага, то твой ДПС = 50 / 5 = 10, а если ты нанес 1 удар уроном в 5 едениц повреждения и все оставшиеся 5 секунд боя стоял на месте и ничего не делала, то твой ДПС = 5 / 5 = 1.
  23. Quote: Твой текущий - правильный, но сильно узконаправленный, громоздкий и сырой. Узконаправленный - да но "грамоздкий и сырой" - это то в чем появляеться ? Я не понимаю как узконаправленное дествие которое относиться к 1-му типа данных можно ( нужно ? ) делать универсальным ? Есть виджет и есть дествия над ним узконапрвленные, имеющие смысл лишь в приложении к типу виджет - есть 2 варианта автоматизации - писать класс обертку или писать набор функций. Выбрать тот или иной подход - это просто дело вкуса, кто то любит ООП подход, кто то поклоник структурного программирования. Универсализация узконаправленных действи - это как раз ненужное усложнение. Я не вижу разницы которая повышает производительность или удобства использования при вот таких реализациях: Code: local function clone( t, o ) for k, v in pairs( t ) do o [ k ] = v end return o end function widgetlibrary.SetPlacementPlain( widget, placement ) widget:SetPlacementPlain( clone( placement, widget:GetPlacementPlain() ) ) end -------------------------------------------------------------------------------- -- Использование: local widget = parent:GetChildChecked( "widgetName", true ) widgetlibrary.SetPlacementPlain( widget, { sizeX = 480, posX = 64 } ) . . . function TWidget:SetWidth( newW ) local Placment = widget:GetPlacmentPlace() Placment.sizeX = newW widget:SetPlacementPlain( Placment ) end -- Использование: local widget = TWidget:CreateNewObject( "widgetName" ) widget:SetWidth( 480 ) Разная реализация, суть одна и таже, удобство использование ~одинаковы. Так что тут я думаю просто дело вкуса. Quote: только оберток нет никаких, и метод один вместо восьми Ну а у меня в классе ты где увидел 8мь методов для установки размера ? 3 метода разнесенных в разные функции для удобство восприятия и написания кода - SetWidth, SetHeight, SetPosition - использование разных имен делает исходный код более логичным и четабельным, нежели использование для этого метода с одним и темже названием, пример: local widget = TWidget:CreateNewObject( "widgetName" ) widget:SetWidth( 480 ) widget:SetHeight( 100 ) widget:SetPosition( 100, 100 ) Более строго и и понятно, при просмотре кода нежели local widget = parent:GetChildChecked( "widgetName", true ) widgetlibrary.SetPlacementPlain( widget, { sizeX = 480 } ) - меняет ширену widgetlibrary.SetPlacementPlain( widget, { sizeY = 100 } ) - меняет высоту widgetlibrary.SetPlacementPlain( widget, { posX = 100, posY = 100 } ) - меняет позицию По факту выполнения одно и тоже, но по факту чтения второй вариант менее удобен для восприятия особено если челоек не знаком с структурой работы библиотеки. Говорящие имена - понятнее нежели SetPlacementPlain - если так параметры заданы то делает то-то, если по другому то что-то другое. Нэ ?
  24. Quote: Наработки на халяву не раздаю, о чем писал выше. У местных умельцев уже есть на руках всё, чем пользуется Нивал. Который, кстати, с их помощью лихо нафигачил весь стандартный интерфейс, весьма немаленький и непростой. Не видел, чтоб кто-то делился. Дополнять библиотеку, которой не пользуюсь и считаю в целом сомнительной, - ну, мы с Valltron'ом уже писали здесь про это, без обид. ппц *)))) Ты денги что ли рубить собрался на своих наработках, для АО *)))). Как говорил классик - "колхоз - дело доброваольное" и ты конечно не обязан, но по сути для конечного пользователя, все твои посты выше лишь расуждения о сферическом коне в вакууме, если ты никоим образом не помогаешь развитию идеи *))) Нас не много - модмейкеров для АО, а за идею создания библиотеки пока радею вообше только я 1. Да мои решения не идеальны - ты это видишь, возможно твои реализации были бы лучше - но пока они выраженны в форме советов и не более *) "Назвался грузбдем - полезай в кузов" - взялся бы да сделал что то, предложил бы свой реализованный наглядный вариант. А то как то это - выглядит не коректно что ли *))) не подумай я не против твоих замечаний просто не могу понять причину нежелания что то сделать раз ты умеешь лучше и больше ( если конечно умеешь, так как ниодной реализации пока что от тебя не видно, лишь общие формулировки ) *))))) Quote: "Всех их вместе соберу..." =) Если собрать вместе в одном файле, то это не упростит, а усложнит разработку. И напротив, если расширения будут маленькими и независимыми друг от друга, и будут поставляться в пакете файлов, то разработчик сможет подключать только то, что ему действительно нужно, не заморачиваясь остальным. Вот тогда - действительно упростит. Эмм а я как бы не говорил - "давай сгребем все в 1 файл" *)))) Это всеголишь начало и очень небольшое. Есть такая библиотека ACE для ВОВ. Вот в идеале к чему нада стермиться - там масса всего и реализованно все очень хорошо и удобно. Если не знаешь погугли по этому вопросу. Quote: Соглашусь. А еще лучше - чтоб виджет мог таскать не только себя, но и любой другой указанный виджет, и не только таскать, но и менять его размер. Но для этого надо написать безглючную функцию SetRealRect, которая может пригодиться в милилионе других мест. Это - правильный пример расширения. А чем мой текущий то не правльный ? Вроде иимено в этом направлении и ведеться работа - собрать в 1 классе удобные фичи для работы с виджетом *))). Quote: Наращивать надо с умом. У виджетов и так дофига всяких методов работы с ними, з ачем нужны обертки для работы с их потомками? Возьми ссылку на самого потомка и работай непосредственно с ним. Дорабатывать в функции нечего, просто бери и пользуйся, как хочешь. Прелесть Lua как раз в том, что она без изменений может быть и методом TWidget и просто функцией библиотеки утилит. Дело тут в том что я получаю обьект типа userdata ниваловский и например если я хочу изменить размер то я вынуждет писать столбик кода который изменяет размер типа: Code: local wtChildWidget = ..... получаем виджет стандартного "Ниваловского" типа .... local wtPlacment = wtChildWidget:GetPlacment() wtPlacment.sizeX = newW childwidget:SetPlacment( wtPlacment ) и так далее, а получив от родителя типа TWidget дочерний виджет в форме TWidget я просто пишу Code: local ChildWidget = MainWidget:GetChildByName( "Name" ) ChildWidget:SetWidth( newW ) как бы, упрошение кодинга на лицо, нэ ? *)))))) И кстати, если у нас в TWidget есть масса, методов типа DND они тоже просто и удобно доступны, без лишнего геморойя *)
  25. Собрал все замечания в ToDo - в течении следуюше недели буду вносить исправления ! Уже есть мелкие исправления - типа изменения размера прогресс баров, но апдейтить пока версию не буду - исправлю большинство известных багов и обновлю версию. И пожайлуста не ленитесь просматривать предедущие ответы до моего поста с последжним обновленим - чтобы не дублировать баги.
×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования