Написание патча
Интересует тема написания патчей исправляющих неработающие спеллы/таланты.
Подробнее. Имеем краткий баг-репорт: "не работает талант Вестник войны" Талант должен позволять использовать Рывок, Перехват и Вмешательство в любой стойке. Чего он собственно не делает. Вопрос: как разобрать что именно не работает и где в коде писать свои исправления? Как само исправление написать я разберусь, но вот хотелось бы чтобы кто-нибудь расписал что нужно предварительно сделать чтобы начать исправлять. ЗЫ надеюсь понятно расписал проблему:) |
Цитата:
Цитата:
По сути: откройте исходники мангоса, и посмотрите немного его структуру, а потом, загляните на http://github.com/mangos/mangos/commits/ посмотрите куда и что вносится, почитайте комментарии - для чего это делали, и часть вопросов отпадет сама собой. |
Меня немного не поняли, чего я и боялся.
Исходники я смотрел, но терпения не хватает докопаться до того что мне нужно. Ну вот на примере, талант позволяет использовать спел не зависимо от стойки. Значит в коде где-то есть проверка на стойку. Вот и не понятно где именно...И так в каждом таланте/спелле... Комменты в гите не смотрел,спасибо,посмотрю. |
Цитата:
Цитата:
Цитата:
С другой стороны - всякие там функции-переменные называются вполне понятно, не с первого, так со второго раза допереть можно. Раздолье - сиди, учись, пиши. |
Тогда буду разбираться по-порядку, но без помощи не обойдусь.
Все насчет того же бага. Сделал проверку в самом начале функции Spell::CheckCast: if(m_spellInfo->Id==11578 && m_caster->HasSpell(57499)) return SPELL_CAST_OK; Но не помогло, такое чувство что когда клиент пишет "Нужно находится в такой-то стойке" он даже с сервером не связывается, вообщем не понятно где ловить этот спелл на проверку стойки. |
Нашел ответ на англо-язычном форуме
Цитата:
|
Если так интересно, есть патч на эту ауру, поищите там же его
|
Спс большое, хоть применять его к серверу не буду,но зато изучу :)
|
Если вы понимаете код и логику кода мангоса - найти нужное место будет возможно (абсолютно точно для некоторых случаев) сложно, долго, но можно.
Если вы не имеете первого, браться за второе не имеет никакого смысла. Нереально расписать все классы, объекты и т.п. кода мангоса. Например я чуток знаю С++ и чуток понимаю логика кода мангоса. Я могу написать некоторые мелкие патчи, но я вам ни за что с ходу не скажу куда копать, т.к. структура мангоса очень разветвлённая и спелл может обрабатываться минимум в 5 файлах, а может и в нескольких сразу (вспоминаются мои попытки поправить скорость в Облике птицы у друидов - там затронуто минимум два файла, где обрабатываются данные спеллы. В общем, понять логику и искать, искать и ещё раз искать... Без понимания же (и знания англ языка, т.к. все функции в коде очень понятно описаны) даже искать что-то бессмысленно, ибо будет "найти то, не знаю что". Если проблема ещё актуальна - могу поискать дома. Точно помню, что в стойках выставляются опред флаги, позволяющие/не позволяющие кастовать опред спеллы. Стало быть есть такой обработчик, проверка. Значит, при условии наличия у игрока нужного талла - игнорить проверку. |
Прочитайте пост #5, там я насчет проверки писал..Хотелось все же найти эту проверку на стойку )
|
Текущее время: 19:26. Часовой пояс GMT +4. |
YTDB - MaNGOS DataBase