Jump to content
Korean Random

GPCracker

User
  • Posts

    2,827
  • Joined

  • Last visited

  • Days Won

    61

Everything posted by GPCracker

  1. This issue is due to AS algorithm. WG does not consider this an issue. Read about AS, you will understand reason of corner-bouncing. It probable started on prototype. AS (aiming system) algorithm use calculated aiming point, which should be on trajectory of shell if possible, or traj must be as close as possible. Aiming point is calsulated as collision test of camera beam (ray from a center of camera through the crosshairs (CH) to the target) with static materials (map objects) and vehicles (SDO). When you move camera or tank, AP is changed, gun is rotating to new position to shoot through AP. Gun marker (GM) is a ballistic collision test (BCT), collision of calculated ballistic shell path (with current gun rotation) with SDO. So, when target disappears, model is removed, AP changed to far objects, traj to hit it is higher. At first moment BCT return far collision point instead of point on target, it is farther, and shell gravity fall is bigger, and gun marker bounce down. As soon as gun is rotated to fit new AP, traj goes through AP, and GM matches CH. First versions of mod just locked AP, when it was locked, GM was lower (low distance locked, far BCT) / higher (far distance locked, close BCT) than CH. This visual discomfort was fixed later - when distance is locked, BCT forced to stop on locked distance. It may stop earlier on real objects. It fixes GM drop when locked target disappears. But it does't fix reverse situation - you locked target with X-Ray, distance for APCT (aiming point collision test) is locked, AP is farther than BCT, and GM is higher than CH. It normalises, when you leave cover and aim to the target directly. It's just visual. GM is placed using BCT. If you shoot through the cover, place of shell hit cover will match GM (random is not considered), but you want to shoot target, right? This sometimes fix undershoot on cover leaving, but not fix async. I don't remember AAS algorythm right, so i can err in some aspects. Fix BCT to ignore covers before locked distance is hard for algorythm sometimes and not good, because GM shows calculated position when shell will explode if you pull the trigger. More simple: CH (crosshairs) linked with CAMERA GM (gun marker) linked with BCT (ballistic collision test) using current gun rotation AP (aiming point) is a CT (collision test) of CAMERA CH ray with SDO (static materials (map objects) and vehicles) GUN tries to rotate to send a shell through AP They care about money only. Russians call WG "potato", and here "rotten" will be best characterizing adjective.
  2. Ну так в BW наверное почти все считается матрицами. А что есть настолько крутые декомпиляторы, что прям так неплохо разбирают? Или сорцы картохи невзначай просочились?
  3. Клиент дизассемблировал? Просто ЕМНИП интерфейс управления EdgeDetect'ом это две функции-метода модуля BigWorld. BigWorld.wgDelEdgeDetectEntity BigWorld.wgAddEdgeDetectEntityИ матрицы тут никак не передаются.
  4. Это патчить флеш надо, или пропатченный скачать. Не забываем, что патчить надо поверх XVM, т.е. надежней и практичней делать это самому ручками. Нужные файлы уже кидали.
  5. Target lock is required for this. This thanks to WG. Invisible collision models. Конфиг не совсем я читаю, а ResMgr.
  6. Я тоже почти месяц не заходил... Нет там ничего интересного. Тогда нужно с XVM запарраллеливать или на кнопку выносить... Ну или в конфиг хотя бы.
  7. Берешь твинка или товарища в треню, ставишь его на горку на фоне неба/ далеких текстур в центре (важно) карты. Берешь себе танк с нормальной навесностью (м.б. фугаску, прокатит любая пушка, за исключением топового дырокола WT pz4 и ему подобных "сверхзвуковых" иглометов, скорость снаряда должна быть порядка 500-800 м/с не больше, чтобы разница в наведении была заметна) очень желательно точную. Если есть мишень бронированная - вообще хорошо, можно нормально пристреляться будет. Мишень ставишь за куст, так, чтобы светилась только при выстреле. Куст на фоне неба/далеких текстур. Наводишь прицел на цель и мышку более не шевелишь. Делаешь несколько выстрелов по видимой цели (цель стреляет, светится, ждешь 3-4 секунды на наведение/синхронизацию, стреляешь) (желательно бы без урона, чтоб не убить), смотришь куда летят снаряды. Запоминаешь отметки попаданий. Расстояние должно быть достаточным, чтобы разница в наведении была заметной. Отметки должны быть примерно в центре (поправка на рандом). Поэтому нужна точная пушка. Затем делаешь несколько выстрелов по невидимой цели без захвата, т.е. тупо в куст. Отметки попаданий должны быть выше пред. Если снаряды не будут вообще перелетать. Так что товарищ в данном случае лучше. Затем делаешь захват расстояния / цели и стреляешь через 2-3 секунд после пропадания цели при активном захвате. Снаряды должны ложиться туда, куда они должны ложиться. В пределах теста после наведения мышку двигать не стоит. Вообще работа корректировщика дальномера заметна по скачку прицела вниз при сбросе расстояния / цели по невидимой цели в кустах на фоне неба в центре карты. Т.н. провал сведения. Он же происходит при отсвете цели без установленного мода. Если мод работает - то этот скачок должен происходить при сбросе расстояния / цели. Как раз в момент пропадания надписи о блокировке цели / расстояния.
  8. Речь не об этом, ИМХО. Речь про то, чтобы не отправлять сообщение, когда ты один остался. Там внутреннее условие, ЕМНИП.
  9. Господа, кто может провести независимую проверку сего утверждения? Корректировка дальномера работает? This is partially offtopic here, but AAS and MGM does not linked any way. They are standalone mods, they don't use common resources... Looks like you have a problem in minimap. I don't remember correctly, but there were a valuable reason to integrate this feature in my mod... A partial conflict in some aspects, very specific config required. And some calculation overload or hook collision maybe. X-Ray and BoundingBox is NOT FEATURES! It's just target lock modules, providing external target lock principles for real mod features, such a distance correction (TargetLock->TargetDistanceCorrection), they were written for this and other features, but later integrated in some other aspects, like AutoAimLock. BattleAssistant on stage of integration StrategicSniper in AAS had several problems, one of them were crosshairs bouncing on movement and sensible FPS sinking on my not very fast notebook. Sniper mode key has one code string, no more. It is just a aim mode switch command for AIH. Battle Assistant is not my mod. People don't know about this mod, because it is not graphical mod, it is just a script, it doesn't follow a rule WYSIWYG, to use this you need to fully understand, what are you doing, and what the mod do. You need to understand ballistics, understang alhorytms of aiming systems, to understand what mod do, and for what it was written, and problem it fixes, and a reason of this problem. This all requires hard knowledge about game mechanics and high IQ level to understand this mod purpose. There are not many players, who fit this requirements. So, mod is not published on wot official forum in the case of hard censore (post and topics are being deleted, if moderator does not like it) and low average IQ level of WoT players. In preventions of questions like "What is mod for? What does it do?" repeated many times on each page in topic. A short history of this mod. When i started to understand, what happens in game, i noticed that shell overpass bushes, where enemy hides. I started to google this issue, i found BalCalc mod. But it was manual, what is not convinient at all, and only for sniper mode. I have written a heavy extension for this mod (for arty), but it's architecture does not allow to handle targets right... I rewrited fully architecture, and few patches later hardly updated and posted this mod. That was my first own topic on this forum. After that, mod were fully rewritten several times, because architecture jams development or configurability. So i really grateful to BalCalc author helped me to understand, what happening in aiming system and how it is working. I'm really sorry, but WG politics, behavior and attitude to their own users distress me more and more. I also not have so much time for this work, but if you take into consideration WG actions last time (E25 marathon and its compensation for users alredy have it - credits, not gold, for premium tank, this tank was removed from store, they just shit on players already donate them, sorry for indecent lexicon, but i have no other words to describe their actions), random full of very bad players, so it's hard to play, winrate hard losses, even on 10th level, this game kill my nerves more than i enjoy playing. I've not visited this irritating game for a month, and i feel like i lost nothing. There are more interesting games to play. With normal attitude to players.
  10. Оффтоп. Видимость трассеров работает в узком секторе от ствола орудия, если ты навелся на стреляющего в тебя противника, ты будешь видеть летящий в тебя снаряд. Дальнейшее обсуждение данного вопроса прошу вести в более подходящей для этого теме. Убедительная просьба, почитать про установку модов, наверняка есть темы про это, если нет - спросить в разделе помощи. З.Ы. И троллей я тут кормить не собираюсь, с ними есть более эффективные методы борьбы.
  11. Проверь, все ли правильно поставил. Если там синтаксическая ошибка в форматировании файла - был бы фейл при загрузке, и соответствующая запись в логе. Во всех остальных случаях, отсутствующие параметры и косые значения (тут не уверен) он подставляет дефолт. Список дефолтов можно глянуть в соотв. файле в репозитории. Соответственно, если True написано как true, tru, или как-то еще, мод мог спокойно молча сунуть дефолт, то есть False. ResMgr он такой))
  12. На кой в загрузчике протектор?! Его там в принципе не должно быть. Это публичный модуль, используемый для загрузки модов, и писать в нем свой код инициализации недопустимо по соображениям совместимости. А открытым его делают для того, чтобы для каждого автора было видно, под каким именем грузится его скрипт в модули игры и каким образом, что происходит при ошибке и т.д. И не является ли загрузчик причиной багов в твоем моде. Класс в этом модуле вряд ли кому в принципе нужен, да и чтобы его пропатчить, не обязательно лезть в сам файл. Я еще не сказал то, что почти в каждом скриптовом моде есть в комплекте загрузчик, и целевая аудитория как-то не парится и кидает все файлы с заменой, поскольку не в теме, что и для чего надо. И твой супер-индусский скрипт просто затрут ко всем **** и забудут про него. Если тебе прям нужен специальный код загрузки - кидаешь его отдельным файлом как мод в папку скриптов-модов. А то вот такие товарищи понапатчат загрузчики, понакидают протекторов сверху, и сиди разбирайся потом, что за хрень происходит... И так уже разнообразных скриптов вагон... А если все данные сохранить компактным кортежем и потом просто грамотно применить for/(map + lambda) для расшифровки, на входе кортеж кортежей, на выходе кортеж строк, обращение в коде по индексам. Насколько я понял, у тебя шифровка каждого символа идет двумя числами? Размер одной большой структуры в памяти значительно меньше ведь, чем кучи мелких. Не думаю что дополнительный запрос по индексу много съест производительности, зато в globals() будет поменьше элементов и этот словарь, ИМХО, будет работать быстрее. И еще. Если идет сложение больших количеств символов, а насколько я понял, это именно так, то возможно, нехилое повышение производительности вычислений даст использование bytearray, с последующим конвертированием в строку, т.к. строка является неизменяемым объектом, питон выполняет операции поэтапно, и каждый раз перевыделяет память под новый объект. ИМХО.
  13. I ansvered before... it's hard to deal with 2 versions of mod... Deploy changes on 2 mods separately is a problem in debug and version/changes control aspects. So i made everything disable-able in one of the last patches. If you don't need additional functional, you can just disable it. Config file will help you do this.
  14. Я в танки больше месяца не заходил, хотфиксы делаю без тестов по сути, так что обновлять шапку пока не буду, сначала самому протестировать надо. А кому очень нужно, тот читает (или мониторит) тему.
  15. Кстати, код инициализации AS3 DAAPI со стороны питона, эквивалентный AS2, я нашел, а вот код со стороны AS3, эквивалентный AS2, нет. Выражаясь более понятно, алгоритм определения и перегрузки слотов AS3 методами Python реализован вне поля Python / AS3 (на C написан), и об логике (селективности) этого алгоритма можно только догадываться. З.Ы. Так что прокатит или нет мой план по замене функции-геттера более общим (Function -> Object) DAAPI атрибутом - нужно тестировать.
  16. Самому интересно... Да это и ежу понятно, если ты мне это написал))
  17. А заюзать список/словарь религия не позволяет? Списки работают (для AS2 точно, делал ими уже чего-то), словари не проверял, но тоже должно... Просто грамотно определяешь типы и все. В AS, в питоне все само подтягивается, только не забудь сделать необходимые преобразования, если у тебя типы унаследованы, DAAPI может не понять. Py (list/tuple) -> AS Array Py dict -> AS Dictionary (возможно, даже Array) (скорее всего так, не проверял) (кому не сложно, проверьте, отпишитесь) Не надо париться с JSON, вся сериализация/десериализация для передачи уже запилена в DAAPI.
  18. Недопустимое падение производительности. Необходимо все вычисления обфускатора выносить в начало модуля... Или... Можно запилить конструктор codeObject на лету. Но чтобы в процессе выполнения кода никаких таких вещей не было. А то если так несколько мододелов заюзают, половина юзеров играть не сможет. Играл сегодня в раритетный первый Crysis... Игра на топовой сложности учит не перестреливаться с противниками в лоб, а использовать маскировку для обхода, или даже просто отрубать ее на короткое время для точного выстрела и потом обратно стелс. Или вообще с ними не перестреливаться. Брони на топовой сложности нет, временами она спасает, но абсолютно не защищает. Вобщем-то, как и в танках. Самый лучший способ не получать пилюли - это просто не светиться. К чему я все это... Не обязательно что-то очень прям хорошо защищать (защита не всегда помогает и довольно быстро сдувается против мощных инструментов и грамотных взломщиков), порой намного эффективней грамотно заныкать. Ибо для того, чтобы покопаться, надо сначала найти)) А еще, как говорит народная мудрость - хочешь спрятать - спрячь на самом видном месте. А найти в игре нужный модуль, когда различных объектов в игре больше нескольких миллионов (модуль - тоже объект, причем standalone мод - самостоятельный скрипт и на него по сути никто не ссылается, кроме загрузчика), не так то уж и просто, особенно, если не знаешь толком, что ищешь. Откуда? Он ее не ищет как бы, у него есть locals, globals... Другое дело, если в globals дофига чего...
  19. from gui.Scaleform.daapi.view.battle.ConsumablesPanel import ConsumablesPanel def new_ConsumablesPanel_onShellsAdded(self, intCD, descriptor, quantity, quantityInClip, gunSettings): result = old_ConsumablesPanel_onShellsAdded(self, intCD, descriptor, quantity, quantityInClip, gunSettings) self.flashObject.getRendererBySlotIdx(self._ConsumablesPanel__cds.index(intCD)).quantityInClip = quantityInClip return result def new_ConsumablesPanel_onShellsUpdated(self, intCD, quantity, quantityInClip, *args): result = old_ConsumablesPanel_onShellsUpdated(self, intCD, quantity, quantityInClip, *args) self.flashObject.getRendererBySlotIdx(self._ConsumablesPanel__cds.index(intCD)).quantityInClip = quantityInClip return result old_ConsumablesPanel_onShellsAdded = ConsumablesPanel._ConsumablesPanel__onShellsAdded ConsumablesPanel._ConsumablesPanel__onShellsAdded = new_ConsumablesPanel_onShellsAdded old_ConsumablesPanel_onShellsUpdated = ConsumablesPanel._ConsumablesPanel__onShellsUpdated ConsumablesPanel._ConsumablesPanel__onShellsUpdated = new_ConsumablesPanel_onShellsUpdatedНет тут g_windowsManager...
  20. Видимо проблемы с кодировками. Шрифт интегрирован в игру.
  21. Потому что пора бы немного поботать питон. Ошибка значит что у строки (type 'str') нет атрибута copy. И вправду, откуда ему там взяться... Просто убери это copy и все.
  22. Да Версия 2: <frame>futazh.dds:434</frame>Версия 3: <frame>futazh.dds:434#FFFFFF33</frame>ЕМНИП, как-то так. Кстати, парсер "жесткий" так что файлы версии 2 не будут работать на 3 версии, нужно дописать недостающий хвост, #FFFFFFFF Как сделать более-менее гибким - есть идеи, но пока ничего переделывать не буду. Почему - написал выше. Это контроль версии клиента, блокирует запуск, если версия клиента, под которую компилировался мод, не соответствует той, на которой его запустили. Что касается обновы, если след. версия вообще будет, то скорее всего она будет уже на флеше. Если картошка не перестанет все ломать. Анимацию на флеше проще сделать, чем dds, как раз немного разобрался, как подключать флешку и подымать DAAPI. ИМХО, анимация на флешке будет меньше грузить комп, чем переключение маппинга текстуры с нехилой частотой. Но ничего пока не обещаю, ибо желания что либо делать как-то пока нет. Да и времени в общем-то тоже.
  23. Для ламп, разработанных под 2 версию скрипта необходимо добавить код наложения цвета в файле анимации. Сделайте сравнение ламп под 2ю и 3ю версии, поймете. Картоха своими супер-патчами убивает всякое желание что-либо делать, ибо после очередного патча приходится убивать кучу времени, чтобы это пофиксить. Хотя больше всего напрягает именно сам факт того, что это нужно фиксить, ибо далеко не всегда есть время, возможность и желание это делать. Хочется сделать и забыть, до того момента, как появится какая-нибудь прикольная идея.
×
×
  • Create New...