View difference between Paste ID: RumFRuGW and 7FGHTFQv
SHOW: | | - or go back to the newest paste.
1
int m_Pickup[3] = { 0, 0, 0 };
2
//Cтруктура с флагами, так легче юзать
3
struct AcorFlags
4
{
5
	union
6
	{
7
		__int64 Aflags;
8
		struct
9
		{
10
			bool m_Pickup : 1;
11
		};
12
	};
13
} a_flags;
14
//Функция для определения объекта, кто он собственно есть
15
bool WhatIsActor(APawn* obj)
16
{
17
	if (!obj)return 0;
18
	memset(&a_flags, 0, sizeof(AcorFlags));
19
20
	//В условии сравнивается айди и проверяется наличие айди, мало ли не найдет и там будет 0, в итоге будет пытаться вывести 0.
21
	//Хотя у меня с гранатами какая то трабла была, тупо игра зависала, так что я хз, может в этом причина.
22
	if (obj->ID == m_Pickup[0] && m_Pickup[0]) { a_flags.m_Pickup = 1; return 1; }
23
	else if (obj->ID == m_Pickup[1] && m_Pickup[1]) { a_flags.m_Pickup = 1; return 1; }
24
	else if (obj->ID == m_Pickup[2] && m_Pickup[2]) { a_flags.m_Pickup = 1; return 1; }
25
26
	else return 0;
27
}
28
int d_tici = 0;
29
bool NameIdsCached = false;
30
__forceinline void CacheNameIds(void)
31
{
32
	d_tici = 0;
33
	for (int i = 0; i < 500000; i++)
34
	{
35
36
		char name[64];
37
38
		//char testinggnb[256];
39
		//sprintf(testinggnb, "%s %i \n", name, i);
40
		//OutputDebugStringA(testinggnb);
41
42
		if (GetNameById(i, name, sizeof(name)))
43
		{
44
			bool givedebug = 0;
45-
			if (_mystrcmp(name, "BP_SmallStorageBox") == 0) { m_Pickup[0] = i; givedebug = true; }
45+
			if (strstr(name, "BP_SmallStorageBox")) { m_Pickup[0] = i; givedebug = true; }
46-
			else if (_mystrcmp(name, "Pickup") == 0) { m_Pickup[1] = i; givedebug = true; }
46+
			else if (strstr(name, "Pickup")) { m_Pickup[1] = i; givedebug = true; }
47-
			else if (_mystrcmp(name, "BP_SmallStorageBox") == 0) { m_Pickup[2] = i; givedebug = true; }
47+
			else if (strstr(name, "BP_SmallStorageBox")) { m_Pickup[2] = i; givedebug = true; }
48
49
			if (givedebug)
50
			{
51
				d_tici++;
52
				char testinggnb[256];
53
				sprintf(testinggnb, "%d) %s %i \n", d_tici, name, i);
54
				OutputDebugStringA(testinggnb);
55
			}
56
		}
57
	}
58
	NameIdsCached = true;
59
}
60
61
в ЕСП :
62
63
	if (!WhatIsActor(Actor))continue;
64
	if(a_flags.m_Pickup)
65
{
66
рисуем полученые объекты
67
}