Search the Community
Showing results for tags 'Ship'.
Found 2 results
9 downloadsThis is model of a Antaeus from Hostile Waters Antaeus Rising from 2001 developer by Rage this model was extracted from the game and ported to wow in two version first is rusty version that you play as in first 7 levels and then the renred version after Antaeus is fixed after sitting on seafloor for like 20 years or so
Hello there little whelps, there have been quite a lot of requests for transports tutorial and guy who promised that he will write it didn't do so, so I decided I will write this tut for you on my own. What are transports? Transports in WoW are in fact gameobjects which are being moved along a path specified in DBCs, which are quite easy to understand and edit, so this should not be anything difficult even for beginners. Players who stand on gameobject working as transport move together with it, until they leave it. It seems there are 20 blizzlike transports in blizzlike TC2 world database and all are ships and zeppelins, it works quite nice for water and air traveling. Sadly, this system doesn't work very well for ground traveling, I will explain why later. Transport system shares DBCs with taxi (fly/wind path/master) system, and is very similiar to it, with just a few differences. What will you need? - MyDBCEditor (or other WORKING DBC editor, forget Taliis, please) - any editor for MySQL databases - TaxiNodes.dbc - TaxiPath.dbc - TaxiPathNode.dbc TaxiNodes.dbc You can see example of my 2 custom TaxiNodes. These nodes are in fact just to specify where destination lays (docks for example), but they have nothing to do with actual paths which transports will follow. Make sure you enter correct map ID (its in hex here, 0x25 is 37 in dec, and thats ID of map I was using here), but X, Y and Z coords don't need to be really exact. Name is in fact just a note for you and last 2 columns specify entry of creature used as mount for taxi path, but have no effect for transports and thus I left them empty. TaxiPath.dbc This is really fast and simple step, TaxiPath is a connection between two TaxiNodes. Just create a new row with entries of 2 nodes you want to have connected with transport, last column specifies prize for taxi (and we are doing transports, that prize would have no effect even if there was another value than 0). While you can connect only 2 TaxiNodes with one TaxiPath, you may make your transport stop on whatever point of path you wish, it can enter 50 docks and stop there if you want, so both TaxiNodes and TaxiPath aren't important at all - they are there in fact just to make server and client happy and you a little bit more busy. TaxiPathNode.dbc This will take most of your time. You need to specify path which will be followed by transport. Enter (correct) ID of TaxiPath (which connects 2 of your TaxiNodes) and coordinates of each waypoint into #5, #6 and #7 column (you can get your character's coords by command .gps, path on screen belongs to ship, so Z coord was always 0 for me). Don't forget to assign unique point ID in column #3 for every waypoint of your path, otherwise either your client or server may crash (note that first waypoint has ID 0, not 1). You can also notice that I left all other columns 0, they are rarely used and I am not sure what they are for. There are only 2 exceptions, you can notice those 2 rows with values 2 and 10 in #8 and #9 column. In that case, transport stops at that waypoint and waits there for 10 seconds. You can have more than 2 of such points, as I have already mentioned earlier, so your ship/zeppelin can visit as many docks as you wish and wait there as long as you want for passangers.You can try to experiment more with last 5 columns in this DBC, hopefully you will find out how at least some of them work. A few tips and notes for creating a path - Every TaxiPath needs to be made of at least 3 waypoints, otherwise you get crash. - Path itself is made of curves which are being calculated from waypoint positions and distances between them. Its good to keep distances between waypoints even, otherwise you can get unpleasant buggy results. Also don't make too sudden and sharp turns, otherwise your transport can either go very far from waypoints while turning (and even pass through some objects around, and thats obviously quite unpleasant) or bug a little bit and jump/teleport suddenly. - Mark waypoint you have already entered into DBC with some sort of gameobject or NPC while spawning a path. I use wisp NPC Waypoint (entry 1) for this, because it can fly and is invisible for players. You can delete your marks when you are finished. - Make damn sure you don't mistype anything while entering coord values into this DBC. One mistype can send your ship across world and you will be there standing like fool, waiting in docks for ship which is basically never coming, because it is following dozens of kilometres long path. - To make transport follow exact path is very, very difficult, because, like I said, exact path is calculated and calculations are just based on coords of your waypoints. While transport passes waypoints themselves directly, you can't modify its path very easily between waypoints at all. Avoid narrow passages if you can, or create such passages based on already created and finished transport path, not otherwise. For this reason, ground transports just don't work well, they tend to fly above or sink under terrain all the time between waypoints. - While being in transport, players ignore all collision with world around. You can surround for example your island with impassible flags or with some models which can't be passed by players, but they will always pass them in transports. So you can make players to just have to use transports quite easily. - If you wish to make transport teleport players from map A to map B (and thats what basically are mostly transports for in blizzlike setting), just make transport move to some waypoint at map A and then enter a new waypoint with mapID of map B into DBC. Thats whole magic around. - Transports tend to teleport between last and first waypoints of their path. Don't ask me why, I never found out. It seems that transports in fact don't move in circles, they are always respawned after finishing their path. Players are, luckily, not dropped into sea when this happens, but just appear on new transport. Its still a little bit unpleasant effect, especially if you want to have transport travelling around one map without any teleports, but I have never found real solution for this. Just make those last and first waypoints close to each other. Blizzlike transports don't seem to have such problems, I am not sure what is going wrong here. world.gameobject_template You will need to create your gameobject which will be used by transport. Fields which are not noted here don't seem to be important/working and should be left with base values (0/NULL), but again, you are free to experiment. - Entry, do I have to explain anything? - Type needs to be 15 (11 is for elevators, which work with entirely different than transport system). - DisplayID is up to you, which means that transports don't have to be huge WMO ships, you can use even a small M2 boat doodad, if you want to. Just make sure your model has collisions. - Name, again, self-explanatory. - Flags, most transports have flags=40, some have 0, but I would not use 0. - Size can be used other than 1 for M2s. - data0 is ID of your TaxiPath - data1 should be speed but it appears to not work as one would expect. 30 is most common and fine-working value. You can ofc try both lower or higher and see how results will fit to you. - data2 should be some kind of acceleration modifier...? All blizzlike transports with speed 30 have 1 accelRate. - data5, I don't know what this field is for. - data6, specifies ID of group of NPCs spawned onboard and travelling with transport, however, I don't know to what table this field reffers to. - data7, a few transports have value 3481, again, I have no idea what this is for. - data8, a few transports have value 1 and again, I have no idea what this is for. - AIName, ScriptName, you can, obviously, assign any scripts you wish to this gameobject. I have never tryed to assign some, for instance, SmartAI script to transport, but I see no reason why it should not work. One blizzlike transport has SAI scripts. - VerifiedBuild, you should always everywhere use value 12340 (3.3.5a revision number) to avoid any possible problems. world.transports And here we go, the last thing to do is to place our transport here. Make sure you have placed your edited DBCs both into server's data folder and into your client's custom MPQ patch, create a new row in this table with new, unique GUID, enter entry of your transport gameobject, name is just for description. Older TC2 revisions have also period field, which appears to specify how long should core wait to respawn transport (put it on start of path), but it was removed and system seems to obtain that value on its own, automatically.The most easy way to disable transport is just deleting it from this DB table, you don't need to delete its data from DBCs. Your transport should be there, waiting just for you, but it usually takes a few (sometimes dozens) of attempts to make your path smooth, not-running into any terrain or models and clean it of teleport bugs made by too sharp curves or by too big differences of distances between waypoints. Especially making transport really dock properly with proper rotation and position can be pretty terrible task to do. How to create taxi path? Someone asked me about taxi path systems... They are basically the same. You create TaxiNodes (btw again, if memory serves me well, nodes themselves aren't part of paths of taxis), connect them with TaxiPaths (in this case you might also want to specify prize for TaxiPath in copper), spawn TaxiPath which will, in this case, be not a circle, but straight path from point A to point B. And you are, basically, done. Taxi vs transportTaxi pros: + you can make player pay for travelling + you can link taxis to SmartAI scripts (there is action to send player somewhere by taxi) + you don't have to worry so much about boat fitting and sailing around docks without colliding with them, you just need to land on floor and there you go Taxi cons: - player on taxi has no collisions, so hello, boat which has just passed across my face - unlike transport, taxi always connects only 2 points, creating 1 path with 3 docks means creating 2 or 3 TaxiPaths - players can't travel together in taxi - more players travelling together mean more taxis... imagine those 20 boats in one, overlapping group - a map where you select to which TaxiNode you want to be taken never worked for me on maps where no fly masters originaly are, I never found solution, possibly core/LUA issue, I found a way around, you can simply make gossip menu for every fly master where gossip menu options will send you via taxi to wished point, buuut... its not ideal sometimes Transport pros:+ players can play (roleplay?) with each other while travelling together+ can connect multiple places where it stops+ have collisions+ looks nice and realistic, much more than raid of 20 boats Transport cons:- you can't really (easily) make players pay for transportation- can't be (easily) called by SmartAI scripts- path needs to be more properly done around landings- is sometimes somehow inflexible if you want to make one landing temporarily impossible to travel to In general, I found myself still preferring taxi system over transport system, even while taxis have quite a lot of cons. However, taxi system just works better for me while I want to make players pay for travelling and while I want to be able to easily disable some paths from time to time. I also love possibility to assign taxi to SAI script. Being able to have conversation with NPC, during which you will be informed where will you be taken, how long it will take, what hazards are there and so on? Sign me in, especially for RP servers definitely great possibilities. Taxis are also great as part of quests and Blizzard uses them in such manner very often. Its cool and in fact quite simple to make system.