Search the Community

Showing results for tags 'wotlk'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Important
    • Announcements
    • Getting Started
  • Modding
    • Modeling
    • Level Design
    • Interface
    • Serverside
    • Noggit
    • Miscellaneous
    • Retro-Porting
    • Useful Services
  • Projects
    • Recruitment
    • Paid Work
    • Showcase
    • Machinima
  • Community
    • General
    • Random
    • Gallery
    • Releases
    • The Graveyard

Categories

  • Tools
    • Uncategorized
    • Map Editing
    • Model Editing
    • DBC & DB2 Editing
    • Serverside
    • CASC & MPQ
  • Resources
    • Graphics
    • Uncategorized
    • Models
    • Maps
    • Client Patches
  • 010 Editor Scripts and Templates
  • Noggit Script Brushes

Categories

  • Projects
  • Machinima
  • Software Development

Categories

  • Beginner
    • Русский
    • Deutsch
  • Modeling
    • Česky
    • Français
  • Level Design
  • Interface
  • Serverside
  • Miscellaneous
    • Česky
    • Français
  • Retro-Porting
  • Machinima

Categories

  • Tutorials
  • Timelapse
  • Miscellaneous

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Discord


Twitter


Skype

Found 107 results

  1. Version 1.0.0

    135 downloads

    Viridian Phase-Hunter - Possible New Warpstalker Mount from Burning Crusade Classic Promotion
  2. Wondering if anyone knows where this is handled at? Trying to create custom class buff ranks but currently having issues with them being in the general spellbook tab and wanting them to be in their correct spec tab (IE: Gift of the Wild in the Restoration tab for Druids). I've copied exactly from Spell.dbc, doesn't work. I've checked core and found nothing. I cannot see any other DBCs that would logically be responsible for it? Also checked Spellbook interface files and found nothing... honestly at a complete loss. EDIT: LOL and this folks is why you should Google before posting new stuff. Answer is needing to add entries into SkillLineAbility.dbc... Derp.
  3. Helo there is my project of custom guild system. It has guild reputation, new UI. Is not 100% done but so far there is it Youtube show off
  4. Trinity Item Creator [3.3.5] (Open source)What this application can do Save item as *.sql Copy query to clipboard Import to database Save/Load custom templates Load premade templates DisplayID finder Stats generator Reset all fields Make item.dbc What can you do?Help us maintain the application with latest trinitycore database structure and keep features functional by reporting any issue or request on our github issue tracker [here]. Available LinksOpen source repositoryLatest downloadable version Thanks Sdyees, Freddan962 for contribution
  5. Version 1.0.0

    1,240 downloads

    Hiya, Today I would like to share with you my mount patch containing at this point 45 mounts going from Cata to Legion retro-ported to Wrath of the lich king. I work on this patch from time to time so be sure to keep an eye out for newer versions. Happy Modding. Poisonleaf
  6. Greetings, i use Leeviathan's WOD character model patch, and it's awesome to have retail characters to 3.3.5 but, for some reason, the weapons of the female blood elf are reduced compared to Retail, and i need to increase the size of the weapons, if anyone can put on the comments how i can do this, i will be eternally grateful
  7. Hello everyone, apologies if this has been posted already, it seems I could not find it...or understand it if found... I've been using some patches in my WotLK client for some time and I was now trying to make some changes myself with no luck (given that I am a totally new to this topic)...hence this post. The patches I am using are Finsternis Creature/Mount patch, WoD Models (I don't remember the author, sorry), improved armor textures (sh1tdev, found on this site), Sun Light Alpha WoW 3.3.5 (Nicolas, again on this site). What I was trying to do was to change the Druids Moonkin and Tree of Life form by importing a model from another patch (Mounts, druid and other 1.0.0 by astrono1) and insert it on top of the patches I am currently using on my client. Is this somehow possible? I apologise in advance, I have tried to do it myself by checking the Forum, but I had no luck, could you please help me or give me some hints? Thank you for all the help that you'll be able to lend Kryhowl
  8. Version v1

    407 downloads

    This script for 010editor converts Wrath of the Lich King .M2 and .SKIN files to Cataclysm, Mists of Pandaria and Warlords of Draenor. Supports: -Cameras. -Particles. -Animation flags. -Projected shadows. -Transparency flags. -Blend mode overrides. Also includes: -Batch file converter. -Shadow remover script. -Sequence flag remover script. -Skin template for 010editor with shadow batches added. DOWNLOAD Some notes and technical information: -make sure you are working on "OVR" mode before running the script. Projected shadows As you may know, projected shadows are stored inside the .skin file since Cataclysm. This script creates shadows for all texture units, including those with additive materials. If you want to remove the shadows from a specific geoset, just open the skin file with 010editor, run the skin template included inside the tools folder and delete the texture batch corresponing to that mesh. If you want to remove ALL shadows from a model, just use the "Cataclysm Shadow Remover" included in the tools folder (it's useful for stuff like fire or lights, that are not supposed to cast a shadow). As you can see, the glow, which is a billboarded square with addivite renderflag, is casting a shadow and the game can't handle shadows with additive materials. To remove it I selected its shadow batch, deleted it and reduced the shadow batch count by 1 in 010editor. More info in this video: Flying mount animations In WotLK, mounts use swimming animations for flying. Since Cataclysm, however, there are separate ids for swimming and flying since flying mounts can now be used as ground mounts and therefore swim. But, if a mount model doesn't have fly animations, the game will use its swimming animations. That's why this script doesn't duplicate them. It's not necessary. WotLK flying mounts should still work perfectly in Cata, MoP and WoD. Reflections This script doesn't convert reflections since there is no exact way to know when a texture unit is used for a reflection, glow, etc. So you must do it by hand. Just open your skin file, convert it to Cata+, go to the texunit with the reflection and change its shader to "144". Here is an example using "Creature\Murloc\Murloc00.skin": You can change the "texunit" and "texunit2" fields to "0" but it's optional since those fields are unused since Cataclysm, but just in case. Animation sequence flags Sequence flags are 128 digits bigger since Cataclysm. Without these flags some animation frames loop when they shouldn't and sequences don't blend correctly. This script fixes that problem and gives smoothness to the animations. If you want to remove the extra flags for some reason, just run the "Cataclysm Sequence Flag Remover" script included in the tools folder
  9. Yo. I'm trying to retexture some armor BLP textures in WotLK, but I'm having some trouble with it. This might also extend to Vanilla for me, as I made an MPQ patch for all of my retextures (which I made in Photoshop (selecting indexed textures) through a BLP converter), but it stopped recognizing new retextures after a while for some strange reason. I've tried looking for others with the same problem, but haven't come across anything useful. Basically, it boils down to this: I made an MPQ patch that eventually stopped working after adding enough retextures. I've tried using an older version of Photoshop (which I still have installed), because I thought that maybe it was because I switched to later versions a while ago, but even that didn't do anything. I swear I've been doing the same exact method since I started making these retextures. Some retextures are working, but new ones don't, and they also don't overwrite any of the retextures that were already in there. The MPQ format was something that I also looked into, and it turns out the reason why the new MPQ patch that I made for WotLK wasn't working at all was because it had the wrong MPQ format, which was 2.0, and the correct one being 1.0. The one I made for vanilla had the 1.0 format and that ended up working better than the other (since at least some older retextures are working). As you can see, the Executioner's Sword (Sword_1H_Short_A_03Red.blp) is retextured, but the Raider's Shoulderpads (Shoulder_Mail_B_01Red.blp) and the upper portion of my Husk of Naraxxis (Plate_D_01_Chest_TU_U.blp) both aren't desaturated (which is what I was trying to do). The strangest thing is just the fact that the files in the MPQ don't get overwritten and instead just leave a duplicate file in there with the same exact name and extension. I also ended up using a manual BLP2PNG converter and that also didn't work. Feel free to have a look at the MPQ. I'd really appreciate the help. https://www.mediafire.com/file/d86ao8e4bvgjszf/patch-R.mpq/file
  10. Attempting to completely convert the content of these zones, as close as possible to the blizzlike. Raid: Firelands Mogushan Palace Throne of the Four Winds Dungeon: Well of Eternity Halls of Origination Lost City of the Tol'vir The Vortex Pinnacle The Maelstrom Battleground: Twin Peaks Temple of Kotmogu The Battle for Gilneas Arena: Tol'viron Arena The Tiger's Peak Artifacts Legion My list converting dbc structure Legion and Mop to client 3.3.5a Achievement.dbc Achievement_Category.dbc Achievement_Criteria.dbc AreaGroup.dbc AreaPOI.dbc AreaTable.dbc AreaTrigger.dbc BattlemasterList.dbc CharacterFacialHairStyles.dbc CharHairGeosets.dbc CharSections.dbc CharTitles.dbc ChatChannels.dbc ChrRaces.dbc CreatureDisplayInfo.dbc CreatureDisplayInfoExtra.dbc CreatureModelData.dbc CreatureSoundData.dbc CurrencyTypes.dbc DungeonMap.dbc DungeonMapChunk.dbc EmotesTextSound.dbc Faction.dbc FactionTemplate.dbc GameObjectDisplayInfo.dbc GemProperties.dbc GroundEffectDoodad.dbc GroundEffectTexture.dbc HolidayNames.dbc Item.dbc ItemDisplayInfo.dbc ItemExtendedCost.dbc ItemSet.dbc ItemVisualEffects.dbc ItemVisuals.dbc Light.dbc LightFloatBand.dbc LightIntBand.dbc LightParams.dbc LightSkybox.dbc LiquidMaterial.dbc LiquidObject.dbc LiquidType.dbc LoadingScreens.dbc Map.dbc MapDifficulty.dbc NPCSounds.dbc ObjectEffect.dbc ObjectEffectGroup.dbc ObjectEffectPackage.dbc ParticleColor.dbc PvpDifficulty.dbc ScalingStatDistribution.dbc SoundAmbience.dbc SoundEmitters.dbc SoundEntries.dbc SpellIcon.dbc SpellItemEnchantment.dbc SpellVisual.dbc SpellVisualEffectName.dbc Talent.dbc WMOAreaTable.dbc WorldMapArea.dbc WorldMapContinent.dbc WorldMapOverlay.dbc WorldMapTransforms.dbc WorldSafeLocs.dbc WorldStateUI.dbc WorldStateZoneSounds.dbc ZoneIntroMusicTable.dbc ZoneMusic.dbc My way converting dbc: 1. dbc>sql 2. manually compare dbc mop - wotlk 3. converting sql to csv 4. csv to dbc left to finish: - server part - full spell.dbc 5.4 > 3.3.5а Patch size almost 2GB https://disk.yandex.ru/d/aG-fjMDYx8V9z
  11. hey all strange question would it be possible to give new players the option to choose from a pre set choice of levels to start at on a private server ? if this is possible would anyone be willing to share with me how this would be achieved Many Thanks in advance Mike
  12. Hello guys, I have some questions regarding an idea i have for a revamp of vanilla. It would be really awesome too incorporate Wotlk, and TBC, in its entirety in the vanilla formula. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Let me sketch how i would like too see this world: Everything is Downscaled to 60. Level 60 is the maximum level cap. 1) TBC lands and WoTLK lands are locked, and you need too unlock these by playing the 'endgame' of the previous expansion. -- In order to enter TBC content you need to have done every dungeon from the vanilla world, and completed the following raids : Lower Blackrock Spire Upper Blackrock Spire Zul'Gurub The ruins of Ahn'Qiraj Molten Core Blackwing Lair (the first 2 bosses of AQ40 minimum ?) -- In order to enter WotlK content you need to have done every dungeon (also heroic) from the TBC expansion, and completed the following raids : Karazhan. Gruul's Lair. Magtheridon's Lair. Serpentshrine Cavern. (The eye: Tempest keep 1st boss minimum ?) -- When entering WotlK, you must clear all dungeons (also heroic) to unlock the first raid instance. in order to unlock the next WotLK raid you need to have cleared content in the following order; Vault of Archavon. -> The Obsidian Sanctum. -> The Eye of Eternity. -> Ulduar. -> Trial of the Crusader. -> Onyxia's Lair. -> Icecrown Citadel. 2) TBC and WOTLK are all downscaled to 60 ==> TBC mobs are 60, but harder than those of Vanilla. (you would need atleast Pre raid BIS too even 'think' about solo'ing mobs in TBC) ==> WOTLK mobs are 60, but harder than those of TBC (TBC gear / Vanilla T2.5/T3 needed too even 'think' about solo'ing those mobs) --Also gear is Downscaled to 60. Vanilla endgame gear < TBC endgame gear < WotLK endgame gear. BUT there are exceptions: The 3 Endgame raids from all expansions (Vanilla -- TBC -- WoTLK) are kept as the true endgame raids. The loot rewards are similar in quality, with slight differences, the raid from the next expansion giving SLIGHT better loot, as it will be harder to obtain. Naxxramas < The Black Temple < Icecrown citadel. Kel'Thuzad, Illidian Stormrage and The Lich King will give same quality BIS loot. All the other raids (Like AQ40 full, Sunwell Plateau, Mount Hyjal,..) are meant for gearing up for the respectively next endgame raids. 3) Flying mounts are unlocked in the expansion you're active when you have cleared all it's dungeons. => Unlocking Flying mounts in Vanilla content requires you to have completed all dungeons (also heroic) in WotLK content. (this will then also unlock flying mounts in WoTLK content) 3) No content is truly altered, and kept in it's 'original state' Every raid and dungeon keeps its same tactics Everything is kept the same, except the TBC and WoTLK content is downscaled to 60 and requires unlocking, but expansions being harder to clear as it is next in line. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Now, i do not have any experience in modding or starting a server on my own. I would like too ask the following questions; How hard would it be to realize this on every level; code-wise, graphically etc. ? Does this sound like something that can be done, or enough people could be interested in ? Are there other thing you would recommend to do differently to make it better/ more interesting ? Any coders and GM's would like too help create this project, if there's enough interest ? ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ I'm pretty sure i forgot a whole lot, or might have created contradictions. So i might update this if i can remember them or peopIe remind me of it by reacting on this post. I would like to appologize for my bad English, but i hope everyone can somewhat understand what i have stated. Cheers.
  13. Sharing this here as well (copy/paste from Modcraft) Hi guys! Took me some time to post this because I couldn't find any fan for my laptop.... But I did some days ago so... Here you go! As I said before, I acknowledge this is not much. But I just wanna play my part in Modcraft as best as I can even if it doesn't mean a lot. First you will need the tables and rows which the script uses : SQL File Then the Creature Script : StockExchange.cpp /* 1.0.0 StockExchange NPC Script Description ----------- The script uses data from DB to define 5 different stocks (Name, Worth (in gold coins), Scale (scale of the stock's variations), OwnedRatio(so that players can't acquire more than its worth)). Players can buy and sell shares of those stocks, provided they have bought a licence first. Thanks to Rochet2 for the nice menu look and for helping me clean this script up! */ #include "ScriptPCH.h" #include "Config.h" #include "ScriptedCreature.h" #include "Language.h" #include "time.h" #define STOCKNUMBER 5 #define GOLDTOCOPPER 10000 namespace { class CS_StockExchange : public CreatureScript { public: CS_StockExchange() : CreatureScript("Creature_StockExchange") { } uint32 stock = 0; void OnPlayerTextEmote(Player* player, uint32 textEmote, uint32 emoteNum, ObjectGuid guid) override { } bool OnGossipHello(Player* plr, Creature* creature) override //MAIN MENU { //StockUpdate every 2 minutes QueryResult result = WorldDatabase.PQuery("SELECT `UpdateTime` FROM `stocks` WHERE iD = 0"); if (!result) return false; Field* field = result->Fetch(); uint32 stockPrevTime = field[0].GetUInt32(); uint32 realCurrTime = getMSTime(); uint32 stockDiff = getMSTimeDiff(stockPrevTime, realCurrTime); if (stockDiff >= 120000) { uint32 timeMult; timeMult = stockDiff / 120000; if (StockUpdate(timeMult)) TC_LOG_INFO("server.worldserver", "Stocks have been updated (%u)", realCurrTime); else { TC_LOG_INFO("server.worldserver", "Error while updating stocks..."); } stockPrevTime = realCurrTime; WorldDatabase.PExecute("UPDATE `stocks` SET `UpdateTime` = %u WHERE `iD` = 0", getMSTime()); } WorldSession* session = plr->GetSession(); QueryResult licencetest = CharacterDatabase.PQuery("SELECT `1`, `2`, `3`, `4`, `5` FROM `character_stockdata` WHERE iD = %u", plr->GetGUIDLow()); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Scroll_08:30:30:-18:0|tWhat are the current exchange rates?", GOSSIP_SENDER_MAIN, 2); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Misc_Book_11:30:30:-18:0|tHow many unsold shares are there left?", GOSSIP_SENDER_MAIN, 1); if (!licencetest) { plr->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_MISC_NOTE_02:30:30:-18:0|tI'd like to acquire a trade licence.", GOSSIP_SENDER_MAIN, 12, "This will cost you", 400000, false); } else //Player can invest if he has a licence { plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Misc_Coin_02:30:30:-18:0|tI'd like to manage my portfolio.", GOSSIP_SENDER_MAIN, 3); } plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/Ability_Spy:30:30:-18:0|tIt was a pleasure to make business with you.", GOSSIP_SENDER_MAIN, 4); plr->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID()); return true; } bool OnGossipSelect(Player* plr, Creature* creature, uint32 sender, uint32 uiAction) override { int32 amount = 0; plr->PlayerTalkClass->ClearMenus(); WorldSession* session = plr->GetSession(); std::ostringstream message; float ownedratio[5]; int worth[5]; for (int iter = 1; iter < 6; iter++) { QueryResult result = WorldDatabase.PQuery("SELECT `OwnedRatio`,`Worth` FROM `stocks` WHERE iD = %u", iter); if (!result) return false; Field* field = result->Fetch(); ownedratio[iter-1]= field[0].GetFloat(); worth[iter-1] = field[1].GetInt32(); } switch (uiAction) { case 1: //REMAINING SHARES message << "REMAINING SHARES (in gold coins)$BRavenholdt Manor : " << worth[0] * (1 - ownedratio[0]) << "$BBloodsail : " << worth[1] * (1 - ownedratio[1]) << "$BSteamwheedle Cartel : " << worth[2] * (1 - ownedratio[2]) << "$BTheramore Silk Traders : " << worth[3] * (1 - ownedratio[3]) << "$BEldoar'norore : " << worth[4] * (1 - ownedratio[4]); creature->Whisper(message.str(), LANG_UNIVERSAL, plr); plr->PlayerTalkClass->SendCloseGossip(); OnGossipHello(plr, creature); break; case 2: //CURRENT EXCHANGE RATES message << "CURRENT EXCHANGE RATES (in gold coins)$BRavenholdt Manor : " << worth[0] << "$BBloodsail : " << worth[1] << "$BSteamwheedle Cartel : " << worth[2] << "$BTheramore Silk Traders : " << worth[3] << "$BEldoar'norore : " << worth[4]; creature->Whisper(message.str(), LANG_UNIVERSAL, plr); plr->PlayerTalkClass->SendCloseGossip(); OnGossipHello(plr, creature); break; case 3: //MANAGE PORTFOLIO MENU (5-10) plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Helmet_30:30:30:-18:0|tRavenholdt Manor", GOSSIP_SENDER_MAIN, 5); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Helmet_66:30:30:-18:0|tBloodsail", GOSSIP_SENDER_MAIN, 6); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Misc_Bomb_03:30:30:-18:0|tSteamwheedle Cartel", GOSSIP_SENDER_MAIN, 7); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Chest_Cloth_56:30:30:-18:0|tTheramore Silk Traders", GOSSIP_SENDER_MAIN, 8); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Misc_FireDancer_01:30:30:-18:0|tEldoar'norore", GOSSIP_SENDER_MAIN, 9); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/Ability_Spy:30:30:-18:0|tBack", GOSSIP_SENDER_MAIN, 10); plr->SEND_GOSSIP_MENU(50002, creature->GetGUID()); break; case 4: //CLOSE GOSSIP plr->PlayerTalkClass->SendCloseGossip(); break; case 5: //MANAGE RAVENHOLDT STOCK stock = 1; plr->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Letter_03:30:30:-18:0|tBuy shares", stock, 0, "How much gold would you like to invest?", 0, true); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Misc_Coin_16:30:30:-18:0|tSell all shares", stock, 11); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/Ability_Spy:30:30:-18:0|tBack...", GOSSIP_SENDER_MAIN, 3); plr->SEND_GOSSIP_MENU(50002, creature->GetGUID()); return true; break; case 6: //MANAGE BLOODSAIL STOCK stock = 2; plr->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Letter_03:30:30:-18:0|tBuy shares", stock, 0, "How much gold would you like to invest?", 0, true); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Misc_Coin_16:30:30:-18:0|tSell all shares", stock, 11); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/Ability_Spy:30:30:-18:0|tBack...", GOSSIP_SENDER_MAIN, 3); plr->SEND_GOSSIP_MENU(50002, creature->GetGUID()); break; case 7: //MANAGE GOBLIN STOCK stock = 3; plr->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Letter_03:30:30:-18:0|tBuy shares", stock, 0, "How much gold would you like to invest?", 0, true); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Misc_Coin_16:30:30:-18:0|tSell all shares", stock, 11); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/Ability_Spy:30:30:-18:0|tBack...", GOSSIP_SENDER_MAIN, 3); plr->SEND_GOSSIP_MENU(50002, creature->GetGUID()); break; case 8: //MANAGE SILKTRADERS STOCK stock = 4; plr->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Letter_03:30:30:-18:0|tBuy shares", stock, 0, "How much gold would you like to invest?", 0, true); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Misc_Coin_16:30:30:-18:0|tSell all shares", stock, 11); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/Ability_Spy:30:30:-18:0|tBack...", GOSSIP_SENDER_MAIN, 3); plr->SEND_GOSSIP_MENU(50002, creature->GetGUID()); break; case 9: //MANAGE ELDOAR'NORORE STOCK stock = 5; plr->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Letter_03:30:30:-18:0|tBuy shares", stock, 0, "How much gold would you like to invest?", 0, true); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Misc_Coin_16:30:30:-18:0|tSell all shares", stock, 11); plr->ADD_GOSSIP_ITEM(GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/Ability_Spy:30:30:-18:0|tBack...", GOSSIP_SENDER_MAIN, 3); plr->SEND_GOSSIP_MENU(50002, creature->GetGUID()); return true; break; case 11: //TRANSACTION = SELL if (!SellStock(plr, stock, creature)) plr->GetSession()->SendNotification("Error while selling shares... Please contact the administrator."); else { } plr->PlayerTalkClass->SendCloseGossip(); OnGossipHello(plr, creature); break; case 12: //CREATE PLAYER LICENCE ( = ROW IN CHARACTER_STOCKDATA ) if (plr->GetMoney() >= 40*GOLDTOCOPPER) { if (CreateLicence(plr)) { amount = 40*GOLDTOCOPPER; plr->ModifyMoney(-amount); message << "Your licence has been acquired successfully, " << plr->GetName() << "!"; creature->Say(message.str(), LANG_UNIVERSAL, plr); } else plr->GetSession()->SendNotification("Error while registering your licence. Please contact the administrator."); } else { message << "I am afraid you do not have these 40 gold coins, " << plr->GetName() << "..."; creature->Say(message.str().c_str(), LANG_UNIVERSAL, plr); } plr->PlayerTalkClass->SendCloseGossip(); OnGossipHello(plr, creature); break; default: OnGossipHello(plr, creature); break; } return true; } bool OnGossipSelectCode(Player* plr, Creature* creature, uint32 stock, uint32 uiAction, const char* code) override { plr->PlayerTalkClass->ClearMenus(); std::ostringstream message; int32 amount = 0; std::string investment = code; static const char* allowedcharacters = "1234567890"; if (!investment.length() || investment.find_first_not_of(allowedcharacters) != std::string::npos) //If investment was specified incorrectly { plr->GetSession()->SendNotification("Your investment bust be declared using figures.(0123456789)"); } else //If investment was specified properly { //Statements uint32 investmentI = uint32(atol(code)); if (investmentI*GOLDTOCOPPER <= plr->GetMoney()) { QueryResult result1 = WorldDatabase.PQuery("SELECT `OwnedRatio`,`Worth` FROM `stocks` WHERE iD = %u", stock); if (!result1) return false; Field* field = result1->Fetch(); float ownedratio = field[0].GetFloat(); int worth = field[1].GetInt32(); QueryResult result2 = CharacterDatabase.PQuery("SELECT `%u` FROM `character_stockdata` WHERE iD = %u", stock, plr->GetGUIDLow()); if (!result2) return false; field = result2->Fetch(); float initialratio = field[0].GetFloat(); float ratio = static_cast<float>(investmentI) / worth; if (ratio <= (1-ownedratio)) //If enough stocks left { int amount = investmentI*GOLDTOCOPPER; plr->ModifyMoney(-amount); // substract it from player money CharacterDatabase.PExecute("UPDATE `character_stockdata` SET `%u` = %f WHERE `iD` = %u", stock, initialratio + ratio, plr->GetGUIDLow()); WorldDatabase.PExecute("UPDATE `stocks` SET `OwnedRatio` = %f WHERE `iD` = %u", ownedratio + ratio, stock); } else { plr->GetSession()->SendNotification("There are not so many shares for you to acquire, check the remaining shares before trying to invest."); } } else { message << "You do not have so much money, " << plr->GetName() << "."; creature->Say(message.str().c_str(), LANG_UNIVERSAL, plr); } } plr->PlayerTalkClass->SendCloseGossip(); OnGossipHello(plr, creature); return true; } private : bool SendMoneyByMail(ObjectGuid player, uint64 money, int32 stock) { MailSender sender(MAIL_CREATURE, 50038, MAIL_STATIONERY_DEFAULT); std::string stockName; switch (stock) { case 1: stockName = "Ravenholdt Manor"; break; case 2: stockName = "Bloodsail"; break; case 3: stockName = "Steamwheedle Cartel"; break; case 4: stockName = "Theramore Silk Traders"; break; case 5: stockName = "Eldoar'norore"; break; default: return false; } std::ostringstream text; text << "You have requested the General Exchange Hall to sell your shares of the " << stockName << " stock. This has yielded some " << money/GOLDTOCOPPER << " gold coins from which I have deducted " << money/10/GOLDTOCOPPER << " in the sake of various sale and accountancy costs. Enclosed to this letter are " << 9* money/10/GOLDTOCOPPER << " gold coins which come down to you."; MailDraft draft("Share Sale", text.str().c_str()); draft.AddMoney(money * 9 / 10); SQLTransaction letter = CharacterDatabase.BeginTransaction(); draft.SendMailTo(letter, MailReceiver(NULL, player.GetCounter()), sender); CharacterDatabase.CommitTransaction(letter); return true; } bool SellStock(Player* plr, int32 stock, Creature* creature) /*SELL ALL THE SHARES OF THE SPECIFIED STOCK */ { QueryResult result2 = WorldDatabase.PQuery("SELECT `OwnedRatio`,`Worth` FROM `stocks` WHERE iD = %u", stock); if (!result2) return false; QueryResult result1 = CharacterDatabase.PQuery("SELECT `1`, `2`, `3`, `4`, `5` FROM `character_stockdata` WHERE iD = %u", plr->GetGUIDLow()); if (!result1) return false; Field* field = result1->Fetch(); float ratio = field[stock - 1].GetFloat(); if (ratio == 0) { plr->GetSession()->SendNotification("You don't own any share of this stock..."); } else //ONLY IF PLAYER OWNS SOMETHING { Field* field = result2->Fetch(); float newownedratio = field[0].GetFloat()-ratio; int worth = field[1].GetInt32(); if (!SendMoneyByMail(plr->GetGUID(), worth*GOLDTOCOPPER*ratio, stock)) return false; std::ostringstream text; text << "I shall make the arragement for the sale, " << plr->GetName() << ", you will receive your money by mail soon enough."; creature->Say(text.str().c_str(), LANG_UNIVERSAL); CharacterDatabase.PExecute("UPDATE `character_stockdata` SET `%u` = 0 WHERE `iD` = %u", stock, plr->GetGUIDLow()); WorldDatabase.PExecute("UPDATE `stocks` SET `OwnedRatio` = %f WHERE `iD` = %u", newownedratio, stock); } return true; } bool CreateLicence(Player* plr) { SQLTransaction trans = CharacterDatabase.BeginTransaction(); trans->PAppend("REPLACE INTO `character_stockdata` (`iD`, `1`, `2`, `3`, `4`, `5`) VALUES (%u, 0, 0, 0, 0, 0)", plr->GetGUIDLow()); CharacterDatabase.CommitTransaction(trans); return true; } bool StockUpdate(int timeMult) { int32 stockWorth[STOCKNUMBER], newStockWorth[STOCKNUMBER]; int32 stockScale[STOCKNUMBER]; float stockOwnedRatio[STOCKNUMBER]; srand(time(NULL)); // Load stock values from DB for (int itr = 0; itr < STOCKNUMBER; itr++) { QueryResult result = WorldDatabase.PQuery("SELECT `Scale`,`OwnedRatio`,`Worth` FROM `stocks` WHERE iD = %u", itr + 1); if (!result) return false; Field* field = result->Fetch(); stockScale[itr] = field[0].GetInt32(); stockOwnedRatio[itr] = field[1].GetFloat(); stockWorth[itr] = field[2].GetInt32(); } // Dicethrows and Upload values to DB for (int itr = 0; itr < STOCKNUMBER; itr++) { char sign; if (stockWorth[itr] + stockScale[itr]*timeMult > 200000) //Don't go over 200.000 gold coins sign = -1; else if (stockWorth[itr] - stockScale[itr]*timeMult < 0) //Nor below 0 sign = 1; else { int dice = (rand() % 101) + floor(10 * stockOwnedRatio[itr]) - 55; sign = dice / abs(dice); } newStockWorth[itr] = stockWorth[itr] + sign*stockScale[itr]*timeMult; WorldDatabase.PExecute("UPDATE `stocks` SET `worth` = %u WHERE `iD` = %u", newStockWorth[itr], itr + 1); } return true; } }; } void AddSC_Stock() { new CS_StockExchange(); } I know this code ain't perfect but I'm still open for suggestions and critics. Have a nice day.
  14. Welcome to this quick guide. ** DISCLAIMER ** This will NOT downport character models Since many of you have been PMing me desperately asking : "How do you downport this shit man??" Here you go. Enjoy. Tools needed: CascExplorer Adspartan's Multiconverter BfA Listfile (put this in your CascExplorer folder) Thanks to Wungasaurus for the correct listfile ------------------------------------------------------- Enjoy your new models, homeboy
  15. Please help with retroporting items from the set https://ru.wowhead.com/transmog-set=2249/dreadwyrm-battleplate-mythic-recolor I can easily retroport the helmet and shoulder's because they have m2, anim and BLP files, and are not tied to the geogrid of the character model. What do I need to do in order to transfer the rest of the items from the set that are tied to the character's geogrid? Do I have to combine item and character models from WOTLK in Blender?
  16. I've found SkillRaceClassInfo.dbc manages what skills a race/class will have. I'm adding cataclysm class options to WotLK. Unfortunately, some race/class options, such as Human and Undead Hunters, do not start with the necessary weapon skills for their class (in this case, guns.) How would I go about adding the gun skill to human/undead hunters when their characters are created? I've checked https://wowdev.wiki/DB/SkillRaceClassInfo but it's not exactly helpful, nor does it actually explain what any of the database actually does.
  17. Total Roleplay 3 is an addon used by roleplayers to create profiles for their characters, which the earliest version of is for 8.1.0. I'm looking for someone able to backport TRP3 for the 3.3.5 client for use on private servers. Although Total Roleplay 1 exists for WotLK clients, its usability and power are severely less than their modern counterparts.
  18. I'm working on a 3.3.5 Server/Client and am looking to create a custom login screen for my project. I intend to have an animated 3D login screen depicting Goldshire, with the Elwynn Forest music accompanying it, with animated characters in the scene (Guards, for example.) I've seen other servers have done such things, such as the EpsilonWoW server, and was hoping someone might be able to help/guide me through the process of creating a custom login screen, as someone who has no experience with doing so.
  19. My intention is retroporting and fusionate the new Orgrimmar to the map 3.3.5. I was following, this guide, but the only thing I got is this error when i tried to enter. Also i tried save, copy and paste the adts from phillips patches with the last version of Noggit (3.2614), but also got me problems, this time whit the ground... My question is... im doing somthing wrong? or this is the best that can be? I have to paint the new Orgimmar myself? is any even posible? Sry my english by the way
  20. Version 1.0.4.469

    455 downloads

    ADTConverter [Deprecated] Convert your ADTs from Wotlk(3.3.5) to WoD(6.x.x)/Legion(7.x.x) The ADTConverter is deprecated and no longer supported Requirements The converter requires NET Framework 4.0 How to use Put your Wotlk ADTs in the data Folder Start the ConvertADTs.cmd Issues Please post your Issues here Thanks PTNGee for the "PTNG_ADT_Converter"
  21. Greetings, For the past few days i've been experimenting with adding custom damage schools and resistances to the game on top of what is already there. So far i've edited the following files... Core> Creature.cpp Core> CharacterDatabase.cpp Core> ItemTemplate.cpp Core> ItemTemplate.h Core> Player.cpp Core> Unit.cpp Core> Unit.h Core> ObjectMgr.cpp Core> SharedDefines.h Core> UpdateFieldFlags.cpp Core> ThreatManager.cpp DB> Characters.character_stats DB> World.creature_template DB> World.item_template DBC> Resistances.dbc Interface/FrameXML> Constants.lua Interface/FrameXML> GlobalStrings.lua ... and the core will build with 0 errors, however there are multiple problems in-game so I must be missing something. Current issues: 1. Characters are broken in many ways. Items don't show in bags or the character frame, NPCs are invisible/phased out, and the drunk effect is constantly at 100% (probably an error in characterdatabase.cpp, but I have yet to find where) CharacterDatabase.cpp Changes on 537-538 2. The core reads the item_template incorrectly, seems to look for values in their original fields. ObjectMgr.cpp Changes on 2457, 2551-2606 ItemTemplate.h Changes on 654-656 If anyone wants to offer help or insights, it would be appreciated. I'll continue hitting the code with a wrench and updating when progress is made. Once this has been solved I plan to make a tutorial out of it. Update 1: Custom elemental damage now shows properly on spell and weapon tooltips in-game. Loading an item tooltip with custom resistances crashes the game. Update 2: Looks like despite editing ObjectMgr.cpp, the core won't read the item_template table properly. It seems to look for values in their original fields, which breaks all the rows that come after the newly added ones. Added to current issues.
  22. Hi there, I am the admin of a couple of WoW servers and we are looking for experient model editors and importers. Work is basically two-fold: 1. Fix some previously imported mounts and one NPC 2. Add about 25 or so new mounts and pets, plus about 25 transmog items. This will be a paid gig so serious and professional replies only, please. Feel free to get in touch with me directly via Discord: Janitor#2871 Thanks a lot, Janitor
  23. Version 1.0.0

    548 downloads

    Basically, multitexturing combines the alpha channel of two different textures, creating more variety in the particles and making it more realistic. It was introduced in Cataclysm but widely used since WoD for fire effects. Usually, the textures used for particles in WoD are: World\Expansion05\Doodads\IronHorde\FIRE_2X2_SHARP_MOD4X.BLP World\Expansion05\Doodads\IronHorde\Fire_Bright_Mod2x_A.BLP I tried to emulate this multitexturing effect in WotLK by combining both textures with Photoshop and increasing the rows and columns to give it more variety (since we can't animate the particle texture in Wotlk, each block has a different texture position). The result is quite decent. I would say it's 80% accurate because some features, like combining blend and additive blendingtypes on the same particle are not available in WotLK. I made two texture versions: one with 16 blocks and another with 64 (more realistic). There is also a test model included. External link: http://www.mediafire.com/file/mpmmcvq9g8s7qij/MultiTexture_Fire_Particle.rar
  24. Hello guys! Im looking some guy which know work in 010Editor and he will be so kind to make some Tutorial HOW TO -> fix creatures from Cata/Wotlk/Legion.............. I mean fix Flying (Swinging wings) Just simply change this swiming animation to flying animation. It would be really nice, because im looking for it for so long, can't find nowhere any clue & nobody can help me with this. So if it will be possible, please just left reply in here or contact me on: adko.turac@gmail.com or im on discord as well : GoldenQo #5577 Thanks! Your GoldenQo
  25. Version 1.0.0

    755 downloads

    I made this script to convert multiple models from Legion to Wrath of the Lich King or Warlords of Draenor. Requires 010 editor. The first script removes the unnecessary information before the M2 header and changes its version from 274 to 272 to make it work in WoD. The second one does the same but also runs Philip's converter on the M2 files to make them work in Wotlk. How it works: -Put the models you want to covert inside the folder called "Models". -Run "Legion M2 to Wod/Wotlk.bat" and wait This script can also read all the subfolders inside "models" and convert every M2 inside of them. EXTERNAL LINK: Legion to Wotlk Legion to WoD To make this script work there must be an entry for 010 editor in environment variables (this allows windows to launch 010 editor through the cmd window, otherwise it won't work): -Right click on My computer -> properties -> advanced system settings -> environment variables -> Path -Click edit -Add your 010 editor directory to the list separated from the rest of the entries by a ";" (Example: ;C:\Program Files (x86)\010 Editor) (Detailed guide on this video)