Jump to content


  • Content Сount

  • Joined

  • Last visited

  • Battles


About MatroseFuchs

  • Rank
    Able Seaman
  • Insignia

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hello, this means that the modification does not work and the author has not yet restored the modification to the working state.
  2. Greetings, all! WoWs Upack Tool (referred below as the program) is used not only to interact with console utility program wowsunpack.exe used to unpack in game resources (referred below as the utility) but also has a list of its own functionalities that can assist our respected modders in their work. WoWs Upack Tool is compatible with Steam version of the game. Program installation: Working with the program: Program settings and functions: Info dialogue window: Key binding: Working with wowsunpack.exe utility via console command lines (just in case): Referrals: WOWS Unpack Tool program - AutoSpy wowsunpack.exe utility - Wargaming.net Submit your comments and suggestions in this thread – will try to answer all the questions regarding the program. Good luck with modding!
  3. Hi, send me please the url which you want to use in request.
  4. Hi. There are a lot of tools you can find in internet which make screenshots with set interval.
  5. Try to use the last version of unpacker. Check missing files in folder of previous game version (res_mods\0.7.12).
  6. Hi, unfortunately WinStore does not support any modifications.
  7. The "modification" (also further referred as "mod") is a file, or combination of files, related to WoWs project, that interacts directly or indirectly with game client (client's files), and/or that alters its behavior in any way. Modders group is entitled to: Create and/or publish modification. Follow the forum and modification publications rule (further referred as "Rules"). Support and update their respecting published modifications. Receive the "Modder" status as the author of publication, after at least three game versions release from the moment of publication, if no Rules have been violated. The "Modder" status is given to the author of publication, even if he's not the person (or group of people) who created the modification initially. If the modification has been created by a group of people, this group should provide one representative, who'll be considered the author of publication and be held responsible for it. The representative will receive the Modder status; the rest of the group do not receive the Modder status. Participant can be excluded from the modders group if they: Violate the Rules of modification publications. Makes intended changes into already published theme, that contains files with prohibited or malicious content. Stops support for all published modifications for more than three game versions releases. Published modification, that causes harm via files and programs after installation; installs malicious files and programs; or installs files not mentioned in modification description. Recognition system: Forum administrator might reward the Modders for their efforts and impact on game development. Rules for modification publications: All publications and modifications must comply to the general Forum rules and Modification section of the Forum. Publications are being verified by the forum administrators with one or three days after being posted. If the publication is not approved or no remarks on it received within this period, author should contact the forum administrators via direct message. Modification must be related to WoWs project. Modification should match the published description. Published modification should be compatible to the current version of the game. Publications that have disputable or borderline content are to be left on forum administrator consideration. If the remarks for the publication are not followed within 7 days period, the publication is moved to the Archive. Publication name must contain the compatible game version and the name of the modification (example: [] My SuperMod); if the modification does not require any specific game version, then it should be marked as [ALL]. Publishing another author's modification is allowed only with the respected author approval. In this case the original author should direct message forum administrator (MatroseFuchs) of their approval. Publication must contain: Necessarily: Modification description. Download link to the file depository (Google Drive, Yandex.Disk, Cloud.Mail, Dropbox etc.). Installation guide in the description or the mod archive. If publishing another author mod - the name of original author. Interface and graphics modifications must contain screenshots (no more than 3), related to the mod content. If there is any other important information for using the modification, it should be added to description and highlighted. On author's consideration: Additional images or videos for mod description, but they must be put under spoilers. Modification is published in according topic of the forum. After the release of new game version, the modification, if affected, must be updated to be compatible with the current game version within 3 days after release, otherwise modification is put into Archive until it's updated to the current game version. After updating the modification, the mentioned game version in it's publication's name should be changed as well. If the modification, that had been previously already put into Archive, is updated to the current game version, the author should directly message the administrator (MatroseFuchs) for verification. Prohibited content for the modification publications: Programs and mods, that add additional ways for targeting in game, not present in the game client (like preempting markers). Programs, bots and scripts for autonomous management of any game aspect. Programs and mods, that replace, involve or affect in any way the game client file of scripts.zip Containing erotic, pornography or nude models materials. Containing Nazism or fascism-related symbols. Forum administrator has a right to forbid any publication at their discretion.
  8. Let’s have a look at mod creation on Unbound and take a mod showing the win rate in the ship carousel as an example. To create a mod, we need to get three main tasks completed: Get necessary data; Process the data correctly; Display the result. The statistics can be viewed in the game client in the Port in the Profile → Summary: Please note that the win rate is shown for a specific battle type, take this into account when processing the data. Let’s find out how to get the data. To work with game client files, you need to extract them with the help of a utility. We unpack the directory res\gui\unbound to create our mod. The files will be extracted to “..\World_of_Warships\res_unpack\gui\unbound”. In the extracted files, we need to find files working with win rate statistics. Let’s search all the files by the word “victory” as the closes one in terms of meaning and have a look at the result: The search results will contain the file dock.xml (this is our port) and the closest match. As our profile is in the port, it is logical to start searching this file. We open dock.xml and look at the matching area. We will find the winRate attribute in the line above: Looks like this is what we want. We can see that this parameter is in the statData field; now let’s see where it is. We go up and discover that statData initializes in the main block <block className="PlayerSummary">, It is also a property of dataComponent located in statDataEntity. Let’s look at the content of statData. Unfortunately, you cannot use debugging tools when working with XML files, therefore we create a simple text block to display the content. We add the style class, so that the text color is white and not black by default: As some parameters can contain not only string and numerical values but also information in the object format, we use the method reflect() similar to the function rtrace() in AS3 to have the desired parameter displayed correctly. As this block displays black text I recommend adding the textDefault class to the block to make the text white and outlined in order to simplify tracing. Please note! To have changes made to the XML file displayed in the game client, you need to assemble an SWF file https://forum.worldofwarships.ru/topic/51786-правка-unbound-xml/, put it in “World_of_Warships\res_mods\<game_version>\gui\flash”, put USSExpressionsLoader.xml next to it with the path to the SWF file added to it, put the updated XML file in “World_of_Warships\res_mods\<game_version>\gui\unbound” and start the game. We assemble the SWF file again after every change. When we go to Profile → Summary (remember that statistics are displayed in the Summary in the player profile) we see statData content displayed there: If we change the type of battle to have statistics displayed in the profile, we will see changes in statData as well: now data are displayed for the selected battle type. In the obtained data, we find shipsList consisting of dictionaries with fields for every ship, including winRate. We can also see in dock.xml that shipsList is also contained in dataComponent and is declared in a separate variable. We can consider the first task done. We now know that the win rate for very ship is contained in shipsList in dataComponent. Now let’s see how to get the same data for the ship carousel. First of all, we need to display statistics by a certain battle type selected next to the Battle! button. Let’s find this parameter in the code. As you can see below, the battleType variable is responsible for the type of battle: We can suppose that this variable or something similar to it should also be located in the block close to the Battle! button element. Let’s try to find this button element and search for something related to “button” and “battle”. We will find the following elements: StartBattleButtonBig and StartBattleButtonSmall, as well as BattleTypeChooser below: Looks like it’s what we need. We study these elements and see the following: There is a variable selectedBattle containing the selected battle type selectedBattle.type. Now we know how to get access to the selected battle type. Now let’s find out how to get shipsList for the selected battle type. We already know that dataComponent is contained in statDataEntity. Let’s see what we can use there: While searching for shipsList we could notice that the entity statDataEntity is an element of the collection statDataEntities. When we have a closer look at this collection we’ll see that it consists of one element and contains such components as dataComponent and rankedSeasonHistory. If you take an entity with a different component also containing the dataComponent component and look into it, you will see that dataComponent of this entity contains information related to the selected component. You can see that the component rankedSeasonHistory contains the field gameType responsible for the battle type. So, if we set the selected battle type for this component we can get shipsList with the necessary win rate from dataComponent. Let’s check out our hypothesis. Note that you use a dot when accessing the object field (“object.field”) as it is its property in AS3. In the code below, you can see a binding giving us an entity with a component filtered by the required field: Let’s use it. Now let’s get the selected battle type value. Let’s take the entity containing the component rankedSeasonHistory with the selected battle type, and get shipsList from dataComponent (that our entity will have, as we already know) and display it on the screen: So, we see the list of ships filtered by battle type with fields showing their win rate (the string representation is winRate, the numerical representation is winRateNum). Let’s select another battle type and notice that shipsList now has data on ships we played in this type of battle. So, we can say that the second task has also been completed. Now let’s get down to visualizing the result. First, we need to find the element where we will display our win rate. We are looking for a ship carousel and a ship slot in it. Searching for a carousel in all XML files will return a lot of matches, but on closer inspection you will find our dock.xml. If we search a bit using a simple text block with the value “Hello World!” as a debugging instrument (see documentation, the Blocks section) we will find the main carousel element CarouselItem: Here we can process our ship list and get the win rate for every ship. First, let’s get the list filtered by the battle type: When working with the list we use the binding indexOf allowing us to get a list item for the current ship slot. It’s obvious that a separate ship with various properties will be defined for every carousel slot, and a ship ID will probably be among them as well. When scrolling down we will see that it is so: With the help of the binding indexOf we will get a list item index for the current ship slot and take the value winRate. Let’s have a look at the result: As you see we have the win rate displayed for every ship depending on the selected battle type. In our next step, let’s find the slot element, both big and small, to place the win rate inside the slot. The search will result in finding ShipCarouselDefaultSlot – a slot of the regular size, and below there will be the small slot ShipCarouselSmallSlot. Let’s find out how data is passed to a slot, for example, the ship tier and bindings used for that. In the slot element, let’s find a block responsible for placing the ship tier value: Here we can also see what text style is used, as well as the way of positioning the block inside the element. Now let’s see how this parameter is passed to the slot element: Let’s pass our win rate the same way: Then we add a block displaying values with the same top and bottom margins and text style similar to the ship tier so that all slot elements match visually: Let’s add finishing touches now, namely, color gradation of the win rate similar to the tank mod and set the following condition: if there is no win rate the text block remains empty. To do it, we take a numerical representation of the win rate and the binding <bind name="style" value="'textColor'; …”> to change the text color: Let’s repeat the block for a small slot: As a result, we get the mod displaying the ship’s win rate for a selected battle type in a small and ordinary carousel. PS. Don’t forget to reassemble the SWF file after every change to the XML document and replace files in corresponding folders in res_mods.
  9. FlashAPI - StageModule "StageModule" methods allow you to work with "Stage". Available methods: gameAPI.stage gameAPI.stage.addChild(child:displayObject) gameAPI.stage.addChildAt(child:displayObject, index:int) gameAPI.stage.removeChild(child:displayObject) gameAPI.stage.removeChildAt(index:int) gameAPI.stage.width() gameAPI.stage.height() gameAPI.stage.addChild(child:displayObject) It works in a way similar to the "addChild" method, it adds a "displayObject" to the "Stage" to visualize the object. The input argument "child" is a Flash object that is being created. gameAPI.stage.addChildAt(child:displayObject, index:int) Like the "addChildAt" method, it adds a DispalyObject to a certain layer of the Stage.The input arguments: "child" - a Flash object that is being created; index - an indexing number of the layer where a DisplayObject should be added. gameAPI.stage.removeChild(child:displayObject) The method removes a DispalyObject from the Stage.The input argument "child" is a DisplayObject that should be removed from the Stage. gameAPI.stage.removeChildAt(index:int) The method removes the top layer from the Stage. The input argument "index" is an indexing number of the layer where a DisplayObject should be removed. gameAPI.stage.width() The method returns the Stage width. The returned value is a "Number" type of data. gameAPI.stage.height() The method returns the Stage height. The returned value is a "Number" type of data.
  10. DataHub 2.0 Binding List DHCollectionRepeatBinding DHCollectionGeneratorBinding DHCollectionBinding DHEntityBinding DHHandleEventBinding DHWatchBinding DHDataRefBinding
  11. Bindings Bindings are directives assigning different behavior to elements: synchronization with the data model, tooltip display, drag-and-drop, etc. Bindings are defined as follows: (bind %binding_name% "binding_expression1; binding_expression2; ..."). The binding expressions syntax is a subset of the JS / AS3 syntax as it supports lines, numbers, true, false, null, arithmetical, logical operations, comparison operators, access to array elements via [], access to object properties via . and a ternary operator. Binding expressions are calculated for the current scope (i.e. "player.name" is in fact "scope.player.name"). When an element is instantiated by the framework, a scope object is created automatically where the programmer can enter any data at their own choice. To control data in the scope you may write controllers that will obtain data from the game logic (e.g. via GameInfoHolder), process them and fill the scope with them. public class NewWindowController extends UbController { public var gameInfoHolder:GameInfoHolder; override public function init(... params):void { scope.playerName = ... // grab player name from GameInfoHolder } } For the controller not to be cut by a linker (or whatever this thing is called in SWF's compilation), you need to import it in the main window class and declare a private variable of a corresponding type. When instantiating, necessary variables are injected into controllers – the framework does it for every public field. All public methods of the controller are imported to the scope it is linked to. A controller can be declared as follows: (bind controller "lesta.dialogs.new_window.NewWindowController; arg1; arg2; ...") Calculated arg1, arg2, arg3, ... are passed to the init method of the controller. Frequently used controllers A list of available bindings UbChildBinding UbInstanceBinding UbEventBinding  UbSyncBinding  UbRepeatBinding  UbGeneratorBinding  UbDraggableBinding  UbClikListBinding  UbStyleBinding  UbStyleClassBinding  UbAppearBinding  UbTransitionBinding  UbTooltipBinding  UbSequenceBinding  UbPropertyBinding  UBVariablesBinding  UbCatchEventBinding  UbDispatchBinding  UbDispatchDelayResetBinding  UbChangeDispatchBinding  UbCountdownBinding  UbClockBinding UbContainsBinding UbFileBinding UbEventSequenceBinding UbTimeFormatBinding UbRestrictFeedbackBinding UbIndexOfBinding UBAccountLevelBinding SFMRequestBinding and SFMActionBinding FocusBinding InputMappingBinding UbScopeTraceBinding UbSubstituteBinding UbEventPlaySoundBinding DesignerCollectionBinding ConcatBinding ClipboardBinding ColorTransformBinding SliceBinding ResourceBinding DHCollectionGeneratorBinding GSTimelineBinding WowsResizeBinding UbFadeBinding UbPluralTextBinding UbContextMenuBinding UbBlurLayerBinding, UbBlurMapBinding UbWatchBinding ActionIsDisplayBinding UbRepeatWithScopeHoldBinding UbStageSizeBinding UBClickSplitBinding UbLinearChartBinding UBServerTimeBinding UbFeatureCheckBinding UbGeneratorBinding UbInOutActionBinding UbIMEEnableBinding
  12. Hi, everyone! On the behalf of our development team we'd like to share our gratitude and appreciation to the members of modders program for your continuous efforts in creating mods for World of Warships. Our modding program now a fully distinctive and independent community of proactive, innovative and talented people, whose mods make our game process more interesting and engaging. While our community continues to grow in numbers and ideas, we also try to be ready to provide you with the required tools for your creative work. As a token of our appreciation we've issued special emblem and patch, unique for our respected modders. You'll receive these patch and emblem in next few days. Congrats on your well-deserved tribute, we are looking forward to see more of your great ideas and to developing our future collaboration even further! Best regards,
  13. MatroseFuchs

    ModAPI (discussion)

    It's possible. You need to unpack files, find flags.dds, flag atlas and file of the required ship with flag index.
  14. MatroseFuchs

    ModAPI (discussion)

    If we are talking about national naval flags, in order to change them you need to download "unpacker" and unpack
  15. MatroseFuchs

    ModAPI (discussion)

    To make it clearer about which flags are involved, please make a couple of screenshots of the flags you are talking about.