I and the other servers' author are having a strange problem which crashes the game file. I solved the problem in a few days. I won't tell you how to do it because most people will try to do it.
The problem is starting with accessing invalid address in the memory. It might cause lag or something else. The game file can't access m_stCurQuest (because it's invalid). The problem only happens when the quest contains select at least I have that problem. I just added a string variable in QuestState called quest_name. If quest_name is not empty, the game file will use quest_name of QuestState instead of GetCurrentQuestName().
Open "quest.h" file, search "int st;" and under;
std::string quest_name;
Open "questlua.cpp" file, search "qs.suspend_state = SUSPEND_STATE_SELECT; and under;
qs.quest_name = GetCurrentPC() ? GetCurrentPC()->GetCurrentQuestName() : "no_quest";
Open "questlua_quest.cpp" file, search "QuestState* pQS = pPC->GetRunningQuestState();" and under;
std::string stQuestName = pPC->GetCurrentQuestName();
if (pQS->quest_name.length() != 0)
stQuestName = pQS->quest_name;