Jump to content

Yasin95

Inactive Member
  • Posts

    10
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by Yasin95

  1. Hi friends, there's a problem.

    ch1 syserr;

    SYSERR: Jan 26 11:00:37 :: pid_init: 
    Start of pid: 1365

    SYSERR: Jan 26 11:07:04 :: ChildLoop: MySQL connection was reconnected. querying locale set
    SYSERR: Jan 26 11:07:05 :: ChildLoop: MySQL connection was reconnected. querying locale set
     

     

    db syserr; 

    SYSERR: Jan 26 11:00:26 :: pid_init: 
    Start of pid: 1353

    SYSERR: Jan 26 11:04:45 :: ChildLoop: MySQL connection was reconnected. querying locale set
    SYSERR: Jan 26 11:05:17 :: ChildLoop: MySQL connection was reconnected. querying locale set
    SYSERR: Jan 26 11:07:09 :: DirectQuery: MySQL connection was reconnected. querying locale set

     

    AsyncSQL.cpp

    Spoiler
    
    void CAsyncSQL::ChildLoop()
    {
    	cProfiler profiler(500000); // 0.5초
    
    	while (!m_bEnd)
    	{
    		m_sem.Wait();
    
    		int count = CopyQuery();
    
    		if (count <= 0)
    			continue;
    
    		AddCopiedQueryCount(count);
    
    		SQLMsg * p;
    
    		while (count--)
    		{
    			//시간 체크 시작 
    			profiler.Start();
    
    			if (!PeekQueryFromCopyQueue(&p))
    				continue;
    
    			if (m_ulThreadID != mysql_thread_id(&m_hDB))
    			{
    				sys_err("MySQL connection was reconnected. querying locale set");
    				while (!QueryLocaleSet());
    				m_ulThreadID = mysql_thread_id(&m_hDB);
    			}
    
    			if (mysql_real_query(&m_hDB, p->stQuery.c_str(), p->stQuery.length()))
    			{
    				p->uiSQLErrno = mysql_errno(&m_hDB);
    
    				sys_err("AsyncSQL: query failed: %s (query: %s errno: %d)", 
    						mysql_error(&m_hDB), p->stQuery.c_str(), p->uiSQLErrno);
    
    				switch (p->uiSQLErrno)
    				{
    					case CR_SOCKET_CREATE_ERROR:
    					case CR_CONNECTION_ERROR:
    					case CR_IPSOCK_ERROR:
    					case CR_UNKNOWN_HOST:
    					case CR_SERVER_GONE_ERROR:
    					case CR_CONN_HOST_ERROR:
    					case ER_NOT_KEYFILE:
    					case ER_CRASHED_ON_USAGE:
    					case ER_CANT_OPEN_FILE:
    					case ER_HOST_NOT_PRIVILEGED:
    					case ER_HOST_IS_BLOCKED:
    					case ER_PASSWORD_NOT_ALLOWED:
    					case ER_PASSWORD_NO_MATCH:
    					case ER_CANT_CREATE_THREAD:
    					case ER_INVALID_USE_OF_NULL:
    						m_sem.Release();
    						sys_err("AsyncSQL: retrying");
    						continue;
    				}
    			}
    
    			profiler.Stop();
    			
    			// 0.5초 이상 걸렸으면 로그에 남기기
    			if (!profiler.IsOk())
    				sys_log(0, "[QUERY : LONG INTERVAL(OverSec %ld.%ld)] : %s", 
    						profiler.GetResultSec(), profiler.GetResultUSec(), p->stQuery.c_str());
    
    			PopQueryFromCopyQueue();
    
    			if (p->bReturn)
    			{
    				p->Store();
    				PushResult(p);
    			}
    			else
    				delete p;
    
    			++m_iQueryFinished;
    		}
    	}
    
    	SQLMsg * p;
    
    	while (PeekQuery(&p))
    	{
    		if (m_ulThreadID != mysql_thread_id(&m_hDB))
    		{
    			sys_err("MySQL connection was reconnected. querying locale set");
    			while (!QueryLocaleSet());
    			m_ulThreadID = mysql_thread_id(&m_hDB);
    		}
    
    		if (mysql_real_query(&m_hDB, p->stQuery.c_str(), p->stQuery.length()))
    		{
    			p->uiSQLErrno = mysql_errno(&m_hDB);
    
    			sys_err("AsyncSQL::ChildLoop : mysql_query error: %s:\nquery: %s",
    					mysql_error(&m_hDB), p->stQuery.c_str());
    
    			switch (p->uiSQLErrno)
    			{
    				case CR_SOCKET_CREATE_ERROR:
    				case CR_CONNECTION_ERROR:
    				case CR_IPSOCK_ERROR:
    				case CR_UNKNOWN_HOST:
    				case CR_SERVER_GONE_ERROR:
    				case CR_CONN_HOST_ERROR:
    				case ER_NOT_KEYFILE:
    				case ER_CRASHED_ON_USAGE:
    				case ER_CANT_OPEN_FILE:
    				case ER_HOST_NOT_PRIVILEGED:
    				case ER_HOST_IS_BLOCKED:
    				case ER_PASSWORD_NOT_ALLOWED:
    				case ER_PASSWORD_NO_MATCH:
    				case ER_CANT_CREATE_THREAD:
    				case ER_INVALID_USE_OF_NULL:
    					continue;
    			}
    		}
    
    		sys_log(0, "QUERY_FLUSH: %s", p->stQuery.c_str());
    
    		PopQuery(p->iID);
    
    		if (p->bReturn)
    		{
    			p->Store();
    			PushResult(p);
    		}
    		else
    			delete p;
    
    		++m_iQueryFinished;
    	}
    }

     

     

    That's why syserr ?

    locale_string.txt 

    Is there a problem with this file ?

    Thanks in advance for your reply.

    I'm sorry, my english is bad.

  2. armor-effect-new1.mse that's not it..

    this will happen ;

    chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+21, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-5-1.mse")

    chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+22, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-5-1-3.mse")

    this Electric flash effect.

    thanks.

  3. On 02.05.2017 at 5:31 AM, Germais said:

    My question:

    "When i mount it shows the npc/mount but it dismounts the character right away. Any solutions?"

     

    #Edit1

    So i have been looking around the code and found out that the costume mount was beeing called 2 times when used, "i guess", so i removed some lines in char_item.cpp

    Fix: char_item.cpp

    Search:

    
    if (COSTUME_MOUNT == item->GetSubType())
    {
    	quest::CQuestManager::instance().UseItem(GetPlayerID(), item, false);
    }

    Replace with:

    
    /*
    if (COSTUME_MOUNT == item->GetSubType())
    {
    	quest::CQuestManager::instance().UseItem(GetPlayerID(), item, false);
    }
    */

    Make sure you have this line above:

    
    if (UNIQUE_SPECIAL_RIDE == item->GetSubType() && IS_SET(item->GetFlag(), ITEM_FLAG_QUEST_USE))
    {
    	quest::CQuestManager::instance().UseItem(GetPlayerID(), item, false);
    }

    I'm still testing it out so if there is any problem just reverse it all back. ~edit2

     

    #EDIT2

    Everything looks fine! :D

     

    #EDIT3 - Mount time fix for TXT DB rev40250

    Fix: ride.quest

    Search

    
    item.get_socket(2)*60

    Replace with:

    
    item.get_value(0)*60

    :)

    The solution above. 

    Regards.

  4. On 12.04.2017 at 6:39 PM, xP3NG3Rx said:
    
    	def __GetServerID(self):
    		regionID = self.__GetRegionID()
    		serverID = 0
    		for i in serverInfo.REGION_DICT[regionID].keys():
    			if serverInfo.REGION_DICT[regionID][i]["name"] == net.GetServerInfo().split(",")[0]:
    				serverID = int(i)
    				break
    		
    		return serverID

     

    Thanks man :)

    serverID = 0 

    to

    serverID = 1 

    replace.

    0 = Channel 1 causes problems.

    1 = It works fine.

×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.