From The Mana World
(Clean up and added Step 2: Moving NPCs and Changing Awards)
(Step 3: Creating a New NPC and Quest (The Desert Shirt Quest) begun)
Line 60: Line 60:


To test your changes start your client, you should now see Vincent in his new location.  If your character hasn't completed this quest, you will be able to give him the reduced number of bug legs needed for the quest and receive the items you felt Vincent should give for the quest.  If you wanted him to give items different than the ones described in this tutorial, open /db/item_db.txt to find the "Name" of the items you want to give.
To test your changes start your client, you should now see Vincent in his new location.  If your character hasn't completed this quest, you will be able to give him the reduced number of bug legs needed for the quest and receive the items you felt Vincent should give for the quest.  If you wanted him to give items different than the ones described in this tutorial, open /db/item_db.txt to find the "Name" of the items you want to give.
==Step 3: Creating a New NPC and Quest (The Desert Shirt Quest)==
While the previous two steps were more about making small alterations to existing NPCs, this next step is about drafting a new quest, but still using existing NPC texts.  It will also involve changing an existing item and how it is offered in the game, the desert shirt.  I like the desert shirt, but I typically don't get it for my characters as I progress because by the time I am ready to get it, I can put more time and effort into acquiring more powerful items.  It is my hope that by offering this simple quest, the desert shirt will see real use on a server.  While the official server may not implement this quest, if all goes well you should see an easy way to make NPC and quest suggestions to the game by doing and testing instead of asking.  To revert the changes made by going through these steps, you will have to keep track of the altered texts and goto your eathena_data directory and use the unaltered texts in this directory to revert the ones in the eathena directory.  I will break this step into several smaller steps so you can reset your server and test the changes to see if they worked.

Revision as of 04:41, 24 July 2009

Making Changes to the Existing TMW eAthena Server

So you've downloaded the eAthena server for The Mana World. You should have just about everything the official server has, plus access to features that haven't been implemented in the game yet. This is a basics tutorial for server administrators who either want to learn how to make suggestions to the official game by experimenting with their own servers or who want to make their own server a little more unique.

For describing things, I'm going to treat the eathena directory (or folder) as the home directory. I'm using windows, so I'm navigating by opening folders, but I could also navigate with cygwin, which is like a Linux command prompt. Hopefully you have placed your directory in an easy to find spot and are comfortable locating it.

You will need to pay attention to the changes being made. If you have an eathena_data directory, you can use its unaltered texts to check your changes and fix any mistakes done to the eathena texts. Pay attention to the scripts so you will know how they are used. After testing this tutorial you should be able to craft your own basic NPCs with little problem.

Step 1: Monster Points

One of the first things I did was change the monster points around. It is easy to do and probably something that can be done to offer a first time player a feeling they aren't playing the official game. Perhaps also you'd like to suggest the monster points be changed to something that might be a little smoother for a beginning player. Whatever your reason, this is probably one of the simpler things you can do without any real knowledge of scripting.

1. Get into your eathena directory.

2. Goto /npc/001-1_Tulimshar/rewards_master.txt

3. Find: setarray @Items$,

4. After this is the item "Name"s of what is offered as monster points.

5. Open /db/item_db.txt

6. At the top of the text, there are several categories: #ID,Name,Label,Type,Price,Sell,Weight,ATK,DEF,Range,Mbonus,Slot,Gender,Loc,wLV,eLV,View,{UseScript},{EquipScript}

7. Find the "Name"s of the items you'd like to add as monster points. Example: 501,CactusDrink,Cactus Drink,0,50,25,25,,,,,,2,,,0,,{ itemheal 15,0; },{}

The "Name" is "CactusDrink"

8. Copy the "Name" and paste it onto the same line as "setarray @Items$,". Put quotations around the "Name" and follow it up with a comma. Example: "CactusDrink",

9. Repeat step 8 for each item you want to be given as monster point awards. Delete those items you no longer want to be used as monster points.

10. Save the text.

To test: start your character through the client, register for monster points if you haven't already, kill a handful of monsters to acquire monster points if you haven't already and talk to "Ishi" (or whatever the "rewardsmaster"'s name is) and collect your rewards. If you've done the steps correctly, you should be receive your items randomly from the list you have created. If you want certain items to be granted more often than others, repeat its "Name" more than once on the same line as "setarray @Items$," which will increase the chances of that item turning up as a monster points reward.

Step 2: Moving NPCs and Changing Awards

This next step is also very easy to do and it is good to experiment with. For the sake of this example, I am using the NPC "Vincent" who offers the "bug legs" quest and is probably the first quest a character will go on. In the official game, he is building an action figure and needs 30 bug legs. As a reward, he grants 1000 gold pieces. But there are a few problems (for the sake of this example). Vincent is in a far off corner of the map in Tulimshar and both the number of bug legs and the reward for gathering them are more effort than it is worth. To fix this problem, we will move Vincent closer to where the characters first spawn into the game, reduce the number of legs his quest calls for and give an enhanced award that would move a character more smoothly into mid-level but without throwing off game balance.

1. Open /npc/001-1_Tulimshar/vincent.txt

2. Open your server and your client. This is so you can find a new location for Vincent without guessing for a good spot to put him.

3. Move your character to an appropriate spot and hit "F10". This will open the Debug window. In the upper right hand corner of the window you will see coordinates. When you move your arrow around on the map using the mouse you will see these coordinates change based on where the arrow is placed.

4. Position your arrow at the spot you'd like to place Vincent. For the sake of this example I am using the coordinates 49, 45

5. Goto /npc/001-1_Tulimshar/vincent.txt 001-1.gat,135,42,0 script Vincent 113,{

6. Change the script to 001-1.gat,49,45,0 script Vincent 113,{

7. Change all mention of 30 in the text. For the sake of this example, we are changing his need of 30 bug legs to 10. There are several spots in the text where this change needs to be done. Because you aren't changing what items he needs, you don't have to alter more than this.

8. Change the award. For the sake of this example, he is giving a dagger and a leather shield as a reward. To change the award, delete: set zeny, zeny + 1000; and add: getitem "LeatherShield", 1; hit enter and on the following line add: getitem "Dagger", 1;

9. Change mention of the award. Change: mes "[1000 gold]"; to mes "[A Dagger and Leather Shield]";

10. Save the changes to /npc/001-1_Tulimshar/vincent.txt and restart your server.

To test your changes start your client, you should now see Vincent in his new location. If your character hasn't completed this quest, you will be able to give him the reduced number of bug legs needed for the quest and receive the items you felt Vincent should give for the quest. If you wanted him to give items different than the ones described in this tutorial, open /db/item_db.txt to find the "Name" of the items you want to give.

Step 3: Creating a New NPC and Quest (The Desert Shirt Quest)

While the previous two steps were more about making small alterations to existing NPCs, this next step is about drafting a new quest, but still using existing NPC texts. It will also involve changing an existing item and how it is offered in the game, the desert shirt. I like the desert shirt, but I typically don't get it for my characters as I progress because by the time I am ready to get it, I can put more time and effort into acquiring more powerful items. It is my hope that by offering this simple quest, the desert shirt will see real use on a server. While the official server may not implement this quest, if all goes well you should see an easy way to make NPC and quest suggestions to the game by doing and testing instead of asking. To revert the changes made by going through these steps, you will have to keep track of the altered texts and goto your eathena_data directory and use the unaltered texts in this directory to revert the ones in the eathena directory. I will break this step into several smaller steps so you can reset your server and test the changes to see if they worked.