Oldarorn

Members
  • Content Count

    111
  • Joined

  • Last visited

Everything posted by Oldarorn

  1. 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 !
  2. 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 !
  3. 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 !
  4. Hello ! Today we will learn how to create an NPC from nothing ! Summary Required toolsNPC dressingCreatureDisplayInfo editingCreatureDisplayInfoExtra editingPatch creationDB additionLooks like it's time to gear up ! - Software like Photoshop or Gimp. Personally I use Photoshop because of this : BLP Plugin - Wow Model Viewer or something similar - BLP Converter (useless if you use the Photoshop's plugin) - My DbcEditor - MPQ Editor - Your 3.3.5 client ! Looks like it's time to dress up ! I only mentionned one tool which can dress up our future NPC, so, let's go to Wow Model Viewer ! First, we have to select the race of our NPC, I'll choose... Human male ! You can select this in the menu on the left, in the character part. Now, here's the interesting part. Quick explanation : The menu in the top right corner defines the look of your npc, face type, hair color... ATTENTION ! In CreatureDisplayInfoExtra, hair color and hair style are inversed ! Below this menu, it's seems to be obvious, you can set your Npc's stuff. Below again, Oppa tabard style ! 8-) I let you prepare your NPC, I'll create mine and after, we compare who made the most beautiful ! Time's up ! Here's mine : Ok I used WoD stuff, I cheated... a bit Now, you can screen the whole right menu, that way you will not forget the character's characteristics ! Sometimes you can see two numbers to the right of the object name, they are important, the first is the itemID, the second his DisplayID, keep them two ! Our NPC is created, now we need to extract its texture. In my WMV version I do this : Once exported, a single file will interest us : body.tga Open it with Photoshop or your software, and you'll see this : You're free to customize the face, adding scars or whatever ! If you don't use the BLP plugin, save this file as png, and slide it on your BLP Converter. We have finished the texture ! "But, Hyakki-master ! And weapons ?!" Creature_equip_template, world database ! Your turn CreatureDisplayInfo ! Open this DBC with the software provided by this tutorial (MyDBCEditor) You'll see lines. Lines everywhere ! Scroll to the last line, right click and select "Insert line...", your ID MUST be unique ! I'll choose 70010. Quick explanation 2 : First column : unique ID Second column : Model ID that is registered in CreatureModelData.dbc (for a human male it's 49, a human female 50...) Third column : Dunno, let zero. Fourth column : ExtraDisplay : We'll see it in CreatureDisplayInfoExtra.dbc, it must be unique too. 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. 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 : You must to put this DBC in your MPQ patch and in serverside. Next ! Braces yourselves CreatureDisplayInfoExtra is coming ! This is where it all take shape. Documentation time ! 1 : ID, that one you choosed in the fourth column in CreatureDisplayInfo.2 : Character's race, 1 for human... IDs are situated in ChrRaces.3 : Gender. 0 for male (It is also the degree of intelligence of the person who wrote this guide) and 1 for female.4, 5, 6, 7 & 8 : SkinColor, FaceType, HairStyle, HairColor, BeardStyle. (Don't forget, in WMV, hair style & hair color are inversed)9 : Head DisplayID (that one you choosed in WMV, if not, set to 0).10 : Shoulders DisplayID (that one you choosed in WMV, if not, set to 0).11 : Shirt DisplayId (that one you choosed in WMV, if not, set to 0).12 : Chest DisplayID (that one you choosed in WMV, if not, set to 0).13 : Belt DisplayID (that one you choosed in WMV, if not, set to 0).14 : Legs DisplayID (that one you choosed in WMV, if not, set to 0).15 : Boots DisplayID (that one you choosed in WMV, if not, set to 0).16 : Bracers DisplayID (that one you choosed in WMV, if not, set to 0).17 : Gloves DisplayID (that one you choosed in WMV, if not, set to 0).18 : Tabard DisplayID (that one you choosed in WMV, if not, set to 0).19 : Cape DisplayID (that one you choosed in WMV, if not, set to 0).20 : 0.21 : Your texture name, in my case, it'll be admerin.blpFill your DBC line with your items's DisplayID that you choosed for your NPC. Be careful, sometines the first digit is valid, sometines it's the second. Here's mine : Save it ! Upload it to your server, put it into your 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 two folders at the root of the patch. Call them : DBFilesClient Textures You can put your two DBCs in DBFilesclient Now, go in Textures, create a folder called BakedNpcTextures and put your .blp in there. Your patch is ready. Last step ! Creature_model_info 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 : 70010. This digit is the DisplayID that you MUST use for your creature. Once your line is written and your NPC created... This tutorial is finished ! Don't hesitate to show your NPCs here !
  5. Hello ! I've searched an answer on both communities and I haven't found what I'm looking for ( ♫ ) I've downported from Legion to TLK this waterfall ! The only issue I have is : When I move my camera, the model disappears ! I give you some screens and the M2 if you can help... Have a nice day/night/yule/whatever stormwind.zip
  6. Yup, I didn't have to modify the model. I just had to launch Noggit, do some edits with 0 speed, save all tiles and everything was good !
  7. Fixed ! I've just had to launch Noggit and resave my ADTs and it's working
  8. Not sure about that but I think this tutorial could help you :
  9. Coucou toi ! Aujourd'hui on va apprendre à utiliser Dress NPC by Rochet2 pour créer des PNJs qui claquent la classe en jeu ! Tout d'abord, p'tite musique pour se mettre dans le mood : Rainymood, le site qui fait pluie pluie .: Sommaire :. Introduction Outils requis Créer le display du PNJ Créer la requête SQL du PNJ Profits $$ .: D'abord on l'introduit... :. Tout d'abord, il est nécessaire pour vous de comprendre une chose : Je ne vous expliquerais pas comment l'installer. C'est un .diff à appliquer dans vos sources, si vous lisez deux lignes d'anglais vous saurez le faire, dans ce tuto vous allez apprendre à utiliser Dress NPC. Alors, ce truc c'est quoi ? En gros c'est un créateur de DisplayID pour PNJ, un créateur d'apparence si vous voulez. Alors pourquoi l'utiliser plutôt que de faire le truc tradi du genre blinder une DBC ou deux, créer un BLP et créer un patch ? Bah tout simplement parce que ça ne nécessite aucune de ces étapes-ci. Vous commencez à comprendre ? Des PNJs custom sans créer de MPQ, c'est une révolution. C'est bon, t'as compris l'idée ? Bravo, à ce niveau Polytech t'ouvre ses portes (mais juste ses portes d'entrées ou de conciergerie, pas de salle de classe) .: On rince les outils :. Petite liste d'outils utiles (nécessaires même !) : Wow Model Viewer Un logiciel de gestion de DB, normalement si vous avez un peu suivi après l'installation du script de Dress NPC vous avez eu un script SQL pour créer une table dans votre World, on va notamment travailler dessus. Tout simplement, un client WoW. .: QUOI SA GUEULE ? ♫ :. Tout d'abord on va commencer avec WoW Model Viewer, pour les habitués vous savez en quoi il consiste, on va pas s'éterniser dessus, vous le lancez et vous allez dans le dossier character à gauche et vous choisissez la race que vous voulez exploiter :v ! Aujourd'hui moi j'ai choisi un humain male. J'en profite pour dire que je vais habiller mon humain uniquement avec des fringues from TLK, parce que... Bah parce que. Après la séance d'habillage, voici mon cobaye (oui j'utilise les models HD, oui les humains sont en release, non j'donne pas de lien, débrouillez vous) : Vous l'aurez compris, grâce aux caractéristiques entrées à droite, on va se débrouiller pour que mon PNJ ressemble à ça en jeu. C'est là qu'on passe au remplissage DB. .: Je code avec le... ♫ :. Ici, deux tables seront utilisées : creature_template_outfits (il s'agit de celle ajoutée par le patch de Rochet) creature_template (créer le pnj, on va passer très vite dessus je vous ferais pas une création à 100% je vous dirai juste ce qu'il faut mettre) Tout d'abord, creature_template_outfits. Vous le remarquerez, Rochet2 a eu l'extrême délicatesse de laisser une ligne exemple. On décortique : Maintenant on entre dans le vif du sujet, les fameuses caractéristiques utilisées sur WoW Model Viewer. : entry : c'est évident, c'est l'ID que vous utiliserez pour votre DisplayID, ici j'utiliserai 70177. race : c'est clair aussi, l'ID de la race du futur pnj, ici vu que c'est un humain on met 1, si vous voulez la liste des IDs vous l'aurez ChrRaces => ATTENTION A BIEN PRENDRE L'ID ET PAS LA VALUE class : n'ayant pas trop trop compris l'intérêt de cette colonne, on met 1. gender : le sexe du pnj, 0 si c'est un monsieur, 1 si c'est une madame. Et voici l'habillage : skin : la couleur de peau, dans mon exemple : 4 face : le visage (face type), dans mon exemple : 2 hair : la coiffure, par défaut comme dans WMW la coiffure et la couleur des cheveux sont inversées, dans cette table le hair style passe avant le hair color : 1 haircolor : pas besoin de faire un dessin, ici 0 facialhair : la barbe/piercings... ici : 7 Avant de nous lancer, on va juste se mettre d'accords sur un point, si vous utilisez un itemID (le premier nombre entre crochets) celui-ci doit être affiché en positif dans la table, en revanche si vous utilisez le DisplayID (le second nombre) il devra être précédé d'un -. head : la tête, dans mon exemple : -47051 (DisplayID) shoulders : 0 il n'en porte pas. body : 6833 (ItemID, vous comprenez maintenant je pense) chest : 1486 waist : -16782 legs : 7519 feet : 7522 wrists : 0 hands : -10508 back : 0 tabard : 0 A priori tout est bon, on enregistre. Maintenant dans creature_template je vous laisse créer votre PNJ, la seule chose à faire concernant le displayID est d'écrire dans la case modelid1 ou modelid2... c'est -70177. Pourquoi le - ? Afin que le serveur fasse la distinction entre la DB et le client qui je vous le rappelle n'a subi aucune modification au cours de la création de ce DisplayID. .: *Musique badass de Man at arms* :. Et voici mon PNJ en jeu : Aucun défaut, pas de modif client, vous pouvez vous lâcher. N'hésitez pas si ça vous amuse de montrer ce que vous avez fait en jeu, ça peut inspirer des gens qui passeront après vous. Ce tutoriel est terminé, si vous avez des questions n'hésitez pas, si vous avez besoin de support vous savez où est la section adaptée.
  10. Sommaire Outils requisConfiguration de World EditorCréation du spell de recetteÉdition dans la DBOn regarde en jeu ! Outils requis Outils requisConfiguration de World EditorCréation du spell de recetteÉdition dans la DBOn regarde en jeu !- World Editor que je vous fournis compilé ici - Un peu de logique - Des idées - Un client wow en 3.3.5 (sachant que WE va extraire les dbc ça serait plus pratique) - Truice ou Notepad++(pour les vrais ça ) Configuration de World Editor Vu que ce que je vous donne est un logiciel dénué de toute configuration, autant vous montrer comment faire ! Lancez donc le .exe fourni dans l'archive. Le logiciel va s'ouvrir mais rien ne sera disponible, commençons donc ! Dans les menus contextuels en haut à gauche, nous verrons ceci : Options. Cliquez dessus et vous verrez Éditeur de projet, c'est ce qu'il nous faut ! A ce stade voila ce que vous devriez voir : Si vous ne voyez pas cela, soit vous avez déjà un projet crée, soit il vous faudra cliquer sur le + dans la même fenêtre Commençons avec le nom du projet, dans mon cas j'ai été très original : test :troll: Chemin du projet : C'est ici que seront extraites les DBC, soyez bien vigilants, World Editor ne crée pas de dossier, il faudra donc pointer ce chemin vers un dossier qui existe ! Chemin du dossier World of Warcraft : Bravo vous avez compris qu'il faut que cela mène sur votre dossier client 3.3.5 :troll: Émulateur : Tout simplement ce que vous utilisez pour votre serveur, Trinity, Mangos, Arcemu... Connexion à la DB : là c'est à vous de faire, je vous donnerais bien un exemple mais je suis pas convaincu que ça soit une bonne idée Host : IP du serveur (127.0.0.1 si vous êtes en local) DB : Nom de la DB world nom : votre nom pour vous connecter à la DB mot de passe : Kaput Draconis :troll: Bien votre projet est crée ! Cliquons sur extraire les DBC et attendons que le programme nous dise "g fini :D" C'est là qu'on peut commencer à travailler ! La configuration est terminée ! PS : Fermez la fenêtre du projet, et n'oubliez pas, en haut à droite il faut le sélectionner et cliquer sur Valider pour que le programme sache que vous voulez travailler dessus ! Création du spell de recette Cherchez dans les icônes en haut à gauche, l’icône qui correspond à l'édition de métier Mais dis moi Hyakki, t'avais pas dit qu'on allait éditer les recettes ? Bien sur que si ! C'est d'ailleurs ici que ça se passe ! Attends j'te montre. Chargement en cours, cela peut prendre un certain temps Bon une fois le chargement terminé, vous avez deux onglets dans la nouvelle fenêtre ouverte, métier et recette. ATTENDS ATTENDS ATTENDS ! HYAKKI Y'A RIEN DANS L'ONGLET RECETTE !!!!!!!! Mince, trop tard... Évidemment qu'il n'y a rien parce que si tu n'as pas sélectionné de métier, il ne sait pas quelle recette pour quel métier tu veux faire ! Donc choisissons un métier, disons que le mien... Cuisine tiens ! On clique dessus et une fois ceci fait, nous allons dans l'onglet recette et là... https://youtu.be/XEngx1ghudw ELLES SONT LA ! C'EST LES Bref, nos recettes sont affichées ^^ ! Alors, moi ce que je veux, c'est créer une recette de bas niveau pour mon serveur, une recette qui sera nommée Potage Dalkan. Vous verrez un bouton Nouvelle Recette, cliquez dessus et WE attribuera un ID dans Spell.dbc qui reprendra ceux déjà existants et fera un simple +1 (En gros si le dernier ID de Spell.dbc = 60000, WE créera le spell... Oui vous avez bien suivi, 60001 vous êtes vraiment trop doués :troll: ) Voici donc la fenêtre encore vierge (Kyaaaah y-y-YAMETE) Voyons voir ce qu'elle nous affiche, l'ID du spell et son nom (Nouvelle recette). C'est déjà pas mal ! Nous avons aussi une case "appris de base", si vous la cochez, quand votre personnage apprendra le métier cuisine, votre nouvelle recette sera ajoutée elle aussi par défaut ! Pour le reste : Nécessite : en cuisine vous mettez feu de cuisine. Niveau vert : A quel moment la recette devient verte, si vous mettez 45, elle deviendra verte à 45. Niveau gris : Bah, à quel moment la recette ne vous donnera plus de point de compétence. Résultat : L'ID de l'item qui sera crée à la fin de la recette. Icône : Ne pourra malheureusement pas être fixée sur le logiciel, il faudra donc vous-même éditer Spell.dbc pour se faire. Je ne vous l'expliquerais pas (oh le méchant), mais sans dire de bêtise, il faudra regarder la colonne 133. Ingr : Les composants nécessaires pour la recette et leur quantité. Alors, ma recette est prête, il ne me reste plus qu'à sauvegarder, pour cela, retournons dans l'onglet métier et cliquons sur "Sauvegarder les fichiers". Le logiciel se mettra sans doute à bugguer, laissez le faire, écrire dans Spell.dbc est une opération fastidieuse, attendez juste que le logiciel redevienne disponible. Et voila, ma recette est terminée ! Passons donc à la suite ! Allez chercher vos dbc dans le dossier de votre projet, regardez bien la date de modification des DBC ! Normalement, deux DBC ont été éditées ! Spell.dbc et SkillLineAbility.dbc, prenez les deux et mettez les dans votre MPQ et dans le dossier dbc de votre serveur. Terminé ! Si maintenant on s'occupait de créer la recette (l'item) Bonjour, c'est l'heure de l'injection Alors moi, je suis une feignasse née alors j'utilise Truice (oui ma version est à jour) :troll: Après dans l'idée je pense que vous savez tous comment faire : on ouvre une recette déjà existante et on modifie ce qui doit l'être ! Bon je vous aide, voici ma requête SQL, à partir de ça, je compte sur vous pour vous inspirer de ce script pour faire le reste (si vous n'avez pas Truice ) Potage Dalkan Une fois que c'est prêt, on se rend en jeu et on constate ! (N'oubliez pas de redémarrer le serveur bien sur !) Résultat ingame
  11. Fixed : the mmaps weren't the same... u_u
  12. Hello, Yeah, you'll say "extract maps, extract vmaps..." I already did it, let me explain : I have two maps, one is a "dungeon" map and the other is the "public" map, they are exactly the same maps, same ADTs, same WDT, same maps, same vmaps... But, on the public maps everything is okay, I don't have any problem but on the instanced one, a npc start a waypoint path after giving a quest and he pass through the floor. Only on the instanced one, everything is okay on the public one. Have you any idea about this issue ? I don't really know what to do actually
  13. Bonjour à tous, aujourd'hui on va voir comment créer un métier de récolte type minage ou herboristerie, ça va être long et tendu mais la gloire et le prestige sont au bout du chemin ! Sommaire Outils requis Édit core (C++) Édit DBC Un peu de SQL Outil requis - My DbcEditor ET Spell Editor (pourquoi les deux ? Vous verrez) - De quoi éditer les sources du core (Visual, Notepad++...) => Nécessite un core compilable et non un REPACK !!! - MPQ Editor - Beaucoup, beaucoup de patience. Allez on est partis ! Chirurgie corifique Sans doute la partie la plus CHIANTE du tuto car nécessite une volée de modifications. Tout d'abord on commence avec ScriptedGossip.h Il faut trouver la ligne TRADESKILL_INSCRIPTION = 15, supprimer la virgule en fin de ligne, passer à la ligne suivante puis ajouter : TRADESKILL_BUCHERON = 16, Dans mon cas c'est un métier de bûcheron, si vous voulez mettre autre chose vous êtes libres de faire ce que vous voulez ! On enregistre et on ferme, on a terminé avec ce .h. Passons ensuite à ItemPrototype.h On cherche la ligne ITEM_SUBCLASS_JEWELCRAFTING_RECIPE = 10, et on ajoute ensuite ITEM_SUBCLASS_BUCHERON_RECIPE = 11 On pense aussi à faire un +1 sur la ligne suivante #define MAX_ITEM_SUBCLASS_RECIPE En gros si c'est à 10 on met 11 etc... Terminé pour ItemPrototype, on attaque le final boss des .h j'ai nommé SharedDefine.h C'est le pire des fichiers, celui qui m'a demandé le plus de modifications avec mon équipe, et à chaque modif qu'on faisait on pouvait être sûrs d'en oublier une ensuite alors soyez vraiment attentifs, plus que jamais. On commence par trouver ça : QUEST_SORT_LOVE_IS_IN_THE_AIR = 376, s'il n'y a pas de virgule en fin de ligne on l'ajoute puis on saute une ligne pour ajouter : QUEST_SORT_BUCHERON = 377, Ensuite on cherche SKILL_PET_EXOTIC_SPIRIT_BEAST = 788, et on ajoute à la suite SKILL_BUCHERON = 800, ET SURTOUT ! SURTOUT ! On est pas con comme moi qui a perdu deux jours avec ça, on édite bien : #define MAX_SKILL_TYPE 789 en #define MAX_SKILL_TYPE 801 Ensuite (après c'est fini) on cherche LOCKTYPE_OPEN_FROM_VEHICLE = 21, puis on ajoute à la suite LOCKTYPE_BUCHERON = 30 Pourquoi un locktype ? Parce qu'en fait le minérai/arbre/autre dépend d'un locktype basé sur votre skill. En gros le skill est une clé et votre item à récolter un coffre, seulement si vous n'avez pas bien paramétré ça, ça ne marchera jamais pour récolter... (quand je vous dis que j'y ai passé un temps fou sur ce métier). Pour fini on cherche case LOCKTYPE_INSCRIPTION: return SKILL_INSCRIPTION; et on ajoute en dessous : case LOCKTYPE_BUCHERON: return SKILL_BUCHERON; Presque terminé ! J'avais dit que SharedDefine.h est le dernier fichier à éditer mais c'est faux, tout n'est que mensonge, allez hop, on ouvre Player.cpp On cherche : { case SKILL_HERBALISM: case SKILL_LOCKPICKING: case SKILL_JEWELCRAFTING: case SKILL_INSCRIPTION: return UpdateSkillPro(SkillId, SkillGainChance(SkillValue, RedLevel+100, RedLevel+50, RedLevel+25)*Multiplicator, gathering_skill_gain); case SKILL_SKINNING: if (sWorld->getIntConfig(CONFIG_SKILL_CHANCE_SKINNING_STEPS) == 0) return UpdateSkillPro(SkillId, SkillGainChance(SkillValue, RedLevel+100, RedLevel+50, RedLevel+25)*Multiplicator, gathering_skill_gain); else return UpdateSkillPro(SkillId, (SkillGainChance(SkillValue, RedLevel+100, RedLevel+50, RedLevel+25)*Multiplicator) >> (SkillValue/sWorld->getIntConfig(CONFIG_SKILL_CHANCE_SKINNING_STEPS)), gathering_skill_gain); case SKILL_MINING: if (sWorld->getIntConfig(CONFIG_SKILL_CHANCE_MINING_STEPS) == 0) return UpdateSkillPro(SkillId, SkillGainChance(SkillValue, RedLevel+100, RedLevel+50, RedLevel+25)*Multiplicator, gathering_skill_gain); else return UpdateSkillPro(SkillId, (SkillGainChance(SkillValue, RedLevel+100, RedLevel+50, RedLevel+25)*Multiplicator) >> (SkillValue/sWorld->getIntConfig(CONFIG_SKILL_CHANCE_MINING_STEPS)), gathering_skill_gain); } (ouais c'est gros je sais) qu'on remplace TOTALEMENT par : { case SKILL_HERBALISM: case SKILL_LOCKPICKING: case SKILL_JEWELCRAFTING: case SKILL_INSCRIPTION: return UpdateSkillPro(SkillId, SkillGainChance(SkillValue, RedLevel + 100, RedLevel + 50, RedLevel + 25)*Multiplicator, gathering_skill_gain); case SKILL_SKINNING: if (sWorld->getIntConfig(CONFIG_SKILL_CHANCE_SKINNING_STEPS) == 0) return UpdateSkillPro(SkillId, SkillGainChance(SkillValue, RedLevel + 100, RedLevel + 50, RedLevel + 25)*Multiplicator, gathering_skill_gain); else return UpdateSkillPro(SkillId, (SkillGainChance(SkillValue, RedLevel + 100, RedLevel + 50, RedLevel + 25)*Multiplicator) >> (SkillValue / sWorld->getIntConfig(CONFIG_SKILL_CHANCE_SKINNING_STEPS)), gathering_skill_gain); case SKILL_MINING: if (sWorld->getIntConfig(CONFIG_SKILL_CHANCE_MINING_STEPS) == 0) return UpdateSkillPro(SkillId, SkillGainChance(SkillValue, RedLevel + 100, RedLevel + 50, RedLevel + 25)*Multiplicator, gathering_skill_gain); else return UpdateSkillPro(SkillId, (SkillGainChance(SkillValue, RedLevel + 100, RedLevel + 50, RedLevel + 25)*Multiplicator) >> (SkillValue / sWorld->getIntConfig(CONFIG_SKILL_CHANCE_MINING_STEPS)), gathering_skill_gain); case SKILL_BUCHERON: return UpdateSkillPro(SkillId, SkillGainChance(SkillValue, RedLevel + 100, RedLevel + 50, RedLevel + 25)*Multiplicator, gathering_skill_gain); } Et là, on a terminé avec le C++, sisi pour de vrai. Chirurgie DBCifique Une autre partie peu amusante seulement j'ai proposé d'utiliser Spell Editor pour des raisons évidentes de FAINÉANTISE. Cependant, on va utiliser MyDBCEDitor pour les premières DBCs basiques, en gros on aura besoin de Spell Editor que pour... Bah pour Spell.dbc en fait, dingue non ? On commence facilement avec SkillLine.dbc Moi je suis un faignant naturel, pour évoluer dans mon habitat je prends une ligne et je la duplique pour modifier le duplicata. Exemple : On enregistre et on ferme puis on passe à SkillRaceClassInfo.dbc qui n'est pas plus compliquée que le reste mais je vais prendre le temps de vous détailler un peu les différentes colonnes qui vont nous intéresser cette fois. 1 - ID, unique. 2 - ID de la compétence (ici 800) 3 - Bitmask des races autorisées. 2047 pour toutes. 4 - Bitmask des classes autorisées. 1535 pour toutes. 5 - Flags 6 - Niveau minimum pour cette compétence. Donc, si on reprend le minage : Incroyable hein ? Ensuite d'autres petites DBC trop choupi pour avoir un métier PAR-FAIT. Lock.dbc Ici c'est con, on ajoute une ligne et on écrit ça : Terminé. On peut passer à LockType.dbc On prends une ligne et on en change un peu le contenu, c'est vraiment de la touchette à ce moment du tutorial, vous pouvez limite mettre vos enfants, petits frères/soeurs sur le travail en allant déguster une merveilleuse Sangria sous ce beau soleil d'été. Ce qu'il fait avec ces DBCs est incroyable, les moddeurs le détestent, suivez en 10 étapes comment faire maigrir votre Ogre... Pardon. On attaque TotemCategory.dbc. En gros cette DBC nous permet de donner un nom à l'outil qu'on va utiliser pour récolter (pioche, pelle, godet, moissonneuse batteuse...) On copie, on duplique, on colle, je devrais en faire une chanson... En gros quand vous allez miner ça vous dira "requiert Hache de bûcheron" vous voyez le délire ? Par contre chaque item que vous voudrez utiliser pour récolter devra hériter de cet ID de totem (c'est du SQL j'vous montre plus tard) On va passer à Spell.dbc. Cependant, je ne fournirai pas de tuto sur la création d'une recette pour le métier ici parce que je suis trop méchant. J'ai posté un tutorial sur comment créer une recette avec world Editor, si cela ne vous suffit pas il suffit de faire comme on fait d'habitude, on prend une ligne, on duplique, on édite. C'est chouette non ? Cependant, en bonus je vous donnerai une explication de la DBC à retoucher pour que vos recettes fonctionnent, j'suis qu'une moitié de méchant du coup. Et cette fois, on sort le Spell Editor, la grosse Bertha comme on dit dans l'métier. L'intérêt de ce soft c'est qu'il va nous afficher tout le contenu dans des cases claires, ça veut dire qu'on aura pas de temps à perdre sur les 100000000000 colonnes de Spell.dbc, on édite le strict minimum et let's go McFly, to the future ! Mais si on fait pas de recette, à quoi va servir Spell.DBC ? C'est une bonne question Raymond, et bien simplement à créer les grades du métier Sont y pas beaux ? La question c'est pourquoi on a deux fois chaque spell, exemple, pourquoi on a le 80009 et le 80010 avec la même icone ? (oui ça a son importance dans mon classement) => en fait c'est simple, l'un des spells est celui qui vous permet de couper l'arbre (le 80009) et l'autre est celui qui sera affiché dans la fenêtre du maitre de profession (80010), c'est aussi celui-ci qui servira en condition "requiert machin pour apprendre truc" En gros chez nous ça donne => minage/apprenti mineur. Donc on va aller prendre les deux spells et modifier EXACTEMENT chaque zone rouge que je vous montrerai dans les screens qui vont suivre. N'oubliez pas de bien paramétrer Spell Editor si ce n'est pas déjà fait, ça mange pas de pain. Le fait de créer un nouveau spell va vous demander si vous souhaitez copier les données d'un autre vers une nouvelle ligne, bonjour le gain de temps ! On prends donc le premier spell apprenti mineur (2581) qui comme vous le verrez nous enseigne le spell 2575 (minage (apprenti)), pour chaque grade vous devrez refaire le même process d'utiliser deux spells à chaque fois, voici les modifications à apporter d'abord sur le 2581 puis sur le 2575. D'abord on crée un nouveau spell en cliquant sur New Spell dans la barre bleue en haut à droite. Le nouveau spell est crée c'est parti. Le seul truc à déplorer c'est que Spell Editor ait quelques difficultés à lire certaines DBCs FR c'est pour cela que je vous invite à ne pas toucher aux DBCs présentes dans le dossier du soft sauf Spell.dbc si vous avez déjà des spells custom et que vous voulez pas vous prendre la tête Pour le reste, je pense notamment à TotemCategory.dbc veillez à ajouter sur la DBC du soft la même ligne que celle de votre DBC FR et ça passera crème. Et l’icône si vous voulez la changer le menu semble être assez évident hein ? Attardons nous d'abord un peu sur tout cela. Screen 1 : Trigger Spell, le spell qui va être enseigné au travers de celui-ci, en gros le 80000 enseignera le 80001... Screen 2 : Quel skill ? Dans ce que nous avons fait plus haut notre Skill est 800 donc on met 800. Terminé pour ce spell si vous ne touchez pas à l’icône. On clique sur save spell change en haut à droite et on refait un nouveau spell basé cette fois sur le 2575. Je vous repasse la création de spell vous avez compris comment elle marche. Screen 1 : TotemCategory : elle est vide chez moi à cause de la DBC FR, si vous suivez ce que je vous ai dit précédemment vous pourrez choisir votre outil. Screen 2 : Le type de lock, ici 3 on change pour 30 lock.dbc ça vous rappelle quelque chose ? Screen 3 : Encore le skill, on met à 800. A refaire pour tout les grades du métier, apprenti, compagnon, expert, artisan, maitre, grand maitre... Histoire de vous aider un je vous liste les IDs utiles : - Apprenti : 2581/2575 - Compagnon : 2582/2576 - Expert : 3568/3564 - Artisan : 10249/10248 - Maître : 29355/39354 - Grand Maître : 50309/50310 Les modifications seront toujours les mêmes donc vous voila tranquilles ! Dernière DBC à toucher ! ENFIN ! SkillLineAbility.dbc En gros c'est la DBC qui gère les chaines de spell et les recettes. Une chaine de spell c'est quand plusieurs spells se suivent dans une ligne, par exemple compagnon suit apprenti etc et c'est aussi cette DBC qui définit quand une recette passe de vert à gris et seulement ces deux là ! 1 - ID, unique. 2 - Correspond à la compétence (SkillLine.dbc) 3 - Correspond au sort concerné (Spell.dbc). 4 & 5 - Toujours 0. 6 & 7 - Vide. 8 - Toujours 1. 9 - Sort parent du sort en colonne 2. 10 - 0x0 en général. 0x1 pour apprendre la recette en même temps que la compétence. 11 - Niveau quand la recette devient grise. 12 - niveau quand la recette devient verte. 13 & 14 - Vide. Dans l'exemple des métiers ça va nous donner : 25000,800,80000,0,0,,,1,80002,0x0,0,0,,, 25001,800,80002,0,0,,,1,80004,0x0,0,0,,, 25002,800,80004,0,0,,,1,80006,0x0,0,0,,, Honteusement copié d'un autre tutoriel, l'essentiel c'est que vous compreniez où je veux en venir. A refaire pour chaque grade de profession. Dans le cas d'une recette, on le fait à l'ancienne, on copie une ligne et on l'édite. Et c'est terminé avec les DBCs ! Le SQL, le meilleur pour la fin. En fait en SQL on a presque rien à faire. Sisi j'vous jure. Les restrictions pour apprendre tel ou tel spell, par exemple on peut dire qu'il faut que le spell 80000 soit requis pour apprendre le 80001 et bien on peut, il suffit (avec TrinityCore) d'ouvrir la table dans World required_spell et on ajoute ce qu'il faut dans les deux colonnes, à faire pour chaque grade, bien entendu. Mais le maitre alors ? Voici un template complet pour votre maitre. SET @ENTRY := VOTRE_ID; SET @APPRENTI := SPELL_APPRENTI; SET @COMPAGNON := SPELL_COMPAGNON; SET @EXPERT := SPELL_EXPERT; SET @ARTISAN := SPELL_ARTISAN; SET @MAITRE := SPELL_MAITRE; SET @GRAND_MAITRE := SPELL_GRAND_MAITRE; INSERT INTO `npc_trainer` (entry, spell, spellcost, reqskill, reqskillvalue, reqlevel) VALUES (@ENTRY, @APPRENTI, 100, 0, 0, 5), (@ENTRY, @COMPAGNON, 475, 800, 50, 10), (@ENTRY, @EXPERT, 4750, 800, 125, 10), (@ENTRY, @ARTISAN, 47500, 800, 200, 25), (@ENTRY, @MAITRE, 100000, 800, 275, 0), (@ENTRY, @GRAND_MAITRE, 350000, 800, 350, 0); Tout est écrit, les prix, les niveaux requis, le niveau de compétence dans tel ou tel skill, tout est prêt, vous n'avez que les SET à éditer. Pour ce qui est des GobJects je ne ferais pas d'annexe sur ce tuto ici étant donné que tout le monde ne va pas faire le même métier et qu'ajouter en plus une gestion de GameObjectDisplayInfo.dbc ferait de ce tuto quelque chose d'encore plus long. Pareil, pour créer un arbre ou autre, n'hésitez pas à reprendre le script SQL d'un filon et de l'éditer comme il faut. Tutoriel terminé, ayez du fun et n'hésitez pas à demander si vous êtes perdus !
  14. Same, send me what you need to translate I'll do the french part
  15. You should pick some code from here, it may help you https://bitbucket.org/LeorFinacre/world-editor I'm not a developer but if just a repo can help you...
  16. As I said in PM today (I don't receive notification when someone post on my tutorials >< ) it's a different method ! Never tried
  17. You have to open your .tga file with Photoshop and then renamed it with Photoshop
  18. Hi guys (and girls) I wanted to use my free time to write new tutorials, here is what I'm planning, if you have some suggestions, feel free to answer after me I'm not a pro, don't ask for hard tutorials ! Don't ask for mapping tutorials too, I'm the worst mapper in the known world ! How to create new Titles (EN/FR) How to create new Extra faces (EN(?)/FR) How to create a custom job (EN/FR) It's a short list yeah, but it's kinda cool imo ^^
  19. You know, if Wingausaurus is able to update a listile, you can do the same ! I mean, MMO-Champion is releasing a lot of images and those imgs contain the EXACT name of what is showed on it, it means you can open a .txt, and add you path by yourself instead of waiting an other guy does it for you.
  20. Bonjour à tous aujourd'hui on va apprendre à créer un DisplayID de PNJ ! Sommaire Outils requisPréparer mon displayCreatureDisplayInfoCreatureDisplayInfoExtraCréer le patchAjout en DBOutils requis - Un logiciel comme Photoshop ou Gimp, je recommande Photoshop pour ceci : BLP Plugin - Wow Model Viewer - BLP Converter (inutile si vous utilisez Photoshop) - My DbcEditor - MPQ Editor - Votre client ! Création du DisplayID On commence donc avec WoW Model Viewer ! Tout d'abord, il faut choisir à quelle race va appartenir notre futur PNJ ! Je choisis homme humain. Vous pouvez sélectionner ceci dans le menu de gauche, dans la partie "character" Et c'est maintenant que tout commence. Explication rapide. Tout d'abord, la première partie du menu va définir le look physique du PNJ, couleur de peau, barbe... ATTENTION ! Dans CreatureDisplayInfoExtra, hair color et hair style sont inversés ! En dessous, c'est ici que nous pourrons choisir les vêtements de notre PNJ Enfin, en dessous encore, le style du tabard (il faut équiper un tabard de guilde pour ça) Je vous laisse préparer votre PNJ, je fais faire le mien et nous comparerons pour voir qui a fait le plus beau ! Terminé ! Voici le mien : Maintenant, petit conseil que je vous donne, screenez le contenu du menu de droite, à un moment nous devrons sans douter fermer WMV et il est nécessaire de ne pas perdre ces infos. Parfois vous verrez deux nombres à la droite des noms d'item, ils sont importants, le premier est l'itemID, le second son displayn parfois vous aurez besoin de l'un, et parfois de l'autre, alors gardez les ! Notre PNJ est terminé, il ne reste plus qu'à extraire sa texture. Avec mon model viewer je fais comme ceci : Une fois exporté, un seul fichier nous intéressera : body.tga Ouvrez le avec Photoshop ou trouvez un moyen de convertir le tga en PNG puis en BLP en le faisant glisser sur BLP Converter, l'objectif reste le même : convertir le tga en blp. Vous avez la possibilité avec Photoshop de modifier des éléments, ajouter des cicatrices au visage par exemple ! Si vous n'utilisez pas le plugin BLP pour Photoshop, enregistrez votre fichier en PNG et faites le glisser sur BLP Converter Texture terminée ! "Mais, Hyakki, et les armes ?!" Creature_equip_template, base de données world ! A ton tour CreatureDisplayInfo ! Ouvrez la DBC avec MyDBCEditor fourni un peu plus haut dans ce tutoriel, vous verrez des lignes et des colonnes, beaucoup. Allez à la dernière ligne, faites un clic droit, choisissez "insert line..." votre ID DOIT être unique ! Et supérieur à l'ID de la dernière ligne de préférence. Je choisis le 70010. Explication rapide 2 : Première colonne : ID unique Seconde colonne : l'ID du model tel qu'enregistré dans CreatureModelData.dbc (49 = human male par exemple) Troisième colonne : aucune idée, on met 0 Quatrième colonne : ExtraDisplay, donnez lui un ID unique cet ID devra être réutilisé dans CreatureDisplayInfoExtra. Cinquième colonne : Mettez 1 Sixième colonne : Opacité du display, 255 = creature opaque, 0 = fantome. Septième et huitième colonne : Extra texture, quand votre creature n'a pas de display, prenons un ours pour exemple, c'est dans ces colonnes qu'on dira de quelle couleur sera le poil de l'ours en fonction du nom de son skin (brownbear) par exemple. Colonne suivant : Sound ID, par défaut 0 mais si vous souhaitez donner une voix à votre creature, allez fouiner dans NPCSounds.dbc. Dernière colonne : 0 Parfait, jetons un oeil à ma colonne ! Cette DBC une fois enregistrée devra être dans votre patch et sur le serveur. Suivant ! Braces yourselves CreatureDisplayInfoExtra is coming ! C'est enfin ici que tout prendra forme. Documentation ! 1 : ID, unique dans le fichier, est appelé dans la 4eme colonne de CreatureDisplayInfo.dbc2 : Race de la créature. Correspond à un ID de ChrRaces.dbc3 : Genre, 0 pour masculin, 1 pour féminin.4, 5, 6, 7 & 8 : SkinColor, FaceType, HairStyle, HairType, BeardStyle respectivement. Correspond à certains paramètres du modèle. Si vous avez encore model viewer de lancé, référez vous au haut du tableau que vous avez modifié 9 : DisplayId du casque porté par le PNJ. Correspond à un ID de ItemDisplayInfo.dbc10 : DisplayId des épaulières portées par le PNJ. Correspond à un ID de ItemDisplayInfo.dbc11 : DisplayId de la chemise portée par le PNJ. Correspond à un ID de ItemDisplayInfo.dbc12 : DisplayId du torse porté par le PNJ. Correspond à un ID de ItemDisplayInfo.dbc13 : DisplayId de la ceinture portée par le PNJ. Correspond à un ID de ItemDisplayInfo.dbc14 : DisplayId des jambières portées par le PNJ. Correspond à un ID de ItemDisplayInfo.dbc15 : DisplayId des bottes portées par le PNJ. Correspond à un ID de ItemDisplayInfo.dbc16 : DisplayId de l'anneau porté par le PNJ. Inutile car non affiché sur le PNJ de toute manière donc mettre 0.17 : DisplayId des gants portés par le PNJ. Correspond à un ID de ItemDisplayInfo.dbc18 : DisplayId des poignets portés par le PNJ. Correspond à un ID de ItemDisplayInfo.dbc19 : DisplayId de la cape portée par le PNJ. Correspond à un ID de ItemDisplayInfo.dbc.20 : Mettre 0.21 : Texture qui sera utilisée par le PNJ. Indiquez simplement le nom de la texture, par exemple "NouveauPNJ.blp" qui devra être placé dans le dossier Textures\BakedNpcTextures\.(Dans mon cas admerin.blp)Remplissez votre DBC avec les ID que vous avez choisis pour votre NPC, faites attention encore une fois, parfois la première valeur sera valide et parfois ce sera la seconde. Résultat : On sauvegarde, côté serveur et côté client ! Mais... Où ça dans le patch ?! Je ferais comme si vous saviez déjà créer un MPQ, donc ouvrez le avec MPQ Editor. S'ils n'existent pas, créez deux dossiers à la racine du patch et nommez les : DBFilesClient Textures Vous pouvez mettre vos deux DBC dans DBFilesclient Maintenant allez dans Textures, créez un dossier nommé BakedNpcTextures et mettez votre .blp dedans. Le patch est prêt. Dernière étape ! Creature_model_info Côté serveur ! Dans votre DB world ouvrez la table Creature_model_info Explication rap... non allez, copiez le contenu d'une autre ligne et collez le comme une brute, ne changez rien SAUF UNE CHOSE ! Votre ID doit être le même que celui choisi dans CreatureDisplayInfo, dans mon cas : 70010. Il s'agite de votre DisplayID à utiliser pour votre créature. On sauvegarde, on crée le PNJ, on relance le serveur... Tutoriel terminé ! N'hésitez pas à montrer votre rendu
  21. Version 1.0.0

    567 downloads

    I found it in my old computer, I don't really know what it contains but I'm sure it was made by SirFranc AND Stromgarde is in it, I'm 100% sure. This patch is useless for me and I know Sirfranc allowed this share, so I give it to you, maybe you'll find some interesting things
  22. Just ordered Legion, take my money Blizzard, I'm so weaaaaak :'(

    1. Show previous comments  3 more
    2. Elrena

      Elrena

      Me too Hyakki... Me too :'(

    3. Axel

      Axel

      I think we all did ./cry

    4. Met@

      Met@

      I did it for the artbook (and the making of we'll can see on youtube later :'( )

  23. Bump ! I just thought about something... Do we have a really good and working tool for making fly path ? Because I never really understood how to do it and when I tried, I had some issues... So, good idea or not ?
  24. Nice tool, you make me save a lot of time
  25. That's why you're a good dev, some people should think you're crazy. I can give you an example (Stormheim again) They don't share or release, they don't help, their admins are ddosing the last standing french wow community because they were banned because of their behaviors. Those guys want to beat Firestorm, they don't care about helping others, that's why we don't appreciate them, I agree with you, imo nothing is better than a thank you and some questions about your last release, making people happy is a great reward, better than money