Jump to content
Korean Random

AntonVK

User
  • Posts

    156
  • Joined

  • Last visited

  • Days Won

    13

Posts posted by AntonVK

  1. On 6/5/2019 at 10:10 PM, Insomnia said:

     

    Как по мне, компиляция со всеми зависимостями из оригинального lobby.swf это не очень хорошо и не оправданно. Для стабильной работы потребуется её пересобирать чуть ли не каждый микропатч, в котором изменились оригинальные скрипты и которые не имеют никакого отношения к моду вообще.

    В gui.pkg/gui/flash/swc уже давно лежат готовые библиотеки которые нужно подключать как внешние (и не нужно париться с их созданием как было когда-то).

    На всякий случай прикрепил все исходники для файла с этого сообщения, в нём уже настроенный для сборки проект, возможно, это чем-то поможет.

    hangarClock_src.zip 5.14 MB · 6 downloads

     

    Спасибо, но есть нюансы. Я для компиляции использую исходники кода WG из XFW. Флэш вмешательства требовал крайне редко на самом деле и в фактически неизменном виде существовал очень давно, обычно ломались питон скрипты через патч. 

     

    Часы сейчас рабочие, дошли руки заняться калькулятором. Ну и я хочу внести некоторые изменения.

     

    А вот библиотеки у меня не подключались из gui.pkg/gui/flash/swc, про это я знаю, хотя сейчас я думаю делаю тоже самое, только вместо swc файлов использую декомпилированные из набора XFW.

     

    В любом случае, имеет смысл попробовать снова подключить библиотеки, но вначале разберусь с калькулятором.

  2. Флэш для часов я починил.

     

    Вот эти две ошибки устранены. В лог больше не гадит.

    2019-06-04 02:56:26.154: ERROR: ArgumentError: Error #1063: Argument count mismatch on hClock instance constructor. Expected from 1 to 1, got 0.
    	at hClock instance constructor()
    	at scaleform.clik.core::UIComponent instance constructor()
    	at net.wg.infrastructure.base::UIComponentEx instance constructor()
    	at net.wg.infrastructure.base.meta.impl::BaseDAAPIComponentMeta instance constructor()
    	at net.wg.infrastructure.base::BaseDAAPIComponent instance constructor()
    	at net.wg.infrastructure.base.meta.impl::AbstractViewMeta instance constructor()
    	at net.wg.infrastructure.base::AbstractView instance constructor()
    	at hangarClock instance constructor()
    
    2019-06-04 02:56:26.263: ERROR: TypeError: Error #1009: Cannot access a property or method of a null object reference.

     

    Мне пришлось внести достаточно изменений, так что пока в сыром виде, но можете пользоваться, это уже рабочий вариант. Я просто позже приведу в порядок код флеша, там сейчас помойка небольшая.

     

    Теперь дело за калькулятором, там тоже до фига

     

    AntonVK_HangarClock_1.5.0.0.wotmod

    • Upvote 10
  3. Сильно поломался флэш. Как теперь правильно инициализировать свой код в клиент - непонятно.

     

    Я пока не сдаюсь, попробую разобраться, но вероятность того, что часы с калькулятором этот патч не переживут, высокая. Увы.

     

    P.S. Я хоть и айтишник, но не разработчик и к сфере программирования отношения практически не имею. Да и от сферы мододельства весьма далёк, в изменениях в коде вг ориентируюсь крайне плохо. Поэтому мне сложно разобраться и переварить весь объем информации по коду. Так что, прошу не обижаться, пытаюсь в меру своих возможностей.

    • Upvote 4
  4. Добрый день.

     

    Прошу прощения, но на данный момент исправить не удаётся. 

     

    Что-то очень много поменялось в клиенте, я не знаю, как можно включить отладку в wot, а действия вслепую к успеху не приводят. 

     

    Если будут какие-то мысли, я постараюсь исправить. Но пока увы...

    • Upvote 2
  5. Доброе утро!

     

    Скоро данной модификации будет 5 лет.  Мод тех времен, когда Серб говорил -  ужас какой, а Крута - страдай пидарас, твои мучения радуют нас)

     

    Тогда, 5 лет назад, я делал для себя калькулятор и была идея опубликовать для всех.

     

    logos.swf - тогда с этого все начиналось.

     

     

    К дню рождения мода, то есть, публикации на официальном форуме и на форуме koreanrandom - подготовлю немного ностальгии и выложу весь проект в исходных кодах.

     

     

     

     

    • Upvote 13
  6. On 2/12/2019 at 10:35 AM, Ekspoint said:

    это не альтернативный, а скорее самый правильный, то как ты раньше грузил это устаревший вариант

     

    Понятно. Позволю себе спросить, каким образом узнаёшь, так сказать, правильные методы взаимодействия своих модов с интерфейсом ВГ? Разбор кода вг? Ориентируешься на XVM?

     

    Принципы работы своего кода AS3 в среде WoT можно в целом понять, изучая декомпилированный код ВГ. Но вот сама интеграция, как найти необходимый рабочий метод вызова - всегда было загадкой. Тем более, они нередко меняются. В своё время какие-то куски понаходил на просторах форума здесь, но как отслеживать эти изменения остаётся загадкой.

     

    Ещё один момент. Может знаешь какие-нибудь способы отладки модов, конкретнее, меня интересует debug log для python и as3. Буду очень признателен хотя бы за намёк, куда можно посмотреть, в сторону каких инструментов, а то я действую практически вслепую и не могу исправить некоторые существующие недочёты.

  7. Доброй ночи!

     

    Актуальные обновления в шапке.

     

    Я изменил нумерацию в названии модов, думаю, так будет понятнее, в каком патче вносились изменения. (ранее было удобно для некоторого внутреннего учёта, но я вряд-ли буду вносить какие-то ощутимые правки в часы)

     

    Огромное спасибо товарищу Ekspoint !!!  Без него я бы вряд-ли быстро нашёл новый способ инициализации флэшек в лобби, увы, в форуме давненько не копаюсь.  ( Или это просто альтернативный метод? И использовавшийся в прежних скриптах забывать не стоит? )

     

    • Upvote 2
  8. On 2/7/2019 at 12:42 PM, Silver Raven said:

    Утверждают, что кто-то спалился?: "DDOS или WorldOfTanks - самая страшная DDOS игра"

     

    Ждем опровержения, с доказательствами, естественно. Которые, как известно только одни - открытый исходный код. Чего уж точно не будет, а на меня сейчас выльют ушат говна. Если автор создал фейк - аналогично, доказываем почему он не прав, иначе бурления будут долгими. Лучше сразу все прояснить.

     

    З.Ы. Ах да, и в шапку всех проектов прикрепить, иначе отбоя от злых граждан не будет.

     

    немного не понял, в чём проблема? У меня мод даже обфускации не подвержен. Python просто в лёт декомпилируется, флэшки тоже декомпилируются, но уже без смысловых субстанций. Нужно флэш проект тоже в открытые запульнуть?  )

     

    23 minutes ago, Ekspoint said:

    флеш норм, просто картошка из Flash ничего не передает

     

    С 0.9.18 началсиь следующие проблемы:

    - мод исчезает из ангара, не всегда, но бывает часто, при преждеверменном выходе из боя, если убили, например

    - при загрузке игры в окне выбора сервера нужн тыркать 2 раза

    - нет фокуса в боевом интерфейсе в чате по кнопке Enter, если ткунть мышкой, то всё норм

     

    так вот первый пункт решается пересборкой флэшэк, под актуальный патч. В качестве исходников я использую декомпилированные скрипты от WG от XVM/

     

    2 других пункта - я не знаю, в чём дело.

     

    В принципе, ничего не имею против публикации исходников, где-нибудь, на github. Здесь много опытных мододелов, в отличии от меня (я практически не слежу за изменениями из-за нехватки времени, мне сложно быстро вникнуть)

    • Upvote 2
  9. 4 hours ago, Ekspoint said:
    
    old_init = Flash.__init__
    
    def new_init(self, swf, *args, **kwargs):
        old_init(self, swf, *args, **kwargs)
        if swf == 'lobby.swf':
            self.addListener(events.AppLifeCycleEvent.INITIALIZED, lambda e: AppStarted(self, e))
    
    
    Flash.__init__ = new_init

    вот и все

    @AntonVK 

     

    Большое спасибо за оперативную подсказку!

     

    Обновлено до текущей версии игры. Флэшки также обновлены. Обновления в шапке.

    • Upvote 3
  10. 2 hours ago, Nowik1971 said:

    Под сегодняшний патч 1.2.0 будет обнова?. а то они там опять с флешкой сто-то натворили, не работает!!!

    Антон спасибо тебе заранее!!!

     

    Добрый вечер!

     

    Что-то поломалось. Постараюсь разобраться побыстрее.

    • Upvote 3
  11. 7 hours ago, AntonVK said:

    Доброе утро. Просьба проверить работу с XVM. Если всё ок - обновлю шапку.

     

    hangarClock-4.0.6#1.zip

    hangarCalculator-4.0.6#1.zip

     

    Кто-нибудь проверял с XVM? всё нормально? У меня скорее всего будет возможность потестировать в выходные, а если всё ок и так - то обновлю тему.

     

    Сам мод я проверял, в ангаре, сыграл бой, всё работает, но на XVM времени не хватило, на работу надо было. Если всё хорошо у пользователей XVM, то тестировать с XVM не буду.

    • Upvote 2
  12. On 7/7/2018 at 7:06 PM, Nowik1971 said:

    под патч 1.0.2.0 будет обнова? Очень нравится мод.!!!

    Спасибо автору и +++

    Ну, что там адаптация получается с ХВМ? Очень удобные часики, но проклятое ХВМ все крушит, что-нибудь надо сделать... видел мод,  у которого с ХВМ работают часы в ангаре, но там наверное не флешка... У Полярного Лиса (Антон) мод статистика по танкам в ангаре и часы в этом моде с днем недели. но мне твое оформление больше нравится... Жду!!!

     

    Обновление будет. Пока не было возможности даже в танки заходить. С XVM мне ответил разработчик, как исправить, так что должно получиться.

    • Upvote 4
  13. Добрый день!

     

    Достаточно продолжительное время поддерживаю мод

     

    Каких-либо ярко выраженных проблем с модом никогда не было, но в рамках последних патчей начались не совсем понятные вещи.

     

    Не так давно стали жаловаться пользователи PMOD, что у них, при определённой конфигурации PMOD, возникает артефакт в виде темного прямоугольника в боевом!!! интерфейсе игры в случае совместного использования с моими модами (здесь более подробные комментарии о проблеме и конфигурации PMOD http://forum.worldoftanks.ru/index.php?/topic/1241669-102x-часы-и-калькулятор-в-ангаре-с-конфигом/page__st__240#topmost).

     

    Проблема так и не была решена.

     

    И вот, в последнем актуальном патче мод перестал работать совместно с XVM. Пробовал ставить XVM, в логах python.log и xvm.log никаких, проясняющих данную ситуацию записей нет. Вроде как, согласно логам, мод загрузился, потом загрузился XVM и всё должно быть нормально. тем не менее, элементы моих модификаций в ангаре не отображаются.

     

    При этом, на чистом клиенте, мои модификации работают.

     

    К сожалению, я не располагаю большим ресурсом времени на доскональное изучение кода WG и не могу сам разобраться в проблеме. Также, я так и не понял, как сделать детальное логирование подгрузки модов, поэтому приходиться гадать почти вслепую.

     

    Поэтому прошу помощи более компетентных мододелов и разработчиков XVM.

     

    Как мне кажется, проблема заключается в методах инициализации и загрузки моих модификаций.

     

    Сейчас я поступаю следующим образом

     

    Python скрипт

    #
    import os
    #
    from gui.app_loader.loader import g_appLoader
    from gui.Scaleform import SCALEFORM_SWF_PATH
    from gui.Scaleform.Flash import Flash
    from gui.Scaleform.framework import g_entitiesFactories, ViewSettings, ViewTypes, ScopeTemplates
    from gui.Scaleform.framework.entities.abstract.AbstractViewMeta import AbstractViewMeta
    from gui.Scaleform.framework.entities.View import View
    from gui.Scaleform.framework.managers.loaders import SFViewLoadParams
    from gui.shared import events
    
    class hangarClock(View, AbstractViewMeta):
    
        def __init__(self):
            View.__init__(self)
    
        def _populate(self):
            View._populate(self)
    
        def _dispose(self):
            View._dispose(self)
    
        def py_log(self, text):
            print('[hangarClock]: %s' % text)
    
        def py_getWoTPath(self):
            __WoT__ = os.path.dirname(os.path.abspath(__file__))
            __WoT__ = __WoT__[0:__WoT__.rfind('scripts')]
            return __WoT__
    
    _windowAlias = 'hangarClock'
    _url = 'hangarClock.swf'
    _type = ViewTypes.WINDOW
    _event = None
    _scope = ScopeTemplates.GLOBAL_SCOPE
    
    _settings = ViewSettings(_windowAlias, hangarClock, _url, _type, _event, _scope)
    g_entitiesFactories.addSettings(_settings)
    
    old_init = Flash.__init__
    
    def new_init(self, swf, className = 'Flash', args = None, path = SCALEFORM_SWF_PATH):
        old_init(self, swf, className, args, path)
        if swf == 'lobby.swf':
                self.addListener(events.AppLifeCycleEvent.INITIALIZED, lambda e: AppStarted(self, e))
    
    Flash.__init__ = new_init
    
    def AppStarted(self, event):
        g_appLoader.getApp().loadView(SFViewLoadParams(_windowAlias, _windowAlias))

     

    Код AS3, в котором далее непосредственно вызывается код моей модификации

    package  {
    
        import flash.display.MovieClip;
        import flash.events.Event;
        import net.wg.gui.lobby.LobbyPage;
        import net.wg.infrastructure.base.AbstractView;
        import net.wg.infrastructure.events.LoaderEvent;
        import net.wg.infrastructure.interfaces.IView;
    
        public class hangarClock extends AbstractView {
    
            public function hangarClock() {
                super();
                this.init();
            }
    
            public var py_log:Function;
            public var py_getWoTPath:Function;
    
            private var lobby:LobbyPage = null;
            private var current_alias:String = "";
    
            private var zClock:hClock;
    
            private function init(param1:Event = null):void {
                if(!stage) {
                    addEventListener(Event.ADDED_TO_STAGE,this.init);
                    return;
                }
                removeEventListener(Event.ADDED_TO_STAGE,this.init);
                App.containerMgr.loader.addEventListener(LoaderEvent.VIEW_LOADED,this.onViewLoaded);
            }
    
            private function onViewLoaded(param1:LoaderEvent):void {
                this.processView(param1.view,false);
            }
    
            private function processView(param1:IView, param2:Boolean):void {
                var view:IView = param1;
                var populated:Boolean = param2;
                var _WoT_:String = py_getWoTPath();
                try {
                    this.zClock = new hClock(_WoT_);
                    this.current_alias = view.as_config.alias;
                    if(this.current_alias == "lobby") {
                        this.lobby = view as LobbyPage;
                        this.lobby.header.addChild(this.zClock);
                        //py_log("is loaded");
                    }
                }
                catch(error:Error) {
                    py_log("processView" + error.getStackTrace());
                }
            }
    
            override protected function nextFrameAfterPopulateHandler():void {
                if(this.parent != App.instance) {
                    (App.instance as MovieClip).addChild(this);
                }
                visible = false;
            }
    
        }
    
    }

     

    Компиляцию я осуществляю в Adobe Flash Professional, используя декомпилированный код WG из актуального XFW.

     

    Если не затруднит, просьба прокомментировать:

    • является ли верным и актуальным на сегодняшний день вышеописанный метод инициализации и загрузки своих флэшек?
    • что такого произошло в последнем патче, что модификации перестали работать совместно с XVM, хотя раньше подобной проблемы не наблюдалось? Это какие-то кардинальные изменения самого XVM или кода WG?
    • каким образом ангарные моды могут соприкасаться с боевым интерфейсом?

     

    Также, буду очень признателен, если укажите тынц, как можно организовать подробное логирование загрузки модов и вывода ошибок с небольшим примером.

     

    Благодарю за внимание!
     

  14. Поставил XVM посмотреть.

     

    Часы и калькулятор пропали (кстати, клиент просто очевидно сильно дольше грузится с XVM).

     

    В логах python.log и xvm.log чисто.

     

    Такое ощущение, что мод всё-таки загрузился, но xvm вносит некоторые изменения в методы инициализации и флэшки просто не отображаются.

     

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

     

    Попробую обратиться в соответствующий раздел, может быть куда более компетентные мододелы и разработчики xvm мне помогут.

     

    P.S. Не могу пользоваться XVM и смотреть на эти унизительные красно-коричневые циферки в ангаре, клац, клац ))

    • Upvote 3
  15. 6 minutes ago, refaol said:

    Проверил по отдельности, ни калькулятор ни часы не работают, По отдельности тоже не работают. Проверял на последней ночной сборке, кроме хvm ничего не ставил.

     

    5 minutes ago, krok65 said:

    Подтверждаю,не работает.Он с прошлого патча перестал работать.Причем работал,но были при загрузке в бой у меня периодические проблемы (не загружался бой).Искал виновника,удалил и часы.Не они виной были.Решил вернуть их назад,но они уже не отобразились.Наверно конфликт в чем-то с XVM.

     

    Крайне мало уверенности, что смогу это поправить. Кроме того, уже давно существует проблема неотображения, после выхода из боя. Причём, может случится один раз за весь патч, а может по нескольку раз за игровую сессию (переключаешься далее между серверами - всё норм). Что характерно, при компиляции модов я использую декомпилированные исходники вг, доступные на dev.modxvm.com, чтобы собрать саму флешку.

     

    Очень плохо, что совсем не ясно как получить детальную отладку и собрать детальные логи, приходится тыкаться вслепую. 

     

    Времени у меня, к сожалению, мало очень, но я почитаю форум здесь, может что-то изменилось серьёзно в процессе загрузки или ещё что в этом роде. Сам код часов и калькулятора вряд-ли что-то портит. думаю, дело именно в коде инициализации флешек в ангаре.

    • Upvote 1
  16. 14 minutes ago, refaol said:

    похоже с тестовой сборкой ХВМ не дружит, на чистом клиенте все хорошо

     

    C XVM вообще не работает? Ни калькулятор, ни часы по отдельности? Не так давно проблемы с ПМОД начались, теперь вот с XVM.

     

×
×
  • Create New...