Jump to content
Korean Random
Mr A

[Окно взвода / Squad window]

Recommended Posts

Афигеть. Получилось:)

post-6871-0-80888200-1361909616_thumb.png

 

В игре все норм отображается, как до инъекции.

Edited by MrA

Share this post


Link to post

Short link
Share on other sites

В игре все норм отображается, как до инъекции.

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

Share this post


Link to post

Short link
Share on other sites

@█XlebniDizele4ku,

поясни за предупреждение в отладке.

post-6871-0-04425600-1361910925_thumb.png

 

Подключаю wot.utils.VehicleInfoData(уровни боев) и wot.utils.VehicleInfoData2(уровень танка).

 

В спрайте 51 происходит отрисовка списка. Найдена строчка vehicleNameField.text = data.vehicleName;

Придется полностью копировать содержимое спрайта?

Edited by MrA

Share this post


Link to post

Short link
Share on other sites

поясни за предупреждение в отладке

 

 

Вверху у тебя 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 by █XlebniDizele4ku

Share this post


Link to post

Short link
Share on other sites

 

Попробуй ещё

Добавил данные строки в код, объявил объект

post-6871-0-27445600-1362007307_thumb.png

'Первая из 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 :gg: Придется завтра пересобрать с новым SquadMemberRenderer.swf.

Edited by MrA

Share this post


Link to post

Short link
Share on other sites
Результат на вывод пустого объекта положительный? Все верно?

 

Не понял вопроса. Ты вывел this и root. Ничего особо пустого не вижу. Как выглядит пустой объект в логе сам можешь проверить. Создай любое фуфло от нормального класса с null и выводи. Для иерархии что-то вроде var ob:Object = { a: 123, b: 345 }



Вместо super.SquadMemberRenderer() можно super().

Share this post


Link to post

Short link
Share on other sites

Ругался на вызов super.SquadMemberRenderer(), изменил на super().

 

Оказывается, тестовый сервер еще жив, удалось протестировать:

post-6871-0-28584500-1362035345_thumb.png

Добавляет единицы при каждом наведении мыши(похоже, updateAfterStateChange). Закомментил updateAfterStateChange.

 

Изменил код на такой:

	function afterSetData()
	{
		if(data.vehicleName != "")
		data.vehicleName += "1";
		Logger.addObject(data);
		super.afterSetData();
	}

Избавился от добавления единиц при наведении, в поле пригласить, но функция все равно вызывается дважды и создает новые модели танков :)

post-6871-0-70704800-1362041325_thumb.png

Копаю в этом направлении :)

 

Не понял вопроса.

Ну, он null выводит как результат. Посмотрю с { a: 123, b: 345 }, все пойму :)

Edited by MrA

Share this post


Link to post

Short link
Share on other sites

Полагаю, дальше идёт ковыряние кода, что в теме уже не так уместно, как мне кажется.

 

Направление то, что доктор прописал. Дальше использовать какой-то XVM-ный метод из классов VehicleInfo* из папки Utils для выяснения уровня и балансного веса.

Share this post


Link to post

Short link
Share on other sites

-zav-, on 25 Feb 2013 - 12:04, : тогда нужно или в ангар на каждом танке уровень боёв писать. О, хорошая идея.

 

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

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

Edited by -zav-

Share this post


Link to post

Short link
Share on other sites
всё равно крутить устаёш

Сортировки, сортировочки. Все их хотят. Вг двигается в этом направлении.

 

2 гребли гараж бак карусели

Как через промт :gg:

Share this post


Link to post

Short link
Share on other sites

закинул только  TankCarousel.swf  , всё работает,
мелковато правда а так  нормуль штуковина   :)

Share this post


Link to post

Short link
Share on other sites

как по мне то тоже самое что в роте то и во взводе показывалось, включая и новую фишку с процентами

жду не дождусь мука полная выставлять себя дураком каждый раз переспрашивая уровень:(

Share this post


Link to post

Short link
Share on other sites

Пытаюсь повторить, тоже что и 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)

Ткните, плиз, где ошибка....

 

 

 

Share this post


Link to post

Short link
Share on other sites

Но при сборке FlashDevelop-ом выбивает такое

Нет в xvm\classes\net\wargaming\messenger\controls\SquadMemberRenderer.as этой строчки:

var data;

 

 

Первая альфа в первом посте. Пробуйте, пишите замечания, проверялось на RU локализации 0.8.4:)

Edited by MrA
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

можно ли добавить пробел между техникой и уровнем  и/или  другим цветом уровень

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...