Guild Wars CharLoginList evtl. zu implementieren

02/27/2012 12:27 Valvepro#1
Moin - hier etwas für Leute die etwas mehr drauf haben und es evtl. benötigen (wozu auch immer).

Auflistung der Charaktere, wenn man sich im LoginScreen befindet.
Damit ist es z.B. möglich sich mit einem Char auf die Map einzuloggen
(wobei die Funktion erst noch implementiert werden muss).

Hinweis:
Wie Ihr seht ist es eine static Adresse, also wisst ihr was ihr machen müsst.

Code:
class LoginCharList {
private:
	DWORD MemPtr;
	public:
		LoginCharList()
		{
			this->MemPtr = [COLOR="Red"]0x00A2CC80[/COLOR];
		}
		wchar_t* NextChar(unsigned int aIndex){
			if((*(DWORD*)MemPtr) == NULL) return NULL;
			if(((*(DWORD*)MemPtr)+0x148) == NULL) return NULL;
			if((*(DWORD*)((*(DWORD*)MemPtr)+0x148)+0x4)+(22*aIndex) == NULL) return NULL;
			return (wchar_t*)(*(DWORD*)((*(DWORD*)MemPtr)+0x148)+0x4)+(22*aIndex);
		}
		char* operator[](unsigned int aIndex){
			wchar_t* CharPTR = NextChar(aIndex);
			if(CharPTR == NULL) return NULL;
			char* CharName = new char[wcslen(CharPTR) + 1];
			wcstombs( CharName, NextChar(aIndex), wcslen(CharPTR) );
			CharName[wcslen(CharPTR)] = NULL;
			return CharName;
		}
}CharListA;
Verwendung:
Code:
CharListA[0] // Erster Char
CharListA[1] // Zweiter Char
CharListA[2] // Dritter Char
...............
Viel Spaß beim Experementieren
02/27/2012 19:04 _Merowinger_#2
Nett, nett.
Falls du noch den Namen von dem selected Char im Login Screen haben willst:
Das sollte noch aktuell sein, hoffe ich mal, hab leider keine zeit das zu prüfen:
PHP Code:
DWORD buf = *(DWORD*)BasePointerLocation;
buf = *(DWORD*)(buf 0x18c);
buf = *(DWORD*)(buf 0x1a4);
buf = *(DWORD*)(buf 0x124);
buf = *(DWORD*)(buf 0x64);
wchar_t *Char = (wchar_t*)(buf 0x1c);