Jump to content

Ken

Inactive Member
  • Posts

    726
  • Joined

  • Last visited

  • Days Won

    44
  • Feedback

    0%

Posts posted by Ken

  1. Thanks for the information. 

    4 hours ago, ds_aim said:

    This is his skype, he have two or more id  https://metin2.download/picture/K9h4a9MS1HmH9r3SiDBK83wI01u4EYrW/.png

    He wanted to buy the new pet system from me, but I didn't trust him and ignored him on my skype address.

    1 hour ago, .plechito' said:

    YEah this and for me he used this skype:

    Pgwxb.png

    As I remember, he wanted to buy SafeGuard, Pet System, and Offline Shop from me.

    In the last days, everything started to be dangerous for us. Also, someone started to use my nickname to sell something on the forums. You shouldn't believe a kind of that people, I only have two accounts on two forums. (E*pvp and This forum)

    About plechito

    I'm sorry to hear that. You didn't deserve this... Next time, just be careful.

    Kind Regards ~ Ken

    • Love 2
  2. 2 minutes ago, .T4Ump said:

    Maybe try %d to %ld :)

    The format has not affected the function or something else.

    The system will kill him in the game If the system can't find the sectree. It's only happening when you ride your horse (For the characters).

    It's from my line.

     

    	LPSECTREE new_tree = SECTREE_MANAGER::instance().Get(GetMapIndex(), x, y);
    	if (!new_tree)
    	{
    		if (!GetDesc())
    		{
    			sys_err("No tree %s %ld %ld %ld", GetName(), x, y, GetMapIndex());
    			Dead();
    			return false;
    		}
    		
    		x = GetX();
    		y = GetY();
    		new_tree = GetSectree();
    		return false;
    	}

     

    Kind Regards ~ Ken

    • Love 1
  3. You have to become admin to send those commands. If you're using a weak password, everyone can guess that password and access to your server.

    1. Try to use a strong password for adminpage.
    2. Make a log system for those commands in input.cpp.

    If that guy send SHUTDOWN_ONLY, you can see a log in log.sql ~ It's called "SHUTDOWN". (It's only make sure about it's coming from p2p or gm commands)

    Kind Regards ~ Ken

  4. At first, LoadMonsterAreInfo's first error is coming from regen.txt. If you don't have this file in your pack. System will give this error. As galet said, you're just hidding that.

     

    	char c_szFileName[256];
    	sprintf(c_szFileName, "%s\\regen.txt", GetMapDataDirectory().c_str());
    	
    	LPCVOID pModelData;
    	CMappedFile File;
    	
    	if (!CEterPackManager::Instance().Get(File, c_szFileName, &pModelData))
    	{
    		//TraceError(" CMapOutdoorAccessor::LoadMonsterAreaInfo Load File %s ERROR", c_szFileName);
    		return false;
    	}

     The code is already explain itself.

    If you want to fix it, here is a fix for you.

     

    bool CMapOutdoor::LoadMonsterAreaInfo()
    {
    	RemoveAllMonsterInfo(); // Remove All Monster Info
    	
    	char szFileName[256];
    	_snprintf(szFileName, sizeof(szFileName), "%s\\monsterareainfo.txt", GetMapDataDirectory().c_str());
    	
    	LPCVOID pModelData;
    	CMappedFile File;
    	
    	if (!CEterPackManager::Instance().Get(File, szFileName, &pModelData)) return false;
    	
    	CMemoryTextFileLoader textFileLoader;
    	CTokenVector stTokenVector;
    	
    	textFileLoader.Bind(File.size(), pModelData);
    	
    	for (DWORD i = 0; i < textFileLoader.GetLineCount(); ++i)
    	{
    		if (!textFileLoader.SplitLine(i, &stTokenVector))
    			continue;
    		
    		stl_lowers(stTokenVector[0]);
    		
    		// Start to read MonsterAreaInfo.txt
    		if (0 == stTokenVector[0].compare("m") || 0 == stTokenVector[0].compare("g"))
    		{
    			if (stTokenVector.size() < 11)
    			{
    				TraceError("CMapOutdoorAccessor::LoadMonsterAreaInfo Get MonsterInfo File Format ERROR! continue....");
    				continue;
    			}
    
    			CMonsterAreaInfo::EMonsterAreaInfoType eMonsterAreaInfoType;
    			if (0 == stTokenVector[0].compare("m"))
    			{
    				eMonsterAreaInfoType = CMonsterAreaInfo::MONSTERAREAINFOTYPE_MONSTER;
    			}
    			else if (0 == stTokenVector[0].compare("g"))
    			{
    				eMonsterAreaInfoType = CMonsterAreaInfo::MONSTERAREAINFOTYPE_GROUP;
    			}
    			else
    			{
    				TraceError("CMapOutdoorAccessor::LoadMonsterAreaInfo Get MonsterInfo Data ERROR! continue....");
    				continue;
    			}
    			
    			const std::string & c_rstrOriginX	= stTokenVector[1].c_str();
    			const std::string & c_rstrOriginY	= stTokenVector[2].c_str();
    			const std::string & c_rstrSizeX		= stTokenVector[3].c_str();
    			const std::string & c_rstrSizeY		= stTokenVector[4].c_str();
    			const std::string & c_rstrZ			= stTokenVector[5].c_str();
    			const std::string & c_rstrDir		= stTokenVector[6].c_str();
    			const std::string & c_rstrTime		= stTokenVector[7].c_str();
    			const std::string & c_rstrPercent	= stTokenVector[8].c_str();
    			const std::string & c_rstrCount		= stTokenVector[9].c_str();
    			const std::string & c_rstrVID		= stTokenVector[10].c_str();
    			
    			long lOriginX, lOriginY, lSizeX, lSizeY, lZ, lTime, lPercent;
    			CMonsterAreaInfo::EMonsterDir eMonsterDir;
    			DWORD dwMonsterCount;
    			DWORD dwMonsterVID;
    			
    			lOriginX		= atol(c_rstrOriginX.c_str());
    			lOriginY		= atol(c_rstrOriginY.c_str());
    			lSizeX			= atol(c_rstrSizeX.c_str());
    			lSizeY			= atol(c_rstrSizeY.c_str());
    			lZ				= atol(c_rstrZ.c_str());
    			eMonsterDir		= (CMonsterAreaInfo::EMonsterDir) atoi(c_rstrDir.c_str());
    			lTime			= atol(c_rstrTime.c_str());
    			lPercent		= atol(c_rstrPercent.c_str());
    			dwMonsterCount	= (DWORD) atoi(c_rstrCount.c_str());
    			dwMonsterVID	= (DWORD) atoi(c_rstrVID.c_str());
    			
    			CMonsterAreaInfo * pMonsterAreaInfo = AddMonsterAreaInfo(lOriginX, lOriginY, lSizeX, lSizeY);
    			pMonsterAreaInfo->SetMonsterAreaInfoType(eMonsterAreaInfoType);
    			if (CMonsterAreaInfo::MONSTERAREAINFOTYPE_MONSTER == eMonsterAreaInfoType)
    				pMonsterAreaInfo->SetMonsterVID(dwMonsterVID);
    			else if (CMonsterAreaInfo::MONSTERAREAINFOTYPE_GROUP == eMonsterAreaInfoType)
    				pMonsterAreaInfo->SetMonsterGroupID(dwMonsterVID);
    			pMonsterAreaInfo->SetMonsterCount(dwMonsterCount);
    			pMonsterAreaInfo->SetMonsterDirection(eMonsterDir);
    		}		
    	}
    
    	return true;
    }

    The system cannot read the actual file. File name is MonsterAreaInfo.txt but system is trying to read regen.txt.

    If you want, you can change monsterareainfo.txt with regen.txt - result will be same.

    Kind Regards ~ Ken

    • Love 8
  5. 1121 16:26:38361 :: pack/trol: Pack file does not exist

    That means, you don't have this pack file in your pack folder or it's not registered in Index

     

    CPythonSkill::RegisterSkillDesc(dwSkillIndex=137) - Strange Skill Need Weapon(CLAW)
    1121 16:27:48079 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=139) - Strange Skill Need Weapon(CLAW)
    1121 16:27:48079 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=170, strType=wolfman).STRANGE_SKILL_TYPE
    1121 16:27:48079 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=171, strType=wolfman).STRANGE_SKILL_TYPE
    1121 16:27:48080 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=172, strType=wolfman).STRANGE_SKILL_TYPE
    1121 16:27:48080 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=173, strType=wolfman).STRANGE_SKILL_TYPE
    1121 16:27:48080 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=174, strType=wolfman).STRANGE_SKILL_TYPE
    1121 16:27:48080 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=175, strType=wolfman).STRANGE_SKILL_TYPE

    That means, your client doesn't know wolfman stuffs, you just need to remove them in your skilldesc.txt, skilltable.txt if you don't use them.

    1121 16:27:05046 :: # lib\traceback.pyc has bad magic

    That means, your file is not match with python 2.7 or python 2.2 (which one you're using)

     

    CreateCharacterWindow.Open.LoadObject - <type 'exceptions.RuntimeError'>:Failed to load image (filename: locale/tr/ui/select/name_warrior.sub)
    
    

    Your locale.cfg is configured as locale/tr, that means you need to that file in that path.

    Kind Regards ~ Ken

    • Love 1
  6. First error explain:

    • The most source file has this error at the moment. This  error means that packet is not sequenced by Serverside or Clientside.

    Third error explain:

    • This error is coming from CHARACTER::OnClick function.
      • That means, if the victim is exchanging via someone, the function is stopped to work and write an error in syserr.
      • This is not an error, it's just a condition to check victim's actions.

    Fourth error explain:

    • Someone tried to close your game in the terminal.
      • kill -9 game or something like that.

    Fiveth error explain:

    • Game says socket is already using. That means the process is still running on your FreeBSD Server.

    Check events from kernel.

    use/include/sys/event.h

    I didn't understand your point there because there is nothing to check in "/usr/include/sys/event.h" at the moment.

    Kind Regards ~ Ken

×
×
  • 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.