Jump to content

Axon

Player
  • Content count

    314
  • Joined

  • Last visited

Everything posted by Axon

  1. Не слышал о таком, и не наблюдал на офе, по крайней мере лич и катаклизм, в большинстве случаев экипировка мобов не имеет прототипов реальных предметов, что можно полутать
  2. Когда вы лутаете моба, шлется пакет серверу CMSG_LOOT void WorldSession::HandleLootOpcode( WorldPacket & recv_data ){ DEBUG_LOG("WORLD: CMSG_LOOT"); ObjectGuid guid; recv_data >> guid; // Check possible cheat if (!_player->isAlive()) return; GetPlayer()->SendLoot(guid, LOOT_CORPSE);} SendLoot функция огромна, там ГО лут, рыбный, скинлут и т.д, но при луте моба - заходит сюда if (!creature->lootForBody) { creature->lootForBody = true; loot->clear(); if (uint32 lootid = creature->GetCreatureInfo()->lootid) loot->FillLoot(lootid, LootTemplates_Creature, recipient, false); loot->generateMoneyLoot(creature->GetCreatureInfo()->mingold,creature->GetCreatureInfo()->maxgold);........... создается пустой обьект loot, потом он чистится на всякий(loot->clear()), потом по lootid выполняется собственно заполнение FillLoot items.reserve(MAX_NR_LOOT_ITEMS); m_questItems.reserve(MAX_NR_QUEST_ITEMS); tab->Process(*this, store,store.IsRatesAllowed (), 0, dynamicLoot, lootCount); // Processing is done there, callback via Loot::AddItem() // Setting access rights for group loot case Group * pGroup=loot_owner->GetGroup(); if(!personal && pGroup) { for(GroupReference *itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next()) if(Player* pl = itr->getSource()) FillNotNormalLootFor(pl); } // ... for personal loot else FillNotNormalLootFor(loot_owner); reserve - выделяем массив для заполнения обычных предметов и квестовых, tab->Process - ключевая функция, генерящая таблицу общего лута, включая квестовой, где то в баг-трекере или на форуме я обьяснял что внутри и как формируется лут функция - FillNotNormalLootFor заполняет особые листы лута, как я посмотрел в отладке, эти листы используются уже при непосредственном лутинге, когда вы ткнули на итем в окне лута, это всякие проверки на разрешение лутать + блокировки предмета при лутинге void Loot::FillNotNormalLootFor(Player* pl){ uint32 plguid = pl->GetGUIDLow(); QuestItemMap::const_iterator qmapitr = m_playerQuestItems.find(plguid); if (qmapitr == m_playerQuestItems.end()) FillQuestLoot(pl); qmapitr = m_playerFFAItems.find(plguid); if (qmapitr == m_playerFFAItems.end()) FillFFALoot(pl); qmapitr = m_playerNonQuestNonFFAConditionalItems.find(plguid); if (qmapitr == m_playerNonQuestNonFFAConditionalItems.end()) FillNonQuestNonFFAConditionalLoot(pl);} Вот собственно и все, а ну и конченый пакет отображающий вам лут WorldPacket data(SMSG_LOOT_RESPONSE, (9+50)); // we guess size data << ObjectGuid(guid); data << uint8(loot_type); data << LootView(*loot, this, permission); SendDirectMessage(&data);
  3. Axon

    Batlleground

    Рискуете влететь на клевету в адрес администрации за такие "предположения" и "возможно совпадение". Если бы администрация хотела кому-то подыгрывать, вы бы никогда этого не увидели И какого черта мы флудим в баг-трекере и к чему вообще тема? Что за бред, предупреждение за создание оффтопа в багтрекереПС : не в баг-трекере, ошибся Но в разделе ошибок, что сути не меняет
  4. Axon

    Sidsukana

    Грац друга, напарника по кодингу и просто Сида Желаю (default набор : удачу, счастье, любовь, достаток) && (все-таки мы допилим лаунчер, луа, или даже эмуль(!!!)) && (ну и конечно словится бы не помешало ). Ненулевых указателей я тебе уже пожелал, это намек С ДНЕМ РОЖДЕНИЯ!!
  5. Оффтоп Не путаем статическую геометрию(геодата они же вмапс), и динамическую, это когда двери, колонны и некоторые ГО должны вести себя так же, как обьекты статической геометрии. Геодата работала и будет работать, а вот динамическая требует особых алгоритмов и глубочайших познаний в математике и геометрии карт клиента. Были попытки реализовать простейшую дверь в БВЛ, это потребовало нехилое кол-во кода и в целом закончилось неудачей.Вприницпе если математически описать обьект, то возможно его впихнуть в обработку вмапс, как будто это реально существующий кусок статической геометрии, но вот только я такого не пробовал и с геометрией не очень)
  6. Оффтоп Спамером слишком легко и ты кое-где назвал чисто мужские вариации, обидел девушек
  7. Мы не дизайнеры, мы суровые программисты накатаю калькулятор талантов на ассемблере ага, только кроме меня его никто не оценит
  8. Почему бы не использовать Talent.dbc/TalentTab.dbc для формирования ini файлов или какой-то своей удобной структуры. Потому что ручками это все забивать будет явно дольше, да и мало кто сможет помочь имхо. А так или в проге целиком обработку данных с дбц или маленький генератор - на вход дбц - на выход, полная структура всего что надо. Вот только у меня дельфи нету на ноуте, есть шарп и плюсы, ну и полный набор веб-разраба, так уж получилось
  9. Axon

    Слив хонора

    Надоело до печенок читать все это. Флудить можно и в специально определенных разделах форумаПо сабжу : Сливщики и прочие, дышите, наслаждайтесь глотком воздуха, как последние часы перед смертью. МЫ позволяем ПОКА вам дышать, не упускайте момент, скоро вы покинете сервер, спалившись на нарушениях, и испытаете силу бана по железуЗакрыто.
  10. Axon

    Buff / Debuff слоты

    Хы да никак, просто вешает отрицательный эффект дебаффа как пассив, не добавляя его в видимые слоты // Try find slot for aura uint8 slot = NULL_AURA_SLOT;.....// цикл поиска аур по клиентским полям UNIT_FIELD_AURA + ifor (uint8 i = MAX_POSITIVE_AURAS; i < MAX_AURAS; i++){ if (m_target->GetUInt32Value((uint16)(UNIT_FIELD_AURA + i)) == 0)....} Если свободный слот не найден, клиенту ничего не выставляется в поля, необходимые для отображения иконок for i=1, MAX_TARGET_DEBUFFS do local debuffBorder = getglobal("TargetFrameDebuff"..i.."Border"); debuff, debuffStack, debuffType = UnitDebuff("target", i); // луашка UnitDebuff button = getglobal("TargetFrameDebuff"..i); if ( debuff ) then getglobal("TargetFrameDebuff"..i.."Icon"):SetTexture(debuff); debuffCount = getglobal("TargetFrameDebuff"..i.."Count"); if ( debuffType ) then color = DebuffTypeColor[debuffType]; else color = DebuffTypeColor["none"]; end if ( debuffStack > 1 ) then debuffCount:SetText(debuffStack); debuffCount:Show(); else debuffCount:Hide(); end debuffBorder:SetVertexColor(color.r, color.g, color.; button:Show(); numDebuffs = numDebuffs + 1; else button:Hide(); end button.id = i; end луашка UnitDebuff как раз считывает инфу с полей, потом тупо по индексам получают обьекты i числа кнопочек и кнопочкам уже выставляются стаки, текстуры, бордеры и прочее (см. код)
  11. Axon

    Разовые вопросы и ответы

    Ну следующий Лунный фестиваль будет через год в конце января, может к тому времени и починим, если не рабит
  12. Axon

    Разовые вопросы и ответы

    Лунный фестиваль - Монета Наследия, типа валюты, за которую можно купить всякие штучки
  13. Axon

    Разовые вопросы и ответы

    Как можно предупредить о краше или фризе, подумайте? Краш(crash) - аварийная остановка работы сервера, Фриз(freeze) - зависание сервераКогда идет обновление, вроде бы обычно предупреждают, хотя лично это не в моих правилах
  14. Axon

    Event Valkyrie-wow

    Не приеду в мае как раз практика...хехе а так бы с Виталием абсента приняли и....(все было б абсолютно непредсказуемо) ах, и еще бы устроил Warden event
  15. Axon

    Разовые вопросы и ответы

    Да не красивости, а в целом рабочести, луа движок был еще очень сырым, я сам лично делал такой прикол, менял тип слоя фрейму ну например френд листа, на основной, после этого френд лист пропал, панельки открывались почему-то только вверху(в верхней части экрана), и уходили за границы экрана, клиент фризило страшно при нажатии на любые кнопки - в итоге через 3 минуты он вылетел со 132 в области WorldFrame::Render
  16. Axon

    Разовые вопросы и ответы

    Скорей всего программист близов, просто создал массив из 50 элементов изначально, и соответственно 51 элемент мог вызвать повреждение памяти, вот и сгенерил чек, в сервере такое называется assert - запланированный краш из-за заведомо некорректной работы. Или как вариант - интерфейс аукциона не может вывести больше 50 итемов, там же все впритык рассчитано, размер фрейма, слой фрейма, позиция на экране относительно других фреймов, ползунки(scroll) и иконки, тултипы, размер шрифта
  17. Axon

    Разовые вопросы и ответы

    лолшто, Вам говорит что-нибудь такое слово как КЛИЕНТСКОЕ ОГРАНИЧЕНИЕ, не надо высказывать догадки в тех областях, где Вы не шарите вообще. Администраторам виднее, что и как должно работать Из кода КЛИЕНТА CalculateOwnerDepositsCount((char *)&a2 + 3);if ( BYTE3(a2) > 0x32u ) GenerateErrorException((int)&byte_9E14FF, (int)&byte_9E14FF, 0);..... переменная для хранения предметовCGAuctionHouse__m_numTotalOwned[50]; PS : 0x32 hex = 50 dec
  18. Запиливаю тему пока тут. Обобщаю о чем вчера говорили в чате - отдельный реалм/проект с модифицированным клиентом. Предвижу гневные возгласы - как же Валька, онлайн и так мал. Ну мы не рекламщики, а кодеры, к тому же даже пофиксив все, что возможно, пользы это принесет немного, поверьте. Заскриптовать инсты - да, но лично у меня пока нету желания(я еще до Вальки не любил скриптинг, но приходилось заниматся, т.к держал локальный городской сервер), работа, проблемы с девушкой, дела. Тем более Валька подобралась к такому порогу, что фиксы(я не про инсты, а про фиксы механики) начинают подходить к границе возможностей эмулятора, вон типа как "бинарные спеллы"На фиксы в целом открытие реалма не повлияет. Команда пока, как я понял, будет пока состоять из Сида(sidsukana), меня(Axon) и Вируса(virushm). Может кто еще присоединится . Это своего рода обучение для нас ну и возможность услышать от Вас какие-то интересные идеи, которые можно реализовать, но сразу говорю близлайком там пахнуть и не будет.Что на данный момент доступно, по моим работам с клиентом, я могу изменять и писать любой интерфейс, могу вмешиватся в загрузку файлов(можно поубирать лишнее из клиента), ну и по мелочи внутри клиента типа создания флагов, полей, характеристик и т.д. Профу могу любую создать например, какие-то особые обьекты типа башен тоже возможно, любая фишка БК, лича и катаклизма даже. Движение и механизмы его работы только пока слабо разобрал, т.к это адски сложноЗа основу будет взят клиент лича, т.к там много полезных фишек, которые тяжеловато инвертировать(т.е взять выдрать из лича например и перенести в классик клиент)Раз флудильня, можно высказывать свое мнение, критиковать и вайнить смысла нету, я и сам знаю, что на Вальке еще много чего надо запиливать.Вирус, твой пост следующий
  19. Присоединяюсь к поздравлениям, любви и счастья, поменьше пикселей Вы наши музы, наши возжигатели страсти и стремления к лучшему(мое имхо Оставайтесь вечно такими же цветущими и красивыми. Мы вас любим
  20. Axon

    Разовые вопросы и ответы

    Это точно неизвестно, т.к текущая спеллсистема не представляет то состояние, в котором можно было бы что-то утверждать очевидно С рогами МОЖЕТ БЫТЬ и да, хотя там сейчас 100500 костылей, и все запутано окончательно
  21. Разумная критика не вызывает агрессию, мы никогда не трогали и не будем трогать рандом генератор или разбирать что-то связанное с его деятельностью, а это уже вторая тема, где докапываются именно до этого. Может быть ошибки в комбат системе, в чем угодно, почему обязательно сразу рандом генератор?Закрыто абсолютно верноPS : второй пункт опроса - смех, разработчики и не такое видели, и подчеркиваю, лезть в работу сторонних систем никто не будет, нам еще этого не хватало, с сервером проблем хватает
  22. Ыыыыыыы, а я даже не задумался над тем какого пола варден повеселили, а что надо подумать хыхы
  23. Спасиб, девчонки ну а нас с праздничком
  24. Axon

    Разовые вопросы и ответы

    рабит и всегда рабилоне рабило и не будет рабить, т.к слишком много нюансов https://elysium-project.org/forum/index.php?app=tracker&showissue=5&view=findpost&p=1422 - ознакомится еще
  25. Axon

    Axon

    Всем спасибо за поздравления, всех *love*
×