Mapping Simple Primitives

Mapping Simple Primitives

See Using the World Editor for instructions on how to set up the World Editor.

In $RYZOM_HOME\code\ryzom\tools\leveldesign\install you will find mount_l.bat which the World Editor uses as the primary path for loading level definitions and primitives in to the world. Adjust the path appropriately to reflect the path of ryzom\common\data_leveldesign. So you don't have to distribute these files to your linux-based server, you may want to instead use a Samba share and edit the shard directly. It is unknown if this will negatively affect a running shard so I highly recommend you stop your shard before saving any changes. Since the world file is located outside of the data_leveldesign path, I also recommend that you map another drive to code/ryzom/leveldesign/install. Let's call this drive Z:.

Once you successfully launch the World Editor, open Z:\world_editor_continents\newbieland.worldedit. If this does not load properly, ensure that you have followed all the steps in the above listed article for setting up the World Editor. It should also load Z:\continents\

Now you can open a primitive layer such as the urban_newbieland.primitive on the L: by going to Project and Add Primitive. Navigate to L:\primitives\newbieland and open urban_newbieland.primitive.

At this point, you should see an area with at least 3 light-blue dots in the lower right-hand corner of the map. Use the mouse-wheel to scroll in on this area. If you have the shard monitor plugin for World Editor loaded and connected, you'll actually see all the yubos running around and the 3 merchants reflect by small moving icons and status indicators.

Go ahead and expand the urban_newbieland.primitive tree down to ranger_leader. Within ranger_leader you can see our good old ranger Ryzom welcomer called Chiang the Strong. We're going to copy him, make some changes, and move him to an appropriate spot.

Right-click on ranger_leader and at the bottom select Add npc_bot. Copy all the values from chiang_the_strong$fct_ranger_leader$ (right-click and go to properties) but change the name to chiang_the_strong2$fct_ranger_leader$.

Right-click on chiang_the_strong2$fct_ranger_leader$ and select Add mission. Copy all the values from WELCOME_RYZOM_CORE located under chiang_the_strong$fct_ranger_leader$ but change the name to WELCOME_RYZOM_CORE2 and the following parts of the script

  • decl : bot : chiang_the_strong2
  • mission_title : WELCOME_RYZOM_CORE2_TITLE
  • mission_desc : WELCOME_RYZOM_CORE2_DESC

Once you have verified all the fields, go ahead and position our new ranger to an appropriate location near the other merchants. Select chiang_the_strong2$fct_ranger_leader$ and see which blue dot turns gray and drag that dot to the location you would like to place him. Once you are satisfied with the location, save the world.

Now we would like to change some things like the name of our new bot, the mission text, and potentially what he says. You can find these things on the server under code/ryzom/server/data_shard/language.

To first change the mission text, edit phrase_en.txt (using whatever localization for your language) and look for WELCOME_RYZOM_CORE_TITLE. Let's create two new entries just like WELCOME_RYZOM_CORE_TITLE and WELCOME_RYZOM_CORE_DESC directly after labeled WELCOME_RYZOM_CORE2_DESC and WELCOME_RYZOM_CORE2_DESC and change the text accordingly.

Now to change the name, we will need to first edit bot_names.txt and copy the line containing chiang_the_strong in the "bot name" field. This is a unicode encoded, tab separated file so be sure to use an appropriate editor. We'll change the HASH_VALUE to a unique hash value (i.e. _819E5006E9093124), "bot name" to chiang_the_strong2, and "translated name" to $gn_chiang_the_strong2$. Be sure to add an extra tab to the end of the line to account for the blank sheet_name field if you are in a text editor instead of a spreadsheet application.

Next to actually change the name, edit title_words_en.txt and search for gn_chiang_the_strong. Copy this line as well (once again a unicode encoded, tab separated file) and make the HASH_VALUE unique (i.e. _E6246120EB474376), change the title_id field to gn_chiang_the_strong2 and the name field to whatever you want to name your new bot.

Once all these changes have been made on the server, you will want to restart the shard.

Unfortunately the title is not transmitted by the server but instead resides directly in the client application. To finally change the name of the bot, go in to your client, navigate to the data folder, and you should have a gamedev.bnp file. This is a packed set of files that includes title_words_en.txt. Create a new folder in the data directory called gamedev. Any files in this gamedev directly will override what is in the gamedev.bnp file. To extract the gamedev.bnp file, use the bnp_make utility from code\nel\tools\misc\bnp_make. It may be best to copy bnp_make_X.exe (where X is r for release and d for debug) to the gamedev directory. Then open a command prompt, navigate to the gamedev directory and run "bnp_make_r.exe /u ..\gamedev.bnp" which will then extract all the files from gamedev.bnp to the current directory. Now you can make the same changes to the client's title_words_en.txt as you did the server.

Now that your shard is restarted and your client is ready, re-launch the client, connect to your shard, and you should now have a new bot with a different name and a slightly different mission. Now try and take it one step further and give him a new mission.