Problem z funkcją w C++

Witam. Mam problem, iż gdy próbuje zrobić Release’a mojego kodu, jest jeden błąd, którego jak dotąd nie moge się pozbyć.

Moim zdaniem problem tkwi w:

esp.cpp

if(pmenu[4][FEAR.m_pMenu->GetIndex(4,"Teleport")].Setting)

				{

					LTVector vNewPos = LTVector(vCharPos.x,vCharPos.y,vCharPos.z-150);

				    g_pLTClient->SetObjectPos(g_pGameClientShell->GetPlayerMgr()->GetMoveMgr()->GetObject(),vNewPos);

					pItem[FEAR.m_pMenu->GetIndex("Teleport")] = false;

Błędy to: 1. error C2065: ‘pItem’ : undeclared identifier 2. error C2660: ‘Menu::GetIndex’ : function does not take 1 arguments menu.esp [do którego odnosi błąd drugi]

int Menu::GetIndex(int group, char* pszString)

{

	for (int i = 1; i < 6; i++)

	{

		if(strstr(pmenu[group][i].name, pszString))

			return i;

	}


	return 0;

}

Już naprawdę nie wiem co zrobić, może ktoś tutaj mi pomoże? :slight_smile:

g_pLTClient->SetObjectPos(g_pGameClientShell->GetPlayerMgr()->GetMoveMgr()->GetObject(),vNewPos);

pItem[FEAR.m_pMenu->GetIndex(******TU BRAK ARGUMENTU FUNKCJI******,“Teleport”)] = false;

Z komunikatu o błędzie wynika, że nie zadeklarowałeś też zmiennej pItem.

A mógłbyś pokazać jak powinien wyglądać kod, bo gdy próbuje jakiś argument podać to ciągle wywala.

Jeśli potrzebne źródło esp to mogę zamieścić. Mógłbyś lekko po prawić źródło bym był bardzo wdzięczny :slight_smile:

Hm, to nie jest chyba cały program tak ? Wklej cały kod programu, wtedy powiemy Ci w czym tkwi problem.

O to cały kod esp.cpp

#include "sdk.h"






void Esp::StartEsp()

{


	if(!g_pPlayerMgr)

		return;


	if(!g_pInterfaceMgr->IsInGame())

		return;


	CSpecialFXList* pList = g_pGameClientShell->GetSFXMgr()->GetFXList(SFX_CHARACTER_ID);


	int nNumChars = pList->GetSize();


	LTVector vCharPos;

	LTVector vScreen;

	LTTransform MyPos;

	bool bOnScreen = false;

	uint32 MyID = 0;

	uint32 ThisID = 0;

	uint32 ThisTeamID = 0;

	uint32 MyTeamID = 0;

	D3DCOLOR PlayerColor;


	for (int i=0; i < nNumChars; i++)

	{

		if ((*pList)[i])

		{


			CCharacterFX* pChar = (CCharacterFX*)(*pList)[i];


			CLIENT_INFO *pPlayer = g_pInterfaceMgr->GetClientInfoMgr()->GetClientByID(pChar->m_cs.nClientID); 

			if (pPlayer)

			{

				ThisID = pPlayer->nID;

				ThisTeamID = pPlayer->nTeamID;

			}


			CLIENT_INFO* pMyPlayer = g_pInterfaceMgr->GetClientInfoMgr()->GetLocalClient();

			if(pMyPlayer)

			{

				MyID = pMyPlayer->nID;

				MyTeamID = pMyPlayer->nTeamID;

			}


			if (MyID != ThisID && pChar->m_cs.bIsPlayer && !pChar->m_cs.bIsDead && !pChar->IsSpectating())

			{


				if(pmenu[4][FEAR.m_pMenu->GetIndex(4, "VoteKick")].Setting)

				{

					CAutoMessage cMsg;

					cMsg.Writeuint8( MID_VOTE );

					cMsg.Writeuint32( pChar->m_cs.nClientID );

					g_pLTClient->SendToServer( cMsg.Read(), MESSAGE_GUARANTEED );

				}


				if(MyTeamID == ThisTeamID && MyTeamID != 255)

				{

					if(IsVisible( g_pGameClientShell->GetPlayerMgr()->GetPlayerCamera()->GetCameraActivePos(), pChar->GetServerObj() ))

						PlayerColor = BLUE;

					else

						PlayerColor = GREEN;

				}

				else

				{

					if(IsVisible( g_pGameClientShell->GetPlayerMgr()->GetPlayerCamera()->GetCameraActivePos(), pChar->GetServerObj() ))

						PlayerColor = RED;

					else

						PlayerColor = ORANGE;

				}


				if(pmenu[1][FEAR.m_pMenu->GetIndex(1,"BoneChams")].Setting)

					DrawSkeleton(pChar->GetServerObj(), PlayerColor);


				g_pLTClient->GetObjectPos(pChar->GetServerObj(), &vCharPos);


				if(pmenu[4][FEAR.m_pMenu->GetIndex(4,"Teleport")].Setting)

				{

					LTVector vNewPos = LTVector(vCharPos.x,vCharPos.y,vCharPos.z-150);

					g_pLTClient->SetObjectPos(g_pGameClientShell->GetPlayerMgr()->GetMoveMgr()->GetObject(),vNewPos);

					pItem[FEAR.m_pMenu->GetIndex("Teleport")].Setting = false;

				}


				vScreen = GetScreenFromWorldPos2(vCharPos, g_pGameClientShell->GetPlayerMgr()->GetPlayerCamera()->GetCamera(), bOnScreen);


				if(bOnScreen)

				{

					const wchar_t * name = g_pInterfaceMgr->GetClientInfoMgr()->GetPlayerName(pChar->m_cs.nClientID);

					char bufret[255];

					WideCharToMultiByte(CP_ACP, 0, name, -1, bufret, sizeof(bufret), NULL, NULL);

					if(pmenu[1][FEAR.m_pMenu->GetIndex(1,"Name")].Setting)

						FEAR.m_pCDraw->DrawText(vScreen.x, vScreen.y, PlayerColor, FEAR.m_pCDraw->g_pFont, "%s", bufret);



					vScreen.z /= 74;


					if(pmenu[1][FEAR.m_pMenu->GetIndex(1,"Distance")].Setting)

						FEAR.m_pCDraw->DrawText(vScreen.x, vScreen.y + 12, PlayerColor, FEAR.m_pCDraw->g_pFont, "[%2.2f]", vScreen.z);


					//Was going to be some bounding boxes but i never finished with it

					//FEAR.m_pCDraw->DrawLine(vScreen.x - 10, vScreen.y - 20, vScreen.x - 10, vScreen.y + 20, PlayerColor); //Left

					//FEAR.m_pCDraw->DrawLine(vScreen.x + 10, vScreen.y - 20, vScreen.x + 10, vScreen.y + 20, PlayerColor); //Right

					//FEAR.m_pCDraw->DrawLine(vScreen.x - 10, vScreen.y - 20, vScreen.x + 10, vScreen.y - 20, PlayerColor); //Top

					//FEAR.m_pCDraw->DrawLine(vScreen.x - 10, vScreen.y + 20, vScreen.x + 10, vScreen.y + 20, PlayerColor); //Bottom


				}


			}

			if(pPlayer)

				if (pPlayer->bIsAdmin == true)

					FEAR.m_pCDraw->DrawText(200, 200, RED, "ADMIN PRESENT!");



		}

	}

}

bool pausegame = false;

void Esp::Pause()

{


	if(!g_pInterfaceMgr)

		return;



	if(!g_pInterfaceMgr->IsInGame())

		return;



	if(pmenu[4][FEAR.m_pMenu->GetIndex(4,"Pause")].Setting && !pausegame)

	{

		CAutoMessage cMsg;

		cMsg.Writeuint8(MID_GAME_PAUSE);

		g_pLTClient->SendToServer(cMsg.Read(), MESSAGE_GUARANTEED);

		pausegame = true;

	}

	else if(!pmenu[4][FEAR.m_pMenu->GetIndex(4,"Pause")].Setting && pausegame)

	{

		CAutoMessage cMsg;

		cMsg.Writeuint8(MID_GAME_UNPAUSE);

		g_pLTClient->SendToServer(cMsg.Read(), MESSAGE_GUARANTEED);

		pausegame = false;

	}



}


BYTE Jmp = 0xEB; // recoil

BYTE JmpBack = 0x74; // recoil back

BYTE NopSix[6] = {0x90, 0x90, 0x90, 0x90, 0x90, 0x90}; // spread

BYTE NopSixBack[6] = {}; // spread back

BYTE JmpTwo[6] = {0xE9, 0x74, 0x04, 0x00, 0x00, 0x90}; // HeadBob

BYTE JmpTwoBack[6] = {0x0F, 0x84, 0x73, 0x04, 0x00, 0x00}; // HeadBob back


void Esp::WeaponAccuracy()

{

	if(!g_pInterfaceMgr)

		return;


	static bool recoil = false;

	static bool spread = false;

	static bool weaponsway = false;


	DO_ONCE(

	DWORD WSwayAddy = pClient + 0x1E85;

	for (int i = 0; i < 6; i++, (BYTE)WSwayAddy++)

	{

			BYTE* TheByte = (BYTE*)WSwayAddy;

			PATCH_ReadMemory((void*)TheByte, &NopSixBack[i], 1);

	})

	//recoil

	if (pmenu[2][FEAR.m_pMenu->GetIndex(2,"Recoil")].Setting && !recoil)

	{

		recoil = true;

		Patch_WriteMemory( (void*)(pClient + 0x0B0DC1), &Jmp, 1); // recoil

	}

	else if (!pmenu[2][FEAR.m_pMenu->GetIndex(2,"Recoil")].Setting && recoil)

	{

		recoil = false;

		Patch_WriteMemory( (void*)(pClient + 0x0B0DC1), &JmpBack, 1); // recoil

	}

	//spread

	if (pmenu[2][FEAR.m_pMenu->GetIndex(2,"Spread")].Setting && !spread)

	{

		spread = true;

		Patch_WriteMemory( (void*)(pClient + 0x1E85), &NopSix, 6); // spread

	}

	else if (!pmenu[2][FEAR.m_pMenu->GetIndex(2,"Spread")].Setting && spread)

	{

		spread = false;

		Patch_WriteMemory( (void*)(pClient + 0x1E85), &NopSixBack, 6); // spread

	}

	//weaponsway

	if (pmenu[2][FEAR.m_pMenu->GetIndex(2,"WeaponSway")].Setting && !weaponsway)

	{

		weaponsway = true;

		Patch_WriteMemory( (void*)(pClient + 0x5EAAD), &JmpTwo, 6); // WeaponSway

	}

	else if (!pmenu[2][FEAR.m_pMenu->GetIndex(2,"WeaponSway")].Setting && weaponsway)

	{

		weaponsway = false;

		Patch_WriteMemory( (void*)(pClient + 0x5EAAD), &JmpTwoBack, 6); // WeaponSway

	}



}


void Esp::AutoKill()

{

	if ( !pmenu[4][FEAR.m_pMenu->GetIndex(4,"AutoKill")].Setting )

		return;


	if(!g_pGameClientShell)

		return;


	if ( !g_pGameClientShell->GetPlayerMgr()->GetClientWeaponMgr()->m_pCurrentWeapon ) return;

	CSpecialFXList* CharList = g_pGameClientShell->GetSFXMgr()->GetFXList( SFX_CHARACTER_ID );


	bool bMyTeam = true;

	int iPlayers = CharList->GetSize();

	/////////

	HMODELNODE hNode;

	LTTransform ltBoneTran;

	LTVector BonePos;

	LTVector SFMpos;

	/////////

	for ( unsigned int K = 0; K < iPlayers; K++ )

	{

		if (( *CharList )[K])

		{			

			CCharacterFX* CharFX = ( CCharacterFX* )( *CharList )[K];


			CLIENT_INFO* pThis = g_pInterfaceMgr->GetClientInfoMgr()->GetClientByID( CharFX->m_cs.nClientID );

			if ( pThis )

				bMyTeam = g_pInterfaceMgr->GetClientInfoMgr()->IsLocalTeam( pThis->nTeamID );


			CLIENT_INFO* pMyPlayer = g_pInterfaceMgr->GetClientInfoMgr()->GetLocalClient();

			if(pMyPlayer)

				if(FEAR.m_pAimbot->bIsDeathMatch(pMyPlayer))

					bMyTeam = false;


			if (CharFX->m_cs.bIsPlayer && !CharFX->IsPlayerDead() && bMyTeam == false && !CharFX->IsSpectating())

			{					


				g_pLTClient->GetModelLT()->GetNode(CharFX->GetServerObj(), BONE_Head, hNode);/////////

				if(LT_OK == g_pLTClient->GetModelLT()->GetNodeTransform(CharFX->GetServerObj(), hNode, ltBoneTran, true))///////

				{


					BonePos = ltBoneTran.m_vPos;

					SFMpos = BonePos;

					SFMpos.x -= 15;


					CAutoMessage cMsg;

					cMsg.Writeuint8(MID_OBJECT_MESSAGE);

					cMsg.WriteObject(g_pPlayerMgr->GetMoveMgr()->GetServerObject());

					cMsg.Writeuint32(MID_MELEEATTACK);

					cMsg.WriteObject(CharFX->GetServerObj());

					cMsg.Writeuint32(hNode);

					cMsg.WriteLTVector(SFMpos);

					cMsg.WriteLTVector(BonePos);

					cMsg.Writeint32(g_pGameClientShell->GetServerRealTimeMS());

					g_pLTClient->SendToServer(cMsg.Read(), MESSAGE_GUARANTEED);

				}

			}

		}

	}

}




void Esp::CrossHair()

{

	if(!pmenu[4][FEAR.m_pMenu->GetIndex(4, "Crosshair")].Setting)

		return;


	FEAR.m_pCDraw->FillRGBA(FEAR.m_pCDraw->oViewport.Width / 2, (FEAR.m_pCDraw->oViewport.Height / 2) - 5, 1, 11, 255, 0, 0, 255);

	FEAR.m_pCDraw->FillRGBA((FEAR.m_pCDraw->oViewport.Width / 2) - 5, (FEAR.m_pCDraw->oViewport.Height / 2), 11, 1, 255, 0, 0, 255);


}


void Esp::PickUps()

{

	if(!pmenu[4][FEAR.m_pMenu->GetIndex(4,"PickupItems")].Setting) 

		return;


	if(!g_pInterfaceMgr)

		return;


	if(!g_pInterfaceMgr->IsInGame())

		return;


	CSpecialFXList*	WepList	= g_pGameClientShell->GetSFXMgr()->GetFXList( SFX_PICKUPITEM_ID );

	int iWeapons = WepList->GetSize();

	for ( int K = 0; K < iWeapons; ++K )

	{

		if (( *WepList )[K] )

		{

			CPickupItemFX* pWepPickup = ( CPickupItemFX* )( *WepList )[K];

			if ( pWepPickup->GetPickupItemType() == kPickupItemType_Gear || pWepPickup->GetPickupItemType() == kPickupItemType_Weapon ) 

			{

				CAutoMessage cMsg;

				cMsg.Writeuint8( MID_PICKUPITEM_ACTIVATE );

				cMsg.WriteObject( pWepPickup->GetServerObj() );

				cMsg.Writebool( 0 ); 

				g_pLTClient->SendToServer( cMsg.Read(), MESSAGE_GUARANTEED ); 


			}

		}

	}

	pmenu[4][FEAR.m_pMenu->GetIndex(4,"PickupItems")].Setting = false;

}


void Esp::DrawSkeleton(HOBJECT hObject, D3DCOLOR Color)

{

	HMODELNODE hNode[BONES];

	LTTransform ltBoneTran[BONES];

	LTVector BonePos[BONES];

	LTVector PlayerPos[BONES];


	bool bOnScreen = false;


	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Pelvis, hNode[0]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Torso, hNode[1]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Upper_torso, hNode[2]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Neck, hNode[3]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Head, hNode[4]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Left_shoulder, hNode[5]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Left_armu, hNode[6]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Left_arml, hNode[7]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Left_hand, hNode[8]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Right_shoulder, hNode[9]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Right_armu, hNode[10]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Right_arml, hNode[11]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Right_hand, hNode[12]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Left_legu, hNode[13]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Left_legl, hNode[14]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Left_foot, hNode[15]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Right_legu, hNode[16]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Right_legl, hNode[17]);

	g_pLTClient->GetModelLT()->GetNode(hObject, BONE_Right_foot, hNode[18]);



	for(int i = 0; i < BONES; i++)

	{


		if(LT_OK == g_pLTClient->GetModelLT()->GetNodeTransform(hObject, hNode[i], ltBoneTran[i], true))

		{


			BonePos[i] = ltBoneTran[i].m_vPos;

			PlayerPos[i] = GetScreenFromWorldPos2(BonePos[i], g_pGameClientShell->GetPlayerMgr()->GetPlayerCamera()->GetCamera(), bOnScreen);

		}


	}


	if(bOnScreen)

	{

		FEAR.m_pCDraw->DrawLine(PlayerPos[4].x, PlayerPos[4].y, PlayerPos[3].x, PlayerPos[3].y, Color); //Head -> Neck

		FEAR.m_pCDraw->DrawLine(PlayerPos[3].x, PlayerPos[3].y, PlayerPos[5].x, PlayerPos[5].y, Color); //Neck -> LeftShoulder

		FEAR.m_pCDraw->DrawLine(PlayerPos[5].x, PlayerPos[5].y, PlayerPos[6].x, PlayerPos[6].y, Color); //LeftShoulder -> Left Armu

		FEAR.m_pCDraw->DrawLine(PlayerPos[6].x, PlayerPos[6].y, PlayerPos[7].x, PlayerPos[7].y, Color); //Left Armu -> Left Arml

		FEAR.m_pCDraw->DrawLine(PlayerPos[7].x, PlayerPos[7].y, PlayerPos[8].x, PlayerPos[8].y, Color); //Left Arml -> Left Hand

		FEAR.m_pCDraw->DrawLine(PlayerPos[3].x, PlayerPos[3].y, PlayerPos[9].x, PlayerPos[9].y, Color); //Neck -> RightShoulder

		FEAR.m_pCDraw->DrawLine(PlayerPos[9].x, PlayerPos[9].y, PlayerPos[10].x, PlayerPos[10].y, Color); //RightShoulder -> Right Armu

		FEAR.m_pCDraw->DrawLine(PlayerPos[10].x, PlayerPos[10].y, PlayerPos[11].x, PlayerPos[11].y, Color); //Right Armu -> Right Arml

		FEAR.m_pCDraw->DrawLine(PlayerPos[11].x, PlayerPos[11].y, PlayerPos[12].x, PlayerPos[12].y, Color); //Right Arml -> Right Hand

		FEAR.m_pCDraw->DrawLine(PlayerPos[3].x, PlayerPos[3].y, PlayerPos[2].x, PlayerPos[2].y, Color); //Neck -> Upper Torso

		FEAR.m_pCDraw->DrawLine(PlayerPos[2].x, PlayerPos[2].y, PlayerPos[1].x, PlayerPos[1].y, Color); //Upper Torso -> Torso

		FEAR.m_pCDraw->DrawLine(PlayerPos[1].x, PlayerPos[1].y, PlayerPos[0].x, PlayerPos[0].y, Color); //Torso -> Pelvis

		FEAR.m_pCDraw->DrawLine(PlayerPos[0].x, PlayerPos[0].y, PlayerPos[13].x, PlayerPos[13].y, Color); //Pelvis -> Left Legu

		FEAR.m_pCDraw->DrawLine(PlayerPos[13].x, PlayerPos[13].y, PlayerPos[14].x, PlayerPos[14].y, Color); //Left Legu -> Left Legl

		FEAR.m_pCDraw->DrawLine(PlayerPos[14].x, PlayerPos[14].y, PlayerPos[15].x, PlayerPos[15].y, Color); //Left Legl -> Left foot

		FEAR.m_pCDraw->DrawLine(PlayerPos[0].x, PlayerPos[0].y, PlayerPos[16].x, PlayerPos[16].y, Color); //Pelvis -> Right Legu

		FEAR.m_pCDraw->DrawLine(PlayerPos[16].x, PlayerPos[16].y, PlayerPos[17].x, PlayerPos[17].y, Color); //Right Legu -> Right Legl

		FEAR.m_pCDraw->DrawLine(PlayerPos[17].x, PlayerPos[17].y, PlayerPos[18].x, PlayerPos[18].y, Color); //Right Legl -> Right foot


	}


}



LTVector Esp::GetScreenFromWorldPos2(const LTVector& vPos, HOBJECT hCamera, bool& bOnScreen)

{

	LTVector vScreenPos;

	LTRESULT res = g_pLTClient->GetRenderer()->WorldPosToScreenPos(hCamera, vPos, vScreenPos);


	bOnScreen = (LT_OK == res && vScreenPos.x >= 0.0f && vScreenPos.x <= 1.0f 

		&& vScreenPos.y >= 0.0f && vScreenPos.y <= 1.0f

		&& vScreenPos.z > 0.0f);


	//scale based upon the physical extents of the screen

	vScreenPos.x *= FEAR.m_pCDraw->oViewport.Width;

	vScreenPos.y *= FEAR.m_pCDraw->oViewport.Height;


	return vScreenPos;

}


LTVector Esp::GetScreenFromWorldPos2(const LTVector& vPos, HOBJECT hCamera)

{

	LTVector vScreenPos;

	LTRESULT res = g_pLTClient->GetRenderer()->WorldPosToScreenPos(hCamera, vPos, vScreenPos);


	//scale based upon the physical extents of the screen

	vScreenPos.x *= FEAR.m_pCDraw->oViewport.Width;

	vScreenPos.y *= FEAR.m_pCDraw->oViewport.Height;


	return vScreenPos;

}

O do tego doszedł problem.

error C3861: ‘DetourFunction’: identifier not found

Oczywiście mam dodane include wraz z lib’em…

Ten błąd jasno określa, że brakuje Ci tej funkcji. Musisz ją gdzieś napisać, ew. dołączyć z gotowego już nagłówka.