"Turn" Mud Tutorial--Wizards Introductory Tutorial 4

Source: Internet
Author: User

Let's go over it again. The CLEAN_UP () function returns the meaning of 1, and if the CLEAN_UP () function returns 1, then MudOS will not do any of its actions at this time, but the clean_up () function of the object will be called again the next time it wants to be called. As you can see from this, there are four situations where it is not clear out of memory:
A non-clone comes out and has no_clean_up parameters of the object;
Second, the player will never
Three, in a still exist in the environment
Four, there is a player inside themselves
That is, MudOS time to destroy the memory does not need the object is from the outside, such as a room, the system just check the room without no_clean_up parameters, there is no player can clear it, and the room items, NPC will disappear because the environment does not exist. The timing of this purge is typically two hours. Of course, depending on the settings in different MudOS.
Another digression, if a room for a long time no players walk in, of course, will be mudos clear memory, and suddenly have players come in? Very simply, it will be compiled into memory in an instant, into a room that already exists in memory and into a room that has just been compiled into memory for our players, is not aware of the difference between them.


A condition system analysis


Condition is the use of the system's heartbeat to solve the problem in a not too long time, timed triggering the phenomenon of the solution. In mud, in order to solve the timing of triggering a phenomenon, there are generally two methods, one is through call_out () delay call, the other is through the heartbeat. In the Spock translation of the LPC and textbooks have compared the two methods, as if to say: If the time is longer, the use of the heart beats better, short time words using call_out (). Then said a sentence, the individual can not see what the necessary difference between the two, anyway confused. However, in the actual use, both have different effects, we understand that after the article, you can have their own understanding, and make the right choice.
Call_out (other_fun,t) This external function is the function of a delay call, you must add the first parameter, specify the function name of the delay call, the second parameter means delay a few seconds, and then add the parameters can be called the function parameters. Like this one is set in t seconds, call Other_fun This pre-specified function, you can set up in this function what should be done. For example, you have to be in jail for five minutes after a player enters prison, and if you must use Call_out (), you can set it to:
Call_out ("Out_jianyu", 300,ob);
The meaning is to call Out_jianyu () This function after 300 seconds, ob as the player's variable passed past, and then in this function to release the player from the prison, tell him to do the end of the prison and so on processing. However, some wizards see here, will ask, if not five minutes, the player quit the game how to do? Yes, if this player exits the game, this call_out () will not find the Operation object in a time, if the program is not well written, error-prone, even if it is not wrong, the player will not be able to continue to enter the game after the delay process, it will not be able to go out of prison. As a result, most of the things that need to be done in order to cross the line before and after the condition are used.
Condition's approach is to set a certain number of points in the player's body at the beginning, which will be saved in the player's file via save. Then through the heartbeat of the system, each heartbeat will be executed once the fixed condition function, the function is executed every time minus a tick, until the mark is 0, you can trigger an effect. For example, to do the prison, in the prison set a certain number of points, each time the heart beat a little, minus 0 o'clock, the player released. Since this symbol is on the player, there is no action on the player when the player is offline.
In the ES series mud. A complete condition system consists of three parts:
First, the call or the program that triggers it, that is,/inherit/char/char.c this
File, which is a file that all players and NPCs inherit together, in which the Heart_beat () function is called every time the heartbeat is executed. There are a few words inside:
if (tick--) return;
else tick = 5 + random (10);
Cnd_flag = Update_condition ();
Explanation: Tick is a global variable in this file, assuming that it is only >1, then tick--will not be equal to 0, then the tick value will be reduced by 1 and return immediately; abort this function to execute down. Suppose so after a few times minus 1, there is one tick--will be 0, then the program will not abort but to execute the next sentence of else. At this point, the tick is re-assigned to 5+random (10). and execute the update_condition () function, what is the function of update_condition ()? I can't find it in the char.c.
Then we look back at the beginning of the char.c file, we will see that this file has inherited the/feature/condition.c file, update_condition () This function is in this file. So here's the file we'll look at.
Attached: Since most of the mud heartbeat is adjusted every two seconds, 5+random (10) is 5 to 14 times, so you can see that each condition is called the average time is 19 seconds. Knowing this, you will be able to set some of the attack time of the poison more, some of the length of time to do the prison.

Second, the following is the main program, feature directory under the Condition.c file.
Detailed procedure:

#include "condition.h"//Inherit some macro definitions
Mapping conditions;//defining a mapping set

/* Update function Update_condition ()
This function first to check whether each player's condition is valid, if there is an invalid condition, it will be recorded in/log/ Condition.err This file, check this file regularly, you can find and eliminate a considerable number of errors, because once there is a mistake, will occur in each heartbeat regularly. Then it will follow condition's name, that is, str, the variable to/kungfu/condition (some mudlib path is/daemon/condition) directory to look for the name of the. c file for execution. */
Nomask int update_condition ()
{
Mixed *cnd, err;
int i, flag, update_flag;
Object Cnd_d;
if (!mapp (conditions) | | |! ( I=sizeof (conditions))) return 0;
Determine if the player has a condition map, no abort, after all, not everyone will have
CND = keys (conditions);
Take the keyword out of this map to form an array, which is actually the names of different condition.
Update_flag = 0;//initialization of this variable
while (i--)
If there are more than 1 condition, they will be executed in a single loop.
{
Cnd_d = Find_object (Condition_d (Cnd[i]));
To the condition directory to find this file name, this directory path has a macro definition of the file designation, generally in the xkx style is mostly kungfu/condition/, XYJ, etc. placed under the/daemons/condition/
if (!cnd_d)//If not, try again
{
Err = catch (Call_other (Condition_d (Cnd[i]), "???")); /Mandatory Inspection
Cnd_d = Find_object (Condition_d (cnd[i));//Search again
if (Err | |!cnd_d)//If the mandatory test is still not found in the search again, indicating that there is no such condition
{
Log_file ("Condition.err", sprintf ("Failed to load condition daemon%s, removed from%o\nerror:%s\n", Condition_d (Cnd[i]) , This_object (), err));
Record them.
Map_delete (conditions, cnd[i]);
Remove this condition from the player
continue;//continue to cycle the next
}
}
Flag = Call_other (Cnd_d, "Update_condition", This_object (), Conditions[cnd[i]]);
This starts to execute the update_condition () function in the Conditon settings file, and flag is the return value, which depends on the detailed details of the following specific file.
if (! (flag & Cnd_continue))
Map_delete (conditions, cnd[i]);
A return value of 0 means that the Conditon is finished, and it's erased.
Update_flag |= Flag;
}
if (!sizeof (conditions)) conditions = 0;
Check that one is gone and zero.
return update_flag;
}

/* Change the Size function apply_codition (cnd,info), through this function to the player named CND condition value is set to Info,info can be 0, so you can use this function to the player's condition to increase or decrease. */
Nomask void Apply_condition (String cnd, mixed info)
{
if (!mapp (conditions))
conditions = ([Cnd:info]);
If not, add on, CND as the key name, info for the content value
Else
CONDITIONS[CND] = info;
If yes, change the content value directly
}

/* Value function query_codition (CND) Through this function, you can call up a player named CND of this condition value of how much. */
Nomask mixed Query_condition (string cnd)
{
if (!mapp (conditions) | | UNDEFINEDP (CONDITIONS[CND]))
return 0;
If there is no conditions or no condition of this CND, return to 0
Return conditions[cnd];//Otherwise returns a specific value
}

/* Clear function clear_condition () This is primarily called in the Die () function in/feature/damage.c, meaning that once death, the deceased will be cleared of all comdition. */
Nomask void Clear_condition ()
{
conditions = 0;
}
END

three, the following is the same name as CND. c file--specific settings file. In general, each type of condition must correspond to a file. There is only one update_condition () function, by/feature/condition.c this program to call its function, you can add some effects or information, for example, poisoning will reduce the refined gas. But the main thing is to reduce the value of the key named this CND to 1 or more points for each call. Then to the set of points, usually after 0, there will be some special phenomenon. The elephant will be released when it's 0, and so on.
Below is an example: the condition of Shaolin to do a solid explanation:
//kungfu/condition/bonze_jial.c 
#include <ansi.h> 
# Include <login.h>

/* Refer to the previous call to this function/feature/ CONDITION.C file, it can be found that when called it will pass a player with his name bonze_jia1 the value of this condition */
int Update_condition (object me, int duration)  

if (Duration < 1)
//If this point parameter is less than 1, it means that the time to do it is enough

Me->move ("/D/SHAOLIN/GUANGC Hang1 ");  
//move directly from the cell to the Shaolin gate  
Message (" Vision "," Just listen to the ping, you startled, look intently, \ n "&NBSP;
" It turned out to be a sleepy guy who was thrown out of the gate! \ n ", Environment (Me), me),  
Tell_object (Me, Hiy" Just a little clouds, you're dazed and tossed out of the Shaolin Temple! ") \ "NOR);
//out some information  
Me->set ("Startroom", start_room);  
return 0; 
}
//If not less than 1, then set minus a bit, return 1, &NBSP will be executed again next time,
Me->apply_condition ("Bonze_jail", duration-1);  
return 1; 
}


here, the three parts of condition are finished, and we'll take the Shaolin temple as an example, Take a look at the process by which condition executes the call. The
program was captured by the monk in the pine forest, and into the Court of discipline, this room file will be added to the player by apply_condition () This function is named Bonze_jail condition. So the player will be more such a mapping:  
Condition ([({"Bonze_jial":},.....)])  
then through the previous file, you will see that because our player inherits the Char.c file, each heartbeat checks the tick, and if the tick is 1 o'clock, it starts to call the Update_conditon () function.  
This function first takes the keywords in the player's conditions map to form an array cnd: 
CND = ({"Bonze_jial",......});
first discovered the Bonze_jia1, and then began to look for the/kungfu/condition/directory named BONZE_JIAL.C file, which is the third part of the file, if not found this file will be recorded in the/log/ In the Condition.err file, if there is, start passing the player with this conditon value, start executing the update_condition () function in BONZE_JIAL.C. The first execution of duration is 35, as long as it is greater than or equal to 1, it will be reduced a bit, the return value is 1. The heartbeat at the next tick of 1 is called again. So after a number of calls, duration is already equal to 0, then that is durtion < 1, so I was moved to the Shaolin Square, a message: Just listen to the ping, you ... me again is overwritten with the startroom and the return value is 0. The player will be removed from the condition. Since the return is 0, the update_condition () function in the/feature/condition.c file removes the Bonze_jia1 content from the player.


In addition to doing prison, through such random call, can achieve like poison, such as the special effect of irregular seizures, each call to let the player to reduce some of the essence of Qi and so on, but there are some horrible poison information symptoms and so on. In fact, you also design some special poison, not only in the process of attack injury to the human body. And the need to find a detoxification method or antidote during this time, otherwise, once the last one or two points have not been completely detoxification, this person over dead. Oh, looks a bit scary ah, in fact, I think this is the most in line with the actual situation!

The advantage of using condition processing is that this attribute is added to the player and is called by the heartbeat in the game. If the player is away from the game it will not be called. Once the player enters the game, it will start to continue executing. This is much more flexible than call_out () if the parameters in the main caller or call are not able to continue to execute. In addition, it is called by the heartbeat, and it is able to respond to the situation instantly, regardless of what the player is doing.

And if you do not need to reflect changes immediately, such as to get paid, you only need to stipulate that the player can not receive two wages within a certain time interval. Can in the first time, in the player to write down the time of the collar, the second time to go to the collar, the current time and record time to reduce, see the interval enough on the line. As simple as this, and almost no system responsible, more than the use of condition forest savings. And if you need to have time to immediately notify the player to the next pay. Then you have to use Conditon.
Its shortcomings are also obvious, placed in every heartbeat of the call. If the creature in a mud system is too condition with the player, the burden on the system is not small.

Finally, I'll talk about the bug. Many new wizards began to use the condition in a wide range of ways without proper or complete understanding of the usage. Condition is also used in some places where it should not be used. For example, in a place where a player can get money and so on, it is necessary to set any player to be able to take a certain amount of time online. If this is done through condition. It is possible to use death to clear all condition features, so that a player repeatedly die and then immediately re-get the money to take things. In this case, you may want to modify the death to clear all the condition, or you can not use it to take money and other things.
Second, there is a bug hidden in the condition file of the Shaolin prison, as mentioned above. Because in the Xkx file, Shaolin Prison is not sure to wait until the time to be released, you can bribe the jailer, walk the five-hole first out. In this case, once the conditon is at the end of the day, no matter where the player is, they will move to Shaolin Square, and then you'll be thrown out of prison. Think about it: if mud has a place that doesn't allow you to take things or get out of the way, then you can go to this place with the bug, put things that you can't bring out, concentrate on waiting for the time, and then fly from that place to Shaolin Square, like flying. (e.g. who plays Wuchang with the battle)
The workaround is simple, just add a condition under if (Duration < 1):
if (Environment (Me)->query ("short") = = "Prison")
Only move the player to appear the message. otherwise direct Reuturn 0; it's solved.

Finally, give an example of a poison to end it:
/kungfu/condition/ice_poison.c

#include <ansi.h>
#include <condition.h>

Inherit f_clean_up;

int Update_condition (object me, int duration)
{
if (Duration < 1) return 0;
if (!living (Me))
If the object is not awake, the information out
{
Message ("Vision", me->name () + "trembling and groaning in agony." \ n ", Environment (Me), ME);
}
else//, or awake.
{
Tell_object (Me, HIB "Suddenly a strange cold from the hara rise, qinru so once you, you in the ice cotton palm attack!" \ "NOR);
Message ("Vision", me->name () + "The body suddenly dangling two dangling, trismus rang up." \ n ", Environment (Me), ME);
}
Me->receive_wound ("qi", + random (10));
Me->receive_wound ("Jing", 10);
A certain amount of sperm and gas
Me->apply_condition ("Ice_poison", duration-1);
This value is reduced by a bit.
if ((int) me->query_temp ("PowerUp"))
{
Me->add_temp ("Apply/attack",-(int) (Me->query_skill ("Force")/3);
Me->add_temp ("Apply/dodge",-(int) (Me->query_skill ("Force")/3);
To reduce his attack and Dodge Power.
Me->delete_temp ("PowerUp");
To end his powerup.
}
if (Duration < 1) return 0;
If it's 0, go back and do nothing to show that the poison is over, okay.
return cnd_continue;
}


Next topic system Refresh and cleanup analysis


Back to previous page
Three details add_action () and its bugs


A few years ago, add_action () of the machine bug is to make a lot of wizards extremely headache, now recount, have from MudOS to solve, have from mudlib adjustment. This problem has been largely invisible. However, if you do not understand the principle of this bug, then there may be in many other places again produce a variety of new bugs, combined with my groping feelings, trying to fully introduce this knowledge.

first, let's look at the flow of mud to the player's input information. After the player enters some or long or short characters in the command line of the client, the system will first call the Process_input (string str) function
in ALIAS.C in the/feature/directory for preprocessing. And those characters are also parameter str.
(Example one: Player input gall Str==gall
Example II: Player input c I want go str== i want go
Example three: Player input out Str==out
Example four: player input kill LLM Str==kill LLM)
This The function first wants to make some filtering judgment to the player's information, for example, the judgment of the continuous repetition instruction is the main limitation to the robot. Then it is called the player's own alias and the system set alias (mainly by the/adm/daemons/under the ALIASD.C definition) to see if there is a pre-set alias in Str, some words will be converted to the original real instructions, and finally return to
This processed new string, str.
(Example one: Gall is detected with the player set gall==get all, so str==get all
Example II: c I want to go through the check found that the player set C==chat, so str==chat I want to go
Example three: Out Check did not find alias, so out==out
Example IV: Kill LLM check did not find alias, so Str==kill LLM)

After the player enters the mud, the connection program LOGIND.C after successfully creating the player's body, a function enable_player () is called, and the function prototype is in/FEATURE/COMMAND.C. The function first calls an external function, Enable_commands (), to allow it to use the command added by Add_action (). Then just Add_action ("Command_hook", "", 1);
Add_action () This is an external function, in the form of a add_action (a,b,c), which means that if the first space before the player enters the instruction is the same word as B, it is called function A, after the parameter C is generally not necessary, here is not detailed. So what we're going to look at here is that if the first word entered by the player is "", it's actually all the instructions that match that condition, then it's called to
function Command_hook (). and the Command_hook () function is in COMMAND.C. Str If more than one word, that is, there are spaces, it will be divided into the first verb, followed by ARG. Start in order to determine whether verb is the direction, the fixed instruction, the emote action, the channel instruction, if so, it will pass ARG as the corresponding parameter. If not, it will return 0, that is, "what" appears.
Words.
(Example one: Str==get all,get is a fixed instruction, calling the Get.c->main () parameter is "all"
Example two: Str==chat I want to go,chat for the channel name, call CHANNELD.C in the Do_chat,
Parameter arg is "I want to go"
Example three: Str==out, the player's scene found that there is an exit called out, so call Go.c->main ()
Parameter arg is "out"
Example four: Str==kill Llm,kill is a fixed instruction, kill.c->main (), Arg is "LLM")

The above is the process of mud processing information.
Therefore, all instructions in the mud are implemented by add_action (). and add_action () can increase the same name of the directive, if the same instruction, then the addition will be executed first, please note here, is not to say after the addition of "overwrite" first, but "first". There are several layers of add_action that can be used for the same action words. Then in the case of a function called on the previous layer, if it is returned 0, the system will automatically go to the next layer of add_action () function called, if any one of the layers returned is 1, it represents to this abort, will not execute the next layer of add_action (), This feature is flexible to use. such as a KILL command, itself through the Command_hook has been added one, some rooms again call a add_action ("Do_kill", "Kill"), and later came in a NPC,NPC with a new add_action ("Do _kill "," Kill "), then as soon as you enter this room, the player will have a three layer of kill add_action (). If you enter kill here, it is natural to perform the Do_kill () of the NPC. Return is 0, then execute the Do_kill () in the room, then 0 then execute kill.c. So, in general, the add_action () we do in the room, NPC, and obj will take precedence over the instruction if it is the same as the instruction in the/cmds directory. And if it is added later, it will definitely take precedence over the previous plus. And if any of the layers return 1, they will be terminated immediately.
Basically all the puzzles and many special effects in LPMud need to be realized by add_action (), it is very important to understand and master its usage seriously.
Now let's talk about the add_action () Bug! Many old players know how to use it, first buy a chicken leg by a (bun can also), by another B stun it, and then B from a body to search for chicken legs, and then eat the chicken legs thrown away. When a wakes up the input eat jitui instruction, the system will immediately be the machine.
Causal analysis, the traditional mudlib eat is a add_action (), made in the standard inheritance food.c of food. The player buys a chicken leg, then the Eat add_action () is added to the player. Under normal circumstances, the object disappears (like eating) or leaves the player's environment (such as throwing away and leaving), then Add_action () will be removed normally. But when the player is unconscious, the other person takes the add_action () object away from it, and the add_action () does not get removed from the player properly. And when the player wakes up, this eat add_action () still exists in him, he can still execute this instruction, if the object of execution, such as the chicken leg is still in the game, no matter how far the chicken leg was taken by Player B, a can be eat jitui to eat this chicken leg. This situation is just a little funny. But if the chicken leg has disappeared, such as B ate, then it can only eliminate the add_action () on the B body, then a and then execute eat, the system can not find jitui this object, will be loaded from memory into a lot of confusing things, quickly into the dead loop, Directly leads to the machine. So the condition to achieve this bug is two, one is to find a add_action () and can be destroyed by the normal way, such as food, worthless things. The second is performed with two IDs.
The new version of MudOS is said to have modified the bug from the ground up. At the same time understand the principle of the mudlib can also be used in many ways to avoid the occurrence of this situation.
Let's talk about another bug that is less known, and this bug appears to have little problem on the surface, and in practice it can sometimes have a big problem, that is, the effect of sleep on add_action (). You can take a closer look at the Sleep.c file, the player enters the sleep state will call a function Me->disable_player (), this function prototype in/FEATURE/COMMAND.C, the final call Disable_commands (); The use of this external function, Disable_commands (), is to make a living thing "inactive", one is the add_actions failure, the other is LIVINGP () returns 0 value ... In other words, all the add_action () are removed. Then
After waking up, call Me->enable_player again (); This function I introduced in the fifth paragraph of the previous article about usage and function, it just restores the player's add_action ("Command_hook", "", 1); That is, all system fixed instructions. For example, the add_action of the objects in the player, the environment of the add_action are in the init () in Riga, the player after sleep did not call to Init (), naturally there is no such. Then the problem will arise. If we make a add_action in a room or on an object that attempts to overwrite the normal instruction (want to overwrite the normal instruction, just let the function that the add_action () call will always return 1 on the line). Then, when the player just has to sleep, it will invalidate the overwrite. The size of the problem after invalidation is related to the purpose of your coverage. To solve this problem, you can modify the SLEEP.C, after the player wakes up for a moment, let the player leave the place and then move back to the environment, and then let the player all the same things also moved back to the player, so let the system again load the player should be loaded add_ Action
In short, MudOS originally for Add_action's consideration is not very perfect. Add Mudlib in the treatment of the method, like the past coma, sleep and the future to develop the pressing, binding and so on to deal with the need to shield out the instructions, then the treatment of the before and after must be careful, or new East One, the new bug is also a grand debut.
Who with the brawl 2001, 04, 21

Beginner FAQs
(This column welcomes the letter from the Hu-hu novice:)

One, when I first login who and the battle, why always show the password is incorrect?

Second, in the registration of new people, just fill out a fake email to do not matter?

Three, I forgot the password, what should I do?

Four, I found in the mud can see what others say, but do not see their own chat out, how to do?

Five, I have a character suddenly can't get things, no matter get what thing, is to show "what?" ”

Six, I am building a new person, because of the talent selection, time-out was kicked out, and then even when, how can not even do?

First, when I click on the "Connection" after the initial page, asked me to enter the English name and password, after I entered the ID and password, the display of my password error, while jumping out of a dialog box, tell me "you quit MUD host when the network disconnect if you are using slip/ Ppp:medom disconnection or call waiting function to make the line disconnected ", 10 seconds later let me connect again. But I always can't even go online. Helpless! Please advise.

Answer: After the connection, when the system asks you to enter the English name, is like to apply for the free email, you enter an English name first, the system will check whether already has this user existence. If you are here for the first time, it also asks you to enter the password, it means that the English name has been registered, if you force input a password, it is generally not correct, that is, the display of the password error, and then the system will force you to disconnect with mud, general Zmud will pop up the window you said, Of course you do not have to wait 10 seconds, directly click "Reconnect", and then enter a new English name, until the system tells you: your chosen English name to create a new character, are you sure? (y/n) means you can use the name, and then you can enter Y to create a new character! If you are a former registered name, then there will be three kinds of situations: one, you forget the password, second, your password was stolen by others and changed; third, you have not been connected to the system for more than three months after being re-registered by others. If it is the first two cases, you can refer to the third article to resolve it.

Second, in the new person registration, the system will prompt me to enter an e-mail address, I found casually lose a, as long as the inside contains @ can be, I do not know whether there will be an impact.
A: The purpose of this email address is that if your user password is forgotten or stolen by someone else, you can send a message to the wizard through this address and request a change to a temporary password. After accepting the wizard, the address will be checked and the new password will be sent to the address you registered with. That is: If you register the address is an error or not exist or you can not receive, then you can only bless your password do not forget or be stolen. Because this email address is not allowed to be changed after registration, is the only certification for your own application. In order to ensure the authority and strict nature of this address, the player registered mailbox address in any case is not allowed to change, (otherwise, as long as the user to change the registered email address, the original player will not be able to return their own ID). Once the ID of the password is stolen or forgotten the registered mailbox address is wrong, then it is not possible to return your password. At the same time, the wizard group promises to keep the players ' email addresses confidential and never used for any other purpose.


three, I forgot my password, what should I do?
A: This first refers to the second, in the player registration, the system has a clear prompt to enter the exact e-mail address I can receive, this address as a wizard to confirm the identity of the player the only valid evidence; if the player has a problem with the password, you can use that email address to send us the wizard box:
[email protected] send the message requesting the password back and indicate the player ID and reason.  
The wizard received the letter in verifying that the mailbox address is indeed the registered mailbox of this ID, will be in the game of the third floor of the Wuxi East Forestry College post to accept the name of the player and according to their experience to mark the number of gold paid, is to pay, is to remind the player: Remember the importance of the password. Zooey to forget the password, the loss is gold and time. Players can use any ID to pay the fee. After the fee, the wizard will use a temporary password to overwrite the ID's old password, and then to the mailbox address, by the player login and modify themselves. The wizard cannot confirm the ID of the email address or the invalid address, please understand it. In general, Wizards do not deal with any password-related matters online.

Four, I found in the mud can see what others say, but do not see their own chat out, what is the matter?
A: If you use the following version of ZMUD4.62, this should be Zmud software is not installed for the sake of. You can ask someone else if they can see you. If they can and you can't, that's the reason. The solution is simple: Delete the Zmud and reinstall it again. If it is the same Zmud, the other ID is normal, and an ID is not normal, it indicates that the two ID is not the same settings file, the Zmud in the user settings can be deleted.

Five, I have a character suddenly can't get things, no matter get what thing, is to show "what?" "Ask other players, they are all good, why?"
A: Generally speaking, a similar situation is still a lot, suddenly can not wear, can not give, and other players are good, even their own even a move to see is good, that means the problem in your own characters. And nine out of Ten is the alias, you can type "alias" to see what alias you set. Some players make it easy to use alias to set the get to get all-from corpse. So when he enters "get Silver" again, the system actually interprets the get here as "get all from corpse", and the whole sentence becomes "Get all from Corpse silver", which of course feels somewhat baffling. Frequently asked questions, remember to check alias first, then ask the wizard.

Six, the new building after the timeout, you can no longer connect, how to do?
A: This is a mud Rijian, the archival aspect of a problem, produced a scrap account, a bit like some program corpse. In the past, the current should have been resolved from the program, but in case of another, you only send letters to the wizard, the wizard after the confirmation of the scrap account manually removed.

Go to Mud Tutorial-wizards Introductory Tutorial 4

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.