From The Mana World
(altering monsterpoints tutorial draft created)
 
(Clean up and added Step 2: Moving NPCs and Changing Awards)
Line 1: Line 1:
=Making Changes to the Existing TMW eAthena Server=
=Making Changes to the Existing TMW eAthena Server=


So you've downloaded the eAthena server you have just about everything the official server has, plus access to stuff that hasn't been implemented in the game yet.  But you either want to learn how to make suggestions to the official game or you want to make your own server a little more unique.  This is an attempt to create a tutorial on some basics that can be done to your 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.  Hopefully you have placed your directory in an easy to find spot and are comfortable locating it.
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==
==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 on scripting.
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.  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.
1. Get into your eathena directory.   


2. Goto /npc/001-1_Tulimshar/rewards_master.txt
2. Goto /npc/001-1_Tulimshar/rewards_master.txt
Line 17: Line 19:
4. After this is the item "Name"s of what is offered as monster points.
4. After this is the item "Name"s of what is offered as monster points.


5. Goto /db/item_db.txt
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}
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}
Line 27: Line 29:
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",
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 set 8 as many or few times as you'd like for each item you want to be granted as monster points.  Delete those items you longer want to be used as monster points.
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.
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 monsterpoints 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 monsterpoints reward.
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.

Revision as of 03:40, 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.