barncastle

  Developers
  • Content Count

    38
  • Joined

  • Last visited

Community Reputation

52 Excellent

5 Followers

About barncastle

  • Rank
    Code Hero

Personal Information

  • Specialty
    DBC Editing
    Serverside
    Software Development

Recent Profile Visitors

4,368 profile views
  1. Ah sorry I thought you meant in general I misread what you're trying to achieve. Wouldn't it just be easier to replicate the events in your new model? Or take an educated guess of what sound goes where.
  2. I don't see why that wouldn't work. If I were to take a guess I'd say that these type of sound events are mainly used when the sounds are unique to a model which would save the designer from having to edit DBCs or... out of laziness
  3. I'm not at my pc to verify this particular model but some M2s have events that trigger sounds of which some contain sound entry ids.
  4. I've had a quick look through the Trinity source and there are a few things it could be; do you have any logs as that'll help pinpoint where the actual problem is? However I think the most likely things are either; the DBC file is corrupt or spell id 121820 doesn't exist (they've hard coded a check for the last Ids of certain DBC files for some reason...). I'm looking at lines 842 to 869 of this as reference.
  5. At the moment there are no CASC editing tools; everything is done by replicating the folder structure in the WoW client folder. For a pre-patched Legion executable see this forum thread - just make sure you get the same build as what you're working on.
  6. This is going to be like finding the right needle in a haystack of needles. I'd suggest starting simple and break it down into hardware and software and do some basic checks for both: Hardware What changes have you made since it was working fine? What is the RAM, CPU and HDD like (usage and temperature) when this is happening? What is the throughput on the network adapter? If something seems overworked in the above what happens if you replace it (psychical) or increase it (VPS)? If you're using an external provider are they having networking issues? Software What changes have you made since it was working fine? If you install a fresh core does it do the same thing? If there are any client modifications - what happens if you use a fresh install of the client? Also you might want to double check if you have any redundancy that you can restore from just to see if the hardware/software/both works as before. Edit: Amaroth got there first but you get the gist from our replies...
  7. Almost all files in the CASC structure have English file paths. What Blizzard has done is stored multiple different lookups in the root file which have specific tags such as "LocaleFlags.itIT" "ContentFlags.None", "LocaleFlags.frFR" "ContentFlags.LowViolence" etc that load the correct version of the same named file. All you need to do is change the locale in CASCExplorer to be itIT instead and it will load all of the files that are distributed to the Italian client. To do this go to View -> Locale -> itIT.
  8. Thanks Amaroth, looks like I missed BloodLevel which set the rest of them wrong. I've updated this is on both projects changes can be found on the dev branch for the time being.
  9. Just my two cents... If you've never touched Git before it might be worth running through their interactive tutorials as they teach you the commands and a quick overview of how Git works - https://try.github.io/levels/1/challenges/1. Also I'd install the Github Extension for Visual Studio as it hides all the nitty-gritty things behind a simple ui.
  10. Not sure what core you're using but the principle is the same the names will just be different: Open SharedDefines.h and find the enum called SpellAttributesEx3 Find the TARGET_ONLY_PLAYER attribute (each core calls it something slightly differently apparently) Set it's value to 0x80000000 (same as the last value but all cores ignore this)
  11. If you do Razmataz's method all you would need to do is either comment out the core lines referencing SPELL_ATTR3_ONLY_TARGET_PLAYERS (looks like 4) or just change it in SharedDefines.h to an impossible value. If you do MR.Farrarie's method you'd need to remove the flag from all spells which you could do in SQL. Use WDBX to export to SQL run the below script and import again with "Update Existing" set in the import screen. UPDATE `db_Spell_15595` SET m_attributesExC = m_attributesExC &~ 256 WHERE (m_attributesExC & 256) = 256
  12. Version 1.0.1

    43 downloads

    After a suggestion from Amaroth; I built this library to give other developers the core reading and saving functionality from WDBX Editor. This means that this library has full support for reading and saving all release versions of DBC, DB2, WDB and ADB. Just like WDBX Editor the reader requires a definition to load files correctly. I've moved to a class based decorator system as this is more intuitive. Included in this release is a separate library (WDBXLib.Defintions) with all the definitions that come with WDBX Editor - I've purposely separated these out as to provide more flexibility and to separate concerns. This library targets Microsoft .NET Framework 4.6.1. Source code and full examples can be found here. Usage: Below is an example of a definition and using it to read and write to a file. [DBTable(Expansion.WotLK)] //Defines the build number public class CharacterFacialHairStyles { [DBKey(AutoGenerated: true)] //Defines the Id column public int Id { get; set; } public int RaceId { get; set; } public int GenderId { get; set; } public int VariationId { get; set; } [DBField(ArraySize: 5)] //Defines the array size public int[] GeoSetId { get; set; } } //Reading, editing and writing a DB file with the above definition var entry = DBReader.Read<CharacterFacialHairStyles>(@"TestFiles\CharacterFacialHairStyles.dbc"); entry.Rows[0].RaceId = 6; //Update RaceId for the first row DBReader.Write(entry, @"TestFiles\CharacterFacialHairStyles.dbc"); Rows: The DBEntry rows are contained in a special collection class. Using the provided methods the Ids are automatically adjusted accordingly. However if you edit the Ids from the collection directly the Ids will need to be manually maintained, if duplicates are found the library will throw an exception on save. Included are a few additional methods and properties not found in a standard list. NextKey: returns the next Id available HasDuplicateKeys: returns a boolean indicating if any Id is used more than once FindByKey: returns an object by Id RemoveByKey: removes an object by Id LocalizedString: DBC file's localization was handled by a string array followed by a mask. Included is a special LocalizedString class designed for this purpose. It has the following properties: Locale: The value for that specific DBC's language (readonly) Values: A string array of all locales Mask: The mask value this[TextWowEnum locale]: An indexer that gets/sets the value for a specific language WCH5+ (ADB files): ADB files don't contain the structural information to be loaded directly so require loading the header information from the associated DB2 file first. To cater for this a ReadHeader function is exposed in the DBReader class which is then feed into the Read function. For example: var counterpart = DBReader.ReadHeader(@"TestFiles\ArtifactPowerRank.db2"); var entry = DBReader.Read<ArtifactPowerRank>(@"TestFiles\ArtifactPowerRank.adb", counterpart);
  13. @Arbiter and @Ferreon apologies for the ridiculously delayed reply, both your problems were resolved in version 1.0.5. I've not actively been on this forum in a few months hence the lack of response, sorry!
  14. Get the latest Vanilla definitions from here. Looks like this is another case of Blizzard not using a primary key in a DBC file.
  15. I'd personally do what Rangorn suggested as it would be a lot simpler than trying to debug this... I've not tested but the problem looks to be that one of the records has the 0x4 (SECTION_FLAG_DEATH_KNIGHT) flag set and is being used when the class is not a death knight. I'd suggest stepping through the ValidateAppearance function in player.cpp and seeing at what point it is returning false.