Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...
vestside

Bot Problemi

Önerilen Mesajlar

Herkese iyi Forumlar;

Arkadaşlar oyun içerisinde BOT attığım zaman isimler sol altta gözüküyor yalnız BOTLAR aktif olarak gözükmüyor oyun içerisinde nereye bakmak gerekir?

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı

UserInOut

 


BOT sistemi çalışan SRC dan olduğu gibi aldım tüm USERINOUT fonksiyon ve paketini oyun içinde BOT Yollandi.. yazıyor ama yinede gözükmüyor.
-- mesaja ek olarak --
şimdi fark ettim, client ile ilgisi var. teşekkürler sorunun kaynağını tam olarak anladığımda paylaşacağım

 

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı


BOT sistemi çalışan SRC dan olduğu gibi aldım tüm USERINOUT fonksiyon ve paketini oyun içinde BOT Yollandi.. yazıyor ama yinede gözükmüyor.

-- mesaja ek olarak --
şimdi fark ettim, client ile ilgisi var. teşekkürler sorunun kaynağını tam olarak anladığımda paylaşacağım



Kaç version deniyorsun ? 19x mi yoksa 21xx ?

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı

User information paketine bakman gerek 0x98 paketi, botların arrayı tanımlı değildir orada muhtemelen yada bir sıkıntı vardır

 


sanırım kullandığım version un yani 2083 ün userinout paketi ile version atlattığımda kullandığım paket farklılık gösteriyor.

2167 ye yükselttiğim zaman botlar clientte gözükmüyor. herşey normal olmasına rağmen. sanırım paket düzenlemesi yapmam gerek. ama piyasada 2083 ün üstünde SRC göremedim

 

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı

Botların oyuna giriyordur. Fakat Getuserinfo paketinde eksik vardır. Paylaşılan dosyalarda botların userinfosu ayrıydı heralde. orayı düzenleyip denemelisin

 

 

 

 

 

 

 

void CUser::GetUserInfo(Packet & pkt)

{

	//	if (m_bAbnormalType == ABNORMAL_INVISIBLE)

	//	return;



	pkt.SByte();

	pkt << GetName()

		<< uint16(GetNation()) << GetClanID() << GetFame();



	CKnights * pKnights = g_pMain->GetClanPtr(GetClanID());

	if (pKnights == nullptr)

	{

		pkt << uint32(0) << uint16(0) << uint8(0) << uint16(-1) << uint32(0) << uint8(0);

	}

	else

	{

		CKnights *aKnights = g_pMain->GetClanPtr(pKnights->GetAllianceID());

		if (aKnights != nullptr && aKnights->isInAlliance())

		{

			pkt << pKnights->GetAllianceID()

				<< pKnights->m_strName

				<< pKnights->m_byGrade << pKnights->m_byRanking

				<< uint16(pKnights->m_sMarkVersion) // symbol/mark version

				<< pKnights->GetCapeID(aKnights) // cape ID

				<< pKnights->m_bCapeR << pKnights->m_bCapeG << pKnights->m_bCapeB << uint8(0) // this is stored in 4 bytes after all.

				<< uint8(9);

		}

		else

		{

			pkt << pKnights->GetAllianceID()

				<< pKnights->m_strName

				<< pKnights->m_byGrade << pKnights->m_byRanking

				<< uint16(pKnights->m_sMarkVersion) // symbol/mark version

				<< uint16(pKnights->m_sCape) // cape ID

				<< pKnights->m_bCapeR << pKnights->m_bCapeG << pKnights->m_bCapeB << uint8(0) // this is stored in 4 bytes after all.

				<< uint8(9);

		}

	}



	uint8 bInvisibilityType = m_bInvisibilityType;

	if (bInvisibilityType != INVIS_NONE)

		bInvisibilityType = INVIS_DISPEL_ON_MOVE;



	pkt << GetLevel() << m_bRace << m_sClass

		<< GetSPosX() << GetSPosZ() << GetSPosY()

		<< m_bFace << m_nHair

		<< m_bResHpType << uint32(m_bAbnormalType)

		<< m_bNeedParty

		<< m_bAuthority

		<< m_bPartyLeader // is party leader (bool)

		<< bInvisibilityType // visibility state

		<< uint8(m_teamColour) // team colour (i.e. in soccer, 0=none, 1=blue, 2=red)

		<< m_bIsHidingHelmet // either this is correct and items are super buggy, or it causes baldness. You choose.

		<< m_bIsHidingCospre // either this is correct and items are super buggy, or it causes baldness. You choose.

		<< m_sDirection // direction 

		<< m_bIsChicken // chicken/beginner flag

		<< m_bRank // king flag

		<< uint16(1)//dene

		<< m_bKnightsRank << m_bPersonalRank; // NP ranks (total, monthly)



	uint8 equippedItems[] =

	{

		BREAST, LEG, HEAD, GLOVE, FOOT, SHOULDER, RIGHTHAND, LEFTHAND,

		CWING, CHELMET, CLEFT, CRIGHT, CTOP ,FAIRY

	};



	foreach_array(i, equippedItems)

	{

		_ITEM_DATA * pItem = GetItem(equippedItems[i]);



		if (pItem == nullptr)

			continue;



		pkt << pItem->nNum << pItem->sDuration << pItem->bFlag;

	}

	pkt << GetZoneID() << uint8(-1) << uint8(-1) << uint32(0) << uint16(0) << uint8(0) << isGenieActive();



	pkt << GetRebLevel() << GetCoverTitle() << GetReturnStatus();

}

 

 

 




bendeki kodlar bu şekilde hocam, bir kaç SRC den alıntı yaparak denedim ama olmadı. ayrıca dediğiniz gibi botlar oyuna giriyor. ama görünmüyorlar.

 

 

 

İletiyi paylaş


Link to post
Sitelerde Paylaş

Tekrar söylüyorum, paylaşılan dosyalarda hatırladıgım kadarıyla, botların getuserinfosu ayrı
CUser clasını kullanmıyor yani CBot clasından getuserinfo ya bakman gerek

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı

void CUser::GetUserInfo(Packet & pkt)
{
	//	if (m_bAbnormalType == ABNORMAL_INVISIBLE)
	//	return;

	pkt.SByte();
	pkt << GetName()
		<< uint16(GetNation()) << GetClanID() << GetFame();

	CKnights * pKnights = g_pMain->GetClanPtr(GetClanID());
	if (pKnights == nullptr)
	{
		pkt << uint32(0) << uint16(0) << uint8(0) << uint16(-1) << uint32(0) << uint8(0);
	}
	else
	{
		CKnights *aKnights = g_pMain->GetClanPtr(pKnights->GetAllianceID());
		if (aKnights != nullptr && aKnights->isInAlliance())
		{
			pkt << pKnights->GetAllianceID()
				<< pKnights->m_strName
				<< pKnights->m_byGrade << pKnights->m_byRanking
				<< uint16(pKnights->m_sMarkVersion) // symbol/mark version
				<< pKnights->GetCapeID(aKnights) // cape ID
				<< pKnights->m_bCapeR << pKnights->m_bCapeG << pKnights->m_bCapeB << uint8(0) // this is stored in 4 bytes after all.
				<< uint8(9);
		}
		else
		{
			pkt << pKnights->GetAllianceID()
				<< pKnights->m_strName
				<< pKnights->m_byGrade << pKnights->m_byRanking
				<< uint16(pKnights->m_sMarkVersion) // symbol/mark version
				<< uint16(pKnights->m_sCape) // cape ID
				<< pKnights->m_bCapeR << pKnights->m_bCapeG << pKnights->m_bCapeB << uint8(0) // this is stored in 4 bytes after all.
				<< uint8(9);
		}
	}

	uint8 bInvisibilityType = m_bInvisibilityType;
	if (bInvisibilityType != INVIS_NONE)
		bInvisibilityType = INVIS_DISPEL_ON_MOVE;

	pkt << GetLevel() << m_bRace << m_sClass
		<< GetSPosX() << GetSPosZ() << GetSPosY()
		<< m_bFace << m_nHair
		<< m_bResHpType << uint32(m_bAbnormalType)
		<< m_bNeedParty
		<< m_bAuthority
		<< m_bPartyLeader // is party leader (bool)
		<< bInvisibilityType // visibility state
		<< uint8(m_teamColour) // team colour (i.e. in soccer, 0=none, 1=blue, 2=red)
		<< m_bIsHidingHelmet // either this is correct and items are super buggy, or it causes baldness. You choose.
		<< m_bIsHidingCospre // either this is correct and items are super buggy, or it causes baldness. You choose.
		<< m_sDirection // direction 
		<< m_bIsChicken // chicken/beginner flag
		<< m_bRank // king flag
		<< uint16(1)//dene
		<< m_bKnightsRank << m_bPersonalRank; // NP ranks (total, monthly)

	uint8 equippedItems[] =
	{
		BREAST, LEG, HEAD, GLOVE, FOOT, SHOULDER, RIGHTHAND, LEFTHAND,
		CWING, CHELMET, CLEFT, CRIGHT, CTOP ,FAIRY
	};

	foreach_array(i, equippedItems)
	{
		_ITEM_DATA * pItem = GetItem(equippedItems[i]);

		if (pItem == nullptr)
			continue;

		pkt << pItem->nNum << pItem->sDuration << pItem->bFlag;
	}
	pkt << GetZoneID() << uint8(-1) << uint8(-1) << uint32(0) << uint16(0) << uint8(0) << isGenieActive();

	pkt << GetRebLevel() << GetCoverTitle() << GetReturnStatus();
}

 

 


bendeki kodlar bu şekilde hocam, bir kaç SRC den alıntı yaparak denedim ama olmadı. ayrıca dediğiniz gibi botlar oyuna giriyor. ama görünmüyorlar.

 

 

 


burdaki ilgisi yok bot.cpp bak.
<< uint8(0)
<< uint16(0)
böyle ekle dener misin

 

İletiyi paylaş


Link to post
Sitelerde Paylaş

problemin SRC ile alakalı olduğunu ayrıca, VERSION yükseltince değişen paket değerlerinden kaynaklandığını anlayıp o versiona göre eklemeler yaparak sorunu çözdüm.

İletiyi paylaş


Link to post
Sitelerde Paylaş
Misafir
Bu konu kapalıdır ama konuya cevap yazmaya yetkiniz var görünüyor.

×
×
  • Yeni Oluştur...