Leaderboard


Popular Content

Showing content with the highest reputation since 07/03/2023 in Tutorials

  1. 2 points
    Tutorial in Text I am too lazy to make it beatiful in here so go have fun with my bland .txt Video <- It takes awhile to upload, then for full hd so check back in 1 hour thanks to @everyone for helping me along the way especially ~alter.Ξgø#7193
  2. 2 points
    Note: this is only for 64-bit exe of 7.3.5 26972! To disable GlueXML signature check, make the following changes in Wow-64.exe using your favorite hex editor: at 1B7A8E: replace A6 with A7 at 86D522: replace DB with DC
  3. 1 point
    Summary Introduction Required tools Day and Night Useless or .. Useful ? SATURDAY NIGHT FEVER Hi people, today, as you can see, we will create two events, play with SmartAI, find a link between our events and SmartAI... Yes, we will create an event that starts at a time of day and ends at another, and an other will takes place to complete our empty time slot. And... our NPCS will react with those two events ! Looks like it's time to gear up ! Navicat MySQL, PHPMyAdmin, SQLYog, HeidiSQL (the software one, not the little girl), any SQL editor you love ! Your WoW client SAI Editor (WAIT ! Why we'll use a software ? Because... I am lazy.) Actually I use SAIEditor 1.4.3, they did an update recently but I don't like it so much, something change and I allow only one thing to change... Here is the 1.4.3 version : http://www.mediafire.com/download/tymxj4231uupa3x/SAI-Editor+1.4.3.rar It's time to go ! Day and Night First, we need game_event. Structure of game_event From there, create your events, here's mine : (Nuit means Night in French) Night will start at 7:30pm and ends at 7:30am, Day will start at 7:30am and ends at 7:30pm, easy right ? Yes ! But... ? I didn't explained it a lot, yes, you're right... We'll play with those events to spawn npcs, and make them perform tasks. For example, it's 7pm and you want 5 npcs start a patrol around your city ? Create the patrol and place your NPCs GUIDs in game_event_creature with the night eventID. Complicated ? Wait... Even before all, why you should do this? To give attractiveness to your areas, an active city with NPCs who move helps immersion, more than stucked NPCs all day. Let's start with one NPC, we'll make him appears and disappears following our events. We need to open game_event_creature. Structure of game_event_creature My NPC GUID is 2019864. So, in the second column, I write 2019864. When my server is restarted, my NPC won't be visible during my "Day" event, because I choose to show him only at night (with event 25). Going back to my patrol's idea. For this tutorial, I'll use only one NPC (I'm too lazy to create a full patrol ) What is he going to do ? At the time of night event, He will appear and begin to follow a waypoint path (I hope you know how to make a waypoint path) with SmartAI. Here is Herigran Cayton. Herigran works all day, but when night comes, he becomes... Batm... No, he just goes home and sleep. So it's time to help him to starts his path when it's 7:30pm. Open SAI Editor. When you'll befinished setting up the software and found your creature's ID, you'll do this : Explanations : First part : EVENT_GAME_EVENT_START "When event starts" Second part : ACTION_WP_START "Start waypoint path" Third part : TARGET_SELF "On yourself." When all of this settings are selected, the "parameters" parts update themselves (it's a king of magic ♫). To better clarify the situation, you need to know Herigran's ID is 60077 and his waypoint path ID is 60077 too and this path is situated in waypoints_data. When you create a waypoint path with TrinityCore (same for Mangos) every point is added in waypoints, so, it means you MUST move your waypoints from waypoints to waypoints_data (be careful, the structure is different). Well, we know Herigran starts his path at night, in technical language it gives : "When event 25 starts, Creature 60077 starts her waypoints path 60077 on herself." And you'll see him starts his path at 7:30pm BUT ! Problem. He won't move when night will end and day will start. We will continue to use only our night event. if a EVENT_GAME_EVENT_START condition exists, a EVENT_GAME_EVENT_END condition exists too ! Herigran will do the reverted path we did for him before, actually we can't just make him follow the same path, you'll have to do an inverted one, let's call it waypoint 60078 (60077 arena => home, 60078 home => arena) you can choose the same points you set before, just invert them, waypoint 1 becomes waypoint 30, waypoint 2 becomes waypoint 29... Technical language : "When event 25 ends, Creature 60077 starts her waypoints path 60078 on herself." And tomorrow I'll see Herigran working in his office ! I know I used less images for this part, feel free to ask if you need one or two, I'll update my post ! I give you my SmartAI script (from Herigran) it could be useful or not ^^ -- Herigran Cayton SAI SET @ENTRY := 60077; UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES (@ENTRY,0,0,0,68,0,100,0,25,0,0,0,53,0,60077,0,0,0,0,1,0,0,0,0,0,0,0,"Herigran Cayton - On Game Event 25 Started - Start Waypoint"), (@ENTRY,0,1,0,69,0,100,0,25,0,0,0,53,0,60078,0,0,0,0,1,0,0,0,0,0,0,0,"Herigran Cayton - On Game Event 25 Ended - Start Waypoint"); Here is one example you can do with SmartAI and events, you want more ideas ? I'm working on Elwynn today, I'll make more wolves and thieves and at night, you'll meet more thieves, but at day, more wolves, only with everything I explained here ! The only limitation is your imagination Have fun guys !
  4. 1 point
    What I will assume you know for this tutorial. How to acquire files from CASC or Wow.tools Your way around the 010 Editor and have the relevant template Adding files to MPQ Editing the correct DBC files to add model to client How to use blender to decrease poly count if required Tools you need M2Mod 9.0.0 My MultiConverter fork The most recent listfile.csv in the same directory as both of the two previous programs Step 1 - TXID Removal For this step you can use any TXID removal method you want. This step can also be done at any point before the MultiConverter step but it's just easier to do it now and not forget it. I will get round to reimplementing the TXID removal that MultiConverter 3.6 has in my version, at which point you won't be reading this step Sylvanasshadowlands3 is weird and M2Mod requires her Skel to be renamed to sylvanas.skel, I haven't seen another skel model with this issue. Step 2 - Convert to M2i Load the m2 you want to converter into M2Mod and click Go! ** Option Step ** You now have the model in m2i format, this is the stage where you would decrease the poly count and edit submeshes if necessary. The max poly count for a model is 21845 in wotlk, probably best to check how many it has before you run into issues later on. This guide will give you some idea of what to do HD character model triangle reduction Step 3 - Convert back to M2 Whether you or not you have forayed into Blender it's now time to convert back to M2, just Preload and Go! once more. You will now have an Export folder inside the original model folder, in my example I have an extra skel from before which I will delete now because MultiConverter uses the model name to find the skel. Step 4 - Change skin names To avoid skin errors we must rename the LOD skin files into normal skin files, however many LOD files there are rename them to be in ascending order after the original skin file. To produce something like below. Step 5 - Edit M2 number of skin profiles Now we need to go into 010 and change the number of skin profiles to be 4 or however many skins you now have. We haven't converted the file yet so you'll need to run the template at the offset 0x8 Open up the Template Results and find the entry relating to number of skin profiles and change the value of 1 to your number. Step 6 - MultiConverter All we have to do now is convert the M2 to Wotlk format This step will work for models that have skels and ones that don't. If the model has a skel you will see the size of the m2 drastically increase once it's converted whereas when there is no skel it barely changes. Drag the M2 into MultiConverter and click Fix, for one file the conversion should be very quick. The size has increased so if the green progress bar didn't give it away we have now put the skel back into the m2. Step 7 - Add to MPQ and DBC editing Now add the converted files to the MPQ and edit the correct DBCs, @Tyrallis has a guide on how to do this Retroport to WOTLK Update-1 Step 8 - Admire Ingame Please comment an issue you have and i'll try and update the guide, any issues with MultiConverter please go to my Github repo and submit and bug with reproduction steps.
  5. 1 point
    In this tutorial we will learn how the so called wotLK procedural water works, and how to activate it. This water was added to the game files in patch 3.0 for internal testing only, so keep in mind that it's not perfect. It's called procedural but actually isn't, because nothing is created algorithmically, it's just a group of textures that interact with each other and give a nice visual effect. There are some patches available online with this water activated, but most of them have errors or look bad (based on my own judgment). We will also learn how to improve it and customize it. Tools -MPQ Editor (or any other MPQ reader) -Any DBC to CSV converter, such as Wow Parser -Notepad -Any BLP converter -Photoshop (or any other image editor) Step One - Editing the DBCs Open MPQ editor and extract the file "DBFilesClient\Liquidtype.dbc". Convert this file to CSV (you can't edit it directly with a DBC editor for some reason) and open it with notepad. Each line corresponds to a liquid type. The one with ID 100 is the procedural water. We will do a line swap. You have to delete these entries: 1 (Water), 2 (Ocean), 5 (Slow Water), 6 (Slow Ocean), 9 (Fast Water), 10 (Fast Ocean). Now copy the line with the procedural water and give it the same name and ID of the entries you deleted. http://i.imgur.com/cC87I59.jpg You will notice that there are 2 kinds of water: simple water and ocean water. If the entry has "Water" in its name, replace the "1" in the 4th column with "0". It should look like this: http://i.imgur.com/a484Hvl.jpg Also, if the entry has "Water" in its name, go to column 20 and replace "proceduralOceanDepthTex" with "proceduralRiverDepthTex". The game uses a special illumination for the ocean, so this step is important or your water could look weird. Technically we are done, but there is one last thing we can do: Go to the column 21 (it's the last texture in the line) and replace "XTextures\ocean\ocean_h.%d.blp" with this transparent texture: "World\GENERIC\PASSIVEDOODADS\ParticleEmitters\DemonGlow04.blp". Doing so will remove this pointless reflection: It's quite annoying and unnatural because it goes against the position of the sun. It's better to remove it, but totally optional. Now you can save your CSV and convert it back to DBC. Note: you can also swap the wintergrasp and hyjal water if you want. Just check the spell id in column 6. Step Two - Extracting the missing textures As you may already noticed, the procedural water uses a few textures that don't exist in-game. Blizzard tested this new water internally, that's why they never added the textures to the WotLK client, but they are present in updated client versions. You can download the missing textures HERE. If you want to extract them by hand, just open an updated wow client (4.x or beyond) and extract the following textures: XTextures\ocean\basicReflectionMap.blp XTextures\ocean\basicWaterHeightTex_X.blp ("X" is a number between 1 and 32, you must extract them all) Rename the folder called "ocean" to "procWater" and it's done. You should have 33 textures, something like this: XTextures\procWater\basicReflectionMap.blp XTextures\procWater\basicWaterHeightTex_1.blp XTextures\procWater\basicWaterHeightTex_2.blp XTextures\procWater\basicWaterHeightTex_3.blp etc. Note: the reflection texture has a unique compression and most blp converters can't read it. If you are having trouble trying to convert this image, install BLPView, preview the texture in the Windows preview pane, take a screenthot and paste it in a new document (768x128). Step Three - Tweaking the Textures Reflecting Texture Now you can test the water in-game. If you did everything right, it should be working correctly. BUT it can look much better. Before starting, it's important that you understand how the reflection texture works. The game only reads the texture if it's 768x128 (width x height). Bigger or smaller images won't work. The texture is divided into 3 sections: The 1st section is a panoramic photo, the reflection itself. The texture bends to form a ring around your character (from another point of view, it wraps around a cylinder). Then, the 2nd section of the texture fills the gap at the center of the ring. The 3rd section overlays all layers. The farther from the center, the more it becomes distorted. Also, it creates some small waves. Now that we know how it works, let's analyze this image: This is how the procedural water looks with the default texture. Yes, it looks like radioactive waste. We have a reflective texture with a lot of green, and the 3rd section of the texture overlays even more green, messing the original color of the water (it should be blue, not yellow). -The first thing we must do is opening the texture with photoshop and removing the sun. Why? Because the water is always reflecting the sun, even at night, and it doesn't look good. -Then, we must desaturate it. If the image is in black and white it doesn't mess the original color of the water (if the water is blue and your reflective texture is red, you will get purple water). You should avoid using color. -We can also darken it a little bit and give some yellow to the third section of the texture. This will give us subtle golden reflections. Now it looks much better. In case you want to remove the 3rd section because you don't like the overlay reflection or waves, just fill it with black. You can even make a lot of new water ids, each one for a different zone, with a different reflective texture (you just need to change the texture name in the DBC), or you can make new liquids, as this "mana water": The "wave effect" You will notice that after some time the water starts doing some kind of fractal movement, creating a weird wave effect. It can look good in the ocean, but a little out of place in ponds or lakes. This is caused by texture tiling. In order to repeat the reflective texture, the game tiles it. Since the texture has different contrast levels, it makes an optical illusion similar to a succession of waves: This effect is hardcoded into the shader (even filling all collumns with 0 in Liquidtype.dbc won't change it), however you can make it less noticeable by using a dark texture with homogeneous contrast, like THIS ONE. You will see less reflections, but the "wave effect" is almost gone: You can use the default texture for the ocean and the one with less reflections for small bodies of water, but it's a matter of taste. Ripples The ripples are created by the sequence of 32 textures named "BASICWATERHEIGHTTEX". They distort the reflection texture. Each one of them is a frame. Basically these textures are normal maps simulating movement and depth. You can also try to apply other textures, but I won't get deeper into that, because I think it looks good with the default sequence, and it's quite difficult to make a new animated normal map. Player wakes and splashes If you want to update the old wake and splash textures, you have to replace the following files: XTEXTURES\Splash\splash.blp XTEXTURES\Splash\wake.blp Here are some textures I made that match procedural water way better than the default ones: (You can download them HERE) Water brightness Procedural water is brighter than classical water. This is more noticeable at night (specially in places like Theramore or Booty Bay). This happens because the texture is not affected by the diffuse and ambient lighting (the same occurs with the default water, but since it has transparency and the material beneath is indeed affected by lighting, you don't notice this effect). There are a few things you can do to counter this issue: -Darken the reflection texture. -Decreasing the water color lightness by half in the DBCs (LightIntband.dbc, last 4 IDs, more information HERE). Conclusion That's all the basic information you need to know about this "procedural" water. You can also download a few custom textures I made HERE, so you can see how different the water looks with different environments. Feel free to make your own textures and explore this topic even further. Also, remember that this water is some kind of alpha testing phase for the liquid system released with Cataclysm, so you can find some artifacts like random lines in the ocean. My goal with this tutorial is to stop people from asking for procedural water mods, it's fairly simple to do it yourself. If you have more information to contribute, please send me a private message and I will add it to the tutorial. Thank you. Have fun!
  6. 1 point
    FULL WALKTHROUGH for 1 ADT: Use any Terrain Editor that you want, i recommend: GAEA There are two tools Included, THEY ARE NOT MADE BY ME: (Had some Problems with Upload so i included the GDRIVE: (https://drive.google.com/drive/folders/1-fX4DQobVAS2P0s0BGLThIH6sj0P86v4?usp=sharing) ObjtoADT and (FUTA) ill Inculde these Tools are included inside the Package HOW DOES IT WORK ? It uses the two main keys for great Terrain Generation OBJtoADT to print Model Height Data into an ADT. Futa to Extract all 3 Layers into an ADT. HOW TO USE ? Firstly you need to Generate a Terrain through your Favorite Terrain Generator, i use Gaea: So i split the Terrain into 4 Pieces Heightmap: and the 3 Layers: So i have 4 Outputs: Heightmap, Layer1, Layer2 and Layer3. (1024 Heightmap and 4096 Layer1-3 Textures) 1k and 2k works aswell with the standart edition but loose a bit of quality. As soon you have those Raw Files you need to Convert the Heightmap into an 3d Object with the ADT4x4 file Through The Displacement Modifier: As soon youre done accept the modifier and copy the object into the OBJtoADT File: Select the ADT_Template and Set Target inside the Modifier and Select your Terrain. IMPORTANT: Now you need to lock every object or Hide them and only export the Objects from the Modifier like this The ADT_Template needs to be Hidden and press a to select everything now only the Objects from the Modifier Should be selected and Export the Object after the settings in the Folder: It should be named after your ADT File as an example NAME_1_1.obj -> NAME_1_1.adt you need todo that for every ADT Piece save it inside your OBJtoADT Folder and as soon you have it you need to put your Empty ADT Files inside that folder and run the OBJtoADT.bat which prints the Data inside your ADT. Put your ADTs back and open Noggit and Add 3 Textures with it. Open TerrainTextureGen i recommend adding the Addon ScriptstoButton there are 3 Scripts included you only need to Change the Path and press the Button to generate Layer1-3 Files otherwise they overwrite eachother. You only need to Add your Textures inside the Given Image Nodes we have 3 Materials for Every Layer. Select the Material and click the Button Layer 1 it saves all 16 Textures in the Path you set inside the Scripts. Select the 2nd Material and button Layer 2 the same for the 3rd. The last step is to open Futa and import the Single images for all 16 ADTS. Thats it, some Result Pictures:
  7. 1 point
    Hey guys, This is a reupload from 2017 by Roccus. I could save it and i want that the legion modding comes more alive. It's time for it. First, let's start with the tools i used so far : http://www.model-changing.net/files/file/82-wdbx-editor/ http://www.model-changing.net/files/file/119-get-filedata-id/ http://www.model-changing.net/files/file/118-getdb2hash/ http://www.model-changing.net/files/file/115-cascexplorer-2017-compiled/ http://www.zezula.net/en/casc/main.html http://www.model-changing.net/files/file/116-list_root-exe/ https://bitbucket.org/suncurio/blender-m2i-scripts/downloads/ https://bitbucket.org/suncurio/m2mod/downloads/ http://www.wowinterface.com/downloads/info6127-BLP2PNG.html http://www.wowinterface.com/downloads/info22445-BLPFormatPlug-inforPhotoshop.html https://www.sweetscape.com/download/ https://mega.nz/#!dvpj0ThZ!t0gx5DOAlMGVQMdwej3p3shWp-SHlQmULi2a2l6AQGw https://mega.nz/#!J2IV1aQZ!SFJZcMEOdf2vZH_prn5RnV7tO1CCb7d_dygYGfhb_bQ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- How to reset 010 Editor: Open regedit (windows) and HKEY_CURRENT_USER/SOFTWARE and delete the SweetScape folder. It will reset your 30 days trial. U can do it again and again ? ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- If you do a 3d custom model or edit one you Will see all mesh separated in game like a constructed doll but it s not that visible in my opinion. And you have to put SET M2UseLOD "0" In your config.wtf file in your WTF because your models Will expand otherwise. Don't ask me why but this Will fix everything. Let's get started now, i will tell you when to use each of those things. PART 1 : Understanding and Editing db2 files from DBFilesClient. Thanx to Barncastle everything is easier with his awesome WDBX Editor which permits to open those db2 with their definitions for 7.3, 7.2, 7.1 etc. For big editing you can even export them to sql file, to your sql server directly as a table and even is csv format which are all pretty cool for mass editing. You all know that there's almost only numbers in the new db2 format from blizzard and that'w why it was difficult to know which textures of models were related to what numbers. Here's the solution. I haven't tried everything. I can tell you that for spell related db2 it's a real maze and i never found the links between them so I will give you the example with either creature db2 and item db2. So you need to extract from cascexplorer or Cascview the modelfiledata.db2, texturefiledata.db2 and thanx to cascexplorer, go to Tools > Extract CASC System Files like this : You just have to wait for it to complete the extraction which is pretty fast and then go take the root file in your cascexplorer folder. It's called « root » and cascexplorer won't tell you if the process is finished, it will be done when you can interact again with the tool. Now use the list_root made by wungasaurus i shared on the links and move the rootfile and your most up to date listfile in the list_root.exe folder. shift+right click to open a command prompt on the folder path. Then type : list_root.exe « listfile.txt » « root » dump_all > whathevername.txt and wait for the process to list the root file of the game which is « Filedata » of Legion to make it easier to understand. Ok now you got everything needed. (note that a little bit of excel editing to get rid of the middle hash between path and Ids make it easier to read this filedata) Here's how you need to use the generated filedata root + modelfiledata.db2 + texturefiledata.db2. I like to make them to csv format on notepad++ for my research. You want to get a special weapon displayID from legion (which is a hard thing since WMV doesn't do it anymore) now it's easy. Open your Itemdisplayinfo.db2 and search for a displayid like this. See the purple highlighted IDS, first one is Model ID and second one Texture ID : Remember those ID's, now go to modelfiledata.db2 for the first one and texturefiledata.db2 for the second one : here's modelIDs of the root : here's texture root ID : now take ID 140142 for model and 140164 for texture. Now go to your root file and search the corresponding ID and then you'll get the filepath and its name ! You can also do this process from root file to itemdisplayinfo ! Now if you ask me, is it the same for every db2 ? Well no, if you take the example for creatures and some others : take the M2 ID from root file, like felreaver2.m2, note its ID, then go to creaturemodeldata.db2 and search this id in the ninth column from the end (or just ctrl+f to find it in csv mode) then you note creaturemodeldata.db2 model ID, the first valu in the row. Then go to creatureDisplayInfo.db2 and search in the third column the creaturemodeldata ID to find the DisplayID of the NPC. On the same row as the found npc you'll get the textureID but this time it's directly the rootfile ID, no need to do the texturefiledata.db2 process this time either. The same goes for GameObjectDisplayInfo.db2. The second column values are the models of the m2 gameobjects. And you can add all the wmo gameobject from root file in this db2 to get all the existing wmo in root spawnable in game. (you need only to put the first part on the wmo's You need only to put the .wmo one, not all the ones with _XXX in the name before.wmo. Then you need to do some sql databases updates to make this work in game but I'll explain it in the SQL part of the tutorial. Here's a video I made of the process to find felo'melorn blue displayID : https://www.youtube.com/watch?v=gHrCGLBjVYU PART 2 : Understanding the M21 format and M2 Hexa_Editing You all know from your retroporting from legion to wotlk or wod etc that all m2 files contain an 8 bytes MD21 header and that you can't retroport them without deleting the MD21 header. I will tell you how to write a custom MD21 header as it's only a pretty simple thing when we know what are the four last bytes of it. We will see how to edit textures, hardcode texture, use creaturedisplayInfo.db2 texture. Unfortnately i can't do animated textures or particles, i never achieved this. And i will tell you how to edit skin01 file to put texture on blank areas of your model too. So here we go. Let's take the voidbroken model from 7.3 : Now to edit it, cut the 8 bytes before MD20, and i suggest you paste them in an empty document in case you're not changing the size of the M2 and by that i mean not adding block of data and adding new bytes etc. Run the M2Template for 010 editor and wait for it to load the structure : Go the the texture section at the end and unfold it, you will see this when you finish unfolding everything: Some explaining now. Hardcoded setting means that those are « linked to the model » if I say this in a simple way. Like some data stored in a personnal M2 databases If you want to edit the name of a texture for practice like Creature\VoidBroken\VoidBrokenShadow.blp. Go to insert mode and write in the right column of the hexa part and type like Creature\Voidbroken\Voidbro.blp. You will be left with something like « Creature\Voidbroken\Voidbro.blphadow.blp » to get rid of the other useless char go to hexa part and go to the corresponding hexadécimal and replace those ones by 00 00 00 until you got only rhe wanted path. Like this : If you make an error of char just press ctrl+z and not delete key as it will delete a byte and don't do that. Deleting just one byte will fuck all up. Be careful. Now the settings you must put in the corresponding hardcoded texture block. Our new path start at offset 238560 for a length of 32, (from C to p it's 31 but you can put +1 in the length it son't change a thing.) now go in the texture block and edit what needs to be edited : Now reload the M2template and done ! All modifications applied, now one last thing before doing the new MD21 header and modifying efficiently the skin01 file. Your new texture is voidbro.blp. The first hardcoded one, it's the texture_texture 1, now go to texlookup section and search int the right part the ID 1 to find the corresponding skin textureID : Remember this ID for the skin01 part. Now the other thing, some explaining for creaturdisplay1 (11) creaturedisplay2 (12) and creaturedisplay3 (13) that can be set in the place of hardcode. The 11 one means model will take the first texture from the three texture column of the models displayid using db2 texturepath, like different color of harpy if you want to see. So imagine i want to use second texture on model to load in game I set the thing to cretauredisplay2 (12). As simple as that. So if you want to swap your model with another model that has 4 skin colors you can make 4 customs BLP's in your swapped creature folder and set to first texture column of creaturedisplayinfo.db2 to apply more easily the textures. How to generate a right MD21 header for our model ? You need to know that if you haven't added or deleted any bytes, you just have to place the cursor at the start of your file before the 'M' of 'MD20' and press ctrl+shift+I to insert bytes. You must have start adress 0 and size 8 in decimal. And you have now 8 empty bytes. Just paste the MD21 header you deleted to launch the M2template on 010editor. Save and you're done. On the other hand, if you lost it and you wanna know how it's done here's the explaining : MD21 has some FID sections, ctrl+f and search in ASCII « FID », you'l have SFID, AFID and for some models BFID. Those sections are not counted in the size of the file like the 8 bytes of the MD21 header. In fact, the header has 8 bytes, 4 are taken by 'MD21' and the other 4 are the old size of the M2 so it's the length of everything between the header and the FID sections. In reality you must read the open file from the bottom to othe start. So here's how to get the old size of the m2 : start the selection after all last FID that you will find ! And go up to the M of MD20. The circled value is the old size, in my example that is just for the theory, we will remember 689024 as the old size. Go to a decimal to hexa converter, you'll get you value in hexadécimal to enter in the last 4 bytes of your header. You must read the value from right to left, so in 4 bytes it's 80 83 0A 00, just need to enter it in the 4 empty bytes in the hexa section of 010 like this : Select the four bytes you worte and in the circled section on the screen you'll see that de int value is 689024 ! You have a working MD21 header for your specific M2 model. Congrat ! Save all the changes and it's done ! Now how to find right mesh part of which texu_textureunit of skin01 using skin00 and WMV reading a custom folder. Make a custom folder on your dekstop and launch de last version of wmv that can read you wow folder, and in setting put the path to your custom folder. Then go create a creature folder in custom and fill it with your voidbroken.m2 and .skin and lauch again your wmv to load it. Find the model in creature section and open show model control. Unfortunately, WMV is unstable with legion and i can't make screen of the voidbroken we did. But here's the menu : You just need to uncheck the green numbers to disable geosets ad fin the right one, imagine now that you take only the geoset 1 of the voidbroken. Open the skin00 and skin01 of it and load skintemplate on both of them in 010 editor. Open the submesh section and unfold the [1] one : and remember its ID and also startTriangles and to make sure you identify the right one in skin01 because skin01 has more submesh than th 00 one. It's because skin00 load the 3D mesh and skin01 is for texture and it separates mesh into sections as far as i guessed it. Go to skin01 and open submesh section like skin00 and search for the submesh that has the same settings as the submesh [1] in skin00 : See ? More submeshes but the one that link to de [1] from skin00 is the [3] of skin01. Now unfold Texu textureunit section and search the one referencing submesh 3 : search all the ones that have uint16 submesh 3 as there can be more than one especially if you're doing character models which are way more complex ! Now take the texlookup ID from the M2, remember the ID 1 ? put it in the textureID of this texu textureunit. Save edits and you're done, you hardcoded Creature\voidbroken\voidbro.blp on submesh 1 of the model ! Last part of the tutorial of MD21. How to swap a legion model with a new one ? MD21 has FID files as you saw in the MD21 structure before skin editing. You need to swap the SFID of your new edited M2 with the SFID of the swapped model. Follow this video to see the effect of not swapping the SFID and how to do it (it's written in french but you have all the manipulation for basic swapping done!) : https://www.youtube.com/watch?v=lMflGnqZkxo&feature=youtu.be And se're done for the MD21 explanation and M2 hex editing, I hope i was clear enough as it is a complex thing to understand and need some time to adapt to the basics ! You'll need to train until you make it work ! PART 3 : SQL Database Editing : This part will need to be completed by someone who know his stuff on legion databases ! It will be a short part because i know only how to make wmo gameobject patch and how to technically blacksmith new items with custom stats and names. To blacksmith items, you'll need to edit the hotfix DB. In order to do this, you'll need Helnesis getDB2hash and to use the knowledge you learned from the root of the part 1 of the tutorial. You just need to test until it works, everything pretty much documented on trinitycore but you need to edit : https://trinitycore.atlassian.net/wiki/display/tc/item_sparse https://trinitycore.atlassian.net/wiki/display/tc/hotfixes_item https://trinitycore.atlassian.net/wiki/display/tc/item_appearance https://trinitycore.atlassian.net/wiki/display/tc/item_modified_appearance https://trinitycore.atlassian.net/wiki/display/tc/hotfix_data when you edited and added the new rows in all those files (i suggest to put same ID to all 4 to have a more easier way to do things). Go to hotfix_data to apply the hotfix, use helnesis getdb2hash to find the hash or use wowpacketparser thing, and in table hash put the hash of each table, so 4 row with the 4 hash of the four tables. In recorID put the ID of the item, like if you did ID 5000000, put 5000000 for each table in the for rows, except if you did like 1, 2 ,3, 4, then you need to put the specifi ID for each tablehash. Then put for the four rows for the item, Ths ID of the creation of each of the four rows in the four columns in RecordID in deleted put 0 or it won't be applied as a hotfix for your server. For french people maybe this could help even if it's wod, it may help : http://wow-emu.fr/V2/printthread.php?tid=2782 EDIT: Here's an advanced visual tutorial of the databse editing needed to do such thing made generously by Magna ! Now for the gameobject patch, go to World DB and open Gameobject_template table and gameobject_template_addon table. https://trinitycore.atlassian.net/wiki/display/tc/gameobject_template https://trinitycore.atlassian.net/wiki/display/tc/gameobject_template_addon Pretty much easy to do I think. I'm done for Legion DB editing since i'm not an Emulator. PART 4 : 3D Modelling in Blender, the tools and theory. Sorry but i won't tell you exatly how to do every step cause in my opinion it's not fun if you do not find it by yourself but with evey video tutorial that are hidden + public ones and advanced tutorials I found on the web you will be able to do this if you try ! You need both blender 2.73 and 2.78, if you ask me why it's because 2.73 got a feature called transfert weight and it permit to transfert weight to bone pretty good if the shape is almost the same ! And in 2.78 transfert weight doesn't work good but you can paint yourself each bone one by one for more precision like for fingers (this nightmare!). Install the M2i import/export scripts in you blender. As well as wow tools and multiedit. Converts blp to png using Blp2png to apply them onto models in blender. Wow tools permits to hide cape, or hair or facials geosets groups to work faster. Multiedit permits to edit multiple mesh at the same time but when you're done never forget to multiedit exit or you will fuck up everything ! To convert your model to M2i use M2modredux 4.8.13 i gave you in intro, it can converts MD21 model to M2i without having to delete the header first ! (works on some items too, not all unfortunately, not everything is perfect.) and use it to export to m2 after your finished editing. So i'm done. Here's tutorial on how to edit using blender 2.73 and transfert weight : https://www.youtube.com/watch?v=JAyxlR3rN6g&feature=youtu.be https://www.youtube.com/watch?v=6qOw1MxkfYg&feature=youtu.be For Uvmapping editing : https://www.youtube.com/watch?v=Yg7bWG-pnrg And now for general things you can do in blender : https://www.youtube.com/watch?v=RxRRdiCIa2Q https://www.youtube.com/watch?v=CGVSvjZ1p3c https://www.youtube.com/watch?v=GEG78mJTEK0 https://www.youtube.com/watch?v=Kpa5W40WuC0 Now if you ask me for weightpainting and possibility in blender 2.78 + 2.73 : http://www.model-changing.net/tutorials/article/3-import-m3-heroes-of-the-storm-to-blender/ http://www.modcraft.io/index.php?topic=9087 This big tutorial on my legion knowledge has now come to an end. I didn't told you everything I know but with the theory you can do the same as me with a lot of hardwork to get the habits. Here's some of my best examples : http://imgur.com/a/DK59m http://imgur.com/a/kbB7F + making vrykul, skeleton or naga morph accessible with the theory of db2 editing + root file etc. Hope it will help a lot of you.
  8. 1 point
    Things you will need: HeidiSQL - any SQL program would probably work but this one is the most simple to use. Go to Spell Learn Spell Database in the SQL. Here you will see a short list of spells The way this works is these spells learned under entry, will auto trigger you to learn the additional spells under spell ID. This was made for professions and other random things, but this is a really great way to add new spells to your class. The way I did it is I tied the spells I wanted to learn under the Plate Mail spell, which is spell ID 750, you can do it with any spell, just check the trainer to see what spell you know people will learn, you can also make the cost free just to make it easier by going to the trainer spells database. Entry = the spell ID that you have learned that will trigger the auto spell learns Spell ID = The spells you are wanting to add to whatever class you are trying to create or alter Active = if it shows in your spell book, 1 for yes, 0 for no.
  9. 1 point
    Today, we'll learn how to do this : http://static.mmo-champion.com/mmoc/images/news/2010/august/load_kalimdor.jpg Yes, it's a Gametip, maybe later I'll teach you about loadingscreens, who knows ? Summary Required toolsGametips.dbc editingPatch creationIngame resultBonusLooks like it's time to gear up ! - Gametips.dbc - My DbcEditor - MPQ Editor - Your WoW client I say a little tip for youuu... ♫ Open Gametip.dbc Quick explanation : First column : Tips ID Second column : Tip content Third column : dunno Information : My client is frFR, so my tips are written in French, don't worry, except the text, the concept is the same ! Create your new line, here is my example : 1 : ID, must be unique, mine is 510. 2 : |cffffd100Astuce :|r : It means the word "Astuce" (means trick) will be colored in Gold. I call the color through |cffffd100 and I close my color by |r. After, here's my text : Result : We are finished ! Next ! To the patch ! But... Where in my patch ?! I assume you know how to create a MPQ patch. So, open your MPQ with MPQ Editor ! If they don't exist, create this folder at the root : DBFilesClient I don't know if it's necessary but don't hesitate to put your dbc in serverside. Next ! Show me ! Show me ! Show me ! Apparently, it works This tutorial is finished, but I give you one more advice ! The show must go on "Hyakki-master, your gold is terrible ! I want an other color !" An other color ? OK ! Here's your gift ! #define MSG_COLOR_ALICEBLUE "|cFFF0F8FF" #define MSG_COLOR_ANTIQUEWHITE "|cFFFAEBD7" #define MSG_COLOR_AQUA "|cFF00FFFF" #define MSG_COLOR_AQUAMARINE "|cFF7FFFD4" #define MSG_COLOR_AZURE "|cFFF0FFFF" #define MSG_COLOR_BEIGE "|cFFF5F5DC" #define MSG_COLOR_BISQUE "|cFFFFE4C4" #define MSG_COLOR_BLACK "|cFF000000" #define MSG_COLOR_BLANCHEDALMOND "|cFFFFEBCD" #define MSG_COLOR_BLUE "|cFF0000FF" #define MSG_COLOR_BLUEVIOLET "|cFF8A2BE2" #define MSG_COLOR_BROWN "|cFFA52A2A" #define MSG_COLOR_BURLYWOOD "|cFFDEB887" #define MSG_COLOR_CADETBLUE "|cFF5F9EA0" #define MSG_COLOR_CHARTREUSE "|cFF7FFF00" #define MSG_COLOR_CHOCOLATE "|cFFD2691E" #define MSG_COLOR_CORAL "|cFFFF7F50" #define MSG_COLOR_CORNFLOWERBLUE "|cFF6495ED" #define MSG_COLOR_CORNSILK "|cFFFFF8DC" #define MSG_COLOR_CRIMSON "|cFFDC143C" #define MSG_COLOR_CYAN "|cFF00FFFF" #define MSG_COLOR_DARKBLUE "|cFF00008B" #define MSG_COLOR_DARKCYAN "|cFF008B8B" #define MSG_COLOR_DARKGOLDENROD "|cFFB8860B" #define MSG_COLOR_DARKGRAY "|cFFA9A9A9" #define MSG_COLOR_DARKGREEN "|cFF006400" #define MSG_COLOR_DARKKHAKI "|cFFBDB76B" #define MSG_COLOR_DARKMAGENTA "|cFF8B008B" #define MSG_COLOR_DARKOLIVEGREEN "|cFF556B2F" #define MSG_COLOR_DARKORANGE "|cFFFF8C00" #define MSG_COLOR_DARKORCHID "|cFF9932CC" #define MSG_COLOR_DARKRED "|cFF8B0000" #define MSG_COLOR_DARKSALMON "|cFFE9967A" #define MSG_COLOR_DARKSEAGREEN "|cFF8FBC8B" #define MSG_COLOR_DARKSLATEBLUE "|cFF483D8B" #define MSG_COLOR_DARKSLATEGRAY "|cFF2F4F4F" #define MSG_COLOR_DARKTURQUOISE "|cFF00CED1" #define MSG_COLOR_DARKVIOLET "|cFF9400D3" #define MSG_COLOR_DEEPPINK "|cFFFF1493" #define MSG_COLOR_DEEPSKYBLUE "|cFF00BFFF" #define MSG_COLOR_DIMGRAY "|cFF696969" #define MSG_COLOR_DODGERBLUE "|cFF1E90FF" #define MSG_COLOR_FIREBRICK "|cFFB22222" #define MSG_COLOR_FLORALWHITE "|cFFFFFAF0" #define MSG_COLOR_FORESTGREEN "|cFF228B22" #define MSG_COLOR_FUCHSIA "|cFFFF00FF" #define MSG_COLOR_GAINSBORO "|cFFDCDCDC" #define MSG_COLOR_GHOSTWHITE "|cFFF8F8FF" #define MSG_COLOR_GOLD "|cFFFFD700" #define MSG_COLOR_GOLDENROD "|cFFDAA520" #define MSG_COLOR_GRAY "|cFF808080" #define MSG_COLOR_GREEN "|cFF008000" #define MSG_COLOR_GREENYELLOW "|cFFADFF2F" #define MSG_COLOR_HONEYDEW "|cFFF0FFF0" #define MSG_COLOR_HOTPINK "|cFFFF69B4" #define MSG_COLOR_INDIANRED "|cFFCD5C5C" #define MSG_COLOR_INDIGO "|cFF4B0082" #define MSG_COLOR_IVORY "|cFFFFFFF0" #define MSG_COLOR_KHAKI "|cFFF0E68C" #define MSG_COLOR_LAVENDER "|cFFE6E6FA" #define MSG_COLOR_LAVENDERBLUSH "|cFFFFF0F5" #define MSG_COLOR_LAWNGREEN "|cFF7CFC00" #define MSG_COLOR_LEMONCHIFFON "|cFFFFFACD" #define MSG_COLOR_LIGHTBLUE "|cFFADD8E6" #define MSG_COLOR_LIGHTCORAL "|cFFF08080" #define MSG_COLOR_LIGHTCYAN "|cFFE0FFFF" #define MSG_COLOR_LIGHTGRAY "|cFFD3D3D3" #define MSG_COLOR_LIGHTGREEN "|cFF90EE90" #define MSG_COLOR_LIGHTPINK "|cFFFFB6C1" #define MSG_COLOR_LIGHTRED "|cFFFF6060" #define MSG_COLOR_LIGHTSALMON "|cFFFFA07A" #define MSG_COLOR_LIGHTSEAGREEN "|cFF20B2AA" #define MSG_COLOR_LIGHTSKYBLUE "|cFF87CEFA" #define MSG_COLOR_LIGHTSLATEGRAY "|cFF778899" #define MSG_COLOR_LIGHTSTEELBLUE "|cFFB0C4DE" #define MSG_COLOR_LIGHTYELLOW "|cFFFFFFE0" #define MSG_COLOR_LIME "|cFF00FF00" #define MSG_COLOR_LIMEGREEN "|cFF32CD32" #define MSG_COLOR_LINEN "|cFFFAF0E6" #define MSG_COLOR_MAGENTA "|cFFFF00FF" #define MSG_COLOR_MAROON "|cFF800000" #define MSG_COLOR_MEDIUMAQUAMARINE "|cFF66CDAA" #define MSG_COLOR_MEDIUMBLUE "|cFF0000CD" #define MSG_COLOR_MEDIUMORCHID "|cFFBA55D3" #define MSG_COLOR_MEDIUMPURPLE "|cFF9370DB" #define MSG_COLOR_MEDIUMSEAGREEN "|cFF3CB371" #define MSG_COLOR_MEDIUMSLATEBLUE "|cFF7B68EE" #define MSG_COLOR_MEDIUMSPRINGGREEN "|cFF00FA9A" #define MSG_COLOR_MEDIUMTURQUOISE "|cFF48D1CC" #define MSG_COLOR_MEDIUMVIOLETRED "|cFFC71585" #define MSG_COLOR_MIDNIGHTBLUE "|cFF191970" #define MSG_COLOR_MINTCREAM "|cFFF5FFFA" #define MSG_COLOR_MISTYROSE "|cFFFFE4E1" #define MSG_COLOR_MOCCASIN "|cFFFFE4B5" #define MSG_COLOR_NAVAJOWHITE "|cFFFFDEAD" #define MSG_COLOR_NAVY "|cFF000080" #define MSG_COLOR_OLDLACE "|cFFFDF5E6" #define MSG_COLOR_OLIVE "|cFF808000" #define MSG_COLOR_OLIVEDRAB "|cFF6B8E23" #define MSG_COLOR_ORANGE "|cFFFFA500" #define MSG_COLOR_ORANGERED "|cFFFF4500" #define MSG_COLOR_ORCHID "|cFFDA70D6" #define MSG_COLOR_PALEGOLDENROD "|cFFEEE8AA" #define MSG_COLOR_PALEGREEN "|cFF98FB98" #define MSG_COLOR_PALETURQUOISE "|cFFAFEEEE" #define MSG_COLOR_PALEVIOLETRED "|cFFDB7093" #define MSG_COLOR_PAPAYAWHIP "|cFFFFEFD5" #define MSG_COLOR_PEACHPUFF "|cFFFFDAB9" #define MSG_COLOR_PERU "|cFFCD853F" #define MSG_COLOR_PINK "|cFFFFC0CB" #define MSG_COLOR_PLUM "|cFFDDA0DD" #define MSG_COLOR_POWDERBLUE "|cFFB0E0E6" #define MSG_COLOR_PURPLE "|cFF800080" #define MSG_COLOR_RED "|cFFFF0000" #define MSG_COLOR_ROSYBROWN "|cFFBC8F8F" #define MSG_COLOR_ROYALBLUE "|cFF4169E1" #define MSG_COLOR_SADDLEBROWN "|cFF8B4513" #define MSG_COLOR_SALMON "|cFFFA8072" #define MSG_COLOR_SANDYBROWN "|cFFF4A460" #define MSG_COLOR_SEAGREEN "|cFF2E8B57" #define MSG_COLOR_SEASHELL "|cFFFFF5EE" #define MSG_COLOR_SIENNA "|cFFA0522D" #define MSG_COLOR_SILVER "|cFFC0C0C0" #define MSG_COLOR_SKYBLUE "|cFF87CEEB" #define MSG_COLOR_SLATEBLUE "|cFF6A5ACD" #define MSG_COLOR_SLATEGRAY "|cFF708090" #define MSG_COLOR_SNOW "|cFFFFFAFA" #define MSG_COLOR_SPRINGGREEN "|cFF00FF7F" #define MSG_COLOR_STEELBLUE "|cFF4682B4" #define MSG_COLOR_TAN "|cFFD2B48C" #define MSG_COLOR_TEAL "|cFF008080" #define MSG_COLOR_THISTLE "|cFFD8BFD8" #define MSG_COLOR_TOMATO "|cFFFF6347" #define MSG_COLOR_TRANSPARENT "|c00FFFFFF" #define MSG_COLOR_TURQUOISE "|cFF40E0D0" #define MSG_COLOR_VIOLET "|cFFEE82EE" #define MSG_COLOR_WHEAT "|cFFF5DEB3" #define MSG_COLOR_WHITE "|cFFFFFFFF" #define MSG_COLOR_WHITESMOKE "|cFFF5F5F5" #define MSG_COLOR_YELLOW "|cFFFFFF00" #define MSG_COLOR_YELLOWGREEN "|cFF9ACD32"Have fun ! Don't hesitate to show your tips ! It could be fun !
  10. 1 point
    What has changed? In the last week of downporting (retroporting) i've learned to use TXID and 010 Editor! Tell me already what i need! Okay okay.. chill. We need: CASCExplorer -> CASCExplorer (getting your m2,blp,skin.. files) WDBX Editor -> WDBX Editor (editing your .dbc files to get your retroport working) MPQEditor -> MPQEditor (creating custom patches) Multi Converter -> Multi Converter (make your .m2 files work) 335 Server -> Server (i use this one) WOTLK Client -> just google it (preferably a FRESH client with NO other custom patches) TXID -> TXID (Fix our .m2 files) <- new 010 Editor -> 010 Editor (Search in our .m2 file for possibly more .blp files it may need) <- new Make your retroport folder nice and clean! The beginning.. finally Open CASCExplorer and click on File -> Open Online Storage -> WoW Retail -> Select the only Build there is and wait. Now we need to decide on what we want to retroport, I think that i'm going to Retroport the Vicious War Spider. On the Quick Facts tab, it shows us it's Icon Name, but we just copy the part after inv_. In CASCExplorer we head to Creatures and look for viciousalliancespider We extract every file there. Now in our Export folder we open TXID and put viciousalliancespider.m2 about 15 times in there, then click FIX We then open viciousalliancespider.m2 with 010 Editor. press CTRL + F and change the search type to text(t) There you can scroll through the results, we then look for every .blp in there, but since this .m2 file is weird, it shows 20+ occurences of .blp, but we don't need those since they don't have a path. (You can also double-check on wow.tools, just search up viciousalliancespider and click on the "I".) We actually have every file we need, so we open Multi Converter 3.3.0 and put every file in there, don't worry if only one file shows up in there, that's completely normal. Click on Fix again. We can close Multi Converter and TXID (if you didn't already) and open WDBX Editor. Select CreatureModelData.dbc and CreatureDisplayInfo.dbc from your Server's dbc files. Mine are located in \server\data\dbc. We open both with WDBX Editor and Select WOTLK from "Load Definition" We start in CreatureDisplayInfo.dbc by making a new Line, Right-Click -> Insert Line. Your ID and ModelID have to be unique. Mine are as follows: ID= 32764; ModelID= 10005. We then only change CreatureModelScale = 1 (how big your Creature will be) ; CreatureModelAlpha= 255 (1 = almost invisible; 255= no transparency). Now we change our TextureVariation_1 to viciousalliancespider. Now we can save CreatureDisplayInfo.dbc and make sure it's saved in your server. Open CreatureModelData.dbc now and go to ID 30 (it's Creature\MineSpider). Right-Click -> Copy Line, then Right-Click -> Insert Line -> Right-Click -> Paste Line. It should look like this now. don't worry, i changed my ID to 10006 because ID 10005 was already in use, but somehow i deleted the Line. you can still use 10005. We then only change "ModelName" to our path, our path is Creature\viciousalliancespider\viciousalliancespider.mdx . .mdx because else wow can't regognize your Creature. We're done now with server sided. Now we do client sided, which means we need to make a patch. Open MPQEditor and create a new MPQ, name it patch-4.mpq. In your MPQ, we need to make 2 folders. Right-Click on the first file and make a new folder called "DBFilesClient", now do the same thing again but make sure they are separated, the other folder is calles "Creature". in Creature we can drag and drop our viciousalliancespider folder in there. We now head to DBFilesClient and drag-and-drop our CreatureModelData.dbc and CreatureDisplayInfo.dbc in there. Now we are done with everything, just start your server again and morph into 32764. ALWAYS DELETE YOUR CACHE If it has cube texture = wow can't find the path you used (typically a typing error; capital letters; no .mdx at the end; no backslash used) If it has green texture = wow can't find the correct texture (used wrong .blp in CreatureDisplayInfo.dbc like using viciousalliancespider_armor instead of viciousalliancespider) If it is invisible = have you ran it through both converters? did you accidentally changed CreatureModelAlpha to 0? If it crashes = is your ID in CreatureDisplayInfo.dbc populated? Did you make sure your creature uses the same ModelID?
  11. 1 point
    Well, let's see the simplest way to put custom sounds for your server, or lua scripts. (could also teach how to do that :)) What do we need? -Patience -WDBX Editor -A local server to test that everything works fine. LET'S START ------------------------------------------------------------------------------------------------- 1. Organize your workplace You may think it's stupid, but it's really useful to know where the tools will be where you'll be working. 2. We will start by making a folder that will be our patch, it can have any name but it IS IMPORTANT that it ends with .MPQ, something like this. 3. Now we are going to work on the parts of our patch. a) our patch will consist of two folders. b) It is important that within the Sound folder, you make another folder, it can have any name, it is only to keep an order since that is what the DBC directory requests. c) We are going to prepare the DBFilesClient folder, for this, we have to move the DBC file whose name is SoundEntries.dbc 4. Now let's get the sounds as such. a) I recommend for creatures/mounts, to use the wowhead sounds. But if this is not what you want, you can download any .mp4 sound and convert it to .ogg in any online converter. b) b) When you have the sound, it will move it to the subfolder inside the Sound folder that is in our patches folder. 5. Start work with the .DBC file a) We open the .DBC with any DBC editor, personally I recommend WDBX Editor. ab) In column 1, the ID will go. ac) in column 3, the name will go, it can be anything. ad) in column 4 the name of the file will go, it is important that you put the type of file at the end. Like this: ae) in column 24 we will put the path of our sound, so that it looks something like this: af) We save the .dbc files 6. To finalize and test our sounds in the game a) We move our patch .dbc file to our local server folder, and reboot. 7. Let's try it! you can use the .play (id) command to play the sound on the server. if all went well, it should be heard. if it says that the sound does not exist make sure you have moved the .dbc file to your local server files. 8. Now that we hear our sound on the server, we can start working on our creature. If your sound did not play, you need to review the steps above. a) To start working on the .dbc files, we need to move three new files to our patch: CreatureModelData.dbc, CreatureDisplayInfo.dbc, CreatureSoundData.dbc, these three files will go in the DBFilesClient folder. b) Let's start working with CreatureSoundData.dbc ba) We will duplicate the last row, and to start modifying we have to know the meaning of each column. bb) To know what each column means, we can use the WDBX editor, I will also give some instructions so that you know what we are talking about. bb1) Column 1: ID bb2) Column 4: Here you will put the ID of the sound you want to play when the creature suffers an injury. bb3) Column 8: Here you will put the ID of the sound you want to play when the creature is standing still, like the roar of the spectral tiger. bb4) Column 10: Here you will put the ID of the sound you want to play when you start a fight with the pet (when calling its aggro) bb5) Column 12: Here you will put the ID of the sound you want to play when the creature plans. bb6) Column 14-18: Here you will put the ID of the sound you want to play when the creature stirs. bb7) Column 19-22: The sound you want to play when the creature hits will go here. Strongly recommending that you use the WDBX Editor if you have any questions on the tables. bc) When you made the changes you think necessary to the CreatureSoundData.dbc file you will save it and close it. 9) Now we will make some changes to CreatureDisplayInfo.dbc, and CreatureModelData.dbc 9a) We will start by checking a column of CreatureDisplayInfo.dbc 9a1) We will check that in column 12, there is the number 0, this is so that it takes the sound directly from CreatureModelData. 9b) We will now make a change to the CreatureModelData.dbc 9b1) In column 13, we'll put the CreatureSoundData id and then save the file. 10) Now, we transform into our creature, and listen to the new sounds!:) If you need extra help, you can message me on discord. Fruitdealer#3760 Thanks to Tyrallis
  12. 1 point
    Howdy matteys ! I'll explain to you how to do this simple thing in 3.3.5 ! Summary Required Tools Seek and convert DBC Editing Database Editing Let's get it on ! Required tools Obviously, we need CASC Explorer, we'll certainly find what we want, some good creatures from more recent versions than WoTLK, some fresh meat... We'll need a converter for ours M2 too, otherwise, it won't work. You can find Casc Explorer here -> I'm a link mattey ! And the converter here (particles are supported) -> Right here ! MyDBCEditor Now, we are equiped so... Allons-y ! WHERE ARE YOUUUUU First, we have to take a model, it's the most important part of this tutorial ! I took Murloc2 (path : Creature/Murloc2) When you have decided which model you want, download his entire folder, .m2, .skin, .anim, .blp... here we are : Now I have my model, I need to convert it, just select the .m2 and drag & drop it on our converter, when it'll be over we'll have : Remove your old m2 and your old .skin, rename your files like this : mymodel.m2_lk -> mymodel.m2 mymodel.skin_lk -> mymodel.skin Conversion is complete ! Put your new models into your MPQ patch, we don't have to touch them anymore. Hello from the serversiiiide Before you have to open WoW Model Viewer to see what texture you can apply to your model, open WMV and select your new model, here we are : The interesting part here, is where murloc2_green is written, it's our texture name to have a beautiful green murloc ! But, Murlocs can be blue, white, purple... take a look ! Incredible ! Amazing ! Awesome ! So, in a first place, I just want a green murloc, so, it's open to add him into my DBCs. The first DBC you'll need to open is CreatureDisplayInfo with MyDBCEditor Scroll to the last line, right click and select "Insert line...", your ID MUST be unique ! I'll choose 31. Warning ! For each texture to use, you'll need to create a new line Quick explanation : First column : unique ID Second column : Model ID that is registered in CreatureModelData.dbc (31 = the old murloc model, I changed the path to replace easily old murlocs with my new fresh HD models) Third column : Dunno, let zero. Fourth column : ExtraDisplay : CreatureDisplayInfoExtra.dbc, it doesn't matters here. Fifth column : Let 1. Sixth colum : Creature opacity. 255 means your npc is opaque, 0 means... yes it's transparent. Seventh and Eighth column : "Extra texture", when you npc isn't a character but a creature, these colums set their skin -> fill the first column with the texture name you want (murloc2_green) The next columm : Contains an ID or 0, the ID corresponds to sound ID in NPCSounds.dbc. Last column : Let zero. Here's the look of my NPC column : I won't explain how to edit CreatureModelData, it's pretty easy, copy/paste an other line, change the model's path and here you go. Upload your two DBCs (CreatureDisplayInfo and CreatureModelData) to your server, and put them into your MPQ patch too. We don't have to touch it anymore, let's go in Database ! Creature_model_info Yes, I copied this part from an other tutorial, booo Serverside part ! In your world Database, find this table and open it ! Quick explanation... Oh no, copy/paste the content of an other line. EXCEPT ONE THING ! Your ID must be the same as the one in CreatureDisplayInfo, in my case : 31. This digit is the DisplayID that you MUST use for your creature. Once your line is written and your NPC created... In the end... I hope this tutorial is easy and complete, if you think some elements are missing, don't hesitate, comment and I'll try to complete !
  13. 1 point
    Introduction Originating from Heroes of the Storm (CASC '1.0'), the Content Addressable Storage Container is a new file system for WoW, introduced in Warlords of Draenor as a replacement for MPQ archives (CASC '2.0'). As such, it needs to be worked with in order to use custom game files in WoD, Legion, and BfA. CASCHost is a tool for just that. Tools and resources CASCHost itself Patched WoW.exe If you are running your server and client on the same machine, you can download a suitable WoW.exe here. Alternatively, keep reading for an instruction on how to patch the exe yourself. This will require 010 Editor and the TrinityCore Connection Patcher. As of TC Master 8.0.1, the TC patcher is no longer operational. Chances are, you will be using the Arctium Launcher instead. If you follow my instructions on patching WoW.exe, the Launcher will not work, as it also overwrites the versions url. Read on for an instruction on how to patch the Launcher instead! (the exe should be left unedited). .build.info This file might be in your WoW folder - if it is, use that file for CASCHost as will be described below, and temporarily remove it from your client. While this file is in the same folder as WoW.exe, the latter will ignore your custom CASC and only download files from Blizzard servers. Alternatively, you can always get one here. Make sure to choose the correct version. The Technique Installation Download CASCHost from the link above (either the pre-built version, or clone it from GitHub and build yourself). If you build the program yourself, you will need to manually create some of the folders I talk about below. Place your .build.info in CASCHost folder/wwwroot/SystemFiles/. Place your custom files in CASCHost folder/wwwroot/Data/ with the correct structure (e.g. wwwroot/Data/Character/Human/...). Open the file CASCHost folder/appsettings.json to edit: RebuildPassword - use this field if you would like CASCHost to require a password when issuing rebuild commands from a browser. HostDomain - your server domain in the form domain:port. IP addresses are not supported, apparently. Leave as "localhost:5100" to use the pre-patched WoW.exe. SqlConnection - the IP address of your SQL server, the username and password (typically, trinity/trinity), and the name for the database CASCHost should use. Sometimes you might need to create the database yourself instead of letting CASCHost do it. Locale - the localisation of your server and client(s), e.g. enUS, deDE, enGB, ruRU, etc. (Optional) To publicly host your custom files for other players to download, open the file CASCHost folder/hosting.json, and add your domain:port to the urls list. Patching WoW.exe Patching Arctium WoW Launcher.exe You can now run Start.bat from your CASCHost folder and, once that loads, start WoW.exe/Arctium Launcher. The client should begin downloading the files you placed in CASCHost folder/wwwroot/Data/ (don't worry, it will download whatever it needs from Blizzard servers as well, but your files have priority). Managing CASCHost While CASCHost is running, you may add/edit/remove files in the Data folder. In order for the changes to take effect, you must open your browser and go to http://yourdomain:port/rebuild In the default case, it will be http://localhost:5100/rebuild If you have set up a rebuild password in CASCHost settings, you will need to go to http://yourdomain:port/rebuild_yourpassword To stop CASCHost, press Ctrl+C in the window, and choose Y. Troubleshooting For all of your CASCHost troubles (a file not appearing/updating/being removed, etc.), there is a simple algorithm: try the first step, move to 2 if it doesn't help. It might sometimes be helpful to clear the client cache between steps. Rebuild. Stop CASCHost and run it again. Stop CASCHost, delete the Output folder (in wwwroot/), and run it again. This might take some time if there are a lot of files. Stop CASCHost, delete the Output folder, open the CASCHost database with your SQL editor of choice and delete the root_entries table (Warning: this will lead to all of your custom FileDataIDs being jumbled up!), run it again. Complain on Discord. Create an issue on GitHub. Conclusion I am hoping this guide will answer most questions and resolve most problems people have when introducing themselves to CASCHost. As a semi-experienced user myself, I might have made some mistakes while writing it, and so will welcome any constructive criticism. Regardless, I would like to credit and thank the developers of CASCHost: @barncastle, Maku, @luzifix, and tspearman for, well, developing it, and writing an informative readme.
  14. 1 point
  15. 1 point
    Graphics / Models Models: M2 wiki link Image showing different use of M2 models M2 files contain model objects. Each M2 file describes the vertices, faces, materials, texture names, animations, and properties of one model. Models are used for doodads (decoration objects), players, monsters, and really everything in the game except for Terrain and WMOs. M2 file mostly contains technical information about the model, animations, textures, bones, particles, rendering info, lights, cameras, etc. Each new expansion is always accompanied by changes in the file format from Blizzard. Modders cannot use new models from new expansions due to these changes. That's why we need to use converters (e.g., Adspartan's Multiconverter), file exporters (convert m2s to obj/fbx), 3D software add-ons (e.g., Blender WoW Studio), etc. Due to the lack of full-fledged programs and tools, people who just started modding had to make all changes to models and data manually with the 010 Editor. Despite this, in the current circumstances, there is always room for manual research or editing models. Due to changes in the format, the tools lose their relevance. Community developers have to work together to implement updates for the tools that allow the community to work with the newest models and data. But this is not always possible. Geosets (geometry sets) Geoset is an individual object that makes up complex models. Let's analyze how geosets work on the model of humanmale.m2 In the image above, you can see different options for the appearance of gloves, boots, hairstyles, and various other model parts. Each part is a separate object. Each one of them has it's own material (one per geoset, it's strictly limited). Geosets determine the appearance and form factor of objects, external character traits (hairstyle, beard, jewelry), and the way how they are displayed. Textures For each material, there is only one texture. That's a strict limitation too. You can define textures in a two ways: directly for geoset or through the DBCs. Unlike WMO, for M2s, there is a possibility of using animated textures. Textures can be animated in different ways, such as transformations (X and Y coordinates) and texture animation itself (per frame animation). We will cover these topics more in-depth in the next lessons about M2. Bones (rig) Like any animated game model, the character is very complex and filled with various technical objects. To make a model move, it needs a skeleton. The skeleton consists of bones, each of which gives a motion for a specific part of the model. Bones can create various dependencies and hierarchies to create the correct structure and movement of the model. Bones (highlighted) are used to animate the mesh. Attachments Attachments (outlined black spheres; see previous images above) are used to attach other objects to mesh. E.g., weapons, shields, shoulders, helmets, etc. There are lots of different places where attachments are used, such as mounts, particle impacts, footprints, and other (not so obvious!) game mechanics. Animations M2s can contain animations inside the .m2 file. It also can be put inside the separate .anim files, which are used to hold all the additional animations (if there is too much to contain inside .m2). Animation refers to the temporal description of an object (i.e., how it moves and deforms over time; popular methods include keyframing and inverse kinematics). These techniques are often used in combination. As with animation, physical simulation also specifies motion. In WoW, there are just usual keyframing without any motion capture or realistic physics simulations. Effects wiki link In WoW modding effects are: Particle Emitters Ribbon Emitters Texture Transformations (texture animation) Particles wiki link A particle system is an engine subsystem that uses a large number of tiny sprites, 3D models, or other graphic objects to simulate certain kinds of "fuzzy" phenomena. All of these are very hard to reproduce with conventional rendering techniques - usually highly chaotic systems, natural phenomena, or processes caused by chemical reactions. Typically a particle system's position and motion in 3D space are controlled by what is referred to as an emitter. An emitter acts as the source of the particles, and its location in 3D space determines where they have generated and their movement direction. A regular 3D mesh object, such as a cube or a plane, can be used as an emitter. An emitter contains a set of particle behavior parameters. These parameters can include the spawning rate (how many particles are generated per unit of time), the particles' initial velocity vector (the direction they are emitted upon creation), particle lifetime (the length of time each particle exists before disappearing), particle color, and much more. Spells Spells are magic incantations or effects conjured up by whatever game mechanism the developers allowed. Spells can do different kinds of damage, or healing. They can also cause beneficial effects (aka buffs) on friendly characters or harmful effects (aka debuffs) on hostile mobs. In WoW modding spells are particle emitters with different settings and parameters, such as ribbons (trails), sounds, etc. M2 Usage M2 models can be used not only for characters but also for static objects (doodads, weapons, objects on the map, etc.). In addition to simple static objects, M2 is used to create skyboxes and scenes. Skyboxes are M2 models that are used for maps to display it as the sky above the character’s head. This is how the skybox model usually looks - 3d sphere with the texture planes inside it Scenes - M2 models used in non-game areas of the game, for example, login screen, character selection and creation screen, etc. Horde character screen M2 scene Models: WMO - World Model Object wiki link What is World Model Object? World Model Object or just a WMO is a special compound 3D structure used in the game World of Warcraft for making buildings, dungeons, and other big complicated 3D objects. It does not only contain traditional 3D model parts as geometry, UV maps, materials and so on; but it does also support features like liquids, complex lighting system, portal culling system and much more. There are two types of WMO files, actually: WMO root file - lists textures (BLP Files), doodads (M2 or MDX Files), etc., and orientation for the WMO groups WMO group file - 3d model data for one unit in the world map object The root file and the groups are stored with the following filenames: World\wmo\path\WMOName.wmo World\wmo\path\WMOName_NNN.wmo There is a hardcoded maximum of 512 group files per root object. WMO groups World of Warcraft WMO supports two group types - indoor and outdoor. Outdoor is used for exterior objects and is influenced by the zone lighting. Indoor is used for interior models, interior parts of models. It is not getting influenced by the external light. If you are planning to use indoor groups in your scene, you will have to create portals for them. Each WMO group has various settings: Name - Object's name is saved into the files and is only used for development purposes, for example, when you inspect your model using a 010 editor. Please do not name as "Antiportal", an internally reserved name that actually makes sense for the game. Description - group description, which is also used only for development purposes. Name it whatever you want or leave blank. Place Type - select type for your group: indoor or outdoor. Flags - enable/disable different flags for your model. DBC GroupID - connected with AreaID for WMO. Used to detect indoor groups, for example, so the server can dismount you when you enter them. LiquidType - fills this WMO group with selected liquid. Materials Materials are an enhancement of texture mapping (and a pre-requisite for advanced shading effects) that allows for objects in 3D modeling packages and video games to simulate different types of materials in real life. They are typically used to enhance the realism of polygon meshes and other forms of 3D model data. They associate additional properties such as advanced rendering parameters (e.g., specularity) or sound triggers alongside texture information for surfaces. For example, if a texture makes an object look like wood, it will sound like wood (if something hits it or is scraped along a surface), break like wood, and even float like wood. If it was made of metal, it will sound like metal, dent like metal, and sink like metal. A materials system allows a digital artist or game designer to think about objects in a different way. Instead of the object just being a model with a texture applied to it, the object, or part of the object, is made up of material. Examples of major materials might be wood, concrete (or stone), metal, glass, dirt, water, and cloth (such as carpeting, curtains, or clothing on a character). Here is the list of WoW material parameters: Shader used for producing special WoW render effects Terrain Type used for producing footsteps sounds and footprints Blending used to control texture blending on rendering Texture 1 diffuse texture (object) Texture 2 environment texture (blending) Flags used for defining special render options for the texture (see list of Material Flags below) Emissive Color the color of the object when no light falls on it Diffuse Color base color of the object Material Flags Flags are toggleable options of individual material Unlit disable world lighting effect Unfogged disable world fog effect TwoSided render from both sides Exterior light ignore local WMO lighting, use world lighting instead NightGlow used for windows to glow at nighttime Window has no description yet, used for windows Portals A portal is a plane that, in most cases, contains only four vertices and one face. Portals are created as separate objects (you can see them in the outliner if you import some original WMO as I did with the human farm) Portals are polygon planes (usually quads, but they can have more complex shapes) that specify where separation points between groups in a WMO are - these are usually doors or entrances, but can be placed elsewhere. Portals are used for occlusion culling and are a known rendering technique used in many games (see Portal Rendering on Wikipedia and Antiportal on Wikipedia for more information) Portals are used to connect indoor groups to outdoor groups or other indoor groups. If the portal is not set, but the indoor group is used, you will have the indoor group rendered only while standing in it; everything else will look like emptiness. Batch Types. Lightmaps. Blendmaps Demonstration from Blender how batches and maps managing process looks for human farm Batches are groups of faces which are used to accelerate rendering. World of Warcraft WMO supports two batch types - Batch A and Batch B. Batches are usually used only for interior groups. Batch A is influenced by the outdoor (zone) lighting. Batch B is not getting influenced by the external light from outdoor groups. Lightmaps - used to accelerate light rendering. They are normally used in Batches A in order to blend the geometry with world lighting. See the entrance of the human farm in order to see how it works. Blendmaps - used to accelerate texture blending. If your material is using one of the TwoLayer shaders, you enter a second environment texture path, which will blend with the diffuse texture according to lightmap values. Fog You can see how the far objects are getting 'flat-colored' The fog effect mimics the scattering of light in a fog. Objects in the distance become less contrasting and acquire a fog color. In night scenes fog is usually dark, in daytime - whitish or slightly bluish, just like real fog. The fog has some simple options to work with: Ignore Radius (probably) makes fog global Inner Radius a radius of fog starting to fade Farclip anything further away from the eye than the far clipping distance isn't displayed (it's too far away) Nearclip anything closer to the eye than the near clipping distance isn't displayed (it's too close) Color fog color Underwater farclip same as Farclip, but under the water Underwater nearclip same as Nearclip, but under the water Underwater Color fog color under the water Water Water - used to make the liquid in your model. The liquid group has own options: LiquidType - type of liquid in WoW. There are lots of variants to work with: Color - water color WMO Group - parent group for this liquid Flags - with the vertex paint you will be able to set flags to quads that control the rendering of the water. We do not yet know what most of them mean, so if you figure that out, please tell me or Skarn about it Vertex Color You can paint vertex colors on WMO groups. It is used for lighting and coloring particular places of a group. Demonstration of vertex color painting in Blender Doodads Demonstration of doodads placement in Blender with WoW Model Viewer Doodads in WoW are M2 model files. Doodad sets specify several versions of "interior decoration" for a WMO. Like, a small house might have tables and a bed laid out neatly in one set, and have a horrible mess of abandoned broken things in another set called "Set_Abandoned01". DoodadSet DoodadSets are used to group doodads on your scene into sets. The model can have multiple sets that can be chosen in the map editor to be displayed in one particular WMO instance. Normally they are used to create different furniture blocks to add some variations to the appearance of the model. See the human farm once again as an example. Another common usage is to create the normal set of furniture and the broken set of furniture, see Westfall packs of human buildings. DoodadSets are exclusive except for the very first one, "Set_$DefaultGlobal" which is additive and is always displayed. The client determines that set by index, not name though. Up to 8 doodad sets can be enabled at the same time, e.g. via destructible buildings or garrisons. There is always one global doodad set that is displayed along with the selected set. Global doodad set cannot be turned off, however, it may be empty. See the global doodad set in human farm - it contains a few crates, some barrels, and smoke coming from the chimney. Those doodads are displayed on all the sets available. Maps: ADT wiki link ADT files contain terrain and object information for map tiles. They have a chunked structure just like the WDT files. A map tile is split up into 16x16 = 256 map chunks. Map size, blocks, chunks Introduction All maps are divided into 64x64 blocks for a total of 4096 (some of which may be unused). Each block is divided into 16x16 chunks. Map size Each block is 533.33333 yards (1600 feet) in width and height. The map is divided into 64x64 blocks so the total width and height of the map will be 34133.33312 yards, however, the origin of the coordinate system is at the center of the map so the minimum and maximum X and Y coordinates will be ±17066.66656). Since each block has 16x16 chunks, the size of a chunk will be 33.3333 yards (100 feet). Player's speed The basic running speed of a player (without any speed modifying effects) is 7.1111 yards/s (21.3333 feet/s). The player is able to reach one border of an ADT tile from another in 75 seconds. Thus, the fastest mounts (310%) can get over ADT size in 24.2 seconds. ADT files and blocks There is an .adt file for each existing block. If a block is unused it won't have an .adt file. The file will be: World/Maps/<InternalMapName>/<InternalMapName>_<BlockX>_<BlockY>.adt. <InternalMapName> - MapRec::m_Directory <BlockX> - Index of the tile on the X-axis <BlockY> - Index of the tile on the Y-axis Converting ADT co-ords to block X/Y can be done with the following formula (where the axis is x or y): floor((32 - (axis / 533.33333))) An important note about the coordinate system used Wow's main coordinate system is right-handed; understanding it is very important in order to correctly interpret the ADT files. It's important to remember that: The positive X-axis points north, the positive Y-axis points west. The Z-axis is vertical height, with 0 being sea level. The origin of the coordinate system is in the center of the map. The top-left corner of the map has X = 17066, Y = 17066 The bottom-right corner of the map has X = -17066, Y = -17066 The bottom-left corner of the map has X = -17006, Y = 17066 The top-right corner of the map has X = 17006, Y = -17066 Maps: WDT wiki link WDT files specify exactly which map tiles are present in a world, if any, and can also reference a "global" WMO. Maps: WDL wiki link WDL files contain a low-resolution heightmap for a world. This is probably what the WoW client uses to draw the solid-colored mountain ranges in the background ('in front of' the sky, but 'behind' the fog and the rest of the scenery). It can also be conveniently used to construct a minimap - however, since no water level information is present, the best guess is 0 (sea level) - this results in some lower-than-sea-level areas being blue on the WoWmapview minimap. Textures: BLP - Blizzard Picture wiki link BLP files store textures with precalculated mipmaps. Mipmapping Demonstration of mipmaps in BLP Lab In computer graphics, mipmaps (also MIP maps) are pre-calculated, optimized sequences of images, each of which is a progressively lower resolution representation of the same image. The height and width of each image, or level, in the mipmap is a power of two smaller than the previous level. Mipmaps do not have to be square. They are intended to increase rendering speed and reduce aliasing artifacts. A high-resolution mipmap image is used for high-density samples, such as for objects close to the camera. Lower-resolution images are used as the object appears farther away. How it works: Each bitmap image of the mipmap set is a downsized duplicate of the main texture but at a certain reduced level of detail. Although the main texture would still be used when the view is sufficient to render it in full detail, the renderer will switch to a suitable mipmap image when the texture is viewed from a distance or at a small size. Rendering speed increases since the number of texture pixels (texels) being processed per display pixel can be much lower for similar results with the simpler mipmap textures. If using a limited number of texture samples per display pixel (as is the case with bilinear filtering), then artifacts are reduced since the mipmap images are effectively already anti-aliased. Scaling down and up is made more efficient with mipmaps, as well. Image showing how mipmaps reduce aliasing at large distances. Note the moire pattern on the left image Mipmaps are used for: Level of detail (LOD) Improving image quality. Rendering from large textures where only small, discontiguous subsets of texels are used can easily produce moiré patterns Speeding up rendering times, either by reducing the number of texels sampled to render each pixel, or increasing the memory locality of the samples taken Reducing stress on the GPU or CPU BLP files are capable of storing data in a few different formats. The RGB formats are stored using DXT compression (DXT1 for 0-bit alpha and DXT3 for the others), and thus conversion to these formats is somewhat lossy. Here is a list: Palettized, 0-bit alpha - Example: character skins, clothing Palettized, 1-bit alpha - Example: clothing (relatively rare) Palettized, 8-bit alpha - Example: clothing RGB, 0-bit alpha - Example: Sansamroot.blp RGB, 1-bit alpha - Example: Peaceflower.blp RGB, 8-bit alpha - Example: Sungrass.blp Alpha Bit DepthsThis is the amount of detail allowed in the transparency of your image. 0-bit - No transparency at all 1-bit - Simple transparency, similar to GIFs. It's either transparent or not 4-bit - Slightly better range of transparency, but will turn smooth fades into visible "steps" 8-bit - This is the same level of transparency you'll ordinarily see in PNG/TGA formats, with 256 levels of transparency Compression Types Indexed (256 Color) - Very similar to a GIF, as it uses a palette that can fit up to 256 colors, but BLP files have independent transparency. Indexed BLPs can make use of all four types of alpha. DXT - This is the defacto compression type used in modern games, with the most popular format that uses this, being .dds. DXT compression gives you a better color range, with a slightly larger size than indexed. It also supports all four levels of transparency. DXT-5 - Would generally be lumped in with the above category. However, it's the second DXT type that supports 8-bit alpha. The result is a bit better color and slightly larger file size than the 8-bit alpha under the DXT category. Uncompressed - Very much like a Bitmap, but without compression. It can support either 0-bit or 8-bit alpha. Blizzard only uses this version for sky textures, where every bit of color detail is necessary. TODO: Liquids, DBC
  16. 1 point
    CUSTOM MAP TUTORIAL Create a project folder where you store all your custom work, including the folders used in your custom patch-x.mpq (DBFilesClient & Interface etc) Copy your "Data" folder from your wow client folder to your newly created project folder. Copy your "World" folder (custom maps) to your newly created project folder. Make sure that your custom patch-x.mpq is in the "Data" folder you just copied to your project folder. Open Noggit (I use Noggit version 3.2771) and go to your "Settings" Check the first options "Game Path" and "Project Path" and link both these to your project folder Hit "Save" and restart Noggit. Finito! You should now have your custom map visible in your Noggit! SCREENSHOTS (IN DEPTH) 1 I have named my project folder "Work" 2 This is what's inside my work folder. It's optional to use "Data" folder, but it's much more convenient if Noggit uses it's own "Data" folder instead of your wow client folder that you play on. Just make sure that whenever you have made a new patch-x.mpq for your custom map, include it in your work folder as well in "data. 4 Open Noggit and navigate to the settings page 5 "Game Path" and "Project Path" should be directed to (in my case): D:\Work If you choose not to copy your "Data" folder to your project folder, select your wow client folder in "Game Path" ALL DONE! You should now be able to see your custom map in Noggit once you have restarted it.
  17. 1 point
    There are many situations where creating SQL queries for DBCs is to die for, so I finally decided to make it happen. SQL queries for DBCs is very useful for mass operations or combining DBC data. It's also useful for version updates. In this tutorial I will teach you how to convert your DBCs to SQL files, which can then be stored on MySQL servers. I will also show you how to export your DBC tables back to the CSV format so it can then be converted back to DBC. Things You Will Need:DBC Util HeidiSQL Server Step 1: Converting DBC to CSVFirst we must convert our desired DBC file to CSV, as there is no other way to reliably import it to MySQL. Simply drag and drop your DBC file onto the DBC Util tool and it will automatically convert to CSV. Step 2: Setting Up Your DBC Table Before we are able to import a CSV file into MySQL, we must first create a table with proper columns and datatypes. There are two methods to choose from here. We can either enter everything manually, or create an SQL file instead. :-:-:-:-: Method A - Manual Creation:Using HeidiSQL, right click your server at the top left and select Create New -> Database. I named mine "dbc". After that, right click your new database and select Create New -> Table. For example, I created "lightintband". Select your new table and navigate to the "Table: lightintband" tab. This is where we will create our columns. Depending on the DBC you're importing, you must make the correct amount of columns. This must be exactly the same. Then you can start adding columns with the green button. Name them whatever you want, but make sure the datatype is always set to VARCHAR due to the DBC files utilizing lots of hexadecimal values. Do this or it won't work. Make sure that the settings Unsigned, Allow NULL, and Zerofill are all unchecked. Also keep the Defaults at 0. :-:-:-:-: Method B - SQL File Creation:Since above I mentioned our Database name is "dbc" and our example table is called "lightintband" we'll run this: CREATE DATABASE IF NOT EXISTS `dbc` USE `dbc`; CREATE TABLE IF NOT EXISTS `lightintband` ( `Field01` varchar(50) NOT NULL DEFAULT '0', `Field02` varchar(50) NOT NULL DEFAULT '0', `Field03` varchar(50) NOT NULL DEFAULT '0', `Field04` varchar(50) NOT NULL DEFAULT '0', `Field05` varchar(50) NOT NULL DEFAULT '0', `Field06` varchar(50) NOT NULL DEFAULT '0', `Field07` varchar(50) NOT NULL DEFAULT '0', `Field08` varchar(50) NOT NULL DEFAULT '0', `Field09` varchar(50) NOT NULL DEFAULT '0', `Field10` varchar(50) NOT NULL DEFAULT '0', `Field11` varchar(50) NOT NULL DEFAULT '0', `Field12` varchar(50) NOT NULL DEFAULT '0', `Field13` varchar(50) NOT NULL DEFAULT '0', `Field14` varchar(50) NOT NULL DEFAULT '0', `Field15` varchar(50) NOT NULL DEFAULT '0', `Field16` varchar(50) NOT NULL DEFAULT '0', `Field17` varchar(50) NOT NULL DEFAULT '0', `Field18` varchar(50) NOT NULL DEFAULT '0', `Field19` varchar(50) NOT NULL DEFAULT '0', `Field20` varchar(50) NOT NULL DEFAULT '0', `Field21` varchar(50) NOT NULL DEFAULT '0', `Field22` varchar(50) NOT NULL DEFAULT '0', `Field23` varchar(50) NOT NULL DEFAULT '0', `Field24` varchar(50) NOT NULL DEFAULT '0', `Field25` varchar(50) NOT NULL DEFAULT '0', `Field26` varchar(50) NOT NULL DEFAULT '0', `Field27` varchar(50) NOT NULL DEFAULT '0', `Field28` varchar(50) NOT NULL DEFAULT '0', `Field29` varchar(50) NOT NULL DEFAULT '0', `Field30` varchar(50) NOT NULL DEFAULT '0', `Field31` varchar(50) NOT NULL DEFAULT '0', `Field32` varchar(50) NOT NULL DEFAULT '0', `Field33` varchar(50) NOT NULL DEFAULT '0', `Field34` varchar(50) NOT NULL DEFAULT '0', PRIMARY KEY (`Field01`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8Please note that I have 34 columns entered. That's because LightIntBand.dbc has 34 columns, at least on Cataclysm. Your situation may vary depending on which version you're on and which DBC files you're using. Adjust accordingly. Step 3: Importing CSV into MySQL:Select your database table which should now be populated with columns, and select Tools -> Import CSV file... Browse to the CSV file that you converted with DBC Util earlier. Select INSERT under "Handling of duplicate rows". Press "Import!" You should now have a complete table for your DBC without error. Create queries and edit this however you see fit. Step 4: Exporting Back to CSV Format:With MySQL all you have to do is create a new query to export your database to CSV. This is what I prefer using: SELECT * FROM lightintband INTO OUTFILE 'C:\\LightIntBand.dbc.csv' FIELDS TERMINATED BY ',' Step 5: Converting Back to DBC Format:Now you should be ready to convert CSV back to DBC, but there's one more thing you must do. I'm not sure what to call it, but there is important information at the top of the original CSV file that is lost when added to MySQL. Before you overwrite the original CSV file, open it up in a text editor and copy the first line. In my case it's: long,long,flags,long,long,long,flags,long,long,flags,flags,long,long,flags,flags, flags,long,long,long,long,long,long,long,long,long,long,long,long,long,long,flags, long,flags,flags, Make sure you copy this from the original CSV file and paste it into the new one exported from your MySQL. Then you should finally be ready to switch back to DBC. Just drag and drop the new CSV file onto DBC Util Note About Converting DB2 to SQL for Cata and Up:If you're looking to do these same methods for DB2 editing, you'll have to use two special programs for conversion. The DB2 to SQL was a little outdated (item-sparse.db2 conversion didn't work) so I made an adjustment and attached the updated version to this thread. For SQL to DB2, I've uploaded another program. Just remember that you can only edit Item.db2 and Item-sparse.db2. Others are not currently supported. DBC2ConverSQL.zip SQLtoDB2.zip
  18. 1 point
    Finally found it so will share , first of all it is not my work just found it on github. Here is the link to Discord Bot Files : https://github.com/fjaros/wowchat WoWChat is a Discord integration chat bot for old versions of World of Warcraft. Currently supported versions are: Vanilla The Burning Crusade Wrath of the Lich King Cataclysm (4.3.4 build 15595) Mists of Pandaria (5.4.8 build 18414) Features: Clientless (Does not need the WoW Client to be open to run) Seamless Chat integration of channels between WoW and Discord Guild chat, Officer chat, Local chat, Emotes, Custom Channels. In-game links (items, spells, ...) are displayed as links to classicdb or twinstar, depending on the expansion Configurable message format Smart Tagging Tag players on Discord from WoW using @and_part_or_all_of_their_name. You can also tag @here and @everyone and "@Even Roles With Spaces" (include quotes around them). Custom commands Check who is online in your guild Query other players in the world Runs as a Java program, and therefore works on Windows, Mac, and Linux.
  19. 1 point
    Testing your work without MPQs This tutorial explains how to test your edits without repacking the MPQ every time you change something. At the end of the tutorial your WoW client will be reading directly from its folder to save your time. Installation: Download the patched Wow.exe and replace the original one with it. Recommended to make a backup of an original one Create a folder named Patch-X.MPQ (any letter or number instead of X) and put your edited files in there. WoW client reads patches in alphabetical order. First is reading of numeric patches (from 1 to 9), then reading of letter patches (from A to Z) Since in 3.3.5a there are already patches from 1 to 3 you can name your patch as patch-4.mpq or patch-5.mpq etc. The count of available patch names is limited by unused numbers and letters Now your client can read directly from that folder, so you don’t have to create patches. Though, there are ways to make your work more convinient in Noggit too. Find a string called Project Path and fill its value with a path to your patch-folder. An example: C:/Work/World of Warcraft/patch-4.mpq Once done your Noggit will save files directly to this folder. You can run both Noggit and game client at the same time. In order to see the changes you saved, you will need to reload the map in game. You need to teleport to a different zone and back. Type these commands in your chat window (you can also create a macro for that): .tele gmisland (teleports you to GM Island zone) .recall (teleports you back to your initial teleport location) Make sure not to save anything in Noggit while the client is loading a map and vice versa. It can be dangerous for your files Advanced. Patching your own .exe and understanding how it works You may want to do a similar hack to your own WoW.exe because it can be modified with something else. Here we will explain the way to do it. Credits for the .exe patch go to schlumpf and Mjollna. Start Sweetscape 010 Editor and open your WoW.exe in it Edit > Search Turn on Use wildcards, set the seach type to Hex bytes and search the following pattern: E8 ?? ?? ?? ?? 6A 00 E8 ?? ?? ?? ?? 6A 02 Replace the beginning of the pattern with (for any version of WoW): 90 90 90 90 90 6A FF or the entire string for WoW 3.3.5a with: 90 90 90 90 90 6A FF E8 2A EC 01 00 6A 02
  20. 1 point
    first I'm against private servers I only use model for personal and storytelling like machinima like Ventas in youtube How to fix: Open the .anim file that have the problem in 010Editor Delete this header For sitting you need to delete the new header: 41 46 4D 32 D0 3F 00 00 00 00 00 00 00 00 00 00
  21. 1 point
    A little tutorial from me, about Legion M2. At the build 20810 or higher, M2 change. You just need to remove in hexa with 010 Editor this : After that, you've this : Change M2 version (12 to 10) And you get a working model for WoD.
  22. 1 point
    Here is an example of the spell glitch How to fix it: Open the .m2 in 010Editor and load the .m2 template Change IT_Linear (1) to IT_Bezier (3) Save your model and check it in game
  23. 1 point
    Welcome to the beginner’s World of Warcraft modding tutorial Creating mods for World of Warcraft is a skill that is easy to learn, yet hard to master. Our community is dedicated to bringing you a variety of tutorials that can help you on your way so that you will avoid most beginner’s mistakes and save your precious time. We will give you all of the necessary information required for obtaining a basic understanding of the World of Warcraft modding. We want to inform you that most of the tools which are currently used for creating World of Warcraft mods are made and work only for Wrath of The Lich King (3.3.5a) game client. There are a lot of ways to mod other (prior and later) WoW expansions using these tools, but we strongly recommend you to learn the basics of WoW modding on a 3.3.5a game client. When you are done with that, you can start modding any game version. World of Warcraft modding is a vast field for applying some of your creative skills and knowledge. In a nutshell, it mostly includes design-related work, programming, and some basic data operations. You need to decide what you want to do, while we aim to provide you with the knowledge of most aspects of different branches of modding. If you want to do clientside changes which include level design (mapping), 3d modeling (also known as model changing), interface modding and some other things, you need to take some of your time and read some of the following tutorials in order to get the basic idea of how the client patching system work. Those will also help you to get all the required software installed and configured correctly. Tutorial navigation menu Part 1. Overview. Setting up tools WoW modding overview. File types done Detailed description of WoW file types done Installing the development environment (will be done by @Balkron ) Installing local Trinity Core server (will be done by @Balkron ) Part 2. Noggit basics Map Editing in Noggit (will be rewritten by @Skarn ) Alphamapping Basics (will be rewritten by @Skarn ) Ground Effects, Music and Area ID (will be rewritten by @Skarn ) Creating your blank custom map (will be rewritten by @Skarn ) Part 3. Modeling basics WoW model file types (will be done by @Balkron ) Blender workflow basics (will be done by @Balkron ) WoW Blender Studio addon basics (will be done by @Balkron ) Converting your first static .m2 model into WoW (will be done by @Balkron ) Converting your first .wmo model into WoW (will be done by @Balkron ) Part 4. Testing Creating Your First MPQ Patch done Testing Your Work Without MPQs done
  24. 1 point
    Open .m2 file in 010Editor Fill value of uint32 PlaybackSpeed equal 150 in .m2 template Enjoy! Here is some fixed models
  25. 1 point
    Learning the basics of map editing in Noggit THIS TUTORIAL IS UNDER CONSTRUCTION This tutorial explains how to use most basic Noggit’s features required for worldbuilding. First of all, you need to download Noggit itself: We also prepared special map for you to practice on. Launch Noggit and open the ExteriorTest map in the Continents tab. Click on one of these squares to open the map. Orange squares represent .adt files located in your project folder, gray ones are ADTs stored in client .mpq archives and the green ones are .adts that have a corresponding .wdl file the purpose of which will be explained in further parts of the tutorial This map created special for practicing in ground modeling, texturing, model spawning, water editing and other things. If everything is okay, now you should have your map loaded and be able to start practicing. As you can see, there are different pre-textured areas for you, so you can raise them and practice your shaping (also known as terraforming) skills. You can also find some examples of mountain and texturing styles there. But before you start, let us explain how to use the different tools and modes available in Noggit. Introduction to Noggit’s graphic user interface On the left side of your screen there is tool bar with 9 icons which represent all the existing world editing modes. Here are the explanations of each one from top to bottom of the toolbar: * Raise/Lower - modifies the height of the ground Flatten/Blur - flattens or blurs the ground 3D Paint - allows you to paint textures Holes - adds or removes the holes from the ground which are necessary for caves, cellars and etc AreaID Paint - sets the area ID to the selected chunk which effects the name showed up on your screen while entering the zone Impassible Flag - marks the chunk as impassible for a player to pass, so basically - an invisible wall Water edit - allows you to perform various operations with water, such as adding it chunk by chunk, changing its height and many more Shader editor - currently unused button of a planned feature which can also be useful for us in some cases Object editor - allows you to work with the objects on your map, such as WMOs and M2s Underneath the toolbar you can see a currently selected texture for texture painter or texture swapper. The top menu contains a lot of tabs with additional functions which are responsible for rendering and editing options (“View” and “Edit”) and some additional functions (“Assist ”). There is also a “Help” tab that contains a small hotkey information note. There is also a status bar in the bottom of the working space that shows you some information about your current position on the map. All tool keyboard and mouse shortcuts can be found in a hotkey pop-up windows by pressing “H” on your keyboard. Ground Modeling As was already said, your map contains a lot of pretextured areas and mountain shaping examples you can practice ground modelling skills in. Try to look at the finished and shaped areas and reproduce them yourself by raising flat textured spaces. In order to do this you will need the first two editing modes available in Noggit. (!) Basic editing modes can be changed by pressing 1-9 buttons on your keyboard. So, select the first tool called “Raise/Lower". When selected: Hold the “Shift" key and move your mouse on the terrain. It will increase the height of the ground in your brush area. Doing the same with “Ctrl” key held will do the opposite thing - decrease the ground height. In the option windows in the upper right corner of your screen there are a set of various brushes and setting that affect the result of raising or lowering the ground. The linear brush which is also selected by default is the most important one for modelling the ground. It creates the smoothest shapes for your mountains. Other brush types are also working and used for other purposes, for example other mountain styles. You can try each one somewhere on the map to get the basic idea of what they are useful for. Now try to raise some mountains. There are some keybindings that may help you to increase the speed of your terraforming. If you hold the ALT and move your mouse, the brush radius will change without touching the UI. You have probably already noticed that at some place the ground has some spiky sharp edges. In order to remove them, use the second tool called “Flatten/Blur” by using “Shift + LMB" for flattening, and “Ctrl + LMB" for blurring. So, you can know start sculpting the mountains. Look how the finished areas are created and try to replicate the shaping style. When you get a close result, you can try to shape the mountains in your own way. Maybe you will create something better ;). By pressing F9 you can toggle the height lines on your map which are really helpful when you are modelling the ground. Texture Swapping You may expect that the next thing we are going to learn after ground modelling is texturing, but it is not. We will explain how to texture the terrain in the next parts of the tutorial series. But now you should learn swapping textures that are already painted on the map. In order to do this switch to 3D Texturing mode using the toolbar or by pressing 3 on your keyboard. Hold the “Ctrl” button and click somewhere on the ground. You should now see a “Texture picker” window which shows you the textures that are currently used on the chunk. If you press F7 on your keyboard, the map will become covered with red and green lines, You should remember that green squares show the borders of each .adt file in your map, while red squares represent chunks of this file. As you may have already noticed, one chunk can only contain 4 textures and it is essential for WoW modding to keep all 4 chunks filled, but you should not worry about it while working with the tutorial material. The reasons for doing it will be explained in the next parts of out tutorial. Press the button called “Texture Swapper” in the brush setting window in the upper right corner of your screen. Now select the texture you want to change with a texture picker. Press the “Set destination” button in the “Texture swapper” window. Now this texture is selected as a target one for swapping, so that it will be replaced. Select a texture you want to replace the target one with. In order to do this, press X on your keyboard. You should now see a “Texture palette” window. Now you may load all the available tileset textures in the game or load some from a zone you want. Press “Load all tilesets” button or load a specific set. You may sort the textures by pressing the “Filter textures” button and selecting the required parameters. Once the texture is selected, press the button “Swap ADT” in the swapper window. It will change the currently selected texture pair on one .adt you are currently on. You can also swap textures chunk by chunk by holding “Shift” and pressing left mouse button while moving it on the ground. Placing models In order to spawn models on your map you need to run WoWModelViewer and Noggit at the same time. Look up a model using a search field in WMV. When you find the model you want to spawn, switch to Noggit and press the following key combination: SHIFT + C for spawning an .m2 model; ALT + C for spawning a .wmo model. You can use the “Ctrl + C”/”Ctrl + V” keybinding for copying and pasting models. When the model is selected you are able to scale it and rotate in different directions. Hold “Shift”, “Ctrl”, “Alt” and press right, left and middle mouse buttons while moving your mouse. Practice a bit and you will get used to the rotating shortcuts. [KEY COMBINATION PICTURE] You can use SHIFT + R for resetting the model’s rotation and PageDown for setting a model to the ground level. Numpad keys can be used for moving model slowly which is helpful for correcting the position of some small models. If you hold “Shift” while pressing one of those numpad buttons, the model will move slightly faster. We also want to remind you that all the basic key binding information can always be found in a Help window in Noggit. Adding water Now it’s time to add some water to your map. Switch to “Water edit”. You can fill the entire .adt with water by going to the “Assist” menu and clicking on the “Create water” button. “Clear water” in the same menu is used for removing all the water data from the .adt. Pressing “Create water” will create a flat tile water at 0 ground level. You can change the height of the water layer by using the buttons in the setting menu in the right upper corner of your screen. It is also possible to change opacity and water type. Play around with those features to understand how they work. Now create water on the blank flat .adt. Try raising the ground and creating some kind of lake. Now, you have some water underneath your terrain. It is not good because it produces water sounds in game, and also allows fishing everywhere on the map. So, you always have to cut the unnecessary water by pressing “Crop water” on the setting panel of “Water edit”. It cuts all the extra water under the ground. Sometimes you need to have different levels of water on your map within one .adt. You can add water to the chunk by pressing “Shift + LeftMouse” and remove it with “Ctrl + LeftMouse”. You can also select chunks with “Alt + LeftMouse” and deselect them with “Alt + Ctrl + LeftMouse”. When something is selected, height control buttons affect only the selected water chunks. It works for everything except opacity generator and water type selector. Those are currently not supported in chunk by chunk editing.