Skocz do zawartości

dormant i lifestate zawsze zwraca jedna wartosc


Przejdź do rozwiązania Rozwiązane przez mactec,
# CSH External VIP Project

Masz dosyć problemów z czynnikiem zaufania w CS2 lub notorycznymi banami?

Sprawdź CSH External VIP Project.


Więcej informacji  

Rekomendowane odpowiedzi

Czesc,

Mam taki problem, że zawsze przy odczytaniu wartości dormant czy nawet lifestate zawsze, ale to zawsze zwraca mi się wartość = 0.

Mój kod:
 

	bool GetMyInfo(DWORD client)
	{
		MyPlayer.dwLocalPlayer     = ReadMemory<DWORD>(attach.handle,	         client + off.dwLocalPlayer);
		MyPlayer.iCrosshairID      = ReadMemory<int>(attach.handle,		 MyPlayer.dwLocalPlayer + off.m_iCrosshairId);
		MyPlayer.iTeam		   = ReadMemory<int>(attach.handle,		 MyPlayer.dwLocalPlayer + off.m_iTeamNum);
		MyPlayer.iFlags		   = ReadMemory<int>(attach.handle,		 MyPlayer.dwLocalPlayer + off.m_fFlags);
		MyPlayer.dormant	   = ReadMemory<int>(attach.handle,		 MyPlayer.dwLocalPlayer + off.dormant);
		MyPlayer.isAlive	   = ReadMemory<int>(attach.handle,		 MyPlayer.dwLocalPlayer + off.m_lifeState);
		MyPlayer.hp	           = ReadMemory<int>(attach.handle,		 MyPlayer.dwLocalPlayer + off.m_iHealth);
		return true;
	}

Pozostale wartosci jak crosshairid, iTeam, iFlags, hp zwracają mi dokładne wartości.
Offsety na 99% mam poprawne, bo aktualizowałem je wraz z ostatnią aktualizacji gry z tego dumpera ( https://github.com/frk1/hazedumper/blob/master/csgo.hpp ).

O co chodzi, bo nie rozumiem.. dziękuję z góry za odpowiedzi.

 

/me gra w csgo

Odnośnik do komentarza

Nie siedzę za bardzo w cheatach, ale jak się nie mylę to m_bDormant i m_lifeState zwracają wartość typu bool. Próbujesz wyczytać z pola danych wartość typu int, a w grze jest bool.

 

Nic co prawda się nie dzieje, gdyż wartość typu bool może być konwertowana na wartość typu int.

 

Co to jest bool?

https://msdn.microsoft.com/pl-pl/library/tf4dy80a.aspx

 

Zwraca false i true. Przy konwersji true = 1, false = 0. Tyle w temacie.


Zmień na:

MyPlayer.dormant	   = ReadMemory<bool>(attach.handle,		 MyPlayer.dwLocalPlayer + off.dormant);
MyPlayer.isAlive	   = ReadMemory<bool>(attach.handle,		 MyPlayer.dwLocalPlayer + off.m_lifeState);

Pamiętaj, aby przy deklaracji zmiennych MyPlayer.dormant i MyPlayer.isAlive zmienić typ zmiennej na bool.


Edytowane przez figo283
Odnośnik do komentarza

Zaraz pozmieniam to na zmienne typu bool, dam znać czy ruszyło.


	
	//zmienne w strukturze
	bool dormant;
	bool isAlive;
	
	//funkcja
	bool GetMyInfo(DWORD client)
	{
		MyPlayer.dwLocalPlayer     = ReadMemory<DWORD>(attach.handle,	         client + off.dwLocalPlayer);
		MyPlayer.iCrosshairID      = ReadMemory<int>(attach.handle,		 MyPlayer.dwLocalPlayer + off.m_iCrosshairId);
		MyPlayer.iTeam		   = ReadMemory<int>(attach.handle,		 MyPlayer.dwLocalPlayer + off.m_iTeamNum);
		MyPlayer.iFlags		   = ReadMemory<int>(attach.handle,		 MyPlayer.dwLocalPlayer + off.m_fFlags);
		MyPlayer.dormant	   = ReadMemory<bool>(attach.handle,	         MyPlayer.dwLocalPlayer + off.dormant);
		MyPlayer.isAlive	   = ReadMemory<bool>(attach.handle,	         MyPlayer.dwLocalPlayer + off.m_lifeState);
		MyPlayer.hp	           = ReadMemory<int>(attach.handle,		 MyPlayer.dwLocalPlayer + off.m_iHealth);
		return true;
	}
	
	//w main dla testu
	DWORD dwClient = attach.module_attach(attach.process_id, "client.dll");
	info.GetMyInfo(dwClient);
	
	cout << "uspiony?: " << MyPlayer.dormant << "\n";
	cout << "zywy?: " 	 << MyPlayer.isAlive << "\n";

Zwraca 0 w dalszym czasie. :(

/me gra w csgo

Odnośnik do komentarza

Facepalm.

 

Czyli wartosc = 0 oznacza, ze zyje, a pozostale?

jeżeli chodzi o lifestate to

0 - Żyjesz
1 - Umierasz
2 - Nie żyjesz

A dormant 

0 - Żyjesz/Nie uśpiony
1 - Nie żyjesz/Uśpiony
Odnośnik do komentarza
  • Rozwiązanie

Na przyszłość:

https://github.com/ValveSoftware/source-sdk-2013/blob/master/mp/src/public/const.h#L274

https://github.com/ValveSoftware/source-sdk-2013/blob/master/sp/src/game/shared/baseentity_shared.h#L109


Nie siedzę za bardzo w cheatach, ale jak się nie mylę to m_bDormant i m_lifeState zwracają wartość typu bool. Próbujesz wyczytać z pola danych wartość typu int, a w grze jest bool.

 

 

LifeState to int

Odnośnik do komentarza
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Regulamin. Polityka prywatności