Mr A 750 #39676 Posted February 26, 2013 (edited) Афигеть. Получилось:) В игре все норм отображается, как до инъекции. Edited February 26, 2013 by MrA Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #39699 Posted February 26, 2013 В игре все норм отображается, как до инъекции. Вот потому мы таким макаром и делаем, что в других способах только успевай глюки декомпилатора править. Quote Share this post Link to post Short link Share on other sites
Mr A 750 #39702 Posted February 26, 2013 (edited) @█XlebniDizele4ku, поясни за предупреждение в отладке. Подключаю wot.utils.VehicleInfoData(уровни боев) и wot.utils.VehicleInfoData2(уровень танка). В спрайте 51 происходит отрисовка списка. Найдена строчка vehicleNameField.text = data.vehicleName; Придется полностью копировать содержимое спрайта? Edited February 26, 2013 by MrA Quote Share this post Link to post Short link Share on other sites
█XlebniDizele4ku 344 #39791 Posted February 27, 2013 (edited) поясни за предупреждение в отладке Вверху у тебя 4-е импорта. В коде используешь только 1. Добей в код Logger.add("MrA washere by Logger") и одни варном меньше станет. Попробуй ещё Logger.addObject(Object123, "MrA wants Object123 to be dumped out", 3); // Может долго отрабатывать. 3-ка регулирует глубину ковыряния. Object123 при этом присуствует в области видимости. Что бы компилер что-то видел, что как бы должно присутствовать, надо ему это пообещать в классе intrinsic. Про intrinsic обещалки смотри другие проекты. Ещё попробуй. Logger.addObject(this, "this by MrA", 2); Logger.addObject(_root, "_root", 1); Найдена строчка vehicleNameField.text = data.vehicleName; Придется полностью копировать содержимое спрайта? ) Выбери какой-то метод подходящий где можно это подменить. Твой метод перезаписывает оригинальный и в конце вызывает оригинальный. funcion abc() { vehicleNameField.text = hax(vehicleNameField.text); или vehicleNameField.text = hax(data.vehicleName); или data.vehicleName = hax(data.vehicleName); - сам решишь как сподручнее. super.abc(); } Что-такое. abc() при этом должен быть отмечен в родительском intrinsic классе как существующий. Edited February 27, 2013 by █XlebniDizele4ku Quote Share this post Link to post Short link Share on other sites
Mr A 750 #39956 Posted February 27, 2013 (edited) Попробуй ещё Добавил данные строки в код, объявил объект 'Первая из 23 почти одинаковых частей лога, менялся номер renderer0..11, и у instance"ов' 'this' 2013.02.27 21:51:11 [i] [000] xvm-> [ "MrA was here" ] 2013.02.27 21:51:11 [i] [001] MrA was here by Logger 2013.02.27 21:51:12 [i] [002] JSON> undefined 2013.02.27 21:51:12 [i] [003] MrA wants Object123 to be dumped out: null 2013.02.27 21:51:12 [i] [004] this by MrA: {// [Wargaming TextFieldShort renderer0 "enabled": true, "enabled": true, "converter": { }, "_textFormat": { "italic": false, "indent": 0, "rightMargin": 0, "letterSpacing": null, "tabStops": null, "color": 12105895, "kerning": false, "font": "$FieldFont", "target": null, "alpha": 100, "blockIndent": null, "url": null, "leading": 2, "align": "left", "bullet": null, "underline": false, "bold": false, "size": 12, "leftMargin": 0 }, "textField": {// _level0.windowLayout.channelPage41609146.form.LobbyChPage.memberList.container.renderer0.textField "password": false, "backgroundColor": 0, "maxhscroll": 0, "borderColor": 0, "mouseWheelEnabled": true, "embedFonts": true, "background": false, "border": false, "textHeight": 15.10000038147, "selectable": false, "hscroll": 0, "variable": null, "multiline": false, "maxscroll": 1, "length": 4, "restrict": null, "condenseWhite": false, "autoSize": "none", "wordWrap": false, "text": "Nick", "textColor": 12105895, "htmlText": "Nick", "type": "dynamic", "textWidth": 20.39999961853, "antiAliasType": "advanced", "maxChars": null, "html": false, "tabIndex": 0, "scroll": 1, "bottomScroll": 1 }, "vehicleNameField": {// _level0.windowLayout.channelPage41609146.form.LobbyChPage.memberList.container.renderer0.vehicleNameField "password": false, "backgroundColor": 0, "maxhscroll": 0, "borderColor": 0, "mouseWheelEnabled": true, "embedFonts": true, "background": false, "border": false, "textHeight": 15.10000038147, "selectable": false, "hscroll": 0, "variable": null, "multiline": false, "maxscroll": 1, "length": 4, "restrict": null, "condenseWhite": false, "autoSize": "none", "wordWrap": false, "text": "T-44", "textColor": 12105895, "htmlText": "T-44", "type": "dynamic", "textWidth": 21.10000038147, "antiAliasType": "advanced", "maxChars": null, "html": false, "tabIndex": 0, "scroll": 1, "bottomScroll": 1 }, "status": {// _level0.windowLayout.channelPage41609146.form.LobbyChPage.memberList.container.renderer0.status "enabled": true }, "instance2251": {// _level0.windowLayout.channelPage41609146.form.LobbyChPage.memberList.container.renderer0.instance2251 "enabled": true }, "voiceWave": {// _level0.windowLayout.channelPage41609146.form.LobbyChPage.memberList.container.renderer0.voiceWave "enabled": true, "mutedClip": "_level0.windowLayout.channelPage41609146.form.LobbyChPage.memberList.container.renderer0.voiceWave.mutedClip", "instance2252": "_level0.windowLayout.channelPage41609146.form.LobbyChPage.memberList.container.renderer0.voiceWave.instance2252" }, "instance2250": {// _level0.windowLayout.channelPage41609146.form.LobbyChPage.memberList.container.renderer0.instance2250 "enabled": true } } '_root' 2013.02.27 21:51:12 [i] [005] _root: {// _level0 "enabled": true, "soundManager": "[object Object]", "constraints": "[Scaleform Constraints]", "wg_inputKeyMode": 1, "modalBackground": null, "mcLoader": "[object Object]", "g_cursorVisible": true, "mcListener": "[object Object]", "contentHolder": "_level0.contentHolder", "tooltipManager": "[object Object]", "invitesHandler": "[object Object]", "infoWnds": "[object Object]", "isUpdateAccountInfo": false, "isShowHelpLayout": false, "windowLayout": "_level0.windowLayout", "loadingName": "hangar", "langBarPanel": "[Scaleform UIComponent langBarPanel]", "tutorialLoader": "[Scaleform UILoader tutorialLoader]", "windowLayout": "_level0.windowLayout", "lobbyMessengerLoader": "[Scaleform UILoader lobbyMessengerLoader]", "header": "[Scaleform UIComponent header]", "contentHolder": "_level0.contentHolder", "hiddenFinancePassword": "[Scaleform Dialog hiddenFinancePassword]", "instance298": "[Scaleform Dialog instance298]", "instance294": "[Scaleform Dialog instance294]", "hiddenIngameHelp": "[Scaleform Dialog hiddenIngameHelp]", "hiddenVehicleSellDialog": "[Scaleform Dialog hiddenVehicleSellDialog]", "hiddenCAPTCHA": "[Scaleform Dialog hiddenCAPTCHA]", "hiddenTechnicalMaintenance": "[Scaleform UIComponent hiddenTechnicalMaintenance]", "hiddenEULADialog": "[Scaleform UIComponent hiddenEULADialog]", "hiddenAOGASNotification": "[Scaleform Dialog hiddenAOGASNotification]", "hiddenDelayedMessageDialog": "[Scaleform Dialog hiddenDelayedMessageDialog]", "confirmModuleDialog": "[Scaleform Dialog confirmModuleDialog]", "instance25": "[Scaleform Dialog instance25]", "hiddenEliteDialog": "[Scaleform Dialog hiddenEliteDialog]", "hiddenMessageDialog": "[Scaleform Dialog hiddenMessageDialog]", "hiddenPopUpModal": "_level0.hiddenPopUpModal", "hiddenLobbyMenu": "[Scaleform Dialog hiddenLobbyMenu]", "hiddenSettingsDialog": "[Scaleform Dialog hiddenSettingsDialog]" } Результат на вывод пустого объекта положительный? Все верно? ) Выбери какой-то метод подходящий где можно это подменить. Беру пример с TeamMemberRenderer и решаю подменять значения в data, а не в текстовом поле(объявил data вместо vehicleNameField): 'Код' import wot.utils.Logger; import wot.utils.Utils; import wot.utils.VehicleInfoData; import wot.utils.VehicleInfoData2; class wot.SquadMemberRenderer.SquadMemberRenderer extends net.wargaming.messenger.controls.SquadMemberRenderer { function SquadMemberRenderer() { Utils.TraceXvmModule("MrA was here"); Logger.add("MrA was here by Logger"); Logger.addObject(Object123, "MrA wants Object123 to be dumped out", 3); Logger.addObject(this, "this by MrA", 2); Logger.addObject(_root, "_root", 1); super.SquadMemberRenderer(); //не хочу потерять две строчки из оригинальной функции } function afterSetData() { data.vehicleName += "1"; super.afterSetData(); } function updateAfterStateChange() { data.vehicleName += "1"; super.updateAfterStateChange(); } } Хочу проверить, что получилось в игре и не успеваю до начала работ по 0.8.4 Придется завтра пересобрать с новым SquadMemberRenderer.swf. Edited February 27, 2013 by MrA Quote Share this post Link to post Short link Share on other sites
█XlebniDizele4ku 344 #39994 Posted February 28, 2013 Результат на вывод пустого объекта положительный? Все верно? Не понял вопроса. Ты вывел this и root. Ничего особо пустого не вижу. Как выглядит пустой объект в логе сам можешь проверить. Создай любое фуфло от нормального класса с null и выводи. Для иерархии что-то вроде var ob:Object = { a: 123, b: 345 } Вместо super.SquadMemberRenderer() можно super(). Quote Share this post Link to post Short link Share on other sites
Mr A 750 #39996 Posted February 28, 2013 (edited) Ругался на вызов super.SquadMemberRenderer(), изменил на super(). Оказывается, тестовый сервер еще жив, удалось протестировать: Добавляет единицы при каждом наведении мыши(похоже, updateAfterStateChange). Закомментил updateAfterStateChange. Изменил код на такой: function afterSetData() { if(data.vehicleName != "") data.vehicleName += "1"; Logger.addObject(data); super.afterSetData(); } Избавился от добавления единиц при наведении, в поле пригласить, но функция все равно вызывается дважды и создает новые модели танков :) Копаю в этом направлении :) Не понял вопроса. Ну, он null выводит как результат. Посмотрю с { a: 123, b: 345 }, все пойму :) Edited February 28, 2013 by MrA Quote Share this post Link to post Short link Share on other sites
█XlebniDizele4ku 344 #40002 Posted February 28, 2013 Полагаю, дальше идёт ковыряние кода, что в теме уже не так уместно, как мне кажется. Направление то, что доктор прописал. Дальше использовать какой-то XVM-ный метод из классов VehicleInfo* из папки Utils для выяснения уровня и балансного веса. Quote Share this post Link to post Short link Share on other sites
█XlebniDizele4ku 344 #43859 Posted March 4, 2013 Ну как? 1 Quote Share this post Link to post Short link Share on other sites
-zav- 188 #45151 Posted March 6, 2013 (edited) -zav-, on 25 Feb 2013 - 12:04, : тогда нужно или в ангар на каждом танке уровень боёв писать. О, хорошая идея. Если будете это делать , то можно еще типо этой фичи в карусели замутить... ссыль А то деже если отсортировано всё равно крутить устаёш когда под взводных подбирать танк надо. Edited March 6, 2013 by -zav- Quote Share this post Link to post Short link Share on other sites
Mr A 750 #45154 Posted March 6, 2013 всё равно крутить устаёш Сортировки, сортировочки. Все их хотят. Вг двигается в этом направлении. 2 гребли гараж бак карусели Как через промт Quote Share this post Link to post Short link Share on other sites
-zav- 188 #45180 Posted March 6, 2013 закинул только TankCarousel.swf , всё работает,мелковато правда а так нормуль штуковина :) Quote Share this post Link to post Short link Share on other sites
booch_124 79 #45269 Posted March 6, 2013 MrA как там работа над модом продвигается? Quote Share this post Link to post Short link Share on other sites
Mr A 750 #45273 Posted March 6, 2013 @booch_124, потихоньку;) Quote Share this post Link to post Short link Share on other sites
booch_124 79 #45276 Posted March 6, 2013 тест скоро? :) Quote Share this post Link to post Short link Share on other sites
Mr A 750 #45285 Posted March 6, 2013 тест скоро? :) КТТС :) Quote Share this post Link to post Short link Share on other sites
Alastanka 282 #46838 Posted March 10, 2013 как по мне то тоже самое что в роте то и во взводе показывалось, включая и новую фишку с процентами жду не дождусь мука полная выставлять себя дураком каждый раз переспрашивая уровень:( Quote Share this post Link to post Short link Share on other sites
idab 53 #46943 Posted March 10, 2013 Пытаюсь повторить, тоже что и MrA, в xvm\classes\net\wargaming\messenger\controls\SquadMemberRenderer.as intrinsic class net.wargaming.messenger.controls.SquadMemberRenderer extends gfx.core.UIComponent { var vehicleNameField; var Object123: Object; function SquadMemberRenderer(); function afterSetData(); function updateAfterStateChange(); } xvm\src\wot\SquadMemberRenderer\SquadMemberRenderer.as import wot.utils.Logger; import wot.utils.Utils; import wot.utils.VehicleInfoData; import wot.utils.VehicleInfoData2; class wot.SquadMemberRenderer.SquadMemberRenderer extends net.wargaming.messenger.controls.SquadMemberRenderer { function SquadMemberRenderer() { Utils.TraceXvmModule("MrA was here"); Logger.add("MrA was here by Logger"); Logger.addObject(Object123, "MrA wants Object123 to be dumped out", 3); Logger.addObject(this, "this by MrA", 2); Logger.addObject(_root, "_root", 1); super(); //не хочу потерять две строчки из оригинальной функции } function afterSetData() { data.vehicleName += "1"; Logger.addObject(data); super.afterSetData(); } function updateAfterStateChange() { data.vehicleName += "1"; super.updateAfterStateChange(); } } Но при сборке FlashDevelop-ом выбивает такое: Running process: C:\Program Files (x86)\FlashDevelop\Tools\fdbuild\fdbuild.exe "L:\Programming\XVM\src\xvm\SquadMemberRenderer.as2proj" -ipc 1d0c1597-6e40-4181-840a-916bc4abc797 -version "1.14" -compiler "C:\Program Files (x86)\FlashDevelop\Tools\mtasc" -notrace -library "C:\Program Files (x86)\FlashDevelop\Library" Building SquadMemberRenderer src/wot/SquadMemberRenderer/SquadMemberRenderer.as:19: characters 2-18 : type error Unknown variable data Build halted with errors (mtasc). Done(1) Может FD неправильно настроен??? Ошибки также выскакивают и при сборке других проектов, которые не трогались, например battleloading.as2proj Running process: C:\Program Files (x86)\FlashDevelop\Tools\fdbuild\fdbuild.exe "L:\Programming\XVM\src\xvm\battleloading.as2proj" -ipc 1d0c1597-6e40-4181-840a-916bc4abc797 -version "1.14" -compiler "C:\Program Files (x86)\FlashDevelop\Tools\mtasc" -notrace -library "C:\Program Files (x86)\FlashDevelop\Library" Building battleloading Warning : The MovieClip ReadOnlyScrollingList needs the class net.wargaming.controls.ReadOnlyScrollingList which was not compiled : Please force compilation of this class by adding it to the commandline. Build succeeded Done(0) Ткните, плиз, где ошибка.... Quote Share this post Link to post Short link Share on other sites
Mr A 750 #47047 Posted March 10, 2013 (edited) Но при сборке FlashDevelop-ом выбивает такое Нет в xvm\classes\net\wargaming\messenger\controls\SquadMemberRenderer.as этой строчки: var data; Первая альфа в первом посте. Пробуйте, пишите замечания, проверялось на RU локализации 0.8.4:) Edited March 11, 2013 by MrA 2 Quote Share this post Link to post Short link Share on other sites
-zav- 188 #47130 Posted March 11, 2013 можно ли добавить пробел между техникой и уровнем и/или другим цветом уровень Quote Share this post Link to post Short link Share on other sites